@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.9 → 3.5.0-ultramodern.91
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/bin/modern.js +0 -0
- package/dist/cjs/builder/generator/getBuilderEnvironments.js +13 -16
- package/dist/cjs/builder/shared/builderPlugins/adapterPrecompress.js +13 -4
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +14 -11
- package/dist/cjs/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.js +72 -0
- package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +28 -11
- package/dist/cjs/builder/shared/bundlerPlugins/index.js +13 -6
- package/dist/cjs/builder/shared/lazyCompilation.js +2 -10
- package/dist/cjs/commands/index.js +0 -4
- package/dist/cjs/config/build-environment.js +268 -0
- package/dist/cjs/config/index.js +11 -4
- package/dist/cjs/config/public.js +46 -0
- package/dist/cjs/index.js +39 -62
- package/dist/cjs/plugins/analyze/getServerRoutes.js +19 -0
- package/dist/cjs/plugins/analyze/index.js +20 -12
- package/dist/cjs/plugins/backend-federation/codegen.js +255 -0
- package/dist/cjs/plugins/backend-federation/config.js +204 -0
- package/dist/cjs/plugins/backend-federation/emit.js +148 -0
- package/dist/cjs/plugins/backendFederationBuild.js +53 -0
- package/dist/cjs/plugins/deploy/index.js +4 -4
- package/dist/cjs/plugins/deploy/platforms/cloudflare/artifacts.js +127 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare/constants.js +141 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare/delivery-unit.js +139 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare/i18n-worker.js +135 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare/index.js +150 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare/security-policies.js +205 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare/types.js +18 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare/utils.js +66 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare/worker-manifest.js +208 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare/wrangler-config.js +204 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-contract.js +108 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-plan.js +93 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/identity.js +83 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js +188 -0
- package/dist/cjs/{baseline.js → plugins/deploy/platforms/cloudflare-output-verifier/issues.js} +19 -10
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/manifest.js +89 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.js +151 -0
- package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.js +302 -0
- package/dist/cjs/plugins/deploy/platforms/node.js +20 -2
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +250 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +1012 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +363 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +8 -4
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +251 -155
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +78 -39
- package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.cjs +62 -41
- package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.mjs +63 -41
- package/dist/cjs/plugins/deploy/platforms/templates/node-entry.cjs +52 -35
- package/dist/cjs/plugins/deploy/platforms/templates/node-entry.mjs +53 -35
- package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.cjs +61 -41
- package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.mjs +61 -40
- package/dist/cjs/plugins/deploy/utils/npmAliases.js +226 -0
- package/dist/cjs/plugins/ultramodernReleaseEnvelope.js +100 -0
- package/dist/cjs/presetUltramodern.js +33 -2
- package/dist/cjs/ultramodern-release-envelope/canonical.js +68 -0
- package/dist/cjs/ultramodern-release-envelope/framework-output.js +597 -0
- package/dist/cjs/ultramodern-release-envelope/index.js +399 -0
- package/dist/cjs/ultramodern-release-envelope/types.js +51 -0
- package/dist/cjs/ultramodern-release-identity.js +110 -0
- package/dist/esm/builder/generator/getBuilderEnvironments.mjs +12 -15
- package/dist/esm/builder/shared/builderPlugins/adapterPrecompress.mjs +13 -4
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +15 -12
- package/dist/esm/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.mjs +30 -0
- package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.mjs +24 -10
- package/dist/esm/builder/shared/bundlerPlugins/index.mjs +1 -0
- package/dist/esm/builder/shared/lazyCompilation.mjs +1 -3
- package/dist/esm/commands/index.mjs +0 -1
- package/dist/esm/config/build-environment.mjs +224 -0
- package/dist/esm/config/index.mjs +1 -0
- package/dist/esm/config/public.mjs +1 -0
- package/dist/esm/index.mjs +5 -4
- package/dist/esm/plugins/analyze/getHtmlTemplate.mjs +2 -2
- package/dist/esm/plugins/analyze/getServerRoutes.mjs +17 -1
- package/dist/esm/plugins/analyze/index.mjs +20 -12
- package/dist/esm/plugins/analyze/isDefaultExportFunction.mjs +2 -2
- package/dist/esm/plugins/backend-federation/codegen.mjs +204 -0
- package/dist/esm/plugins/backend-federation/config.mjs +128 -0
- package/dist/esm/plugins/backend-federation/emit.mjs +97 -0
- package/dist/esm/plugins/backendFederationBuild.mjs +1 -0
- package/dist/esm/plugins/deploy/index.mjs +1 -1
- package/dist/esm/plugins/deploy/platforms/cloudflare/artifacts.mjs +64 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/constants.mjs +34 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/delivery-unit.mjs +88 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/i18n-worker.mjs +97 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/index.mjs +102 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/security-policies.mjs +167 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/types.mjs +0 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/utils.mjs +12 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/worker-manifest.mjs +148 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare/wrangler-config.mjs +150 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-contract.mjs +31 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-plan.mjs +45 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/identity.mjs +45 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +133 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/issues.mjs +10 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/manifest.mjs +51 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.mjs +99 -0
- package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +238 -0
- package/dist/esm/plugins/deploy/platforms/node.mjs +20 -2
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +250 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +1012 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +363 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +8 -4
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +251 -155
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +78 -39
- package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.cjs +62 -41
- package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.mjs +63 -41
- package/dist/esm/plugins/deploy/platforms/templates/node-entry.cjs +52 -35
- package/dist/esm/plugins/deploy/platforms/templates/node-entry.mjs +53 -35
- package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.cjs +61 -41
- package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.mjs +61 -40
- package/dist/esm/plugins/deploy/utils/npmAliases.mjs +174 -0
- package/dist/esm/plugins/ultramodernReleaseEnvelope.mjs +52 -0
- package/dist/esm/presetUltramodern.mjs +33 -2
- package/dist/esm/ultramodern-release-envelope/canonical.mjs +21 -0
- package/dist/esm/ultramodern-release-envelope/framework-output.mjs +524 -0
- package/dist/esm/ultramodern-release-envelope/index.mjs +335 -0
- package/dist/esm/ultramodern-release-envelope/types.mjs +7 -0
- package/dist/esm/ultramodern-release-identity.mjs +66 -0
- package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +12 -15
- package/dist/esm-node/builder/shared/builderPlugins/adapterPrecompress.mjs +13 -4
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +15 -12
- package/dist/esm-node/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.mjs +31 -0
- package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.mjs +24 -10
- package/dist/esm-node/builder/shared/bundlerPlugins/index.mjs +1 -0
- package/dist/esm-node/builder/shared/lazyCompilation.mjs +1 -3
- package/dist/esm-node/commands/index.mjs +0 -1
- package/dist/esm-node/config/build-environment.mjs +225 -0
- package/dist/esm-node/config/index.mjs +1 -0
- package/dist/esm-node/config/public.mjs +2 -0
- package/dist/esm-node/index.mjs +5 -4
- package/dist/esm-node/plugins/analyze/getHtmlTemplate.mjs +2 -2
- package/dist/esm-node/plugins/analyze/getServerRoutes.mjs +17 -1
- package/dist/esm-node/plugins/analyze/index.mjs +20 -12
- package/dist/esm-node/plugins/analyze/isDefaultExportFunction.mjs +2 -2
- package/dist/esm-node/plugins/backend-federation/codegen.mjs +205 -0
- package/dist/esm-node/plugins/backend-federation/config.mjs +129 -0
- package/dist/esm-node/plugins/backend-federation/emit.mjs +98 -0
- package/dist/esm-node/plugins/backendFederationBuild.mjs +2 -0
- package/dist/esm-node/plugins/deploy/index.mjs +1 -1
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/artifacts.mjs +65 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/constants.mjs +35 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/delivery-unit.mjs +89 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/i18n-worker.mjs +98 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/index.mjs +103 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/security-policies.mjs +168 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/types.mjs +1 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/utils.mjs +13 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/worker-manifest.mjs +149 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare/wrangler-config.mjs +151 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-contract.mjs +32 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-plan.mjs +46 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/identity.mjs +46 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +134 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/issues.mjs +11 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/manifest.mjs +52 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.mjs +100 -0
- package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +239 -0
- package/dist/esm-node/plugins/deploy/platforms/node.mjs +20 -2
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +250 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +1012 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +363 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-fs-promises.mjs +8 -4
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-loadable-server.mjs +251 -155
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-worker-path.mjs +78 -39
- package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.cjs +62 -41
- package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.mjs +63 -41
- package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.cjs +52 -35
- package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.mjs +53 -35
- package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.cjs +61 -41
- package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.mjs +61 -40
- package/dist/esm-node/plugins/deploy/utils/npmAliases.mjs +175 -0
- package/dist/esm-node/plugins/ultramodernReleaseEnvelope.mjs +53 -0
- package/dist/esm-node/presetUltramodern.mjs +33 -2
- package/dist/esm-node/ultramodern-release-envelope/canonical.mjs +22 -0
- package/dist/esm-node/ultramodern-release-envelope/framework-output.mjs +525 -0
- package/dist/esm-node/ultramodern-release-envelope/index.mjs +336 -0
- package/dist/esm-node/ultramodern-release-envelope/types.mjs +8 -0
- package/dist/esm-node/ultramodern-release-identity.mjs +67 -0
- package/dist/types/builder/generator/createCopyPattern.d.ts +7 -5
- package/dist/types/builder/shared/bundlerPlugins/CssExtractRuntimePlugin.d.ts +6 -0
- package/dist/types/builder/shared/bundlerPlugins/RouterPlugin.d.ts +1 -0
- package/dist/types/builder/shared/bundlerPlugins/index.d.ts +1 -0
- package/dist/types/builder/shared/lazyCompilation.d.ts +2 -4
- package/dist/types/commands/index.d.ts +0 -1
- package/dist/types/config/build-environment.d.ts +22 -0
- package/dist/types/config/index.d.ts +1 -0
- package/dist/types/config/public.d.ts +2 -0
- package/dist/types/index.d.ts +0 -2
- package/dist/types/plugins/analyze/getServerRoutes.d.ts +1 -0
- package/dist/types/plugins/backend-federation/codegen.d.ts +83 -0
- package/dist/types/plugins/backend-federation/config.d.ts +103 -0
- package/dist/types/plugins/backend-federation/emit.d.ts +13 -0
- package/dist/types/plugins/backendFederationBuild.d.ts +2 -0
- package/dist/types/plugins/deploy/platforms/cloudflare/artifacts.d.ts +15 -0
- package/dist/types/plugins/deploy/platforms/cloudflare/constants.d.ts +24 -0
- package/dist/types/plugins/deploy/platforms/cloudflare/delivery-unit.d.ts +23 -0
- package/dist/types/plugins/deploy/platforms/cloudflare/i18n-worker.d.ts +22 -0
- package/dist/types/plugins/deploy/platforms/{cloudflare.d.ts → cloudflare/index.d.ts} +1 -1
- package/dist/types/plugins/deploy/platforms/cloudflare/security-policies.d.ts +51 -0
- package/dist/types/plugins/deploy/platforms/cloudflare/types.d.ts +5 -0
- package/dist/types/plugins/deploy/platforms/cloudflare/utils.d.ts +6 -0
- package/dist/types/plugins/deploy/platforms/cloudflare/worker-manifest.d.ts +122 -0
- package/dist/types/plugins/deploy/platforms/cloudflare/wrangler-config.d.ts +46 -0
- package/dist/types/plugins/deploy/platforms/cloudflare-output-contract.d.ts +14 -0
- package/dist/types/plugins/deploy/platforms/cloudflare-output-plan.d.ts +34 -0
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/identity.d.ts +4 -0
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/index.d.ts +18 -0
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/issues.d.ts +14 -0
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/manifest.d.ts +2 -0
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.d.ts +14 -0
- package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.d.ts +20 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.d.mts +1 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.d.mts +1 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.d.mts +1 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.d.mts +1 -0
- package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.d.mts +1 -0
- package/dist/types/plugins/deploy/utils/npmAliases.d.ts +14 -0
- package/dist/types/plugins/ultramodernReleaseEnvelope.d.ts +3 -0
- package/dist/types/presetUltramodern.d.ts +10 -0
- package/dist/types/run/index.d.ts +1 -1
- package/dist/types/types/config/cloudflareDeploy.d.ts +41 -0
- package/dist/types/types/config/deploy.d.ts +15 -2
- package/dist/types/ultramodern-release-envelope/canonical.d.ts +5 -0
- package/dist/types/ultramodern-release-envelope/framework-output.d.ts +31 -0
- package/dist/types/ultramodern-release-envelope/index.d.ts +6 -0
- package/dist/types/ultramodern-release-envelope/types.d.ts +62 -0
- package/dist/types/ultramodern-release-identity.d.ts +16 -0
- package/lib/types.d.ts +2 -3
- package/package.json +38 -23
- package/rslib.config.mts +11 -12
- package/dist/cjs/commands/runtime.js +0 -196
- package/dist/cjs/plugins/deploy/platforms/cloudflare.js +0 -540
- package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.mjs +0 -576
- package/dist/cjs/ultramodern/designSystem.js +0 -123
- package/dist/esm/baseline.mjs +0 -4
- package/dist/esm/commands/runtime.mjs +0 -146
- package/dist/esm/plugins/deploy/platforms/cloudflare.mjs +0 -492
- package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.mjs +0 -576
- package/dist/esm/ultramodern/designSystem.mjs +0 -73
- package/dist/esm-node/baseline.mjs +0 -5
- package/dist/esm-node/commands/runtime.mjs +0 -147
- package/dist/esm-node/plugins/deploy/platforms/cloudflare.mjs +0 -493
- package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.mjs +0 -576
- package/dist/esm-node/ultramodern/designSystem.mjs +0 -74
- package/dist/types/baseline.d.ts +0 -16
- package/dist/types/commands/runtime.d.ts +0 -12
- package/dist/types/ultramodern/designSystem.d.ts +0 -54
- /package/dist/types/plugins/deploy/platforms/templates/{cloudflare-entry.d.mts → cloudflare-entry.006-fetch-handler.d.mts} +0 -0
|
@@ -14,6 +14,17 @@ export interface CloudflareWorkerArtifactConfig {
|
|
|
14
14
|
*/
|
|
15
15
|
to: string;
|
|
16
16
|
}
|
|
17
|
+
export interface CloudflareWorkerPublicAssetConfig {
|
|
18
|
+
/**
|
|
19
|
+
* Source file or directory, relative to the app root, to copy into
|
|
20
|
+
* Cloudflare Worker Static Assets.
|
|
21
|
+
*/
|
|
22
|
+
from: string;
|
|
23
|
+
/**
|
|
24
|
+
* Destination path relative to `.output/public`.
|
|
25
|
+
*/
|
|
26
|
+
to: string;
|
|
27
|
+
}
|
|
17
28
|
export interface CloudflareWorkerD1DatabaseConfig {
|
|
18
29
|
/**
|
|
19
30
|
* Worker binding name, for example `DB`.
|
|
@@ -41,6 +52,36 @@ export interface CloudflareWorkerD1DatabaseConfig {
|
|
|
41
52
|
*/
|
|
42
53
|
remote?: boolean;
|
|
43
54
|
}
|
|
55
|
+
export interface CloudflareWorkerServiceBindingConfig {
|
|
56
|
+
/** Worker binding name exposed on the module worker `env` object. */
|
|
57
|
+
binding: string;
|
|
58
|
+
/** Target Cloudflare Worker service name. */
|
|
59
|
+
service: string;
|
|
60
|
+
/**
|
|
61
|
+
* Optional application path prefix that Modern.js should dispatch to this
|
|
62
|
+
* service binding with `env[binding].fetch(request)`.
|
|
63
|
+
*/
|
|
64
|
+
prefix?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Server-rendered Module Federation fragments exposed by this Worker.
|
|
67
|
+
* These fields are written to the Modern.js worker manifest, but stripped
|
|
68
|
+
* from Wrangler's `services` entries.
|
|
69
|
+
*/
|
|
70
|
+
fragments?: CloudflareWorkerServiceBindingFragmentConfig[];
|
|
71
|
+
}
|
|
72
|
+
export interface CloudflareWorkerServiceBindingFragmentConfig {
|
|
73
|
+
/** Stable remote id used by the shell's composition contract. */
|
|
74
|
+
remote: string;
|
|
75
|
+
/** Module Federation expose rendered by the fragment route. */
|
|
76
|
+
expose: string;
|
|
77
|
+
/** Expected boundary marker in the rendered fragment HTML. */
|
|
78
|
+
boundaryId: string;
|
|
79
|
+
/**
|
|
80
|
+
* Route path on the bound Worker. `{locale}` is replaced with the first
|
|
81
|
+
* locale segment from the incoming shell request.
|
|
82
|
+
*/
|
|
83
|
+
path: string;
|
|
84
|
+
}
|
|
44
85
|
export interface CloudflareWorkerSecurityCspConfig {
|
|
45
86
|
mode?: CloudflareWorkerSecurityCspMode;
|
|
46
87
|
directives?: Record<string, string[] | string | false>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CloudflareWorkerArtifactConfig, CloudflareWorkerD1DatabaseConfig, CloudflareWorkerSecurityConfig, DeployTarget, JsonValue } from './cloudflareDeploy';
|
|
2
|
-
export type { CloudflareWorkerArtifactConfig, CloudflareWorkerD1DatabaseConfig, CloudflareWorkerSecurityConfig, CloudflareWorkerSecurityCorsConfig, CloudflareWorkerSecurityCspConfig, CloudflareWorkerSecurityCspMode, CloudflareWorkerSecurityNoindexConfig, DeployTarget, JsonValue, } from './cloudflareDeploy';
|
|
1
|
+
import type { CloudflareWorkerArtifactConfig, CloudflareWorkerD1DatabaseConfig, CloudflareWorkerPublicAssetConfig, CloudflareWorkerSecurityConfig, CloudflareWorkerServiceBindingConfig, DeployTarget, JsonValue } from './cloudflareDeploy';
|
|
2
|
+
export type { CloudflareWorkerArtifactConfig, CloudflareWorkerD1DatabaseConfig, CloudflareWorkerPublicAssetConfig, CloudflareWorkerSecurityConfig, CloudflareWorkerSecurityCorsConfig, CloudflareWorkerSecurityCspConfig, CloudflareWorkerSecurityCspMode, CloudflareWorkerSecurityNoindexConfig, CloudflareWorkerServiceBindingConfig, CloudflareWorkerServiceBindingFragmentConfig, DeployTarget, JsonValue, } from './cloudflareDeploy';
|
|
3
3
|
export interface MicroFrontend {
|
|
4
4
|
/**
|
|
5
5
|
* Specifies whether to enable the HTML entry.
|
|
@@ -47,12 +47,25 @@ export interface DeployUserConfig {
|
|
|
47
47
|
* Use this for provider resources such as migrations or generated config.
|
|
48
48
|
*/
|
|
49
49
|
artifacts?: CloudflareWorkerArtifactConfig[];
|
|
50
|
+
/**
|
|
51
|
+
* Additional app-root files or directories to serve as Cloudflare Worker
|
|
52
|
+
* Static Assets under `.output/public`. Use `to: '.'` to copy a
|
|
53
|
+
* source directory's contents into the public asset root.
|
|
54
|
+
*/
|
|
55
|
+
publicAssets?: CloudflareWorkerPublicAssetConfig[];
|
|
50
56
|
/**
|
|
51
57
|
* First-class Cloudflare D1 bindings. Modern.js writes these to
|
|
52
58
|
* `wrangler.json` as `d1_databases` and stages configured migration
|
|
53
59
|
* directories into `.output`.
|
|
54
60
|
*/
|
|
55
61
|
d1Databases?: CloudflareWorkerD1DatabaseConfig[];
|
|
62
|
+
/**
|
|
63
|
+
* First-class Cloudflare service bindings. Modern.js writes these to
|
|
64
|
+
* `wrangler.json` as `services`; when a binding also has `prefix`,
|
|
65
|
+
* the generated Worker dispatches matching requests through
|
|
66
|
+
* `env[binding].fetch(request)`.
|
|
67
|
+
*/
|
|
68
|
+
services?: CloudflareWorkerServiceBindingConfig[];
|
|
56
69
|
/**
|
|
57
70
|
* Dist output paths that must not be copied into Cloudflare public assets.
|
|
58
71
|
* Entries are slash-normalized path prefixes relative to the app dist root.
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MicroVerticalReleaseEnvelope, MicroVerticalReleaseEnvelopePayload } from './types';
|
|
2
|
+
export declare const releaseEnvelopePayload: (envelope: MicroVerticalReleaseEnvelope) => MicroVerticalReleaseEnvelopePayload;
|
|
3
|
+
export declare const canonicalSerializeMicroVerticalReleaseEnvelopePayload: (payload: MicroVerticalReleaseEnvelopePayload) => string;
|
|
4
|
+
export declare const canonicalSerializeMicroVerticalReleaseEnvelope: (envelope: MicroVerticalReleaseEnvelope) => string;
|
|
5
|
+
export declare const digestMicroVerticalReleaseEnvelopePayload: (payload: MicroVerticalReleaseEnvelopePayload) => string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { MicroVerticalReleaseArtifact, MicroVerticalReleaseEnvelope, MicroVerticalReleaseTarget } from './types';
|
|
2
|
+
export declare const MICROVERTICAL_RELEASE_ENVELOPE_PATH = "release/microvertical-release-envelope.json";
|
|
3
|
+
export declare const emitFrameworkMicroVerticalReleaseEnvelope: ({ apiOnly, distDirectory, target, }: {
|
|
4
|
+
apiOnly: boolean;
|
|
5
|
+
distDirectory: string;
|
|
6
|
+
target: MicroVerticalReleaseTarget;
|
|
7
|
+
}) => Promise<MicroVerticalReleaseEnvelope | undefined>;
|
|
8
|
+
export declare const readFrameworkMicroVerticalReleaseEnvelope: ({ artifactRoot, expectedTarget, logicalPathForArtifact, required, }: {
|
|
9
|
+
artifactRoot: string;
|
|
10
|
+
expectedTarget?: MicroVerticalReleaseTarget;
|
|
11
|
+
logicalPathForArtifact?: (artifact: MicroVerticalReleaseArtifact) => string;
|
|
12
|
+
required?: boolean;
|
|
13
|
+
}) => Promise<MicroVerticalReleaseEnvelope | undefined>;
|
|
14
|
+
export declare const verifyBuildOutputReleaseEnvelope: (distDirectory: string, expectedTarget?: MicroVerticalReleaseTarget) => Promise<MicroVerticalReleaseEnvelope | undefined>;
|
|
15
|
+
export declare const verifyNodeReleaseEnvelopeStaging: ({ outputDirectory, }: {
|
|
16
|
+
distDirectory?: string;
|
|
17
|
+
outputDirectory: string;
|
|
18
|
+
}) => Promise<MicroVerticalReleaseEnvelope | undefined>;
|
|
19
|
+
export declare const emitNodeStagedReleaseEnvelope: ({ distDirectory, outputDirectory, }: {
|
|
20
|
+
distDirectory: string;
|
|
21
|
+
outputDirectory: string;
|
|
22
|
+
}) => Promise<MicroVerticalReleaseEnvelope | undefined>;
|
|
23
|
+
export declare const stageCloudflareReleaseEnvelope: ({ distDirectory, outputDirectory, }: {
|
|
24
|
+
distDirectory: string;
|
|
25
|
+
outputDirectory: string;
|
|
26
|
+
}) => Promise<MicroVerticalReleaseEnvelope | undefined>;
|
|
27
|
+
export declare const emitCloudflareStagedReleaseEnvelope: ({ distDirectory, outputDirectory, }: {
|
|
28
|
+
distDirectory: string;
|
|
29
|
+
outputDirectory: string;
|
|
30
|
+
}) => Promise<MicroVerticalReleaseEnvelope | undefined>;
|
|
31
|
+
export declare const verifyCloudflareReleaseEnvelopeStaging: (outputDirectory: string) => Promise<MicroVerticalReleaseEnvelope | undefined>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { canonicalSerializeMicroVerticalReleaseEnvelope } from './canonical';
|
|
2
|
+
import { type CreateMicroVerticalReleaseEnvelopeInput, MICROVERTICAL_RELEASE_ENVELOPE_KIND, MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION, MICROVERTICAL_RELEASE_TARGETS, type MicroVerticalReleaseEnvelope, type VerifyMicroVerticalReleaseEnvelopeOptions } from './types';
|
|
3
|
+
export type { CreateMicroVerticalReleaseEnvelopeInput, MicroVerticalReleaseArtifact, MicroVerticalReleaseArtifactInput, MicroVerticalReleaseArtifactInputs, MicroVerticalReleaseEnvelope, MicroVerticalReleaseEnvelopePayload, MicroVerticalReleaseFileArtifact, MicroVerticalReleaseIdentity, MicroVerticalReleaseSurfaces, MicroVerticalReleaseSymbolicLinkArtifact, MicroVerticalReleaseTarget, VerifyMicroVerticalReleaseEnvelopeOptions, } from './types';
|
|
4
|
+
export { canonicalSerializeMicroVerticalReleaseEnvelope, MICROVERTICAL_RELEASE_ENVELOPE_KIND, MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION, MICROVERTICAL_RELEASE_TARGETS, };
|
|
5
|
+
export declare const createMicroVerticalReleaseEnvelope: (input: CreateMicroVerticalReleaseEnvelopeInput) => Promise<MicroVerticalReleaseEnvelope>;
|
|
6
|
+
export declare const verifyMicroVerticalReleaseEnvelope: (value: unknown, options: VerifyMicroVerticalReleaseEnvelopeOptions) => Promise<MicroVerticalReleaseEnvelope>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export declare const MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION: 3;
|
|
2
|
+
export declare const MICROVERTICAL_RELEASE_ENVELOPE_KIND: 'ultramodern-target-microvertical-release-envelope';
|
|
3
|
+
export declare const MICROVERTICAL_RELEASE_TARGETS: readonly ['node', 'cloudflare'];
|
|
4
|
+
export type MicroVerticalReleaseTarget = (typeof MICROVERTICAL_RELEASE_TARGETS)[number];
|
|
5
|
+
export type MicroVerticalReleaseIdentity = {
|
|
6
|
+
unitId: string;
|
|
7
|
+
buildMarker: string;
|
|
8
|
+
sourceRevision: string;
|
|
9
|
+
releaseVersion: string;
|
|
10
|
+
};
|
|
11
|
+
export type MicroVerticalReleaseArtifactInput = {
|
|
12
|
+
logicalPath: string;
|
|
13
|
+
runtime: string;
|
|
14
|
+
};
|
|
15
|
+
export type MicroVerticalReleaseFileArtifact = MicroVerticalReleaseArtifactInput & {
|
|
16
|
+
kind: 'file';
|
|
17
|
+
byteLength: number;
|
|
18
|
+
sha256: string;
|
|
19
|
+
};
|
|
20
|
+
export type MicroVerticalReleaseSymbolicLinkArtifact = MicroVerticalReleaseArtifactInput & {
|
|
21
|
+
kind: 'symbolic-link';
|
|
22
|
+
linkTarget: string;
|
|
23
|
+
targetKind: 'directory' | 'file';
|
|
24
|
+
targetLogicalPath: string;
|
|
25
|
+
};
|
|
26
|
+
export type MicroVerticalReleaseArtifact = MicroVerticalReleaseFileArtifact | MicroVerticalReleaseSymbolicLinkArtifact;
|
|
27
|
+
export type MicroVerticalReleaseArtifactInputs = {
|
|
28
|
+
artifacts: MicroVerticalReleaseArtifactInput[];
|
|
29
|
+
surfaces: MicroVerticalReleaseSurfaces;
|
|
30
|
+
};
|
|
31
|
+
export type MicroVerticalReleaseSurfaces = {
|
|
32
|
+
uiClient: string[];
|
|
33
|
+
ssr: string[];
|
|
34
|
+
apiBackend: string[];
|
|
35
|
+
backendFederation: {
|
|
36
|
+
manifest: string;
|
|
37
|
+
container: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export type MicroVerticalReleaseEnvelopePayload = {
|
|
41
|
+
schemaVersion: typeof MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION;
|
|
42
|
+
kind: typeof MICROVERTICAL_RELEASE_ENVELOPE_KIND;
|
|
43
|
+
target: MicroVerticalReleaseTarget;
|
|
44
|
+
identity: MicroVerticalReleaseIdentity;
|
|
45
|
+
artifacts: MicroVerticalReleaseArtifact[];
|
|
46
|
+
surfaces: MicroVerticalReleaseSurfaces;
|
|
47
|
+
};
|
|
48
|
+
export type MicroVerticalReleaseEnvelope = MicroVerticalReleaseEnvelopePayload & {
|
|
49
|
+
envelopeDigest: string;
|
|
50
|
+
};
|
|
51
|
+
export type CreateMicroVerticalReleaseEnvelopeInput = {
|
|
52
|
+
artifactRoot: string;
|
|
53
|
+
target: MicroVerticalReleaseTarget;
|
|
54
|
+
identity: MicroVerticalReleaseIdentity;
|
|
55
|
+
artifacts: MicroVerticalReleaseArtifactInput[];
|
|
56
|
+
surfaces: MicroVerticalReleaseSurfaces;
|
|
57
|
+
};
|
|
58
|
+
export type VerifyMicroVerticalReleaseEnvelopeOptions = {
|
|
59
|
+
artifactRoot: string;
|
|
60
|
+
logicalPathForArtifact?: (artifact: MicroVerticalReleaseArtifact) => string;
|
|
61
|
+
expectedTarget?: MicroVerticalReleaseTarget;
|
|
62
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type UltramodernReleaseIdentity = {
|
|
2
|
+
buildMarker: string;
|
|
3
|
+
sourceRevision: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const createUltramodernReleaseBuildMarker: ({ generationBuildMarker, sourceRevision, unitId, }: {
|
|
6
|
+
generationBuildMarker: string;
|
|
7
|
+
sourceRevision: string;
|
|
8
|
+
unitId: string;
|
|
9
|
+
}) => string;
|
|
10
|
+
export declare const resolveUltramodernSourceRevision: (workspaceRoot?: string, configuredSourceRevision?: string) => string;
|
|
11
|
+
export declare const resolveUltramodernReleaseIdentity: ({ generationBuildMarker, sourceRevision: configuredSourceRevision, unitId, workspaceRoot, }: {
|
|
12
|
+
generationBuildMarker: string;
|
|
13
|
+
sourceRevision?: string;
|
|
14
|
+
unitId: string;
|
|
15
|
+
workspaceRoot?: string;
|
|
16
|
+
}) => UltramodernReleaseIdentity;
|
package/lib/types.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="react" />
|
|
3
3
|
/// <reference types="react-dom" />
|
|
4
|
-
/// <reference types="@rsbuild/core/types" />
|
|
5
|
-
/// <reference path="../dist/types/index.d.ts" />
|
|
6
4
|
|
|
7
5
|
declare namespace NodeJS {
|
|
8
6
|
interface ProcessEnv {
|
|
@@ -12,7 +10,8 @@ declare namespace NodeJS {
|
|
|
12
10
|
}
|
|
13
11
|
}
|
|
14
12
|
|
|
15
|
-
//
|
|
13
|
+
// Keep this app-environment surface independent from framework configuration
|
|
14
|
+
// declarations so strict app typecheck does not enter toolchain internals.
|
|
16
15
|
/**
|
|
17
16
|
* Image assets
|
|
18
17
|
*/
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"modern",
|
|
18
18
|
"modern.js"
|
|
19
19
|
],
|
|
20
|
-
"version": "3.5.0-ultramodern.
|
|
20
|
+
"version": "3.5.0-ultramodern.91",
|
|
21
21
|
"types": "./dist/types/index.d.ts",
|
|
22
22
|
"main": "./dist/cjs/index.js",
|
|
23
23
|
"exports": {
|
|
@@ -33,6 +33,12 @@
|
|
|
33
33
|
"require": "./dist/cjs/builder/index.js",
|
|
34
34
|
"default": "./dist/cjs/builder/index.js"
|
|
35
35
|
},
|
|
36
|
+
"./config": {
|
|
37
|
+
"types": "./dist/types/config/public.d.ts",
|
|
38
|
+
"import": "./dist/esm-node/config/public.mjs",
|
|
39
|
+
"require": "./dist/cjs/config/public.js",
|
|
40
|
+
"default": "./dist/cjs/config/public.js"
|
|
41
|
+
},
|
|
36
42
|
"./cli": {
|
|
37
43
|
"types": "./dist/types/index.d.ts",
|
|
38
44
|
"import": "./dist/esm-node/index.mjs",
|
|
@@ -45,6 +51,12 @@
|
|
|
45
51
|
"require": "./dist/cjs/run/index.js",
|
|
46
52
|
"default": "./dist/cjs/run/index.js"
|
|
47
53
|
},
|
|
54
|
+
"./cloudflare-output-verifier": {
|
|
55
|
+
"types": "./dist/types/plugins/deploy/platforms/cloudflare-output-verifier/index.d.ts",
|
|
56
|
+
"import": "./dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs",
|
|
57
|
+
"require": "./dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js",
|
|
58
|
+
"default": "./dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js"
|
|
59
|
+
},
|
|
48
60
|
"./types": {
|
|
49
61
|
"types": "./lib/types.d.ts",
|
|
50
62
|
"default": "./lib/types.d.ts"
|
|
@@ -66,6 +78,9 @@
|
|
|
66
78
|
],
|
|
67
79
|
"builder": [
|
|
68
80
|
"./dist/types/builder/index.d.ts"
|
|
81
|
+
],
|
|
82
|
+
"config": [
|
|
83
|
+
"./dist/types/config/public.d.ts"
|
|
69
84
|
]
|
|
70
85
|
}
|
|
71
86
|
},
|
|
@@ -78,59 +93,59 @@
|
|
|
78
93
|
"@babel/traverse": "^8.0.0",
|
|
79
94
|
"@babel/types": "^8.0.0",
|
|
80
95
|
"@loadable/component": "5.16.7",
|
|
81
|
-
"@
|
|
96
|
+
"@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.5.0-ultramodern.91",
|
|
97
|
+
"@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.91",
|
|
98
|
+
"@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.91",
|
|
99
|
+
"@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.91",
|
|
100
|
+
"@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.5.0-ultramodern.91",
|
|
101
|
+
"@modern-js/server": "npm:@bleedingdev/modern-js-server@3.5.0-ultramodern.91",
|
|
102
|
+
"@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.5.0-ultramodern.91",
|
|
103
|
+
"@modern-js/server-utils": "npm:@bleedingdev/modern-js-server-utils@3.5.0-ultramodern.91",
|
|
104
|
+
"@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.91",
|
|
105
|
+
"@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.91",
|
|
106
|
+
"@rsbuild/core": "2.1.5",
|
|
82
107
|
"@swc/core": "1.15.43",
|
|
83
108
|
"@swc/helpers": "^0.5.23",
|
|
84
109
|
"compression-webpack-plugin": "^12.0.0",
|
|
85
|
-
"es-module-lexer": "^2.
|
|
110
|
+
"es-module-lexer": "^2.3.0",
|
|
86
111
|
"esbuild": "^0.28.1",
|
|
87
112
|
"flatted": "^3.4.2",
|
|
88
113
|
"import-meta-resolve": "^4.2.0",
|
|
89
114
|
"mlly": "^1.8.2",
|
|
90
115
|
"ndepe": "^0.1.13",
|
|
91
116
|
"pkg-types": "^2.3.1",
|
|
92
|
-
"std-env": "4.
|
|
93
|
-
"@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.9",
|
|
94
|
-
"@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.9",
|
|
95
|
-
"@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.9",
|
|
96
|
-
"@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.5.0-ultramodern.9",
|
|
97
|
-
"@modern-js/server": "npm:@bleedingdev/modern-js-server@3.5.0-ultramodern.9",
|
|
98
|
-
"@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.5.0-ultramodern.9",
|
|
99
|
-
"@modern-js/server-utils": "npm:@bleedingdev/modern-js-server-utils@3.5.0-ultramodern.9",
|
|
100
|
-
"@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.9",
|
|
101
|
-
"@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.9",
|
|
102
|
-
"@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.5.0-ultramodern.9"
|
|
117
|
+
"std-env": "4.2.0"
|
|
103
118
|
},
|
|
104
119
|
"devDependencies": {
|
|
105
|
-
"@rslib/core": "0.23.
|
|
120
|
+
"@rslib/core": "0.23.2",
|
|
121
|
+
"@scripts/rstest-config": "2.66.0",
|
|
106
122
|
"@types/babel__traverse": "7.28.0",
|
|
107
|
-
"@types/node": "^26.
|
|
108
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
123
|
+
"@types/node": "^26.1.1",
|
|
124
|
+
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
109
125
|
"ts-node": "^10.9.2",
|
|
110
126
|
"tsconfig-paths": "^4.2.0",
|
|
111
|
-
"typescript": "^
|
|
112
|
-
"@scripts/rstest-config": "2.66.0"
|
|
127
|
+
"typescript": "^7.0.2"
|
|
113
128
|
},
|
|
114
129
|
"peerDependencies": {
|
|
115
130
|
"ts-node": "^10.9.2",
|
|
116
131
|
"tsconfig-paths": "^4.2.0"
|
|
117
132
|
},
|
|
118
133
|
"peerDependenciesMeta": {
|
|
119
|
-
"
|
|
134
|
+
"ts-node": {
|
|
120
135
|
"optional": true
|
|
121
136
|
},
|
|
122
|
-
"
|
|
137
|
+
"tsconfig-paths": {
|
|
123
138
|
"optional": true
|
|
124
139
|
}
|
|
125
140
|
},
|
|
126
141
|
"sideEffects": false,
|
|
127
142
|
"publishConfig": {
|
|
128
|
-
"registry": "https://registry.npmjs.org/",
|
|
129
143
|
"access": "public"
|
|
130
144
|
},
|
|
131
145
|
"scripts": {
|
|
132
146
|
"dev": "rslib build --watch",
|
|
133
|
-
"build": "rslib build && pnpm -w tsgo:dts \"$PWD\"",
|
|
147
|
+
"build": "rslib build && pnpm -w tsgo:dts \"$PWD\" && pnpm run verify:public-surface",
|
|
148
|
+
"verify:public-surface": "node ./tests/config/verify-public-surface.mjs",
|
|
134
149
|
"test": "rstest"
|
|
135
150
|
}
|
|
136
151
|
}
|
package/rslib.config.mts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { rslibConfig } from '@modern-js/rslib';
|
|
2
2
|
import { defineConfig } from '@rslib/core';
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
const APP_TOOLS_CODE_ENTRY_GLOBS = [
|
|
5
|
+
'./src/**/*.{js,jsx,ts,tsx,mts,cts}',
|
|
6
|
+
'./src/esm/*.mjs',
|
|
7
|
+
];
|
|
4
8
|
|
|
5
9
|
export default defineConfig({
|
|
6
10
|
...rslibConfig,
|
|
@@ -10,11 +14,8 @@ export default defineConfig({
|
|
|
10
14
|
source: {
|
|
11
15
|
...libConfig.source,
|
|
12
16
|
entry: {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
'!src/plugins/deploy/platforms/templates/*.mjs',
|
|
16
|
-
'!src/plugins/deploy/platforms/templates/*.cjs',
|
|
17
|
-
],
|
|
17
|
+
// Deploy templates are copy-only; `src/esm` still needs compiled CJS.
|
|
18
|
+
index: APP_TOOLS_CODE_ENTRY_GLOBS,
|
|
18
19
|
},
|
|
19
20
|
},
|
|
20
21
|
output: {
|
|
@@ -25,12 +26,10 @@ export default defineConfig({
|
|
|
25
26
|
to: './esm',
|
|
26
27
|
},
|
|
27
28
|
{
|
|
28
|
-
from: 'plugins/deploy/platforms/templates
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
from: 'plugins/deploy/platforms/templates/*.mjs',
|
|
33
|
-
context: path.join(__dirname, 'src'),
|
|
29
|
+
from: './src/plugins/deploy/platforms/templates',
|
|
30
|
+
to: './plugins/deploy/platforms/templates',
|
|
31
|
+
// These JavaScript-named assets must bypass Rspack's minimizer.
|
|
32
|
+
info: { minimized: true },
|
|
34
33
|
},
|
|
35
34
|
],
|
|
36
35
|
},
|
|
@@ -1,196 +0,0 @@
|
|
|
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 DEFAULT_RUNTIME_HOST = 'http://127.0.0.1:8080';
|
|
31
|
-
const DEFAULT_RUNTIME_STATUS_PATH = '/_modern/runtime/status';
|
|
32
|
-
const DEFAULT_RUNTIME_FALLBACK_SIGNAL_PATH = '/_modern/contract-gates/runtime-fallback';
|
|
33
|
-
const DEFAULT_RUNTIME_TOKEN_HEADER = 'x-modernjs-runtime-signal-token';
|
|
34
|
-
const DEFAULT_TIMEOUT_MS = 5000;
|
|
35
|
-
const resolveRuntimeEndpoint = (input, defaultPath)=>{
|
|
36
|
-
const rawInput = input?.trim();
|
|
37
|
-
if (!rawInput) return `${DEFAULT_RUNTIME_HOST}${defaultPath}`;
|
|
38
|
-
if (rawInput.startsWith('http://') || rawInput.startsWith('https://')) return rawInput;
|
|
39
|
-
const normalized = rawInput.startsWith('/') ? rawInput : `/${rawInput}`;
|
|
40
|
-
return `${DEFAULT_RUNTIME_HOST}${normalized}`;
|
|
41
|
-
};
|
|
42
|
-
const resolveToken = ({ token, tokenEnv })=>{
|
|
43
|
-
if ('string' == typeof token && token.trim().length > 0) return token.trim();
|
|
44
|
-
if ('string' == typeof tokenEnv && tokenEnv.trim().length > 0) {
|
|
45
|
-
const value = process.env[tokenEnv.trim()];
|
|
46
|
-
if ('string' == typeof value && value.trim().length > 0) return value.trim();
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
const parseTimeoutMs = (value)=>{
|
|
50
|
-
if ('string' != typeof value || 0 === value.trim().length) return DEFAULT_TIMEOUT_MS;
|
|
51
|
-
const parsed = Number.parseInt(value, 10);
|
|
52
|
-
if (!Number.isFinite(parsed) || parsed <= 0) return DEFAULT_TIMEOUT_MS;
|
|
53
|
-
return parsed;
|
|
54
|
-
};
|
|
55
|
-
const parseMetadata = (metadata)=>{
|
|
56
|
-
if ('string' != typeof metadata || 0 === metadata.trim().length) return;
|
|
57
|
-
const parsed = JSON.parse(metadata);
|
|
58
|
-
if (!parsed || 'object' != typeof parsed || Array.isArray(parsed)) throw new Error('metadata must be a JSON object');
|
|
59
|
-
return parsed;
|
|
60
|
-
};
|
|
61
|
-
const fetchWithTimeout = async (url, init, timeoutMs)=>{
|
|
62
|
-
const controller = new AbortController();
|
|
63
|
-
const timeout = setTimeout(()=>{
|
|
64
|
-
controller.abort();
|
|
65
|
-
}, timeoutMs);
|
|
66
|
-
try {
|
|
67
|
-
return await fetch(url, {
|
|
68
|
-
...init,
|
|
69
|
-
signal: controller.signal
|
|
70
|
-
});
|
|
71
|
-
} finally{
|
|
72
|
-
clearTimeout(timeout);
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
const parseResponseBody = async (response)=>{
|
|
76
|
-
const text = await response.text();
|
|
77
|
-
if (!text) return {};
|
|
78
|
-
try {
|
|
79
|
-
return JSON.parse(text);
|
|
80
|
-
} catch (_error) {
|
|
81
|
-
return {
|
|
82
|
-
raw: text
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
const INDENT_STEP = ' ';
|
|
87
|
-
const formatScalar = (value)=>'string' == typeof value ? value : JSON.stringify(value) ?? 'undefined';
|
|
88
|
-
const formatHumanReadableLines = (value, indent)=>{
|
|
89
|
-
if (Array.isArray(value)) {
|
|
90
|
-
if (0 === value.length) return [
|
|
91
|
-
`${indent}(empty)`
|
|
92
|
-
];
|
|
93
|
-
return value.flatMap((entry)=>null !== entry && 'object' == typeof entry ? [
|
|
94
|
-
`${indent}-`,
|
|
95
|
-
...formatHumanReadableLines(entry, indent + INDENT_STEP)
|
|
96
|
-
] : [
|
|
97
|
-
`${indent}- ${formatScalar(entry)}`
|
|
98
|
-
]);
|
|
99
|
-
}
|
|
100
|
-
if (null !== value && 'object' == typeof value) {
|
|
101
|
-
const entries = Object.entries(value);
|
|
102
|
-
if (0 === entries.length) return [
|
|
103
|
-
`${indent}(empty)`
|
|
104
|
-
];
|
|
105
|
-
return entries.flatMap(([key, entry])=>null !== entry && 'object' == typeof entry ? [
|
|
106
|
-
`${indent}${key}:`,
|
|
107
|
-
...formatHumanReadableLines(entry, indent + INDENT_STEP)
|
|
108
|
-
] : [
|
|
109
|
-
`${indent}${key}: ${formatScalar(entry)}`
|
|
110
|
-
]);
|
|
111
|
-
}
|
|
112
|
-
return [
|
|
113
|
-
`${indent}${formatScalar(value)}`
|
|
114
|
-
];
|
|
115
|
-
};
|
|
116
|
-
const formatRuntimeOutput = (payload, jsonOnly)=>jsonOnly ? JSON.stringify(payload, null, 2) : formatHumanReadableLines(payload, '').join('\n');
|
|
117
|
-
const printOutput = (payload, jsonOnly)=>{
|
|
118
|
-
console.log(formatRuntimeOutput(payload, jsonOnly));
|
|
119
|
-
};
|
|
120
|
-
const createRuntimeFallbackSignalPayload = (options)=>{
|
|
121
|
-
const payload = {
|
|
122
|
-
appName: options.app,
|
|
123
|
-
reason: options.reason || 'runtime_fallback',
|
|
124
|
-
phase: options.phase || 'load'
|
|
125
|
-
};
|
|
126
|
-
if (options.entry) payload.entry = options.entry;
|
|
127
|
-
if (options.runtimeDigest) payload.runtimeDigest = options.runtimeDigest;
|
|
128
|
-
const metadata = parseMetadata(options.metadata);
|
|
129
|
-
if (metadata) payload.metadata = metadata;
|
|
130
|
-
return payload;
|
|
131
|
-
};
|
|
132
|
-
const runtimeCommand = async (program, _api)=>{
|
|
133
|
-
const runtime = program.command('runtime').description('runtime operations');
|
|
134
|
-
runtime.command('status').description('read runtime status snapshot').option('--endpoint <endpoint>', 'runtime status endpoint URL or path').option('--token <token>', 'runtime status auth token').option('--token-env <name>', 'environment variable name that stores runtime status auth token', 'MODERN_RUNTIME_SIGNAL_TOKEN').option('--header-name <name>', 'auth header name', DEFAULT_RUNTIME_TOKEN_HEADER).option('--timeout <ms>', 'request timeout in milliseconds', '5000').option('--json', 'output as JSON format for machine reading').action(async (options)=>{
|
|
135
|
-
const endpoint = resolveRuntimeEndpoint(options.endpoint, DEFAULT_RUNTIME_STATUS_PATH);
|
|
136
|
-
const timeoutMs = parseTimeoutMs(options.timeout);
|
|
137
|
-
const token = resolveToken({
|
|
138
|
-
token: options.token,
|
|
139
|
-
tokenEnv: options.tokenEnv
|
|
140
|
-
});
|
|
141
|
-
const headerName = options.headerName?.trim() || DEFAULT_RUNTIME_TOKEN_HEADER;
|
|
142
|
-
const headers = new Headers();
|
|
143
|
-
if (token) headers.set(headerName, token);
|
|
144
|
-
const response = await fetchWithTimeout(endpoint, {
|
|
145
|
-
method: 'GET',
|
|
146
|
-
headers
|
|
147
|
-
}, timeoutMs);
|
|
148
|
-
const payload = await parseResponseBody(response);
|
|
149
|
-
if (!response.ok) throw new Error(`runtime status request failed with ${response.status}: ${JSON.stringify(payload)}`);
|
|
150
|
-
printOutput(payload, options.json);
|
|
151
|
-
});
|
|
152
|
-
runtime.command('fallback-signal').description('emit runtime fallback signal for canary gate mutation').requiredOption('--app <appName>', 'remote app name').option('--endpoint <endpoint>', 'runtime fallback signal endpoint URL or path').option('--reason <reason>', 'fallback reason', 'runtime_fallback').option('--phase <phase>', 'fallback phase', 'load').option('--entry <entry>', 'remote entry URL').option('--runtime-digest <digest>', 'runtime digest value').option('--metadata <json>', 'metadata JSON object string').option('--token <token>', 'runtime signal auth token').option('--token-env <name>', 'environment variable name that stores runtime signal auth token', 'MODERN_RUNTIME_SIGNAL_TOKEN').option('--header-name <name>', 'auth header name', DEFAULT_RUNTIME_TOKEN_HEADER).option('--timeout <ms>', 'request timeout in milliseconds', '5000').option('--json', 'output as JSON format for machine reading').action(async (options)=>{
|
|
153
|
-
const endpoint = resolveRuntimeEndpoint(options.endpoint, DEFAULT_RUNTIME_FALLBACK_SIGNAL_PATH);
|
|
154
|
-
const timeoutMs = parseTimeoutMs(options.timeout);
|
|
155
|
-
const token = resolveToken({
|
|
156
|
-
token: options.token,
|
|
157
|
-
tokenEnv: options.tokenEnv
|
|
158
|
-
});
|
|
159
|
-
const headerName = options.headerName?.trim() || DEFAULT_RUNTIME_TOKEN_HEADER;
|
|
160
|
-
const payload = createRuntimeFallbackSignalPayload(options);
|
|
161
|
-
const headers = new Headers({
|
|
162
|
-
'content-type': 'application/json'
|
|
163
|
-
});
|
|
164
|
-
if (token) headers.set(headerName, token);
|
|
165
|
-
const response = await fetchWithTimeout(endpoint, {
|
|
166
|
-
method: 'POST',
|
|
167
|
-
headers,
|
|
168
|
-
body: JSON.stringify(payload)
|
|
169
|
-
}, timeoutMs);
|
|
170
|
-
const responsePayload = await parseResponseBody(response);
|
|
171
|
-
if (!response.ok) throw new Error(`runtime fallback signal request failed with ${response.status}: ${JSON.stringify(responsePayload)}`);
|
|
172
|
-
printOutput(responsePayload, options.json);
|
|
173
|
-
});
|
|
174
|
-
};
|
|
175
|
-
__webpack_require__.d(__webpack_exports__, {}, {
|
|
176
|
-
createRuntimeFallbackSignalPayload: createRuntimeFallbackSignalPayload,
|
|
177
|
-
formatRuntimeOutput: formatRuntimeOutput,
|
|
178
|
-
resolveRuntimeEndpoint: resolveRuntimeEndpoint,
|
|
179
|
-
resolveToken: resolveToken,
|
|
180
|
-
runtimeCommand: runtimeCommand
|
|
181
|
-
});
|
|
182
|
-
exports.createRuntimeFallbackSignalPayload = __webpack_exports__.createRuntimeFallbackSignalPayload;
|
|
183
|
-
exports.formatRuntimeOutput = __webpack_exports__.formatRuntimeOutput;
|
|
184
|
-
exports.resolveRuntimeEndpoint = __webpack_exports__.resolveRuntimeEndpoint;
|
|
185
|
-
exports.resolveToken = __webpack_exports__.resolveToken;
|
|
186
|
-
exports.runtimeCommand = __webpack_exports__.runtimeCommand;
|
|
187
|
-
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
188
|
-
"createRuntimeFallbackSignalPayload",
|
|
189
|
-
"formatRuntimeOutput",
|
|
190
|
-
"resolveRuntimeEndpoint",
|
|
191
|
-
"resolveToken",
|
|
192
|
-
"runtimeCommand"
|
|
193
|
-
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
194
|
-
Object.defineProperty(exports, '__esModule', {
|
|
195
|
-
value: true
|
|
196
|
-
});
|