@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.
- 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 +30 -165
- package/dist/cjs/build-config/internal-effect-discovery.js +231 -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 +180 -17
- package/dist/cjs/policy-defaults.js +38 -29
- 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 +9 -6
- package/dist/cjs/renderer-build-identity.js +144 -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 +547 -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 +31 -163
- package/dist/esm/build-config/internal-effect-discovery.mjs +187 -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 +175 -18
- package/dist/esm/policy-defaults.mjs +36 -30
- 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 +9 -6
- package/dist/esm/renderer-build-identity.mjs +92 -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 +547 -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 +31 -163
- package/dist/esm-node/build-config/internal-effect-discovery.mjs +188 -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 +175 -18
- package/dist/esm-node/policy-defaults.mjs +36 -30
- 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 +9 -6
- package/dist/esm-node/renderer-build-identity.mjs +93 -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 +547 -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 +4 -10
- package/dist/types/build-config/internal-effect-discovery.d.ts +6 -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 +20 -4
- 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 +102 -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 +28 -3
- package/dist/types/policy-defaults.d.ts +12 -2
- 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 +13 -2
- package/dist/types/renderer-build-identity.d.ts +41 -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 +87 -27
- 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 +69 -293
- package/src/build-config/internal-effect-discovery.ts +458 -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 +115 -13
- 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 +105 -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 +284 -27
- package/src/policy-defaults.ts +47 -17
- 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 +30 -4
- package/src/renderer-build-identity.ts +208 -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 +547 -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
|
@@ -29,153 +29,33 @@ var __webpack_exports__ = {};
|
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
31
|
getBuildConfigEnvironment: ()=>getBuildConfigEnvironment,
|
|
32
|
-
resolveEffectTsgoCompiler: ()=>resolveEffectTsgoCompiler
|
|
33
|
-
withBuildConfigEnvironment: ()=>withBuildConfigEnvironment
|
|
32
|
+
resolveEffectTsgoCompiler: ()=>resolveEffectTsgoCompiler
|
|
34
33
|
});
|
|
35
|
-
const external_node_child_process_namespaceObject = require("node:child_process");
|
|
36
34
|
const external_node_crypto_namespaceObject = require("node:crypto");
|
|
37
35
|
const external_node_fs_namespaceObject = require("node:fs");
|
|
38
36
|
const external_node_module_namespaceObject = require("node:module");
|
|
39
37
|
const external_node_os_namespaceObject = require("node:os");
|
|
40
38
|
const external_node_path_namespaceObject = require("node:path");
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
const
|
|
39
|
+
const external_node_url_namespaceObject = require("node:url");
|
|
40
|
+
const owningModuleUrl = (0, external_node_url_namespaceObject.pathToFileURL)(__filename).href;
|
|
41
|
+
const owningManifest = (0, external_node_module_namespaceObject.findPackageJSON)(owningModuleUrl, owningModuleUrl);
|
|
42
|
+
if (!owningManifest) throw new Error('Cannot find owning build-config package manifest');
|
|
43
|
+
const owningName = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(owningManifest, 'utf8')).name;
|
|
44
|
+
if ('string' != typeof owningName || 0 === owningName.length) throw new Error(`Invalid owning build-config package name: ${owningManifest}`);
|
|
45
|
+
const { effectCompilerDiscoveryFailureStage, resolveInstalledEffectCompiler, validateConfiguredEffectCompiler } = (0, external_node_module_namespaceObject.createRequire)(owningModuleUrl)(`${owningName}/internal-effect-discovery`);
|
|
46
|
+
const EFFECT_TSGO_RESOLUTION_ERROR = 'Unable to resolve the Effect TS-Go compiler. Install "@effect/tsgo" and a native TypeScript backend for this build config, or set EFFECT_TSGO_BIN. Bundled tsrs requires matching installed tsrs metadata.';
|
|
44
47
|
const executableEffectTsgoCompilers = new Map();
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
'run',
|
|
50
|
-
'watchRun',
|
|
51
|
-
'afterDone',
|
|
52
|
-
'failed',
|
|
53
|
-
'shutdown',
|
|
54
|
-
'watchClose'
|
|
55
|
-
];
|
|
56
|
-
function restoreEnvironment(name, value) {
|
|
57
|
-
if (void 0 === value) delete process.env[name];
|
|
58
|
-
else process.env[name] = value;
|
|
59
|
-
}
|
|
60
|
-
function createEnvironmentLeaseRegistry() {
|
|
61
|
-
const environmentLeases = new Map();
|
|
62
|
-
return Object.freeze({
|
|
63
|
-
acquire (name, value) {
|
|
64
|
-
let lease = environmentLeases.get(name);
|
|
65
|
-
if (lease) {
|
|
66
|
-
if (lease.value !== value) throw new Error(`Build config environment "${name}" already has an active lease for a different value.`);
|
|
67
|
-
if (process.env[name] !== lease.value) throw new Error(`Build config environment lease for "${name}" lost ownership before another lease was acquired.`);
|
|
68
|
-
} else {
|
|
69
|
-
lease = {
|
|
70
|
-
originalValue: process.env[name],
|
|
71
|
-
owners: new Set(),
|
|
72
|
-
value
|
|
73
|
-
};
|
|
74
|
-
process.env[name] = value;
|
|
75
|
-
environmentLeases.set(name, lease);
|
|
76
|
-
}
|
|
77
|
-
const owner = Symbol(name);
|
|
78
|
-
lease.owners.add(owner);
|
|
79
|
-
let released = false;
|
|
80
|
-
return ()=>{
|
|
81
|
-
if (released) return;
|
|
82
|
-
if (environmentLeases.get(name) !== lease || !lease.owners.has(owner)) throw new Error(`Build config environment lease for "${name}" cannot be restored because its ownership record was lost.`);
|
|
83
|
-
released = true;
|
|
84
|
-
const lostOwnership = process.env[name] !== lease.value;
|
|
85
|
-
lease.owners.delete(owner);
|
|
86
|
-
if (0 === lease.owners.size) {
|
|
87
|
-
environmentLeases.delete(name);
|
|
88
|
-
restoreEnvironment(name, lease.originalValue);
|
|
89
|
-
} else if (lostOwnership) process.env[name] = lease.value;
|
|
90
|
-
if (lostOwnership) throw new Error(`Build config environment lease for "${name}" lost ownership before restoration.`);
|
|
91
|
-
};
|
|
92
|
-
},
|
|
93
|
-
brand: ENVIRONMENT_LEASE_REGISTRY_BRAND
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
function getEnvironmentLeaseRegistry() {
|
|
97
|
-
const descriptor = Object.getOwnPropertyDescriptor(process, ENVIRONMENT_LEASE_REGISTRY_KEY);
|
|
98
|
-
if (descriptor) {
|
|
99
|
-
const registry = descriptor.value;
|
|
100
|
-
if (descriptor.configurable || descriptor.enumerable || descriptor.writable || registry?.brand !== ENVIRONMENT_LEASE_REGISTRY_BRAND || 'function' != typeof registry.acquire) throw new Error('The process-global build config environment lease registry is occupied by an incompatible value.');
|
|
101
|
-
return registry;
|
|
102
|
-
}
|
|
103
|
-
const registry = createEnvironmentLeaseRegistry();
|
|
104
|
-
Object.defineProperty(process, ENVIRONMENT_LEASE_REGISTRY_KEY, {
|
|
105
|
-
configurable: false,
|
|
106
|
-
enumerable: false,
|
|
107
|
-
value: registry,
|
|
108
|
-
writable: false
|
|
48
|
+
function effectTsgoResolutionError(cause, stage, from) {
|
|
49
|
+
const detail = cause instanceof Error ? `${cause.name}: ${cause.message}` : String(cause);
|
|
50
|
+
return new Error(`${EFFECT_TSGO_RESOLUTION_ERROR}\n${stage} failed for ${String(from)}: ${detail}`, {
|
|
51
|
+
cause
|
|
109
52
|
});
|
|
110
|
-
return registry;
|
|
111
|
-
}
|
|
112
|
-
function acquireEnvironmentLease(name, value) {
|
|
113
|
-
return getEnvironmentLeaseRegistry().acquire(name, value);
|
|
114
|
-
}
|
|
115
|
-
function releaseAfterFailure(release, originalError) {
|
|
116
|
-
try {
|
|
117
|
-
release();
|
|
118
|
-
} catch (restorationError) {
|
|
119
|
-
throw new AggregateError([
|
|
120
|
-
originalError,
|
|
121
|
-
restorationError
|
|
122
|
-
], 'Build config environment setup and restoration both failed.');
|
|
123
|
-
}
|
|
124
|
-
throw originalError;
|
|
125
|
-
}
|
|
126
|
-
class BuildConfigEnvironmentLeasePlugin {
|
|
127
|
-
apply(compiler) {
|
|
128
|
-
const hooks = compiler.hooks;
|
|
129
|
-
try {
|
|
130
|
-
const lifecycleHooks = {};
|
|
131
|
-
for (const hookName of LIFECYCLE_HOOK_NAMES){
|
|
132
|
-
const hook = hooks[hookName];
|
|
133
|
-
if (!hook || 'function' != typeof hook.tap) throw new Error(`Rspack does not expose the "${hookName}" lifecycle hook required to restore build config environment leases.`);
|
|
134
|
-
lifecycleHooks[hookName] = hook;
|
|
135
|
-
}
|
|
136
|
-
let mode = 'pending';
|
|
137
|
-
const modeTap = {
|
|
138
|
-
name: BUILD_CONFIG_ENVIRONMENT_PLUGIN,
|
|
139
|
-
stage: Number.MIN_SAFE_INTEGER
|
|
140
|
-
};
|
|
141
|
-
const releaseTap = {
|
|
142
|
-
name: BUILD_CONFIG_ENVIRONMENT_PLUGIN,
|
|
143
|
-
stage: Number.MAX_SAFE_INTEGER
|
|
144
|
-
};
|
|
145
|
-
const releaseAfterOneShot = ()=>{
|
|
146
|
-
if ('watch' !== mode && true !== compiler.watchMode) this.release();
|
|
147
|
-
};
|
|
148
|
-
lifecycleHooks.run.tap(modeTap, ()=>{
|
|
149
|
-
mode = 'run';
|
|
150
|
-
});
|
|
151
|
-
lifecycleHooks.watchRun.tap(modeTap, ()=>{
|
|
152
|
-
mode = 'watch';
|
|
153
|
-
});
|
|
154
|
-
lifecycleHooks.afterDone.tap(releaseTap, releaseAfterOneShot);
|
|
155
|
-
lifecycleHooks.failed.tap(releaseTap, releaseAfterOneShot);
|
|
156
|
-
lifecycleHooks.shutdown.tap(releaseTap, this.release);
|
|
157
|
-
lifecycleHooks.watchClose.tap(releaseTap, this.release);
|
|
158
|
-
} catch (error) {
|
|
159
|
-
releaseAfterFailure(this.release, error);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
constructor(release){
|
|
163
|
-
this.release = release;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
function resolveEffectTsgoCli(from) {
|
|
167
|
-
const projectRequire = (0, external_node_module_namespaceObject.createRequire)(from);
|
|
168
|
-
const packageJsonPath = projectRequire.resolve(`${EFFECT_TSGO_PACKAGE}/package.json`);
|
|
169
|
-
const packageJson = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(packageJsonPath, 'utf-8'));
|
|
170
|
-
const bin = 'string' == typeof packageJson.bin ? packageJson.bin : packageJson.bin?.[EFFECT_TSGO_BIN];
|
|
171
|
-
if (!bin) throw new Error(EFFECT_TSGO_RESOLUTION_ERROR);
|
|
172
|
-
return (0, external_node_path_namespaceObject.resolve)((0, external_node_path_namespaceObject.dirname)(packageJsonPath), bin);
|
|
173
53
|
}
|
|
174
54
|
function resolveExecutableEffectTsgoCompiler(compilerPath) {
|
|
175
|
-
if ('win32' === process.platform) return compilerPath;
|
|
176
55
|
const sourcePath = (0, external_node_fs_namespaceObject.realpathSync)(compilerPath);
|
|
177
56
|
const source = (0, external_node_fs_namespaceObject.lstatSync)(sourcePath);
|
|
178
|
-
if (!source.isFile()) throw new Error(
|
|
57
|
+
if (!source.isFile() || 0 === source.size) throw new Error(`Effect TS-Go compiler path is not a nonempty regular file: ${sourcePath}`);
|
|
58
|
+
if ('win32' === process.platform) return compilerPath;
|
|
179
59
|
try {
|
|
180
60
|
(0, external_node_fs_namespaceObject.accessSync)(sourcePath, external_node_fs_namespaceObject.constants.X_OK);
|
|
181
61
|
return compilerPath;
|
|
@@ -222,46 +102,31 @@ function resolveExecutableEffectTsgoCompiler(compilerPath) {
|
|
|
222
102
|
function getBuildConfigEnvironment(name) {
|
|
223
103
|
return process.env[name];
|
|
224
104
|
}
|
|
225
|
-
function withBuildConfigEnvironment(name, value, setup) {
|
|
226
|
-
return async (config, ...args)=>{
|
|
227
|
-
const release = acquireEnvironmentLease(name, value);
|
|
228
|
-
try {
|
|
229
|
-
const configured = await setup(config, ...args) ?? config;
|
|
230
|
-
configured.plugins = [
|
|
231
|
-
...configured.plugins ?? [],
|
|
232
|
-
new BuildConfigEnvironmentLeasePlugin(release)
|
|
233
|
-
];
|
|
234
|
-
return configured;
|
|
235
|
-
} catch (error) {
|
|
236
|
-
releaseAfterFailure(release, error);
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
105
|
function resolveEffectTsgoCompiler(options) {
|
|
241
106
|
const configuredCompiler = getBuildConfigEnvironment('EFFECT_TSGO_BIN')?.trim();
|
|
242
107
|
if (configuredCompiler) try {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
108
|
+
const compiler = resolveExecutableEffectTsgoCompiler(configuredCompiler);
|
|
109
|
+
validateConfiguredEffectCompiler(compiler, options.from);
|
|
110
|
+
return compiler;
|
|
111
|
+
} catch (cause) {
|
|
112
|
+
throw effectTsgoResolutionError(cause, 'Configured compiler validation', options.from);
|
|
246
113
|
}
|
|
114
|
+
let stage = 'Package CLI resolution';
|
|
247
115
|
try {
|
|
248
|
-
const compiler = (
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
}
|
|
256
|
-
throw new Error(EFFECT_TSGO_RESOLUTION_ERROR);
|
|
116
|
+
const compiler = resolveInstalledEffectCompiler(options.from).trim();
|
|
117
|
+
stage = 'Compiler backend lookup';
|
|
118
|
+
if (!compiler) throw new Error('Effect TS-Go discovery returned an empty compiler path');
|
|
119
|
+
stage = 'Compiler executable validation';
|
|
120
|
+
return resolveExecutableEffectTsgoCompiler(compiler);
|
|
121
|
+
} catch (cause) {
|
|
122
|
+
throw effectTsgoResolutionError(cause, effectCompilerDiscoveryFailureStage(cause) ?? stage, options.from);
|
|
123
|
+
}
|
|
257
124
|
}
|
|
258
125
|
exports.getBuildConfigEnvironment = __webpack_exports__.getBuildConfigEnvironment;
|
|
259
126
|
exports.resolveEffectTsgoCompiler = __webpack_exports__.resolveEffectTsgoCompiler;
|
|
260
|
-
exports.withBuildConfigEnvironment = __webpack_exports__.withBuildConfigEnvironment;
|
|
261
127
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
262
128
|
"getBuildConfigEnvironment",
|
|
263
|
-
"resolveEffectTsgoCompiler"
|
|
264
|
-
"withBuildConfigEnvironment"
|
|
129
|
+
"resolveEffectTsgoCompiler"
|
|
265
130
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
266
131
|
Object.defineProperty(exports, '__esModule', {
|
|
267
132
|
value: true
|
|
@@ -0,0 +1,231 @@
|
|
|
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
|
+
effectCompilerDiscoveryFailureStage: ()=>effectCompilerDiscoveryFailureStage,
|
|
32
|
+
resolveInstalledEffectCompiler: ()=>resolveInstalledEffectCompiler,
|
|
33
|
+
validateConfiguredEffectCompiler: ()=>validateConfiguredEffectCompiler
|
|
34
|
+
});
|
|
35
|
+
const external_node_child_process_namespaceObject = require("node:child_process");
|
|
36
|
+
const external_node_fs_namespaceObject = require("node:fs");
|
|
37
|
+
const external_node_module_namespaceObject = require("node:module");
|
|
38
|
+
const external_node_path_namespaceObject = require("node:path");
|
|
39
|
+
const external_node_url_namespaceObject = require("node:url");
|
|
40
|
+
const EFFECT_TSGO_PACKAGE = '@effect/tsgo';
|
|
41
|
+
const EFFECT_TSGO_BIN = 'effect-tsgo';
|
|
42
|
+
const NATIVE_TYPESCRIPT_PACKAGES = [
|
|
43
|
+
"typescript",
|
|
44
|
+
"@typescript/native"
|
|
45
|
+
];
|
|
46
|
+
const EFFECT_TSRS_PROVIDER_VERSION = '0.59.0';
|
|
47
|
+
const EFFECT_TSRS_TARGETS = new Set([
|
|
48
|
+
'@tsrs/darwin-arm64',
|
|
49
|
+
'@tsrs/linux-x64-gnu',
|
|
50
|
+
'@tsrs/linux-arm64-gnu'
|
|
51
|
+
]);
|
|
52
|
+
const failureStages = new WeakMap();
|
|
53
|
+
const reportedUnsupportedTsrsTargets = new Set();
|
|
54
|
+
function effectCompilerDiscoveryFailureStage(error) {
|
|
55
|
+
return error && 'object' == typeof error ? failureStages.get(error) : void 0;
|
|
56
|
+
}
|
|
57
|
+
function resolveEffectTsgoPackage(from) {
|
|
58
|
+
const projectRequire = (0, external_node_module_namespaceObject.createRequire)(from);
|
|
59
|
+
const packageJsonPath = projectRequire.resolve(`${EFFECT_TSGO_PACKAGE}/package.json`);
|
|
60
|
+
const packageJson = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(packageJsonPath, 'utf-8'));
|
|
61
|
+
const bin = 'string' == typeof packageJson.bin ? packageJson.bin : packageJson.bin?.[EFFECT_TSGO_BIN];
|
|
62
|
+
if (!bin) throw new Error(`Resolved ${EFFECT_TSGO_PACKAGE} package has no ${EFFECT_TSGO_BIN} bin: ${packageJsonPath}`);
|
|
63
|
+
const cliPath = (0, external_node_fs_namespaceObject.realpathSync)((0, external_node_path_namespaceObject.resolve)((0, external_node_path_namespaceObject.dirname)(packageJsonPath), bin));
|
|
64
|
+
if (!(0, external_node_fs_namespaceObject.lstatSync)(cliPath).isFile()) throw new Error(`Effect TS-Go CLI is not a regular file: ${cliPath}`);
|
|
65
|
+
return {
|
|
66
|
+
packageJsonPath,
|
|
67
|
+
packageJson,
|
|
68
|
+
cliPath
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function isAbsentPackage(projectRequire, from, packageName, error) {
|
|
72
|
+
const filename = 'string' != typeof from || from.startsWith('file:') ? (0, external_node_url_namespaceObject.fileURLToPath)(from) : from;
|
|
73
|
+
if (!(error instanceof Error) || !('code' in error) || 'MODULE_NOT_FOUND' !== error.code || 'path' in error && void 0 !== error.path || error.message.split('\n')[0] !== `Cannot find module '${packageName}/package.json'` || !('requireStack' in error) || !Array.isArray(error.requireStack) || error.requireStack[0] !== filename) return false;
|
|
74
|
+
for (const searchDirectory of projectRequire.resolve.paths(packageName) ?? [])try {
|
|
75
|
+
(0, external_node_fs_namespaceObject.lstatSync)((0, external_node_path_namespaceObject.join)(searchDirectory, packageName));
|
|
76
|
+
return false;
|
|
77
|
+
} catch (presenceError) {
|
|
78
|
+
if (!(presenceError instanceof Error) || !('code' in presenceError) || ![
|
|
79
|
+
'ENOENT',
|
|
80
|
+
'ENOTDIR'
|
|
81
|
+
].includes(String(presenceError.code))) throw presenceError;
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
function resolveNativeTypeScriptPackage(from) {
|
|
86
|
+
const projectRequire = (0, external_node_module_namespaceObject.createRequire)(from);
|
|
87
|
+
for (const packageName of NATIVE_TYPESCRIPT_PACKAGES){
|
|
88
|
+
let packageJsonPath;
|
|
89
|
+
try {
|
|
90
|
+
packageJsonPath = projectRequire.resolve(`${packageName}/package.json`);
|
|
91
|
+
} catch (error) {
|
|
92
|
+
if (isAbsentPackage(projectRequire, from, packageName, error)) continue;
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
const packageJson = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(packageJsonPath, 'utf-8'));
|
|
96
|
+
const major = packageJson.version?.match(/^(\d+)\.\d+\.\d+(?:[-+].*)?$/u)?.[1];
|
|
97
|
+
if (!major) throw new Error(`Resolved TypeScript package has no valid version: ${packageJsonPath}`);
|
|
98
|
+
if (Number(major) >= 7) return packageJsonPath;
|
|
99
|
+
}
|
|
100
|
+
throw new Error(`No native TypeScript backend is installed for ${String(from)}. Install typescript >=7 or @typescript/native.`);
|
|
101
|
+
}
|
|
102
|
+
function resolveNativeTypeScriptManifest(from) {
|
|
103
|
+
const packageJsonPath = resolveNativeTypeScriptPackage(from);
|
|
104
|
+
const directory = (0, external_node_path_namespaceObject.dirname)(packageJsonPath);
|
|
105
|
+
const discoveryPackage = resolveNativeTypeScriptPackage((0, external_node_path_namespaceObject.join)(directory, '__ultramodern_effect_backend__.cjs'));
|
|
106
|
+
if ((0, external_node_fs_namespaceObject.realpathSync)(discoveryPackage) !== (0, external_node_fs_namespaceObject.realpathSync)(packageJsonPath)) throw new Error(`Effect discovery would select a different native TypeScript installation from ${directory}: ${discoveryPackage}`);
|
|
107
|
+
return packageJsonPath;
|
|
108
|
+
}
|
|
109
|
+
function readCompilerArtifact(filename) {
|
|
110
|
+
const canonicalPath = (0, external_node_fs_namespaceObject.realpathSync)(filename);
|
|
111
|
+
const stats = (0, external_node_fs_namespaceObject.lstatSync)(canonicalPath);
|
|
112
|
+
if (!stats.isFile()) throw new Error(`Compiler artifact is not a regular file: ${filename}`);
|
|
113
|
+
if (0 === stats.size) throw new Error(`Compiler artifact is empty: ${filename}`);
|
|
114
|
+
return canonicalPath;
|
|
115
|
+
}
|
|
116
|
+
function resolveTsrsManifest(from) {
|
|
117
|
+
const projectRequire = (0, external_node_module_namespaceObject.createRequire)(from);
|
|
118
|
+
try {
|
|
119
|
+
return projectRequire.resolve('tsrs/package.json');
|
|
120
|
+
} catch (error) {
|
|
121
|
+
if (isAbsentPackage(projectRequire, from, 'tsrs', error)) return;
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function compilerVersion(compiler) {
|
|
126
|
+
return (0, external_node_child_process_namespaceObject.execFileSync)(compiler, [
|
|
127
|
+
'--version'
|
|
128
|
+
], {
|
|
129
|
+
encoding: 'utf8',
|
|
130
|
+
env: {
|
|
131
|
+
...process.env,
|
|
132
|
+
TSRS_CHECKER_ASSIGNMENT: process.env.TSRS_CHECKER_ASSIGNMENT || 'go'
|
|
133
|
+
},
|
|
134
|
+
timeout: 10000,
|
|
135
|
+
maxBuffer: 1048576
|
|
136
|
+
}).trim();
|
|
137
|
+
}
|
|
138
|
+
function tsrsPlatform(manifestPath) {
|
|
139
|
+
const manifest = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(manifestPath, 'utf8'));
|
|
140
|
+
const { getPlatformPackageName } = (0, external_node_module_namespaceObject.createRequire)(manifestPath)((0, external_node_path_namespaceObject.join)((0, external_node_path_namespaceObject.dirname)(manifestPath), 'lib/platform.js'));
|
|
141
|
+
const nativeName = getPlatformPackageName();
|
|
142
|
+
const embedded = manifest.tsrs;
|
|
143
|
+
if ('string' != typeof nativeName || !nativeName || !manifest.optionalDependencies || 'object' != typeof manifest.optionalDependencies || Array.isArray(manifest.optionalDependencies) || 0 === Object.keys(manifest.optionalDependencies).length) throw new Error(`Invalid native tsrs capability metadata: ${manifestPath}`);
|
|
144
|
+
if ('string' != typeof manifest.name || !manifest.name || 'string' != typeof manifest.version || !/^\d+\.\d+\.\d+-ts[\w.-]+$/u.test(manifest.version) || 'string' != typeof embedded?.typescriptVersion || !/^7\.\d+\.\d+(?:[-+][\w.-]+)?$/u.test(embedded.typescriptVersion) || !manifest.version.endsWith(`-ts${embedded.typescriptVersion}`) || 'string' != typeof embedded.typescriptCommit || !/^[a-f\d]{40}$/u.test(embedded.typescriptCommit)) throw new Error(`Invalid native tsrs metadata: ${manifestPath}`);
|
|
145
|
+
const supported = Object.hasOwn(manifest.optionalDependencies, nativeName);
|
|
146
|
+
if (supported && manifest.optionalDependencies[nativeName] !== manifest.version) throw new Error(`Native tsrs target version does not match its selected package: ${manifestPath}`);
|
|
147
|
+
return {
|
|
148
|
+
manifest: manifest,
|
|
149
|
+
nativeName,
|
|
150
|
+
supported
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
function resolveTsrsCompiler(manifestPath, effect, configuredCompiler, configuredVersion) {
|
|
154
|
+
const { manifest } = tsrsPlatform(manifestPath);
|
|
155
|
+
const embedded = manifest.tsrs;
|
|
156
|
+
const effectName = `@effect/tsgo-${process.platform}-${process.arch}`;
|
|
157
|
+
const effectManifest = (0, external_node_module_namespaceObject.createRequire)(effect.cliPath).resolve(`${effectName}/package.json`);
|
|
158
|
+
const platform = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(effectManifest, 'utf8'));
|
|
159
|
+
const metadataPath = (0, external_node_path_namespaceObject.join)((0, external_node_path_namespaceObject.dirname)(effectManifest), 'lib/upstream.json');
|
|
160
|
+
const metadata = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(metadataPath, 'utf8'));
|
|
161
|
+
const component = metadata.components?.tsrs?.[manifest.version];
|
|
162
|
+
if (platform.name !== effectName || platform.version !== effect.packageJson.version || 5 !== metadata.schemaVersion || !/^[a-f\d]{40}$/u.test(component?.gitHead ?? '') || component?.typescript?.version !== embedded.typescriptVersion || component.typescript.gitHead !== embedded.typescriptCommit) throw new Error(`Effect replacement metadata does not match tsrs: ${metadataPath}`);
|
|
163
|
+
const compiler = readCompilerArtifact(configuredCompiler ?? (0, external_node_path_namespaceObject.join)((0, external_node_path_namespaceObject.dirname)(effectManifest), 'artifacts/tsrs', manifest.version, 'win32' === process.platform ? 'tsrs.exe' : 'tsrs'));
|
|
164
|
+
const version = configuredVersion ?? compilerVersion(compiler);
|
|
165
|
+
const stamp = /\+effect-tsgo\.([\d.]+)\s+\(tsrs ([^,]+), microsoft\/TypeScript@([a-f\d]+)\)$/u.exec(version);
|
|
166
|
+
if (!stamp || stamp[1] !== effect.packageJson.version || stamp[2] !== manifest.version || stamp[3].length < 12 || !embedded.typescriptCommit.startsWith(stamp[3])) throw new Error(`Effect-enabled tsrs matching ${manifest.version} and @effect/tsgo@${effect.packageJson.version} is required: ${compiler}. Install matching packages or select a matching Effect-enabled candidate with EFFECT_TSGO_BIN.`);
|
|
167
|
+
return compiler;
|
|
168
|
+
}
|
|
169
|
+
function validateConfiguredEffectCompiler(compiler, from) {
|
|
170
|
+
const version = compilerVersion(compiler);
|
|
171
|
+
if (!/^Version \d+\.\d+\.\d+[\w.-]*\+effect-tsgo\.\d+\.\d+\.\d+(?:\s|$)/u.test(version)) throw new Error(`EFFECT_TSGO_BIN must select an Effect-enabled native compiler: ${compiler}`);
|
|
172
|
+
if (version.includes('(tsrs ')) {
|
|
173
|
+
const manifest = resolveTsrsManifest(from);
|
|
174
|
+
if (!manifest) throw new Error(`Cannot validate tsrs without its installed package metadata for ${String(from)}`);
|
|
175
|
+
resolveTsrsCompiler(manifest, resolveEffectTsgoPackage(from), compiler, version);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function resolveInstalledEffectCompiler(from) {
|
|
179
|
+
let stage = 'Package CLI resolution';
|
|
180
|
+
try {
|
|
181
|
+
const effect = resolveEffectTsgoPackage(from);
|
|
182
|
+
stage = 'Native tsrs package resolution';
|
|
183
|
+
const tsrsManifest = resolveTsrsManifest(from);
|
|
184
|
+
const tsrsTarget = tsrsManifest ? tsrsPlatform(tsrsManifest) : void 0;
|
|
185
|
+
if (tsrsTarget && effect.packageJson.version !== EFFECT_TSRS_PROVIDER_VERSION) throw new Error(`Unreviewed Effect tsrs capability contract: ${effect.packageJson.version}`);
|
|
186
|
+
const configuredTsrsCompiler = process.env.TSRS_BINARY || void 0;
|
|
187
|
+
if (tsrsManifest && tsrsTarget?.supported && (configuredTsrsCompiler || EFFECT_TSRS_TARGETS.has(tsrsTarget.nativeName))) {
|
|
188
|
+
stage = 'Native tsrs validation';
|
|
189
|
+
return resolveTsrsCompiler(tsrsManifest, effect, configuredTsrsCompiler);
|
|
190
|
+
}
|
|
191
|
+
if (tsrsTarget && !reportedUnsupportedTsrsTargets.has(tsrsTarget.nativeName)) {
|
|
192
|
+
reportedUnsupportedTsrsTargets.add(tsrsTarget.nativeName);
|
|
193
|
+
console.warn(`[UltraModern] ${tsrsTarget.supported ? `@effect/tsgo@${effect.packageJson.version} does not provide a tsrs replacement for ${tsrsTarget.nativeName}` : `tsrs does not declare ${tsrsTarget.nativeName}`}; selecting the Effect-enabled TypeScript-Go compiler.`);
|
|
194
|
+
}
|
|
195
|
+
stage = 'Native TypeScript package resolution';
|
|
196
|
+
const typeScriptManifest = resolveNativeTypeScriptManifest(from);
|
|
197
|
+
const typeScript = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(typeScriptManifest, 'utf8'));
|
|
198
|
+
const nativeName = `@typescript/typescript-${process.platform}-${process.arch}`;
|
|
199
|
+
const nativeManifest = (0, external_node_module_namespaceObject.createRequire)(typeScriptManifest).resolve(`${nativeName}/package.json`);
|
|
200
|
+
const native = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(nativeManifest, 'utf8'));
|
|
201
|
+
if (native.name !== nativeName || native.version !== typeScript.version || 'string' != typeof native.version || !/^\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/u.test(native.version) || 'string' != typeof native.gitHead || !/^[a-f\d]{40}$/u.test(native.gitHead) || native.gitHead !== typeScript.gitHead) throw new Error(`Native TypeScript platform does not match its selected package: ${nativeManifest}`);
|
|
202
|
+
const binaryName = 'win32' === process.platform ? 'tsc.exe' : 'tsc';
|
|
203
|
+
readCompilerArtifact((0, external_node_path_namespaceObject.join)((0, external_node_path_namespaceObject.dirname)(nativeManifest), 'lib', binaryName));
|
|
204
|
+
stage = 'Compiler backend lookup';
|
|
205
|
+
const effectName = `@effect/tsgo-${process.platform}-${process.arch}`;
|
|
206
|
+
const effectManifest = (0, external_node_module_namespaceObject.createRequire)(effect.cliPath).resolve(`${effectName}/package.json`);
|
|
207
|
+
const platform = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(effectManifest, 'utf8'));
|
|
208
|
+
if (platform.name !== effectName || 'string' != typeof effect.packageJson.version || platform.version !== effect.packageJson.version) throw new Error(`Effect platform does not match its selected provider: ${effectManifest}`);
|
|
209
|
+
const metadataPath = (0, external_node_path_namespaceObject.join)((0, external_node_path_namespaceObject.dirname)(effectManifest), 'lib', 'upstream.json');
|
|
210
|
+
const metadata = JSON.parse((0, external_node_fs_namespaceObject.readFileSync)(metadataPath, 'utf8'));
|
|
211
|
+
const component = metadata.components?.typescript?.[native.version];
|
|
212
|
+
const latestTypeScript = metadata.tags?.typescript?.latest;
|
|
213
|
+
if (5 !== metadata.schemaVersion || 'string' != typeof latestTypeScript || component?.provider !== "typescript-go" || component.gitHead !== native.gitHead) throw new Error(`Effect replacement metadata does not match the selected native TypeScript backend: ${metadataPath}`);
|
|
214
|
+
const compilerDirectory = native.version === latestTypeScript ? (0, external_node_path_namespaceObject.join)((0, external_node_path_namespaceObject.dirname)(effectManifest), 'lib') : (0, external_node_path_namespaceObject.join)((0, external_node_path_namespaceObject.dirname)(effectManifest), 'artifacts', "typescript", native.version);
|
|
215
|
+
return readCompilerArtifact((0, external_node_path_namespaceObject.join)(compilerDirectory, binaryName));
|
|
216
|
+
} catch (error) {
|
|
217
|
+
if (error && 'object' == typeof error && !failureStages.has(error)) failureStages.set(error, stage);
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.effectCompilerDiscoveryFailureStage = __webpack_exports__.effectCompilerDiscoveryFailureStage;
|
|
222
|
+
exports.resolveInstalledEffectCompiler = __webpack_exports__.resolveInstalledEffectCompiler;
|
|
223
|
+
exports.validateConfiguredEffectCompiler = __webpack_exports__.validateConfiguredEffectCompiler;
|
|
224
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
225
|
+
"effectCompilerDiscoveryFailureStage",
|
|
226
|
+
"resolveInstalledEffectCompiler",
|
|
227
|
+
"validateConfiguredEffectCompiler"
|
|
228
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
229
|
+
Object.defineProperty(exports, '__esModule', {
|
|
230
|
+
value: true
|
|
231
|
+
});
|
|
@@ -29,17 +29,14 @@ var __webpack_exports__ = {};
|
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
31
|
getBuildConfigEnvironment: ()=>external_build_environment_js_namespaceObject.getBuildConfigEnvironment,
|
|
32
|
-
resolveEffectTsgoCompiler: ()=>external_build_environment_js_namespaceObject.resolveEffectTsgoCompiler
|
|
33
|
-
withBuildConfigEnvironment: ()=>external_build_environment_js_namespaceObject.withBuildConfigEnvironment
|
|
32
|
+
resolveEffectTsgoCompiler: ()=>external_build_environment_js_namespaceObject.resolveEffectTsgoCompiler
|
|
34
33
|
});
|
|
35
34
|
const external_build_environment_js_namespaceObject = require("./build-environment.js");
|
|
36
35
|
exports.getBuildConfigEnvironment = __webpack_exports__.getBuildConfigEnvironment;
|
|
37
36
|
exports.resolveEffectTsgoCompiler = __webpack_exports__.resolveEffectTsgoCompiler;
|
|
38
|
-
exports.withBuildConfigEnvironment = __webpack_exports__.withBuildConfigEnvironment;
|
|
39
37
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
40
38
|
"getBuildConfigEnvironment",
|
|
41
|
-
"resolveEffectTsgoCompiler"
|
|
42
|
-
"withBuildConfigEnvironment"
|
|
39
|
+
"resolveEffectTsgoCompiler"
|
|
43
40
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
44
41
|
Object.defineProperty(exports, '__esModule', {
|
|
45
42
|
value: true
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
createRemoteManifestUrl: ()=>createRemoteManifestUrl
|
|
32
|
+
});
|
|
33
|
+
const surface_resolution_namespaceObject = require("@modern-js/surface-resolution");
|
|
34
|
+
const target_js_namespaceObject = require("../deploy-output/target.js");
|
|
35
|
+
const external_build_environment_js_namespaceObject = require("./build-environment.js");
|
|
36
|
+
function createRemoteManifestUrl(options) {
|
|
37
|
+
const env = {
|
|
38
|
+
...Object.fromEntries([
|
|
39
|
+
options.manifestEnv,
|
|
40
|
+
options.publicUrlEnv,
|
|
41
|
+
'ULTRAMODERN_CLOUDFLARE_WORKERS_DEV_SUBDOMAIN'
|
|
42
|
+
].map((name)=>[
|
|
43
|
+
name,
|
|
44
|
+
(0, external_build_environment_js_namespaceObject.getBuildConfigEnvironment)(name)
|
|
45
|
+
])),
|
|
46
|
+
MODERNJS_DEPLOY: (0, target_js_namespaceObject.resolveDeployTarget)().target
|
|
47
|
+
};
|
|
48
|
+
const address = (0, surface_resolution_namespaceObject.resolveBrowserManifestAddress)(env, options, (0, external_build_environment_js_namespaceObject.getBuildConfigEnvironment)('NODE_ENV') ?? 'production');
|
|
49
|
+
if (!address.ok) throw new Error(`Remote ${options.mfName}: ${address.reason}`);
|
|
50
|
+
return env[options.manifestEnv]?.trim() || `${options.mfName}@${address.manifestUrl}`;
|
|
51
|
+
}
|
|
52
|
+
exports.createRemoteManifestUrl = __webpack_exports__.createRemoteManifestUrl;
|
|
53
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
54
|
+
"createRemoteManifestUrl"
|
|
55
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
56
|
+
Object.defineProperty(exports, '__esModule', {
|
|
57
|
+
value: true
|
|
58
|
+
});
|
|
@@ -47,6 +47,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
47
47
|
const external_node_path_namespaceObject = require("node:path");
|
|
48
48
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
49
49
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
50
|
+
const public_assets_js_namespaceObject = require("../deploy-output/public-assets.js");
|
|
50
51
|
const external_constants_js_namespaceObject = require("./constants.js");
|
|
51
52
|
const external_utils_js_namespaceObject = require("./utils.js");
|
|
52
53
|
const normalizeCloudflareArtifact = (artifact, index)=>{
|
|
@@ -62,18 +63,7 @@ const normalizeCloudflareArtifact = (artifact, index)=>{
|
|
|
62
63
|
};
|
|
63
64
|
};
|
|
64
65
|
const getCloudflareArtifacts = (modernConfig)=>(modernConfig.deploy?.worker?.artifacts ?? []).map(normalizeCloudflareArtifact);
|
|
65
|
-
const
|
|
66
|
-
const from = (0, external_utils_js_namespaceObject.normalizeRelativePath)(asset.from, `deploy.worker.publicAssets[${index}].from`, 'app root');
|
|
67
|
-
const to = (0, external_utils_js_namespaceObject.normalizeRelativePath)(asset.to, `deploy.worker.publicAssets[${index}].to`, 'Cloudflare public output', {
|
|
68
|
-
allowRoot: true
|
|
69
|
-
});
|
|
70
|
-
return {
|
|
71
|
-
from,
|
|
72
|
-
to,
|
|
73
|
-
index
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
const getCloudflarePublicAssets = (modernConfig)=>(modernConfig.deploy?.worker?.publicAssets ?? []).map(normalizeCloudflarePublicAsset);
|
|
66
|
+
const getCloudflarePublicAssets = (modernConfig)=>(0, public_assets_js_namespaceObject.normalizeDeclaredPublicAssets)(modernConfig.deploy?.worker?.publicAssets, public_assets_js_namespaceObject.CLOUDFLARE_PUBLIC_ASSET_SCOPE);
|
|
77
67
|
const copyCloudflareArtifacts = async (appDirectory, outputDirectory, artifacts)=>{
|
|
78
68
|
for (const artifact of artifacts){
|
|
79
69
|
const sourcePath = external_node_path_default().join(appDirectory, artifact.from);
|
|
@@ -81,13 +71,12 @@ const copyCloudflareArtifacts = async (appDirectory, outputDirectory, artifacts)
|
|
|
81
71
|
await utils_namespaceObject.fs.copy(sourcePath, external_node_path_default().join(outputDirectory, artifact.to));
|
|
82
72
|
}
|
|
83
73
|
};
|
|
84
|
-
const copyCloudflarePublicAssets = async (appDirectory,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
};
|
|
74
|
+
const copyCloudflarePublicAssets = async (appDirectory, outputDirectory, publicAssets)=>(0, public_assets_js_namespaceObject.stageDeclaredPublicAssets)({
|
|
75
|
+
appDirectory,
|
|
76
|
+
outputDirectory,
|
|
77
|
+
assets: publicAssets,
|
|
78
|
+
scope: public_assets_js_namespaceObject.CLOUDFLARE_PUBLIC_ASSET_SCOPE
|
|
79
|
+
});
|
|
91
80
|
const copyCloudflareD1Migrations = async (appDirectory, outputDirectory, modernConfig)=>{
|
|
92
81
|
for (const [index, database] of (modernConfig.deploy?.worker?.d1Databases ?? []).entries()){
|
|
93
82
|
if (!database.migrationsDir) continue;
|