Skip to content

(feat) Federate most of the Module Federation runtime - #1853

Merged
ibacher merged 5 commits into
mainfrom
O3-5873-mf-runtime
Aug 27, 2026
Merged

(feat) Federate most of the Module Federation runtime#1853
ibacher merged 5 commits into
mainfrom
O3-5873-mf-runtime

Conversation

@ibacher

@ibacher ibacher commented Aug 25, 2026

Copy link
Copy Markdown
Member

Requirements

  • This PR has a title that briefly describes the work done including the ticket number. If there is a ticket, make sure your PR title includes a conventional commit label. See existing PR titles for inspiration.
  • My work is based on designs, which are linked or shown either in the Jira ticket or the description below. (See also: Styleguide)
  • My work includes tests or is validated by existing tests.
  • I have updated the esm-framework and storybook mocks (mock.tsx, mock-jest.tsx, and storybook mocks) to reflect any API changes.

Summary

Effectively, this moves most of the Module Federation runtime into the app-shell, which means that apps built with a version of the rspack or webpack config after this PR is merged can no longer be run on older versions of the app shell.

RSpack bundles the Module Federation runtime into every app. This is desirable for some configurations, as it guarantees the app can always be loaded. However, it also adds some overhead to the initial chunk of every app (~85kB of which this PR reclaims ~50kB).

As an unintended consequence, this now puts us fully on Module Federation 2.0.

I've verified with testing that we, at least, don't duplicate the framework, even with older apps. Other federated libraries may accidentally be duplicated, but apart from SWR (where our framework already overwrites its internal cache), I'm not aware of any place where we are dependent on library-global state. Basically, this means this should be safe.

Screenshots

Related Issue

Other

Effectively, this moves most of the Module Federation runtime into the
app-shell, which means that apps built with a version of the rspack
or webpack config after this PR is merged can no longer be run on _older_
versions of the app shell.

RSpack bundles the Module Federation runtime into every app. This is
desirable for some configurations, as it guarantees the app can always be
loaded. However, it also adds some overhead to the initial chunk of every
app (~85kB of which this PR reclaims ~50kB).

As an unintended consequence, this now puts us fully on Module
Federation 2.0.

I've verified with testing that we, at least, don't duplicate the framework,
even with older apps. Other federated libraries may accidentally be
duplicated, but apart from SWR (where our framework already overwrites
its internal cache), I'm not aware of any place where we are dependent
on library-global state. Basically, this means this should be safe.
@changeset-bot

changeset-bot Bot commented Aug 25, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: a20fca3

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@ibacher
ibacher requested review from denniskigen and a lite review from Copilot August 25, 2026 14:43

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is now the "federation runtime". Note, though, that we're basically just creating global variables to hold it's state.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Integration tests added (but not published)

* globals are checked because `_FEDERATION_ERROR_CODES` is what describes the failure, and a runtime
* minor differing from the app shell's warns. `@openmrs/webpack-config` has a copy of this; keep them in step.
*/
function buildFederationRuntimeGuard(appName: string, expectedMinor: string | undefined) {

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is the bit of this PR I don't love, but it's the best way to get us a useful error is something goes wrong.

Comment on lines +83 to +84
'This app was built with newer OpenMRS tooling than the app shell, so either upgrade @openmrs/esm-app-shell, ' +
"or rebuild this app with tooling matching the app shell.');}";

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is the weird failure condition: deploying a newer app on an older app shell will not work since the older app shell will not provide the runtime the newer app expects.

* globals are checked because `_FEDERATION_ERROR_CODES` is what describes the failure, and a runtime
* minor differing from the app shell's warns. `@openmrs/rspack-config` has a copy of this; keep them in step.
*/
function buildFederationRuntimeGuard(appName: string, expectedMinor: string | undefined) {

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Same ugly code, but Webpack version

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Size Change: -861 kB (-10.07%) 👏

Total Size: 7.69 MB

📦 View Changed
Filename Size Change
packages/apps/esm-devtools-app/dist/main.js 9.54 kB -15.8 kB (-62.32%) 🏆
packages/apps/esm-devtools-app/dist/openmrs-esm-devtools-app.js 9.38 kB -15.8 kB (-62.73%) 🏆
packages/apps/esm-help-menu-app/dist/main.js 14 kB -16 kB (-53.39%) 🏆
packages/apps/esm-help-menu-app/dist/openmrs-esm-help-menu-app.js 9.36 kB -15.8 kB (-62.78%) 🏆
packages/apps/esm-implementer-tools-app/dist/main.js 25.7 kB -16.1 kB (-38.53%) 🎉
packages/apps/esm-implementer-tools-app/dist/openmrs-esm-implementer-tools-app.js 9.67 kB -15.8 kB (-62.02%) 🏆
packages/apps/esm-login-app/dist/main.js 71 kB -15.9 kB (-18.32%) 👏
packages/apps/esm-login-app/dist/openmrs-esm-login-app.js 9.65 kB -15.8 kB (-62.03%) 🏆
packages/apps/esm-offline-tools-app/dist/main.js 68.5 kB -17.1 kB (-19.94%) 🎉
packages/apps/esm-offline-tools-app/dist/openmrs-esm-offline-tools-app.js 9.68 kB -15.8 kB (-61.99%) 🏆
packages/apps/esm-primary-navigation-app/dist/main.js 36.9 kB -16 kB (-30.29%) 🎉
packages/apps/esm-primary-navigation-app/dist/openmrs-esm-primary-navigation-app.js 9.52 kB -15.8 kB (-62.38%) 🏆
packages/shell/esm-app-shell/dist/0cf6d2fca5bd467d.js 0 B -33.1 kB (removed) 🏆
packages/shell/esm-app-shell/dist/0db3b903f784a131.js 0 B -238 kB (removed) 🏆
packages/shell/esm-app-shell/dist/98b428008990f466.js 0 B -42.8 kB (removed) 🏆
packages/shell/esm-app-shell/dist/790ebb7f7c3a944e.js 0 B -11.2 kB (removed) 🏆
packages/shell/esm-app-shell/dist/2977d80d1391b826.js 0 B -26.7 kB (removed) 🏆
packages/shell/esm-app-shell/dist/97165ec17daf35fc.js 0 B -22.7 kB (removed) 🏆
packages/shell/esm-app-shell/dist/c23d889af7916acd.js 0 B -267 kB (removed) 🏆
packages/shell/esm-app-shell/dist/openmrs.bcbf27909a05a157.js 0 B -28 kB (removed) 🏆
ℹ️ View Unchanged
Filename Size Change
packages/apps/esm-devtools-app/dist/116.js 199 kB 0 B
packages/apps/esm-devtools-app/dist/117.js 352 B 0 B
packages/apps/esm-devtools-app/dist/165.js 6.25 kB 0 B
packages/apps/esm-devtools-app/dist/195.js 186 kB 0 B
packages/apps/esm-devtools-app/dist/335.js 500 B 0 B
packages/apps/esm-devtools-app/dist/613.js 11 kB 0 B
packages/apps/esm-devtools-app/dist/651.js 5.6 kB 0 B
packages/apps/esm-devtools-app/dist/735.js 42.5 kB 0 B
packages/apps/esm-devtools-app/dist/807.js 2.31 kB 0 B
packages/apps/esm-devtools-app/dist/819.js 2.58 kB 0 B
packages/apps/esm-devtools-app/dist/827.js 11.8 kB 0 B
packages/apps/esm-devtools-app/dist/889.js 195 kB 0 B
packages/apps/esm-help-menu-app/dist/20.js 2.09 kB 0 B
packages/apps/esm-help-menu-app/dist/39.js 695 B 0 B
packages/apps/esm-help-menu-app/dist/116.js 42.5 kB 0 B
packages/apps/esm-help-menu-app/dist/117.js 205 B 0 B
packages/apps/esm-help-menu-app/dist/120.js 186 kB 0 B
packages/apps/esm-help-menu-app/dist/165.js 4.93 kB 0 B
packages/apps/esm-help-menu-app/dist/408.js 3.36 kB 0 B
packages/apps/esm-help-menu-app/dist/438.js 10.2 kB 0 B
packages/apps/esm-help-menu-app/dist/613.js 11 kB 0 B
packages/apps/esm-help-menu-app/dist/614.js 197 kB 0 B
packages/apps/esm-help-menu-app/dist/651.js 5.6 kB 0 B
packages/apps/esm-help-menu-app/dist/819.js 2.58 kB 0 B
packages/apps/esm-help-menu-app/dist/878.js 1.64 kB 0 B
packages/apps/esm-help-menu-app/dist/889.js 195 kB 0 B
packages/apps/esm-help-menu-app/dist/981.js 465 B 0 B
packages/apps/esm-implementer-tools-app/dist/17be7b1ecff555fb.js 7.04 kB 0 B
packages/apps/esm-implementer-tools-app/dist/195.js 186 kB 0 B
packages/apps/esm-implementer-tools-app/dist/282.js 809 B 0 B
packages/apps/esm-implementer-tools-app/dist/434.js 808 B 0 B
packages/apps/esm-implementer-tools-app/dist/556.js 809 B 0 B
packages/apps/esm-implementer-tools-app/dist/651.js 5.61 kB 0 B
packages/apps/esm-implementer-tools-app/dist/903.js 809 B 0 B
packages/apps/esm-implementer-tools-app/dist/932.js 145 kB 0 B
packages/apps/esm-implementer-tools-app/dist/1389.js 32.3 kB 0 B
packages/apps/esm-implementer-tools-app/dist/1480.js 1.11 kB 0 B
packages/apps/esm-implementer-tools-app/dist/1582.js 3.02 kB 0 B
packages/apps/esm-implementer-tools-app/dist/1646.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/1869.js 809 B 0 B
packages/apps/esm-implementer-tools-app/dist/1877.js 954 B 0 B
packages/apps/esm-implementer-tools-app/dist/2317.js 956 B 0 B
packages/apps/esm-implementer-tools-app/dist/2416.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/2826.js 185 kB 0 B
packages/apps/esm-implementer-tools-app/dist/2881.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/2920.js 4.68 kB 0 B
packages/apps/esm-implementer-tools-app/dist/3038.js 13.4 kB 0 B
packages/apps/esm-implementer-tools-app/dist/3165.js 6.25 kB 0 B
packages/apps/esm-implementer-tools-app/dist/3378.js 809 B 0 B
packages/apps/esm-implementer-tools-app/dist/3963.js 940 B 0 B
packages/apps/esm-implementer-tools-app/dist/4106.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/4111.js 903 B 0 B
packages/apps/esm-implementer-tools-app/dist/4348.js 808 B 0 B
packages/apps/esm-implementer-tools-app/dist/4373.js 4.23 kB 0 B
packages/apps/esm-implementer-tools-app/dist/4383.js 809 B 0 B
packages/apps/esm-implementer-tools-app/dist/4658.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/4928.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/5117.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/5132.js 920 B 0 B
packages/apps/esm-implementer-tools-app/dist/5145.js 972 B 0 B
packages/apps/esm-implementer-tools-app/dist/5503.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/5644.js 1.05 kB 0 B
packages/apps/esm-implementer-tools-app/dist/5819.js 2.58 kB 0 B
packages/apps/esm-implementer-tools-app/dist/5940.js 809 B 0 B
packages/apps/esm-implementer-tools-app/dist/6047.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/6371.js 954 B 0 B
packages/apps/esm-implementer-tools-app/dist/6377.js 809 B 0 B
packages/apps/esm-implementer-tools-app/dist/6444.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/6508.js 968 B 0 B
packages/apps/esm-implementer-tools-app/dist/6724.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/6847.js 481 B 0 B
packages/apps/esm-implementer-tools-app/dist/6904.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/7045.js 1.02 kB 0 B
packages/apps/esm-implementer-tools-app/dist/7175.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/7182.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/7487.js 7.89 kB 0 B
packages/apps/esm-implementer-tools-app/dist/7742.js 1.06 kB 0 B
packages/apps/esm-implementer-tools-app/dist/7889.js 195 kB 0 B
packages/apps/esm-implementer-tools-app/dist/7912.js 966 B 0 B
packages/apps/esm-implementer-tools-app/dist/7918.js 2.22 kB 0 B
packages/apps/esm-implementer-tools-app/dist/8088.js 91 kB 0 B
packages/apps/esm-implementer-tools-app/dist/8358.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/8359.js 1.29 kB 0 B
packages/apps/esm-implementer-tools-app/dist/8574.js 3.07 kB 0 B
packages/apps/esm-implementer-tools-app/dist/8613.js 11.1 kB 0 B
packages/apps/esm-implementer-tools-app/dist/8695.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/9072.js 810 B 0 B
packages/apps/esm-implementer-tools-app/dist/9116.js 42.5 kB 0 B
packages/apps/esm-implementer-tools-app/dist/9228.js 482 B 0 B
packages/apps/esm-implementer-tools-app/dist/9270.js 2.67 kB 0 B
packages/apps/esm-implementer-tools-app/dist/9806.js 809 B 0 B
packages/apps/esm-login-app/dist/195.js 186 kB 0 B
packages/apps/esm-login-app/dist/282.js 762 B 0 B
packages/apps/esm-login-app/dist/434.js 761 B 0 B
packages/apps/esm-login-app/dist/556.js 762 B 0 B
packages/apps/esm-login-app/dist/651.js 5.6 kB 0 B
packages/apps/esm-login-app/dist/903.js 794 B 0 B
packages/apps/esm-login-app/dist/1021.js 37.3 kB 0 B
packages/apps/esm-login-app/dist/1480.js 1.03 kB 0 B
packages/apps/esm-login-app/dist/1582.js 3 kB 0 B
packages/apps/esm-login-app/dist/1604.js 6 kB 0 B
packages/apps/esm-login-app/dist/1646.js 763 B 0 B
packages/apps/esm-login-app/dist/1869.js 801 B 0 B
packages/apps/esm-login-app/dist/1877.js 919 B 0 B
packages/apps/esm-login-app/dist/2007.js 10.4 kB 0 B
packages/apps/esm-login-app/dist/2317.js 927 B 0 B
packages/apps/esm-login-app/dist/2416.js 763 B 0 B
packages/apps/esm-login-app/dist/2824.js 4.47 kB 0 B
packages/apps/esm-login-app/dist/2881.js 848 B 0 B
packages/apps/esm-login-app/dist/3378.js 789 B 0 B
packages/apps/esm-login-app/dist/3963.js 923 B 0 B
packages/apps/esm-login-app/dist/4106.js 763 B 0 B
packages/apps/esm-login-app/dist/4111.js 885 B 0 B
packages/apps/esm-login-app/dist/4348.js 761 B 0 B
packages/apps/esm-login-app/dist/4383.js 763 B 0 B
packages/apps/esm-login-app/dist/4658.js 763 B 0 B
packages/apps/esm-login-app/dist/4928.js 763 B 0 B
packages/apps/esm-login-app/dist/5117.js 1.55 kB 0 B
packages/apps/esm-login-app/dist/5132.js 893 B 0 B
packages/apps/esm-login-app/dist/5145.js 920 B 0 B
packages/apps/esm-login-app/dist/5356.js 189 kB 0 B
packages/apps/esm-login-app/dist/5503.js 763 B 0 B
packages/apps/esm-login-app/dist/5644.js 952 B 0 B
packages/apps/esm-login-app/dist/5819.js 2.58 kB 0 B
packages/apps/esm-login-app/dist/5940.js 1.06 kB 0 B
packages/apps/esm-login-app/dist/6047.js 837 B 0 B
packages/apps/esm-login-app/dist/6371.js 1.04 kB 0 B
packages/apps/esm-login-app/dist/6377.js 763 B 0 B
packages/apps/esm-login-app/dist/6444.js 1.13 kB 0 B
packages/apps/esm-login-app/dist/6508.js 938 B 0 B
packages/apps/esm-login-app/dist/6724.js 763 B 0 B
packages/apps/esm-login-app/dist/6847.js 475 B 0 B
packages/apps/esm-login-app/dist/6904.js 763 B 0 B
packages/apps/esm-login-app/dist/7045.js 1 kB 0 B
packages/apps/esm-login-app/dist/7175.js 763 B 0 B
packages/apps/esm-login-app/dist/7182.js 763 B 0 B
packages/apps/esm-login-app/dist/7742.js 953 B 0 B
packages/apps/esm-login-app/dist/7889.js 194 kB 0 B
packages/apps/esm-login-app/dist/7912.js 898 B 0 B
packages/apps/esm-login-app/dist/7918.js 2.21 kB 0 B
packages/apps/esm-login-app/dist/8031.js 26.6 kB 0 B
packages/apps/esm-login-app/dist/8069.js 22.5 kB 0 B
packages/apps/esm-login-app/dist/8358.js 763 B 0 B
packages/apps/esm-login-app/dist/8359.js 1.13 kB 0 B
packages/apps/esm-login-app/dist/8574.js 3.06 kB 0 B
packages/apps/esm-login-app/dist/8588.js 2.58 kB 0 B
packages/apps/esm-login-app/dist/8613.js 11 kB 0 B
packages/apps/esm-login-app/dist/8695.js 763 B 0 B
packages/apps/esm-login-app/dist/9072.js 852 B 0 B
packages/apps/esm-login-app/dist/9116.js 42.5 kB 0 B
packages/apps/esm-login-app/dist/9228.js 475 B 0 B
packages/apps/esm-login-app/dist/9806.js 785 B 0 B
packages/apps/esm-login-app/dist/9863.js 457 B 0 B
packages/apps/esm-offline-tools-app/dist/282.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/434.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/556.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/591.js 45.2 kB 0 B
packages/apps/esm-offline-tools-app/dist/651.js 5.61 kB 0 B
packages/apps/esm-offline-tools-app/dist/903.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/1480.js 1.38 kB 0 B
packages/apps/esm-offline-tools-app/dist/1582.js 3.01 kB 0 B
packages/apps/esm-offline-tools-app/dist/1646.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/1869.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/1877.js 1.18 kB 0 B
packages/apps/esm-offline-tools-app/dist/2317.js 1.21 kB 0 B
packages/apps/esm-offline-tools-app/dist/2416.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/2881.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/3378.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/3624.js 4.09 kB 0 B
packages/apps/esm-offline-tools-app/dist/3663.js 8.69 kB 0 B
packages/apps/esm-offline-tools-app/dist/3818.js 4.42 kB 0 B
packages/apps/esm-offline-tools-app/dist/3963.js 1.11 kB 0 B
packages/apps/esm-offline-tools-app/dist/4106.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/4111.js 1.16 kB 0 B
packages/apps/esm-offline-tools-app/dist/4348.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/4383.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/4658.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/4928.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/5117.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/5132.js 1.17 kB 0 B
packages/apps/esm-offline-tools-app/dist/5145.js 1.2 kB 0 B
packages/apps/esm-offline-tools-app/dist/5167.js 182 kB 0 B
packages/apps/esm-offline-tools-app/dist/5503.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/5644.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/5819.js 2.58 kB 0 B
packages/apps/esm-offline-tools-app/dist/5940.js 1.1 kB 0 B
packages/apps/esm-offline-tools-app/dist/6047.js 1.1 kB 0 B
packages/apps/esm-offline-tools-app/dist/6371.js 1.3 kB 0 B
packages/apps/esm-offline-tools-app/dist/6377.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/6444.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/6508.js 1.19 kB 0 B
packages/apps/esm-offline-tools-app/dist/6724.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/6725.js 186 kB 0 B
packages/apps/esm-offline-tools-app/dist/6847.js 481 B 0 B
packages/apps/esm-offline-tools-app/dist/6904.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/7045.js 1.3 kB 0 B
packages/apps/esm-offline-tools-app/dist/7175.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/7182.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/7221.js 2.26 kB 0 B
packages/apps/esm-offline-tools-app/dist/7742.js 1.2 kB 0 B
packages/apps/esm-offline-tools-app/dist/7889.js 195 kB 0 B
packages/apps/esm-offline-tools-app/dist/7912.js 1.15 kB 0 B
packages/apps/esm-offline-tools-app/dist/7918.js 2.22 kB 0 B
packages/apps/esm-offline-tools-app/dist/8031.js 26.6 kB 0 B
packages/apps/esm-offline-tools-app/dist/8063.js 1.52 kB 0 B
packages/apps/esm-offline-tools-app/dist/8358.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/8359.js 1.41 kB 0 B
packages/apps/esm-offline-tools-app/dist/8574.js 3.07 kB 0 B
packages/apps/esm-offline-tools-app/dist/8613.js 11.1 kB 0 B
packages/apps/esm-offline-tools-app/dist/8695.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/9072.js 1.03 kB 0 B
packages/apps/esm-offline-tools-app/dist/9116.js 42.5 kB 0 B
packages/apps/esm-offline-tools-app/dist/9228.js 481 B 0 B
packages/apps/esm-offline-tools-app/dist/9806.js 1.03 kB 0 B
packages/apps/esm-primary-navigation-app/dist/195.js 186 kB 0 B
packages/apps/esm-primary-navigation-app/dist/282.js 413 B 0 B
packages/apps/esm-primary-navigation-app/dist/434.js 413 B 0 B
packages/apps/esm-primary-navigation-app/dist/556.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/651.js 5.61 kB 0 B
packages/apps/esm-primary-navigation-app/dist/878.js 4.17 kB 0 B
packages/apps/esm-primary-navigation-app/dist/903.js 413 B 0 B
packages/apps/esm-primary-navigation-app/dist/1407.js 189 kB 0 B
packages/apps/esm-primary-navigation-app/dist/1480.js 526 B 0 B
packages/apps/esm-primary-navigation-app/dist/1604.js 4.65 kB 0 B
packages/apps/esm-primary-navigation-app/dist/1646.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/1728.js 970 B 0 B
packages/apps/esm-primary-navigation-app/dist/1869.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/1877.js 465 B 0 B
packages/apps/esm-primary-navigation-app/dist/2107.js 1.9 kB 0 B
packages/apps/esm-primary-navigation-app/dist/2317.js 523 B 0 B
packages/apps/esm-primary-navigation-app/dist/2416.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/2881.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/3378.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/3963.js 469 B 0 B
packages/apps/esm-primary-navigation-app/dist/4106.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/4111.js 449 B 0 B
packages/apps/esm-primary-navigation-app/dist/4348.js 413 B 0 B
packages/apps/esm-primary-navigation-app/dist/4383.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/4658.js 415 B 0 B
packages/apps/esm-primary-navigation-app/dist/4928.js 415 B 0 B
packages/apps/esm-primary-navigation-app/dist/5117.js 463 B 0 B
packages/apps/esm-primary-navigation-app/dist/5132.js 438 B 0 B
packages/apps/esm-primary-navigation-app/dist/5145.js 503 B 0 B
packages/apps/esm-primary-navigation-app/dist/5503.js 415 B 0 B
packages/apps/esm-primary-navigation-app/dist/5644.js 506 B 0 B
packages/apps/esm-primary-navigation-app/dist/5819.js 2.59 kB 0 B
packages/apps/esm-primary-navigation-app/dist/5940.js 483 B 0 B
packages/apps/esm-primary-navigation-app/dist/6047.js 423 B 0 B
packages/apps/esm-primary-navigation-app/dist/6120.js 6.29 kB 0 B
packages/apps/esm-primary-navigation-app/dist/6371.js 469 B 0 B
packages/apps/esm-primary-navigation-app/dist/6377.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/6444.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/6508.js 461 B 0 B
packages/apps/esm-primary-navigation-app/dist/6724.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/6904.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/7044.js 9.24 kB 0 B
packages/apps/esm-primary-navigation-app/dist/7045.js 452 B 0 B
packages/apps/esm-primary-navigation-app/dist/7175.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/7182.js 415 B 0 B
packages/apps/esm-primary-navigation-app/dist/7742.js 507 B 0 B
packages/apps/esm-primary-navigation-app/dist/7786.js 25 kB 0 B
packages/apps/esm-primary-navigation-app/dist/7889.js 195 kB 0 B
packages/apps/esm-primary-navigation-app/dist/7912.js 470 B 0 B
packages/apps/esm-primary-navigation-app/dist/8031.js 26.6 kB 0 B
packages/apps/esm-primary-navigation-app/dist/8358.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/8359.js 601 B 0 B
packages/apps/esm-primary-navigation-app/dist/8613.js 11.1 kB 0 B
packages/apps/esm-primary-navigation-app/dist/8695.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/9072.js 414 B 0 B
packages/apps/esm-primary-navigation-app/dist/9116.js 42.5 kB 0 B
packages/apps/esm-primary-navigation-app/dist/9806.js 414 B 0 B
packages/framework/esm-api/dist/config-schema.js 580 B 0 B
packages/framework/esm-api/dist/current-user.js 3.47 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 242 B 0 B
packages/framework/esm-api/dist/openmrs-fetch.js 4.04 kB 0 B
packages/framework/esm-api/dist/public.js 201 B 0 B
packages/framework/esm-api/dist/setup.js 188 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 8.68 kB 0 B
packages/framework/esm-config/dist/module-config/state.js 1.34 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 780 B 0 B
packages/framework/esm-context/dist/context.js 1.15 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 2.91 kB 0 B
packages/framework/esm-dynamic-loading/dist/import-maps.js 2.06 kB 0 B
packages/framework/esm-dynamic-loading/dist/index.js 79 B 0 B
packages/framework/esm-dynamic-loading/dist/public.js 67 B 0 B
packages/framework/esm-dynamic-loading/dist/route-maps.js 2.53 kB 0 B
packages/framework/esm-emr-api/dist/attachments.js 1.12 kB 0 B
packages/framework/esm-emr-api/dist/current-patient.js 864 B 0 B
packages/framework/esm-emr-api/dist/events/index.js 406 B 0 B
packages/framework/esm-emr-api/dist/events/types.js 88 B 0 B
packages/framework/esm-emr-api/dist/index.js 115 B 0 B
packages/framework/esm-emr-api/dist/location.js 422 B 0 B
packages/framework/esm-emr-api/dist/public.js 140 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/drug-resource.js 32 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 130 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/order-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 513 B 0 B
packages/framework/esm-emr-api/dist/visit-utils.js 1.73 kB 0 B
packages/framework/esm-error-handling/dist/index.js 1.16 kB 0 B
packages/framework/esm-expression-evaluator/dist/evaluator.js 5.07 kB 0 B
packages/framework/esm-expression-evaluator/dist/extractor.js 1.59 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.73 kB 0 B
packages/framework/esm-extensions/dist/helpers.js 165 B 0 B
packages/framework/esm-extensions/dist/index.js 112 B 0 B
packages/framework/esm-extensions/dist/left-nav.js 439 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 806 B 0 B
packages/framework/esm-extensions/dist/store.js 737 B 0 B
packages/framework/esm-extensions/dist/types.js 32 B 0 B
packages/framework/esm-extensions/dist/workspaces.js 1.25 kB 0 B
packages/framework/esm-extensions/dist/workspaces2.js 913 B 0 B
packages/framework/esm-feature-flags/dist/feature-flags.js 1.22 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/declarations.d.js 0 B 0 B 🆕
packages/framework/esm-framework/dist/index.js 196 B 0 B
packages/framework/esm-framework/dist/internal.js 189 B 0 B
packages/framework/esm-globals/dist/events.js 579 B 0 B
packages/framework/esm-globals/dist/index.js 65 B 0 B
packages/framework/esm-globals/dist/public.js 159 B 0 B
packages/framework/esm-globals/dist/type-utils.js 475 B 0 B
packages/framework/esm-globals/dist/types.js 130 B 0 B
packages/framework/esm-navigation/dist/breadcrumbs/db.js 391 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 841 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 689 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 kB 0 B
packages/framework/esm-react-utils/dist/getLifecycle.js 952 B 0 B
packages/framework/esm-react-utils/dist/index.js 464 B 0 B
packages/framework/esm-react-utils/dist/openmrsComponentDecorator.js 1.81 kB 0 B
packages/framework/esm-react-utils/dist/OpenmrsContext.js 420 B 0 B
packages/framework/esm-react-utils/dist/public.js 434 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 521 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 748 B 0 B
packages/framework/esm-react-utils/dist/useBodyScrollLock.js 536 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 489 B 0 B
packages/framework/esm-react-utils/dist/useDebounce.js 600 B 0 B
packages/framework/esm-react-utils/dist/useDefineAppContext.js 1.27 kB 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 423 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 606 B 0 B
packages/framework/esm-react-utils/dist/useLeftNavStore.js 350 B 0 B
packages/framework/esm-react-utils/dist/useLocations.js 617 B 0 B
packages/framework/esm-react-utils/dist/useOnClickOutside.js 776 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/usePaginationInfo.js 346 B 0 B
packages/framework/esm-react-utils/dist/usePatient.js 773 B 0 B
packages/framework/esm-react-utils/dist/usePrimaryIdentifierResource.js 506 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.64 kB 0 B
packages/framework/esm-react-utils/dist/useStore.js 716 B 0 B
packages/framework/esm-react-utils/dist/useVisit.js 1.43 kB 0 B
packages/framework/esm-react-utils/dist/useVisitContextStore.js 663 B 0 B
packages/framework/esm-react-utils/dist/useVisitTypes.js 533 B 0 B
packages/framework/esm-routes/dist/index.js 56 B 0 B
packages/framework/esm-routes/dist/loaders/components.js 1.46 kB 0 B
packages/framework/esm-routes/dist/loaders/helpers.js 142 B 0 B
packages/framework/esm-routes/dist/loaders/index.js 128 B 0 B
packages/framework/esm-routes/dist/loaders/load-lifecycles.js 1.41 kB 0 B
packages/framework/esm-routes/dist/loaders/pages.js 2.69 kB 0 B
packages/framework/esm-routes/dist/public.js 0 B 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 1.18 kB 0 B
packages/framework/esm-state/dist/utils.js 301 B 0 B
packages/framework/esm-styleguide/dist/brand.js 335 B 0 B
packages/framework/esm-styleguide/dist/breakpoints/index.js 415 B 0 B
packages/framework/esm-styleguide/dist/cards/card-header.component.js 389 B 0 B
packages/framework/esm-styleguide/dist/cards/card-header.stories.js 374 B 0 B
packages/framework/esm-styleguide/dist/cards/index.js 74 B 0 B
packages/framework/esm-styleguide/dist/config-schema.js 1.05 kB 0 B
packages/framework/esm-styleguide/dist/custom-overflow-menu/custom-overflow-menu.component.js 1.71 kB 0 B
packages/framework/esm-styleguide/dist/custom-overflow-menu/custom-overflow-menu.stories.js 410 B 0 B
packages/framework/esm-styleguide/dist/custom-overflow-menu/index.js 73 B 0 B
packages/framework/esm-styleguide/dist/dashboard-extension/index.js 832 B 0 B
packages/framework/esm-styleguide/dist/data-table-batch-actions/data-table-batch-actions.component.js 504 B 0 B
packages/framework/esm-styleguide/dist/data-table-batch-actions/index.js 77 B 0 B
packages/framework/esm-styleguide/dist/datepicker/auto-close-dialog.component.js 348 B 0 B
packages/framework/esm-styleguide/dist/datepicker/calendar-popover.component.js 945 B 0 B
packages/framework/esm-styleguide/dist/datepicker/date-picker-icon.component.js 472 B 0 B
packages/framework/esm-styleguide/dist/datepicker/date-picker-input.component.js 823 B 0 B
packages/framework/esm-styleguide/dist/datepicker/date-range-picker.stories.js 370 B 0 B
packages/framework/esm-styleguide/dist/datepicker/date-segment.component.js 842 B 0 B
packages/framework/esm-styleguide/dist/datepicker/datepicker.stories.js 381 B 0 B
packages/framework/esm-styleguide/dist/datepicker/defaults.js 314 B 0 B
packages/framework/esm-styleguide/dist/datepicker/hooks.js 1.07 kB 0 B
packages/framework/esm-styleguide/dist/datepicker/i18n-wrapper.component.js 240 B 0 B
packages/framework/esm-styleguide/dist/datepicker/index.js 100 B 0 B
packages/framework/esm-styleguide/dist/datepicker/month-year.component.js 999 B 0 B
packages/framework/esm-styleguide/dist/datepicker/openmrs-date-picker.component.js 1.75 kB 0 B
packages/framework/esm-styleguide/dist/datepicker/openmrs-date-range-picker.component.js 1.88 kB 0 B
packages/framework/esm-styleguide/dist/datepicker/types.js 101 B 0 B
packages/framework/esm-styleguide/dist/datepicker/utils.js 563 B 0 B
packages/framework/esm-styleguide/dist/declarations.d.js 0 B 0 B 🆕
packages/framework/esm-styleguide/dist/diagnosis-tags/diagnosis-tags.component.js 529 B 0 B
packages/framework/esm-styleguide/dist/diagnosis-tags/diagnosis-tags.stories.js 367 B 0 B
packages/framework/esm-styleguide/dist/diagnosis-tags/index.js 67 B 0 B
packages/framework/esm-styleguide/dist/empty-card/empty-card-registration.js 154 B 0 B
packages/framework/esm-styleguide/dist/empty-card/empty-card.component.js 712 B 0 B
packages/framework/esm-styleguide/dist/empty-card/empty-card.stories.js 272 B 0 B
packages/framework/esm-styleguide/dist/empty-card/index.js 87 B 0 B
packages/framework/esm-styleguide/dist/error-state/error-state.component.js 479 B 0 B
packages/framework/esm-styleguide/dist/error-state/error-state.stories.js 282 B 0 B
packages/framework/esm-styleguide/dist/error-state/index.js 64 B 0 B
packages/framework/esm-styleguide/dist/icons/icon-registration.js 1.9 kB 0 B
packages/framework/esm-styleguide/dist/icons/icons.js 3.57 kB 0 B
packages/framework/esm-styleguide/dist/icons/icons.stories.js 733 B 0 B
packages/framework/esm-styleguide/dist/icons/index.js 48 B 0 B
packages/framework/esm-styleguide/dist/index.js 399 B 0 B
packages/framework/esm-styleguide/dist/internal.js 339 B 0 B
packages/framework/esm-styleguide/dist/left-nav/index.js 886 B 0 B
packages/framework/esm-styleguide/dist/location-picker/index.js 68 B 0 B
packages/framework/esm-styleguide/dist/location-picker/location-picker.component.js 1.46 kB 0 B
packages/framework/esm-styleguide/dist/location-picker/location-picker.resource.js 1.38 kB 0 B
packages/framework/esm-styleguide/dist/logo/index.js 340 B 0 B
packages/framework/esm-styleguide/dist/modals/index.js 1.86 kB 0 B
packages/framework/esm-styleguide/dist/notifications/actionable-notification.component.js 465 B 0 B
packages/framework/esm-styleguide/dist/notifications/actionable-notification.stories.js 448 B 0 B
packages/framework/esm-styleguide/dist/notifications/active-actionable-notifications.component.js 436 B 0 B
packages/framework/esm-styleguide/dist/notifications/active-notifications.component.js 396 B 0 B
packages/framework/esm-styleguide/dist/notifications/index.js 902 B 0 B
packages/framework/esm-styleguide/dist/notifications/notification.component.js 288 B 0 B
packages/framework/esm-styleguide/dist/notifications/notification.stories.js 406 B 0 B
packages/framework/esm-styleguide/dist/numeric-observation/index.js 154 B 0 B
packages/framework/esm-styleguide/dist/numeric-observation/interpretation-utils.js 607 B 0 B
packages/framework/esm-styleguide/dist/numeric-observation/numeric-observation.component.js 1.3 kB 0 B
packages/framework/esm-styleguide/dist/numeric-observation/numeric-observation.stories.js 559 B 0 B
packages/framework/esm-styleguide/dist/numeric-observation/use-concept-reference-range.js 512 B 0 B
packages/framework/esm-styleguide/dist/page-header/index.js 64 B 0 B
packages/framework/esm-styleguide/dist/page-header/page-header.component.js 1.08 kB 0 B
packages/framework/esm-styleguide/dist/page-header/page-header.stories.js 293 B 0 B
packages/framework/esm-styleguide/dist/pagination/index.js 63 B 0 B
packages/framework/esm-styleguide/dist/pagination/pagination.component.js 730 B 0 B
packages/framework/esm-styleguide/dist/pagination/pagination.stories.js 500 B 0 B
packages/framework/esm-styleguide/dist/patient-banner/actions-menu/patient-banner-actions-menu.component.js 1.75 kB 0 B
packages/framework/esm-styleguide/dist/patient-banner/contact-details/patient-banner-contact-details.component.js 1.71 kB 0 B
packages/framework/esm-styleguide/dist/patient-banner/contact-details/patient-banner-toggle-contact-details-button.component.js 389 B 0 B
packages/framework/esm-styleguide/dist/patient-banner/contact-details/types.js 32 B 0 B
packages/framework/esm-styleguide/dist/patient-banner/contact-details/usePatientAttributes.js 1.02 kB 0 B
packages/framework/esm-styleguide/dist/patient-banner/contact-details/usePatientListsForPatient.js 381 B 0 B
packages/framework/esm-styleguide/dist/patient-banner/contact-details/useRelationships.js 554 B 0 B
packages/framework/esm-styleguide/dist/patient-banner/index.js 135 B 0 B
packages/framework/esm-styleguide/dist/patient-banner/patient-info/patient-banner-patient-identifiers.component.js 810 B 0 B
packages/framework/esm-styleguide/dist/patient-banner/patient-info/patient-banner-patient-info.component.js 1.1 kB 0 B
packages/framework/esm-styleguide/dist/patient-photo/index.js 80 B 0 B
packages/framework/esm-styleguide/dist/patient-photo/loader-icon.component.js 364 B 0 B
packages/framework/esm-styleguide/dist/patient-photo/patient-photo.component.js 1.16 kB 0 B
packages/framework/esm-styleguide/dist/patient-photo/patient-photo.stories.js 284 B 0 B
packages/framework/esm-styleguide/dist/patient-photo/placeholder-icon.component.js 633 B 0 B
packages/framework/esm-styleguide/dist/patient-photo/usePatientPhoto.js 401 B 0 B
packages/framework/esm-styleguide/dist/pictograms/index.js 53 B 0 B
packages/framework/esm-styleguide/dist/pictograms/pictogram-registration.js 724 B 0 B
packages/framework/esm-styleguide/dist/pictograms/pictograms.js 1.89 kB 0 B
packages/framework/esm-styleguide/dist/pictograms/pictograms.stories.js 682 B 0 B
packages/framework/esm-styleguide/dist/public.js 392 B 0 B
packages/framework/esm-styleguide/dist/responsive-wrapper/index.js 71 B 0 B
packages/framework/esm-styleguide/dist/responsive-wrapper/responsive-wrapper.component.js 518 B 0 B
packages/framework/esm-styleguide/dist/responsive-wrapper/responsive-wrapper.stories.js 446 B 0 B
packages/framework/esm-styleguide/dist/snackbars/active-snackbar.component.js 489 B 0 B
packages/framework/esm-styleguide/dist/snackbars/index.js 639 B 0 B
packages/framework/esm-styleguide/dist/snackbars/snackbar.component.js 881 B 0 B
packages/framework/esm-styleguide/dist/snackbars/snackbar.stories.js 587 B 0 B
packages/framework/esm-styleguide/dist/spinner/index.js 268 B 0 B
packages/framework/esm-styleguide/dist/svg-utils.js 1.07 kB 0 B
packages/framework/esm-styleguide/dist/test-utils.js 284 B 0 B
packages/framework/esm-styleguide/dist/toasts/active-toasts.component.js 481 B 0 B
packages/framework/esm-styleguide/dist/toasts/index.js 685 B 0 B
packages/framework/esm-styleguide/dist/toasts/toast.component.js 398 B 0 B
packages/framework/esm-styleguide/dist/toasts/toast.stories.js 540 B 0 B
packages/framework/esm-styleguide/dist/utils.js 240 B 0 B
packages/framework/esm-styleguide/dist/workspaces/action-menu-button/action-menu-button.component.js 981 B 0 B
packages/framework/esm-styleguide/dist/workspaces/container/action-menu.component.js 709 B 0 B
packages/framework/esm-styleguide/dist/workspaces/container/workspace-container.component.js 3.31 kB 0 B
packages/framework/esm-styleguide/dist/workspaces/container/workspace-renderer.component.js 648 B 0 B
packages/framework/esm-styleguide/dist/workspaces/index.js 120 B 0 B
packages/framework/esm-styleguide/dist/workspaces/notification/workspace-notification.component.js 1.26 kB 0 B
packages/framework/esm-styleguide/dist/workspaces/public.js 148 B 0 B
packages/framework/esm-styleguide/dist/workspaces/workspace-sidebar-store/useWorkspaceGroupStore.js 541 B 0 B
packages/framework/esm-styleguide/dist/workspaces/workspaces.js 4.98 kB 0 B
packages/framework/esm-styleguide/dist/workspaces2/action-menu2/action-menu-button2.component.js 1.46 kB 0 B
packages/framework/esm-styleguide/dist/workspaces2/action-menu2/action-menu2.component.js 747 B 0 B
packages/framework/esm-styleguide/dist/workspaces2/active-workspace-window.component.js 2.03 kB 0 B
packages/framework/esm-styleguide/dist/workspaces2/index.js 91 B 0 B
packages/framework/esm-styleguide/dist/workspaces2/scope-utils.js 579 B 0 B
packages/framework/esm-styleguide/dist/workspaces2/workspace-windows-and-menu.component.js 1.32 kB 0 B
packages/framework/esm-styleguide/dist/workspaces2/workspace2-close-prompt.modal.js 817 B 0 B
packages/framework/esm-styleguide/dist/workspaces2/workspace2.component.js 1.78 kB 0 B
packages/framework/esm-styleguide/dist/workspaces2/workspace2.js 5.23 kB 0 B
packages/framework/esm-translations/dist/index.js 1.23 kB 0 B
packages/framework/esm-translations/dist/public.js 76 B 0 B
packages/framework/esm-translations/dist/translations.js 1.63 kB 0 B
packages/framework/esm-utils/dist/age-helpers.js 1.14 kB 0 B
packages/framework/esm-utils/dist/dates/date-util.js 5.89 kB 0 B
packages/framework/esm-utils/dist/dates/index.js 52 B 0 B
packages/framework/esm-utils/dist/get-locale.js 419 B 0 B
packages/framework/esm-utils/dist/index.js 179 B 0 B
packages/framework/esm-utils/dist/intl-durationformat.d.js 169 B 0 B
packages/framework/esm-utils/dist/is-online.js 331 B 0 B
packages/framework/esm-utils/dist/language-tag.js 1.33 kB 0 B
packages/framework/esm-utils/dist/match-locale.js 1.61 kB 0 B
packages/framework/esm-utils/dist/patient-helpers.js 1.01 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 504 B 0 B
packages/shell/esm-app-shell/dist/0be72cc6428e6925.js 1.85 kB 0 B
packages/shell/esm-app-shell/dist/1a594994b175a085.js 3.06 kB 0 B
packages/shell/esm-app-shell/dist/2edd97ba16bad94d.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/2f45a3ddfd50c943.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/3affb37bd7c5e13d.js 1.88 kB 0 B
packages/shell/esm-app-shell/dist/3b65aba1b215cece.js 0 B -1.74 kB (removed) 🏆
packages/shell/esm-app-shell/dist/5a39f84add6ddbce.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/5a91f11a67af8e19.js 26.7 kB 0 B
packages/shell/esm-app-shell/dist/5ad8cc3f3a1eee5c.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/5c858aea5fcb8617.js 6.89 kB 0 B
packages/shell/esm-app-shell/dist/6b4e9dbce0abc737.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/6c121fe3fb94e78d.js 1.45 kB 0 B
packages/shell/esm-app-shell/dist/6caaada0dd55e590.js 0 B -7.7 kB (removed) 🏆
packages/shell/esm-app-shell/dist/6d466aea5e53d705.js 1.45 kB 0 B
packages/shell/esm-app-shell/dist/6e09ab3cf3cb8a39.js 1.45 kB 0 B
packages/shell/esm-app-shell/dist/6ec186481378b3f6.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/7c6eca3029fa5a9a.js 1.54 kB 0 B
packages/shell/esm-app-shell/dist/7cc333a9b440d342.js 1.45 kB 0 B
packages/shell/esm-app-shell/dist/7e17d8151ef1ad94.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/8d9b20644952b178.js 0 B -1.69 kB (removed) 🏆
packages/shell/esm-app-shell/dist/8ec2628153f15315.js 1.63 kB 0 B
packages/shell/esm-app-shell/dist/8ed0cc8227531777.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/8ee4946c8757f032.js 0 B -1.71 kB (removed) 🏆
packages/shell/esm-app-shell/dist/9d19e5cc67c3e4f2.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/9f9ef1f0f13ed258.js 3.16 kB 0 B
packages/shell/esm-app-shell/dist/14b6c76f4b6cb59d.js 1.6 kB 0 B
packages/shell/esm-app-shell/dist/24d4af05d310e7cd.js 11.2 kB 0 B
packages/shell/esm-app-shell/dist/49f144128bf06965.js 1.45 kB 0 B
packages/shell/esm-app-shell/dist/58e843241736198e.js 1.74 kB 0 B
packages/shell/esm-app-shell/dist/64f7917f1a8f8fb4.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/73def4ffd08c637a.js 1.67 kB 0 B
packages/shell/esm-app-shell/dist/73f66a76cd18204d.js 1.75 kB 0 B
packages/shell/esm-app-shell/dist/74d457f3dd2eb85f.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/82f6525970cbec1b.js 8.13 kB 0 B
packages/shell/esm-app-shell/dist/140de372a2d1acb4.js 0 B -2.03 kB (removed) 🏆
packages/shell/esm-app-shell/dist/368c44457fdd04cf.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/457cd6ddd88887ec.js 0 B -3.05 kB (removed) 🏆
packages/shell/esm-app-shell/dist/597d2113aef375f6.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/692e798381349d20.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/713d2b74f56e0f3d.js 2.03 kB 0 B
packages/shell/esm-app-shell/dist/732bf759b17b5732.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/998d1c557f85ca03.js 0 B -6.89 kB (removed) 🏆
packages/shell/esm-app-shell/dist/3486eca0da3b88d1.js 0 B -2.63 kB (removed) 🏆
packages/shell/esm-app-shell/dist/3589f169e541e5a0.js 0 B -1.6 kB (removed) 🏆
packages/shell/esm-app-shell/dist/3914d75d45c36ebc.js 42.8 kB 0 B
packages/shell/esm-app-shell/dist/4230cf0319465310.js 1.82 kB 0 B
packages/shell/esm-app-shell/dist/5536ca8de39cb7d8.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/05851ecc07146490.js 1.71 kB 0 B
packages/shell/esm-app-shell/dist/6032d0e3b2927788.js 22.7 kB 0 B
packages/shell/esm-app-shell/dist/7760be96d3727fe2.js 0 B -1.46 kB (removed) 🏆
packages/shell/esm-app-shell/dist/13957ff0f140c6ff.js 1.45 kB 0 B
packages/shell/esm-app-shell/dist/95147fec497d02d2.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/342998ef12151fda.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/371800b8adf2ecbc.js 1.59 kB 0 B
packages/shell/esm-app-shell/dist/00355068084ac8ca.js 15.8 kB 0 B
packages/shell/esm-app-shell/dist/6610375530e10884.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/7166614620fcd51c.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/29004411600d2e11.js 0 B -1.59 kB (removed) 🏆
packages/shell/esm-app-shell/dist/a21ba6a0329dacc3.js 2.63 kB 0 B
packages/shell/esm-app-shell/dist/aa19cc3bbe94d915.js 0 B -1.88 kB (removed) 🏆
packages/shell/esm-app-shell/dist/b0a211dba76847c5.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/b006959f43e23fb8.js 0 B -8.76 kB (removed) 🏆
packages/shell/esm-app-shell/dist/b726991c35e41429.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/b9123922ca01a42d.js 0 B -1.85 kB (removed) 🏆
packages/shell/esm-app-shell/dist/bbe6b27a195b4177.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/bc1bf5960ca6f5c2.js 0 B -1.5 kB (removed) 🏆
packages/shell/esm-app-shell/dist/bca5f162fad8eca9.js 0 B -1.87 kB (removed) 🏆
packages/shell/esm-app-shell/dist/bd6b6ffba0831b4b.js 1.79 kB 0 B
packages/shell/esm-app-shell/dist/bd91ed290a71e9cd.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/c0d7c9cbe921b6e6.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/c1f5ae377b833cf9.js 0 B -1.87 kB (removed) 🏆
packages/shell/esm-app-shell/dist/c4a815138ff694d3.js 1.45 kB 0 B
packages/shell/esm-app-shell/dist/c8c144b11053330d.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/c9da4b3d6e2dd2e7.js 0 B -1.67 kB (removed) 🏆
packages/shell/esm-app-shell/dist/c37d944188b49944.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/c62d22bb7b3da2b8.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/c4641db3088669e3.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/ca13dd2bc48ab091.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/ca7025abbd4510ef.js 1.87 kB 0 B
packages/shell/esm-app-shell/dist/cb26daa4643ef6a9.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/cea7b5aab075cfae.js 8.8 kB 0 B
packages/shell/esm-app-shell/dist/d3d0fd00f6f27706.js 268 kB 0 B
packages/shell/esm-app-shell/dist/d6a4c854751187c4.js 238 kB 0 B
packages/shell/esm-app-shell/dist/d53d3a5adc27b3dc.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/d93d574a0a0a5ad1.js 7.71 kB 0 B
packages/shell/esm-app-shell/dist/da0f4000ff8a6308.js 0 B -3.17 kB (removed) 🏆
packages/shell/esm-app-shell/dist/dc8bae4b1fc21ce6.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/dde52f342e5fc083.js 0 B -1.82 kB (removed) 🏆
packages/shell/esm-app-shell/dist/e0d211634c10fe6a.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/e70de7f0da3e9681.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/e80e5a1b612d1e8b.js 33.1 kB 0 B
packages/shell/esm-app-shell/dist/e113b11e79cf6e27.js 0 B -1.45 kB (removed) 🏆
packages/shell/esm-app-shell/dist/e173aa5eee85c641.js 0 B -8.12 kB (removed) 🏆
packages/shell/esm-app-shell/dist/e372d79ed33118ff.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/e378b076e14e7341.js 1.45 kB 0 B
packages/shell/esm-app-shell/dist/ea8b50f3e86d0c16.js 1.46 kB 0 B
packages/shell/esm-app-shell/dist/eb4945827da1cb41.js 1.45 kB 0 B
packages/shell/esm-app-shell/dist/f5e94073baff3906.js 0 B -1.79 kB (removed) 🏆
packages/shell/esm-app-shell/dist/f531f465b3f30aa4.js 1.87 kB 0 B
packages/shell/esm-app-shell/dist/fd43dec286bd966c.js 1.5 kB 0 B
packages/shell/esm-app-shell/dist/fda233679a0da75e.js 1.69 kB 0 B
packages/shell/esm-app-shell/dist/openmrs.8766212279165e78.js 40.6 kB 0 B
packages/tooling/openmrs/dist/cli.js 3.81 kB 0 B
packages/tooling/openmrs/dist/commands/assemble.js 3.25 kB 0 B
packages/tooling/openmrs/dist/commands/build.js 1.41 kB 0 B
packages/tooling/openmrs/dist/commands/debug.js 520 B 0 B
packages/tooling/openmrs/dist/commands/develop.js 2.41 kB 0 B
packages/tooling/openmrs/dist/commands/index.js 77 B 0 B
packages/tooling/openmrs/dist/commands/start.js 797 B 0 B
packages/tooling/openmrs/dist/index.js 73 B 0 B
packages/tooling/openmrs/dist/runner.js 225 B 0 B
packages/tooling/openmrs/dist/utils/compress.js 5.21 kB 0 B
packages/tooling/openmrs/dist/utils/config.js 809 B 0 B
packages/tooling/openmrs/dist/utils/debugger.js 710 B 0 B
packages/tooling/openmrs/dist/utils/dependencies.js 573 B 0 B
packages/tooling/openmrs/dist/utils/devserver.js 396 B 0 B
packages/tooling/openmrs/dist/utils/helpers.js 304 B 0 B
packages/tooling/openmrs/dist/utils/importmap.js 4.52 kB 0 B
packages/tooling/openmrs/dist/utils/index.js 114 B 0 B
packages/tooling/openmrs/dist/utils/logger.js 192 B 0 B
packages/tooling/openmrs/dist/utils/npmConfig.js 680 B 0 B
packages/tooling/openmrs/dist/utils/packages.js 1.28 kB 0 B
packages/tooling/openmrs/dist/utils/port.js 624 B 0 B
packages/tooling/openmrs/dist/utils/types.js 32 B 0 B
packages/tooling/openmrs/dist/utils/untar.js 282 B 0 B
packages/tooling/openmrs/dist/utils/variables.js 126 B 0 B
packages/tooling/rspack-config/dist/index.js 5.77 kB +1.53 kB (+36.03%) 🚨
packages/tooling/storybook/dist/mocker-runtime-injected.js 13.5 kB 0 B
packages/tooling/storybook/dist/sb-addons/links-1/manager-bundle.js 682 B 0 B
packages/tooling/storybook/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js 139 kB 0 B
packages/tooling/storybook/dist/sb-manager/globals-runtime.js 680 kB 0 B
packages/tooling/storybook/dist/sb-manager/globals.js 409 B 0 B
packages/tooling/storybook/dist/sb-manager/manager-stores.js 225 B 0 B
packages/tooling/storybook/dist/sb-manager/runtime.js 214 kB 0 B
packages/tooling/storybook/dist/sb-preview/globals.js 405 B 0 B
packages/tooling/storybook/dist/sb-preview/runtime.js 312 kB 0 B
packages/tooling/storybook/dist/static/js/360.4282e703.iframe.bundle.js 119 kB 0 B
packages/tooling/storybook/dist/static/js/async/96.98553ffe.iframe.bundle.js 5.9 kB 0 B
packages/tooling/storybook/dist/static/js/async/116.126a5751.iframe.bundle.js 42.7 kB 0 B
packages/tooling/storybook/dist/static/js/async/125.865f9811.iframe.bundle.js 2.53 kB 0 B
packages/tooling/storybook/dist/static/js/async/196.5d1e4598.iframe.bundle.js 81.5 kB 0 B
packages/tooling/storybook/dist/static/js/async/593.a8a7e184.iframe.bundle.js 4.51 kB 0 B
packages/tooling/storybook/dist/static/js/async/778.eaf7ed63.iframe.bundle.js 34.8 kB 0 B
packages/tooling/storybook/dist/static/js/async/779.c38c6261.iframe.bundle.js 2.48 kB 0 B
packages/tooling/storybook/dist/static/js/async/788.1b6f9186.iframe.bundle.js 9.06 kB 0 B
packages/tooling/storybook/dist/static/js/async/860.b5f9b0a0.iframe.bundle.js 4.76 kB 0 B
packages/tooling/storybook/dist/static/js/async/871.2f8f98ee.iframe.bundle.js 3.16 kB 0 B
packages/tooling/storybook/dist/static/js/async/972.5cfa2823.iframe.bundle.js 544 B 0 B
packages/tooling/storybook/dist/static/js/async/cards-card-header-stories.7229a5bb.iframe.bundle.js 853 B 0 B
packages/tooling/storybook/dist/static/js/async/custom-overflow-menu-custom-overflow-menu-stories.6bfc7d84.iframe.bundle.js 1.66 kB 0 B
packages/tooling/storybook/dist/static/js/async/datepicker-date-range-picker-stories.14d156cb.iframe.bundle.js 2.42 kB 0 B
packages/tooling/storybook/dist/static/js/async/datepicker-datepicker-stories.c37172a2.iframe.bundle.js 2.71 kB 0 B
packages/tooling/storybook/dist/static/js/async/diagnosis-tags-diagnosis-tags-stories.a7d1b539.iframe.bundle.js 817 B 0 B
packages/tooling/storybook/dist/static/js/async/empty-card-empty-card-stories.28d0cf0c.iframe.bundle.js 2.57 kB 0 B
packages/tooling/storybook/dist/static/js/async/error-state-error-state-stories.56e2359f.iframe.bundle.js 2.35 kB 0 B
packages/tooling/storybook/dist/static/js/async/icons-icons-stories.2b915309.iframe.bundle.js 1.02 kB 0 B
packages/tooling/storybook/dist/static/js/async/notifications-actionable-notification-stories.437cb487.iframe.bundle.js 2.37 kB 0 B
packages/tooling/storybook/dist/static/js/async/notifications-notification-stories.501f0bb1.iframe.bundle.js 707 B 0 B
packages/tooling/storybook/dist/static/js/async/numeric-observation-numeric-observation-stories.6e7677c5.iframe.bundle.js 4.49 kB 0 B
packages/tooling/storybook/dist/static/js/async/page-header-page-header-stories.7fb4ed69.iframe.bundle.js 2.87 kB 0 B
packages/tooling/storybook/dist/static/js/async/pagination-pagination-stories.4396fdbc.iframe.bundle.js 2.69 kB 0 B
packages/tooling/storybook/dist/static/js/async/patient-photo-patient-photo-stories.89fa81bd.iframe.bundle.js 3.57 kB 0 B
packages/tooling/storybook/dist/static/js/async/pictograms-pictograms-stories.b60cb6f7.iframe.bundle.js 588 B 0 B
packages/tooling/storybook/dist/static/js/async/responsive-wrapper-responsive-wrapper-stories.5564100f.iframe.bundle.js 819 B 0 B
packages/tooling/storybook/dist/static/js/async/snackbars-snackbar-stories.ef68d22b.iframe.bundle.js 2.68 kB 0 B
packages/tooling/storybook/dist/static/js/async/toasts-toast-stories.236a5505.iframe.bundle.js 810 B 0 B
packages/tooling/storybook/dist/static/js/main.dd21efac.iframe.bundle.js 24.9 kB 0 B
packages/tooling/storybook/dist/static/js/runtime~main.0e7528a1.iframe.bundle.js 2.72 kB 0 B
packages/tooling/typedoc-plugin-file-categories/dist/index.js 573 B 0 B
packages/tooling/webpack-config/dist/index.js 4.96 kB +1.25 kB (+33.76%) 🚨

compressed-size-action

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR relocates most of the Module Federation runtime responsibility from individual remotes into the O3 app shell by switching remotes to consume the MF runtime from globals published by the shell. This reduces per-remote bundle overhead but introduces a compatibility requirement: remotes built with the updated tooling require a sufficiently new @openmrs/esm-app-shell that publishes the MF runtime globals.

Changes:

  • Switch Rspack and Webpack shared configs to use @module-federation/enhanced with externalRuntime enabled and externals for MF helper packages.
  • Add app-shell runtime publishing (publishFederationRuntime) and configure the shell’s Module Federation plugin to provideExternalRuntime.
  • Add cross-package integration tests and fixtures to enforce consistent MF pins and verify that remote entries externalize the runtime as intended.

Reviewed changes

Copilot reviewed 21 out of 22 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
yarn.lock Adds/updates Module Federation 2.8.1 and related dependencies used by the new runtime approach.
packages/tooling/webpack-config/src/index.ts Uses @module-federation/enhanced for webpack remotes, enables externalRuntime, and injects runtime guard + externals.
packages/tooling/webpack-config/package.json Pins @module-federation/enhanced and adds semver tooling used for runtime skew messaging.
packages/tooling/rspack-config/src/index.ts Uses @module-federation/enhanced for rspack remotes, enables externalRuntime, and injects runtime guard + externals.
packages/tooling/rspack-config/package.json Pins @module-federation/enhanced and adds semver tooling used for runtime skew messaging.
packages/tooling/integration-tests/vitest.config.ts Adds a Vitest config suitable for fixture-based build tests (forks pool, no file parallelism).
packages/tooling/integration-tests/turbo.json Defines Turborepo task inputs so config/fixture changes invalidate the integration-test cache correctly.
packages/tooling/integration-tests/tsconfig.json Adds TypeScript config for the new integration-tests workspace package.
packages/tooling/integration-tests/src/module-federation-pins.test.ts Ensures MF-related package pins match across app shell + tooling packages and remain exact versions.
packages/tooling/integration-tests/src/federation-runtime.test.ts Builds real fixture remotes and verifies they externalize MF runtime globals and fail with a diagnosable error if missing.
packages/tooling/integration-tests/package.json Introduces the private integration-tests workspace with the required bundler + MF dependencies.
packages/tooling/integration-tests/fixtures/remote-app/tsconfig.json Adds TS config for the minimal remote-app fixture compiled by the integration tests.
packages/tooling/integration-tests/fixtures/remote-app/src/routes.json Provides the minimal routes file expected by the shared build configs.
packages/tooling/integration-tests/fixtures/remote-app/src/index.ts Provides a minimal ./start export to produce a valid federated remote entry.
packages/tooling/integration-tests/fixtures/remote-app/package.json Defines the minimal fixture app package metadata used during test builds.
packages/shell/esm-app-shell/turbo.json Adds Turborepo task inputs for app-shell test/coverage caching.
packages/shell/esm-app-shell/src/index.ts Publishes the MF runtime globals before app initialization to ensure remotes can start.
packages/shell/esm-app-shell/src/federation-runtime.ts Implements publishing of MF helper globals required by remotes.
packages/shell/esm-app-shell/src/federation-runtime.test.ts Adds tests ensuring runtime publishing is configured and invoked early enough by the entrypoint.
packages/shell/esm-app-shell/rspack.config.js Switches shell federation to @module-federation/enhanced and enables provideExternalRuntime + optimization.
packages/shell/esm-app-shell/package.json Adds MF dependencies used by the shell runtime publisher.
package.json Excludes the new private integration-tests workspace from CI publish scripts.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/tooling/rspack-config/src/index.ts
Comment thread packages/tooling/webpack-config/src/index.ts
@greptile-apps

greptile-apps Bot commented Aug 25, 2026

Copy link
Copy Markdown

Greptile Summary

This change moves most Module Federation runtime code into the app shell, configures Rspack and Webpack frontend modules to consume that shared runtime, and adds compatibility diagnostics for older app shells.

Production builds of the remote fixture were exercised through both bundlers. With the app-shell runtime globals present, each remote started and exposed its container. With those globals absent, each remote stopped with the intended actionable error rather than failing silently or inside minified runtime code. No defects were found.

Confidence Score: 5/5

Safe to merge based on the exercised production runtime paths for both Rspack and Webpack remotes.

The review found no publishable defects. Real production remote builds were executed in VM contexts with and without app-shell-provided runtime globals, and the focused app-shell publication tests also passed.

Files Needing Attention: No files need corrective changes. Future changes to the shared runtime contract should retain coverage in the app-shell runtime publication tests and the cross-bundler federation runtime integration tests.

T-Rex T-Rex Logs

What T-Rex did

  • Built each fixture remote in production through both the Rspack and Webpack shared configurations and executed the emitted entries in VM contexts without app-shell runtime globals, observing the intended missing-runtime diagnostic.
  • Re-executed the production entries with the app-shell runtime globals supplied, and both remotes started and exposed their federation containers.
  • Ran the complete seven-assertion cross-bundler runtime suite and the three-assertion app-shell publication suite, and all assertions passed.
  • Compared the before and after results and confirmed that without globals the remotes failed as expected, and with the app-shell-published globals they started and produced all green results across the seven cross-package and three app-shell assertions.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (1): Last reviewed commit: "(feat) Federate most of the Module Feder..." | Re-trigger Greptile

Comment thread packages/tooling/integration-tests/turbo.json Outdated
Comment thread .changeset/wacky-pens-refuse.md
Comment thread packages/shell/esm-app-shell/src/federation-runtime.ts Outdated
Comment thread .changeset/wacky-pens-refuse.md
ibacher and others added 2 commits August 26, 2026 14:48
Co-authored-by: Dennis Kigen <kigen.work@gmail.com>
Co-authored-by: Dennis Kigen <kigen.work@gmail.com>
@sonarqubecloud

Copy link
Copy Markdown

❌ The last analysis has failed.

See analysis details on SonarQube Cloud

@sonarqubecloud

Copy link
Copy Markdown

@denniskigen denniskigen left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM. Thanks, @ibacher!

@ibacher
ibacher merged commit 04f538d into main Aug 27, 2026
22 checks passed
@ibacher
ibacher deleted the O3-5873-mf-runtime branch August 27, 2026 12:17
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.

3 participants