@bleedingdev/modern-js-app-tools-extensions 3.9.0-ultramodern.9 → 3.9.3-ultramodern.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/cjs/backend-federation-build/codegen.js +29 -18
- package/dist/cjs/backend-federation-build/config.js +84 -45
- package/dist/cjs/backend-federation-build/emit.js +63 -22
- package/dist/cjs/build-config/build-environment.js +25 -162
- package/dist/cjs/build-config/internal-effect-discovery.js +143 -0
- package/dist/cjs/build-config/public.js +2 -5
- package/dist/cjs/build-config/remote-address.js +58 -0
- package/dist/cjs/cloudflare/artifacts.js +8 -19
- package/dist/cjs/cloudflare/delivery-unit.js +125 -43
- package/dist/cjs/cloudflare/index.js +14 -4
- package/dist/cjs/cloudflare/native-renderer.js +100 -0
- package/dist/cjs/cloudflare/renderer-identity.js +106 -0
- package/dist/cjs/cloudflare/worker-manifest.js +54 -13
- package/dist/cjs/cloudflare/worker-options.js +48 -0
- package/dist/cjs/cloudflare/wrangler-config.js +210 -13
- package/dist/cjs/cloudflare-builder.js +307 -89
- package/dist/cjs/cloudflare-output-contract.js +36 -4
- package/dist/cjs/cloudflare-output-verifier/identity.js +112 -23
- package/dist/cjs/cloudflare-output-verifier/index.js +10 -0
- package/dist/cjs/cloudflare-output-verifier/manifest.js +46 -0
- package/dist/cjs/cloudflare-output-verifier/mutation-policy.js +7 -1
- package/dist/cjs/cloudflare-output-verifier/worker-bundles.js +10 -5
- package/dist/cjs/config.js +10 -5
- package/dist/cjs/deploy-output/npmAliases.js +92 -6
- package/dist/cjs/deploy-output/plugin.js +27 -6
- package/dist/cjs/deploy-output/public-assets.js +146 -0
- package/dist/cjs/deploy-output/target.js +57 -1
- package/dist/cjs/deploy-output/trace-files.js +99 -0
- package/dist/cjs/module-federation-config/exposes.js +70 -0
- package/dist/cjs/module-federation-config/index.js +73 -0
- package/dist/cjs/module-federation-config/inspect.js +103 -0
- package/dist/cjs/module-federation-config/object-literal.js +87 -0
- package/dist/cjs/module-federation-config/syntax.js +151 -0
- package/dist/cjs/module-federation-config/types.js +18 -0
- package/dist/cjs/native-type-checker.js +130 -13
- 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 +8 -5
- package/dist/cjs/renderer-build-identity.js +134 -0
- package/dist/cjs/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/dist/cjs/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/dist/cjs/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/dist/cjs/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/dist/cjs/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/dist/cjs/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/dist/cjs/workspace-topology.js +84 -0
- package/dist/esm/backend-federation-build/codegen.mjs +29 -18
- package/dist/esm/backend-federation-build/config.mjs +74 -38
- package/dist/esm/backend-federation-build/emit.mjs +64 -23
- package/dist/esm/build-config/build-environment.mjs +26 -160
- package/dist/esm/build-config/internal-effect-discovery.mjs +102 -0
- package/dist/esm/build-config/public.mjs +1 -1
- package/dist/esm/build-config/remote-address.mjs +20 -0
- package/dist/esm/cloudflare/artifacts.mjs +8 -19
- package/dist/esm/cloudflare/delivery-unit.mjs +124 -45
- package/dist/esm/cloudflare/index.mjs +15 -5
- package/dist/esm/cloudflare/native-renderer.mjs +48 -0
- package/dist/esm/cloudflare/renderer-identity.mjs +57 -0
- package/dist/esm/cloudflare/worker-manifest.mjs +55 -14
- package/dist/esm/cloudflare/worker-options.mjs +10 -0
- package/dist/esm/cloudflare/wrangler-config.mjs +203 -12
- package/dist/esm/cloudflare-builder.mjs +301 -89
- package/dist/esm/cloudflare-output-contract.mjs +29 -3
- package/dist/esm/cloudflare-output-verifier/identity.mjs +113 -24
- package/dist/esm/cloudflare-output-verifier/index.mjs +10 -0
- package/dist/esm/cloudflare-output-verifier/manifest.mjs +46 -0
- package/dist/esm/cloudflare-output-verifier/mutation-policy.mjs +7 -1
- package/dist/esm/cloudflare-output-verifier/worker-bundles.mjs +11 -6
- package/dist/esm/config.mjs +3 -1
- package/dist/esm/deploy-output/npmAliases.mjs +92 -6
- package/dist/esm/deploy-output/plugin.mjs +24 -6
- package/dist/esm/deploy-output/public-assets.mjs +82 -0
- package/dist/esm/deploy-output/target.mjs +50 -3
- package/dist/esm/deploy-output/trace-files.mjs +47 -0
- package/dist/esm/module-federation-config/exposes.mjs +18 -0
- package/dist/esm/module-federation-config/index.mjs +4 -0
- package/dist/esm/module-federation-config/inspect.mjs +65 -0
- package/dist/esm/module-federation-config/object-literal.mjs +43 -0
- package/dist/esm/module-federation-config/syntax.mjs +101 -0
- package/dist/esm/module-federation-config/types.mjs +0 -0
- package/dist/esm/native-type-checker.mjs +124 -13
- 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 +8 -5
- package/dist/esm/renderer-build-identity.mjs +82 -0
- package/dist/esm/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/dist/esm/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/dist/esm/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/dist/esm/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/dist/esm/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/dist/esm/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/dist/esm/workspace-topology.mjs +21 -0
- package/dist/esm-node/backend-federation-build/codegen.mjs +29 -18
- package/dist/esm-node/backend-federation-build/config.mjs +74 -38
- package/dist/esm-node/backend-federation-build/emit.mjs +64 -23
- package/dist/esm-node/build-config/build-environment.mjs +26 -160
- package/dist/esm-node/build-config/internal-effect-discovery.mjs +103 -0
- package/dist/esm-node/build-config/public.mjs +1 -1
- package/dist/esm-node/build-config/remote-address.mjs +21 -0
- package/dist/esm-node/cloudflare/artifacts.mjs +8 -19
- package/dist/esm-node/cloudflare/delivery-unit.mjs +124 -45
- package/dist/esm-node/cloudflare/index.mjs +15 -5
- package/dist/esm-node/cloudflare/native-renderer.mjs +49 -0
- package/dist/esm-node/cloudflare/renderer-identity.mjs +58 -0
- package/dist/esm-node/cloudflare/worker-manifest.mjs +55 -14
- package/dist/esm-node/cloudflare/worker-options.mjs +11 -0
- package/dist/esm-node/cloudflare/wrangler-config.mjs +203 -12
- package/dist/esm-node/cloudflare-builder.mjs +301 -89
- package/dist/esm-node/cloudflare-output-contract.mjs +29 -3
- package/dist/esm-node/cloudflare-output-verifier/identity.mjs +113 -24
- package/dist/esm-node/cloudflare-output-verifier/index.mjs +10 -0
- package/dist/esm-node/cloudflare-output-verifier/manifest.mjs +46 -0
- package/dist/esm-node/cloudflare-output-verifier/mutation-policy.mjs +7 -1
- package/dist/esm-node/cloudflare-output-verifier/worker-bundles.mjs +11 -6
- package/dist/esm-node/config.mjs +3 -1
- package/dist/esm-node/deploy-output/npmAliases.mjs +92 -6
- package/dist/esm-node/deploy-output/plugin.mjs +24 -6
- package/dist/esm-node/deploy-output/public-assets.mjs +83 -0
- package/dist/esm-node/deploy-output/target.mjs +50 -3
- package/dist/esm-node/deploy-output/trace-files.mjs +48 -0
- package/dist/esm-node/module-federation-config/exposes.mjs +19 -0
- package/dist/esm-node/module-federation-config/index.mjs +5 -0
- package/dist/esm-node/module-federation-config/inspect.mjs +66 -0
- package/dist/esm-node/module-federation-config/object-literal.mjs +44 -0
- package/dist/esm-node/module-federation-config/syntax.mjs +102 -0
- package/dist/esm-node/module-federation-config/types.mjs +1 -0
- package/dist/esm-node/native-type-checker.mjs +124 -13
- 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 +8 -5
- package/dist/esm-node/renderer-build-identity.mjs +83 -0
- package/dist/esm-node/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/dist/esm-node/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/dist/esm-node/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/dist/esm-node/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/dist/esm-node/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/dist/esm-node/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/dist/esm-node/workspace-topology.mjs +22 -0
- package/dist/types/backend-federation-build/codegen.d.ts +30 -0
- package/dist/types/backend-federation-build/config.d.ts +10 -57
- package/dist/types/backend-federation-build/emit.d.ts +12 -2
- package/dist/types/backend-federation-build/index.d.ts +1 -1
- package/dist/types/build-config/build-environment.d.ts +1 -9
- package/dist/types/build-config/internal-effect-discovery.d.ts +4 -0
- package/dist/types/build-config/public.d.ts +1 -1
- package/dist/types/build-config/remote-address.d.ts +3 -0
- package/dist/types/cloudflare/artifacts.d.ts +7 -6
- package/dist/types/cloudflare/constants.d.ts +1 -1
- package/dist/types/cloudflare/delivery-unit.d.ts +38 -7
- package/dist/types/cloudflare/native-renderer.d.ts +30 -0
- package/dist/types/cloudflare/renderer-identity.d.ts +25 -0
- package/dist/types/cloudflare/worker-manifest.d.ts +17 -2
- package/dist/types/cloudflare/worker-options.d.ts +20 -0
- package/dist/types/cloudflare/wrangler-config.d.ts +55 -2
- package/dist/types/cloudflare-builder.d.ts +51 -8
- package/dist/types/cloudflare-output-contract.d.ts +5 -3
- package/dist/types/cloudflare-output-verifier/identity.d.ts +7 -3
- package/dist/types/cloudflare-output-verifier/worker-bundles.d.ts +2 -2
- package/dist/types/config.d.ts +98 -13
- package/dist/types/deploy-output/plugin.d.ts +29 -9
- package/dist/types/deploy-output/public-assets.d.ts +51 -0
- package/dist/types/deploy-output/target.d.ts +28 -5
- package/dist/types/deploy-output/trace-files.d.ts +17 -0
- package/dist/types/module-federation-config/exposes.d.ts +11 -0
- package/dist/types/module-federation-config/index.d.ts +5 -0
- package/dist/types/module-federation-config/inspect.d.ts +2 -0
- package/dist/types/module-federation-config/object-literal.d.ts +4 -0
- package/dist/types/module-federation-config/syntax.d.ts +7 -0
- package/dist/types/module-federation-config/types.d.ts +20 -0
- package/dist/types/native-type-checker.d.ts +26 -3
- package/dist/types/policy-defaults.d.ts +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 +3 -2
- package/dist/types/renderer-build-identity.d.ts +30 -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 +59 -285
- package/src/build-config/internal-effect-discovery.ts +239 -0
- package/src/build-config/public.ts +0 -1
- package/src/build-config/remote-address.ts +33 -0
- package/src/cloudflare/artifacts.ts +22 -43
- package/src/cloudflare/delivery-unit.ts +283 -60
- package/src/cloudflare/index.ts +35 -19
- package/src/cloudflare/native-renderer.ts +117 -0
- package/src/cloudflare/renderer-identity.ts +171 -0
- package/src/cloudflare/worker-manifest.ts +108 -10
- package/src/cloudflare/worker-options.ts +60 -0
- package/src/cloudflare/wrangler-config.ts +390 -14
- package/src/cloudflare-builder.ts +543 -170
- package/src/cloudflare-output-contract.ts +45 -2
- package/src/cloudflare-output-verifier/identity.ts +138 -7
- package/src/cloudflare-output-verifier/index.ts +20 -0
- package/src/cloudflare-output-verifier/manifest.ts +77 -0
- package/src/cloudflare-output-verifier/mutation-policy.ts +11 -1
- package/src/cloudflare-output-verifier/worker-bundles.ts +27 -11
- package/src/config.ts +101 -19
- package/src/deploy-output/npmAliases.ts +141 -4
- package/src/deploy-output/plugin.ts +55 -18
- package/src/deploy-output/public-assets.ts +224 -0
- package/src/deploy-output/target.ts +97 -14
- package/src/deploy-output/trace-files.ts +80 -0
- package/src/module-federation-config/exposes.ts +46 -0
- package/src/module-federation-config/index.ts +22 -0
- package/src/module-federation-config/inspect.ts +157 -0
- package/src/module-federation-config/object-literal.ts +76 -0
- package/src/module-federation-config/syntax.ts +212 -0
- package/src/module-federation-config/types.ts +22 -0
- package/src/native-type-checker.ts +233 -20
- 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 +19 -2
- package/src/renderer-build-identity.ts +168 -0
- package/src/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/src/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/src/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/src/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/src/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/src/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/src/workspace-topology.ts +125 -0
- package/dist/cjs/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/cjs/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/cjs/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/cjs/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/esm/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/esm/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/esm/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/esm/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/esm-node/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/esm-node/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/esm-node/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/esm-node/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/types/templates/cloudflare-worker-fs-promises.d.mts +0 -5
- package/dist/types/templates/cloudflare-worker-loadable-server.d.mts +0 -48
- package/dist/types/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +0 -13
- package/dist/types/templates/cloudflare-worker-path.d.mts +0 -21
- package/src/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/src/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/src/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/src/templates/cloudflare-worker-path.mjs +0 -98
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CloudflareOutputVerifierIssue, JsonObject } from './issues.js';
|
|
2
2
|
interface WorkerBundleReference {
|
|
3
3
|
dispatcherExport?: string;
|
|
4
|
-
kind: 'effect-bff' | 'route';
|
|
4
|
+
kind: 'effect-bff' | 'route' | 'route-data';
|
|
5
5
|
reference: string;
|
|
6
6
|
}
|
|
7
7
|
interface ResolvedWorkerBundleReference extends WorkerBundleReference {
|
|
@@ -10,7 +10,7 @@ interface ResolvedWorkerBundleReference extends WorkerBundleReference {
|
|
|
10
10
|
export declare const getEffectBffWorker: (manifest: JsonObject) => any;
|
|
11
11
|
export declare const getWorkerBundleReferences: (manifest: JsonObject) => WorkerBundleReference[];
|
|
12
12
|
export declare const resolveWorkerBundleReference: (issues: CloudflareOutputVerifierIssue[], outputDirectory: string, reference: WorkerBundleReference, manifestPath: string) => ResolvedWorkerBundleReference | null;
|
|
13
|
-
export declare const missingWorkerBundleMessage: (reference: WorkerBundleReference) => "Cloudflare Effect BFF manifest points to a missing worker bundle." | "Cloudflare route worker manifest points to a missing worker bundle.";
|
|
13
|
+
export declare const missingWorkerBundleMessage: (reference: WorkerBundleReference) => "Cloudflare Effect BFF manifest points to a missing worker bundle." | "Cloudflare route data worker manifest points to a missing worker bundle." | "Cloudflare route worker manifest points to a missing worker bundle.";
|
|
14
14
|
interface WorkerBundleVerificationContract {
|
|
15
15
|
providedPackages: ReadonlySet<string>;
|
|
16
16
|
workerRoot: string;
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export type { ResolveEffectTsgoCompilerOptions } from './build-config/public.js';
|
|
2
|
-
export { getBuildConfigEnvironment, resolveEffectTsgoCompiler,
|
|
3
|
-
export
|
|
2
|
+
export { getBuildConfigEnvironment, resolveEffectTsgoCompiler, } from './build-config/public.js';
|
|
3
|
+
export { createRemoteManifestUrl } from './build-config/remote-address.js';
|
|
4
|
+
export type { DeployTarget } from './deploy-output/target.js';
|
|
5
|
+
export { resolveDeployTarget } from './deploy-output/target.js';
|
|
4
6
|
export type CloudflareWorkerSecurityCspMode = 'enforce' | 'report-only' | 'off';
|
|
5
7
|
export type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
6
8
|
[key: string]: JsonValue;
|
|
@@ -27,6 +29,17 @@ export interface CloudflareWorkerPublicAssetConfig {
|
|
|
27
29
|
*/
|
|
28
30
|
to: string;
|
|
29
31
|
}
|
|
32
|
+
export interface NodePublicAssetConfig {
|
|
33
|
+
/**
|
|
34
|
+
* Source file or directory, relative to the app root, to copy into the
|
|
35
|
+
* Node deploy output's public directory.
|
|
36
|
+
*/
|
|
37
|
+
from: string;
|
|
38
|
+
/**
|
|
39
|
+
* Destination path relative to `.output/public`.
|
|
40
|
+
*/
|
|
41
|
+
to: string;
|
|
42
|
+
}
|
|
30
43
|
export interface CloudflareWorkerD1DatabaseConfig {
|
|
31
44
|
/**
|
|
32
45
|
* Worker binding name, for example `DB`.
|
|
@@ -71,6 +84,18 @@ export interface CloudflareWorkerServiceBindingConfig {
|
|
|
71
84
|
*/
|
|
72
85
|
fragments?: CloudflareWorkerServiceBindingFragmentConfig[];
|
|
73
86
|
}
|
|
87
|
+
export interface CloudflareWorkerVpcServiceConfig {
|
|
88
|
+
/** Worker binding name exposed on the module worker `env` object. */
|
|
89
|
+
binding: string;
|
|
90
|
+
/** Workers VPC service id (`wrangler vpc service create`). */
|
|
91
|
+
serviceId: string;
|
|
92
|
+
/**
|
|
93
|
+
* Optional application path prefix that Modern.js should dispatch to this
|
|
94
|
+
* private origin with `env[binding].fetch(request)`, exactly like a
|
|
95
|
+
* prefixed Worker service binding.
|
|
96
|
+
*/
|
|
97
|
+
prefix?: string;
|
|
98
|
+
}
|
|
74
99
|
export interface CloudflareWorkerServiceBindingFragmentConfig {
|
|
75
100
|
/** Stable remote id used by the shell's composition contract. */
|
|
76
101
|
remote: string;
|
|
@@ -161,17 +186,77 @@ export interface CloudflareWorkerSecurityConfig {
|
|
|
161
186
|
};
|
|
162
187
|
reason?: string;
|
|
163
188
|
}
|
|
189
|
+
export interface CloudflareWorkerDeployConfig {
|
|
190
|
+
name?: string;
|
|
191
|
+
/**
|
|
192
|
+
* Cloudflare Workers compatibility date for generated wrangler config.
|
|
193
|
+
* Use YYYY-MM-DD. Defaults to the date validated against the bundled
|
|
194
|
+
* Wrangler version used by UltraModern generated workspaces.
|
|
195
|
+
*/
|
|
196
|
+
compatibilityDate?: string;
|
|
197
|
+
ssr?: boolean;
|
|
198
|
+
security?: CloudflareWorkerSecurityConfig;
|
|
199
|
+
/**
|
|
200
|
+
* Raw Wrangler-compatible config merged into `.output/wrangler.json`.
|
|
201
|
+
* Framework-owned worker invariants still win for `main`, the assets
|
|
202
|
+
* binding/directory/run mode, and required compatibility flags.
|
|
203
|
+
*/
|
|
204
|
+
wrangler?: Record<string, JsonValue>;
|
|
205
|
+
/**
|
|
206
|
+
* Additional app-root files or directories to stage under `.output`.
|
|
207
|
+
* Use this for provider resources such as migrations or generated config.
|
|
208
|
+
*/
|
|
209
|
+
artifacts?: CloudflareWorkerArtifactConfig[];
|
|
210
|
+
/**
|
|
211
|
+
* Additional app-root files or directories to serve as Cloudflare Worker
|
|
212
|
+
* Static Assets under `.output/public`. Use `to: '.'` to copy a
|
|
213
|
+
* source directory's contents into the public asset root.
|
|
214
|
+
*/
|
|
215
|
+
publicAssets?: CloudflareWorkerPublicAssetConfig[];
|
|
216
|
+
/**
|
|
217
|
+
* First-class Cloudflare D1 bindings. Modern.js writes these to
|
|
218
|
+
* `wrangler.json` as `d1_databases` and stages configured migration
|
|
219
|
+
* directories into `.output`.
|
|
220
|
+
*/
|
|
221
|
+
d1Databases?: CloudflareWorkerD1DatabaseConfig[];
|
|
222
|
+
/**
|
|
223
|
+
* First-class Cloudflare service bindings. Modern.js writes these to
|
|
224
|
+
* `wrangler.json` as `services`; when a binding also has `prefix`,
|
|
225
|
+
* the generated Worker dispatches matching requests through
|
|
226
|
+
* `env[binding].fetch(request)`.
|
|
227
|
+
*/
|
|
228
|
+
services?: CloudflareWorkerServiceBindingConfig[];
|
|
229
|
+
/**
|
|
230
|
+
* First-class Workers VPC service bindings to private origins reached
|
|
231
|
+
* through a Cloudflare Tunnel. Modern.js writes these to `wrangler.json`
|
|
232
|
+
* as `vpc_services`; a binding with `prefix` joins the prefix dispatch of
|
|
233
|
+
* `services`.
|
|
234
|
+
*/
|
|
235
|
+
vpcServices?: CloudflareWorkerVpcServiceConfig[];
|
|
236
|
+
/**
|
|
237
|
+
* Dist output paths that must not be copied into Cloudflare public assets.
|
|
238
|
+
* Entries are slash-normalized path prefixes relative to the app dist root.
|
|
239
|
+
* Top-level `api` and `shared` dist directories are excluded when matching
|
|
240
|
+
* source directories exist in the app root because they conventionally
|
|
241
|
+
* contain server-only implementation code.
|
|
242
|
+
*/
|
|
243
|
+
publicAssetExcludes?: string[];
|
|
244
|
+
}
|
|
164
245
|
export interface CloudflareDeployConfig {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
246
|
+
/** Release surface owned by this application, independent of federation production. */
|
|
247
|
+
releaseEnvelopeRole?: 'microvertical' | 'shell';
|
|
248
|
+
worker?: CloudflareWorkerDeployConfig;
|
|
249
|
+
}
|
|
250
|
+
export interface NodeDeployConfig {
|
|
251
|
+
node?: {
|
|
252
|
+
/**
|
|
253
|
+
* Additional app-root files or directories to stage under
|
|
254
|
+
* `.output/public` when `modern deploy` targets Node, the counterpart of
|
|
255
|
+
* `deploy.worker.publicAssets`. The Node server does not route these
|
|
256
|
+
* files; serve them from the app, for example from an API handler.
|
|
257
|
+
* Release envelopes record them as declared public assets, so API-only
|
|
258
|
+
* units may ship them.
|
|
259
|
+
*/
|
|
260
|
+
publicAssets?: NodePublicAssetConfig[];
|
|
176
261
|
};
|
|
177
262
|
}
|
|
@@ -1,15 +1,35 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { NodePublicAssetConfig } from '../config.js';
|
|
2
|
+
import { type ResolvedDeployTarget } from './target.js';
|
|
3
|
+
export interface DeployOutputAppContext {
|
|
4
|
+
appDirectory: string;
|
|
5
|
+
metaName: string;
|
|
6
|
+
deployTarget?: ResolvedDeployTarget;
|
|
7
|
+
}
|
|
2
8
|
export interface DeployOutputPluginApi {
|
|
3
|
-
getAppContext():
|
|
4
|
-
appDirectory: string;
|
|
5
|
-
metaName: string;
|
|
6
|
-
};
|
|
7
|
-
getNormalizedConfig(): DeployOutputConfig;
|
|
9
|
+
getAppContext(): DeployOutputAppContext;
|
|
8
10
|
onAfterDeploy(handler: () => Promise<void>): void;
|
|
9
11
|
}
|
|
10
|
-
export declare const createDeployOutputAliasesPlugin: (
|
|
11
|
-
resolveDeployTarget?: (config: DeployOutputConfig) => string;
|
|
12
|
-
}) => {
|
|
12
|
+
export declare const createDeployOutputAliasesPlugin: () => {
|
|
13
13
|
name: string;
|
|
14
14
|
setup(api: DeployOutputPluginApi): void;
|
|
15
15
|
};
|
|
16
|
+
export interface DeployOutputPublicAssetsConfig {
|
|
17
|
+
deploy?: {
|
|
18
|
+
node?: {
|
|
19
|
+
publicAssets?: NodePublicAssetConfig[];
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface DeployOutputPublicAssetsPluginApi {
|
|
24
|
+
getAppContext(): DeployOutputAppContext;
|
|
25
|
+
getNormalizedConfig(): DeployOutputPublicAssetsConfig;
|
|
26
|
+
onAfterDeploy(handler: () => Promise<void>): void;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Stage `deploy.node.publicAssets` into the Node deploy output. Cloudflare
|
|
30
|
+
* stages `deploy.worker.publicAssets` inside its deploy preset.
|
|
31
|
+
*/
|
|
32
|
+
export declare const createDeployOutputPublicAssetsPlugin: () => {
|
|
33
|
+
name: string;
|
|
34
|
+
setup(api: DeployOutputPublicAssetsPluginApi): void;
|
|
35
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deploy output directory that receives declared public assets on every
|
|
3
|
+
* target: Cloudflare Worker Static Assets and the Node deploy output.
|
|
4
|
+
*/
|
|
5
|
+
export declare const DECLARED_PUBLIC_ASSET_DIRECTORY = "public";
|
|
6
|
+
export interface DeclaredPublicAssetConfig {
|
|
7
|
+
from: string;
|
|
8
|
+
to: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DeclaredPublicAssetScope {
|
|
11
|
+
/** Config path used in errors, for example `deploy.node.publicAssets`. */
|
|
12
|
+
label: string;
|
|
13
|
+
/** Output described in destination errors. */
|
|
14
|
+
output: string;
|
|
15
|
+
}
|
|
16
|
+
export interface DeclaredPublicAsset {
|
|
17
|
+
from: string;
|
|
18
|
+
to: string;
|
|
19
|
+
index: number;
|
|
20
|
+
}
|
|
21
|
+
export declare const CLOUDFLARE_PUBLIC_ASSET_SCOPE: DeclaredPublicAssetScope;
|
|
22
|
+
export declare const NODE_PUBLIC_ASSET_SCOPE: DeclaredPublicAssetScope;
|
|
23
|
+
export declare const normalizeDeclaredPublicAssets: (assets: readonly DeclaredPublicAssetConfig[] | undefined, scope: DeclaredPublicAssetScope) => DeclaredPublicAsset[];
|
|
24
|
+
/**
|
|
25
|
+
* Resolve the files declared public assets add to a deploy output that was
|
|
26
|
+
* copied from `generatedRoot`, relative to the deploy output root. Declared
|
|
27
|
+
* files that replace a generated file are not part of the result, matching
|
|
28
|
+
* {@link stageDeclaredPublicAssets}.
|
|
29
|
+
*/
|
|
30
|
+
export declare const resolveAddedDeclaredPublicAssetPaths: ({ appDirectory, assets, generatedRoot, scope, }: {
|
|
31
|
+
appDirectory: string;
|
|
32
|
+
assets: readonly DeclaredPublicAsset[];
|
|
33
|
+
generatedRoot: string;
|
|
34
|
+
scope: DeclaredPublicAssetScope;
|
|
35
|
+
}) => Promise<string[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Copy declared public assets into the deploy output after the framework has
|
|
38
|
+
* staged its own public files.
|
|
39
|
+
*
|
|
40
|
+
* A declared file may replace a generated public file, such as an app-owned
|
|
41
|
+
* `robots.txt`; the replaced file keeps its generated release classification.
|
|
42
|
+
*
|
|
43
|
+
* @returns the files the declarations added, relative to the deploy output
|
|
44
|
+
* root. The release envelope records these as declared public assets.
|
|
45
|
+
*/
|
|
46
|
+
export declare const stageDeclaredPublicAssets: ({ appDirectory, outputDirectory, assets, scope, }: {
|
|
47
|
+
appDirectory: string;
|
|
48
|
+
outputDirectory: string;
|
|
49
|
+
assets: readonly DeclaredPublicAsset[];
|
|
50
|
+
scope: DeclaredPublicAssetScope;
|
|
51
|
+
}) => Promise<string[]>;
|
|
@@ -1,6 +1,29 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export declare const DEPLOY_TARGETS: readonly ['node', 'vercel', 'netlify', 'ghPages', 'cloudflare'];
|
|
2
|
+
export type DeployTarget = (typeof DEPLOY_TARGETS)[number];
|
|
3
|
+
export declare const DEPLOY_TARGET_FLAG = "--deploy-target";
|
|
4
|
+
export interface ResolvedDeployTarget {
|
|
5
|
+
target: DeployTarget;
|
|
6
|
+
/** The flag, `deploy.target` or `MODERNJS_DEPLOY` chose the target. */
|
|
7
|
+
explicit: boolean;
|
|
5
8
|
}
|
|
6
|
-
export
|
|
9
|
+
export interface ResolveDeployTargetOptions {
|
|
10
|
+
argv?: readonly string[];
|
|
11
|
+
configTarget?: string;
|
|
12
|
+
env?: string;
|
|
13
|
+
provider?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The one deploy-target resolver: `--deploy-target` > `deploy.target` >
|
|
17
|
+
* `MODERNJS_DEPLOY` > detected CI provider > `node`. app-tools stores the
|
|
18
|
+
* result in the app context once; config files that branch on the target call
|
|
19
|
+
* it without `configTarget`.
|
|
20
|
+
*/
|
|
21
|
+
export declare const resolveDeployTarget: ({ argv, configTarget, env, provider, }?: ResolveDeployTargetOptions) => ResolvedDeployTarget;
|
|
22
|
+
/**
|
|
23
|
+
* The target `modern deploy` stages. Apps under another CLI meta name deploy
|
|
24
|
+
* only when a flag, config or env chose the target explicitly.
|
|
25
|
+
*/
|
|
26
|
+
export declare const getDeployingTarget: ({ deployTarget, metaName, }: {
|
|
27
|
+
deployTarget?: ResolvedDeployTarget;
|
|
28
|
+
metaName: string;
|
|
29
|
+
}) => DeployTarget | undefined;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { NodeFileTraceResult } from '@vercel/nft';
|
|
2
|
+
/**
|
|
3
|
+
* Builds the nft `ignore` predicate for a trace rooted at `base`: skip every
|
|
4
|
+
* path under a system root, and skip globs that would enumerate the file
|
|
5
|
+
* system root, the home directory or the temp directory as a whole. Files
|
|
6
|
+
* inside home or temp are still traced, since package stores can live there.
|
|
7
|
+
*/
|
|
8
|
+
export declare const createBuildHostIgnore: (base: string) => (relativePath: string) => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* `traceFiles` implementation for ndepe's `nodeDepEmit`, tracing with the
|
|
11
|
+
* `@vercel/nft` release app-tools-extensions depends on instead of the one ndepe pins.
|
|
12
|
+
*/
|
|
13
|
+
export declare const traceDeployFiles: ({ entryFiles, sourceDir, base, }: {
|
|
14
|
+
entryFiles: string[];
|
|
15
|
+
sourceDir: string;
|
|
16
|
+
base?: string;
|
|
17
|
+
}) => Promise<NodeFileTraceResult>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ModuleFederationConfigInspection } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns undefined when the app ships no Module Federation config, or when the
|
|
4
|
+
* config cannot be inspected statically, so callers keep their own expectation
|
|
5
|
+
* rather than inventing a surface path. `ultramodern mf-types` reports those
|
|
6
|
+
* configs separately, so staying quiet here never hides a broken config.
|
|
7
|
+
* Native deployment policy loads dynamic configs through Modern.js's loader.
|
|
8
|
+
*/
|
|
9
|
+
export declare function readModuleFederationConfigInspection(workspaceRoot: string, appDirectory: string): ModuleFederationConfigInspection | undefined;
|
|
10
|
+
/** The literal source paths, independently of the complete expose-name list. */
|
|
11
|
+
export declare function readModuleFederationExposePaths(workspaceRoot: string, appDirectory: string): Record<string, string> | undefined;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { readModuleFederationConfigInspection, readModuleFederationExposePaths, } from './exposes.js';
|
|
2
|
+
export { inspectModuleFederationConfigSource } from './inspect.js';
|
|
3
|
+
export { parseArrayLiteral, parseLiteralString, parseObjectLiteral, } from './object-literal.js';
|
|
4
|
+
export { findCreateModuleFederationConfigObject, findExportDefaultObject, locateCreateModuleFederationConfigObject, parseConfigModule, parseStaticExpression, } from './syntax.js';
|
|
5
|
+
export type { LocatedObjectLiteral, ModuleFederationConfigInspection, ParsedObjectLiteral, } from './types.js';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ParsedObjectLiteral } from './types.js';
|
|
2
|
+
export declare function parseLiteralString(source: string | undefined): string | undefined;
|
|
3
|
+
export declare function parseObjectLiteral(source: string | undefined): ParsedObjectLiteral | undefined;
|
|
4
|
+
export declare function parseArrayLiteral(source: string | undefined): string[] | undefined;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Expression, type File } from '@babel/parser';
|
|
2
|
+
import type { LocatedObjectLiteral } from './types.js';
|
|
3
|
+
export declare function parseStaticExpression(source: string | undefined): Expression | undefined;
|
|
4
|
+
export declare function parseConfigModule(source: string): import("@babel/parser").ParseResult<File>;
|
|
5
|
+
export declare function locateCreateModuleFederationConfigObject(source: string): LocatedObjectLiteral | undefined;
|
|
6
|
+
export declare function findCreateModuleFederationConfigObject(source: string): string | undefined;
|
|
7
|
+
export declare function findExportDefaultObject(source: string): string | undefined;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type ModuleFederationConfigInspection = {
|
|
2
|
+
appDir: string;
|
|
3
|
+
configPath: string;
|
|
4
|
+
dts: {
|
|
5
|
+
compilerInstance?: string;
|
|
6
|
+
tsConfigPath?: string;
|
|
7
|
+
};
|
|
8
|
+
exposePaths: Record<string, string>;
|
|
9
|
+
exposes: string[];
|
|
10
|
+
hostOnlyNoExposes: boolean;
|
|
11
|
+
};
|
|
12
|
+
export type LocatedObjectLiteral = {
|
|
13
|
+
end: number;
|
|
14
|
+
source: string;
|
|
15
|
+
start: number;
|
|
16
|
+
};
|
|
17
|
+
export type ParsedObjectLiteral = {
|
|
18
|
+
hasSpread: boolean;
|
|
19
|
+
properties: Map<string, string>;
|
|
20
|
+
};
|
|
@@ -1,15 +1,38 @@
|
|
|
1
1
|
import type { Rspack, RspackChain } from '@rsbuild/core';
|
|
2
|
+
export interface NativeTypeCheckerCommand {
|
|
3
|
+
executable: string;
|
|
4
|
+
args: readonly string[];
|
|
5
|
+
}
|
|
6
|
+
/** Launch the selected stable package through its declared public compiler bin. */
|
|
7
|
+
export declare function resolveNativeTypeCheckerCommand(packageJsonPath: string): NativeTypeCheckerCommand;
|
|
8
|
+
interface TypeCheckerConfig {
|
|
9
|
+
compilerOptions?: Record<string, unknown>;
|
|
10
|
+
references?: Array<{
|
|
11
|
+
path: string;
|
|
12
|
+
}>;
|
|
13
|
+
[key: string]: unknown;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* TS2875 means JSX compiles against a jsxImportSource whose runtime is not
|
|
17
|
+
* installed: usually components still authored for a previous renderer.
|
|
18
|
+
*/
|
|
19
|
+
export declare function missingJsxRuntimeHint(diagnostics: string): string;
|
|
2
20
|
export declare class UltramodernNativeTypeChecker {
|
|
3
21
|
private readonly options;
|
|
4
22
|
constructor(options: {
|
|
5
|
-
compiler: () => string;
|
|
23
|
+
compiler: () => string | NativeTypeCheckerCommand;
|
|
6
24
|
configFile: string;
|
|
7
25
|
build: boolean;
|
|
26
|
+
configOverwrite?: TypeCheckerConfig;
|
|
8
27
|
});
|
|
9
28
|
check(): Promise<void>;
|
|
29
|
+
private projectConfigFile;
|
|
30
|
+
private removeProjection;
|
|
31
|
+
private checkProject;
|
|
10
32
|
private run;
|
|
11
33
|
private watchInputs;
|
|
12
34
|
apply(compiler: Rspack.Compiler): void;
|
|
13
35
|
}
|
|
14
|
-
/** Preserve project-reference emit contracts in the native
|
|
15
|
-
export declare function configureUltramodernTypeChecker(chain: RspackChain, pluginId: string, resolveCompiler: (configFile: string) => string): void;
|
|
36
|
+
/** Preserve project-reference emit contracts in the selected native compiler. */
|
|
37
|
+
export declare function configureUltramodernTypeChecker(chain: RspackChain, pluginId: string, resolveCompiler: (configFile: string) => string | NativeTypeCheckerCommand): void;
|
|
38
|
+
export {};
|
|
@@ -12,12 +12,22 @@
|
|
|
12
12
|
export declare const RENDERER_EXTENSIONS_PACKAGE = "@modern-js/runtime-renderer-extensions";
|
|
13
13
|
export declare const RENDERER_EXTENSIONS_PLUGIN_NAME = "rendererHead";
|
|
14
14
|
export declare const SERVER_EXTENSIONS_PLUGIN_NAME = "@modern-js/app-tools/server-plugin";
|
|
15
|
+
export declare const ULTRAMODERN_SERVER_EXTENSIONS_PLUGIN_NAME = "@modern-js/ultramodern-app-tools/server-plugin";
|
|
15
16
|
export interface PolicyDefaultsOptions {
|
|
16
17
|
/** Default `true`. Set to `false` to drop the fork's renderer policy. */
|
|
17
18
|
rendererExtensions?: boolean;
|
|
18
19
|
/** Default `true`. Set to `false` to drop the fork's server policy. */
|
|
19
20
|
serverExtensions?: boolean;
|
|
20
21
|
}
|
|
22
|
+
/** The native package that explicitly composes the policy. */
|
|
23
|
+
export interface PolicyDefaultsComposition {
|
|
24
|
+
pluginName?: string;
|
|
25
|
+
serverPluginName?: string;
|
|
26
|
+
/** Additional runtime packages that share the resolution fallback. */
|
|
27
|
+
runtimePackages?: readonly string[];
|
|
28
|
+
/** Resolve runtime packages from the composing package. */
|
|
29
|
+
registrarUrl?: string;
|
|
30
|
+
}
|
|
21
31
|
/**
|
|
22
32
|
* The subset of the CLI plugin API these defaults use. Typed structurally, and
|
|
23
33
|
* loosely at the hook boundary, so this package stays free of a dependency on
|
|
@@ -30,7 +40,7 @@ export interface PolicyDefaultsPluginApi {
|
|
|
30
40
|
}
|
|
31
41
|
export declare const POLICY_DEFAULTS_PLUGIN_NAME = "@modern-js/ultramodern-policy-defaults";
|
|
32
42
|
/** Registers the fork's default renderer and server policy. */
|
|
33
|
-
export declare const applyPolicyDefaults: (api: PolicyDefaultsPluginApi, options?: PolicyDefaultsOptions) => void;
|
|
43
|
+
export declare const applyPolicyDefaults: (api: PolicyDefaultsPluginApi, options?: PolicyDefaultsOptions, composition?: PolicyDefaultsComposition) => void;
|
|
34
44
|
/**
|
|
35
45
|
* The fork defaults as a CLI plugin.
|
|
36
46
|
*
|
|
@@ -40,7 +50,7 @@ export declare const applyPolicyDefaults: (api: PolicyDefaultsPluginApi, options
|
|
|
40
50
|
* Ordering is settled on the runtime side instead: `rendererHeadPlugin`
|
|
41
51
|
* declares the runtime plugins that run before it.
|
|
42
52
|
*/
|
|
43
|
-
export declare const createPolicyDefaultsPlugin: (options?: PolicyDefaultsOptions) => {
|
|
53
|
+
export declare const createPolicyDefaultsPlugin: (options?: PolicyDefaultsOptions, composition?: PolicyDefaultsComposition) => {
|
|
44
54
|
name: string;
|
|
45
55
|
setup(api: PolicyDefaultsPluginApi): void;
|
|
46
56
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export
|
|
3
|
-
export declare const canonicalSerializeMicroVerticalReleaseEnvelopePayload: (payload:
|
|
4
|
-
export declare const canonicalSerializeMicroVerticalReleaseEnvelope: (envelope:
|
|
5
|
-
export declare const digestMicroVerticalReleaseEnvelopePayload: (payload:
|
|
1
|
+
import type { ReleaseEnvelope, ReleaseEnvelopePayload } from './types.js';
|
|
2
|
+
export { releaseEnvelopePayload } from './contract.mjs';
|
|
3
|
+
export declare const canonicalSerializeMicroVerticalReleaseEnvelopePayload: (payload: ReleaseEnvelopePayload) => string;
|
|
4
|
+
export declare const canonicalSerializeMicroVerticalReleaseEnvelope: (envelope: ReleaseEnvelope) => string;
|
|
5
|
+
export declare const digestMicroVerticalReleaseEnvelopePayload: (payload: ReleaseEnvelopePayload) => string;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION: 5;
|
|
2
|
+
export declare const MICROVERTICAL_RELEASE_ENVELOPE_KIND: 'ultramodern-target-microvertical-release-envelope';
|
|
3
|
+
export declare const SHELL_RELEASE_ENVELOPE_KIND: 'ultramodern-target-shell-release-envelope';
|
|
4
|
+
/**
|
|
5
|
+
* @param {import('./types.js').ReleaseEnvelope} envelope
|
|
6
|
+
* @returns {import('./types.js').ReleaseEnvelopePayload}
|
|
7
|
+
*/
|
|
8
|
+
export declare const releaseEnvelopePayload: (envelope: import('./types.js').ReleaseEnvelope) => import('./types.js').ReleaseEnvelopePayload;
|
|
@@ -1,32 +1,42 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { type RendererProfile } from '@modern-js/backend-federation-contracts';
|
|
2
|
+
import { type MicroVerticalReleaseArtifact, type MicroVerticalReleaseTarget, type ReleaseEnvelope } from './types.js';
|
|
2
3
|
export declare const MICROVERTICAL_RELEASE_ENVELOPE_PATH = "release/microvertical-release-envelope.json";
|
|
3
4
|
export declare const MICROVERTICAL_RELEASE_IDENTITY_CARRIERS_PATH = "release/microvertical-release-identity-carriers.json";
|
|
4
|
-
export declare const emitFrameworkMicroVerticalReleaseEnvelope: ({ apiOnly, distDirectory, target, }: {
|
|
5
|
+
export declare const emitFrameworkMicroVerticalReleaseEnvelope: ({ apiOnly, appDirectory, distDirectory, requirePromotable, expectedRendererProfile, role, target, }: {
|
|
5
6
|
apiOnly: boolean;
|
|
7
|
+
appDirectory?: string;
|
|
6
8
|
distDirectory: string;
|
|
9
|
+
requirePromotable?: boolean;
|
|
10
|
+
expectedRendererProfile?: RendererProfile;
|
|
11
|
+
role?: 'microvertical' | 'shell';
|
|
7
12
|
target: MicroVerticalReleaseTarget;
|
|
8
|
-
}) => Promise<
|
|
9
|
-
export declare const readFrameworkMicroVerticalReleaseEnvelope: ({ artifactRoot, expectedTarget, logicalPathForArtifact, required, }: {
|
|
13
|
+
}) => Promise<ReleaseEnvelope | undefined>;
|
|
14
|
+
export declare const readFrameworkMicroVerticalReleaseEnvelope: ({ artifactRoot, expectedTarget, logicalPathForArtifact, expectedRendererProfile, required, }: {
|
|
10
15
|
artifactRoot: string;
|
|
11
16
|
expectedTarget?: MicroVerticalReleaseTarget;
|
|
12
17
|
logicalPathForArtifact?: (artifact: MicroVerticalReleaseArtifact) => string;
|
|
18
|
+
expectedRendererProfile?: RendererProfile;
|
|
13
19
|
required?: boolean;
|
|
14
|
-
}) => Promise<
|
|
15
|
-
export declare const verifyBuildOutputReleaseEnvelope: (distDirectory: string, expectedTarget?: MicroVerticalReleaseTarget) => Promise<
|
|
20
|
+
}) => Promise<ReleaseEnvelope | undefined>;
|
|
21
|
+
export declare const verifyBuildOutputReleaseEnvelope: (distDirectory: string, expectedTarget?: MicroVerticalReleaseTarget) => Promise<ReleaseEnvelope | undefined>;
|
|
16
22
|
export declare const verifyNodeReleaseEnvelopeStaging: ({ outputDirectory, }: {
|
|
17
23
|
distDirectory?: string;
|
|
18
24
|
outputDirectory: string;
|
|
19
|
-
}) => Promise<
|
|
20
|
-
export declare const emitNodeStagedReleaseEnvelope: ({ distDirectory, outputDirectory, }: {
|
|
25
|
+
}) => Promise<ReleaseEnvelope | undefined>;
|
|
26
|
+
export declare const emitNodeStagedReleaseEnvelope: ({ declaredPublicAssets, distDirectory, outputDirectory, }: {
|
|
27
|
+
/** Staged `deploy.node.publicAssets` files, relative to `outputDirectory`. */
|
|
28
|
+
declaredPublicAssets?: readonly string[];
|
|
21
29
|
distDirectory: string;
|
|
22
30
|
outputDirectory: string;
|
|
23
|
-
}) => Promise<
|
|
31
|
+
}) => Promise<ReleaseEnvelope | undefined>;
|
|
24
32
|
export declare const stageCloudflareReleaseEnvelope: ({ distDirectory, outputDirectory, }: {
|
|
25
33
|
distDirectory: string;
|
|
26
34
|
outputDirectory: string;
|
|
27
|
-
}) => Promise<
|
|
28
|
-
export declare const emitCloudflareStagedReleaseEnvelope: ({ distDirectory, outputDirectory, }: {
|
|
35
|
+
}) => Promise<ReleaseEnvelope | undefined>;
|
|
36
|
+
export declare const emitCloudflareStagedReleaseEnvelope: ({ declaredPublicAssets, distDirectory, outputDirectory, }: {
|
|
37
|
+
/** Staged `deploy.worker.publicAssets` files, relative to `outputDirectory`. */
|
|
38
|
+
declaredPublicAssets?: readonly string[];
|
|
29
39
|
distDirectory: string;
|
|
30
40
|
outputDirectory: string;
|
|
31
|
-
}) => Promise<
|
|
32
|
-
export declare const verifyCloudflareReleaseEnvelopeStaging: (outputDirectory: string) => Promise<
|
|
41
|
+
}) => Promise<ReleaseEnvelope | undefined>;
|
|
42
|
+
export declare const verifyCloudflareReleaseEnvelopeStaging: (outputDirectory: string) => Promise<ReleaseEnvelope | undefined>;
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { canonicalSerializeMicroVerticalReleaseEnvelope } from './canonical.js';
|
|
2
|
-
import { type CreateMicroVerticalReleaseEnvelopeInput, MICROVERTICAL_RELEASE_ENVELOPE_KIND, MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION, MICROVERTICAL_RELEASE_TARGETS, type MicroVerticalReleaseEnvelope, type VerifyMicroVerticalReleaseEnvelopeOptions } from './types.js';
|
|
3
|
-
export type { CreateMicroVerticalReleaseEnvelopeInput, MicroVerticalReleaseArtifact, MicroVerticalReleaseArtifactInput, MicroVerticalReleaseArtifactInputs, MicroVerticalReleaseEnvelope, MicroVerticalReleaseEnvelopePayload, MicroVerticalReleaseFileArtifact, MicroVerticalReleaseIdentity, MicroVerticalReleaseSurfaces, MicroVerticalReleaseSymbolicLinkArtifact, MicroVerticalReleaseTarget, VerifyMicroVerticalReleaseEnvelopeOptions, } from './types.js';
|
|
4
|
-
export { canonicalSerializeMicroVerticalReleaseEnvelope, MICROVERTICAL_RELEASE_ENVELOPE_KIND, MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION, MICROVERTICAL_RELEASE_TARGETS, };
|
|
5
|
-
export declare
|
|
6
|
-
|
|
2
|
+
import { type CreateMicroVerticalReleaseEnvelopeInput, MICROVERTICAL_RELEASE_ENVELOPE_KIND, MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION, MICROVERTICAL_RELEASE_TARGETS, type MicroVerticalReleaseEnvelope, type ReleaseEnvelope, SHELL_RELEASE_ENVELOPE_KIND, type ShellReleaseEnvelope, type VerifyMicroVerticalReleaseEnvelopeOptions } from './types.js';
|
|
3
|
+
export type { CreateMicroVerticalReleaseEnvelopeInput, MicroVerticalReleaseArtifact, MicroVerticalReleaseArtifactInput, MicroVerticalReleaseArtifactInputs, MicroVerticalReleaseEnvelope, MicroVerticalReleaseEnvelopePayload, MicroVerticalReleaseFileArtifact, MicroVerticalReleaseIdentity, MicroVerticalReleaseSurfaces, MicroVerticalReleaseSymbolicLinkArtifact, MicroVerticalReleaseTarget, MicroVerticalReleaseUi, ReleaseEnvelope, ReleaseEnvelopeKind, ReleaseEnvelopePayload, ReleaseSurfaces, ShellReleaseEnvelope, ShellReleaseEnvelopePayload, ShellReleaseSurfaces, VerifyMicroVerticalReleaseEnvelopeOptions, } from './types.js';
|
|
4
|
+
export { canonicalSerializeMicroVerticalReleaseEnvelope, MICROVERTICAL_RELEASE_ENVELOPE_KIND, MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION, MICROVERTICAL_RELEASE_TARGETS, SHELL_RELEASE_ENVELOPE_KIND, };
|
|
5
|
+
export declare function createMicroVerticalReleaseEnvelope(input: CreateMicroVerticalReleaseEnvelopeInput & {
|
|
6
|
+
kind: typeof SHELL_RELEASE_ENVELOPE_KIND;
|
|
7
|
+
}): Promise<ShellReleaseEnvelope>;
|
|
8
|
+
export declare function createMicroVerticalReleaseEnvelope(input: CreateMicroVerticalReleaseEnvelopeInput & {
|
|
9
|
+
kind?: typeof MICROVERTICAL_RELEASE_ENVELOPE_KIND;
|
|
10
|
+
}): Promise<MicroVerticalReleaseEnvelope>;
|
|
11
|
+
export declare function createMicroVerticalReleaseEnvelope(input: CreateMicroVerticalReleaseEnvelopeInput): Promise<ReleaseEnvelope>;
|
|
12
|
+
export declare function verifyMicroVerticalReleaseEnvelope(value: unknown, options: VerifyMicroVerticalReleaseEnvelopeOptions & {
|
|
13
|
+
expectedKind: typeof SHELL_RELEASE_ENVELOPE_KIND;
|
|
14
|
+
}): Promise<ShellReleaseEnvelope>;
|
|
15
|
+
export declare function verifyMicroVerticalReleaseEnvelope(value: unknown, options: VerifyMicroVerticalReleaseEnvelopeOptions & {
|
|
16
|
+
expectedKind: typeof MICROVERTICAL_RELEASE_ENVELOPE_KIND;
|
|
17
|
+
}): Promise<MicroVerticalReleaseEnvelope>;
|
|
18
|
+
export declare function verifyMicroVerticalReleaseEnvelope(value: unknown, options: VerifyMicroVerticalReleaseEnvelopeOptions): Promise<ReleaseEnvelope>;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
type
|
|
1
|
+
import type { RendererProfile } from '@modern-js/backend-federation-contracts';
|
|
2
|
+
import type { NodePublicAssetConfig } from '../config.js';
|
|
3
|
+
import { type ResolvedDeployTarget } from '../deploy-output/target.js';
|
|
2
4
|
export interface ReleaseEnvelopeConfig {
|
|
3
5
|
deploy?: {
|
|
4
|
-
|
|
6
|
+
releaseEnvelopeRole?: 'microvertical' | 'shell';
|
|
7
|
+
node?: {
|
|
8
|
+
publicAssets?: NodePublicAssetConfig[];
|
|
9
|
+
};
|
|
5
10
|
};
|
|
6
11
|
}
|
|
7
12
|
export interface ReleaseEnvelopeAppContext {
|
|
@@ -9,6 +14,7 @@ export interface ReleaseEnvelopeAppContext {
|
|
|
9
14
|
appDirectory: string;
|
|
10
15
|
distDirectory: string;
|
|
11
16
|
metaName: string;
|
|
17
|
+
deployTarget?: ResolvedDeployTarget;
|
|
12
18
|
}
|
|
13
19
|
export interface ReleaseEnvelopePluginApi<Config extends ReleaseEnvelopeConfig = ReleaseEnvelopeConfig> {
|
|
14
20
|
getAppContext(): ReleaseEnvelopeAppContext;
|
|
@@ -23,8 +29,6 @@ export interface ReleaseEnvelopePlugin<Config extends ReleaseEnvelopeConfig = Re
|
|
|
23
29
|
post: string[];
|
|
24
30
|
setup(api: ReleaseEnvelopePluginApi<Config>): void;
|
|
25
31
|
}
|
|
26
|
-
export
|
|
27
|
-
|
|
28
|
-
resolveDeployTarget: ResolveDeployTarget<Config>;
|
|
32
|
+
export declare const createUltramodernReleaseEnvelopePlugin: <Config extends ReleaseEnvelopeConfig>({ resolveRendererProfile, }?: {
|
|
33
|
+
resolveRendererProfile?: (config: Config) => RendererProfile;
|
|
29
34
|
}) => ReleaseEnvelopePlugin<Config>;
|
|
30
|
-
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type UltramodernBuildArtifact, type UltramodernBuildUiSurface } from '@modern-js/backend-federation-contracts';
|
|
2
|
+
export type RendererBuildOutputContext = {
|
|
3
|
+
appDirectory: string;
|
|
4
|
+
distDirectory: string;
|
|
5
|
+
entrypoints: readonly {
|
|
6
|
+
entryName: string;
|
|
7
|
+
isMainEntry?: boolean;
|
|
8
|
+
}[];
|
|
9
|
+
};
|
|
10
|
+
export type FinalizedRendererBuildOutput = {
|
|
11
|
+
buildMarker: string;
|
|
12
|
+
sourceRevision: string;
|
|
13
|
+
ui: Pick<UltramodernBuildUiSurface, 'rendererIdentity' | 'rendererProfile' | 'routerBindings'>;
|
|
14
|
+
};
|
|
15
|
+
export type RendererBuildOutputOptions = {
|
|
16
|
+
resolveRendererBuild: (context: RendererBuildOutputContext) => Promise<FinalizedRendererBuildOutput>;
|
|
17
|
+
/** Exact metadata producer selected by the owning renderer composition. */
|
|
18
|
+
rendererBuildPlugin: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const validateFinalizedRendererBuild: (output: FinalizedRendererBuildOutput, context: RendererBuildOutputContext, appId: string) => void;
|
|
21
|
+
export declare const stampFinalizedRendererBuildArtifact: (artifact: UltramodernBuildArtifact, output: FinalizedRendererBuildOutput, context: RendererBuildOutputContext) => UltramodernBuildArtifact;
|
|
22
|
+
export declare function emitRendererBuildArtifact(context: RendererBuildOutputContext, options: RendererBuildOutputOptions): Promise<UltramodernBuildArtifact | undefined>;
|
|
23
|
+
/** Stamp generated UI carriers after their actual compiler manifest is committed. */
|
|
24
|
+
export declare function rendererBuildArtifactStampPlugin(options: RendererBuildOutputOptions): {
|
|
25
|
+
name: string;
|
|
26
|
+
pre: string[];
|
|
27
|
+
required: string[];
|
|
28
|
+
setup(api: {
|
|
29
|
+
getAppContext(): RendererBuildOutputContext & {
|
|
30
|
+
apiOnly?: boolean;
|
|
31
|
+
};
|
|
32
|
+
onAfterBuild(handler: () => Promise<void>): void;
|
|
33
|
+
}): void;
|
|
34
|
+
};
|