@bleedingdev/modern-js-app-tools-extensions 3.9.0-ultramodern.8 → 3.9.3-ultramodern.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -0
- package/dist/cjs/backend-federation-build/codegen.js +29 -18
- package/dist/cjs/backend-federation-build/config.js +84 -45
- package/dist/cjs/backend-federation-build/emit.js +63 -22
- package/dist/cjs/build-config/build-environment.js +25 -162
- package/dist/cjs/build-config/internal-effect-discovery.js +143 -0
- package/dist/cjs/build-config/public.js +2 -5
- package/dist/cjs/build-config/remote-address.js +58 -0
- package/dist/cjs/cloudflare/artifacts.js +8 -19
- package/dist/cjs/cloudflare/delivery-unit.js +125 -43
- package/dist/cjs/cloudflare/index.js +14 -4
- package/dist/cjs/cloudflare/native-renderer.js +100 -0
- package/dist/cjs/cloudflare/renderer-identity.js +106 -0
- package/dist/cjs/cloudflare/worker-manifest.js +54 -13
- package/dist/cjs/cloudflare/worker-options.js +48 -0
- package/dist/cjs/cloudflare/wrangler-config.js +210 -13
- package/dist/cjs/cloudflare-builder.js +307 -89
- package/dist/cjs/cloudflare-output-contract.js +36 -4
- package/dist/cjs/cloudflare-output-verifier/identity.js +112 -23
- package/dist/cjs/cloudflare-output-verifier/index.js +10 -0
- package/dist/cjs/cloudflare-output-verifier/manifest.js +46 -0
- package/dist/cjs/cloudflare-output-verifier/mutation-policy.js +7 -1
- package/dist/cjs/cloudflare-output-verifier/worker-bundles.js +10 -5
- package/dist/cjs/config.js +10 -5
- package/dist/cjs/deploy-output/npmAliases.js +92 -6
- package/dist/cjs/deploy-output/plugin.js +27 -6
- package/dist/cjs/deploy-output/public-assets.js +146 -0
- package/dist/cjs/deploy-output/target.js +57 -1
- package/dist/cjs/deploy-output/trace-files.js +99 -0
- package/dist/cjs/module-federation-config/exposes.js +70 -0
- package/dist/cjs/module-federation-config/index.js +73 -0
- package/dist/cjs/module-federation-config/inspect.js +103 -0
- package/dist/cjs/module-federation-config/object-literal.js +87 -0
- package/dist/cjs/module-federation-config/syntax.js +151 -0
- package/dist/cjs/module-federation-config/types.js +18 -0
- package/dist/cjs/native-type-checker.js +164 -18
- package/dist/cjs/policy-defaults.js +110 -0
- package/dist/cjs/release-envelope/canonical.js +2 -9
- package/dist/cjs/release-envelope/contract.js +68 -0
- package/dist/cjs/release-envelope/framework-output.js +296 -105
- package/dist/cjs/release-envelope/index.js +150 -36
- package/dist/cjs/release-envelope/plugin.js +24 -15
- package/dist/cjs/release-envelope/renderer-output-stamp.js +170 -0
- package/dist/cjs/release-envelope/types.js +10 -8
- package/dist/cjs/release-identity.js +8 -5
- package/dist/cjs/renderer-build-identity.js +134 -0
- package/dist/cjs/runtime-package-resolution.js +118 -0
- package/dist/cjs/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/dist/cjs/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/dist/cjs/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/dist/cjs/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/dist/cjs/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/dist/cjs/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/dist/cjs/workspace-topology.js +84 -0
- package/dist/esm/backend-federation-build/codegen.mjs +29 -18
- package/dist/esm/backend-federation-build/config.mjs +74 -38
- package/dist/esm/backend-federation-build/emit.mjs +64 -23
- package/dist/esm/build-config/build-environment.mjs +26 -160
- package/dist/esm/build-config/internal-effect-discovery.mjs +102 -0
- package/dist/esm/build-config/public.mjs +1 -1
- package/dist/esm/build-config/remote-address.mjs +20 -0
- package/dist/esm/cloudflare/artifacts.mjs +8 -19
- package/dist/esm/cloudflare/delivery-unit.mjs +124 -45
- package/dist/esm/cloudflare/index.mjs +15 -5
- package/dist/esm/cloudflare/native-renderer.mjs +48 -0
- package/dist/esm/cloudflare/renderer-identity.mjs +57 -0
- package/dist/esm/cloudflare/worker-manifest.mjs +55 -14
- package/dist/esm/cloudflare/worker-options.mjs +10 -0
- package/dist/esm/cloudflare/wrangler-config.mjs +203 -12
- package/dist/esm/cloudflare-builder.mjs +301 -89
- package/dist/esm/cloudflare-output-contract.mjs +29 -3
- package/dist/esm/cloudflare-output-verifier/identity.mjs +113 -24
- package/dist/esm/cloudflare-output-verifier/index.mjs +10 -0
- package/dist/esm/cloudflare-output-verifier/manifest.mjs +46 -0
- package/dist/esm/cloudflare-output-verifier/mutation-policy.mjs +7 -1
- package/dist/esm/cloudflare-output-verifier/worker-bundles.mjs +11 -6
- package/dist/esm/config.mjs +3 -1
- package/dist/esm/deploy-output/npmAliases.mjs +92 -6
- package/dist/esm/deploy-output/plugin.mjs +24 -6
- package/dist/esm/deploy-output/public-assets.mjs +82 -0
- package/dist/esm/deploy-output/target.mjs +50 -3
- package/dist/esm/deploy-output/trace-files.mjs +47 -0
- package/dist/esm/module-federation-config/exposes.mjs +18 -0
- package/dist/esm/module-federation-config/index.mjs +4 -0
- package/dist/esm/module-federation-config/inspect.mjs +65 -0
- package/dist/esm/module-federation-config/object-literal.mjs +43 -0
- package/dist/esm/module-federation-config/syntax.mjs +101 -0
- package/dist/esm/module-federation-config/types.mjs +0 -0
- package/dist/esm/native-type-checker.mjs +158 -18
- package/dist/esm/policy-defaults.mjs +51 -0
- package/dist/esm/release-envelope/canonical.mjs +2 -9
- package/dist/esm/release-envelope/contract.mjs +21 -0
- package/dist/esm/release-envelope/framework-output.mjs +297 -106
- package/dist/esm/release-envelope/index.mjs +149 -38
- package/dist/esm/release-envelope/plugin.mjs +24 -15
- package/dist/esm/release-envelope/renderer-output-stamp.mjs +112 -0
- package/dist/esm/release-envelope/types.mjs +2 -3
- package/dist/esm/release-identity.mjs +8 -5
- package/dist/esm/renderer-build-identity.mjs +82 -0
- package/dist/esm/runtime-package-resolution.mjs +60 -0
- package/dist/esm/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/dist/esm/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/dist/esm/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/dist/esm/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/dist/esm/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/dist/esm/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/dist/esm/workspace-topology.mjs +21 -0
- package/dist/esm-node/backend-federation-build/codegen.mjs +29 -18
- package/dist/esm-node/backend-federation-build/config.mjs +74 -38
- package/dist/esm-node/backend-federation-build/emit.mjs +64 -23
- package/dist/esm-node/build-config/build-environment.mjs +26 -160
- package/dist/esm-node/build-config/internal-effect-discovery.mjs +103 -0
- package/dist/esm-node/build-config/public.mjs +1 -1
- package/dist/esm-node/build-config/remote-address.mjs +21 -0
- package/dist/esm-node/cloudflare/artifacts.mjs +8 -19
- package/dist/esm-node/cloudflare/delivery-unit.mjs +124 -45
- package/dist/esm-node/cloudflare/index.mjs +15 -5
- package/dist/esm-node/cloudflare/native-renderer.mjs +49 -0
- package/dist/esm-node/cloudflare/renderer-identity.mjs +58 -0
- package/dist/esm-node/cloudflare/worker-manifest.mjs +55 -14
- package/dist/esm-node/cloudflare/worker-options.mjs +11 -0
- package/dist/esm-node/cloudflare/wrangler-config.mjs +203 -12
- package/dist/esm-node/cloudflare-builder.mjs +301 -89
- package/dist/esm-node/cloudflare-output-contract.mjs +29 -3
- package/dist/esm-node/cloudflare-output-verifier/identity.mjs +113 -24
- package/dist/esm-node/cloudflare-output-verifier/index.mjs +10 -0
- package/dist/esm-node/cloudflare-output-verifier/manifest.mjs +46 -0
- package/dist/esm-node/cloudflare-output-verifier/mutation-policy.mjs +7 -1
- package/dist/esm-node/cloudflare-output-verifier/worker-bundles.mjs +11 -6
- package/dist/esm-node/config.mjs +3 -1
- package/dist/esm-node/deploy-output/npmAliases.mjs +92 -6
- package/dist/esm-node/deploy-output/plugin.mjs +24 -6
- package/dist/esm-node/deploy-output/public-assets.mjs +83 -0
- package/dist/esm-node/deploy-output/target.mjs +50 -3
- package/dist/esm-node/deploy-output/trace-files.mjs +48 -0
- package/dist/esm-node/module-federation-config/exposes.mjs +19 -0
- package/dist/esm-node/module-federation-config/index.mjs +5 -0
- package/dist/esm-node/module-federation-config/inspect.mjs +66 -0
- package/dist/esm-node/module-federation-config/object-literal.mjs +44 -0
- package/dist/esm-node/module-federation-config/syntax.mjs +102 -0
- package/dist/esm-node/module-federation-config/types.mjs +1 -0
- package/dist/esm-node/native-type-checker.mjs +158 -18
- package/dist/esm-node/policy-defaults.mjs +52 -0
- package/dist/esm-node/release-envelope/canonical.mjs +2 -9
- package/dist/esm-node/release-envelope/contract.mjs +22 -0
- package/dist/esm-node/release-envelope/framework-output.mjs +297 -106
- package/dist/esm-node/release-envelope/index.mjs +149 -38
- package/dist/esm-node/release-envelope/plugin.mjs +24 -15
- package/dist/esm-node/release-envelope/renderer-output-stamp.mjs +113 -0
- package/dist/esm-node/release-envelope/types.mjs +2 -3
- package/dist/esm-node/release-identity.mjs +8 -5
- package/dist/esm-node/renderer-build-identity.mjs +83 -0
- package/dist/esm-node/runtime-package-resolution.mjs +61 -0
- package/dist/esm-node/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/dist/esm-node/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/dist/esm-node/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/dist/esm-node/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/dist/esm-node/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/dist/esm-node/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/dist/esm-node/workspace-topology.mjs +22 -0
- package/dist/types/backend-federation-build/codegen.d.ts +30 -0
- package/dist/types/backend-federation-build/config.d.ts +10 -57
- package/dist/types/backend-federation-build/emit.d.ts +12 -2
- package/dist/types/backend-federation-build/index.d.ts +1 -1
- package/dist/types/build-config/build-environment.d.ts +1 -9
- package/dist/types/build-config/internal-effect-discovery.d.ts +4 -0
- package/dist/types/build-config/public.d.ts +1 -1
- package/dist/types/build-config/remote-address.d.ts +3 -0
- package/dist/types/cloudflare/artifacts.d.ts +7 -6
- package/dist/types/cloudflare/constants.d.ts +1 -1
- package/dist/types/cloudflare/delivery-unit.d.ts +38 -7
- package/dist/types/cloudflare/native-renderer.d.ts +30 -0
- package/dist/types/cloudflare/renderer-identity.d.ts +25 -0
- package/dist/types/cloudflare/worker-manifest.d.ts +17 -2
- package/dist/types/cloudflare/worker-options.d.ts +20 -0
- package/dist/types/cloudflare/wrangler-config.d.ts +55 -2
- package/dist/types/cloudflare-builder.d.ts +51 -8
- package/dist/types/cloudflare-output-contract.d.ts +5 -3
- package/dist/types/cloudflare-output-verifier/identity.d.ts +7 -3
- package/dist/types/cloudflare-output-verifier/worker-bundles.d.ts +2 -2
- package/dist/types/config.d.ts +98 -13
- package/dist/types/deploy-output/plugin.d.ts +29 -9
- package/dist/types/deploy-output/public-assets.d.ts +51 -0
- package/dist/types/deploy-output/target.d.ts +28 -5
- package/dist/types/deploy-output/trace-files.d.ts +17 -0
- package/dist/types/module-federation-config/exposes.d.ts +11 -0
- package/dist/types/module-federation-config/index.d.ts +5 -0
- package/dist/types/module-federation-config/inspect.d.ts +2 -0
- package/dist/types/module-federation-config/object-literal.d.ts +4 -0
- package/dist/types/module-federation-config/syntax.d.ts +7 -0
- package/dist/types/module-federation-config/types.d.ts +20 -0
- package/dist/types/native-type-checker.d.ts +26 -3
- package/dist/types/policy-defaults.d.ts +56 -0
- package/dist/types/release-envelope/canonical.d.ts +5 -5
- package/dist/types/release-envelope/contract.d.mts +8 -0
- package/dist/types/release-envelope/framework-output.d.ts +23 -13
- package/dist/types/release-envelope/index.d.ts +17 -5
- package/dist/types/release-envelope/plugin.d.ts +10 -6
- package/dist/types/release-envelope/renderer-output-stamp.d.ts +34 -0
- package/dist/types/release-envelope/types.d.ts +42 -4
- package/dist/types/release-identity.d.ts +3 -2
- package/dist/types/renderer-build-identity.d.ts +30 -0
- package/dist/types/runtime-package-resolution.d.ts +28 -0
- package/dist/types/templates/cloudflare-worker-route-data.d.mts +14 -0
- package/dist/types/workspace-topology.d.ts +91 -0
- package/package.json +97 -26
- package/src/backend-federation-build/codegen.ts +28 -19
- package/src/backend-federation-build/config.ts +189 -123
- package/src/backend-federation-build/emit.ts +119 -38
- package/src/backend-federation-build/index.ts +4 -1
- package/src/build-config/build-environment.ts +59 -285
- package/src/build-config/internal-effect-discovery.ts +239 -0
- package/src/build-config/public.ts +0 -1
- package/src/build-config/remote-address.ts +33 -0
- package/src/cloudflare/artifacts.ts +22 -43
- package/src/cloudflare/delivery-unit.ts +283 -60
- package/src/cloudflare/index.ts +35 -19
- package/src/cloudflare/native-renderer.ts +117 -0
- package/src/cloudflare/renderer-identity.ts +171 -0
- package/src/cloudflare/worker-manifest.ts +108 -10
- package/src/cloudflare/worker-options.ts +60 -0
- package/src/cloudflare/wrangler-config.ts +390 -14
- package/src/cloudflare-builder.ts +543 -170
- package/src/cloudflare-output-contract.ts +45 -2
- package/src/cloudflare-output-verifier/identity.ts +138 -7
- package/src/cloudflare-output-verifier/index.ts +20 -0
- package/src/cloudflare-output-verifier/manifest.ts +77 -0
- package/src/cloudflare-output-verifier/mutation-policy.ts +11 -1
- package/src/cloudflare-output-verifier/worker-bundles.ts +27 -11
- package/src/config.ts +101 -19
- package/src/deploy-output/npmAliases.ts +141 -4
- package/src/deploy-output/plugin.ts +55 -18
- package/src/deploy-output/public-assets.ts +224 -0
- package/src/deploy-output/target.ts +97 -14
- package/src/deploy-output/trace-files.ts +80 -0
- package/src/module-federation-config/exposes.ts +46 -0
- package/src/module-federation-config/index.ts +22 -0
- package/src/module-federation-config/inspect.ts +157 -0
- package/src/module-federation-config/object-literal.ts +76 -0
- package/src/module-federation-config/syntax.ts +212 -0
- package/src/module-federation-config/types.ts +22 -0
- package/src/native-type-checker.ts +281 -26
- package/src/policy-defaults.ts +157 -0
- package/src/release-envelope/canonical.ts +6 -18
- package/src/release-envelope/contract.mjs +28 -0
- package/src/release-envelope/framework-output.ts +681 -156
- package/src/release-envelope/index.ts +315 -60
- package/src/release-envelope/plugin.ts +54 -38
- package/src/release-envelope/renderer-output-stamp.ts +210 -0
- package/src/release-envelope/types.ts +75 -6
- package/src/release-identity.ts +19 -2
- package/src/renderer-build-identity.ts +168 -0
- package/src/runtime-package-resolution.ts +115 -0
- package/src/templates/cloudflare-entry.001-bootstrap-security.mjs +14 -6
- package/src/templates/cloudflare-entry.002-assets-routes.mjs +10 -2
- package/src/templates/cloudflare-entry.004-rendering-css.mjs +403 -96
- package/src/templates/cloudflare-entry.005-worker-dispatch.mjs +530 -103
- package/src/templates/cloudflare-entry.006-fetch-handler.mjs +26 -7
- package/src/templates/cloudflare-worker-route-data.mjs +1069 -0
- package/src/workspace-topology.ts +125 -0
- package/dist/cjs/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/cjs/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/cjs/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/cjs/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/esm/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/esm/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/esm/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/esm/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/esm-node/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/dist/esm-node/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/dist/esm-node/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/dist/esm-node/templates/cloudflare-worker-path.mjs +0 -98
- package/dist/types/templates/cloudflare-worker-fs-promises.d.mts +0 -5
- package/dist/types/templates/cloudflare-worker-loadable-server.d.mts +0 -48
- package/dist/types/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +0 -13
- package/dist/types/templates/cloudflare-worker-path.d.mts +0 -21
- package/src/templates/cloudflare-worker-fs-promises.mjs +0 -11
- package/src/templates/cloudflare-worker-loadable-server.mjs +0 -281
- package/src/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +0 -14
- package/src/templates/cloudflare-worker-path.mjs +0 -98
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { RendererIdentity, RendererProfile, RendererRouterBindings } from '@modern-js/backend-federation-contracts';
|
|
2
|
+
import { MICROVERTICAL_RELEASE_ENVELOPE_KIND, MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION, SHELL_RELEASE_ENVELOPE_KIND } from './contract.mjs';
|
|
3
|
+
export { MICROVERTICAL_RELEASE_ENVELOPE_KIND, MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION, SHELL_RELEASE_ENVELOPE_KIND, };
|
|
4
|
+
export type ReleaseEnvelopeKind = typeof MICROVERTICAL_RELEASE_ENVELOPE_KIND | typeof SHELL_RELEASE_ENVELOPE_KIND;
|
|
3
5
|
export declare const MICROVERTICAL_RELEASE_TARGETS: readonly ['node', 'cloudflare'];
|
|
4
6
|
export type MicroVerticalReleaseTarget = (typeof MICROVERTICAL_RELEASE_TARGETS)[number];
|
|
5
7
|
export type MicroVerticalReleaseIdentity = {
|
|
@@ -32,31 +34,67 @@ export type MicroVerticalReleaseSurfaces = {
|
|
|
32
34
|
uiClient: string[];
|
|
33
35
|
ssr: string[];
|
|
34
36
|
apiBackend: string[];
|
|
35
|
-
backendFederation
|
|
37
|
+
backendFederation?: {
|
|
36
38
|
manifest: string;
|
|
37
39
|
container: string;
|
|
38
40
|
};
|
|
39
41
|
};
|
|
42
|
+
export type MicroVerticalReleaseUi = {
|
|
43
|
+
rendererIdentity: RendererIdentity;
|
|
44
|
+
rendererProfile: RendererProfile;
|
|
45
|
+
routerBindings: RendererRouterBindings;
|
|
46
|
+
};
|
|
47
|
+
/** A Shell consumes remotes; it never publishes a backend federation pair. */
|
|
48
|
+
export type ShellReleaseSurfaces = {
|
|
49
|
+
uiClient: string[];
|
|
50
|
+
ssr: string[];
|
|
51
|
+
apiBackend: string[];
|
|
52
|
+
};
|
|
53
|
+
export type ReleaseSurfaces = MicroVerticalReleaseSurfaces | ShellReleaseSurfaces;
|
|
40
54
|
export type MicroVerticalReleaseEnvelopePayload = {
|
|
41
55
|
schemaVersion: typeof MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION;
|
|
42
56
|
kind: typeof MICROVERTICAL_RELEASE_ENVELOPE_KIND;
|
|
43
57
|
target: MicroVerticalReleaseTarget;
|
|
44
58
|
identity: MicroVerticalReleaseIdentity;
|
|
59
|
+
ui?: MicroVerticalReleaseUi;
|
|
45
60
|
artifacts: MicroVerticalReleaseArtifact[];
|
|
46
61
|
surfaces: MicroVerticalReleaseSurfaces;
|
|
47
62
|
};
|
|
48
63
|
export type MicroVerticalReleaseEnvelope = MicroVerticalReleaseEnvelopePayload & {
|
|
49
64
|
envelopeDigest: string;
|
|
50
65
|
};
|
|
66
|
+
export type ShellReleaseEnvelopePayload = {
|
|
67
|
+
schemaVersion: typeof MICROVERTICAL_RELEASE_ENVELOPE_SCHEMA_VERSION;
|
|
68
|
+
kind: typeof SHELL_RELEASE_ENVELOPE_KIND;
|
|
69
|
+
target: MicroVerticalReleaseTarget;
|
|
70
|
+
identity: MicroVerticalReleaseIdentity;
|
|
71
|
+
ui?: MicroVerticalReleaseUi;
|
|
72
|
+
artifacts: MicroVerticalReleaseArtifact[];
|
|
73
|
+
surfaces: ShellReleaseSurfaces;
|
|
74
|
+
};
|
|
75
|
+
export type ShellReleaseEnvelope = ShellReleaseEnvelopePayload & {
|
|
76
|
+
envelopeDigest: string;
|
|
77
|
+
};
|
|
78
|
+
export type ReleaseEnvelopePayload = MicroVerticalReleaseEnvelopePayload | ShellReleaseEnvelopePayload;
|
|
79
|
+
export type ReleaseEnvelope = MicroVerticalReleaseEnvelope | ShellReleaseEnvelope;
|
|
51
80
|
export type CreateMicroVerticalReleaseEnvelopeInput = {
|
|
52
81
|
artifactRoot: string;
|
|
53
82
|
target: MicroVerticalReleaseTarget;
|
|
54
83
|
identity: MicroVerticalReleaseIdentity;
|
|
84
|
+
ui?: MicroVerticalReleaseUi;
|
|
55
85
|
artifacts: MicroVerticalReleaseArtifactInput[];
|
|
86
|
+
} & ({
|
|
87
|
+
kind?: typeof MICROVERTICAL_RELEASE_ENVELOPE_KIND;
|
|
56
88
|
surfaces: MicroVerticalReleaseSurfaces;
|
|
57
|
-
}
|
|
89
|
+
} | {
|
|
90
|
+
kind: typeof SHELL_RELEASE_ENVELOPE_KIND;
|
|
91
|
+
surfaces: ShellReleaseSurfaces;
|
|
92
|
+
});
|
|
58
93
|
export type VerifyMicroVerticalReleaseEnvelopeOptions = {
|
|
59
94
|
artifactRoot: string;
|
|
60
95
|
logicalPathForArtifact?: (artifact: MicroVerticalReleaseArtifact) => string;
|
|
61
96
|
expectedTarget?: MicroVerticalReleaseTarget;
|
|
97
|
+
expectedKind?: ReleaseEnvelopeKind;
|
|
98
|
+
expectedRendererIdentity?: RendererIdentity;
|
|
99
|
+
expectedRendererProfile?: RendererProfile;
|
|
62
100
|
};
|
|
@@ -7,10 +7,11 @@ export declare const createUltramodernReleaseBuildMarker: ({ generationBuildMark
|
|
|
7
7
|
sourceRevision: string;
|
|
8
8
|
unitId: string;
|
|
9
9
|
}) => string;
|
|
10
|
-
export declare const resolveUltramodernSourceRevision: (workspaceRoot?: string, configuredSourceRevision?: string) => string;
|
|
11
|
-
export declare const resolveUltramodernReleaseIdentity: ({ generationBuildMarker, sourceRevision: configuredSourceRevision, unitId, workspaceRoot, }: {
|
|
10
|
+
export declare const resolveUltramodernSourceRevision: (workspaceRoot?: string, configuredSourceRevision?: string, environment?: Readonly<NodeJS.ProcessEnv>) => string;
|
|
11
|
+
export declare const resolveUltramodernReleaseIdentity: ({ generationBuildMarker, sourceRevision: configuredSourceRevision, unitId, workspaceRoot, environment, }: {
|
|
12
12
|
generationBuildMarker: string;
|
|
13
13
|
sourceRevision?: string;
|
|
14
14
|
unitId: string;
|
|
15
15
|
workspaceRoot?: string;
|
|
16
|
+
environment?: Readonly<NodeJS.ProcessEnv>;
|
|
16
17
|
}) => UltramodernReleaseIdentity;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type RendererIdentity, type RendererName, type RendererProfile, type RendererRouterBindings, type RouterFramework } from '@modern-js/backend-federation-contracts';
|
|
2
|
+
export type RendererProfileKeyInput = RendererProfile & {
|
|
3
|
+
readonly dependencies?: Readonly<Record<string, string>>;
|
|
4
|
+
};
|
|
5
|
+
export interface RendererBuildIdentityOptions {
|
|
6
|
+
projectRoot: string;
|
|
7
|
+
renderer: RendererName;
|
|
8
|
+
profile: RendererProfileKeyInput;
|
|
9
|
+
entryNames: readonly string[];
|
|
10
|
+
mode: 'development' | 'production';
|
|
11
|
+
/** Delivery-unit app id; defaults to the application package name. */
|
|
12
|
+
appId?: string;
|
|
13
|
+
/** Externally authenticated source revision (delivery unit or CI). */
|
|
14
|
+
sourceRevision?: string;
|
|
15
|
+
/** Actual final entry ownership, supplied by the selected renderer composition. */
|
|
16
|
+
routerBindings: RendererRouterBindings;
|
|
17
|
+
/** Admitted router frameworks, supplied by the selected renderer owner. */
|
|
18
|
+
routerFrameworks?: readonly RouterFramework[];
|
|
19
|
+
}
|
|
20
|
+
export interface RendererBuildIdentities {
|
|
21
|
+
readonly identities: Readonly<Record<string, RendererIdentity>>;
|
|
22
|
+
readonly buildId: string;
|
|
23
|
+
readonly profileKey: string;
|
|
24
|
+
readonly sourceRevision: string;
|
|
25
|
+
readonly routerBindings: RendererRouterBindings;
|
|
26
|
+
}
|
|
27
|
+
/** Renderer, protocol and installed renderer/framework/compiler versions. */
|
|
28
|
+
export declare function rendererProfileKey(profile: RendererProfileKeyInput): string;
|
|
29
|
+
/** Resolve once per build before emitting entries; never rehashes sources. */
|
|
30
|
+
export declare function resolveRendererBuildIdentities(options: RendererBuildIdentityOptions): RendererBuildIdentities;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { RsbuildPlugin } from '@rsbuild/core';
|
|
2
|
+
/**
|
|
3
|
+
* A generated `runtime-register.js` lives inside the *application*, so every
|
|
4
|
+
* runtime plugin it imports has to resolve from the application's own
|
|
5
|
+
* `node_modules`. Packages registered by a CLI plugin are dependencies of that
|
|
6
|
+
* CLI plugin, not of the application, and under an isolated (pnpm) linker the
|
|
7
|
+
* application cannot see them — the build fails with `Module not found`.
|
|
8
|
+
*
|
|
9
|
+
* Instead of freezing a single resolved file (which would lock one export
|
|
10
|
+
* condition and break the web/node split), the registering package contributes
|
|
11
|
+
* the `node_modules` directory that actually hosts the package as a *fallback*
|
|
12
|
+
* module directory. Bare specifiers keep their normal `exports` resolution, the
|
|
13
|
+
* application's own copy still wins when it declares the dependency, and both
|
|
14
|
+
* the workspace source layout and a published pnpm layout work.
|
|
15
|
+
*/
|
|
16
|
+
export declare const findHostingModuleDirectory: (packageName: string, fromDirectory: string) => string | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Collect the fallback module directories for the given packages, starting the
|
|
19
|
+
* search at the module that registers them.
|
|
20
|
+
*/
|
|
21
|
+
export declare const collectRuntimePackageModuleDirectories: (packageNames: readonly string[], registrarUrl: string) => string[];
|
|
22
|
+
/**
|
|
23
|
+
* Rsbuild plugin that adds the given directories as fallback module roots for
|
|
24
|
+
* every environment (web, node and worker bundles alike).
|
|
25
|
+
*/
|
|
26
|
+
export declare const createRuntimePackageResolutionPlugin: (directories: readonly string[]) => RsbuildPlugin;
|
|
27
|
+
/** `true` when the package resolves from the registering module at all. */
|
|
28
|
+
export declare const canResolveRuntimePackage: (packageName: string, registrarUrl: string) => boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create the worker route data request handler for an entry's route loaders
|
|
3
|
+
* (the `routes` export of its generated `route-server-loaders.js`).
|
|
4
|
+
*
|
|
5
|
+
* The handler takes the Node data handler's options and resolves to
|
|
6
|
+
* `undefined` for requests that are not route data requests of a known entry,
|
|
7
|
+
* so the caller renders the page instead.
|
|
8
|
+
*/
|
|
9
|
+
export declare function createRouteDataRequestHandler(routes: any): ({ request, serverRoutes, context, onTiming }: {
|
|
10
|
+
context?: {} | undefined;
|
|
11
|
+
onTiming: any;
|
|
12
|
+
request: any;
|
|
13
|
+
serverRoutes: any;
|
|
14
|
+
}) => Promise<any>;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { CloudflareWorkerSecurityConfig } from './config.js';
|
|
2
|
+
export declare const REFERENCE_TOPOLOGY_PATH = "topology/reference-topology.json";
|
|
3
|
+
export declare const DEVELOPMENT_OVERLAY_PATH = "topology/local-overlays/development.json";
|
|
4
|
+
/** Fields consumed from the existing workspace topology by native plugins. */
|
|
5
|
+
export type TopologyApp = {
|
|
6
|
+
id?: unknown;
|
|
7
|
+
domain?: unknown;
|
|
8
|
+
kind?: unknown;
|
|
9
|
+
path?: unknown;
|
|
10
|
+
package?: unknown;
|
|
11
|
+
portEnv?: unknown;
|
|
12
|
+
surfaceProfile?: unknown;
|
|
13
|
+
verticalRefs?: unknown;
|
|
14
|
+
cloudflare?: {
|
|
15
|
+
workerName?: unknown;
|
|
16
|
+
publicUrlEnv?: unknown;
|
|
17
|
+
compatibilityDate?: unknown;
|
|
18
|
+
security?: CloudflareWorkerSecurityConfig;
|
|
19
|
+
};
|
|
20
|
+
api?: {
|
|
21
|
+
bff?: {
|
|
22
|
+
prefix?: unknown;
|
|
23
|
+
};
|
|
24
|
+
protocol?: unknown;
|
|
25
|
+
rpcPath?: unknown;
|
|
26
|
+
rpcSerialization?: unknown;
|
|
27
|
+
stem?: unknown;
|
|
28
|
+
};
|
|
29
|
+
moduleFederation?: {
|
|
30
|
+
name?: unknown;
|
|
31
|
+
manifestUrl?: unknown;
|
|
32
|
+
exposes?: unknown;
|
|
33
|
+
verticalRefs?: unknown;
|
|
34
|
+
remotes?: unknown;
|
|
35
|
+
};
|
|
36
|
+
backendFederation?: {
|
|
37
|
+
name?: unknown;
|
|
38
|
+
versionBoundary?: {
|
|
39
|
+
ui?: {
|
|
40
|
+
manifestUrl?: unknown;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
executionSurfaces?: {
|
|
44
|
+
node?: {
|
|
45
|
+
remoteName?: unknown;
|
|
46
|
+
manifestUrl?: unknown;
|
|
47
|
+
containerEntry?: unknown;
|
|
48
|
+
remoteType?: unknown;
|
|
49
|
+
};
|
|
50
|
+
cloudflare?: {
|
|
51
|
+
workerName?: unknown;
|
|
52
|
+
workerDispatch?: {
|
|
53
|
+
serviceBinding?: unknown;
|
|
54
|
+
serviceBindingEnv?: unknown;
|
|
55
|
+
dispatchWorkerNameEnv?: unknown;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
deliveryUnit?: {
|
|
61
|
+
unitId?: unknown;
|
|
62
|
+
buildMarker?: unknown;
|
|
63
|
+
sourceRevision?: unknown;
|
|
64
|
+
packageName?: unknown;
|
|
65
|
+
version?: unknown;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
export type DevelopmentOverlay = {
|
|
69
|
+
schemaVersion?: unknown;
|
|
70
|
+
ports?: Record<string, unknown>;
|
|
71
|
+
manifests?: Record<string, unknown>;
|
|
72
|
+
serverExecution?: Record<string, {
|
|
73
|
+
node?: {
|
|
74
|
+
remoteName?: unknown;
|
|
75
|
+
manifestUrl?: unknown;
|
|
76
|
+
containerEntry?: unknown;
|
|
77
|
+
remoteType?: unknown;
|
|
78
|
+
};
|
|
79
|
+
}>;
|
|
80
|
+
};
|
|
81
|
+
export type ReferenceTopology = {
|
|
82
|
+
schemaVersion?: unknown;
|
|
83
|
+
shell?: TopologyApp;
|
|
84
|
+
shells?: TopologyApp[];
|
|
85
|
+
verticals?: TopologyApp[];
|
|
86
|
+
};
|
|
87
|
+
export declare const normalizeRelativePath: (value: string) => string;
|
|
88
|
+
/** Shared by the generated route and the native Worker service binding. */
|
|
89
|
+
export declare const distributedSsrFragmentSlug: (expose: string) => string;
|
|
90
|
+
export declare const distributedSsrFragmentRoute: (expose: string) => string;
|
|
91
|
+
export declare const findWorkspaceRoot: (appDirectory: string) => string | undefined;
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bleedingdev/modern-js-app-tools-extensions",
|
|
3
3
|
"description": "Fork-owned UltraModern.js app-tools extensions for Cloudflare delivery and release envelopes.",
|
|
4
|
-
"homepage": "https://github.com/
|
|
4
|
+
"homepage": "https://github.com/ultramodernjs/ultramodern.js#readme",
|
|
5
5
|
"bugs": {
|
|
6
|
-
"url": "https://github.com/
|
|
6
|
+
"url": "https://github.com/ultramodernjs/ultramodern.js/issues"
|
|
7
7
|
},
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/
|
|
10
|
+
"url": "git+https://github.com/ultramodernjs/ultramodern.js.git",
|
|
11
11
|
"directory": "packages/solutions/app-tools-extensions"
|
|
12
12
|
},
|
|
13
13
|
"license": "MIT",
|
|
14
|
-
"version": "3.9.
|
|
14
|
+
"version": "3.9.3-ultramodern.1",
|
|
15
15
|
"files": [
|
|
16
16
|
"dist",
|
|
17
17
|
"src"
|
|
@@ -62,6 +62,11 @@
|
|
|
62
62
|
"import": "./dist/esm-node/cloudflare-output-verifier/*.mjs",
|
|
63
63
|
"require": "./dist/cjs/cloudflare-output-verifier/*.js"
|
|
64
64
|
},
|
|
65
|
+
"./internal-effect-discovery": {
|
|
66
|
+
"types": "./dist/types/build-config/internal-effect-discovery.d.ts",
|
|
67
|
+
"import": "./dist/cjs/build-config/internal-effect-discovery.js",
|
|
68
|
+
"require": "./dist/cjs/build-config/internal-effect-discovery.js"
|
|
69
|
+
},
|
|
65
70
|
"./config": {
|
|
66
71
|
"types": "./dist/types/config.d.ts",
|
|
67
72
|
"import": "./dist/esm-node/config.mjs",
|
|
@@ -77,6 +82,16 @@
|
|
|
77
82
|
"import": "./dist/esm-node/release-envelope/*.mjs",
|
|
78
83
|
"require": "./dist/cjs/release-envelope/*.js"
|
|
79
84
|
},
|
|
85
|
+
"./release-envelope/contract": {
|
|
86
|
+
"types": "./dist/types/release-envelope/contract.d.mts",
|
|
87
|
+
"import": "./dist/esm-node/release-envelope/contract.mjs",
|
|
88
|
+
"require": "./dist/cjs/release-envelope/contract.js"
|
|
89
|
+
},
|
|
90
|
+
"./renderer-build-identity": {
|
|
91
|
+
"types": "./dist/types/renderer-build-identity.d.ts",
|
|
92
|
+
"import": "./dist/esm-node/renderer-build-identity.mjs",
|
|
93
|
+
"require": "./dist/cjs/renderer-build-identity.js"
|
|
94
|
+
},
|
|
80
95
|
"./release-identity": {
|
|
81
96
|
"types": "./dist/types/release-identity.d.ts",
|
|
82
97
|
"import": "./dist/esm-node/release-identity.mjs",
|
|
@@ -87,6 +102,16 @@
|
|
|
87
102
|
"import": "./dist/esm-node/native-type-checker.mjs",
|
|
88
103
|
"require": "./dist/cjs/native-type-checker.js"
|
|
89
104
|
},
|
|
105
|
+
"./runtime-package-resolution": {
|
|
106
|
+
"types": "./dist/types/runtime-package-resolution.d.ts",
|
|
107
|
+
"import": "./dist/esm-node/runtime-package-resolution.mjs",
|
|
108
|
+
"require": "./dist/cjs/runtime-package-resolution.js"
|
|
109
|
+
},
|
|
110
|
+
"./policy-defaults": {
|
|
111
|
+
"types": "./dist/types/policy-defaults.d.ts",
|
|
112
|
+
"import": "./dist/esm-node/policy-defaults.mjs",
|
|
113
|
+
"require": "./dist/cjs/policy-defaults.js"
|
|
114
|
+
},
|
|
90
115
|
"./build-config/precompress/plugin": {
|
|
91
116
|
"types": "./dist/types/build-config/precompress/plugin.d.ts",
|
|
92
117
|
"import": "./dist/esm-node/build-config/precompress/plugin.mjs",
|
|
@@ -106,6 +131,21 @@
|
|
|
106
131
|
"types": "./dist/types/deploy-output/target.d.ts",
|
|
107
132
|
"import": "./dist/esm-node/deploy-output/target.mjs",
|
|
108
133
|
"require": "./dist/cjs/deploy-output/target.js"
|
|
134
|
+
},
|
|
135
|
+
"./deploy-output/trace-files": {
|
|
136
|
+
"types": "./dist/types/deploy-output/trace-files.d.ts",
|
|
137
|
+
"import": "./dist/esm-node/deploy-output/trace-files.mjs",
|
|
138
|
+
"require": "./dist/cjs/deploy-output/trace-files.js"
|
|
139
|
+
},
|
|
140
|
+
"./workspace-topology": {
|
|
141
|
+
"types": "./dist/types/workspace-topology.d.ts",
|
|
142
|
+
"import": "./dist/esm-node/workspace-topology.mjs",
|
|
143
|
+
"require": "./dist/cjs/workspace-topology.js"
|
|
144
|
+
},
|
|
145
|
+
"./module-federation-config": {
|
|
146
|
+
"types": "./dist/types/module-federation-config/index.d.ts",
|
|
147
|
+
"import": "./dist/esm-node/module-federation-config/index.mjs",
|
|
148
|
+
"require": "./dist/cjs/module-federation-config/index.js"
|
|
109
149
|
}
|
|
110
150
|
},
|
|
111
151
|
"typesVersions": {
|
|
@@ -125,44 +165,72 @@
|
|
|
125
165
|
],
|
|
126
166
|
"deploy-output/target": [
|
|
127
167
|
"./dist/types/deploy-output/target.d.ts"
|
|
168
|
+
],
|
|
169
|
+
"deploy-output/trace-files": [
|
|
170
|
+
"./dist/types/deploy-output/trace-files.d.ts"
|
|
128
171
|
]
|
|
129
172
|
}
|
|
130
173
|
},
|
|
131
174
|
"engines": {
|
|
132
|
-
"node": ">=26.
|
|
175
|
+
"node": ">=26.10.0"
|
|
133
176
|
},
|
|
134
177
|
"dependencies": {
|
|
135
|
-
"@babel/parser": "^8.0.
|
|
136
|
-
"@babel/traverse": "^8.0.
|
|
137
|
-
"@
|
|
138
|
-
"@modern-js/
|
|
139
|
-
"@modern-js/
|
|
140
|
-
"@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.9.
|
|
141
|
-
"@modern-js/
|
|
142
|
-
"@modern-js/server-
|
|
143
|
-
"@modern-js/
|
|
144
|
-
"@modern-js/
|
|
178
|
+
"@babel/parser": "^8.0.6",
|
|
179
|
+
"@babel/traverse": "^8.0.6",
|
|
180
|
+
"@modern-js/backend-federation-contracts": "npm:@bleedingdev/modern-js-backend-federation-contracts@3.9.3-ultramodern.1",
|
|
181
|
+
"@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.9.3-ultramodern.1",
|
|
182
|
+
"@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.9.3-ultramodern.1",
|
|
183
|
+
"@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.9.3-ultramodern.1",
|
|
184
|
+
"@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.9.3-ultramodern.1",
|
|
185
|
+
"@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.9.3-ultramodern.1",
|
|
186
|
+
"@modern-js/server-runtime-extensions": "npm:@bleedingdev/modern-js-server-runtime-extensions@3.9.3-ultramodern.1",
|
|
187
|
+
"@modern-js/surface-resolution": "npm:@bleedingdev/modern-js-surface-resolution@3.9.3-ultramodern.1",
|
|
188
|
+
"@modern-js/types": "npm:@bleedingdev/modern-js-types@3.9.3-ultramodern.1",
|
|
189
|
+
"@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.9.3-ultramodern.1",
|
|
145
190
|
"@swc/helpers": "^0.5.23",
|
|
191
|
+
"@vercel/nft": "^1.11.0",
|
|
146
192
|
"compression-webpack-plugin": "^12.0.0",
|
|
147
193
|
"esbuild": "^0.28.2",
|
|
148
|
-
"
|
|
194
|
+
"jsonc-parser": "3.3.1",
|
|
195
|
+
"std-env": "4.3.0"
|
|
149
196
|
},
|
|
150
197
|
"peerDependencies": {
|
|
151
|
-
"@
|
|
198
|
+
"@loadable/component": "5.16.7",
|
|
199
|
+
"@modern-js/runtime-renderer-extensions": "3.9.3-ultramodern.1",
|
|
200
|
+
"@rsbuild/core": "2.2.11",
|
|
201
|
+
"react": "^19.2.8"
|
|
202
|
+
},
|
|
203
|
+
"peerDependenciesMeta": {
|
|
204
|
+
"@loadable/component": {
|
|
205
|
+
"optional": true
|
|
206
|
+
},
|
|
207
|
+
"@modern-js/runtime-renderer-extensions": {
|
|
208
|
+
"optional": true
|
|
209
|
+
},
|
|
210
|
+
"react": {
|
|
211
|
+
"optional": true
|
|
212
|
+
}
|
|
152
213
|
},
|
|
153
214
|
"devDependencies": {
|
|
154
|
-
"@
|
|
155
|
-
"@modern-js/
|
|
156
|
-
"@
|
|
157
|
-
"@
|
|
158
|
-
"@
|
|
215
|
+
"@loadable/component": "5.16.7",
|
|
216
|
+
"@modern-js/bff-effect": "npm:@bleedingdev/modern-js-bff-effect@3.9.3-ultramodern.1",
|
|
217
|
+
"@modern-js/plugin-bff-extensions": "npm:@bleedingdev/modern-js-plugin-bff-extensions@3.9.3-ultramodern.1",
|
|
218
|
+
"@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.9.3-ultramodern.1",
|
|
219
|
+
"@modern-js/runtime-renderer-extensions": "npm:@bleedingdev/modern-js-runtime-renderer-extensions@3.9.3-ultramodern.1",
|
|
220
|
+
"@module-federation/modern-js-v3": "2.9.2",
|
|
221
|
+
"@module-federation/runtime-tools": "2.9.2",
|
|
222
|
+
"@rsbuild/core": "2.2.11",
|
|
223
|
+
"@rslib/core": "1.0.3",
|
|
159
224
|
"@scripts/rstest-config": "2.66.0",
|
|
160
225
|
"@types/babel__traverse": "7.28.0",
|
|
161
|
-
"@types/node": "^26.
|
|
162
|
-
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
226
|
+
"@types/node": "^26.6.3",
|
|
163
227
|
"core-js": "^3.50.0",
|
|
164
|
-
"effect": "4.0.0
|
|
165
|
-
"
|
|
228
|
+
"effect": "4.0.0",
|
|
229
|
+
"miniflare": "5.20260930.0-alpha",
|
|
230
|
+
"ndepe": "^0.1.13",
|
|
231
|
+
"pg": "8.23.1",
|
|
232
|
+
"react": "^19.3.0",
|
|
233
|
+
"react-dom": "^19.3.0"
|
|
166
234
|
},
|
|
167
235
|
"sideEffects": false,
|
|
168
236
|
"publishConfig": {
|
|
@@ -174,5 +242,8 @@
|
|
|
174
242
|
"build": "rslib build && pnpm run verify:public-surface",
|
|
175
243
|
"test": "rstest",
|
|
176
244
|
"verify:public-surface": "node ./tests/build-config/verify-public-surface.mjs"
|
|
245
|
+
},
|
|
246
|
+
"ultramodern": {
|
|
247
|
+
"sourceName": "@modern-js/app-tools-extensions"
|
|
177
248
|
}
|
|
178
249
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
2
|
import {
|
|
3
3
|
BACKEND_FEDERATION_EFFECT_EXPOSE as BACKEND_EXPOSE,
|
|
4
|
-
BACKEND_FEDERATION_MANIFEST_FILE as BACKEND_MANIFEST_FILE,
|
|
5
4
|
BACKEND_FEDERATION_REMOTE_ENTRY_FILE as BACKEND_REMOTE_ENTRY_FILE,
|
|
6
5
|
BACKEND_FEDERATION_CONTRACT_VERSION as CONTRACT_VERSION,
|
|
7
6
|
formatBackendFederationValidationErrors,
|
|
@@ -65,28 +64,34 @@ export const createBackendRemoteEntrySource = async (
|
|
|
65
64
|
...(app.sourceRevision ? { sourceRevision: app.sourceRevision } : {}),
|
|
66
65
|
};
|
|
67
66
|
const source = `// Generated by Modern.js backend federation build.
|
|
68
|
-
import
|
|
67
|
+
import { adoptEffectBffShareScope } from '@modern-js/bff-effect/effect-edge';
|
|
69
68
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
69
|
+
// The expose evaluates lazily so defineEffectBff registers its handler
|
|
70
|
+
// factories with the registry the host shares through init().
|
|
71
|
+
let exposedModule;
|
|
72
|
+
const loadExposedModule = () =>
|
|
73
|
+
(exposedModule ??= import(${JSON.stringify(effectApiSpecifier)}).then(exposedNamespace => ({
|
|
74
|
+
...exposedNamespace,
|
|
75
|
+
backendFederationContract: {
|
|
76
|
+
...(exposedNamespace.backendFederationContract ?? {}),
|
|
77
|
+
compatibility: {
|
|
78
|
+
...(exposedNamespace.backendFederationContract?.compatibility ?? {}),
|
|
79
|
+
...${JSON.stringify(compatibility)},
|
|
80
|
+
},
|
|
81
|
+
name: ${JSON.stringify(app.backendName)},
|
|
82
|
+
role: 'microvertical-server',
|
|
83
|
+
runtimeFramework: 'effect',
|
|
84
|
+
strictEffectApproach: true,
|
|
77
85
|
},
|
|
78
|
-
|
|
79
|
-
role: 'microvertical-server',
|
|
80
|
-
runtimeFramework: 'effect',
|
|
81
|
-
strictEffectApproach: true,
|
|
82
|
-
},
|
|
83
|
-
};
|
|
86
|
+
})));
|
|
84
87
|
const exposedModules = {
|
|
85
|
-
${JSON.stringify(BACKEND_EXPOSE)}:
|
|
88
|
+
${JSON.stringify(BACKEND_EXPOSE)}: loadExposedModule,
|
|
86
89
|
};
|
|
87
90
|
const __modernjsBackendFederation = ${JSON.stringify(containerMetadata)};
|
|
88
91
|
|
|
89
|
-
function init() {
|
|
92
|
+
function init(shareScope) {
|
|
93
|
+
return adoptEffectBffShareScope(shareScope);
|
|
94
|
+
}
|
|
90
95
|
|
|
91
96
|
function get(id) {
|
|
92
97
|
const load = exposedModules[id];
|
|
@@ -204,8 +209,12 @@ export const createBackendManifest = (
|
|
|
204
209
|
source: {
|
|
205
210
|
module: sourceModule,
|
|
206
211
|
},
|
|
207
|
-
|
|
208
|
-
|
|
212
|
+
...(app.apiProtocol === 'rpc'
|
|
213
|
+
? { rpcPath: app.rpcPath, rpcSerialization: 'json' }
|
|
214
|
+
: {
|
|
215
|
+
readinessPath: `${app.apiPrefix}/${app.apiStem}/readiness`,
|
|
216
|
+
openapiPath: `${app.apiPrefix}/openapi.json`,
|
|
217
|
+
}),
|
|
209
218
|
...(app.deliveryUnit ? { deliveryUnit: app.deliveryUnit } : {}),
|
|
210
219
|
versionBoundary: {
|
|
211
220
|
invariant: 'web-and-api-same-build',
|