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