@bleedingdev/modern-js-app-tools-extensions 3.9.0-ultramodern.9 → 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 (275) 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 +130 -13
  37. package/dist/cjs/policy-defaults.js +38 -29
  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/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
  48. package/dist/cjs/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
  49. package/dist/cjs/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
  50. package/dist/cjs/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
  51. package/dist/cjs/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
  52. package/dist/cjs/templates/cloudflare-worker-route-data.mjs +1069 -0
  53. package/dist/cjs/workspace-topology.js +84 -0
  54. package/dist/esm/backend-federation-build/codegen.mjs +29 -18
  55. package/dist/esm/backend-federation-build/config.mjs +74 -38
  56. package/dist/esm/backend-federation-build/emit.mjs +64 -23
  57. package/dist/esm/build-config/build-environment.mjs +26 -160
  58. package/dist/esm/build-config/internal-effect-discovery.mjs +102 -0
  59. package/dist/esm/build-config/public.mjs +1 -1
  60. package/dist/esm/build-config/remote-address.mjs +20 -0
  61. package/dist/esm/cloudflare/artifacts.mjs +8 -19
  62. package/dist/esm/cloudflare/delivery-unit.mjs +124 -45
  63. package/dist/esm/cloudflare/index.mjs +15 -5
  64. package/dist/esm/cloudflare/native-renderer.mjs +48 -0
  65. package/dist/esm/cloudflare/renderer-identity.mjs +57 -0
  66. package/dist/esm/cloudflare/worker-manifest.mjs +55 -14
  67. package/dist/esm/cloudflare/worker-options.mjs +10 -0
  68. package/dist/esm/cloudflare/wrangler-config.mjs +203 -12
  69. package/dist/esm/cloudflare-builder.mjs +301 -89
  70. package/dist/esm/cloudflare-output-contract.mjs +29 -3
  71. package/dist/esm/cloudflare-output-verifier/identity.mjs +113 -24
  72. package/dist/esm/cloudflare-output-verifier/index.mjs +10 -0
  73. package/dist/esm/cloudflare-output-verifier/manifest.mjs +46 -0
  74. package/dist/esm/cloudflare-output-verifier/mutation-policy.mjs +7 -1
  75. package/dist/esm/cloudflare-output-verifier/worker-bundles.mjs +11 -6
  76. package/dist/esm/config.mjs +3 -1
  77. package/dist/esm/deploy-output/npmAliases.mjs +92 -6
  78. package/dist/esm/deploy-output/plugin.mjs +24 -6
  79. package/dist/esm/deploy-output/public-assets.mjs +82 -0
  80. package/dist/esm/deploy-output/target.mjs +50 -3
  81. package/dist/esm/deploy-output/trace-files.mjs +47 -0
  82. package/dist/esm/module-federation-config/exposes.mjs +18 -0
  83. package/dist/esm/module-federation-config/index.mjs +4 -0
  84. package/dist/esm/module-federation-config/inspect.mjs +65 -0
  85. package/dist/esm/module-federation-config/object-literal.mjs +43 -0
  86. package/dist/esm/module-federation-config/syntax.mjs +101 -0
  87. package/dist/esm/module-federation-config/types.mjs +0 -0
  88. package/dist/esm/native-type-checker.mjs +124 -13
  89. package/dist/esm/policy-defaults.mjs +36 -30
  90. package/dist/esm/release-envelope/canonical.mjs +2 -9
  91. package/dist/esm/release-envelope/contract.mjs +21 -0
  92. package/dist/esm/release-envelope/framework-output.mjs +297 -106
  93. package/dist/esm/release-envelope/index.mjs +149 -38
  94. package/dist/esm/release-envelope/plugin.mjs +24 -15
  95. package/dist/esm/release-envelope/renderer-output-stamp.mjs +112 -0
  96. package/dist/esm/release-envelope/types.mjs +2 -3
  97. package/dist/esm/release-identity.mjs +8 -5
  98. package/dist/esm/renderer-build-identity.mjs +82 -0
  99. package/dist/esm/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
  100. package/dist/esm/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
  101. package/dist/esm/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
  102. package/dist/esm/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
  103. package/dist/esm/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
  104. package/dist/esm/templates/cloudflare-worker-route-data.mjs +1069 -0
  105. package/dist/esm/workspace-topology.mjs +21 -0
  106. package/dist/esm-node/backend-federation-build/codegen.mjs +29 -18
  107. package/dist/esm-node/backend-federation-build/config.mjs +74 -38
  108. package/dist/esm-node/backend-federation-build/emit.mjs +64 -23
  109. package/dist/esm-node/build-config/build-environment.mjs +26 -160
  110. package/dist/esm-node/build-config/internal-effect-discovery.mjs +103 -0
  111. package/dist/esm-node/build-config/public.mjs +1 -1
  112. package/dist/esm-node/build-config/remote-address.mjs +21 -0
  113. package/dist/esm-node/cloudflare/artifacts.mjs +8 -19
  114. package/dist/esm-node/cloudflare/delivery-unit.mjs +124 -45
  115. package/dist/esm-node/cloudflare/index.mjs +15 -5
  116. package/dist/esm-node/cloudflare/native-renderer.mjs +49 -0
  117. package/dist/esm-node/cloudflare/renderer-identity.mjs +58 -0
  118. package/dist/esm-node/cloudflare/worker-manifest.mjs +55 -14
  119. package/dist/esm-node/cloudflare/worker-options.mjs +11 -0
  120. package/dist/esm-node/cloudflare/wrangler-config.mjs +203 -12
  121. package/dist/esm-node/cloudflare-builder.mjs +301 -89
  122. package/dist/esm-node/cloudflare-output-contract.mjs +29 -3
  123. package/dist/esm-node/cloudflare-output-verifier/identity.mjs +113 -24
  124. package/dist/esm-node/cloudflare-output-verifier/index.mjs +10 -0
  125. package/dist/esm-node/cloudflare-output-verifier/manifest.mjs +46 -0
  126. package/dist/esm-node/cloudflare-output-verifier/mutation-policy.mjs +7 -1
  127. package/dist/esm-node/cloudflare-output-verifier/worker-bundles.mjs +11 -6
  128. package/dist/esm-node/config.mjs +3 -1
  129. package/dist/esm-node/deploy-output/npmAliases.mjs +92 -6
  130. package/dist/esm-node/deploy-output/plugin.mjs +24 -6
  131. package/dist/esm-node/deploy-output/public-assets.mjs +83 -0
  132. package/dist/esm-node/deploy-output/target.mjs +50 -3
  133. package/dist/esm-node/deploy-output/trace-files.mjs +48 -0
  134. package/dist/esm-node/module-federation-config/exposes.mjs +19 -0
  135. package/dist/esm-node/module-federation-config/index.mjs +5 -0
  136. package/dist/esm-node/module-federation-config/inspect.mjs +66 -0
  137. package/dist/esm-node/module-federation-config/object-literal.mjs +44 -0
  138. package/dist/esm-node/module-federation-config/syntax.mjs +102 -0
  139. package/dist/esm-node/module-federation-config/types.mjs +1 -0
  140. package/dist/esm-node/native-type-checker.mjs +124 -13
  141. package/dist/esm-node/policy-defaults.mjs +36 -30
  142. package/dist/esm-node/release-envelope/canonical.mjs +2 -9
  143. package/dist/esm-node/release-envelope/contract.mjs +22 -0
  144. package/dist/esm-node/release-envelope/framework-output.mjs +297 -106
  145. package/dist/esm-node/release-envelope/index.mjs +149 -38
  146. package/dist/esm-node/release-envelope/plugin.mjs +24 -15
  147. package/dist/esm-node/release-envelope/renderer-output-stamp.mjs +113 -0
  148. package/dist/esm-node/release-envelope/types.mjs +2 -3
  149. package/dist/esm-node/release-identity.mjs +8 -5
  150. package/dist/esm-node/renderer-build-identity.mjs +83 -0
  151. package/dist/esm-node/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
  152. package/dist/esm-node/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
  153. package/dist/esm-node/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
  154. package/dist/esm-node/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
  155. package/dist/esm-node/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
  156. package/dist/esm-node/templates/cloudflare-worker-route-data.mjs +1069 -0
  157. package/dist/esm-node/workspace-topology.mjs +22 -0
  158. package/dist/types/backend-federation-build/codegen.d.ts +30 -0
  159. package/dist/types/backend-federation-build/config.d.ts +10 -57
  160. package/dist/types/backend-federation-build/emit.d.ts +12 -2
  161. package/dist/types/backend-federation-build/index.d.ts +1 -1
  162. package/dist/types/build-config/build-environment.d.ts +1 -9
  163. package/dist/types/build-config/internal-effect-discovery.d.ts +4 -0
  164. package/dist/types/build-config/public.d.ts +1 -1
  165. package/dist/types/build-config/remote-address.d.ts +3 -0
  166. package/dist/types/cloudflare/artifacts.d.ts +7 -6
  167. package/dist/types/cloudflare/constants.d.ts +1 -1
  168. package/dist/types/cloudflare/delivery-unit.d.ts +38 -7
  169. package/dist/types/cloudflare/native-renderer.d.ts +30 -0
  170. package/dist/types/cloudflare/renderer-identity.d.ts +25 -0
  171. package/dist/types/cloudflare/worker-manifest.d.ts +17 -2
  172. package/dist/types/cloudflare/worker-options.d.ts +20 -0
  173. package/dist/types/cloudflare/wrangler-config.d.ts +55 -2
  174. package/dist/types/cloudflare-builder.d.ts +51 -8
  175. package/dist/types/cloudflare-output-contract.d.ts +5 -3
  176. package/dist/types/cloudflare-output-verifier/identity.d.ts +7 -3
  177. package/dist/types/cloudflare-output-verifier/worker-bundles.d.ts +2 -2
  178. package/dist/types/config.d.ts +98 -13
  179. package/dist/types/deploy-output/plugin.d.ts +29 -9
  180. package/dist/types/deploy-output/public-assets.d.ts +51 -0
  181. package/dist/types/deploy-output/target.d.ts +28 -5
  182. package/dist/types/deploy-output/trace-files.d.ts +17 -0
  183. package/dist/types/module-federation-config/exposes.d.ts +11 -0
  184. package/dist/types/module-federation-config/index.d.ts +5 -0
  185. package/dist/types/module-federation-config/inspect.d.ts +2 -0
  186. package/dist/types/module-federation-config/object-literal.d.ts +4 -0
  187. package/dist/types/module-federation-config/syntax.d.ts +7 -0
  188. package/dist/types/module-federation-config/types.d.ts +20 -0
  189. package/dist/types/native-type-checker.d.ts +26 -3
  190. package/dist/types/policy-defaults.d.ts +12 -2
  191. package/dist/types/release-envelope/canonical.d.ts +5 -5
  192. package/dist/types/release-envelope/contract.d.mts +8 -0
  193. package/dist/types/release-envelope/framework-output.d.ts +23 -13
  194. package/dist/types/release-envelope/index.d.ts +17 -5
  195. package/dist/types/release-envelope/plugin.d.ts +10 -6
  196. package/dist/types/release-envelope/renderer-output-stamp.d.ts +34 -0
  197. package/dist/types/release-envelope/types.d.ts +42 -4
  198. package/dist/types/release-identity.d.ts +3 -2
  199. package/dist/types/renderer-build-identity.d.ts +30 -0
  200. package/dist/types/templates/cloudflare-worker-route-data.d.mts +14 -0
  201. package/dist/types/workspace-topology.d.ts +91 -0
  202. package/package.json +87 -27
  203. package/src/backend-federation-build/codegen.ts +28 -19
  204. package/src/backend-federation-build/config.ts +189 -123
  205. package/src/backend-federation-build/emit.ts +119 -38
  206. package/src/backend-federation-build/index.ts +4 -1
  207. package/src/build-config/build-environment.ts +59 -285
  208. package/src/build-config/internal-effect-discovery.ts +239 -0
  209. package/src/build-config/public.ts +0 -1
  210. package/src/build-config/remote-address.ts +33 -0
  211. package/src/cloudflare/artifacts.ts +22 -43
  212. package/src/cloudflare/delivery-unit.ts +283 -60
  213. package/src/cloudflare/index.ts +35 -19
  214. package/src/cloudflare/native-renderer.ts +117 -0
  215. package/src/cloudflare/renderer-identity.ts +171 -0
  216. package/src/cloudflare/worker-manifest.ts +108 -10
  217. package/src/cloudflare/worker-options.ts +60 -0
  218. package/src/cloudflare/wrangler-config.ts +390 -14
  219. package/src/cloudflare-builder.ts +543 -170
  220. package/src/cloudflare-output-contract.ts +45 -2
  221. package/src/cloudflare-output-verifier/identity.ts +138 -7
  222. package/src/cloudflare-output-verifier/index.ts +20 -0
  223. package/src/cloudflare-output-verifier/manifest.ts +77 -0
  224. package/src/cloudflare-output-verifier/mutation-policy.ts +11 -1
  225. package/src/cloudflare-output-verifier/worker-bundles.ts +27 -11
  226. package/src/config.ts +101 -19
  227. package/src/deploy-output/npmAliases.ts +141 -4
  228. package/src/deploy-output/plugin.ts +55 -18
  229. package/src/deploy-output/public-assets.ts +224 -0
  230. package/src/deploy-output/target.ts +97 -14
  231. package/src/deploy-output/trace-files.ts +80 -0
  232. package/src/module-federation-config/exposes.ts +46 -0
  233. package/src/module-federation-config/index.ts +22 -0
  234. package/src/module-federation-config/inspect.ts +157 -0
  235. package/src/module-federation-config/object-literal.ts +76 -0
  236. package/src/module-federation-config/syntax.ts +212 -0
  237. package/src/module-federation-config/types.ts +22 -0
  238. package/src/native-type-checker.ts +233 -20
  239. package/src/policy-defaults.ts +47 -17
  240. package/src/release-envelope/canonical.ts +6 -18
  241. package/src/release-envelope/contract.mjs +28 -0
  242. package/src/release-envelope/framework-output.ts +681 -156
  243. package/src/release-envelope/index.ts +315 -60
  244. package/src/release-envelope/plugin.ts +54 -38
  245. package/src/release-envelope/renderer-output-stamp.ts +210 -0
  246. package/src/release-envelope/types.ts +75 -6
  247. package/src/release-identity.ts +19 -2
  248. package/src/renderer-build-identity.ts +168 -0
  249. package/src/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
  250. package/src/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
  251. package/src/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
  252. package/src/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
  253. package/src/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
  254. package/src/templates/cloudflare-worker-route-data.mjs +1069 -0
  255. package/src/workspace-topology.ts +125 -0
  256. package/dist/cjs/templates/cloudflare-worker-fs-promises.mjs +0 -11
  257. package/dist/cjs/templates/cloudflare-worker-loadable-server.mjs +0 -281
  258. package/dist/cjs/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  259. package/dist/cjs/templates/cloudflare-worker-path.mjs +0 -98
  260. package/dist/esm/templates/cloudflare-worker-fs-promises.mjs +0 -11
  261. package/dist/esm/templates/cloudflare-worker-loadable-server.mjs +0 -281
  262. package/dist/esm/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  263. package/dist/esm/templates/cloudflare-worker-path.mjs +0 -98
  264. package/dist/esm-node/templates/cloudflare-worker-fs-promises.mjs +0 -11
  265. package/dist/esm-node/templates/cloudflare-worker-loadable-server.mjs +0 -281
  266. package/dist/esm-node/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  267. package/dist/esm-node/templates/cloudflare-worker-path.mjs +0 -98
  268. package/dist/types/templates/cloudflare-worker-fs-promises.d.mts +0 -5
  269. package/dist/types/templates/cloudflare-worker-loadable-server.d.mts +0 -48
  270. package/dist/types/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +0 -13
  271. package/dist/types/templates/cloudflare-worker-path.d.mts +0 -21
  272. package/src/templates/cloudflare-worker-fs-promises.mjs +0 -11
  273. package/src/templates/cloudflare-worker-loadable-server.mjs +0 -281
  274. package/src/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
  275. 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,16 +38,37 @@ 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");
