@granite-js/micro-frontend 2.5.5 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +20 -6
  3. package/dist/module/host/PendingHostComponent.js.map +1 -1
  4. package/dist/module/host/index.js.map +1 -1
  5. package/dist/module/host/resolveParams.js.map +1 -1
  6. package/dist/module/index.js.map +1 -1
  7. package/dist/module/next/README.md +15 -0
  8. package/dist/module/next/index.js +109 -0
  9. package/dist/module/next/index.js.map +1 -0
  10. package/dist/module/next/types.js +4 -0
  11. package/dist/module/next/types.js.map +1 -0
  12. package/dist/module/plugin/microFrontendPlugin.js +4 -5
  13. package/dist/module/plugin/microFrontendPlugin.js.map +1 -1
  14. package/dist/module/plugin-utils/disposeBabelPlugin.js.map +1 -0
  15. package/dist/module/plugin-utils/disposeTransform.js.map +1 -0
  16. package/dist/module/{plugin → plugin-utils}/globalContextScript.js.map +1 -1
  17. package/dist/module/plugin-utils/intoShared.js.map +1 -0
  18. package/dist/module/{plugin → plugin-utils}/prelude.js +4 -2
  19. package/dist/module/plugin-utils/prelude.js.map +1 -0
  20. package/dist/module/runtime/containerModuleExposure.js +1 -37
  21. package/dist/module/runtime/containerModuleExposure.js.map +1 -1
  22. package/dist/module/runtime/legacyEsm.js +41 -0
  23. package/dist/module/runtime/legacyEsm.js.map +1 -0
  24. package/dist/module/runtime/registry.js +3 -12
  25. package/dist/module/runtime/registry.js.map +1 -1
  26. package/dist/module/runtime/sharedModule.js +22 -0
  27. package/dist/module/runtime/sharedModule.js.map +1 -0
  28. package/dist/module/session/MicroFrontendSessionContext.js.map +1 -1
  29. package/dist/module/specs/PortalHostViewNativeComponent.ts +2 -2
  30. package/dist/module/specs/PortalViewNativeComponent.ts +2 -2
  31. package/dist/typescript/host/index.d.ts +1 -1
  32. package/dist/typescript/index.d.ts +1 -1
  33. package/dist/typescript/next/index.d.ts +4 -0
  34. package/dist/typescript/next/types.d.ts +6 -0
  35. package/dist/typescript/plugin-utils/intoShared.d.ts +2 -0
  36. package/dist/typescript/plugin-utils/prelude.d.ts +11 -0
  37. package/dist/typescript/runtime/legacyEsm.d.ts +1 -0
  38. package/dist/typescript/runtime/sharedModule.d.ts +4 -0
  39. package/dist/typescript/specs/PortalHostViewNativeComponent.d.ts +1 -1
  40. package/dist/typescript/specs/PortalViewNativeComponent.d.ts +1 -1
  41. package/package.json +14 -5
  42. package/react-native.config.js +1 -4
  43. package/src/host/PendingHostComponent.tsx +10 -2
  44. package/src/host/index.ts +1 -4
  45. package/src/host/resolveParams.ts +1 -1
  46. package/src/host/types.ts +1 -3
  47. package/src/index.ts +1 -4
  48. package/src/next/README.md +15 -0
  49. package/src/next/index.ts +107 -0
  50. package/src/next/types.ts +7 -0
  51. package/src/plugin/microFrontendPlugin.ts +5 -6
  52. package/src/{plugin → plugin-utils}/intoShared.ts +1 -2
  53. package/src/{plugin → plugin-utils}/prelude.ts +14 -47
  54. package/src/runtime/containerModuleExposure.ts +1 -39
  55. package/src/runtime/legacyEsm.ts +39 -0
  56. package/src/runtime/registry.ts +3 -18
  57. package/src/runtime/sharedModule.ts +26 -0
  58. package/src/session/MicroFrontendSessionContext.tsx +1 -3
  59. package/src/specs/PortalHostViewNativeComponent.ts +2 -2
  60. package/src/specs/PortalViewNativeComponent.ts +2 -2
  61. package/dist/module/plugin/disposeBabelPlugin.js.map +0 -1
  62. package/dist/module/plugin/disposeTransform.js.map +0 -1
  63. package/dist/module/plugin/intoShared.js.map +0 -1
  64. package/dist/module/plugin/prelude.js.map +0 -1
  65. package/dist/typescript/plugin/intoShared.d.ts +0 -3
  66. package/dist/typescript/plugin/prelude.d.ts +0 -6
  67. /package/dist/module/{plugin → plugin-utils}/disposeBabelPlugin.js +0 -0
  68. /package/dist/module/{plugin → plugin-utils}/disposeTransform.js +0 -0
  69. /package/dist/module/{plugin → plugin-utils}/globalContextScript.js +0 -0
  70. /package/dist/module/{plugin → plugin-utils}/intoShared.js +0 -0
  71. /package/dist/typescript/{plugin → plugin-utils}/disposeBabelPlugin.d.ts +0 -0
  72. /package/dist/typescript/{plugin → plugin-utils}/disposeTransform.d.ts +0 -0
  73. /package/dist/typescript/{plugin → plugin-utils}/globalContextScript.d.ts +0 -0
  74. /package/src/{plugin → plugin-utils}/disposeBabelPlugin.ts +0 -0
  75. /package/src/{plugin → plugin-utils}/disposeTransform.ts +0 -0
  76. /package/src/{plugin → plugin-utils}/globalContextScript.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @granite-js/micro-frontend
2
2
 
3
+ ## 3.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - @granite-js/utils@3.0.1
8
+
9
+ ## 3.0.0
10
+
11
+ ### Patch Changes
12
+
13
+ - 586459d: Fix shared module compatibility with legacy consumers.
14
+ - @granite-js/utils@3.0.0
15
+
3
16
  ## 2.5.5
4
17
 
5
18
  ### Patch Changes
package/README.md CHANGED
@@ -59,8 +59,10 @@ Fabric components.
59
59
 
60
60
  ## Build plugin
61
61
 
