@bleedingdev/modern-js-app-tools-extensions 3.9.0-ultramodern.9 → 3.9.3-ultramodern.10

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 +30 -165
  6. package/dist/cjs/build-config/internal-effect-discovery.js +231 -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 +180 -17
  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 +9 -6
  46. package/dist/cjs/renderer-build-identity.js +144 -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 +547 -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 +31 -163
  58. package/dist/esm/build-config/internal-effect-discovery.mjs +187 -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 +175 -18
  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 +9 -6
  98. package/dist/esm/renderer-build-identity.mjs +92 -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 +547 -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 +31 -163
  110. package/dist/esm-node/build-config/internal-effect-discovery.mjs +188 -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 +175 -18
  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 +9 -6
  150. package/dist/esm-node/renderer-build-identity.mjs +93 -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 +547 -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 +4 -10
  163. package/dist/types/build-config/internal-effect-discovery.d.ts +6 -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 +20 -4
  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 +102 -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 +28 -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 +13 -2
  199. package/dist/types/renderer-build-identity.d.ts +41 -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 +69 -293
  208. package/src/build-config/internal-effect-discovery.ts +458 -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 +115 -13
  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 +105 -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 +284 -27
  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 +30 -4
  248. package/src/renderer-build-identity.ts +208 -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 +547 -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,67 @@ 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");
48
+ const external_node_module_namespaceObject = require("node:module");
45
49
  const external_node_path_namespaceObject = require("node:path");
46
50
  var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
47
51
  const external_node_util_namespaceObject = require("node:util");
48
52
  const builder_namespaceObject = require("@modern-js/builder");
53
+ const external_jsonc_parser_namespaceObject = require("jsonc-parser");
54
+ const build_environment_js_namespaceObject = require("./build-config/build-environment.js");
49
55
  const execute = (0, external_node_util_namespaceObject.promisify)(external_node_child_process_namespaceObject.execFile);
50
56
  const native_type_checker_name = 'UltramodernNativeTypeChecker';