48
51
  const builder_namespaceObject = require("@modern-js/builder");
52
+ const external_jsonc_parser_namespaceObject = require("jsonc-parser");
49
53
  const execute = (0, external_node_util_namespaceObject.promisify)(external_node_child_process_namespaceObject.execFile);
50
54
  const native_type_checker_name = 'UltramodernNativeTypeChecker';
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
+ }
51
72
  const watchDependencyPath = (file)=>{
52
73
  if ('win32' !== process.platform) return file;
53
74
  try {
@@ -56,9 +77,87 @@ const watchDependencyPath = (file)=>{
56
77
  return file;
57
78
  }
58
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
+ }
59
85
  class UltramodernNativeTypeChecker {
60
86
  async check() {
61
- 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
+ }
62
161
  const args = build ? [
63
162
  '--build',
64
163
  configFile,
@@ -76,7 +175,15 @@ class UltramodernNativeTypeChecker {
76
175
  }
77
176
  async run(args) {
78
177
  try {
79
- 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
+ ], {
80
187
  cwd: external_node_path_default().dirname(this.options.configFile),
81
188
  maxBuffer: 16777216
82
189
  });
@@ -84,22 +191,22 @@ class UltramodernNativeTypeChecker {
84
191
  } catch (cause) {
85
192
  const output = cause;
86
193
  const diagnostics = `${output.stdout ?? ''}${output.stderr ?? ''}`;
87
- 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)}`, {
88
195
  cause
89
196
  });
90
197
  }
91
198
  }
92
- async watchInputs() {
199
+ async watchInputs(configFile) {
93
200
  const inputs = new Set();
94
201
  const missing = new Set();
95
202
  const projects = [
96
- this.options.configFile
203
+ configFile
97
204
  ];
98
205
  const visited = new Set();
99
206
  for (const configFile of projects){
100
207
  if (visited.has(configFile)) continue;
101
208
  visited.add(configFile);
102
- inputs.add(configFile);
209
+ if (configFile === this.options.configFile || configFile !== projects[0]) inputs.add(configFile);
103
210
  if (!(0, external_node_fs_namespaceObject.existsSync)(configFile)) {
104
211
  missing.add(configFile);
105
212
  continue;
@@ -137,10 +244,15 @@ class UltramodernNativeTypeChecker {
137
244
  compilation.fileDependencies.add(watched);
138
245
  if (!(0, external_node_fs_namespaceObject.existsSync)(projectConfigFile)) compilation.missingDependencies.add(watched);
139
246
  }
140
- const { inputs, missing } = await this.watchInputs();
141
- for (const file of inputs)compilation.fileDependencies.add(watchDependencyPath(file));
142
- for (const file of missing)compilation.missingDependencies.add(watchDependencyPath(file));
143
- await this.check();
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
+ }
144
256
  } catch (cause) {
145
257
  compilation.errors.push(new Error(cause instanceof Error ? cause.message : String(cause), {
146
258
  cause
@@ -164,15 +276,20 @@ function configureUltramodernTypeChecker(chain, pluginId, resolveCompiler) {
164
276
  {
165
277
  build: true === typescript.build,
166
278
  compiler: ()=>resolveCompiler(configFile),
167
- configFile
279
+ configFile,
280
+ configOverwrite: typescript.configOverwrite
168
281
  }
169
282
  ]);
170
283
  }
171
284
  exports.UltramodernNativeTypeChecker = __webpack_exports__.UltramodernNativeTypeChecker;
172
285
  exports.configureUltramodernTypeChecker = __webpack_exports__.configureUltramodernTypeChecker;
286
+ exports.missingJsxRuntimeHint = __webpack_exports__.missingJsxRuntimeHint;
287
+ exports.resolveNativeTypeCheckerCommand = __webpack_exports__.resolveNativeTypeCheckerCommand;
173
288
  for(var __rspack_i in __webpack_exports__)if (-1 === [
174
289
  "UltramodernNativeTypeChecker",
175
- "configureUltramodernTypeChecker"
290
+ "configureUltramodernTypeChecker",
291
+ "missingJsxRuntimeHint",
292
+ "resolveNativeTypeCheckerCommand"
176
293
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
177
294
  Object.defineProperty(exports, '__esModule', {
178
295
  value: true
@@ -35,6 +35,7 @@ __webpack_require__.d(__webpack_exports__, {
35
35
  RENDERER_EXTENSIONS_PACKAGE: ()=>RENDERER_EXTENSIONS_PACKAGE,
36
36
  RENDERER_EXTENSIONS_PLUGIN_NAME: ()=>RENDERER_EXTENSIONS_PLUGIN_NAME,
37
37
  SERVER_EXTENSIONS_PLUGIN_NAME: ()=>SERVER_EXTENSIONS_PLUGIN_NAME,
38
+ ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME: ()=>ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME,
38
39
  applyPolicyDefaults: ()=>applyPolicyDefaults,
39
40
  createPolicyDefaultsPlugin: ()=>createPolicyDefaultsPlugin
40
41
  });
@@ -42,50 +43,57 @@ const external_runtime_package_resolution_js_namespaceObject = require("./runtim
42
43
  const RENDERER_EXTENSIONS_PACKAGE = '@modern-js/runtime-renderer-extensions';
43
44
  const RENDERER_EXTENSIONS_PLUGIN_NAME = 'rendererHead';
44
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';
45
47
  const POLICY_DEFAULTS_PLUGIN_NAME = '@modern-js/ultramodern-policy-defaults';
46
- const applyPolicyDefaults = (api, options = {})=>{
47
- if (false !== options.rendererExtensions) {
48
- api._internalRuntimePlugins(({ entrypoint, plugins })=>{
49
- if (!plugins.some((plugin)=>plugin.path === RENDERER_EXTENSIONS_PACKAGE)) plugins.push({
50
- name: RENDERER_EXTENSIONS_PLUGIN_NAME,
51
- path: RENDERER_EXTENSIONS_PACKAGE,
52
- config: {}
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
53
79
  });
54
80
  return {
55
- entrypoint,
56
81
  plugins
57
82
  };
58
83
  });
59
- const moduleDirectories = (0, external_runtime_package_resolution_js_namespaceObject.collectRuntimePackageModuleDirectories)([
60
- RENDERER_EXTENSIONS_PACKAGE
61
- ], __rslib_import_meta_url__);
62
- if (moduleDirectories.length > 0) api.modifyResolvedConfig((config)=>({
63
- ...config,
64
- builderPlugins: [
65
- ...config.builderPlugins ?? [],
66
- (0, external_runtime_package_resolution_js_namespaceObject.createRuntimePackageResolutionPlugin)(moduleDirectories)
67
- ]
68
- }));
69
84
  }
70
- if (false !== options.serverExtensions) api._internalServerPlugins(({ plugins })=>{
71
- if (!plugins.some((plugin)=>plugin.name === SERVER_EXTENSIONS_PLUGIN_NAME)) plugins.push({
72
- name: SERVER_EXTENSIONS_PLUGIN_NAME
73
- });
74
- return {
75
- plugins
76
- };
77
- });
78
85
  };
79
- const createPolicyDefaultsPlugin = (options = {})=>({
80
- name: POLICY_DEFAULTS_PLUGIN_NAME,
86
+ const createPolicyDefaultsPlugin = (options = {}, composition = {})=>({
87
+ name: composition.pluginName ?? POLICY_DEFAULTS_PLUGIN_NAME,
81
88
  setup (api) {
82
- applyPolicyDefaults(api, options);
89
+ applyPolicyDefaults(api, options, composition);
83
90
  }
84
91
  });
85
92
  exports.POLICY_DEFAULTS_PLUGIN_NAME = __webpack_exports__.POLICY_DEFAULTS_PLUGIN_NAME;
86
93
  exports.RENDERER_EXTENSIONS_PACKAGE = __webpack_exports__.RENDERER_EXTENSIONS_PACKAGE;
87
94
  exports.RENDERER_EXTENSIONS_PLUGIN_NAME = __webpack_exports__.RENDERER_EXTENSIONS_PLUGIN_NAME;
88
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;
89
97
  exports.applyPolicyDefaults = __webpack_exports__.applyPolicyDefaults;
90
98
  exports.createPolicyDefaultsPlugin = __webpack_exports__.createPolicyDefaultsPlugin;
91
99
  for(var __rspack_i in __webpack_exports__)if (-1 === [
@@ -93,6 +101,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
93
101
  "RENDERER_EXTENSIONS_PACKAGE",
94
102
  "RENDERER_EXTENSIONS_PLUGIN_NAME",
95
103
  "SERVER_EXTENSIONS_PLUGIN_NAME",
104
+ "ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME",
96
105
  "applyPolicyDefaults",
97
106
  "createPolicyDefaultsPlugin"
98
107
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
@@ -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
+ });