@bleedingdev/modern-js-app-tools-extensions 3.9.0-ultramodern.8 → 3.9.3-ultramodern.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 (280) hide show
  1. package/README.md +23 -0
  2. package/dist/cjs/backend-federation-build/codegen.js +29 -18
  3. package/dist/cjs/backend-federation-build/config.js +84 -45
  4. package/dist/cjs/backend-federation-build/emit.js +63 -22
  5. package/dist/cjs/build-config/build-environment.js +25 -162
  6. package/dist/cjs/build-config/internal-effect-discovery.js +143 -0
  7. package/dist/cjs/build-config/public.js +2 -5
  8. package/dist/cjs/build-config/remote-address.js +58 -0
  9. package/dist/cjs/cloudflare/artifacts.js +8 -19
  10. package/dist/cjs/cloudflare/delivery-unit.js +125 -43
  11. package/dist/cjs/cloudflare/index.js +14 -4
  12. package/dist/cjs/cloudflare/native-renderer.js +100 -0
  13. package/dist/cjs/cloudflare/renderer-identity.js +106 -0
  14. package/dist/cjs/cloudflare/worker-manifest.js +54 -13
  15. package/dist/cjs/cloudflare/worker-options.js +48 -0
  16. package/dist/cjs/cloudflare/wrangler-config.js +210 -13
  17. package/dist/cjs/cloudflare-builder.js +307 -89
  18. package/dist/cjs/cloudflare-output-contract.js +36 -4
  19. package/dist/cjs/cloudflare-output-verifier/identity.js +112 -23
  20. package/dist/cjs/cloudflare-output-verifier/index.js +10 -0
  21. package/dist/cjs/cloudflare-output-verifier/manifest.js +46 -0
  22. package/dist/cjs/cloudflare-output-verifier/mutation-policy.js +7 -1
  23. package/dist/cjs/cloudflare-output-verifier/worker-bundles.js +10 -5
  24. package/dist/cjs/config.js +10 -5
  25. package/dist/cjs/deploy-output/npmAliases.js +92 -6
  26. package/dist/cjs/deploy-output/plugin.js +27 -6
  27. package/dist/cjs/deploy-output/public-assets.js +146 -0
  28. package/dist/cjs/deploy-output/target.js +57 -1
  29. package/dist/cjs/deploy-output/trace-files.js +99 -0
  30. package/dist/cjs/module-federation-config/exposes.js +70 -0
  31. package/dist/cjs/module-federation-config/index.js +73 -0
  32. package/dist/cjs/module-federation-config/inspect.js +103 -0
  33. package/dist/cjs/module-federation-config/object-literal.js +87 -0
  34. package/dist/cjs/module-federation-config/syntax.js +151 -0
  35. package/dist/cjs/module-federation-config/types.js +18 -0
  36. package/dist/cjs/native-type-checker.js +164 -18
  37. package/dist/cjs/policy-defaults.js +110 -0
  38. package/dist/cjs/release-envelope/canonical.js +2 -9
  39. package/dist/cjs/release-envelope/contract.js +68 -0
  40. package/dist/cjs/release-envelope/framework-output.js +296 -105
  41. package/dist/cjs/release-envelope/index.js +150 -36
  42. package/dist/cjs/release-envelope/plugin.js +24 -15
  43. package/dist/cjs/release-envelope/renderer-output-stamp.js +170 -0
  44. package/dist/cjs/release-envelope/types.js +10 -8
  45. package/dist/cjs/release-identity.js +8 -5
  46. package/dist/cjs/renderer-build-identity.js +134 -0
  47. package/dist/cjs/runtime-package-resolution.js +118 -0
  48. package/dist/cjs/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
  49. package/dist/cjs/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
  50. package/dist/cjs/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
  51. package/dist/cjs/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
  52. package/dist/cjs/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
  53. package/dist/cjs/templates/cloudflare-worker-route-data.mjs +1069 -0
  54. package/dist/cjs/workspace-topology.js +84 -0
  55. package/dist/esm/backend-federation-build/codegen.mjs +29 -18
  56. package/dist/esm/backend-federation-build/config.mjs +74 -38
  57. package/dist/esm/backend-federation-build/emit.mjs +64 -23
  58. package/dist/esm/build-config/build-environment.mjs +26 -160
  59. package/dist/esm/build-config/internal-effect-discovery.mjs +102 -0
  60. package/dist/esm/build-config/public.mjs +1 -1
  61. package/dist/esm/build-config/remote-address.mjs +20 -0
  62. package/dist/esm/cloudflare/artifacts.mjs +8 -19
  63. package/dist/esm/cloudflare/delivery-unit.mjs +124 -45
  64. package/dist/esm/cloudflare/index.mjs +15 -5
  65. package/dist/esm/cloudflare/native-renderer.mjs +48 -0
  66. package/dist/esm/cloudflare/renderer-identity.mjs +57 -0
  67. package/dist/esm/cloudflare/worker-manifest.mjs +55 -14
  68. package/dist/esm/cloudflare/worker-options.mjs +10 -0
  69. package/dist/esm/cloudflare/wrangler-config.mjs +203 -12
  70. package/dist/esm/cloudflare-builder.mjs +301 -89
  71. package/dist/esm/cloudflare-output-contract.mjs +29 -3
  72. package/dist/esm/cloudflare-output-verifier/identity.mjs +113 -24
  73. package/dist/esm/cloudflare-output-verifier/index.mjs +10 -0
  74. package/dist/esm/cloudflare-output-verifier/manifest.mjs +46 -0
  75. package/dist/esm/cloudflare-output-verifier/mutation-policy.mjs +7 -1
  76. package/dist/esm/cloudflare-output-verifier/worker-bundles.mjs +11 -6
  77. package/dist/esm/config.mjs +3 -1
  78. package/dist/esm/deploy-output/npmAliases.mjs +92 -6
  79. package/dist/esm/deploy-output/plugin.mjs +24 -6
  80. package/dist/esm/deploy-output/public-assets.mjs +82 -0
  81. package/dist/esm/deploy-output/target.mjs +50 -3
  82. package/dist/esm/deploy-output/trace-files.mjs +47 -0
  83. package/dist/esm/module-federation-config/exposes.mjs +18 -0
  84. package/dist/esm/module-federation-config/index.mjs +4 -0
  85. package/dist/esm/module-federation-config/inspect.mjs +65 -0
  86. package/dist/esm/module-federation-config/object-literal.mjs +43 -0
  87. package/dist/esm/module-federation-config/syntax.mjs +101 -0
  88. package/dist/esm/module-federation-config/types.mjs +0 -0
  89. package/dist/esm/native-type-checker.mjs +158 -18
  90. package/dist/esm/policy-defaults.mjs +51 -0
  91. package/dist/esm/release-envelope/canonical.mjs +2 -9
  92. package/dist/esm/release-envelope/contract.mjs +21 -0
  93. package/dist/esm/release-envelope/framework-output.mjs +297 -106
  94. package/dist/esm/release-envelope/index.mjs +149 -38
  95. package/dist/esm/release-envelope/plugin.mjs +24 -15
  96. package/dist/esm/release-envelope/renderer-output-stamp.mjs +112 -0
  97. package/dist/esm/release-envelope/types.mjs +2 -3
  98. package/dist/esm/release-identity.mjs +8 -5
  99. package/dist/esm/renderer-build-identity.mjs +82 -0
  100. package/dist/esm/runtime-package-resolution.mjs +60 -0
  101. package/dist/esm/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
  102. package/dist/esm/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
  103. package/dist/esm/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
  104. package/dist/esm/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
  105. package/dist/esm/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
  106. package/dist/esm/templates/cloudflare-worker-route-data.mjs +1069 -0
  107. package/dist/esm/workspace-topology.mjs +21 -0
  108. package/dist/esm-node/backend-federation-build/codegen.mjs +29 -18
  109. package/dist/esm-node/backend-federation-build/config.mjs +74 -38
  110. package/dist/esm-node/backend-federation-build/emit.mjs +64 -23
  111. package/dist/esm-node/build-config/build-environment.mjs +26 -160
  112. package/dist/esm-node/build-config/internal-effect-discovery.mjs +103 -0
  113. package/dist/esm-node/build-config/public.mjs +1 -1
  114. package/dist/esm-node/build-config/remote-address.mjs +21 -0
  115. package/dist/esm-node/cloudflare/artifacts.mjs +8 -19
  116. package/dist/esm-node/cloudflare/delivery-unit.mjs +124 -45
  117. package/dist/esm-node/cloudflare/index.mjs +15 -5
  118. package/dist/esm-node/cloudflare/native-renderer.mjs +49 -0
  119. package/dist/esm-node/cloudflare/renderer-identity.mjs +58 -0
  120. package/dist/esm-node/cloudflare/worker-manifest.mjs +55 -14
  121. package/dist/esm-node/cloudflare/worker-options.mjs +11 -0
  122. package/dist/esm-node/cloudflare/wrangler-config.mjs +203 -12
  123. package/dist/esm-node/cloudflare-builder.mjs +301 -89
  124. package/dist/esm-node/cloudflare-output-contract.mjs +29 -3
  125. package/dist/esm-node/cloudflare-output-verifier/identity.mjs +113 -24
  126. package/dist/esm-node/cloudflare-output-verifier/index.mjs +10 -0
  127. package/dist/esm-node/cloudflare-output-verifier/manifest.mjs +46 -0
  128. package/dist/esm-node/cloudflare-output-verifier/mutation-policy.mjs +7 -1
  129. package/dist/esm-node/cloudflare-output-verifier/worker-bundles.mjs +11 -6
  130. package/dist/esm-node/config.mjs +3 -1
  131. package/dist/esm-node/deploy-output/npmAliases.mjs +92 -6
  132. package/dist/esm-node/deploy-output/plugin.mjs +24 -6
  133. package/dist/esm-node/deploy-output/public-assets.mjs +83 -0
  134. package/dist/esm-node/deploy-output/target.mjs +50 -3
  135. package/dist/esm-node/deploy-output/trace-files.mjs +48 -0
  136. package/dist/esm-node/module-federation-config/exposes.mjs +19 -0
  137. package/dist/esm-node/module-federation-config/index.mjs +5 -0
  138. package/dist/esm-node/module-federation-config/inspect.mjs +66 -0
  139. package/dist/esm-node/module-federation-config/object-literal.mjs +44 -0
  140. package/dist/esm-node/module-federation-config/syntax.mjs +102 -0
  141. package/dist/esm-node/module-federation-config/types.mjs +1 -0
  142. package/dist/esm-node/native-type-checker.mjs +158 -18
  143. package/dist/esm-node/policy-defaults.mjs +52 -0
  144. package/dist/esm-node/release-envelope/canonical.mjs +2 -9
  145. package/dist/esm-node/release-envelope/contract.mjs +22 -0
  146. package/dist/esm-node/release-envelope/framework-output.mjs +297 -106
  147. package/dist/esm-node/release-envelope/index.mjs +149 -38
  148. package/dist/esm-node/release-envelope/plugin.mjs +24 -15
  149. package/dist/esm-node/release-envelope/renderer-output-stamp.mjs +113 -0
  150. package/dist/esm-node/release-envelope/types.mjs +2 -3
  151. package/dist/esm-node/release-identity.mjs +8 -5
  152. package/dist/esm-node/renderer-build-identity.mjs +83 -0
  153. package/dist/esm-node/runtime-package-resolution.mjs +61 -0
  154. package/dist/esm-node/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
  155. package/dist/esm-node/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
  156. package/dist/esm-node/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
  157. package/dist/esm-node/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
  158. package/dist/esm-node/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
  159. package/dist/esm-node/templates/cloudflare-worker-route-data.mjs +1069 -0
  160. package/dist/esm-node/workspace-topology.mjs +22 -0
  161. package/dist/types/backend-federation-build/codegen.d.ts +30 -0
  162. package/dist/types/backend-federation-build/config.d.ts +10 -57
  163. package/dist/types/backend-federation-build/emit.d.ts +12 -2
  164. package/dist/types/backend-federation-build/index.d.ts +1 -1
  165. package/dist/types/build-config/build-environment.d.ts +1 -9
  166. package/dist/types/build-config/internal-effect-discovery.d.ts +4 -0
  167. package/dist/types/build-config/public.d.ts +1 -1
  168. package/dist/types/build-config/remote-address.d.ts +3 -0
  169. package/dist/types/cloudflare/artifacts.d.ts +7 -6
  170. package/dist/types/cloudflare/constants.d.ts +1 -1
  171. package/dist/types/cloudflare/delivery-unit.d.ts +38 -7
  172. package/dist/types/cloudflare/native-renderer.d.ts +30 -0
  173. package/dist/types/cloudflare/renderer-identity.d.ts +25 -0
  174. package/dist/types/cloudflare/worker-manifest.d.ts +17 -2
  175. package/dist/types/cloudflare/worker-options.d.ts +20 -0
  176. package/dist/types/cloudflare/wrangler-config.d.ts +55 -2
  177. package/dist/types/cloudflare-builder.d.ts +51 -8
  178. package/dist/types/cloudflare-output-contract.d.ts +5 -3
  179. package/dist/types/cloudflare-output-verifier/identity.d.ts +7 -3
  180. package/dist/types/cloudflare-output-verifier/worker-bundles.d.ts +2 -2
  181. package/dist/types/config.d.ts +98 -13
  182. package/dist/types/deploy-output/plugin.d.ts +29 -9
  183. package/dist/types/deploy-output/public-assets.d.ts +51 -0
  184. package/dist/types/deploy-output/target.d.ts +28 -5
  185. package/dist/types/deploy-output/trace-files.d.ts +17 -0
  186. package/dist/types/module-federation-config/exposes.d.ts +11 -0
  187. package/dist/types/module-federation-config/index.d.ts +5 -0
  188. package/dist/types/module-federation-config/inspect.d.ts +2 -0
  189. package/dist/types/module-federation-config/object-literal.d.ts +4 -0
  190. package/dist/types/module-federation-config/syntax.d.ts +7 -0
  191. package/dist/types/module-federation-config/types.d.ts +20 -0
  192. package/dist/types/native-type-checker.d.ts +26 -3
  193. package/dist/types/policy-defaults.d.ts +56 -0
  194. package/dist/types/release-envelope/canonical.d.ts +5 -5
  195. package/dist/types/release-envelope/contract.d.mts +8 -0
  196. package/dist/types/release-envelope/framework-output.d.ts +23 -13
  197. package/dist/types/release-envelope/index.d.ts +17 -5
  198. package/dist/types/release-envelope/plugin.d.ts +10 -6
  199. package/dist/types/release-envelope/renderer-output-stamp.d.ts +34 -0
  200. package/dist/types/release-envelope/types.d.ts +42 -4
  201. package/dist/types/release-identity.d.ts +3 -2
  202. package/dist/types/renderer-build-identity.d.ts +30 -0
  203. package/dist/types/runtime-package-resolution.d.ts +28 -0
  204. package/dist/types/templates/cloudflare-worker-route-data.d.mts +14 -0
  205. package/dist/types/workspace-topology.d.ts +91 -0
  206. package/package.json +97 -26
  207. package/src/backend-federation-build/codegen.ts +28 -19
  208. package/src/backend-federation-build/config.ts +189 -123
  209. package/src/backend-federation-build/emit.ts +119 -38
  210. package/src/backend-federation-build/index.ts +4 -1
  211. package/src/build-config/build-environment.ts +59 -285
  212. package/src/build-config/internal-effect-discovery.ts +239 -0
  213. package/src/build-config/public.ts +0 -1
  214. package/src/build-config/remote-address.ts +33 -0
  215. package/src/cloudflare/artifacts.ts +22 -43
  216. package/src/cloudflare/delivery-unit.ts +283 -60
  217. package/src/cloudflare/index.ts +35 -19
  218. package/src/cloudflare/native-renderer.ts +117 -0
  219. package/src/cloudflare/renderer-identity.ts +171 -0
  220. package/src/cloudflare/worker-manifest.ts +108 -10
  221. package/src/cloudflare/worker-options.ts +60 -0
  222. package/src/cloudflare/wrangler-config.ts +390 -14
  223. package/src/cloudflare-builder.ts +543 -170
  224. package/src/cloudflare-output-contract.ts +45 -2
  225. package/src/cloudflare-output-verifier/identity.ts +138 -7
  226. package/src/cloudflare-output-verifier/index.ts +20 -0
  227. package/src/cloudflare-output-verifier/manifest.ts +77 -0
  228. package/src/cloudflare-output-verifier/mutation-policy.ts +11 -1
  229. package/src/cloudflare-output-verifier/worker-bundles.ts +27 -11
  230. package/src/config.ts +101 -19
  231. package/src/deploy-output/npmAliases.ts +141 -4
  232. package/src/deploy-output/plugin.ts +55 -18
  233. package/src/deploy-output/public-assets.ts +224 -0
  234. package/src/deploy-output/target.ts +97 -14
  235. package/src/deploy-output/trace-files.ts +80 -0
  236. package/src/module-federation-config/exposes.ts +46 -0
  237. package/src/module-federation-config/index.ts +22 -0
  238. package/src/module-federation-config/inspect.ts +157 -0
  239. package/src/module-federation-config/object-literal.ts +76 -0
  240. package/src/module-federation-config/syntax.ts +212 -0
  241. package/src/module-federation-config/types.ts +22 -0
  242. package/src/native-type-checker.ts +281 -26
  243. package/src/policy-defaults.ts +157 -0
  244. package/src/release-envelope/canonical.ts +6 -18
  245. package/src/release-envelope/contract.mjs +28 -0
  246. package/src/release-envelope/framework-output.ts +681 -156
  247. package/src/release-envelope/index.ts +315 -60
  248. package/src/release-envelope/plugin.ts +54 -38
  249. package/src/release-envelope/renderer-output-stamp.ts +210 -0
  250. package/src/release-envelope/types.ts +75 -6
  251. package/src/release-identity.ts +19 -2
  252. package/src/renderer-build-identity.ts +168 -0
  253. package/src/runtime-package-resolution.ts +115 -0
  254. package/src/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
  255. package/src/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
  256. package/src/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
  257. package/src/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
  258. package/src/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
  259. package/src/templates/cloudflare-worker-route-data.mjs +1069 -0
  260. package/src/workspace-topology.ts +125 -0
  261. package/dist/cjs/templates/cloudflare-worker-fs-promises.mjs +0 -11
  262. package/dist/cjs/templates/cloudflare-worker-loadable-server.mjs +0 -281
  263. package/dist/cjs/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  264. package/dist/cjs/templates/cloudflare-worker-path.mjs +0 -98
  265. package/dist/esm/templates/cloudflare-worker-fs-promises.mjs +0 -11
  266. package/dist/esm/templates/cloudflare-worker-loadable-server.mjs +0 -281
  267. package/dist/esm/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  268. package/dist/esm/templates/cloudflare-worker-path.mjs +0 -98
  269. package/dist/esm-node/templates/cloudflare-worker-fs-promises.mjs +0 -11
  270. package/dist/esm-node/templates/cloudflare-worker-loadable-server.mjs +0 -281
  271. package/dist/esm-node/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  272. package/dist/esm-node/templates/cloudflare-worker-path.mjs +0 -98
  273. package/dist/types/templates/cloudflare-worker-fs-promises.d.mts +0 -5
  274. package/dist/types/templates/cloudflare-worker-loadable-server.d.mts +0 -48
  275. package/dist/types/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +0 -13
  276. package/dist/types/templates/cloudflare-worker-path.d.mts +0 -21
  277. package/src/templates/cloudflare-worker-fs-promises.mjs +0 -11
  278. package/src/templates/cloudflare-worker-loadable-server.mjs +0 -281
  279. package/src/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  280. package/src/templates/cloudflare-worker-path.mjs +0 -98
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ __webpack_require__.d(__webpack_exports__, {
31
+ findCreateModuleFederationConfigObject: ()=>findCreateModuleFederationConfigObject,
32
+ findExportDefaultObject: ()=>findExportDefaultObject,
33
+ locateCreateModuleFederationConfigObject: ()=>locateCreateModuleFederationConfigObject,
34
+ parseConfigModule: ()=>parseConfigModule,
35
+ parseStaticExpression: ()=>parseStaticExpression
36
+ });
37
+ const parser_namespaceObject = require("@babel/parser");
38
+ function unwrapExpression(node) {
39
+ while('TSAsExpression' === node.type || 'TSSatisfiesExpression' === node.type || 'TSNonNullExpression' === node.type || 'TSTypeAssertion' === node.type || 'ParenthesizedExpression' === node.type)node = node.expression;
40
+ return node;
41
+ }
42
+ function parseStaticExpression(source) {
43
+ if (void 0 === source) return;
44
+ try {
45
+ return unwrapExpression((0, parser_namespaceObject.parseExpression)(source, {
46
+ plugins: [
47
+ "typescript"
48
+ ]
49
+ }));
50
+ } catch {
51
+ return;
52
+ }
53
+ }
54
+ function parseConfigModule(source) {
55
+ return (0, parser_namespaceObject.parse)(source, {
56
+ sourceType: 'module',
57
+ plugins: [
58
+ "typescript"
59
+ ]
60
+ });
61
+ }
62
+ function locateExportedConfig(source, factory) {
63
+ const module = parseConfigModule(source);
64
+ const constants = new Map();
65
+ const bindingStarts = new Map();
66
+ const resolvedBindings = new Set();
67
+ const allowedReferences = new Set();
68
+ const factories = new Set();
69
+ const namespaces = new Set();
70
+ const defaults = [];
71
+ for (const statement of module.program.body){
72
+ if ('ImportDeclaration' === statement.type && 'type' !== statement.importKind && '@module-federation/modern-js-v3' === statement.source.value) {
73
+ for (const specifier of statement.specifiers)if ('ImportNamespaceSpecifier' === specifier.type) namespaces.add(specifier.local.name);
74
+ else if ('ImportSpecifier' === specifier.type && 'type' !== specifier.importKind && ('Identifier' === specifier.imported.type ? specifier.imported.name : specifier.imported.value) === 'createModuleFederationConfig') factories.add(specifier.local.name);
75
+ }
76
+ const declaration = 'ExportNamedDeclaration' === statement.type ? statement.declaration : statement;
77
+ if (declaration?.type === 'VariableDeclaration' && 'const' === declaration.kind) {
78
+ for (const binding of declaration.declarations)if ('Identifier' === binding.id.type && binding.init) {
79
+ constants.set(binding.id.name, binding.init);
80
+ bindingStarts.set(binding.id.name, binding.id.start);
81
+ }
82
+ }
83
+ if ('ExportDefaultDeclaration' === statement.type) defaults.push(statement.declaration);
84
+ else if ('ExportNamedDeclaration' === statement.type && !statement.source && 'type' !== statement.exportKind) {
85
+ for (const specifier of statement.specifiers)if ('ExportSpecifier' === specifier.type && 'type' !== specifier.exportKind && ('Identifier' === specifier.exported.type ? specifier.exported.name : specifier.exported.value) === 'default') defaults.push(specifier.local);
86
+ }
87
+ }
88
+ const resolve = (node, seen = new Set())=>{
89
+ if (!node) return;
90
+ if ('Identifier' === node.type) {
91
+ if (seen.has(node.name)) return;
92
+ seen.add(node.name);
93
+ resolvedBindings.add(node.name);
94
+ if (null != node.start) allowedReferences.add(node.start);
95
+ const bindingStart = bindingStarts.get(node.name);
96
+ if (null != bindingStart) allowedReferences.add(bindingStart);
97
+ return resolve(constants.get(node.name), seen);
98
+ }
99
+ if ('TSAsExpression' === node.type || 'TSSatisfiesExpression' === node.type || 'TSNonNullExpression' === node.type || 'TSTypeAssertion' === node.type || 'ParenthesizedExpression' === node.type) return resolve(node.expression, seen);
100
+ return node;
101
+ };
102
+ if (1 !== defaults.length) return;
103
+ let node = resolve(defaults[0]);
104
+ if (factory) {
105
+ if (node?.type !== 'CallExpression' || 1 !== node.arguments.length) return;
106
+ const callee = node.callee;
107
+ const supported = 'Identifier' === callee.type && factories.has(callee.name) || 'MemberExpression' === callee.type && !callee.computed && 'Identifier' === callee.object.type && namespaces.has(callee.object.name) && 'Identifier' === callee.property.type && 'createModuleFederationConfig' === callee.property.name;
108
+ if (!supported) return;
109
+ const argument = node.arguments[0];
110
+ if (!argument || 'SpreadElement' === argument.type || 'ArgumentPlaceholder' === argument.type) return;
111
+ node = resolve(argument);
112
+ }
113
+ if (node?.type !== 'ObjectExpression' || null == node.start || null == node.end) return;
114
+ const hasOtherReference = (value)=>{
115
+ if (!value || 'object' != typeof value) return false;
116
+ if (Array.isArray(value)) return value.some(hasOtherReference);
117
+ const entry = value;
118
+ if ('Identifier' === entry.type && 'string' == typeof entry.name && resolvedBindings.has(entry.name) && ('number' != typeof entry.start || !allowedReferences.has(entry.start))) return true;
119
+ return Object.entries(entry).some(([key, child])=>'loc' !== key && 'comments' !== key && 'leadingComments' !== key && 'trailingComments' !== key && hasOtherReference(child));
120
+ };
121
+ if (hasOtherReference(module.program)) return;
122
+ return {
123
+ start: node.start,
124
+ end: node.end,
125
+ source: source.slice(node.start, node.end)
126
+ };
127
+ }
128
+ function locateCreateModuleFederationConfigObject(source) {
129
+ return locateExportedConfig(source, true);
130
+ }
131
+ function findCreateModuleFederationConfigObject(source) {
132
+ return locateCreateModuleFederationConfigObject(source)?.source;
133
+ }
134
+ function findExportDefaultObject(source) {
135
+ return locateExportedConfig(source, false)?.source;
136
+ }
137
+ exports.findCreateModuleFederationConfigObject = __webpack_exports__.findCreateModuleFederationConfigObject;
138
+ exports.findExportDefaultObject = __webpack_exports__.findExportDefaultObject;
139
+ exports.locateCreateModuleFederationConfigObject = __webpack_exports__.locateCreateModuleFederationConfigObject;
140
+ exports.parseConfigModule = __webpack_exports__.parseConfigModule;
141
+ exports.parseStaticExpression = __webpack_exports__.parseStaticExpression;
142
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
143
+ "findCreateModuleFederationConfigObject",
144
+ "findExportDefaultObject",
145
+ "locateCreateModuleFederationConfigObject",
146
+ "parseConfigModule",
147
+ "parseStaticExpression"
148
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
149
+ Object.defineProperty(exports, '__esModule', {
150
+ value: true
151
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -38,19 +38,126 @@ var __webpack_exports__ = {};
38
38
  __webpack_require__.r(__webpack_exports__);
39
39
  __webpack_require__.d(__webpack_exports__, {
40
40
  UltramodernNativeTypeChecker: ()=>UltramodernNativeTypeChecker,
41
- configureUltramodernTypeChecker: ()=>configureUltramodernTypeChecker
41
+ configureUltramodernTypeChecker: ()=>configureUltramodernTypeChecker,
42
+ missingJsxRuntimeHint: ()=>missingJsxRuntimeHint,
43
+ resolveNativeTypeCheckerCommand: ()=>resolveNativeTypeCheckerCommand
42
44
  });
43
45
  const external_node_child_process_namespaceObject = require("node:child_process");
46
+ const external_node_crypto_namespaceObject = require("node:crypto");
44
47
  const external_node_fs_namespaceObject = require("node:fs");
45
48
  const external_node_path_namespaceObject = require("node:path");
46
49
  var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
47
50
  const external_node_util_namespaceObject = require("node:util");
51
+ const builder_namespaceObject = require("@modern-js/builder");
52
+ const external_jsonc_parser_namespaceObject = require("jsonc-parser");
48
53
  const execute = (0, external_node_util_namespaceObject.promisify)(external_node_child_process_namespaceObject.execFile);
49
54
  const native_type_checker_name = 'UltramodernNativeTypeChecker';
50
- const watchDependencyPath = (file)=>'win32' === process.platform ? external_node_fs_namespaceObject.realpathSync.native(file) : file;
55
+ function resolveNativeTypeCheckerCommand(packageJsonPath) {
56
+ const manifestFile = (0, external_node_fs_namespaceObject.realpathSync)(packageJsonPath);
57
+ const directory = external_node_path_default().dirname(manifestFile);
58
+ const manifest = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(manifestFile, 'utf8'));
59
+ if ("typescript" !== manifest.name || '7.0.2' !== manifest.version) throw new Error(`${native_type_checker_name} requires typescript@7.0.2; found ${String(manifest.name)}@${String(manifest.version)} at ${manifestFile}.`);
60
+ const bin = manifest.bin?.tsc;
61
+ if ('string' != typeof bin || !bin || external_node_path_default().isAbsolute(bin)) throw new Error(`${native_type_checker_name} requires the selected package's public tsc bin.`);
62
+ const launcher = (0, external_node_fs_namespaceObject.realpathSync)(external_node_path_default().resolve(directory, bin));
63
+ const relative = external_node_path_default().relative(directory, launcher);
64
+ if (!relative || external_node_path_default().isAbsolute(relative) || '..' === relative || relative.startsWith(`..${external_node_path_default().sep}`) || !(0, external_node_fs_namespaceObject.statSync)(launcher).isFile()) throw new Error(`${native_type_checker_name} public tsc bin must belong to its selected package.`);
65
+ return {
66
+ executable: process.execPath,
67
+ args: [
68
+ launcher
69
+ ]
70
+ };
71
+ }
72
+ const watchDependencyPath = (file)=>{
73
+ if ('win32' !== process.platform) return file;
74
+ try {
75
+ return external_node_fs_namespaceObject.realpathSync.native(file);
76
+ } catch {
77
+ return file;
78
+ }
79
+ };
80
+ function missingJsxRuntimeHint(diagnostics) {
81
+ const source = /error TS2875: This JSX tag requires the module path '(.+?)\/jsx-(?:dev-)?runtime'/u.exec(diagnostics)?.[1];
82
+ if (!source) return '';
83
+ return `\nHint: JSX compiles against jsxImportSource '${source}', the selected renderer's runtime, but '${source}/jsx-runtime' cannot be resolved from this app. If you changed \`renderer\` in modern.config, install that renderer's packages and port components authored for the previous renderer, or switch \`renderer\` back.\n`;
84
+ }
51
85
  class UltramodernNativeTypeChecker {
52
86
  async check() {
53
- const { configFile, build } = this.options;
87
+ const configFile = await this.projectConfigFile();
88
+ try {
89
+ await this.checkProject(configFile);
90
+ } finally{
91
+ this.removeProjection(configFile);
92
+ }
93
+ }
94
+ async projectConfigFile() {
95
+ const { configFile, configOverwrite } = this.options;
96
+ if (!configOverwrite) return configFile;
97
+ const errors = [];
98
+ const source = (0, external_node_fs_namespaceObject.readFileSync)(configFile, 'utf8');
99
+ const project = (0, external_jsonc_parser_namespaceObject.parse)(0xfeff === source.charCodeAt(0) ? source.slice(1) : source, errors, {
100
+ allowTrailingComma: true
101
+ });
102
+ if (errors.length) throw new Error(`${native_type_checker_name} requires valid JSONC in ${configFile}: ${errors.map((error)=>`${(0, external_jsonc_parser_namespaceObject.printParseErrorCode)(error.error)} at ${error.offset}`).join(', ')}`);
103
+ if (!project || 'object' != typeof project || Array.isArray(project)) throw new Error(`${native_type_checker_name} requires a JSONC object in ${configFile}.`);
104
+ const projectedConfig = {
105
+ ...project,
106
+ ...configOverwrite,
107
+ compilerOptions: {
108
+ ...project.compilerOptions,
109
+ ...configOverwrite.compilerOptions
110
+ }
111
+ };
112
+ const projected = external_node_path_default().join(external_node_path_default().dirname(configFile), `.ultramodern-native-checker.${(0, external_node_crypto_namespaceObject.randomUUID)()}.json`);
113
+ (0, external_node_fs_namespaceObject.writeFileSync)(projected, `${JSON.stringify(projectedConfig, null, 2)}\n`, {
114
+ flag: 'wx'
115
+ });
116
+ try {
117
+ const resolved = JSON.parse(await this.run([
118
+ '--showConfig',
119
+ '--project',
120
+ projected
121
+ ]));
122
+ const options = resolved.compilerOptions ?? {};
123
+ if ((this.options.build || true === options.incremental || true === options.composite) && !options.tsBuildInfoFile) {
124
+ const original = configFile.slice(0, configFile.length - external_node_path_default().extname(configFile).length);
125
+ let buildInfo = original;
126
+ if ('string' == typeof options.outDir) {
127
+ const outDir = external_node_path_default().resolve(external_node_path_default().dirname(configFile), options.outDir);
128
+ buildInfo = 'string' == typeof options.rootDir ? external_node_path_default().resolve(outDir, external_node_path_default().relative(external_node_path_default().resolve(external_node_path_default().dirname(configFile), options.rootDir), original)) : external_node_path_default().join(outDir, external_node_path_default().basename(original));
129
+ }
130
+ projectedConfig.compilerOptions = {
131
+ ...projectedConfig.compilerOptions,
132
+ tsBuildInfoFile: `${buildInfo}.tsbuildinfo`
133
+ };
134
+ (0, external_node_fs_namespaceObject.writeFileSync)(projected, `${JSON.stringify(projectedConfig, null, 2)}\n`);
135
+ }
136
+ return projected;
137
+ } catch (error) {
138
+ (0, external_node_fs_namespaceObject.unlinkSync)(projected);
139
+ throw error;
140
+ }
141
+ }
142
+ removeProjection(configFile) {
143
+ if (configFile !== this.options.configFile) (0, external_node_fs_namespaceObject.unlinkSync)(configFile);
144
+ }
145
+ async checkProject(configFile) {
146
+ const { build } = this.options;
147
+ if (!build) {
148
+ const config = JSON.parse(await this.run([
149
+ '--showConfig',
150
+ '--project',
151
+ configFile
152
+ ]));
153
+ if (config.references?.length) await this.run([
154
+ '--build',
155
+ ...config.references.map((reference)=>external_node_path_default().resolve(external_node_path_default().dirname(configFile), reference.path)),
156
+ '--stopBuildOnErrors',
157
+ '--pretty',
158
+ 'false'
159
+ ]);
160
+ }
54
161
  const args = build ? [
55
162
  '--build',
56
163
  configFile,
@@ -68,7 +175,15 @@ class UltramodernNativeTypeChecker {
68
175
  }
69
176
  async run(args) {
70
177
  try {
71
- const result = await execute(this.options.compiler(), args, {
178
+ const selected = this.options.compiler();
179
+ const command = 'string' == typeof selected ? {
180
+ executable: selected,
181
+ args: []
182
+ } : selected;
183
+ const result = await execute(command.executable, [
184
+ ...command.args,
185
+ ...args
186
+ ], {
72
187
  cwd: external_node_path_default().dirname(this.options.configFile),
73
188
  maxBuffer: 16777216
74
189
  });
@@ -76,26 +191,36 @@ class UltramodernNativeTypeChecker {
76
191
  } catch (cause) {
77
192
  const output = cause;
78
193
  const diagnostics = `${output.stdout ?? ''}${output.stderr ?? ''}`;
79
- throw new Error(`${native_type_checker_name} failed:\n${diagnostics || (cause instanceof Error ? cause.message : String(cause))}`, {
194
+ throw new Error(`${native_type_checker_name} failed:\n${diagnostics || (cause instanceof Error ? cause.message : String(cause))}${missingJsxRuntimeHint(diagnostics)}`, {
80
195
  cause
81
196
  });
82
197
  }
83
198
  }
84
- async watchInputs() {
199
+ async watchInputs(configFile) {
85
200
  const inputs = new Set();
201
+ const missing = new Set();
86
202
  const projects = [
87
- this.options.configFile
203
+ configFile
88
204
  ];
89
205
  const visited = new Set();
90
206
  for (const configFile of projects){
91
207
  if (visited.has(configFile)) continue;
92
208
  visited.add(configFile);
93
- inputs.add(configFile);
94
- const config = JSON.parse(await this.run([
95
- '--showConfig',
96
- '--project',
97
- configFile
98
- ]));
209
+ if (configFile === this.options.configFile || configFile !== projects[0]) inputs.add(configFile);
210
+ if (!(0, external_node_fs_namespaceObject.existsSync)(configFile)) {
211
+ missing.add(configFile);
212
+ continue;
213
+ }
214
+ let config;
215
+ try {
216
+ config = JSON.parse(await this.run([
217
+ '--showConfig',
218
+ '--project',
219
+ configFile
220
+ ]));
221
+ } catch {
222
+ continue;
223
+ }
99
224
  const directory = external_node_path_default().dirname(configFile);
100
225
  for (const file of config.files ?? [])inputs.add(external_node_path_default().resolve(directory, file));
101
226
  for (const reference of config.references ?? []){
@@ -103,15 +228,31 @@ class UltramodernNativeTypeChecker {
103
228
  projects.push('.json' === external_node_path_default().extname(target) ? target : external_node_path_default().join(target, 'tsconfig.json'));
104
229
  }
105
230
  }
106
- return inputs;
231
+ return {
232
+ inputs,
233
+ missing
234
+ };
107
235
  }
108
236
  apply(compiler) {
109
237
  compiler.hooks.thisCompilation.tap(native_type_checker_name, (compilation)=>{
110
238
  compilation.hooks.processAssets.tapPromise(native_type_checker_name, async ()=>{
111
239
  try {
112
240
  compilation.fileDependencies.add(watchDependencyPath(this.options.configFile));
113
- for (const file of (await this.watchInputs()))compilation.fileDependencies.add(watchDependencyPath(file));
114
- await this.check();
241
+ const projectConfigFile = (0, builder_namespaceObject.refreshTsgoCheckerConfig)(this.options.configFile);
242
+ if (projectConfigFile) {
243
+ const watched = watchDependencyPath(projectConfigFile);
244
+ compilation.fileDependencies.add(watched);
245
+ if (!(0, external_node_fs_namespaceObject.existsSync)(projectConfigFile)) compilation.missingDependencies.add(watched);
246
+ }
247
+ const configFile = await this.projectConfigFile();
248
+ try {
249
+ const { inputs, missing } = await this.watchInputs(configFile);
250
+ for (const file of inputs)compilation.fileDependencies.add(watchDependencyPath(file));
251
+ for (const file of missing)compilation.missingDependencies.add(watchDependencyPath(file));
252
+ await this.checkProject(configFile);
253
+ } finally{
254
+ this.removeProjection(configFile);
255
+ }
115
256
  } catch (cause) {
116
257
  compilation.errors.push(new Error(cause instanceof Error ? cause.message : String(cause), {
117
258
  cause
@@ -135,15 +276,20 @@ function configureUltramodernTypeChecker(chain, pluginId, resolveCompiler) {
135
276
  {
136
277
  build: true === typescript.build,
137
278
  compiler: ()=>resolveCompiler(configFile),
138
- configFile
279
+ configFile,
280
+ configOverwrite: typescript.configOverwrite
139
281
  }
140
282
  ]);
141
283
  }
142
284
  exports.UltramodernNativeTypeChecker = __webpack_exports__.UltramodernNativeTypeChecker;
143
285
  exports.configureUltramodernTypeChecker = __webpack_exports__.configureUltramodernTypeChecker;
286
+ exports.missingJsxRuntimeHint = __webpack_exports__.missingJsxRuntimeHint;
287
+ exports.resolveNativeTypeCheckerCommand = __webpack_exports__.resolveNativeTypeCheckerCommand;
144
288
  for(var __rspack_i in __webpack_exports__)if (-1 === [
145
289
  "UltramodernNativeTypeChecker",
146
- "configureUltramodernTypeChecker"
290
+ "configureUltramodernTypeChecker",
291
+ "missingJsxRuntimeHint",
292
+ "resolveNativeTypeCheckerCommand"
147
293
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
148
294
  Object.defineProperty(exports, '__esModule', {
149
295
  value: true
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ const __rslib_import_meta_url__ = /*#__PURE__*/ function() {
3
+ return "u" < typeof document ? new (require('url'.replace('', ''))).URL('file:' + __filename).href : document.currentScript && document.currentScript.src || new URL('main.js', document.baseURI).href;
4
+ }();
5
+ var __webpack_require__ = {};
6
+ (()=>{
7
+ __webpack_require__.d = (exports1, getters, values)=>{
8
+ var define = (defs, kind)=>{
9
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
10
+ enumerable: true,
11
+ [kind]: defs[key]
12
+ });
13
+ };
14
+ define(getters, "get");
15
+ define(values, "value");
16
+ };
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
20
+ })();
21
+ (()=>{
22
+ __webpack_require__.r = (exports1)=>{
23
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
24
+ value: 'Module'
25
+ });
26
+ Object.defineProperty(exports1, '__esModule', {
27
+ value: true
28
+ });
29
+ };
30
+ })();
31
+ var __webpack_exports__ = {};
32
+ __webpack_require__.r(__webpack_exports__);
33
+ __webpack_require__.d(__webpack_exports__, {
34
+ POLICY_DEFAULTS_PLUGIN_NAME: ()=>POLICY_DEFAULTS_PLUGIN_NAME,
35
+ RENDERER_EXTENSIONS_PACKAGE: ()=>RENDERER_EXTENSIONS_PACKAGE,
36
+ RENDERER_EXTENSIONS_PLUGIN_NAME: ()=>RENDERER_EXTENSIONS_PLUGIN_NAME,
37
+ SERVER_EXTENSIONS_PLUGIN_NAME: ()=>SERVER_EXTENSIONS_PLUGIN_NAME,
38
+ ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME: ()=>ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME,
39
+ applyPolicyDefaults: ()=>applyPolicyDefaults,
40
+ createPolicyDefaultsPlugin: ()=>createPolicyDefaultsPlugin
41
+ });
42
+ const external_runtime_package_resolution_js_namespaceObject = require("./runtime-package-resolution.js");
43
+ const RENDERER_EXTENSIONS_PACKAGE = '@modern-js/runtime-renderer-extensions';
44
+ const RENDERER_EXTENSIONS_PLUGIN_NAME = 'rendererHead';
45
+ const SERVER_EXTENSIONS_PLUGIN_NAME = '@modern-js/app-tools/server-plugin';
46
+ const ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME = '@modern-js/ultramodern-app-tools/server-plugin';
47
+ const POLICY_DEFAULTS_PLUGIN_NAME = '@modern-js/ultramodern-policy-defaults';
48
+ const applyPolicyDefaults = (api, options = {}, composition = {})=>{
49
+ if (false !== options.rendererExtensions) api._internalRuntimePlugins(({ entrypoint, plugins })=>{
50
+ if (!plugins.some((plugin)=>plugin.path === RENDERER_EXTENSIONS_PACKAGE)) plugins.push({
51
+ name: RENDERER_EXTENSIONS_PLUGIN_NAME,
52
+ path: RENDERER_EXTENSIONS_PACKAGE,
53
+ config: {}
54
+ });
55
+ return {
56
+ entrypoint,
57
+ plugins
58
+ };
59
+ });
60
+ const runtimePackages = [
61
+ ...false !== options.rendererExtensions ? [
62
+ RENDERER_EXTENSIONS_PACKAGE
63
+ ] : [],
64
+ ...(composition.runtimePackages ?? []).filter((packageName)=>packageName !== RENDERER_EXTENSIONS_PACKAGE)
65
+ ];
66
+ const moduleDirectories = (0, external_runtime_package_resolution_js_namespaceObject.collectRuntimePackageModuleDirectories)(runtimePackages, composition.registrarUrl ?? __rslib_import_meta_url__);
67
+ if (moduleDirectories.length > 0) api.modifyResolvedConfig((config)=>({
68
+ ...config,
69
+ builderPlugins: [
70
+ ...config.builderPlugins ?? [],
71
+ (0, external_runtime_package_resolution_js_namespaceObject.createRuntimePackageResolutionPlugin)(moduleDirectories)
72
+ ]
73
+ }));
74
+ if (false !== options.serverExtensions) {
75
+ const serverPluginName = composition.serverPluginName ?? SERVER_EXTENSIONS_PLUGIN_NAME;
76
+ api._internalServerPlugins(({ plugins })=>{
77
+ if (!plugins.some((plugin)=>plugin.name === serverPluginName || plugin.name === SERVER_EXTENSIONS_PLUGIN_NAME || plugin.name === ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME)) plugins.push({
78
+ name: serverPluginName
79
+ });
80
+ return {
81
+ plugins
82
+ };
83
+ });
84
+ }
85
+ };
86
+ const createPolicyDefaultsPlugin = (options = {}, composition = {})=>({
87
+ name: composition.pluginName ?? POLICY_DEFAULTS_PLUGIN_NAME,
88
+ setup (api) {
89
+ applyPolicyDefaults(api, options, composition);
90
+ }
91
+ });
92
+ exports.POLICY_DEFAULTS_PLUGIN_NAME = __webpack_exports__.POLICY_DEFAULTS_PLUGIN_NAME;
93
+ exports.RENDERER_EXTENSIONS_PACKAGE = __webpack_exports__.RENDERER_EXTENSIONS_PACKAGE;
94
+ exports.RENDERER_EXTENSIONS_PLUGIN_NAME = __webpack_exports__.RENDERER_EXTENSIONS_PLUGIN_NAME;
95
+ exports.SERVER_EXTENSIONS_PLUGIN_NAME = __webpack_exports__.SERVER_EXTENSIONS_PLUGIN_NAME;
96
+ exports.ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME = __webpack_exports__.ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME;
97
+ exports.applyPolicyDefaults = __webpack_exports__.applyPolicyDefaults;
98
+ exports.createPolicyDefaultsPlugin = __webpack_exports__.createPolicyDefaultsPlugin;
99
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
100
+ "POLICY_DEFAULTS_PLUGIN_NAME",
101
+ "RENDERER_EXTENSIONS_PACKAGE",
102
+ "RENDERER_EXTENSIONS_PLUGIN_NAME",
103
+ "SERVER_EXTENSIONS_PLUGIN_NAME",
104
+ "ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME",
105
+ "applyPolicyDefaults",
106
+ "createPolicyDefaultsPlugin"
107
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
108
+ Object.defineProperty(exports, '__esModule', {
109
+ value: true
110
+ });
@@ -31,9 +31,10 @@ __webpack_require__.d(__webpack_exports__, {
31
31
  canonicalSerializeMicroVerticalReleaseEnvelope: ()=>canonicalSerializeMicroVerticalReleaseEnvelope,
32
32
  canonicalSerializeMicroVerticalReleaseEnvelopePayload: ()=>canonicalSerializeMicroVerticalReleaseEnvelopePayload,
33
33
  digestMicroVerticalReleaseEnvelopePayload: ()=>digestMicroVerticalReleaseEnvelopePayload,
34
- releaseEnvelopePayload: ()=>releaseEnvelopePayload
34
+ releaseEnvelopePayload: ()=>external_contract_js_namespaceObject.releaseEnvelopePayload
35
35
  });
36
36
  const external_node_crypto_namespaceObject = require("node:crypto");
37
+ const external_contract_js_namespaceObject = require("./contract.js");
37
38
  const serializeCanonicalValue = (value)=>{
38
39
  if (null === value || 'object' != typeof value) {
39
40
  if ('number' == typeof value && !Number.isFinite(value)) throw new Error('Canonical release-envelope values must be finite.');
@@ -42,14 +43,6 @@ const serializeCanonicalValue = (value)=>{
42
43
  if (Array.isArray(value)) return `[${value.map(serializeCanonicalValue).join(',')}]`;
43
44
  return `{${Object.keys(value).sort().map((key)=>`${JSON.stringify(key)}:${serializeCanonicalValue(value[key])}`).join(',')}}`;
44
45
  };
45
- const releaseEnvelopePayload = (envelope)=>({
46
- schemaVersion: envelope.schemaVersion,
47
- kind: envelope.kind,
48
- target: envelope.target,
49
- identity: envelope.identity,
50
- artifacts: envelope.artifacts,
51
- surfaces: envelope.surfaces
52
- });
53
46
  const canonicalSerializeMicroVerticalReleaseEnvelopePayload = (payload)=>serializeCanonicalValue(payload);
54
47
  const canonicalSerializeMicroVerticalReleaseEnvelope = (envelope)=>serializeCanonicalValue(envelope);
55
48
  const digestMicroVerticalReleaseEnvelopePayload = (payload)=>(0, external_node_crypto_namespaceObject.createHash)('sha256').update(canonicalSerializeMicroVerticalReleaseEnvelopePayload(payload)).digest('hex');
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ const MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION = 5;
31
+ const MICROVERTICAL_RELEASE_ENVELOPE_KIND = 'ultramodern-target-microvertical-release-envelope';
32
+ const SHELL_RELEASE_ENVELOPE_KIND = 'ultramodern-target-shell-release-envelope';
33
+ const releaseEnvelopePayload = (envelope)=>{
34
+ const payload = {
35
+ schemaVersion: envelope.schemaVersion,
36
+ target: envelope.target,
37
+ identity: envelope.identity,
38
+ ...envelope.ui ? {
39
+ ui: envelope.ui
40
+ } : {},
41
+ artifacts: envelope.artifacts
42
+ };
43
+ envelope.kind;
44
+ return {
45
+ ...payload,
46
+ kind: envelope.kind,
47
+ surfaces: envelope.surfaces
48
+ };
49
+ };
50
+ __webpack_require__.d(__webpack_exports__, {}, {
51
+ MICROVERTICAL_RELEASE_ENVELOPE_KIND: MICROVERTICAL_RELEASE_ENVELOPE_KIND,
52
+ MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION: MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION,
53
+ SHELL_RELEASE_ENVELOPE_KIND: SHELL_RELEASE_ENVELOPE_KIND,
54
+ releaseEnvelopePayload: releaseEnvelopePayload
55
+ });
56
+ exports.MICROVERTICAL_RELEASE_ENVELOPE_KIND = __webpack_exports__.MICROVERTICAL_RELEASE_ENVELOPE_KIND;
57
+ exports.MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION = __webpack_exports__.MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION;
58
+ exports.SHELL_RELEASE_ENVELOPE_KIND = __webpack_exports__.SHELL_RELEASE_ENVELOPE_KIND;
59
+ exports.releaseEnvelopePayload = __webpack_exports__.releaseEnvelopePayload;
60
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
61
+ "MICROVERTICAL_RELEASE_ENVELOPE_KIND",
62
+ "MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION",
63
+ "SHELL_RELEASE_ENVELOPE_KIND",
64
+ "releaseEnvelopePayload"
65
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
66
+ Object.defineProperty(exports, '__esModule', {
67
+ value: true
68
+ });