57
+ function resolveNativeTypeCheckerCommand(from) {
58
+ const executable = (0, build_environment_js_namespaceObject.resolveEffectTsgoCompiler)({
59
+ from
60
+ });
61
+ const version = (0, external_node_child_process_namespaceObject.execFileSync)(executable, [
62
+ '--version'
63
+ ], {
64
+ encoding: 'utf8',
65
+ env: {
66
+ ...process.env,
67
+ TSRS_CHECKER_ASSIGNMENT: process.env.TSRS_CHECKER_ASSIGNMENT || 'go'
68
+ },
69
+ timeout: 10000
70
+ });
71
+ if (version.includes('(tsrs ')) return {
72
+ executable,
73
+ args: [],
74
+ configApi: (0, external_node_module_namespaceObject.createRequire)(from).resolve('tsrs/sync')
75
+ };
76
+ return {
77
+ executable,
78
+ args: []
79
+ };
80
+ }
81
+ const inspectNativeConfig = `
82
+ import { pathToFileURL } from 'node:url';
83
+ const [modulePath, compiler, configFile] = process.argv.slice(1);
84
+ const { API, formatDiagnostics } = await import(pathToFileURL(modulePath).href);
85
+ const api = new API({ tsserverPath: compiler });
86
+ try {
87
+ const config = api.parseConfigFile(configFile);
88
+ if (config.errors.length) {
89
+ process.stdout.write(formatDiagnostics(config.errors, api));
90
+ process.exitCode = 1;
91
+ } else {
92
+ process.stdout.write(JSON.stringify({
93
+ compilerOptions: config.options,
94
+ files: config.fileNames,
95
+ references: config.projectReferences,
96
+ }));
97
+ }
98
+ } finally {
99
+ api.close();
100
+ }
101
+ `;
51
102
  const watchDependencyPath = (file)=>{
52
103
  if ('win32' !== process.platform) return file;
53
104
  try {
@@ -56,9 +107,87 @@ const watchDependencyPath = (file)=>{
56
107
  return file;
57
108
  }
58
109
  };
110
+ function missingJsxRuntimeHint(diagnostics) {
111
+ const source = /error TS2875: This JSX tag requires the module path '(.+?)\/jsx-(?:dev-)?runtime'/u.exec(diagnostics)?.[1];
112
+ if (!source) return '';
113
+ 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`;
114
+ }
59
115
  class UltramodernNativeTypeChecker {
60
116
  async check() {
61
- const { configFile, build } = this.options;
117
+ const configFile = await this.projectConfigFile();
118
+ try {
119
+ await this.checkProject(configFile);
120
+ } finally{
121
+ this.removeProjection(configFile);
122
+ }
123
+ }
124
+ async projectConfigFile() {
125
+ const { configFile, configOverwrite } = this.options;
126
+ if (!configOverwrite) return configFile;
127
+ const errors = [];
128
+ const source = (0, external_node_fs_namespaceObject.readFileSync)(configFile, 'utf8');
129
+ const project = (0, external_jsonc_parser_namespaceObject.parse)(0xfeff === source.charCodeAt(0) ? source.slice(1) : source, errors, {
130
+ allowTrailingComma: true
131
+ });
132
+ 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(', ')}`);
133
+ if (!project || 'object' != typeof project || Array.isArray(project)) throw new Error(`${native_type_checker_name} requires a JSONC object in ${configFile}.`);
134
+ const projectedConfig = {
135
+ ...project,
136
+ ...configOverwrite,
137
+ compilerOptions: {
138
+ ...project.compilerOptions,
139
+ ...configOverwrite.compilerOptions
140
+ }
141
+ };
142
+ const projected = external_node_path_default().join(external_node_path_default().dirname(configFile), `.ultramodern-native-checker.${(0, external_node_crypto_namespaceObject.randomUUID)()}.json`);
143
+ (0, external_node_fs_namespaceObject.writeFileSync)(projected, `${JSON.stringify(projectedConfig, null, 2)}\n`, {
144
+ flag: 'wx'
145
+ });
146
+ try {
147
+ const resolved = JSON.parse(await this.run([
148
+ '--showConfig',
149
+ '--project',
150
+ projected
151
+ ]));
152
+ const options = resolved.compilerOptions ?? {};
153
+ if ((this.options.build || true === options.incremental || true === options.composite) && !options.tsBuildInfoFile) {
154
+ const original = configFile.slice(0, configFile.length - external_node_path_default().extname(configFile).length);
155
+ let buildInfo = original;
156
+ if ('string' == typeof options.outDir) {
157
+ const outDir = external_node_path_default().resolve(external_node_path_default().dirname(configFile), options.outDir);
158
+ 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));
159
+ }
160
+ projectedConfig.compilerOptions = {
161
+ ...projectedConfig.compilerOptions,
162
+ tsBuildInfoFile: `${buildInfo}.tsbuildinfo`
163
+ };
164
+ (0, external_node_fs_namespaceObject.writeFileSync)(projected, `${JSON.stringify(projectedConfig, null, 2)}\n`);
165
+ }
166
+ return projected;
167
+ } catch (error) {
168
+ (0, external_node_fs_namespaceObject.unlinkSync)(projected);
169
+ throw error;
170
+ }
171
+ }
172
+ removeProjection(configFile) {
173
+ if (configFile !== this.options.configFile) (0, external_node_fs_namespaceObject.unlinkSync)(configFile);
174
+ }
175
+ async checkProject(configFile) {
176
+ const { build } = this.options;
177
+ if (!build) {
178
+ const config = JSON.parse(await this.run([
179
+ '--showConfig',
180
+ '--project',
181
+ configFile
182
+ ]));
183
+ if (config.references?.length) await this.run([
184
+ '--build',
185
+ ...config.references.map((reference)=>external_node_path_default().resolve(external_node_path_default().dirname(configFile), reference.path)),
186
+ '--stopBuildOnErrors',
187
+ '--pretty',
188
+ 'false'
189
+ ]);
190
+ }
62
191
  const args = build ? [
63
192
  '--build',
64
193
  configFile,
@@ -76,30 +205,56 @@ class UltramodernNativeTypeChecker {
76
205
  }
77
206
  async run(args) {
78
207
  try {
79
- const result = await execute(this.options.compiler(), args, {
208
+ const selected = this.options.compiler();
209
+ const command = 'string' == typeof selected ? {
210
+ executable: selected,
211
+ args: []
212
+ } : selected;
213
+ const inspect = '--showConfig' === args[0] && command.configApi;
214
+ const result = await execute(inspect ? process.execPath : command.executable, inspect ? [
215
+ '--input-type=module',
216
+ '--eval',
217
+ inspectNativeConfig,
218
+ command.configApi,
219
+ command.executable,
220
+ args[args.indexOf('--project') + 1]
221
+ ] : [
222
+ ...command.args,
223
+ ...args
224
+ ], {
80
225
  cwd: external_node_path_default().dirname(this.options.configFile),
81
- maxBuffer: 16777216
226
+ env: {
227
+ ...process.env,
228
+ TSRS_CHECKER_ASSIGNMENT: process.env.TSRS_CHECKER_ASSIGNMENT || 'go'
229
+ },
230
+ maxBuffer: 16777216,
231
+ ...inspect ? {
232
+ timeout: 10000
233
+ } : {}
82
234
  });
83
235
  return result.stdout;
84
236
  } catch (cause) {
85
237
  const output = cause;
86
238
  const diagnostics = `${output.stdout ?? ''}${output.stderr ?? ''}`;
87
- throw new Error(`${native_type_checker_name} failed:\n${diagnostics || (cause instanceof Error ? cause.message : String(cause))}`, {
239
+ throw Object.assign(new Error(`${native_type_checker_name} failed:\n${diagnostics || (cause instanceof Error ? cause.message : String(cause))}${missingJsxRuntimeHint(diagnostics)}`, {
88
240
  cause
241
+ }), {
242
+ code: output.code,
243
+ signal: output.signal
89
244
  });
90
245
  }
91
246
  }
92
- async watchInputs() {
247
+ async watchInputs(configFile) {
93
248
  const inputs = new Set();
94
249
  const missing = new Set();
95
250
  const projects = [
96
- this.options.configFile
251
+ configFile
97
252
  ];
98
253
  const visited = new Set();
99
254
  for (const configFile of projects){
100
255
  if (visited.has(configFile)) continue;
101
256
  visited.add(configFile);
102
- inputs.add(configFile);
257
+ if (configFile === this.options.configFile || configFile !== projects[0]) inputs.add(configFile);
103
258
  if (!(0, external_node_fs_namespaceObject.existsSync)(configFile)) {
104
259
  missing.add(configFile);
105
260
  continue;
@@ -137,14 +292,17 @@ class UltramodernNativeTypeChecker {
137
292
  compilation.fileDependencies.add(watched);
138
293
  if (!(0, external_node_fs_namespaceObject.existsSync)(projectConfigFile)) compilation.missingDependencies.add(watched);
139
294
  }
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();
295
+ const configFile = await this.projectConfigFile();
296
+ try {
297
+ const { inputs, missing } = await this.watchInputs(configFile);
298
+ for (const file of inputs)compilation.fileDependencies.add(watchDependencyPath(file));
299
+ for (const file of missing)compilation.missingDependencies.add(watchDependencyPath(file));
300
+ await this.checkProject(configFile);
301
+ } finally{
302
+ this.removeProjection(configFile);
303
+ }
144
304
  } catch (cause) {
145
- compilation.errors.push(new Error(cause instanceof Error ? cause.message : String(cause), {
146
- cause
147
- }));
305
+ compilation.errors.push(cause instanceof Error ? cause : new Error(String(cause)));
148
306
  }
149
307
  });
150
308
  });
@@ -164,15 +322,20 @@ function configureUltramodernTypeChecker(chain, pluginId, resolveCompiler) {
164
322
  {
165
323
  build: true === typescript.build,
166
324
  compiler: ()=>resolveCompiler(configFile),
167
- configFile
325
+ configFile,
326
+ configOverwrite: typescript.configOverwrite
168
327
  }
169
328
  ]);
170
329
  }
171
330
  exports.UltramodernNativeTypeChecker = __webpack_exports__.UltramodernNativeTypeChecker;
172
331
  exports.configureUltramodernTypeChecker = __webpack_exports__.configureUltramodernTypeChecker;
332
+ exports.missingJsxRuntimeHint = __webpack_exports__.missingJsxRuntimeHint;
333
+ exports.resolveNativeTypeCheckerCommand = __webpack_exports__.resolveNativeTypeCheckerCommand;
173
334
  for(var __rspack_i in __webpack_exports__)if (-1 === [
174
335
  "UltramodernNativeTypeChecker",
175
- "configureUltramodernTypeChecker"
336
+ "configureUltramodernTypeChecker",
337
+ "missingJsxRuntimeHint",
338
+ "resolveNativeTypeCheckerCommand"
176
339
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
177
340
  Object.defineProperty(exports, '__esModule', {
178
341
  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
+ });