62
- The app name comes from `granite.config.ts`. Hosts do not maintain a separate
63
- remote-app list.
62
+ Configure the plugin in `rollipop.config.ts`. The `appName` identifies the
63
+ bundle in the shared runtime registry. See the
64
+ [Rollipop configuration documentation](https://rollipop.dev/docs/get-started/configuration)
65
+ for other build options.
64
66
 
65
67
  The generated runtime prelude uses a package-specific file name so this plugin
66
68
  can coexist with the legacy `@granite-js/plugin-micro-frontend` plugin during a
@@ -69,12 +71,12 @@ gradual migration. This preserves both plugins' shared-module registrations.
69
71
  ```ts
70
72
  // Remote app
71
73
  import { microFrontend } from '@granite-js/micro-frontend/plugin';
72
- import { defineConfig } from '@granite-js/react-native/config';
74
+ import { defineConfig } from 'rollipop';
73
75
 
74
76
  export default defineConfig({
75
- appName: 'cart',
76
77
  plugins: [
77
78
  microFrontend({
79
+ appName: 'cart',
78
80
  exposes: {
79
81
  './App': './src/_app.tsx',
80
82
  },
@@ -87,12 +89,12 @@ export default defineConfig({
87
89
  ```ts
88
90
  // Host app
89
91
  import { microFrontend } from '@granite-js/micro-frontend/plugin';
90
- import { defineConfig } from '@granite-js/react-native/config';
92
+ import { defineConfig } from 'rollipop';
91
93
 
92
94
  export default defineConfig({
93
- appName: 'shared',
94
95
  plugins: [
95
96
  microFrontend({
97
+ appName: 'shared',
96
98
  shared: {
97
99
  react: { eager: true },
98
100
  'react-native': { eager: true },
@@ -105,6 +107,18 @@ export default defineConfig({
105
107
  When evaluated, a remote bundle registers its `appName` container and exposed
106
108
  modules in the shared runtime registry.
107
109
 
110
+ ### Mpack (deprecated)
111
+
112
+ ```ts
113
+ import { microFrontend } from '@granite-js/micro-frontend/plugin-mpack';
114
+ import { defineConfig } from '@granite-js/react-native/config';
115
+
116
+ export default defineConfig({
117
+ appName: 'cart',
118
+ plugins: [microFrontend({ shared: ['react', 'react-native'] })],
119
+ });
120
+ ```
121
+
108
122
  ## Registry migration contract
109
123
 
110
124
  ### As-is
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useState","useSyncExternalStore","StyleSheet","View","getPendingHostComponentStoreVersion","getIsPendingHostComponentHidden","resetPendingHostComponent","resolvePendingHostComponent","subscribePendingHostComponentStore","jsx","_jsx","useIsPendingHostComponentHidden","usePendingHostComponentStoreVersion","useResolvedPendingHostComponent","url","PendingHostComponent","resolvedPendingHostComponent","isHidden","Component","component","accessibilityElementsHidden","importantForAccessibility","pointerEvents","style","styles","root","children","params","usePendingHostComponentController","setUrl","isPresent","setIsPresent","present","nextUrl","wasPresent","dismiss","create","absoluteFillObject"],"sourceRoot":"../../../src","sources":["host/PendingHostComponent.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,EAAEC,oBAAoB,QAAQ,OAAO;AACnE,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SACEC,mCAAmC,EACnCC,+BAA+B,EAC/BC,yBAAyB,EACzBC,2BAA2B,EAC3BC,kCAAkC,QAC7B,gCAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAcrC,OAAO,SAASC,+BAA+BA,CAAA,EAAG;EAChD,OAAOV,oBAAoB,CAACO,kCAAkC,EAAEH,+BAA+B,EAAEA,+BAA+B,CAAC;AACnI;AAEA,SAASO,mCAAmCA,CAAA,EAAG;EAC7C,OAAOX,oBAAoB,CAACO,kCAAkC,EAAEJ,mCAAmC,EAAEA,mCAAmC,CAAC;AAC3I;AAEA,OAAO,SAASS,+BAA+BA,CAACC,GAA8B,EAAE;EAC9EF,mCAAmC,CAAC,CAAC;EAErC,IAAIE,GAAG,IAAI,IAAI,EAAE;IACf,OAAO,IAAI;EACb;EAEA,OAAOP,2BAA2B,CAACO,GAAG,CAAC;AACzC;AAEA,OAAO,SAASC,oBAAoBA,CAAC;EAAED;AAA+B,CAAC,EAAE;EACvE,MAAME,4BAA4B,GAAGH,+BAA+B,CAACC,GAAG,CAAC;EACzE,MAAMG,QAAQ,GAAGN,+BAA+B,CAAC,CAAC;EAElD,IAAIK,4BAA4B,IAAI,IAAI,IAAIC,QAAQ,EAAE;IACpD,OAAO,IAAI;EACb;EAEA,MAAMC,SAAS,GAAGF,4BAA4B,CAACG,SAAS;EAExD,oBACET,IAAA,CAACP,IAAI;IACHiB,2BAA2B,EAAE,IAAK;IAClCC,yBAAyB,EAAC,qBAAqB;IAC/CC,aAAa,EAAC,MAAM;IACpBC,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,eAEnBhB,IAAA,CAACQ,SAAS;MAAA,GAAKF,4BAA4B,CAACW;IAAM,CAAG;EAAC,CAClD,CAAC;AAEX;AAEA,OAAO,SAASC,iCAAiCA,CAAA,EAAmC;EAClF,MAAM,CAACd,GAAG,EAAEe,MAAM,CAAC,GAAG7B,QAAQ,CAAgB,IAAI,CAAC;EACnD,MAAM,CAAC8B,SAAS,EAAEC,YAAY,CAAC,GAAG/B,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMiB,QAAQ,GAAGN,+BAA+B,CAAC,CAAC;EAElD,MAAMqB,OAAO,GAAGjC,WAAW,CAAEkC,OAAsB,IAAK;IACtDF,YAAY,CAAEG,UAAU,IAAK;MAC3B,IAAIA,UAAU,EAAE;QACd5B,yBAAyB,CAAC,CAAC;MAC7B;MAEA,OAAO,IAAI;IACb,CAAC,CAAC;IACFuB,MAAM,CAACI,OAAO,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,OAAO,GAAGpC,WAAW,CAAC,MAAM;IAChCO,yBAAyB,CAAC,CAAC;IAC3BuB,MAAM,CAAC,IAAI,CAAC;IACZE,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEjB,GAAG;IAAEgB,SAAS;IAAEb,QAAQ;IAAEe,OAAO;IAAEG;EAAQ,CAAC;AACvD;AAEA,MAAMX,MAAM,GAAGtB,UAAU,CAACkC,MAAM,CAAC;EAC/BX,IAAI,EAAE;IACJ,GAAGvB,UAAU,CAACmC;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useState","useSyncExternalStore","StyleSheet","View","getPendingHostComponentStoreVersion","getIsPendingHostComponentHidden","resetPendingHostComponent","resolvePendingHostComponent","subscribePendingHostComponentStore","jsx","_jsx","useIsPendingHostComponentHidden","usePendingHostComponentStoreVersion","useResolvedPendingHostComponent","url","PendingHostComponent","resolvedPendingHostComponent","isHidden","Component","component","accessibilityElementsHidden","importantForAccessibility","pointerEvents","style","styles","root","children","params","usePendingHostComponentController","setUrl","isPresent","setIsPresent","present","nextUrl","wasPresent","dismiss","create","absoluteFillObject"],"sourceRoot":"../../../src","sources":["host/PendingHostComponent.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,QAAQ,EAAEC,oBAAoB,QAAQ,OAAO;AACnE,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SACEC,mCAAmC,EACnCC,+BAA+B,EAC/BC,yBAAyB,EACzBC,2BAA2B,EAC3BC,kCAAkC,QAC7B,gCAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAcrC,OAAO,SAASC,+BAA+BA,CAAA,EAAG;EAChD,OAAOV,oBAAoB,CACzBO,kCAAkC,EAClCH,+BAA+B,EAC/BA,+BACF,CAAC;AACH;AAEA,SAASO,mCAAmCA,CAAA,EAAG;EAC7C,OAAOX,oBAAoB,CACzBO,kCAAkC,EAClCJ,mCAAmC,EACnCA,mCACF,CAAC;AACH;AAEA,OAAO,SAASS,+BAA+BA,CAACC,GAA8B,EAAE;EAC9EF,mCAAmC,CAAC,CAAC;EAErC,IAAIE,GAAG,IAAI,IAAI,EAAE;IACf,OAAO,IAAI;EACb;EAEA,OAAOP,2BAA2B,CAACO,GAAG,CAAC;AACzC;AAEA,OAAO,SAASC,oBAAoBA,CAAC;EAAED;AAA+B,CAAC,EAAE;EACvE,MAAME,4BAA4B,GAAGH,+BAA+B,CAACC,GAAG,CAAC;EACzE,MAAMG,QAAQ,GAAGN,+BAA+B,CAAC,CAAC;EAElD,IAAIK,4BAA4B,IAAI,IAAI,IAAIC,QAAQ,EAAE;IACpD,OAAO,IAAI;EACb;EAEA,MAAMC,SAAS,GAAGF,4BAA4B,CAACG,SAAS;EAExD,oBACET,IAAA,CAACP,IAAI;IACHiB,2BAA2B,EAAE,IAAK;IAClCC,yBAAyB,EAAC,qBAAqB;IAC/CC,aAAa,EAAC,MAAM;IACpBC,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,eAEnBhB,IAAA,CAACQ,SAAS;MAAA,GAAKF,4BAA4B,CAACW;IAAM,CAAG;EAAC,CAClD,CAAC;AAEX;AAEA,OAAO,SAASC,iCAAiCA,CAAA,EAAmC;EAClF,MAAM,CAACd,GAAG,EAAEe,MAAM,CAAC,GAAG7B,QAAQ,CAAgB,IAAI,CAAC;EACnD,MAAM,CAAC8B,SAAS,EAAEC,YAAY,CAAC,GAAG/B,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMiB,QAAQ,GAAGN,+BAA+B,CAAC,CAAC;EAElD,MAAMqB,OAAO,GAAGjC,WAAW,CAAEkC,OAAsB,IAAK;IACtDF,YAAY,CAAEG,UAAU,IAAK;MAC3B,IAAIA,UAAU,EAAE;QACd5B,yBAAyB,CAAC,CAAC;MAC7B;MAEA,OAAO,IAAI;IACb,CAAC,CAAC;IACFuB,MAAM,CAACI,OAAO,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,OAAO,GAAGpC,WAAW,CAAC,MAAM;IAChCO,yBAAyB,CAAC,CAAC;IAC3BuB,MAAM,CAAC,IAAI,CAAC;IACZE,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEjB,GAAG;IAAEgB,SAAS;IAAEb,QAAQ;IAAEe,OAAO;IAAEG;EAAQ,CAAC;AACvD;AAEA,MAAMX,MAAM,GAAGtB,UAAU,CAACkC,MAAM,CAAC;EAC/BX,IAAI,EAAE;IACJ,GAAGvB,UAAU,CAACmC;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["PendingHostComponent","usePendingHostComponentController","useIsPendingHostComponentHidden","useResolvedPendingHostComponent","createPendingHostComponentRoutePrefix","normalizeRoutePath","hidePendingHostComponent","installPendingHostComponentBridge","registerPendingHostComponentRoute","resetPendingHostComponent","resolvePendingHostComponent"],"sourceRoot":"../../../src","sources":["host/index.ts"],"mappings":";;AACA,SACEA,oBAAoB,EACpBC,iCAAiC,EACjCC,+BAA+B,EAC/BC,+BAA+B,QAC1B,2BAAwB;AAS/B,SACEC,qCAAqC,EACrCC,kBAAkB,QACb,mBAAgB;AACvB,SACEC,wBAAwB,EACxBC,iCAAiC,EACjCC,iCAAiC,EACjCC,yBAAyB,EACzBC,2BAA2B,QACtB,gCAA6B","ignoreList":[]}
1
+ {"version":3,"names":["PendingHostComponent","usePendingHostComponentController","useIsPendingHostComponentHidden","useResolvedPendingHostComponent","createPendingHostComponentRoutePrefix","normalizeRoutePath","hidePendingHostComponent","installPendingHostComponentBridge","registerPendingHostComponentRoute","resetPendingHostComponent","resolvePendingHostComponent"],"sourceRoot":"../../../src","sources":["host/index.ts"],"mappings":";;AACA,SACEA,oBAAoB,EACpBC,iCAAiC,EACjCC,+BAA+B,EAC/BC,+BAA+B,QAC1B,2BAAwB;AAS/B,SAASC,qCAAqC,EAAEC,kBAAkB,QAAQ,mBAAgB;AAC1F,SACEC,wBAAwB,EACxBC,iCAAiC,EACjCC,iCAAiC,EACjCC,yBAAyB,EACzBC,2BAA2B,QACtB,gCAA6B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["resolvePendingHostComponentParams","rawParams","parserParams","validateParams","parsedParams","defaultParserParams","status","value","isStandardSchema","result","validate","Promise","cause","Error","issues","map","issue","message","join","error","String","params","Object","fromEntries","entries","key","JSON","parse","SyntaxError"],"sourceRoot":"../../../src","sources":["host/resolveParams.ts"],"mappings":";;AAOA,OAAO,SAASA,iCAAiCA,CAC/CC,SAAkC,EAClCC,YAAsC,EACtCC,cAAwE,EACxD;EAChB,MAAMC,YAAY,GAAG,CAACF,YAAY,IAAIG,mBAAmB,EAAEJ,SAAS,CAAC;EAErE,IAAIE,cAAc,IAAI,IAAI,EAAE;IAC1B,OAAO;MAAEG,MAAM,EAAE,UAAU;MAAEC,KAAK,EAAEH;IAAa,CAAC;EACpD;EAEA,IAAI;IACF,IAAII,gBAAgB,CAACL,cAAc,CAAC,EAAE;MACpC,MAAMM,MAAM,GAAGN,cAAc,CAAC,WAAW,CAAC,CAACO,QAAQ,CAACN,YAAY,CAAC;MAEjE,IAAIK,MAAM,YAAYE,OAAO,EAAE;QAC7B,OAAO;UAAEL,MAAM,EAAE,SAAS;UAAEM,KAAK,EAAE,IAAIC,KAAK,CAAC,0DAA0D;QAAE,CAAC;MAC5G;MAEA,IAAIJ,MAAM,CAACK,MAAM,IAAI,IAAI,EAAE;QACzB,OAAO;UACLR,MAAM,EAAE,SAAS;UACjBM,KAAK,EAAE,IAAIC,KAAK,CAACJ,MAAM,CAACK,MAAM,CAACC,GAAG,CAACC,KAAK,IAAIA,KAAK,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;QACvE,CAAC;MACH;MAEA,OAAO;QAAEZ,MAAM,EAAE,UAAU;QAAEC,KAAK,EAAEE,MAAM,CAACF,KAAK,IAAI,CAAC;MAAE,CAAC;IAC1D;IAEA,OAAO;MAAED,MAAM,EAAE,UAAU;MAAEC,KAAK,EAAEJ,cAAc,CAACC,YAAY,CAAC,IAAI,CAAC;IAAE,CAAC;EAC1E,CAAC,CAAC,OAAOe,KAAK,EAAE;IACd,OAAO;MACLb,MAAM,EAAE,SAAS;MACjBM,KAAK,EAAEO,KAAK,YAAYN,KAAK,GAAGM,KAAK,GAAG,IAAIN,KAAK,CAACO,MAAM,CAACD,KAAK,CAAC;IACjE,CAAC;EACH;AACF;AAEA,SAASd,mBAAmBA,CAACgB,MAA+B,EAA2B;EACrF,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,MAAM,CAAC,CAACN,GAAG,CAAC,CAAC,CAACU,GAAG,EAAElB,KAAK,CAAC,KAAK;IAC3C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAO,CAACkB,GAAG,EAAElB,KAAK,CAAC;IACrB;IAEA,IAAI;MACF,OAAO,CAACkB,GAAG,EAAEC,IAAI,CAACC,KAAK,CAACpB,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,OAAOY,KAAK,EAAE;MACd,IAAI,EAAEA,KAAK,YAAYS,WAAW,CAAC,EAAE;QACnC,MAAMT,KAAK;MACb;MAEA,OAAO,CAACM,GAAG,EAAElB,KAAK,CAAC;IACrB;EACF,CAAC,CACH,CAAC;AACH;AAEA,SAASC,gBAAgBA,CACvBD,KAA8B,EACe;EAC7C,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,WAAW,IAAIA,KAAK;AAC5E","ignoreList":[]}
1
+ {"version":3,"names":["resolvePendingHostComponentParams","rawParams","parserParams","validateParams","parsedParams","defaultParserParams","status","value","isStandardSchema","result","validate","Promise","cause","Error","issues","map","issue","message","join","error","String","params","Object","fromEntries","entries","key","JSON","parse","SyntaxError"],"sourceRoot":"../../../src","sources":["host/resolveParams.ts"],"mappings":";;AAOA,OAAO,SAASA,iCAAiCA,CAC/CC,SAAkC,EAClCC,YAAsC,EACtCC,cAAwE,EACxD;EAChB,MAAMC,YAAY,GAAG,CAACF,YAAY,IAAIG,mBAAmB,EAAEJ,SAAS,CAAC;EAErE,IAAIE,cAAc,IAAI,IAAI,EAAE;IAC1B,OAAO;MAAEG,MAAM,EAAE,UAAU;MAAEC,KAAK,EAAEH;IAAa,CAAC;EACpD;EAEA,IAAI;IACF,IAAII,gBAAgB,CAACL,cAAc,CAAC,EAAE;MACpC,MAAMM,MAAM,GAAGN,cAAc,CAAC,WAAW,CAAC,CAACO,QAAQ,CAACN,YAAY,CAAC;MAEjE,IAAIK,MAAM,YAAYE,OAAO,EAAE;QAC7B,OAAO;UAAEL,MAAM,EAAE,SAAS;UAAEM,KAAK,EAAE,IAAIC,KAAK,CAAC,0DAA0D;QAAE,CAAC;MAC5G;MAEA,IAAIJ,MAAM,CAACK,MAAM,IAAI,IAAI,EAAE;QACzB,OAAO;UACLR,MAAM,EAAE,SAAS;UACjBM,KAAK,EAAE,IAAIC,KAAK,CAACJ,MAAM,CAACK,MAAM,CAACC,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;QACzE,CAAC;MACH;MAEA,OAAO;QAAEZ,MAAM,EAAE,UAAU;QAAEC,KAAK,EAAEE,MAAM,CAACF,KAAK,IAAI,CAAC;MAAE,CAAC;IAC1D;IAEA,OAAO;MAAED,MAAM,EAAE,UAAU;MAAEC,KAAK,EAAEJ,cAAc,CAACC,YAAY,CAAC,IAAI,CAAC;IAAE,CAAC;EAC1E,CAAC,CAAC,OAAOe,KAAK,EAAE;IACd,OAAO;MACLb,MAAM,EAAE,SAAS;MACjBM,KAAK,EAAEO,KAAK,YAAYN,KAAK,GAAGM,KAAK,GAAG,IAAIN,KAAK,CAACO,MAAM,CAACD,KAAK,CAAC;IACjE,CAAC;EACH;AACF;AAEA,SAASd,mBAAmBA,CAACgB,MAA+B,EAA2B;EACrF,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACH,MAAM,CAAC,CAACN,GAAG,CAAC,CAAC,CAACU,GAAG,EAAElB,KAAK,CAAC,KAAK;IAC3C,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAO,CAACkB,GAAG,EAAElB,KAAK,CAAC;IACrB;IAEA,IAAI;MACF,OAAO,CAACkB,GAAG,EAAEC,IAAI,CAACC,KAAK,CAACpB,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,OAAOY,KAAK,EAAE;MACd,IAAI,EAAEA,KAAK,YAAYS,WAAW,CAAC,EAAE;QACnC,MAAMT,KAAK;MACb;MAEA,OAAO,CAACM,GAAG,EAAElB,KAAK,CAAC;IACrB;EACF,CAAC,CACH,CAAC;AACH;AAEA,SAASC,gBAAgBA,CACvBD,KAA8B,EACe;EAC7C,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,WAAW,IAAIA,KAAK;AAC5E","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["createMicroFrontendRuntime","createRoute","findAppNameBySourceURL","getAppName","PendingHostComponent","usePendingHostComponentController","useIsPendingHostComponentHidden","useResolvedPendingHostComponent","createPendingHostComponentRoutePrefix","normalizeRoutePath","hidePendingHostComponent","installPendingHostComponentBridge","registerPendingHostComponentRoute","resetPendingHostComponent","resolvePendingHostComponent","MicroFrontendSessionProvider","MissingMicroFrontendSessionError","useMicroFrontendSession","useMicroFrontendSessions","default","Portal","AppContainerNotFoundError","ExposedModuleNotFoundError","InvalidAppNameError","InvalidAppRequestError","InvalidNativeRuntimeEventError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,0BAA0B,QAAQ,iCAA8B;AAEzE,SAASC,WAAW,QAAQ,kBAAe;AAE3C,SAASC,sBAAsB,EAAEC,UAAU,QAAQ,yBAAsB;AAEzE,SACEC,oBAAoB,EACpBC,iCAAiC,EACjCC,+BAA+B,EAC/BC,+BAA+B,QAC1B,gCAA6B;AASpC,SACEC,qCAAqC,EACrCC,kBAAkB,QACb,wBAAqB;AAC5B,SACEC,wBAAwB,EACxBC,iCAAiC,EACjCC,iCAAiC,EACjCC,yBAAyB,EACzBC,2BAA2B,QACtB,qCAAkC;AACzC,SACEC,4BAA4B,EAC5BC,gCAAgC,EAChCC,uBAAuB,QAClB,0CAAuC;AAE9C,SAASC,wBAAwB,QAAQ,uCAAoC;AAQ7E,SAASC,OAAO,IAAIC,MAAM,QAAQ,mCAAmC;AAerE,SACEC,yBAAyB,EACzBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,sBAAsB,EACtBC,8BAA8B,QACzB,qBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["createMicroFrontendRuntime","createRoute","findAppNameBySourceURL","getAppName","PendingHostComponent","usePendingHostComponentController","useIsPendingHostComponentHidden","useResolvedPendingHostComponent","createPendingHostComponentRoutePrefix","normalizeRoutePath","hidePendingHostComponent","installPendingHostComponentBridge","registerPendingHostComponentRoute","resetPendingHostComponent","resolvePendingHostComponent","MicroFrontendSessionProvider","MissingMicroFrontendSessionError","useMicroFrontendSession","useMicroFrontendSessions","default","Portal","AppContainerNotFoundError","ExposedModuleNotFoundError","InvalidAppNameError","InvalidAppRequestError","InvalidNativeRuntimeEventError"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,0BAA0B,QAAQ,iCAA8B;AAEzE,SAASC,WAAW,QAAQ,kBAAe;AAE3C,SAASC,sBAAsB,EAAEC,UAAU,QAAQ,yBAAsB;AAEzE,SACEC,oBAAoB,EACpBC,iCAAiC,EACjCC,+BAA+B,EAC/BC,+BAA+B,QAC1B,gCAA6B;AASpC,SAASC,qCAAqC,EAAEC,kBAAkB,QAAQ,wBAAqB;AAC/F,SACEC,wBAAwB,EACxBC,iCAAiC,EACjCC,iCAAiC,EACjCC,yBAAyB,EACzBC,2BAA2B,QACtB,qCAAkC;AACzC,SACEC,4BAA4B,EAC5BC,gCAAgC,EAChCC,uBAAuB,QAClB,0CAAuC;AAE9C,SAASC,wBAAwB,QAAQ,uCAAoC;AAQ7E,SAASC,OAAO,IAAIC,MAAM,QAAQ,mCAAmC;AAerE,SACEC,yBAAyB,EACzBC,0BAA0B,EAC1BC,mBAAmB,EACnBC,sBAAsB,EACtBC,8BAA8B,QACzB,qBAAkB","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ # Rollipop
2
+
3
+ ```ts
4
+ import { microFrontend } from '@granite-js/micro-frontend/plugin';
5
+
6
+ const plugins = [
7
+ microFrontend({
8
+ appName: 'my-service',
9
+ shared: ['react', 'react-native'],
10
+ exposes: { './App': './src/App.tsx' },
11
+ }),
12
+ ];
13
+ ```
14
+
15
+ Hosts use `shared: { react: { eager: true } }` to register bundled modules. Remotes resolve non-eager modules from the shared registry. Shared exports remain live, and disposal callbacks are scoped to the application.
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ import * as path from 'node:path';
4
+ import { code, include } from 'rollipop/filter';
5
+ import { transformDisposeOwnership } from "../plugin-utils/disposeTransform.js";
6
+ import { intoShared } from "../plugin-utils/intoShared.js";
7
+ import { getPreludeConfig } from "../plugin-utils/prelude.js";
8
+ const PRELUDE = '\0granite:micro-frontend';
9
+ const SHARED = '\0granite:shared:';
10
+ export function microFrontend(options) {
11
+ const shared = intoShared(options.shared);
12
+ const external = new Set(Object.entries(shared ?? {}).filter(([, value]) => value.eager !== true).map(([name]) => name));
13
+ return [prelude(options, shared), external.size > 0 && sharedModules(external), dispose(options.appName)];
14
+ }
15
+ function prelude(options, shared) {
16
+ let prelude = '';
17
+ return {
18
+ name: 'granite:micro-frontend:prelude',
19
+ config(config) {
20
+ const root = config.root ?? process.cwd();
21
+ const exposes = Object.fromEntries(Object.entries(options.exposes ?? {}).map(([name, file]) => [name, path.resolve(root, file)]));
22
+ const generated = getPreludeConfig({
23
+ ...options,
24
+ shared,
25
+ exposes
26
+ }, options.appName);
27
+ prelude = generated.preludeScript;
28
+ // Must run before the native-module proxy and before any exposed app module.
29
+ config.polyfills = [{
30
+ type: 'plain',
31
+ code: `var global = globalThis;\n${generated.banner}`
32
+ }, ...(config.polyfills ?? [])];
33
+ return {
34
+ prelude: [PRELUDE]
35
+ };
36
+ },
37
+ resolveId: {
38
+ filter: {
39
+ id: /^\0granite:micro-frontend$/
40
+ },
41
+ handler() {
42
+ return PRELUDE;
43
+ }
44
+ },
45
+ load: {
46
+ filter: {
47
+ id: /^\0granite:micro-frontend$/
48
+ },
49
+ handler() {
50
+ return prelude;
51
+ }
52
+ }
53
+ };
54
+ }
55
+ function sharedModules(external) {
56
+ const externalPattern = new RegExp(`^(?:${[...external].map(value => value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('|')})$`);
57
+ return {
58
+ name: 'granite:micro-frontend:shared-modules',
59
+ resolveId: {
60
+ filter: {
61
+ id: externalPattern
62
+ },
63
+ handler(source) {
64
+ return external.has(source) ? `${SHARED}${source}` : undefined;
65
+ }
66
+ },
67
+ load: {
68
+ filter: {
69
+ id: /^\0granite:shared:/
70
+ },
71
+ handler(id) {
72
+ const name = JSON.stringify(id.slice(SHARED.length));
73
+ return `
74
+ var shared = globalThis.__MICRO_FRONTEND__.__SHARED__[${name}];
75
+ if (!shared) throw new Error('Shared module ' + ${name} + ' is not registered');
76
+ var original = shared.get();
77
+ var facade = {};
78
+ if (original != null) for (const key of Reflect.ownKeys(original)) {
79
+ if (key === '__esModule' || !Object.getOwnPropertyDescriptor(original, key)?.enumerable) continue;
80
+ Object.defineProperty(facade, key, { enumerable: true, configurable: true,
81
+ get() { return original[key]; },
82
+ set(value) { Object.defineProperty(facade, key, { value, writable: true, enumerable: true, configurable: true }); }
83
+ });
84
+ }
85
+ Object.defineProperty(facade, '__esModule', { value: true, writable: true, enumerable: true, configurable: true });
86
+ module.exports = facade;
87
+ `;
88
+ }
89
+ }
90
+ };
91
+ }
92
+ function dispose(appName) {
93
+ return {
94
+ name: 'granite:micro-frontend:dispose',
95
+ transform: {
96
+ filter: [include(code(/(?:global|globalThis)\.__MICRO_FRONTEND__\.dispose/))],
97
+ handler(source, id) {
98
+ const transformed = transformDisposeOwnership(id, source, {
99
+ appName
100
+ });
101
+ return source === transformed ? null : {
102
+ code: transformed,
103
+ map: null
104
+ };
105
+ }
106
+ }
107
+ };
108
+ }
109
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","code","include","transformDisposeOwnership","intoShared","getPreludeConfig","PRELUDE","SHARED","microFrontend","options","shared","external","Set","Object","entries","filter","value","eager","map","name","prelude","size","sharedModules","dispose","appName","config","root","process","cwd","exposes","fromEntries","file","resolve","generated","preludeScript","polyfills","type","banner","resolveId","id","handler","load","externalPattern","RegExp","replace","join","source","has","undefined","JSON","stringify","slice","length","transform","transformed"],"sourceRoot":"../../../src","sources":["next/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["next/types.ts"],"mappings":"","ignoreList":[]}
@@ -3,10 +3,10 @@
3
3
  import * as fs from 'fs';
4
4
  import * as path from 'path';
5
5
  import { prepareLocalDirectory } from '@granite-js/utils';
6
- import { transformDisposeOwnership } from "./disposeTransform.js";
7
- import { intoShared } from "./intoShared.js";
8
- import { getPreludeConfig } from "./prelude.js";
9
6
  import { createSharedResolverConfig } from "./resolver.js";
7
+ import { transformDisposeOwnership } from "../plugin-utils/disposeTransform.js";
8
+ import { intoShared } from "../plugin-utils/intoShared.js";
9
+ import { getPreludeConfig } from "../plugin-utils/prelude.js";
10
10
  export async function microFrontend(options = {}) {
11
11
  const shared = intoShared(options.shared);
12
12
  const normalizedOptions = {
@@ -16,8 +16,7 @@ export async function microFrontend(options = {}) {
16
16
  const nonEagerEntries = Object.entries(shared ?? {}).filter(([, config]) => config.eager !== true);
17
17
  const localDirectory = prepareLocalDirectory(process.cwd());
18
18
  // Keep this path distinct from @granite-js/plugin-micro-frontend's generated prelude.
19
- // Both plugins can coexist while consumers migrate, and sharing a path makes the
20
- // later plugin overwrite the earlier plugin's runtime registrations.
19
+ // Sharing a path would let one plugin overwrite the other's runtime registrations.
21
20
  const preludePath = path.join(localDirectory, 'granite-micro-frontend-runtime.js');
22
21
  const prelude = getPreludeConfig(normalizedOptions);
23
22
  const resolver = createSharedResolverConfig(nonEagerEntries);
@@ -1 +1 @@
1
- {"version":3,"names":["fs","path","prepareLocalDirectory","transformDisposeOwnership","intoShared","getPreludeConfig","createSharedResolverConfig","microFrontend","options","shared","normalizedOptions","nonEagerEntries","Object","entries","filter","config","eager","localDirectory","process","cwd","preludePath","join","prelude","resolver","disposeOwnershipOptions","writePrelude","appName","writeFileSync","preludeScript","name","dev","order","handler","build","extra","some","moduleName","skipReactNativeInitializeCore","skipReactNativePolyfills","undefined","transformer","transformSync","id","code","esbuild","banner","js"],"sourceRoot":"../../../src","sources":["plugin/microFrontendPlugin.ts"],"mappings":";;AAAA,OAAO,KAAKA,EAAE,MAAM,IAAI;AACxB,OAAO,KAAKC,IAAI,MAAM,MAAM;AAE5B,SAASC,qBAAqB,QAAQ,mBAAmB;AAEzD,SAASC,yBAAyB,QAAQ,uBAAoB;AAC9D,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,gBAAgB,QAAQ,cAAW;AAC5C,SAASC,0BAA0B,QAAQ,eAAY;AAGvD,OAAO,eAAeC,aAAaA,CAACC,OAAmC,GAAG,CAAC,CAAC,EAA8B;EACxG,MAAMC,MAAM,GAAGL,UAAU,CAACI,OAAO,CAACC,MAAM,CAAC;EACzC,MAAMC,iBAA6C,GAAG;IACpD,GAAGF,OAAO;IACVC;EACF,CAAC;EACD,MAAME,eAAe,GAAGC,MAAM,CAACC,OAAO,CAACJ,MAAM,IAAI,CAAC,CAAC,CAAC,CAACK,MAAM,CAAC,CAAC,GAAGC,MAAM,CAAC,KAAKA,MAAM,CAACC,KAAK,KAAK,IAAI,CAAC;EAClG,MAAMC,cAAc,GAAGf,qBAAqB,CAACgB,OAAO,CAACC,GAAG,CAAC,CAAC,CAAC;EAC3D;EACA;EACA;EACA,MAAMC,WAAW,GAAGnB,IAAI,CAACoB,IAAI,CAACJ,cAAc,EAAE,mCAAmC,CAAC;EAClF,MAAMK,OAAO,GAAGjB,gBAAgB,CAACK,iBAAiB,CAAC;EACnD,MAAMa,QAAQ,GAAGjB,0BAA0B,CAACK,eAAe,CAAC;EAC5D,MAAMa,uBAAsD,GAAG,CAAC,CAAC;EAEjE,SAASC,YAAYA,CAACC,OAAgB,EAAE;IACtCF,uBAAuB,CAACE,OAAO,GAAGA,OAAO;IACzC,MAAMX,MAAM,GAAGV,gBAAgB,CAACK,iBAAiB,EAAEgB,OAAO,CAAC;IAC3D1B,EAAE,CAAC2B,aAAa,CAACP,WAAW,EAAEL,MAAM,CAACa,aAAa,EAAE,MAAM,CAAC;EAC7D;EAEAH,YAAY,CAAC,CAAC;EAEd,OAAO;IACLI,IAAI,EAAE,gBAAgB;IACtBC,GAAG,EAAE;MACHC,KAAK,EAAE,KAAK;MACZC,OAAOA,CAAC;QAAEN;MAAQ,CAAC,EAAE;QACnBD,YAAY,CAACC,OAAO,CAAC;MACvB;IACF,CAAC;IACDO,KAAK,EAAE;MACLF,KAAK,EAAE,KAAK;MACZC,OAAOA,CAAC;QAAEN;MAAQ,CAAC,EAAE;QACnBD,YAAY,CAACC,OAAO,CAAC;MACvB;IACF,CAAC;IACDX,MAAM,EAAE;MACNmB,KAAK,EAAEvB,eAAe,CAACwB,IAAI,CAAC,CAAC,CAACC,UAAU,CAAC,KAAKA,UAAU,KAAK,cAAc,CAAC,GACxE;QACEC,6BAA6B,EAAE,IAAI;QACnCC,wBAAwB,EAAE;MAC5B,CAAC,GACDC,SAAS;MACbhB,QAAQ;MACRiB,WAAW,EAAE;QACXC,aAAaA,CAACC,EAAE,EAAEC,IAAI,EAAE;UACtB,OAAOxC,yBAAyB,CAACuC,EAAE,EAAEC,IAAI,EAAEnB,uBAAuB,CAAC;QACrE;MACF,CAAC;MACDoB,OAAO,EAAE;QACPtB,OAAO,EAAE,CAACF,WAAW,CAAC;QACtByB,MAAM,EAAE;UAAEC,EAAE,EAAExB,OAAO,CAACuB;QAAO;MAC/B;IACF;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["fs","path","prepareLocalDirectory","createSharedResolverConfig","transformDisposeOwnership","intoShared","getPreludeConfig","microFrontend","options","shared","normalizedOptions","nonEagerEntries","Object","entries","filter","config","eager","localDirectory","process","cwd","preludePath","join","prelude","resolver","disposeOwnershipOptions","writePrelude","appName","writeFileSync","preludeScript","name","dev","order","handler","build","extra","some","moduleName","skipReactNativeInitializeCore","skipReactNativePolyfills","undefined","transformer","transformSync","id","code","esbuild","banner","js"],"sourceRoot":"../../../src","sources":["plugin/microFrontendPlugin.ts"],"mappings":";;AAAA,OAAO,KAAKA,EAAE,MAAM,IAAI;AACxB,OAAO,KAAKC,IAAI,MAAM,MAAM;AAE5B,SAASC,qBAAqB,QAAQ,mBAAmB;AACzD,SAASC,0BAA0B,QAAQ,eAAY;AAGvD,SAASC,yBAAyB,QAAQ,qCAAkC;AAC5E,SAASC,UAAU,QAAQ,+BAA4B;AACvD,SAASC,gBAAgB,QAAQ,4BAAyB;AAE1D,OAAO,eAAeC,aAAaA,CAACC,OAAmC,GAAG,CAAC,CAAC,EAA8B;EACxG,MAAMC,MAAM,GAAGJ,UAAU,CAACG,OAAO,CAACC,MAAM,CAAC;EACzC,MAAMC,iBAA6C,GAAG;IACpD,GAAGF,OAAO;IACVC;EACF,CAAC;EACD,MAAME,eAAe,GAAGC,MAAM,CAACC,OAAO,CAACJ,MAAM,IAAI,CAAC,CAAC,CAAC,CAACK,MAAM,CAAC,CAAC,GAAGC,MAAM,CAAC,KAAKA,MAAM,CAACC,KAAK,KAAK,IAAI,CAAC;EAClG,MAAMC,cAAc,GAAGf,qBAAqB,CAACgB,OAAO,CAACC,GAAG,CAAC,CAAC,CAAC;EAC3D;EACA;EACA,MAAMC,WAAW,GAAGnB,IAAI,CAACoB,IAAI,CAACJ,cAAc,EAAE,mCAAmC,CAAC;EAClF,MAAMK,OAAO,GAAGhB,gBAAgB,CAACI,iBAAiB,CAAC;EACnD,MAAMa,QAAQ,GAAGpB,0BAA0B,CAACQ,eAAe,CAAC;EAC5D,MAAMa,uBAAsD,GAAG,CAAC,CAAC;EAEjE,SAASC,YAAYA,CAACC,OAAgB,EAAE;IACtCF,uBAAuB,CAACE,OAAO,GAAGA,OAAO;IACzC,MAAMX,MAAM,GAAGT,gBAAgB,CAACI,iBAAiB,EAAEgB,OAAO,CAAC;IAC3D1B,EAAE,CAAC2B,aAAa,CAACP,WAAW,EAAEL,MAAM,CAACa,aAAa,EAAE,MAAM,CAAC;EAC7D;EAEAH,YAAY,CAAC,CAAC;EAEd,OAAO;IACLI,IAAI,EAAE,gBAAgB;IACtBC,GAAG,EAAE;MACHC,KAAK,EAAE,KAAK;MACZC,OAAOA,CAAC;QAAEN;MAAQ,CAAC,EAAE;QACnBD,YAAY,CAACC,OAAO,CAAC;MACvB;IACF,CAAC;IACDO,KAAK,EAAE;MACLF,KAAK,EAAE,KAAK;MACZC,OAAOA,CAAC;QAAEN;MAAQ,CAAC,EAAE;QACnBD,YAAY,CAACC,OAAO,CAAC;MACvB;IACF,CAAC;IACDX,MAAM,EAAE;MACNmB,KAAK,EAAEvB,eAAe,CAACwB,IAAI,CAAC,CAAC,CAACC,UAAU,CAAC,KAAKA,UAAU,KAAK,cAAc,CAAC,GACxE;QACEC,6BAA6B,EAAE,IAAI;QACnCC,wBAAwB,EAAE;MAC5B,CAAC,GACDC,SAAS;MACbhB,QAAQ;MACRiB,WAAW,EAAE;QACXC,aAAaA,CAACC,EAAE,EAAEC,IAAI,EAAE;UACtB,OAAOvC,yBAAyB,CAACsC,EAAE,EAAEC,IAAI,EAAEnB,uBAAuB,CAAC;QACrE;MACF,CAAC;MACDoB,OAAO,EAAE;QACPtB,OAAO,EAAE,CAACF,WAAW,CAAC;QACtByB,MAAM,EAAE;UAAEC,EAAE,EAAExB,OAAO,CAACuB;QAAO;MAC/B;IACF;EACF,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["injectDisposeAppName","types","babelTypes","options","name","visitor","CallExpression","path","appName","node","arguments","length","runtimeIdentifier","getRuntimeIdentifier","callee","scope","getBinding","unshift","stringLiteral","isMemberExpression","computed","isIdentifier","property","object"],"sourceRoot":"../../../src","sources":["plugin-utils/disposeBabelPlugin.ts"],"mappings":";;AAOA,OAAO,SAASA,oBAAoBA,CAClC;EAAEC,KAAK,EAAEC;AAAyC,CAAC,EACnDC,OAAsC,EAC3B;EACX,OAAO;IACLC,IAAI,EAAE,wCAAwC;IAC9CC,OAAO,EAAE;MACPC,cAAcA,CAACC,IAAI,EAAE;QACnB,IAAIJ,OAAO,CAACK,OAAO,IAAI,IAAI,IAAID,IAAI,CAACE,IAAI,CAACC,SAAS,CAACC,MAAM,KAAK,CAAC,EAAE;UAC/D;QACF;QAEA,MAAMC,iBAAiB,GAAGC,oBAAoB,CAACN,IAAI,CAACE,IAAI,CAACK,MAAM,EAAEZ,UAAU,CAAC;QAC5E,IAAIU,iBAAiB,IAAI,IAAI,IAAIL,IAAI,CAACQ,KAAK,CAACC,UAAU,CAACJ,iBAAiB,CAAC,IAAI,IAAI,EAAE;UACjF;QACF;QAEAL,IAAI,CAACE,IAAI,CAACC,SAAS,CAACO,OAAO,CAACf,UAAU,CAACgB,aAAa,CAACf,OAAO,CAACK,OAAO,CAAC,CAAC;MACxE;IACF;EACF,CAAC;AACH;AAEA,SAASK,oBAAoBA,CAC3BC,MAAgE,EAChEZ,UAA6B,EACd;EACf;EACA;EACA,IACE,CAACA,UAAU,CAACiB,kBAAkB,CAACL,MAAM,CAAC,IACtCA,MAAM,CAACM,QAAQ,IACf,CAAClB,UAAU,CAACmB,YAAY,CAACP,MAAM,CAACQ,QAAQ,EAAE;IAAElB,IAAI,EAAE;EAAU,CAAC,CAAC,IAC9D,CAACF,UAAU,CAACiB,kBAAkB,CAACL,MAAM,CAACS,MAAM,CAAC,IAC7CT,MAAM,CAACS,MAAM,CAACH,QAAQ,IACtB,CAAClB,UAAU,CAACmB,YAAY,CAACP,MAAM,CAACS,MAAM,CAACD,QAAQ,EAAE;IAAElB,IAAI,EAAE;EAAqB,CAAC,CAAC,IAC/E,CAACF,UAAU,CAACmB,YAAY,CAACP,MAAM,CAACS,MAAM,CAACA,MAAM,EAAE;IAAEnB,IAAI,EAAE;EAAS,CAAC,CAAC,IACjE,CAACF,UAAU,CAACmB,YAAY,CAACP,MAAM,CAACS,MAAM,CAACA,MAAM,EAAE;IAAEnB,IAAI,EAAE;EAAa,CAAC,CAAE,EACzE;IACA,OAAO,IAAI;EACb;EAEA,OAAOU,MAAM,CAACS,MAAM,CAACA,MAAM,CAACnB,IAAI;AAClC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["babel","injectDisposeAppName","shouldTransformDispose","code","includes","transformDisposeOwnership","id","options","appName","transformSync","ast","babelrc","configFile","filename","parserOpts","plugins","getParserPlugins","sourceType","retainLines","test","push"],"sourceRoot":"../../../src","sources":["plugin-utils/disposeTransform.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,aAAa;AACpC,SAASC,oBAAoB,QAA4C,yBAAsB;AAE/F,OAAO,SAASC,sBAAsBA,CAACC,IAAY,EAAW;EAC5D,OAAOA,IAAI,CAACC,QAAQ,CAAC,uCAAuC,CAAC,IAAID,IAAI,CAACC,QAAQ,CAAC,mCAAmC,CAAC;AACrH;AAEA,OAAO,SAASC,yBAAyBA,CAACC,EAAU,EAAEH,IAAY,EAAEI,OAAsC,EAAU;EAClH,IAAIA,OAAO,CAACC,OAAO,IAAI,IAAI,IAAI,CAACN,sBAAsB,CAACC,IAAI,CAAC,EAAE;IAC5D,OAAOA,IAAI;EACb;EAEA,OACEH,KAAK,CAACS,aAAa,CAACN,IAAI,EAAE;IACxBO,GAAG,EAAE,KAAK;IACVC,OAAO,EAAE,KAAK;IACdC,UAAU,EAAE,KAAK;IACjBC,QAAQ,EAAEP,EAAE;IACZQ,UAAU,EAAE;MACVC,OAAO,EAAEC,gBAAgB,CAACV,EAAE,CAAC;MAC7BW,UAAU,EAAE;IACd,CAAC;IACDF,OAAO,EAAE,CAAC,CAACd,oBAAoB,EAAEM,OAAO,CAAC,CAAC;IAC1CW,WAAW,EAAE;EACf,CAAC,CAAC,EAAEf,IAAI,IAAIA,IAAI;AAEpB;AAEA,SAASa,gBAAgBA,CAACV,EAAU,EAAkC;EACpE,MAAMS,OAAuC,GAAG,EAAE;EAElD,IAAI,cAAc,CAACI,IAAI,CAACb,EAAE,CAAC,EAAE;IAC3BS,OAAO,CAACK,IAAI,CAAC,YAAY,CAAC;EAC5B,CAAC,MAAM,IAAI,cAAc,CAACD,IAAI,CAACb,EAAE,CAAC,EAAE;IAClCS,OAAO,CAACK,IAAI,CAAC,MAAM,CAAC;EACtB;EAEA,IAAI,gBAAgB,CAACD,IAAI,CAACb,EAAE,CAAC,EAAE;IAC7BS,OAAO,CAACK,IAAI,CAAC,KAAK,CAAC;EACrB;EAEA,OAAOL,OAAO;AAChB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["globalContextScript","String","raw"],"sourceRoot":"../../../src","sources":["plugin/globalContextScript.ts"],"mappings":";;AAAA,OAAO,MAAMA,mBAAmB,GAAGC,MAAM,CAACC,GAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["globalContextScript","String","raw"],"sourceRoot":"../../../src","sources":["plugin-utils/globalContextScript.ts"],"mappings":";;AAAA,OAAO,MAAMA,mBAAmB,GAAGC,MAAM,CAACC,GAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SHARED_PRESETS","react","intoShared","shared","undefined","normalized","Array","isArray","moduleName","Object","assign","subpaths","entries","moduleConfig","subpath"],"sourceRoot":"../../../src","sources":["plugin-utils/intoShared.ts"],"mappings":";;AAEA,MAAMA,cAAc,GAAG;EACrBC,KAAK,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC;EACrD,cAAc,EAAE,CACd,oDAAoD,EACpD,oDAAoD,EACpD,mDAAmD,EACnD,gEAAgE,EAChE,wEAAwE,EACxE,yDAAyD,EACzD,kDAAkD,EAClD,2DAA2D,EAC3D,kDAAkD,EAClD,gDAAgD,EAChD,wDAAwD,EACxD,6DAA6D,EAC7D,2CAA2C,EAC3C,2DAA2D;AAE/D,CAAU;AAEV,OAAO,SAASC,UAAUA,CAACC,MAAoD,EAA4B;EACzG,IAAIA,MAAM,IAAI,IAAI,EAAE;IAClB,OAAOC,SAAS;EAClB;EAEA,MAAMC,UAA8C,GAAG,CAAC,CAAC;EACzD,IAAIC,KAAK,CAACC,OAAO,CAACJ,MAAM,CAAC,EAAE;IACzB,KAAK,MAAMK,UAAU,IAAIL,MAAM,EAAE;MAC/BE,UAAU,CAACG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7B;EACF,CAAC,MAAM;IACLC,MAAM,CAACC,MAAM,CAACL,UAAU,EAAEF,MAAM,CAAC;EACnC;EAEA,KAAK,MAAM,CAACK,UAAU,EAAEG,QAAQ,CAAC,IAAIF,MAAM,CAACG,OAAO,CAACZ,cAAc,CAAC,EAAE;IACnE,MAAMa,YAAY,GAAGR,UAAU,CAACG,UAAU,CAAC;IAC3C,IAAIK,YAAY,IAAI,IAAI,EAAE;MACxB;IACF;IAEA,KAAK,MAAMC,OAAO,IAAIH,QAAQ,EAAE;MAC9BN,UAAU,CAACS,OAAO,CAAC,KAAK;QAAE,GAAGD;MAAa,CAAC;IAC7C;EACF;EAEA,OAAOR,UAAU;AACnB","ignoreList":[]}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import path from 'path';
3
+ import * as path from 'node:path';
4
4
  import { globalContextScript } from "./globalContextScript.js";
5
5
  import { CONTAINER_PAIRING_KEY } from "../runtime/containerPairing.js";
6
+ import { toLegacyEsm } from "../runtime/legacyEsm.js";
6
7
  import { captureStackFrames, resolveCurrentSourceURL } from "../runtime/runtimeSourceURL.js";
8
+ import { registerSharedValue } from "../runtime/sharedModule.js";
7
9
  export function getPreludeConfig(options, appName) {
8
10
  const eagerSharedModules = Object.entries(options.shared ?? {}).filter(([, config]) => !Array.isArray(options.shared) && config.eager === true);
9
11
  const registerStatements = eagerSharedModules.map(([moduleName], index) => {
@@ -22,7 +24,7 @@ export function getPreludeConfig(options, appName) {
22
24
  const resolveSourceURL = resolveCurrentSourceURL.toString();
23
25
  return {
24
26
  banner: [globalContextScript, '(function installMicroFrontendLifecycle(context) {', ' const callbacksDescriptor = Object.getOwnPropertyDescriptor(context, "disposeCallbacksByApp");', ' const disposeDescriptor = Object.getOwnPropertyDescriptor(context, "dispose");', ' const disposeCallbacksByApp = callbacksDescriptor == null ? {} : callbacksDescriptor.value;', ' if (typeof disposeCallbacksByApp !== "object" || disposeCallbacksByApp == null || Array.isArray(disposeCallbacksByApp)) {', ' throw new Error("Cannot install micro-frontend lifecycle: invalid-dispose-callback-registry");', ' }', ' const dispose = disposeDescriptor == null ? function dispose(appName, callback) {', ' if (typeof appName !== "string" || typeof callback !== "function") {', ' throw new Error("dispose() must be compiled with the microFrontend plugin");', ' }', ' const callbacks = disposeCallbacksByApp[appName] ||= new Set();', ' callbacks.add(callback);', ' let isRegistered = true;', ' return function unregisterDispose() {', ' if (!isRegistered) { return; }', ' isRegistered = false;', ' callbacks.delete(callback);', ' };', ' } : disposeDescriptor.value;', ' if (typeof dispose !== "function") {', ' throw new Error("Cannot install micro-frontend lifecycle: invalid-dispose-registrar");', ' }', ' try {', ' if (!Reflect.defineProperty(context, "disposeCallbacksByApp", {', ' configurable: true, enumerable: false, value: disposeCallbacksByApp, writable: true,', ' }) || !Reflect.defineProperty(context, "dispose", {', ' configurable: true, enumerable: false, value: dispose, writable: true,', ' })) {', ' throw new Error("Cannot install micro-frontend lifecycle: canonical-context-is-locked");', ' }', ' } catch (error) {', ' if (callbacksDescriptor == null) {', ' Reflect.deleteProperty(context, "disposeCallbacksByApp");', ' } else {', ' Reflect.defineProperty(context, "disposeCallbacksByApp", callbacksDescriptor);', ' }', ' if (disposeDescriptor == null) {', ' Reflect.deleteProperty(context, "dispose");', ' } else {', ' Reflect.defineProperty(context, "dispose", disposeDescriptor);', ' }', ' throw error;', ' }', '})(global.__MICRO_FRONTEND__);'].join('\n'),
25
- preludeScript: [`const __containerPairSymbol = Symbol.for(${JSON.stringify(CONTAINER_PAIRING_KEY)});`, 'const __legacyContainers = new WeakMap();', 'function createContainer(appName, config) {', ' const context = global.__MICRO_FRONTEND__;', ' const containers = context.__CONTAINERS__;', ' const instances = context.__INSTANCES__;', ' if (containers[appName] != null || typeof instances[appName] === "number") {', " throw new Error(`App container '${appName}' is already registered`);", ' }', ' if (!Object.isExtensible(containers) || !Object.isExtensible(instances)) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ` const stackFrames = (${captureFrames})();`, ` const sourceURL = (${resolveSourceURL})(stackFrames);`, ' const modernContainer = { appName, config, exposedModules: {}, runtime: { sourceURL } };', ' const legacyContainer = { name: appName, config, exposeMap: {} };', ' try {', ' if (!Reflect.defineProperty(instances, appName, {', ' configurable: true, enumerable: false, value: instances.length, writable: false,', ' })) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ' instances.push(legacyContainer);', ' if (!Reflect.set(containers, appName, modernContainer)) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ' if (!Reflect.defineProperty(modernContainer, __containerPairSymbol, {', ' configurable: true, enumerable: false, value: legacyContainer, writable: false,', ' }) || !Reflect.defineProperty(legacyContainer, __containerPairSymbol, {', ' configurable: true, enumerable: false, value: modernContainer, writable: false,', ' })) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ' } catch (error) {', ' if (Object.is(instances[instances.length - 1], legacyContainer)) {', ' instances.pop();', ' }', ' Reflect.deleteProperty(instances, appName);', ' Reflect.deleteProperty(containers, appName);', ' Reflect.deleteProperty(modernContainer, __containerPairSymbol);', ' Reflect.deleteProperty(legacyContainer, __containerPairSymbol);', ' throw error;', ' }', ' __legacyContainers.set(modernContainer, legacyContainer);', ' return modernContainer;', '}', 'function exposeModule(container, exposedModule, moduleValue) {', " const normalizedModule = exposedModule.startsWith('./') ? exposedModule : `./${exposedModule}`;", " const legacyModule = exposedModule.startsWith('./') ? exposedModule.slice(2) : exposedModule;", ' const legacyContainer = __legacyContainers.get(container);', ' if (Reflect.has(container.exposedModules, normalizedModule) ||', ' (legacyContainer != null && Reflect.has(legacyContainer.exposeMap, legacyModule))) {', " throw new Error(`Exposed module '${normalizedModule}' is already registered in app container '${container.appName}'`);", ' }', ' const ownsModernContainer = Object.is(', ' global.__MICRO_FRONTEND__.__CONTAINERS__[container.appName],', ' container', ' );', ' let legacyModuleValue = moduleValue;', ' if (legacyContainer != null &&', ' ((typeof moduleValue === "object" && moduleValue != null) || typeof moduleValue === "function") &&', ' moduleValue.__esModule !== true) {', ' legacyModuleValue = typeof moduleValue === "function"', ' ? function (...args) { return Reflect.apply(moduleValue, this, args); }', ' : {};', ' for (const exportName of Reflect.ownKeys(moduleValue)) {', ' if (exportName === "__esModule" || exportName === "default") {', ' continue;', ' }', ' const sourceDescriptor = Reflect.getOwnPropertyDescriptor(moduleValue, exportName);', ' const facadeDescriptor = Reflect.getOwnPropertyDescriptor(legacyModuleValue, exportName);', ' if (sourceDescriptor == null || (facadeDescriptor != null && facadeDescriptor.configurable === false)) {', ' // Callable facades keep intrinsic non-configurable slots such as prototype.', ' continue;', ' }', ' if (!Reflect.defineProperty(legacyModuleValue, exportName, {', ' enumerable: sourceDescriptor.enumerable,', ' get: function () { return Reflect.get(moduleValue, exportName); },', ' })) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ' }', ' const hasDefaultExport = Reflect.getOwnPropertyDescriptor(moduleValue, "default") != null;', ' Object.defineProperties(legacyModuleValue, {', ' __esModule: { value: true },', ' default: {', ' enumerable: true,', ' get: hasDefaultExport', ' ? function () { return Reflect.get(moduleValue, "default"); }', ' : function () { return moduleValue; },', ' },', ' });', ' }', ' try {', ' if (ownsModernContainer && !Reflect.set(container.exposedModules, normalizedModule, moduleValue)) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ' if (legacyContainer != null) {', ' Object.defineProperty(legacyContainer.exposeMap, legacyModule, {', ' configurable: true,', ' enumerable: true,', ' get: function () { return legacyModuleValue; },', ' });', ' }', ' } catch (error) {', ' if (ownsModernContainer) {', ' Reflect.deleteProperty(container.exposedModules, normalizedModule);', ' }', ' if (legacyContainer != null) {', ' Reflect.deleteProperty(legacyContainer.exposeMap, legacyModule);', ' }', ' throw error;', ' }', '}', 'function registerShared(moduleName, moduleValue) {', ' const sharedModules = global.__MICRO_FRONTEND__.__SHARED__;', ' const existingModule = sharedModules[moduleName];', ' if (existingModule != null) {', ' if (typeof existingModule === "object" &&', ' typeof existingModule.get === "function" &&', ' typeof existingModule.loaded === "boolean" &&', ' Object.is(existingModule.get(), moduleValue)) {', ' return;', ' }', " throw new Error(`Shared module '${moduleName}' is already registered`);", ' }', ' sharedModules[moduleName] = { get: () => moduleValue, loaded: true };', '}', `const __container = createContainer(${containerName}, ${containerConfig});`, ...registerStatements, ...exposeStatements].join('\n')
27
+ preludeScript: [`const __containerPairSymbol = Symbol.for(${JSON.stringify(CONTAINER_PAIRING_KEY)});`, 'const __legacyContainers = new WeakMap();', 'function createContainer(appName, config) {', ' const context = global.__MICRO_FRONTEND__;', ' const containers = context.__CONTAINERS__;', ' const instances = context.__INSTANCES__;', ' if (containers[appName] != null || typeof instances[appName] === "number") {', " throw new Error(`App container '${appName}' is already registered`);", ' }', ' if (!Object.isExtensible(containers) || !Object.isExtensible(instances)) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ` const stackFrames = (${captureFrames})();`, ` const sourceURL = (${resolveSourceURL})(stackFrames);`, ' const modernContainer = { appName, config, exposedModules: {}, runtime: { sourceURL } };', ' const legacyContainer = { name: appName, config, exposeMap: {} };', ' try {', ' if (!Reflect.defineProperty(instances, appName, {', ' configurable: true, enumerable: false, value: instances.length, writable: false,', ' })) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ' instances.push(legacyContainer);', ' if (!Reflect.set(containers, appName, modernContainer)) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ' if (!Reflect.defineProperty(modernContainer, __containerPairSymbol, {', ' configurable: true, enumerable: false, value: legacyContainer, writable: false,', ' }) || !Reflect.defineProperty(legacyContainer, __containerPairSymbol, {', ' configurable: true, enumerable: false, value: modernContainer, writable: false,', ' })) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ' } catch (error) {', ' if (Object.is(instances[instances.length - 1], legacyContainer)) {', ' instances.pop();', ' }', ' Reflect.deleteProperty(instances, appName);', ' Reflect.deleteProperty(containers, appName);', ' Reflect.deleteProperty(modernContainer, __containerPairSymbol);', ' Reflect.deleteProperty(legacyContainer, __containerPairSymbol);', ' throw error;', ' }', ' __legacyContainers.set(modernContainer, legacyContainer);', ' return modernContainer;', '}', 'function exposeModule(container, exposedModule, moduleValue) {', " const normalizedModule = exposedModule.startsWith('./') ? exposedModule : `./${exposedModule}`;", " const legacyModule = exposedModule.startsWith('./') ? exposedModule.slice(2) : exposedModule;", ' const legacyContainer = __legacyContainers.get(container);', ' if (Reflect.has(container.exposedModules, normalizedModule) ||', ' (legacyContainer != null && Reflect.has(legacyContainer.exposeMap, legacyModule))) {', " throw new Error(`Exposed module '${normalizedModule}' is already registered in app container '${container.appName}'`);", ' }', ' const ownsModernContainer = Object.is(', ' global.__MICRO_FRONTEND__.__CONTAINERS__[container.appName],', ' container', ' );', ' const legacyModuleValue = legacyContainer == null ? moduleValue : toLegacyEsm(moduleValue);', ' try {', ' if (ownsModernContainer && !Reflect.set(container.exposedModules, normalizedModule, moduleValue)) {', ' throw new Error("Cannot establish the micro-frontend global context: registry-is-not-extensible");', ' }', ' if (legacyContainer != null) {', ' Object.defineProperty(legacyContainer.exposeMap, legacyModule, {', ' configurable: true,', ' enumerable: true,', ' get: function () { return legacyModuleValue; },', ' });', ' }', ' } catch (error) {', ' if (ownsModernContainer) {', ' Reflect.deleteProperty(container.exposedModules, normalizedModule);', ' }', ' if (legacyContainer != null) {', ' Reflect.deleteProperty(legacyContainer.exposeMap, legacyModule);', ' }', ' throw error;', ' }', '}', `const toLegacyEsm = ${toLegacyEsm.toString()};`, `const registerSharedValue = ${registerSharedValue.toString()};`, 'function registerShared(moduleName, moduleValue) {', ' const sharedModules = global.__MICRO_FRONTEND__.__SHARED__;', ' if (!registerSharedValue(sharedModules, moduleName, moduleValue, toLegacyEsm)) {', " throw new Error(`Shared module '${moduleName}' is already registered`);", ' }', '}', `const __container = createContainer(${containerName}, ${containerConfig});`, ...registerStatements, ...exposeStatements].join('\n')
26
28
  };
27
29
  }
28
30
  //# sourceMappingURL=prelude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","globalContextScript","CONTAINER_PAIRING_KEY","toLegacyEsm","captureStackFrames","resolveCurrentSourceURL","registerSharedValue","getPreludeConfig","options","appName","eagerSharedModules","Object","entries","shared","filter","config","Array","isArray","eager","registerStatements","map","moduleName","index","identifier","JSON","stringify","join","exposeStatements","exposes","exposedModule","modulePath","resolve","containerConfig","containerName","captureFrames","toString","resolveSourceURL","banner","preludeScript"],"sourceRoot":"../../../src","sources":["plugin-utils/prelude.ts"],"mappings":"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","ignoreList":[]}
@@ -3,6 +3,7 @@
3
3
  import { getLegacyContainerPair } from "./containerPairing.js";
4
4
  import { ExposedModuleAlreadyRegisteredError } from "./errors.js";
5
5
  import { getMicroFrontendGlobalContext, MicroFrontendGlobalContextCompatibilityError } from "./globalContext.js";
6
+ import { toLegacyEsm } from "./legacyEsm.js";
6
7
  export function exposeContainerModule(container, exposedModule, module) {
7
8
  const normalizedModule = normalizeExposedModule(exposedModule);
8
9
  const legacyModule = normalizeLegacyModule(exposedModule);
@@ -33,43 +34,6 @@ export function exposeContainerModule(container, exposedModule, module) {
33
34
  throw error;
34
35
  }
35
36
  }
36
- function toLegacyEsm(module) {
37
- if ((typeof module !== 'object' || module == null) && typeof module !== 'function') {
38
- return module;
39
- }
40
- if (Reflect.get(module, '__esModule') === true) {
41
- return module;
42
- }
43
- const legacyModule = typeof module === 'function' ? function (...args) {
44
- return Reflect.apply(module, this, args);
45
- } : {};
46
- for (const exportName of Reflect.ownKeys(module)) {
47
- if (exportName === '__esModule' || exportName === 'default') {
48
- continue;
49
- }
50
- const sourceDescriptor = Reflect.getOwnPropertyDescriptor(module, exportName);
51
- const facadeDescriptor = Reflect.getOwnPropertyDescriptor(legacyModule, exportName);
52
- if (sourceDescriptor == null || facadeDescriptor?.configurable === false) {
53
- // Callable facades keep intrinsic non-configurable slots such as prototype.
54
- continue;
55
- }
56
- Reflect.defineProperty(legacyModule, exportName, {
57
- enumerable: sourceDescriptor.enumerable,
58
- get: () => Reflect.get(module, exportName)
59
- });
60
- }
61
- const hasDefaultExport = Reflect.getOwnPropertyDescriptor(module, 'default') != null;
62
- Object.defineProperties(legacyModule, {
63
- __esModule: {
64
- value: true
65
- },
66
- default: {
67
- enumerable: true,
68
- get: hasDefaultExport ? () => Reflect.get(module, 'default') : () => module
69
- }
70
- });
71
- return legacyModule;
72
- }
73
37
  function normalizeExposedModule(exposedModule) {
74
38
  return exposedModule.startsWith('./') ? exposedModule : `./${exposedModule}`;
75
39
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getLegacyContainerPair","ExposedModuleAlreadyRegisteredError","getMicroFrontendGlobalContext","MicroFrontendGlobalContextCompatibilityError","exposeContainerModule","container","exposedModule","module","normalizedModule","normalizeExposedModule","legacyModule","normalizeLegacyModule","legacyContainer","Reflect","has","exposedModules","exposeMap","appName","ownsModernContainer","Object","is","get","__CONTAINERS__","legacyModuleValue","toLegacyEsm","set","defineProperty","configurable","enumerable","error","deleteProperty","args","apply","exportName","ownKeys","sourceDescriptor","getOwnPropertyDescriptor","facadeDescriptor","hasDefaultExport","defineProperties","__esModule","value","default","startsWith","slice"],"sourceRoot":"../../../src","sources":["runtime/containerModuleExposure.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getLegacyContainerPair","ExposedModuleAlreadyRegisteredError","getMicroFrontendGlobalContext","MicroFrontendGlobalContextCompatibilityError","toLegacyEsm","exposeContainerModule","container","exposedModule","module","normalizedModule","normalizeExposedModule","legacyModule","normalizeLegacyModule","legacyContainer","Reflect","has","exposedModules","exposeMap","appName","ownsModernContainer","Object","is","get","__CONTAINERS__","legacyModuleValue","set","defineProperty","configurable","enumerable","error","deleteProperty","startsWith","slice"],"sourceRoot":"../../../src","sources":["runtime/containerModuleExposure.ts"],"mappings":";;AAAA,SAASA,sBAAsB,QAAQ,uBAAoB;AAC3D,SAASC,mCAAmC,QAAQ,aAAU;AAC9D,SAASC,6BAA6B,EAAEC,4CAA4C,QAAQ,oBAAiB;AAC7G,SAASC,WAAW,QAAQ,gBAAa;AAGzC,OAAO,SAASC,qBAAqBA,CAACC,SAAuB,EAAEC,aAAqB,EAAEC,MAAe,EAAQ;EAC3G,MAAMC,gBAAgB,GAAGC,sBAAsB,CAACH,aAAa,CAAC;EAC9D,MAAMI,YAAY,GAAGC,qBAAqB,CAACL,aAAa,CAAC;EACzD,MAAMM,eAAe,GAAGb,sBAAsB,CAACM,SAAS,CAAC;EACzD,IACEQ,OAAO,CAACC,GAAG,CAACT,SAAS,CAACU,cAAc,EAAEP,gBAAgB,CAAC,IACtDI,eAAe,IAAI,IAAI,IAAIC,OAAO,CAACC,GAAG,CAACF,eAAe,CAACI,SAAS,EAAEN,YAAY,CAAE,EACjF;IACA,MAAM,IAAIV,mCAAmC,CAACK,SAAS,CAACY,OAAO,EAAET,gBAAgB,CAAC;EACpF;EAEA,MAAMU,mBAAmB,GAAGC,MAAM,CAACC,EAAE,CACnCP,OAAO,CAACQ,GAAG,CAACpB,6BAA6B,CAAC,CAAC,CAACqB,cAAc,EAAEjB,SAAS,CAACY,OAAO,CAAC,EAC9EZ,SACF,CAAC;EACD,MAAMkB,iBAAiB,GAAGX,eAAe,IAAI,IAAI,GAAGL,MAAM,GAAGJ,WAAW,CAACI,MAAM,CAAC;EAChF,IAAI;IACF,IAAIW,mBAAmB,IAAI,CAACL,OAAO,CAACW,GAAG,CAACnB,SAAS,CAACU,cAAc,EAAEP,gBAAgB,EAAED,MAAM,CAAC,EAAE;MAC3F,MAAM,IAAIL,4CAA4C,CAAC,4BAA4B,CAAC;IACtF;IACA,IACEU,eAAe,IAAI,IAAI,IACvB,CAACC,OAAO,CAACY,cAAc,CAACb,eAAe,CAACI,SAAS,EAAEN,YAAY,EAAE;MAC/DgB,YAAY,EAAE,IAAI;MAClBC,UAAU,EAAE,IAAI;MAChBN,GAAG,EAAEA,CAAA,KAAME;IACb,CAAC,CAAC,EACF;MACA,MAAM,IAAIrB,4CAA4C,CAAC,4BAA4B,CAAC;IACtF;EACF,CAAC,CAAC,OAAO0B,KAAK,EAAE;IACd,IAAIV,mBAAmB,EAAE;MACvBL,OAAO,CAACgB,cAAc,CAACxB,SAAS,CAACU,cAAc,EAAEP,gBAAgB,CAAC;IACpE;IACA,IAAII,eAAe,IAAI,IAAI,EAAE;MAC3BC,OAAO,CAACgB,cAAc,CAACjB,eAAe,CAACI,SAAS,EAAEN,YAAY,CAAC;IACjE;IACA,MAAMkB,KAAK;EACb;AACF;AAEA,SAASnB,sBAAsBA,CAACH,aAAqB,EAAU;EAC7D,OAAOA,aAAa,CAACwB,UAAU,CAAC,IAAI,CAAC,GAAGxB,aAAa,GAAG,KAAKA,aAAa,EAAE;AAC9E;AAEA,SAASK,qBAAqBA,CAACL,aAAqB,EAAU;EAC5D,OAAOA,aAAa,CAACwB,UAAU,CAAC,IAAI,CAAC,GAAGxB,aAAa,CAACyB,KAAK,CAAC,CAAC,CAAC,GAAGzB,aAAa;AAChF","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ // Keep this helper self-contained: the build plugin serializes it into the prelude.
4
+ export function toLegacyEsm(module) {
5
+ if ((typeof module !== 'object' || module == null) && typeof module !== 'function') {
6
+ return module;
7
+ }
8
+ if (Reflect.get(module, '__esModule') === true) {
9
+ return module;
10
+ }
11
+ const legacyModule = typeof module === 'function' ? function (...args) {
12
+ return Reflect.apply(module, this, args);
13
+ } : {};
14
+ for (const exportName of Reflect.ownKeys(module)) {
15
+ if (exportName === '__esModule' || exportName === 'default') {
16
+ continue;
17
+ }
18
+ const sourceDescriptor = Reflect.getOwnPropertyDescriptor(module, exportName);
19
+ const facadeDescriptor = Reflect.getOwnPropertyDescriptor(legacyModule, exportName);
20
+ if (sourceDescriptor == null || facadeDescriptor?.configurable === false) {
21
+ // Callable facades keep intrinsic non-configurable slots such as prototype.
22
+ continue;
23
+ }
24
+ Reflect.defineProperty(legacyModule, exportName, {
25
+ enumerable: sourceDescriptor.enumerable,
26
+ get: () => Reflect.get(module, exportName)
27
+ });
28
+ }
29
+ const hasDefaultExport = Reflect.getOwnPropertyDescriptor(module, 'default') != null;
30
+ Object.defineProperties(legacyModule, {
31
+ __esModule: {
32
+ value: true
33
+ },
34
+ default: {
35
+ enumerable: true,
36
+ get: hasDefaultExport ? () => Reflect.get(module, 'default') : () => module
37
+ }
38
+ });
39
+ return legacyModule;
40
+ }
41
+ //# sourceMappingURL=legacyEsm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["toLegacyEsm","module","Reflect","get","legacyModule","args","apply","exportName","ownKeys","sourceDescriptor","getOwnPropertyDescriptor","facadeDescriptor","configurable","defineProperty","enumerable","hasDefaultExport","Object","defineProperties","__esModule","value","default"],"sourceRoot":"../../../src","sources":["runtime/legacyEsm.ts"],"mappings":";;AAAA;AACA,OAAO,SAASA,WAAWA,CAACC,MAAe,EAAW;EACpD,IAAI,CAAC,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,IAAI,IAAI,KAAK,OAAOA,MAAM,KAAK,UAAU,EAAE;IAClF,OAAOA,MAAM;EACf;EACA,IAAIC,OAAO,CAACC,GAAG,CAACF,MAAM,EAAE,YAAY,CAAC,KAAK,IAAI,EAAE;IAC9C,OAAOA,MAAM;EACf;EACA,MAAMG,YAAY,GAChB,OAAOH,MAAM,KAAK,UAAU,GACxB,UAAyB,GAAGI,IAAe,EAAW;IACpD,OAAOH,OAAO,CAACI,KAAK,CAACL,MAAM,EAAE,IAAI,EAAEI,IAAI,CAAC;EAC1C,CAAC,GACD,CAAC,CAAC;EACR,KAAK,MAAME,UAAU,IAAIL,OAAO,CAACM,OAAO,CAACP,MAAM,CAAC,EAAE;IAChD,IAAIM,UAAU,KAAK,YAAY,IAAIA,UAAU,KAAK,SAAS,EAAE;MAC3D;IACF;IACA,MAAME,gBAAgB,GAAGP,OAAO,CAACQ,wBAAwB,CAACT,MAAM,EAAEM,UAAU,CAAC;IAC7E,MAAMI,gBAAgB,GAAGT,OAAO,CAACQ,wBAAwB,CAACN,YAAY,EAAEG,UAAU,CAAC;IACnF,IAAIE,gBAAgB,IAAI,IAAI,IAAIE,gBAAgB,EAAEC,YAAY,KAAK,KAAK,EAAE;MACxE;MACA;IACF;IACAV,OAAO,CAACW,cAAc,CAACT,YAAY,EAAEG,UAAU,EAAE;MAC/CO,UAAU,EAAEL,gBAAgB,CAACK,UAAU;MACvCX,GAAG,EAAEA,CAAA,KAAMD,OAAO,CAACC,GAAG,CAACF,MAAM,EAAEM,UAAU;IAC3C,CAAC,CAAC;EACJ;EACA,MAAMQ,gBAAgB,GAAGb,OAAO,CAACQ,wBAAwB,CAACT,MAAM,EAAE,SAAS,CAAC,IAAI,IAAI;EACpFe,MAAM,CAACC,gBAAgB,CAACb,YAAY,EAAE;IACpCc,UAAU,EAAE;MAAEC,KAAK,EAAE;IAAK,CAAC;IAC3BC,OAAO,EAAE;MACPN,UAAU,EAAE,IAAI;MAChBX,GAAG,EAAEY,gBAAgB,GAAG,MAAMb,OAAO,CAACC,GAAG,CAACF,MAAM,EAAE,SAAS,CAAC,GAAG,MAAMA;IACvE;EACF,CAAC,CAAC;EACF,OAAOG,YAAY;AACrB","ignoreList":[]}
@@ -3,7 +3,9 @@
3
3
  import { createContainer, exposeModule, getContainer, getExposedModule, removeContainer } from "./containerRegistry.js";
4
4
  import { ExposedModuleNotFoundError, SharedModuleAlreadyRegisteredError } from "./errors.js";
5
5
  import { getMicroFrontendGlobalContext } from "./globalContext.js";
6
+ import { toLegacyEsm } from "./legacyEsm.js";
6
7
  import { parseAppRequest } from "./parseAppRequest.js";
8
+ import { registerSharedValue } from "./sharedModule.js";
7
9
  export { createContainer, exposeModule, getContainer, removeContainer };
8
10
  export function getMicroFrontendRuntimeContext() {
9
11
  const context = getMicroFrontendGlobalContext();
@@ -12,20 +14,9 @@ export function getMicroFrontendRuntimeContext() {
12
14
  }
13
15
  export function registerShared(moduleName, module) {
14
16
  const sharedModules = getMicroFrontendGlobalContext().__SHARED__;
15
- const existingModule = sharedModules[moduleName];
16
- if (existingModule != null) {
17
- if (isSharedModule(existingModule) && Object.is(existingModule.get(), module)) {
18
- return;
19
- }
17
+ if (!registerSharedValue(sharedModules, moduleName, module, toLegacyEsm)) {
20
18
  throw new SharedModuleAlreadyRegisteredError(moduleName);
21
19
  }
22
- sharedModules[moduleName] = {
23
- get: () => module,
24
- loaded: true
25
- };
26
- }
27
- function isSharedModule(value) {
28
- return typeof value === 'object' && value != null && typeof Reflect.get(value, 'get') === 'function' && typeof Reflect.get(value, 'loaded') === 'boolean';
29
20
  }
30
21
  export async function disposeAppResources(appName) {
31
22
  const disposeCallbacks = getMicroFrontendRuntimeContext().disposeCallbacksByApp[appName];
@@ -1 +1 @@
1
- {"version":3,"names":["createContainer","exposeModule","getContainer","getExposedModule","removeContainer","ExposedModuleNotFoundError","SharedModuleAlreadyRegisteredError","getMicroFrontendGlobalContext","parseAppRequest","getMicroFrontendRuntimeContext","context","ensureRuntimeContext","registerShared","moduleName","module","sharedModules","__SHARED__","existingModule","isSharedModule","Object","is","get","loaded","value","Reflect","disposeAppResources","appName","disposeCallbacks","disposeCallbacksByApp","runAppDisposeCallbacks","hasContainer","importModule","request","exposedModule","container","containers","__CONTAINERS__","propertyDescriptors","Map","runtimeProperties","dispose","isRegisterAppDispose","createRegisterAppDispose","isDisposeCallbackRegistry","property","ownKeys","set","getOwnPropertyDescriptor","defineProperty","configurable","enumerable","writable","Error","String","error","descriptor","Array","from","reverse","deleteProperty","isObjectRecord","isArray","values","every","isDisposeCallbackSet","Symbol","iterator","appNameOrCallback","callback","registerAppDisposeCallback","Set","add","isRegistered","delete","callbacks","firstDisposeError","didDisposeFail","microFrontendModuleRegistry"],"sourceRoot":"../../../src","sources":["runtime/registry.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createContainer","exposeModule","getContainer","getExposedModule","removeContainer","ExposedModuleNotFoundError","SharedModuleAlreadyRegisteredError","getMicroFrontendGlobalContext","toLegacyEsm","parseAppRequest","registerSharedValue","getMicroFrontendRuntimeContext","context","ensureRuntimeContext","registerShared","moduleName","module","sharedModules","__SHARED__","disposeAppResources","appName","disposeCallbacks","disposeCallbacksByApp","runAppDisposeCallbacks","hasContainer","importModule","request","exposedModule","container","containers","__CONTAINERS__","propertyDescriptors","Map","runtimeProperties","dispose","isRegisterAppDispose","Reflect","get","createRegisterAppDispose","isDisposeCallbackRegistry","property","ownKeys","set","getOwnPropertyDescriptor","value","defineProperty","configurable","enumerable","writable","Error","String","error","descriptor","Array","from","reverse","deleteProperty","isObjectRecord","isArray","Object","values","every","isDisposeCallbackSet","Symbol","iterator","appNameOrCallback","callback","registerAppDisposeCallback","Set","add","isRegistered","delete","callbacks","firstDisposeError","didDisposeFail","microFrontendModuleRegistry"],"sourceRoot":"../../../src","sources":["runtime/registry.ts"],"mappings":"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","ignoreList":[]}