Skip to content

Conversation

@ibacher
Copy link
Member

@ibacher ibacher commented Jun 11, 2025

Requirements

  • This PR has a title that briefly describes the work done including the ticket number. Ensure your PR title includes a conventional commit label (such as feat, fix, or chore, among others). See existing PR titles for inspiration.

For changes to apps

If applicable

  • My work includes tests or is validated by existing tests.
  • I have updated the esm-framework mock to reflect any API changes I have made.

Summary

One goal for O3 has been to support "real" ES modules—after all, we've named most of our projects esm-* as if that's the case. This PR is a small step towards realizing that goal.

This changes the Webpack and Rspack configurations to output using the "module" format instead of the "var" format, meaning that package entry points, at least, are ESMs. I've also patched the dynamic loading code to first try loading a MFE as a ES module and only fall back to the old process for code that cannot be imported this way.

Screenshots

Related Issue

Other

The medium-term plan is to drop support for module federation and switch to using shared libraries on the import map. Those steps will necessarily be breaking changes.

@ibacher ibacher changed the title (feat) Change Webpack config to output "real" ESM modules and switch to using those (feat) Change Webpack config to output real ESM modules Jun 11, 2025
@github-actions
Copy link
Contributor

Size Change: -4.85 MB (-45.18%) 🎉

Total Size: 5.88 MB

Filename Size Change
packages/apps/esm-devtools-app/dist/180.js 0 B -12.3 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/259.js 0 B -272 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/623.js 0 B -42.8 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/769.js 0 B -181 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/770.js 0 B -11.2 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/96.js 0 B -137 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/249.js 0 B -271 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/623.js 0 B -42.8 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/660.js 0 B -180 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/770.js 0 B -11.2 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/90.js 0 B -10.3 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/96.js 0 B -137 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/1915.js 0 B -32.1 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/2096.js 0 B -137 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/2271.js 0 B -258 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/3150.js 0 B -87.6 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/5563.js 0 B -11.4 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/5623.js 0 B -42.8 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/5770.js 0 B -11.2 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/7687.js 0 B -126 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/769.js 0 B -181 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/8031.js 0 B -10.4 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/main.js 0 B -18.8 kB (removed) 🏆
packages/apps/esm-login-app/dist/1573.js 0 B -182 kB (removed) 🏆
packages/apps/esm-login-app/dist/1805.js 0 B -22.7 kB (removed) 🏆
packages/apps/esm-login-app/dist/2264.js 0 B -247 kB (removed) 🏆
packages/apps/esm-login-app/dist/5755.js 0 B -11.1 kB (removed) 🏆
packages/apps/esm-login-app/dist/7850.js 0 B -27.1 kB (removed) 🏆
packages/apps/esm-login-app/dist/8370.js 0 B -16.2 kB (removed) 🏆
packages/apps/esm-login-app/dist/8389.js 0 B -142 kB (removed) 🏆
packages/apps/esm-login-app/dist/9042.js 0 B -42.6 kB (removed) 🏆
packages/apps/esm-login-app/dist/main.js 0 B -78.3 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/2096.js 0 B -137 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/3389.js 0 B -11.2 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/4760.js 0 B -262 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/5623.js 0 B -42.8 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/5770.js 0 B -176 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6252.js 0 B -44.5 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6408.js 0 B -16.5 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/7704.js 0 B -10.7 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/main.js 0 B -74.9 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/2096.js 0 B -137 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/3637.js 0 B -179 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/5623.js 0 B -42.8 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/5768.js 0 B -264 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/5770.js 0 B -11.2 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/6408.js 0 B -16.5 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/8577.js 0 B -19.3 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/main.js 0 B -29.7 kB (removed) 🏆
packages/shell/esm-app-shell/dist/a6d20beafc20b9e3.js 0 B -60.7 kB (removed) 🏆
packages/shell/esm-app-shell/dist/openmrs.0df4763aa5519015.js 0 B -22 kB (removed) 🏆
ℹ️ View Unchanged
Filename Size Change
packages/apps/esm-devtools-app/dist/180.mjs 12.2 kB 0 B
packages/apps/esm-devtools-app/dist/248.js 0 B -7.09 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/248.mjs 7.06 kB 0 B
packages/apps/esm-devtools-app/dist/259.mjs 272 kB 0 B
packages/apps/esm-devtools-app/dist/326.js 0 B -2.63 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/326.mjs 2.61 kB 0 B
packages/apps/esm-devtools-app/dist/623.mjs 42.8 kB 0 B
packages/apps/esm-devtools-app/dist/769.mjs 180 kB 0 B
packages/apps/esm-devtools-app/dist/770.mjs 11.2 kB 0 B
packages/apps/esm-devtools-app/dist/907.js 0 B -2.33 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/907.mjs 2.31 kB 0 B
packages/apps/esm-devtools-app/dist/929.js 0 B -333 B (removed) 🏆
packages/apps/esm-devtools-app/dist/929.mjs 313 B 0 B
packages/apps/esm-devtools-app/dist/932.js 0 B -6.79 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/932.mjs 6.75 kB 0 B
packages/apps/esm-devtools-app/dist/96.mjs 137 kB 0 B
packages/apps/esm-devtools-app/dist/main.js 0 B -3.62 kB (removed) 🏆
packages/apps/esm-devtools-app/dist/main.mjs 2.89 kB 0 B
packages/apps/esm-devtools-app/dist/openmrs-esm-devtools-app.js 2.97 kB -706 B (-19.2%) 👏
packages/apps/esm-help-menu-app/dist/108.js 0 B -3.41 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/108.mjs 3.38 kB 0 B
packages/apps/esm-help-menu-app/dist/11.js 0 B -1.07 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/11.mjs 1.04 kB 0 B
packages/apps/esm-help-menu-app/dist/248.js 0 B -7.09 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/248.mjs 7.06 kB 0 B
packages/apps/esm-help-menu-app/dist/249.mjs 270 kB 0 B
packages/apps/esm-help-menu-app/dist/322.js 0 B -706 B (removed) 🏆
packages/apps/esm-help-menu-app/dist/322.mjs 676 B 0 B
packages/apps/esm-help-menu-app/dist/326.js 0 B -2.63 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/326.mjs 2.61 kB 0 B
packages/apps/esm-help-menu-app/dist/555.js 0 B -5.14 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/555.mjs 5.11 kB 0 B
packages/apps/esm-help-menu-app/dist/623.mjs 42.8 kB 0 B
packages/apps/esm-help-menu-app/dist/660.mjs 180 kB 0 B
packages/apps/esm-help-menu-app/dist/770.mjs 11.2 kB 0 B
packages/apps/esm-help-menu-app/dist/802.js 0 B -1.64 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/802.mjs 1.61 kB 0 B
packages/apps/esm-help-menu-app/dist/90.mjs 10.3 kB 0 B
packages/apps/esm-help-menu-app/dist/932.js 0 B -5.55 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/932.mjs 5.52 kB 0 B
packages/apps/esm-help-menu-app/dist/96.mjs 137 kB 0 B
packages/apps/esm-help-menu-app/dist/main.js 0 B -9.02 kB (removed) 🏆
packages/apps/esm-help-menu-app/dist/main.mjs 8.36 kB 0 B
packages/apps/esm-help-menu-app/dist/openmrs-esm-help-menu-app.js 2.92 kB -708 B (-19.54%) 🎉
packages/apps/esm-implementer-tools-app/dist/1119.js 0 B -606 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/1119.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/1197.js 0 B -606 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/1197.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/1915.mjs 32 kB 0 B
packages/apps/esm-implementer-tools-app/dist/2096.mjs 137 kB 0 B
packages/apps/esm-implementer-tools-app/dist/2146.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/2146.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/2271.mjs 258 kB 0 B
packages/apps/esm-implementer-tools-app/dist/2369.js 0 B -2.74 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/2369.mjs 2.71 kB 0 B
packages/apps/esm-implementer-tools-app/dist/2690.js 0 B -608 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/2690.mjs 577 B 0 B
packages/apps/esm-implementer-tools-app/dist/3099.js 0 B -718 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/3099.mjs 682 B 0 B
packages/apps/esm-implementer-tools-app/dist/3150.mjs 87.6 kB 0 B
packages/apps/esm-implementer-tools-app/dist/3584.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/3584.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/4055.js 0 B -733 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/4055.mjs 700 B 0 B
packages/apps/esm-implementer-tools-app/dist/4132.js 0 B -803 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/4132.mjs 765 B 0 B
packages/apps/esm-implementer-tools-app/dist/4300.js 0 B -606 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/4300.mjs 575 B 0 B
packages/apps/esm-implementer-tools-app/dist/4335.js 0 B -606 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/4335.mjs 575 B 0 B
packages/apps/esm-implementer-tools-app/dist/4618.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/4618.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/4652.js 0 B -745 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/4652.mjs 713 B 0 B
packages/apps/esm-implementer-tools-app/dist/4944.js 0 B -605 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/4944.mjs 575 B 0 B
packages/apps/esm-implementer-tools-app/dist/5173.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/5173.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/5241.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/5241.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/5442.js 0 B -606 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/5442.mjs 575 B 0 B
packages/apps/esm-implementer-tools-app/dist/5563.mjs 11.4 kB 0 B
packages/apps/esm-implementer-tools-app/dist/5623.mjs 42.8 kB 0 B
packages/apps/esm-implementer-tools-app/dist/5661.js 0 B -770 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/5661.mjs 739 B 0 B
packages/apps/esm-implementer-tools-app/dist/5770.mjs 11.1 kB 0 B
packages/apps/esm-implementer-tools-app/dist/6022.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/6022.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/6248.js 0 B -7.1 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/6248.mjs 7.06 kB 0 B
packages/apps/esm-implementer-tools-app/dist/6326.js 0 B -2.63 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/6326.mjs 2.6 kB 0 B
packages/apps/esm-implementer-tools-app/dist/6468.js 0 B -720 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/6468.mjs 687 B 0 B
packages/apps/esm-implementer-tools-app/dist/6679.js 0 B -713 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/6679.mjs 683 B 0 B
packages/apps/esm-implementer-tools-app/dist/6840.js 0 B -608 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/6840.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/6859.js 0 B -606 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/6859.mjs 575 B 0 B
packages/apps/esm-implementer-tools-app/dist/6932.js 0 B -6.79 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/6932.mjs 6.75 kB 0 B
packages/apps/esm-implementer-tools-app/dist/7097.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/7097.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/7159.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/7159.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/723.js 0 B -609 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/723.mjs 580 B 0 B
packages/apps/esm-implementer-tools-app/dist/7617.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/7617.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/7687.mjs 126 kB 0 B
packages/apps/esm-implementer-tools-app/dist/769.mjs 180 kB 0 B
packages/apps/esm-implementer-tools-app/dist/7714.js 0 B -4.7 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/7714.mjs 4.68 kB 0 B
packages/apps/esm-implementer-tools-app/dist/795.js 0 B -892 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/795.mjs 856 B 0 B
packages/apps/esm-implementer-tools-app/dist/8031.mjs 10.4 kB 0 B
packages/apps/esm-implementer-tools-app/dist/8163.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/8163.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/8349.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/8349.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/8618.js 0 B -606 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/8618.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/890.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/890.mjs 578 B 0 B
packages/apps/esm-implementer-tools-app/dist/8995.js 0 B -4.59 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/8995.mjs 4.57 kB 0 B
packages/apps/esm-implementer-tools-app/dist/9214.js 0 B -739 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/9214.mjs 709 B 0 B
packages/apps/esm-implementer-tools-app/dist/9295.js 0 B -4.29 kB (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/9295.mjs 4.26 kB 0 B
packages/apps/esm-implementer-tools-app/dist/9538.js 0 B -688 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/9538.mjs 658 B 0 B
packages/apps/esm-implementer-tools-app/dist/9569.js 0 B -606 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/9569.mjs 575 B 0 B
packages/apps/esm-implementer-tools-app/dist/986.js 0 B -608 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/986.mjs 579 B 0 B
packages/apps/esm-implementer-tools-app/dist/9879.js 0 B -780 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/9879.mjs 746 B 0 B
packages/apps/esm-implementer-tools-app/dist/9895.js 0 B -604 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/9895.mjs 574 B 0 B
packages/apps/esm-implementer-tools-app/dist/9900.js 0 B -604 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/9900.mjs 574 B 0 B
packages/apps/esm-implementer-tools-app/dist/9913.js 0 B -607 B (removed) 🏆
packages/apps/esm-implementer-tools-app/dist/9913.mjs 576 B 0 B
packages/apps/esm-implementer-tools-app/dist/main.mjs 18.1 kB 0 B
packages/apps/esm-implementer-tools-app/dist/openmrs-esm-implementer-tools-app.js 3.06 kB -704 B (-18.69%) 👏
packages/apps/esm-login-app/dist/126.js 0 B -856 B (removed) 🏆
packages/apps/esm-login-app/dist/126.mjs 827 B 0 B
packages/apps/esm-login-app/dist/15.js 0 B -766 B (removed) 🏆
packages/apps/esm-login-app/dist/15.mjs 735 B 0 B
packages/apps/esm-login-app/dist/1564.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/1564.mjs 738 B 0 B
packages/apps/esm-login-app/dist/1567.js 0 B -1.01 kB (removed) 🏆
packages/apps/esm-login-app/dist/1567.mjs 982 B 0 B
packages/apps/esm-login-app/dist/1573.mjs 182 kB 0 B
packages/apps/esm-login-app/dist/1805.mjs 22.6 kB 0 B
packages/apps/esm-login-app/dist/1845.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/1845.mjs 738 B 0 B
packages/apps/esm-login-app/dist/215.js 0 B -890 B (removed) 🏆
packages/apps/esm-login-app/dist/215.mjs 860 B 0 B
packages/apps/esm-login-app/dist/2178.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/2178.mjs 738 B 0 B
packages/apps/esm-login-app/dist/2264.mjs 246 kB 0 B
packages/apps/esm-login-app/dist/2566.js 0 B -905 B (removed) 🏆
packages/apps/esm-login-app/dist/2566.mjs 874 B 0 B
packages/apps/esm-login-app/dist/2759.js 0 B -807 B (removed) 🏆
packages/apps/esm-login-app/dist/2759.mjs 778 B 0 B
packages/apps/esm-login-app/dist/3230.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/3230.mjs 738 B 0 B
packages/apps/esm-login-app/dist/3441.js 0 B -766 B (removed) 🏆
packages/apps/esm-login-app/dist/3441.mjs 736 B 0 B
packages/apps/esm-login-app/dist/3565.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/3565.mjs 738 B 0 B
packages/apps/esm-login-app/dist/3746.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/3746.mjs 738 B 0 B
packages/apps/esm-login-app/dist/3925.js 0 B -959 B (removed) 🏆
packages/apps/esm-login-app/dist/3925.mjs 926 B 0 B
packages/apps/esm-login-app/dist/3946.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/3946.mjs 738 B 0 B
packages/apps/esm-login-app/dist/4429.js 0 B -6.93 kB (removed) 🏆
packages/apps/esm-login-app/dist/4429.mjs 6.89 kB 0 B
packages/apps/esm-login-app/dist/4894.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/4894.mjs 738 B 0 B
packages/apps/esm-login-app/dist/5130.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/5130.mjs 738 B 0 B
packages/apps/esm-login-app/dist/5187.js 0 B -1.04 kB (removed) 🏆
packages/apps/esm-login-app/dist/5187.mjs 1.01 kB 0 B
packages/apps/esm-login-app/dist/5595.js 0 B -800 B (removed) 🏆
packages/apps/esm-login-app/dist/5595.mjs 770 B 0 B
packages/apps/esm-login-app/dist/5755.mjs 11.1 kB 0 B
packages/apps/esm-login-app/dist/5961.js 0 B -767 B (removed) 🏆
packages/apps/esm-login-app/dist/5961.mjs 737 B 0 B
packages/apps/esm-login-app/dist/6133.js 0 B -931 B (removed) 🏆
packages/apps/esm-login-app/dist/6133.mjs 899 B 0 B
packages/apps/esm-login-app/dist/6247.js 0 B -2.59 kB (removed) 🏆
packages/apps/esm-login-app/dist/6247.mjs 2.57 kB 0 B
packages/apps/esm-login-app/dist/6456.js 0 B -939 B (removed) 🏆
packages/apps/esm-login-app/dist/6456.mjs 908 B 0 B
packages/apps/esm-login-app/dist/6466.js 0 B -843 B (removed) 🏆
packages/apps/esm-login-app/dist/6466.mjs 813 B 0 B
packages/apps/esm-login-app/dist/6613.js 0 B -854 B (removed) 🏆
packages/apps/esm-login-app/dist/6613.mjs 824 B 0 B
packages/apps/esm-login-app/dist/6783.js 0 B -956 B (removed) 🏆
packages/apps/esm-login-app/dist/6783.mjs 925 B 0 B
packages/apps/esm-login-app/dist/7043.js 0 B -6.75 kB (removed) 🏆
packages/apps/esm-login-app/dist/7043.mjs 6.72 kB 0 B
packages/apps/esm-login-app/dist/7348.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/7348.mjs 738 B 0 B
packages/apps/esm-login-app/dist/7362.js 0 B -2.57 kB (removed) 🏆
packages/apps/esm-login-app/dist/7362.mjs 2.55 kB 0 B
packages/apps/esm-login-app/dist/7543.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/7543.mjs 740 B 0 B
packages/apps/esm-login-app/dist/7607.js 0 B -767 B (removed) 🏆
packages/apps/esm-login-app/dist/7607.mjs 737 B 0 B
packages/apps/esm-login-app/dist/772.js 0 B -924 B (removed) 🏆
packages/apps/esm-login-app/dist/772.mjs 891 B 0 B
packages/apps/esm-login-app/dist/7850.mjs 27.1 kB 0 B
packages/apps/esm-login-app/dist/8370.mjs 16.2 kB 0 B
packages/apps/esm-login-app/dist/8389.mjs 142 kB 0 B
packages/apps/esm-login-app/dist/8727.js 0 B -794 B (removed) 🏆
packages/apps/esm-login-app/dist/8727.mjs 764 B 0 B
packages/apps/esm-login-app/dist/8847.js 0 B -898 B (removed) 🏆
packages/apps/esm-login-app/dist/8847.mjs 865 B 0 B
packages/apps/esm-login-app/dist/9015.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/9015.mjs 738 B 0 B
packages/apps/esm-login-app/dist/9042.mjs 42.6 kB 0 B
packages/apps/esm-login-app/dist/906.js 0 B -1.07 kB (removed) 🏆
packages/apps/esm-login-app/dist/906.mjs 1.04 kB 0 B
packages/apps/esm-login-app/dist/9065.js 0 B -783 B (removed) 🏆
packages/apps/esm-login-app/dist/9065.mjs 753 B 0 B
packages/apps/esm-login-app/dist/9182.js 0 B -765 B (removed) 🏆
packages/apps/esm-login-app/dist/9182.mjs 734 B 0 B
packages/apps/esm-login-app/dist/9240.js 0 B -6.77 kB (removed) 🏆
packages/apps/esm-login-app/dist/9240.mjs 6.75 kB 0 B
packages/apps/esm-login-app/dist/9339.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/9339.mjs 738 B 0 B
packages/apps/esm-login-app/dist/9453.js 0 B -1.14 kB (removed) 🏆
packages/apps/esm-login-app/dist/9453.mjs 1.11 kB 0 B
packages/apps/esm-login-app/dist/9920.js 0 B -768 B (removed) 🏆
packages/apps/esm-login-app/dist/9920.mjs 738 B 0 B
packages/apps/esm-login-app/dist/9938.js 0 B -1.04 kB (removed) 🏆
packages/apps/esm-login-app/dist/9938.mjs 1.02 kB 0 B
packages/apps/esm-login-app/dist/main.mjs 77.4 kB 0 B
packages/apps/esm-login-app/dist/openmrs-esm-login-app.js 23.6 kB -629 B (-2.6%)
packages/apps/esm-offline-tools-app/dist/1119.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/1119.mjs 996 B 0 B
packages/apps/esm-offline-tools-app/dist/1185.js 0 B -4.11 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/1185.mjs 4.07 kB 0 B
packages/apps/esm-offline-tools-app/dist/1197.js 0 B -1.02 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/1197.mjs 994 B 0 B
packages/apps/esm-offline-tools-app/dist/2096.mjs 137 kB 0 B
packages/apps/esm-offline-tools-app/dist/2146.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/2146.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/2500.js 0 B -5.16 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/2500.mjs 5.13 kB 0 B
packages/apps/esm-offline-tools-app/dist/2690.js 0 B -1.09 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/2690.mjs 1.06 kB 0 B
packages/apps/esm-offline-tools-app/dist/3099.js 0 B -1.16 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/3099.mjs 1.13 kB 0 B
packages/apps/esm-offline-tools-app/dist/3389.mjs 11.2 kB 0 B
packages/apps/esm-offline-tools-app/dist/3584.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/3584.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/4055.js 0 B -1.19 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/4055.mjs 1.16 kB 0 B
packages/apps/esm-offline-tools-app/dist/4132.js 0 B -1.3 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/4132.mjs 1.26 kB 0 B
packages/apps/esm-offline-tools-app/dist/4300.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/4300.mjs 996 B 0 B
packages/apps/esm-offline-tools-app/dist/4335.js 0 B -1.1 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/4335.mjs 1.07 kB 0 B
packages/apps/esm-offline-tools-app/dist/4618.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/4618.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/4652.js 0 B -1.21 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/4652.mjs 1.17 kB 0 B
packages/apps/esm-offline-tools-app/dist/4760.mjs 262 kB 0 B
packages/apps/esm-offline-tools-app/dist/4944.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/4944.mjs 996 B 0 B
packages/apps/esm-offline-tools-app/dist/5173.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/5173.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/5241.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/5241.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/5442.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/5442.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/5623.mjs 42.8 kB 0 B
packages/apps/esm-offline-tools-app/dist/5661.js 0 B -1.19 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/5661.mjs 1.16 kB 0 B
packages/apps/esm-offline-tools-app/dist/5770.mjs 176 kB 0 B
packages/apps/esm-offline-tools-app/dist/6022.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6022.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/6248.js 0 B -7.1 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6248.mjs 7.06 kB 0 B
packages/apps/esm-offline-tools-app/dist/6252.mjs 44.5 kB 0 B
packages/apps/esm-offline-tools-app/dist/6326.js 0 B -2.63 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6326.mjs 2.6 kB 0 B
packages/apps/esm-offline-tools-app/dist/6408.mjs 16.5 kB 0 B
packages/apps/esm-offline-tools-app/dist/6468.js 0 B -1.17 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6468.mjs 1.14 kB 0 B
packages/apps/esm-offline-tools-app/dist/6679.js 0 B -1.17 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6679.mjs 1.14 kB 0 B
packages/apps/esm-offline-tools-app/dist/6711.js 0 B -2.3 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6711.mjs 2.27 kB 0 B
packages/apps/esm-offline-tools-app/dist/6840.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6840.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/6859.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/6859.mjs 996 B 0 B
packages/apps/esm-offline-tools-app/dist/7097.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/7097.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/7159.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/7159.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/723.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/723.mjs 1 kB 0 B
packages/apps/esm-offline-tools-app/dist/7617.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/7617.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/7704.mjs 10.6 kB 0 B
packages/apps/esm-offline-tools-app/dist/795.js 0 B -1.37 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/795.mjs 1.34 kB 0 B
packages/apps/esm-offline-tools-app/dist/8163.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/8163.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/8349.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/8349.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/8618.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/8618.mjs 996 B 0 B
packages/apps/esm-offline-tools-app/dist/890.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/890.mjs 1 kB 0 B
packages/apps/esm-offline-tools-app/dist/9214.js 0 B -1.28 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/9214.mjs 1.25 kB 0 B
packages/apps/esm-offline-tools-app/dist/9538.js 0 B -1.16 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/9538.mjs 1.13 kB 0 B
packages/apps/esm-offline-tools-app/dist/9569.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/9569.mjs 996 B 0 B
packages/apps/esm-offline-tools-app/dist/9825.js 0 B -2.29 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/9825.mjs 2.26 kB 0 B
packages/apps/esm-offline-tools-app/dist/986.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/986.mjs 1 kB 0 B
packages/apps/esm-offline-tools-app/dist/9879.js 0 B -1.19 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/9879.mjs 1.16 kB 0 B
packages/apps/esm-offline-tools-app/dist/9895.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/9895.mjs 994 B 0 B
packages/apps/esm-offline-tools-app/dist/9900.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/9900.mjs 995 B 0 B
packages/apps/esm-offline-tools-app/dist/9913.js 0 B -1.03 kB (removed) 🏆
packages/apps/esm-offline-tools-app/dist/9913.mjs 997 B 0 B
packages/apps/esm-offline-tools-app/dist/main.mjs 74.2 kB 0 B
packages/apps/esm-offline-tools-app/dist/openmrs-esm-offline-tools-app.js 3.17 kB -600 B (-15.9%) 👏
packages/apps/esm-primary-navigation-app/dist/1119.js 0 B -261 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/1119.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/1197.js 0 B -261 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/1197.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/1782.js 0 B -2.27 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/1782.mjs 2.23 kB 0 B
packages/apps/esm-primary-navigation-app/dist/2096.mjs 137 kB 0 B
packages/apps/esm-primary-navigation-app/dist/2146.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/2146.mjs 230 B 0 B
packages/apps/esm-primary-navigation-app/dist/2267.js 0 B -6.45 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/2267.mjs 6.43 kB 0 B
packages/apps/esm-primary-navigation-app/dist/2690.js 0 B -269 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/2690.mjs 238 B 0 B
packages/apps/esm-primary-navigation-app/dist/2727.js 0 B -1.9 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/2727.mjs 1.86 kB 0 B
packages/apps/esm-primary-navigation-app/dist/3099.js 0 B -285 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/3099.mjs 254 B 0 B
packages/apps/esm-primary-navigation-app/dist/3584.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/3584.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/3637.mjs 179 kB 0 B
packages/apps/esm-primary-navigation-app/dist/4055.js 0 B -277 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/4055.mjs 243 B 0 B
packages/apps/esm-primary-navigation-app/dist/4132.js 0 B -298 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/4132.mjs 264 B 0 B
packages/apps/esm-primary-navigation-app/dist/4300.js 0 B -261 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/4300.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/4335.js 0 B -325 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/4335.mjs 291 B 0 B
packages/apps/esm-primary-navigation-app/dist/4618.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/4618.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/4652.js 0 B -312 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/4652.mjs 276 B 0 B
packages/apps/esm-primary-navigation-app/dist/4740.js 0 B -5.03 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/4740.mjs 4.99 kB 0 B
packages/apps/esm-primary-navigation-app/dist/4944.js 0 B -261 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/4944.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/5173.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/5173.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/5241.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/5241.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/5442.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/5442.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/5623.mjs 42.8 kB 0 B
packages/apps/esm-primary-navigation-app/dist/5661.js 0 B -305 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/5661.mjs 268 B 0 B
packages/apps/esm-primary-navigation-app/dist/5768.mjs 263 kB 0 B
packages/apps/esm-primary-navigation-app/dist/5770.mjs 11.1 kB 0 B
packages/apps/esm-primary-navigation-app/dist/6022.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/6022.mjs 230 B 0 B
packages/apps/esm-primary-navigation-app/dist/6248.js 0 B -7.1 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/6248.mjs 7.06 kB 0 B
packages/apps/esm-primary-navigation-app/dist/6326.js 0 B -2.63 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/6326.mjs 2.6 kB 0 B
packages/apps/esm-primary-navigation-app/dist/6408.mjs 16.5 kB 0 B
packages/apps/esm-primary-navigation-app/dist/6468.js 0 B -289 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/6468.mjs 256 B 0 B
packages/apps/esm-primary-navigation-app/dist/6537.js 0 B -4.25 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/6537.mjs 4.21 kB 0 B
packages/apps/esm-primary-navigation-app/dist/6679.js 0 B -288 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/6679.mjs 254 B 0 B
packages/apps/esm-primary-navigation-app/dist/6840.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/6840.mjs 230 B 0 B
packages/apps/esm-primary-navigation-app/dist/6859.js 0 B -261 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/6859.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/7097.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/7097.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/7159.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/7159.mjs 230 B 0 B
packages/apps/esm-primary-navigation-app/dist/723.js 0 B -263 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/723.mjs 233 B 0 B
packages/apps/esm-primary-navigation-app/dist/7617.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/7617.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/795.js 0 B -363 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/795.mjs 329 B 0 B
packages/apps/esm-primary-navigation-app/dist/815.js 0 B -5.3 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/815.mjs 5.27 kB 0 B
packages/apps/esm-primary-navigation-app/dist/8163.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/8163.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/8349.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/8349.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/8577.mjs 19.2 kB 0 B
packages/apps/esm-primary-navigation-app/dist/8618.js 0 B -261 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/8618.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/890.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/890.mjs 231 B 0 B
packages/apps/esm-primary-navigation-app/dist/9.js 0 B -7.4 kB (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/9.mjs 7.38 kB 0 B
packages/apps/esm-primary-navigation-app/dist/9214.js 0 B -314 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/9214.mjs 279 B 0 B
packages/apps/esm-primary-navigation-app/dist/9538.js 0 B -276 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/9538.mjs 243 B 0 B
packages/apps/esm-primary-navigation-app/dist/9569.js 0 B -261 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/9569.mjs 228 B 0 B
packages/apps/esm-primary-navigation-app/dist/986.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/986.mjs 232 B 0 B
packages/apps/esm-primary-navigation-app/dist/9879.js 0 B -314 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/9879.mjs 278 B 0 B
packages/apps/esm-primary-navigation-app/dist/9895.js 0 B -260 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/9895.mjs 228 B 0 B
packages/apps/esm-primary-navigation-app/dist/9900.js 0 B -260 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/9900.mjs 227 B 0 B
packages/apps/esm-primary-navigation-app/dist/9913.js 0 B -262 B (removed) 🏆
packages/apps/esm-primary-navigation-app/dist/9913.mjs 229 B 0 B
packages/apps/esm-primary-navigation-app/dist/main.mjs 29.1 kB 0 B
packages/apps/esm-primary-navigation-app/dist/openmrs-esm-primary-navigation-app.js 3.08 kB -716 B (-18.87%) 👏
packages/framework/esm-api/dist/current-user.js 1.93 kB 0 B
packages/framework/esm-api/dist/environment.js 134 B 0 B
packages/framework/esm-api/dist/index.js 119 B 0 B
packages/framework/esm-api/dist/openmrs-backend-dependencies.js 119 B 0 B
packages/framework/esm-api/dist/openmrs-fetch.js 3.65 kB 0 B
packages/framework/esm-api/dist/public.js 201 B 0 B
packages/framework/esm-api/dist/setup.js 601 B 0 B
packages/framework/esm-api/dist/types/concept-resource.js 32 B 0 B
packages/framework/esm-api/dist/types/fetch.js 32 B 0 B
packages/framework/esm-api/dist/types/index.js 92 B 0 B
packages/framework/esm-api/dist/types/openmrs-resource.js 32 B 0 B
packages/framework/esm-api/dist/types/person-resource.js 32 B 0 B
packages/framework/esm-api/dist/types/user-resource.js 32 B 0 B
packages/framework/esm-config/dist/index.js 91 B 0 B
packages/framework/esm-config/dist/module-config/module-config.js 7.67 kB 0 B
packages/framework/esm-config/dist/module-config/state.js 1.18 kB 0 B
packages/framework/esm-config/dist/public.js 147 B 0 B
packages/framework/esm-config/dist/types.js 210 B 0 B
packages/framework/esm-config/dist/validators/type-validators.js 299 B 0 B
packages/framework/esm-config/dist/validators/validator.js 431 B 0 B
packages/framework/esm-config/dist/validators/validators.js 726 B 0 B
packages/framework/esm-context/dist/context.js 1.09 kB 0 B
packages/framework/esm-context/dist/index.js 50 B 0 B
packages/framework/esm-context/dist/public.js 50 B 0 B
packages/framework/esm-dynamic-loading/dist/dynamic-loading.js 3.01 kB +83 B (+2.83%)
packages/framework/esm-dynamic-loading/dist/index.js 58 B 0 B
packages/framework/esm-dynamic-loading/dist/public.js 67 B 0 B
packages/framework/esm-emr-api/dist/attachments.js 466 B 0 B
packages/framework/esm-emr-api/dist/current-patient.js 461 B 0 B
packages/framework/esm-emr-api/dist/index.js 110 B 0 B
packages/framework/esm-emr-api/dist/location.js 422 B 0 B
packages/framework/esm-emr-api/dist/public.js 109 B 0 B
packages/framework/esm-emr-api/dist/types/attachments-types.js 32 B 0 B
packages/framework/esm-emr-api/dist/types/diagnosis-resource.js 81 B 0 B
packages/framework/esm-emr-api/dist/types/encounter-resource.js 32 B 0 B
packages/framework/esm-emr-api/dist/types/fhir-resource.js 32 B 0 B
packages/framework/esm-emr-api/dist/types/fhir.js 240 B 0 B
packages/framework/esm-emr-api/dist/types/index.js 123 B 0 B
packages/framework/esm-emr-api/dist/types/location-resource.js 32 B 0 B
packages/framework/esm-emr-api/dist/types/obs-resource.js 32 B 0 B
packages/framework/esm-emr-api/dist/types/patient-resource.js 32 B 0 B
packages/framework/esm-emr-api/dist/types/visit-resource.js 32 B 0 B
packages/framework/esm-emr-api/dist/visit-type.js 310 B 0 B
packages/framework/esm-emr-api/dist/visit-utils.js 990 B 0 B
packages/framework/esm-error-handling/dist/index.js 628 B 0 B
packages/framework/esm-expression-evaluator/dist/evaluator.js 5.04 kB 0 B
packages/framework/esm-expression-evaluator/dist/extractor.js 1.54 kB 0 B
packages/framework/esm-expression-evaluator/dist/globals.js 283 B 0 B
packages/framework/esm-expression-evaluator/dist/index.js 62 B 0 B
packages/framework/esm-expression-evaluator/dist/public.js 136 B 0 B
packages/framework/esm-extensions/dist/extensions.js 3.29 kB 0 B
packages/framework/esm-extensions/dist/helpers.js 165 B 0 B
packages/framework/esm-extensions/dist/index.js 109 B 0 B
packages/framework/esm-extensions/dist/left-nav.js 432 B 0 B
packages/framework/esm-extensions/dist/modals.js 485 B 0 B
packages/framework/esm-extensions/dist/public.js 168 B 0 B
packages/framework/esm-extensions/dist/render.js 826 B 0 B
packages/framework/esm-extensions/dist/store.js 717 B 0 B
packages/framework/esm-extensions/dist/types.js 32 B 0 B
packages/framework/esm-extensions/dist/workspaces.js 1.24 kB 0 B
packages/framework/esm-feature-flags/dist/feature-flags.js 1.11 kB 0 B
packages/framework/esm-feature-flags/dist/index.js 56 B 0 B
packages/framework/esm-feature-flags/dist/public.js 80 B 0 B
packages/framework/esm-framework/dist/openmrs-esm-framework.js 64.4 kB 0 B
packages/framework/esm-globals/dist/events.js 579 B 0 B
packages/framework/esm-globals/dist/index.js 58 B 0 B
packages/framework/esm-globals/dist/public.js 159 B 0 B
packages/framework/esm-globals/dist/types.js 130 B 0 B
packages/framework/esm-navigation/dist/breadcrumbs/db.js 389 B 0 B
packages/framework/esm-navigation/dist/breadcrumbs/filter.js 458 B 0 B
packages/framework/esm-navigation/dist/history/history.js 970 B 0 B
packages/framework/esm-navigation/dist/index.js 116 B 0 B
packages/framework/esm-navigation/dist/navigation/interpolate-string.js 795 B 0 B
packages/framework/esm-navigation/dist/navigation/navigate.js 830 B 0 B
packages/framework/esm-navigation/dist/public.js 143 B 0 B
packages/framework/esm-navigation/dist/types.js 68 B 0 B
packages/framework/esm-offline/dist/dynamic-offline-data.js 1.84 kB 0 B
packages/framework/esm-offline/dist/index.js 153 B 0 B
packages/framework/esm-offline/dist/mode.js 645 B 0 B
packages/framework/esm-offline/dist/offline-db.js 657 B 0 B
packages/framework/esm-offline/dist/offline-patient-data.js 615 B 0 B
packages/framework/esm-offline/dist/public.js 245 B 0 B
packages/framework/esm-offline/dist/service-worker-http-headers.js 155 B 0 B
packages/framework/esm-offline/dist/service-worker-messaging.js 381 B 0 B
packages/framework/esm-offline/dist/service-worker.js 658 B 0 B
packages/framework/esm-offline/dist/sync.js 2.52 kB 0 B
packages/framework/esm-offline/dist/uuid-support.js 290 B 0 B
packages/framework/esm-react-utils/dist/ComponentContext.js 165 B 0 B
packages/framework/esm-react-utils/dist/ConfigurableLink.js 876 B 0 B
packages/framework/esm-react-utils/dist/Extension.js 1.09 kB 0 B
packages/framework/esm-react-utils/dist/ExtensionSlot.js 1.35 kB 0 B
packages/framework/esm-react-utils/dist/getLifecycle.js 340 B 0 B
packages/framework/esm-react-utils/dist/index.js 458 B 0 B
packages/framework/esm-react-utils/dist/openmrsComponentDecorator.js 1.34 kB 0 B
packages/framework/esm-react-utils/dist/OpenmrsContext.js 420 B 0 B
packages/framework/esm-react-utils/dist/public.js 422 B 0 B
packages/framework/esm-react-utils/dist/RenderIfValueIsTruthy.js 404 B 0 B
packages/framework/esm-react-utils/dist/useAbortController.js 490 B 0 B
packages/framework/esm-react-utils/dist/useAppContext.js 763 B 0 B
packages/framework/esm-react-utils/dist/useAssignedExtensionIds.js 413 B 0 B
packages/framework/esm-react-utils/dist/useAssignedExtensions.js 229 B 0 B
packages/framework/esm-react-utils/dist/useAttachments.js 342 B 0 B
packages/framework/esm-react-utils/dist/useBodyScrollLock.js 241 B 0 B
packages/framework/esm-react-utils/dist/useConfig.js 1.24 kB 0 B
packages/framework/esm-react-utils/dist/useConnectedExtensions.js 206 B 0 B
packages/framework/esm-react-utils/dist/useConnectivity.js 242 B 0 B
packages/framework/esm-react-utils/dist/useDebounce.js 600 B 0 B
packages/framework/esm-react-utils/dist/useDefineAppContext.js 837 B 0 B
packages/framework/esm-react-utils/dist/useEmrConfiguration.js 1.24 kB 0 B
packages/framework/esm-react-utils/dist/useExtensionInternalStore.js 162 B 0 B
packages/framework/esm-react-utils/dist/useExtensionSlot.js 337 B 0 B
packages/framework/esm-react-utils/dist/useExtensionSlotMeta.js 270 B 0 B
packages/framework/esm-react-utils/dist/useExtensionSlotStore.js 168 B 0 B
packages/framework/esm-react-utils/dist/useExtensionStore.js 146 B 0 B
packages/framework/esm-react-utils/dist/useFeatureFlag.js 372 B 0 B
packages/framework/esm-react-utils/dist/useFhirFetchAll.js 392 B 0 B
packages/framework/esm-react-utils/dist/useFhirInfinite.js 442 B 0 B
packages/framework/esm-react-utils/dist/useFhirPagination.js 858 B 0 B
packages/framework/esm-react-utils/dist/useForceUpdate.js 169 B 0 B
packages/framework/esm-react-utils/dist/useLayoutType.js 401 B 0 B
packages/framework/esm-react-utils/dist/useLeftNav.js 253 B 0 B
packages/framework/esm-react-utils/dist/useLeftNavStore.js 134 B 0 B
packages/framework/esm-react-utils/dist/useLocations.js 291 B 0 B
packages/framework/esm-react-utils/dist/useOnClickOutside.js 320 B 0 B
packages/framework/esm-react-utils/dist/useOnVisible.js 632 B 0 B
packages/framework/esm-react-utils/dist/useOpenmrsFetchAll.js 714 B 0 B
packages/framework/esm-react-utils/dist/useOpenmrsInfinite.js 1.37 kB 0 B
packages/framework/esm-react-utils/dist/useOpenmrsPagination.js 1.96 kB 0 B
packages/framework/esm-react-utils/dist/useOpenmrsSWR.js 921 B 0 B
packages/framework/esm-react-utils/dist/usePagination.js 724 B 0 B
packages/framework/esm-react-utils/dist/usePatient.js 689 B 0 B
packages/framework/esm-react-utils/dist/usePrimaryIdentifierResource.js 337 B 0 B
packages/framework/esm-react-utils/dist/useRenderableExtensions.js 701 B 0 B
packages/framework/esm-react-utils/dist/UserHasAccess.js 935 B 0 B
packages/framework/esm-react-utils/dist/useSession.js 1.63 kB 0 B
packages/framework/esm-react-utils/dist/useStore.js 634 B 0 B
packages/framework/esm-react-utils/dist/useVisit.js 1.38 kB 0 B
packages/framework/esm-react-utils/dist/useVisitContextStore.js 700 B 0 B
packages/framework/esm-react-utils/dist/useVisitTypes.js 255 B 0 B
packages/framework/esm-routes/dist/constants.js 76 B 0 B
packages/framework/esm-routes/dist/index.js 77 B 0 B
packages/framework/esm-routes/dist/loaders/app.js 1.42 kB 0 B
packages/framework/esm-routes/dist/loaders/components.js 1.41 kB 0 B
packages/framework/esm-routes/dist/loaders/helpers.js 205 B 0 B
packages/framework/esm-routes/dist/loaders/index.js 127 B 0 B
packages/framework/esm-routes/dist/loaders/pages.js 2.55 kB 0 B
packages/framework/esm-routes/dist/public.js 96 B 0 B
packages/framework/esm-routes/dist/routes.js 1.38 kB 0 B
packages/framework/esm-state/dist/index.js 48 B 0 B
packages/framework/esm-state/dist/public.js 86 B 0 B
packages/framework/esm-state/dist/state.js 945 B 0 B
packages/framework/esm-styleguide/dist/openmrs-esm-styleguide.js 69.2 kB 0 B
packages/framework/esm-translations/dist/index.js 1.19 kB 0 B
packages/framework/esm-translations/dist/public.js 76 B 0 B
packages/framework/esm-translations/dist/translations.js 1.13 kB 0 B
packages/framework/esm-utils/dist/age-helpers.js 1.21 kB 0 B
packages/framework/esm-utils/dist/dates/date-util.js 3.5 kB 0 B
packages/framework/esm-utils/dist/dates/index.js 52 B 0 B
packages/framework/esm-utils/dist/get-locale.js 299 B 0 B
packages/framework/esm-utils/dist/index.js 133 B 0 B
packages/framework/esm-utils/dist/is-online.js 114 B 0 B
packages/framework/esm-utils/dist/patient-helpers.js 1 kB 0 B
packages/framework/esm-utils/dist/retry.js 801 B 0 B
packages/framework/esm-utils/dist/shallowEqual.js 511 B 0 B
packages/framework/esm-utils/dist/storage.js 324 B 0 B
packages/framework/esm-utils/dist/test-helpers.js 463 B 0 B
packages/framework/esm-utils/dist/version.js 352 B 0 B
packages/shell/esm-app-shell/dist/0e10a37a9bae7e8d.js 11.4 kB 0 B
packages/shell/esm-app-shell/dist/1e8b9127c3281dfe.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/2516e2046d9c81c9.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/2825fb02650cf861.js 1.36 kB 0 B
packages/shell/esm-app-shell/dist/2a84066ff67ad72e.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/32ea568d22058049.js 216 kB 0 B
packages/shell/esm-app-shell/dist/3c36d5729f51a372.js 42.9 kB 0 B
packages/shell/esm-app-shell/dist/5790114fc1019f6d.js 1.59 kB 0 B
packages/shell/esm-app-shell/dist/5c3cea1ee30439d3.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/5e8aea2775453e88.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/6027b02670e34d28.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/6232a7cbf87ec312.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/63efd7b1aefa8d6b.js 6.99 kB 0 B
packages/shell/esm-app-shell/dist/6b8a9c458e21b16e.js 46 kB 0 B
packages/shell/esm-app-shell/dist/715135ad7808fce8.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/7328557b64de6463.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/77b6e8219d40a797.js 60.8 kB 0 B
packages/shell/esm-app-shell/dist/78abb2fc197c239f.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/7da220e8fc6bcb35.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/7f92d3443e35dd8b.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/829724f1f200a2ee.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/87e6b579c079e582.js 8.31 kB 0 B
packages/shell/esm-app-shell/dist/8c91abbfc363ea0e.js 624 B 0 B
packages/shell/esm-app-shell/dist/8f60d160139dbba3.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/8ff2a85ace71d15a.js 6.74 kB 0 B
packages/shell/esm-app-shell/dist/91b81de5d7940acc.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/91ffa98a1e4e91ae.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/9573d087e2a080cd.js 1.27 kB 0 B
packages/shell/esm-app-shell/dist/9c90d6e03b876cf9.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/9cc6b7ee907dadf9.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/9d9b5948b9557c23.js 1.26 kB 0 B
packages/shell/esm-app-shell/dist/9e9cc95b1953c2b6.js 8.31 kB 0 B
packages/shell/esm-app-shell/dist/a82bf349951b57a1.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/aa5896728c586735.js 12.3 kB 0 B
packages/shell/esm-app-shell/dist/aa5f733e913976dc.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/ab9d0cc83676e063.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/af6b3c69f173daaf.js 4.11 kB 0 B
packages/shell/esm-app-shell/dist/bdbf75cd5853d4ac.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/bee4d759d3117b02.js 1.41 kB 0 B
packages/shell/esm-app-shell/dist/c0c9f1d5dfec3d10.js 7.22 kB 0 B
packages/shell/esm-app-shell/dist/c2f4c5d3e118785c.js 2.67 kB 0 B
packages/shell/esm-app-shell/dist/c372f3a924a86402.js 1.07 kB 0 B
packages/shell/esm-app-shell/dist/c61bf8aef5251a70.js 4.19 kB 0 B
packages/shell/esm-app-shell/dist/c6bf699d0e801cc2.js 624 B 0 B
packages/shell/esm-app-shell/dist/cd3a70cd2e408543.js 1.16 kB 0 B
packages/shell/esm-app-shell/dist/ce9d08a8e4e854a7.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/d343ec3b11180b9a.js 1.24 kB 0 B
packages/shell/esm-app-shell/dist/d831d6f8a92615f6.js 1.15 kB 0 B
packages/shell/esm-app-shell/dist/d965c6eb56e9dc06.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/db87064ef194b5e4.js 243 kB 0 B
packages/shell/esm-app-shell/dist/df7265be97f52039.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/e27b3a4ba9bff9e9.js 3.34 kB 0 B
packages/shell/esm-app-shell/dist/e528393f4819a96f.js 1.37 kB 0 B
packages/shell/esm-app-shell/dist/e8de4c90f85c7f4b.js 6.56 kB 0 B
packages/shell/esm-app-shell/dist/e9b0f86e4d07adf1.js 1.37 kB 0 B
packages/shell/esm-app-shell/dist/e9ce6a4a78d30cd3.js 1.26 kB 0 B
packages/shell/esm-app-shell/dist/e9f6b090c9f00f5d.js 4.11 kB 0 B
packages/shell/esm-app-shell/dist/f08bee4ef22c11d3.js 15.2 kB 0 B
packages/shell/esm-app-shell/dist/fa85d63c2b5f3370.js 1.26 kB 0 B
packages/shell/esm-app-shell/dist/fb0223a82fb6d20c.js 1.11 kB 0 B
packages/shell/esm-app-shell/dist/fd8b4a1d8d8b662a.js 1.06 kB 0 B
packages/shell/esm-app-shell/dist/openmrs.c6fc344943cdb2bf.js 25.6 kB 0 B
packages/shell/esm-app-shell/dist/service-worker.js 45.4 kB 0 B
packages/tooling/openmrs/dist/cli.js 2.95 kB 0 B
packages/tooling/openmrs/dist/commands/assemble.js 3.32 kB 0 B
packages/tooling/openmrs/dist/commands/build.js 1.34 kB 0 B
packages/tooling/openmrs/dist/commands/debug.js 543 B 0 B
packages/tooling/openmrs/dist/commands/develop.js 2.72 kB 0 B
packages/tooling/openmrs/dist/commands/index.js 437 B 0 B
packages/tooling/openmrs/dist/commands/start.js 858 B 0 B
packages/tooling/openmrs/dist/index.js 517 B 0 B
packages/tooling/openmrs/dist/runner.js 640 B 0 B
packages/tooling/openmrs/dist/utils/config.js 726 B 0 B
packages/tooling/openmrs/dist/utils/debugger.js 682 B 0 B
packages/tooling/openmrs/dist/utils/dependencies.js 643 B 0 B
packages/tooling/openmrs/dist/utils/devserver.js 293 B 0 B
packages/tooling/openmrs/dist/utils/helpers.js 397 B 0 B
packages/tooling/openmrs/dist/utils/importmap.js 3.31 kB 0 B
packages/tooling/openmrs/dist/utils/index.js 443 B 0 B
packages/tooling/openmrs/dist/utils/logger.js 368 B 0 B
packages/tooling/openmrs/dist/utils/npmConfig.js 831 B 0 B
packages/tooling/openmrs/dist/utils/untar.js 725 B 0 B
packages/tooling/openmrs/dist/utils/variables.js 192 B 0 B
packages/tooling/rspack-config/dist/index.js 4.03 kB +14 B (+0.35%)
packages/tooling/webpack-config/dist/index.js 3.7 kB +14 B (+0.38%)

compressed-size-action

timeout && clearTimeout(timeout);

const jsPackageSlug = slugify(jsPackage);
const maybeContainer = await import(/* webpackIgnore: true */ jsPackage);
Copy link
Member Author

@ibacher ibacher Jun 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once we've migrated the existing apps, we should be able to replace this whole dynamic loading stuff with something like:

const container = await import(/* webpackIgnore: true */ jsPackage);
if (!isFederatedModule(container)) {
  const error = `The package ${jsPackage} is not a federated module`;
  console.error(error);
  throw new Error(error);
}

container.init(__webpack_share_scopes__.default);

const factory = await container.get(share);
const module = factory();

if (!(typeof module === 'object') || module === null) {
  const error = `Container for ${jsPackage} did not return an ESM module as expected`;
  console.error(error);
  throw new Error(error);
}
return module as unknown as T;

And once we get to shared dependencies on the import map, this will all go away completely.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've largely left the app shell itself alone. When I tried moving it to an ESM, the window.initializeSpa variable wasn't being set. We'd also need to migrate to moving at least the import-map-overrides and import-map-injector inclusions to the index.ejs script.

Not exactly sure how to get those imports into the ejs file so that they use the local copy.

It may be that we need to switch the script block to a module, import @openmrs/esm-app-shell and run the initializeSpa() entry point from there?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jolyndenning This is a point I could use some pointers on.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the following would fix the initializeSpa problem:

<script>
  window.importMapInjector.initPromise
    .then(() => import('@openmrs/whichever-module-defines-initializeSpa'))
    .then(module => {
      module.initializeSpa({...});
    })
    .catch(err => {
      // some kind of error handling?
    })
</script>

@denniskigen
Copy link
Member

Thanks, @ibacher. Did you mean to use the BREAKING conventional commit label here?

@ibacher
Copy link
Member Author

ibacher commented Jun 11, 2025

Actually, no. I called the branch breaking because I thought it would be, but this should actually be backwards-compatible (once I fix whatever is causing the failures there).

proxyRes.headers && delete proxyRes.headers['content-security-policy'];

if (req.url.endsWith('importmap.json')) {
proxyRes.headers['content-type'] = 'application/importmap+json';
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly a note to myself, but we'll need to make a similar change in the CLI, the RefApp, and the SPA module

Copy link

@internettrans internettrans left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will the feat() PR title result in this being applied as a minor rather than major change?

The branch name is breaking/use-real-esms

/**
* Globals added by the @single-spa/import-map-injector package.
*/
importMapInjector: {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is defined in the types published to npm. Is it possible to reuse those types?

https://app.unpkg.com/@single-spa/[email protected]/files/types/import-map-injector.d.ts#L11

<% } %>
<% if (openmrsCoreImportmap) { %>
<script type="systemjs-importmap"><%= openmrsCoreImportmap %></script>
<script type="injector-importmap"><%= openmrsCoreImportmap %></script>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why spaces added? For indentation because of ejs? Output html will have indentation bc of this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly for consistency. It matches the indentation of all the other sub-elements of <head>.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the following would fix the initializeSpa problem:

<script>
  window.importMapInjector.initPromise
    .then(() => import('@openmrs/whichever-module-defines-initializeSpa'))
    .then(module => {
      module.initializeSpa({...});
    })
    .catch(err => {
      // some kind of error handling?
    })
</script>

const { run } = await import(/* webpackPreload: true */ './run');
return run(configUrls);
});
return window.importMapInjector.initPromise.then(() =>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is esm-app-shell built and loaded into the html file? What is the module format of the built version of it?

Is it part of htmlWebpackPlugin's body tags? <%= htmlWebpackPlugin.tags.bodyTags %>?

What I would expect is to see a script tag only loading import-map-injector within index.ejs, and then it loads esm-app-shell after initPromise resolves. The reason is that native import() or <script type=module> cannot be used until the import map is installed.

In index.ejs, it looks like sometimes there is an external import map and sometimes not. When there is not an external import map, waiting for initPromise is not required, since import-map-injector inserts the native import map synchronously. The optimal solution might account for that, with two code paths for external vs inline import maps.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it part of htmlWebpackPlugin's body tags?

Yes.

What I would expect is to see a script tag only loading import-map-injector within index.ejs

For now because I didn't move the app shell entry point to an ESM, it wasn't necessary, but yes.

In index.ejs, it looks like sometimes there is an external import map and sometimes not.

We could take that into account, but presently for production builds, it's always using an external import map; the embedded import map is currently only used in development mode.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer having the app shell be an ES module so that it can export things that are available via cross microfrontend import to other microfrontends.

},
mode,
devtool: isProd ? 'hidden-nosources-source-map' : 'eval-source-map',
devtool: isProd ? 'hidden-nosources-source-map' : 'source-map',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this change? Since eval-source-map is for dev?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah! This shouldn't've been part of the commit. I was just looking through the generated file and it's easier to read with the source map externalized.

@ibacher
Copy link
Member Author

ibacher commented Jun 13, 2025

Will the feat() PR title result in this being applied as a minor rather than major change?

Well, we version things manually, but as-is, this is currently backwards-compatible with existing code.

@internettrans
Copy link

Well, we version things manually, but as-is, this is currently backwards-compatible with existing code.

Technically this is a breaking change, depending on the contents of the bundles being loaded, since modules loaded via <script type="text/javascript"> are not necessarily in strict mode, but those loaded via <script type=module> or import() are. Additionally, certain syntaxes such as import and export are only available depending on this.

However, practically speaking, that change might not break things, depending on the implementation details of the bundles.

Another way it could be breaking is because the global variables previously created are no longer created. Is there other code outside of preloadImport that relies upon window[slugifiedPackageName]?

It's safer to mark this as a break change, and technically it is one.

@ibacher
Copy link
Member Author

ibacher commented Jun 18, 2025

Is there other code outside of preloadImport that relies upon window[slugifiedPackageName]?

That and importDynamic. This falls into the "gory details" we try to confine to core. The definition of breaking change I'm working from is whether or not it will require code changes for code downstream of the esm-core, but you are right that this is probably a breaking change anyway.

@ibacher ibacher changed the title (feat) Change Webpack config to output real ESM modules (BREAKING) Change Webpack config to output real ESM modules Jun 18, 2025
@jwnasambu
Copy link
Contributor

@ibacher Thanks for working on this issue. Could you kindly fix the merge conflicts, please?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants