@bleedingdev/modern-js-app-tools 3.5.0-ultramodern.4 → 3.5.0-ultramodern.41

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.
Files changed (159) hide show
  1. package/dist/cjs/builder/generator/getBuilderEnvironments.js +1 -0
  2. package/dist/cjs/builder/shared/builderPlugins/adapterPrecompress.js +13 -4
  3. package/dist/cjs/builder/shared/lazyCompilation.js +2 -10
  4. package/dist/cjs/commands/index.js +0 -4
  5. package/dist/cjs/index.js +37 -66
  6. package/dist/cjs/plugins/backend-federation/codegen.js +209 -0
  7. package/dist/cjs/plugins/backend-federation/config.js +217 -0
  8. package/dist/cjs/plugins/backend-federation/emit.js +139 -0
  9. package/dist/cjs/plugins/backendFederationBuild.js +53 -0
  10. package/dist/cjs/plugins/deploy/index.js +4 -4
  11. package/dist/cjs/plugins/deploy/platforms/cloudflare/artifacts.js +127 -0
  12. package/dist/cjs/plugins/deploy/platforms/cloudflare/constants.js +137 -0
  13. package/dist/cjs/plugins/deploy/platforms/cloudflare/delivery-unit.js +121 -0
  14. package/dist/cjs/plugins/deploy/platforms/cloudflare/i18n-worker.js +135 -0
  15. package/dist/cjs/plugins/deploy/platforms/cloudflare/index.js +126 -0
  16. package/dist/cjs/plugins/deploy/platforms/cloudflare/security-policies.js +205 -0
  17. package/dist/cjs/plugins/deploy/platforms/cloudflare/types.js +18 -0
  18. package/dist/cjs/plugins/deploy/platforms/cloudflare/utils.js +66 -0
  19. package/dist/cjs/plugins/deploy/platforms/cloudflare/worker-manifest.js +178 -0
  20. package/dist/cjs/plugins/deploy/platforms/cloudflare/wrangler-config.js +189 -0
  21. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-contract.js +91 -0
  22. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-plan.js +93 -0
  23. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/identity.js +83 -0
  24. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js +184 -0
  25. package/dist/cjs/{baseline.js → plugins/deploy/platforms/cloudflare-output-verifier/issues.js} +19 -10
  26. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/manifest.js +83 -0
  27. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.js +149 -0
  28. package/dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.js +131 -0
  29. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +22 -0
  30. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +0 -0
  31. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +0 -0
  32. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +0 -0
  33. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +0 -0
  34. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +32 -0
  35. package/dist/esm/builder/generator/getBuilderEnvironments.mjs +1 -0
  36. package/dist/esm/builder/shared/builderPlugins/adapterPrecompress.mjs +13 -4
  37. package/dist/esm/builder/shared/lazyCompilation.mjs +1 -3
  38. package/dist/esm/commands/index.mjs +0 -1
  39. package/dist/esm/index.mjs +3 -4
  40. package/dist/esm/plugins/analyze/getHtmlTemplate.mjs +2 -2
  41. package/dist/esm/plugins/analyze/isDefaultExportFunction.mjs +2 -2
  42. package/dist/esm/plugins/backend-federation/codegen.mjs +158 -0
  43. package/dist/esm/plugins/backend-federation/config.mjs +141 -0
  44. package/dist/esm/plugins/backend-federation/emit.mjs +88 -0
  45. package/dist/esm/plugins/backendFederationBuild.mjs +1 -0
  46. package/dist/esm/plugins/deploy/index.mjs +1 -1
  47. package/dist/esm/plugins/deploy/platforms/cloudflare/artifacts.mjs +64 -0
  48. package/dist/esm/plugins/deploy/platforms/cloudflare/constants.mjs +33 -0
  49. package/dist/esm/plugins/deploy/platforms/cloudflare/delivery-unit.mjs +70 -0
  50. package/dist/esm/plugins/deploy/platforms/cloudflare/i18n-worker.mjs +97 -0
  51. package/dist/esm/plugins/deploy/platforms/cloudflare/index.mjs +78 -0
  52. package/dist/esm/plugins/deploy/platforms/cloudflare/security-policies.mjs +167 -0
  53. package/dist/esm/plugins/deploy/platforms/cloudflare/types.mjs +0 -0
  54. package/dist/esm/plugins/deploy/platforms/cloudflare/utils.mjs +12 -0
  55. package/dist/esm/plugins/deploy/platforms/cloudflare/worker-manifest.mjs +118 -0
  56. package/dist/esm/plugins/deploy/platforms/cloudflare/wrangler-config.mjs +135 -0
  57. package/dist/esm/plugins/deploy/platforms/cloudflare-output-contract.mjs +17 -0
  58. package/dist/esm/plugins/deploy/platforms/cloudflare-output-plan.mjs +45 -0
  59. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/identity.mjs +45 -0
  60. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +129 -0
  61. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/issues.mjs +10 -0
  62. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/manifest.mjs +45 -0
  63. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.mjs +97 -0
  64. package/dist/esm/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +68 -0
  65. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +22 -0
  66. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +0 -0
  67. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +0 -0
  68. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +0 -0
  69. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +0 -0
  70. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +32 -0
  71. package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +1 -0
  72. package/dist/esm-node/builder/shared/builderPlugins/adapterPrecompress.mjs +13 -4
  73. package/dist/esm-node/builder/shared/lazyCompilation.mjs +1 -3
  74. package/dist/esm-node/commands/index.mjs +0 -1
  75. package/dist/esm-node/index.mjs +3 -4
  76. package/dist/esm-node/plugins/analyze/getHtmlTemplate.mjs +2 -2
  77. package/dist/esm-node/plugins/analyze/isDefaultExportFunction.mjs +2 -2
  78. package/dist/esm-node/plugins/backend-federation/codegen.mjs +159 -0
  79. package/dist/esm-node/plugins/backend-federation/config.mjs +142 -0
  80. package/dist/esm-node/plugins/backend-federation/emit.mjs +89 -0
  81. package/dist/esm-node/plugins/backendFederationBuild.mjs +2 -0
  82. package/dist/esm-node/plugins/deploy/index.mjs +1 -1
  83. package/dist/esm-node/plugins/deploy/platforms/cloudflare/artifacts.mjs +65 -0
  84. package/dist/esm-node/plugins/deploy/platforms/cloudflare/constants.mjs +34 -0
  85. package/dist/esm-node/plugins/deploy/platforms/cloudflare/delivery-unit.mjs +71 -0
  86. package/dist/esm-node/plugins/deploy/platforms/cloudflare/i18n-worker.mjs +98 -0
  87. package/dist/esm-node/plugins/deploy/platforms/cloudflare/index.mjs +79 -0
  88. package/dist/esm-node/plugins/deploy/platforms/cloudflare/security-policies.mjs +168 -0
  89. package/dist/esm-node/plugins/deploy/platforms/cloudflare/types.mjs +1 -0
  90. package/dist/esm-node/plugins/deploy/platforms/cloudflare/utils.mjs +13 -0
  91. package/dist/esm-node/plugins/deploy/platforms/cloudflare/worker-manifest.mjs +119 -0
  92. package/dist/esm-node/plugins/deploy/platforms/cloudflare/wrangler-config.mjs +136 -0
  93. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-contract.mjs +18 -0
  94. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-plan.mjs +46 -0
  95. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/identity.mjs +46 -0
  96. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs +130 -0
  97. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/issues.mjs +11 -0
  98. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/manifest.mjs +46 -0
  99. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.mjs +98 -0
  100. package/dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.mjs +69 -0
  101. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.mjs +22 -0
  102. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.mjs +0 -0
  103. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.mjs +0 -0
  104. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.mjs +0 -0
  105. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.mjs +0 -0
  106. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.006-fetch-handler.mjs +32 -0
  107. package/dist/types/builder/generator/createCopyPattern.d.ts +7 -5
  108. package/dist/types/builder/shared/lazyCompilation.d.ts +2 -4
  109. package/dist/types/commands/index.d.ts +0 -1
  110. package/dist/types/index.d.ts +0 -2
  111. package/dist/types/plugins/backend-federation/codegen.d.ts +83 -0
  112. package/dist/types/plugins/backend-federation/config.d.ts +103 -0
  113. package/dist/types/plugins/backend-federation/emit.d.ts +13 -0
  114. package/dist/types/plugins/backendFederationBuild.d.ts +2 -0
  115. package/dist/types/plugins/deploy/platforms/cloudflare/artifacts.d.ts +15 -0
  116. package/dist/types/plugins/deploy/platforms/cloudflare/constants.d.ts +23 -0
  117. package/dist/types/plugins/deploy/platforms/cloudflare/delivery-unit.d.ts +23 -0
  118. package/dist/types/plugins/deploy/platforms/cloudflare/i18n-worker.d.ts +22 -0
  119. package/dist/types/plugins/deploy/platforms/{cloudflare.d.ts → cloudflare/index.d.ts} +1 -1
  120. package/dist/types/plugins/deploy/platforms/cloudflare/security-policies.d.ts +51 -0
  121. package/dist/types/plugins/deploy/platforms/cloudflare/types.d.ts +5 -0
  122. package/dist/types/plugins/deploy/platforms/cloudflare/utils.d.ts +6 -0
  123. package/dist/types/plugins/deploy/platforms/cloudflare/worker-manifest.d.ts +113 -0
  124. package/dist/types/plugins/deploy/platforms/cloudflare/wrangler-config.d.ts +39 -0
  125. package/dist/types/plugins/deploy/platforms/cloudflare-output-contract.d.ts +13 -0
  126. package/dist/types/plugins/deploy/platforms/cloudflare-output-plan.d.ts +34 -0
  127. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/identity.d.ts +4 -0
  128. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/index.d.ts +18 -0
  129. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/issues.d.ts +14 -0
  130. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/manifest.d.ts +2 -0
  131. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/mutation-policy.d.ts +6 -0
  132. package/dist/types/plugins/deploy/platforms/cloudflare-output-verifier/worker-bundles.d.ts +15 -0
  133. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.001-bootstrap-security.d.mts +1 -0
  134. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.002-assets-routes.d.mts +1 -0
  135. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.003-i18n-locales.d.mts +1 -0
  136. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.004-rendering-css.d.mts +1 -0
  137. package/dist/types/plugins/deploy/platforms/templates/cloudflare-entry.005-worker-dispatch.d.mts +1 -0
  138. package/dist/types/types/config/cloudflareDeploy.d.ts +22 -0
  139. package/dist/types/types/config/deploy.d.ts +15 -2
  140. package/lib/types.d.ts +2 -3
  141. package/package.json +24 -18
  142. package/dist/cjs/commands/runtime.js +0 -196
  143. package/dist/cjs/plugins/deploy/platforms/cloudflare.js +0 -540
  144. package/dist/cjs/plugins/deploy/platforms/templates/cloudflare-entry.mjs +0 -576
  145. package/dist/cjs/ultramodern/designSystem.js +0 -123
  146. package/dist/esm/baseline.mjs +0 -4
  147. package/dist/esm/commands/runtime.mjs +0 -146
  148. package/dist/esm/plugins/deploy/platforms/cloudflare.mjs +0 -492
  149. package/dist/esm/plugins/deploy/platforms/templates/cloudflare-entry.mjs +0 -576
  150. package/dist/esm/ultramodern/designSystem.mjs +0 -73
  151. package/dist/esm-node/baseline.mjs +0 -5
  152. package/dist/esm-node/commands/runtime.mjs +0 -147
  153. package/dist/esm-node/plugins/deploy/platforms/cloudflare.mjs +0 -493
  154. package/dist/esm-node/plugins/deploy/platforms/templates/cloudflare-entry.mjs +0 -576
  155. package/dist/esm-node/ultramodern/designSystem.mjs +0 -74
  156. package/dist/types/baseline.d.ts +0 -16
  157. package/dist/types/commands/runtime.d.ts +0 -12
  158. package/dist/types/ultramodern/designSystem.d.ts +0 -54
  159. /package/dist/types/plugins/deploy/platforms/templates/{cloudflare-entry.d.mts → cloudflare-entry.006-fetch-handler.d.mts} +0 -0
@@ -0,0 +1,83 @@
1
+ import { type BackendFederationApp } from './config';
2
+ export declare const createBackendRemoteEntrySource: (workspaceRoot: string, app: BackendFederationApp, effectApiPath: string, entryPath: string) => string;
3
+ export declare const createBackendManifest: (workspaceRoot: string, distDirectory: string, app: BackendFederationApp) => {
4
+ schemaVersion: number;
5
+ id: string;
6
+ name: string;
7
+ version: string | undefined;
8
+ buildVersion: string | undefined;
9
+ metaData: {
10
+ name: string;
11
+ type: string;
12
+ buildInfo: {
13
+ buildVersion: string | undefined;
14
+ buildName: string | undefined;
15
+ };
16
+ remoteEntry: {
17
+ name: string;
18
+ path: string;
19
+ type: string;
20
+ };
21
+ globalName: string;
22
+ publicPath: string;
23
+ ssrRemoteEntry: {
24
+ name: string;
25
+ path: string;
26
+ type: string;
27
+ };
28
+ ssrPublicPath: string;
29
+ };
30
+ entry: {
31
+ file: string;
32
+ path: string;
33
+ type: string;
34
+ url: string;
35
+ };
36
+ exposes: {
37
+ id: string;
38
+ name: string;
39
+ path: string;
40
+ assets: {
41
+ js: {
42
+ async: never[];
43
+ sync: string[];
44
+ };
45
+ css: {
46
+ async: never[];
47
+ sync: never[];
48
+ };
49
+ };
50
+ }[];
51
+ shared: never[];
52
+ backendFederation: {
53
+ role: string;
54
+ appId: string;
55
+ name: string;
56
+ runtimeFramework: string;
57
+ strictEffectApproach: boolean;
58
+ contractVersion: string;
59
+ nodeAdapterVersion: string;
60
+ remoteType: string;
61
+ expose: string;
62
+ manifestUrl: string;
63
+ containerEntry: string;
64
+ source: {
65
+ module: string;
66
+ };
67
+ readinessPath: string;
68
+ openapiPath: string;
69
+ deliveryUnit?: import("@modern-js/utils/universal").DeliveryUnitContractBlock | undefined;
70
+ versionBoundary: {
71
+ invariant: string;
72
+ packageName: string | undefined;
73
+ version: string | undefined;
74
+ buildVersion: string | undefined;
75
+ uiManifestUrl?: string | undefined;
76
+ deliveryUnit?: {
77
+ unitId: string;
78
+ buildMarker: string;
79
+ sourceRevision: string;
80
+ } | undefined;
81
+ };
82
+ };
83
+ };
@@ -0,0 +1,103 @@
1
+ import { type DeliveryUnitContractBlock, type UltramodernBuildArtifact } from '@modern-js/utils/universal';
2
+ export declare const COMPACT_CONFIG_PATH = ".modernjs/ultramodern.json";
3
+ export type CompactApp = {
4
+ id?: unknown;
5
+ kind?: unknown;
6
+ path?: unknown;
7
+ package?: unknown;
8
+ port?: unknown;
9
+ api?: {
10
+ prefix?: unknown;
11
+ stem?: unknown;
12
+ };
13
+ moduleFederation?: {
14
+ name?: unknown;
15
+ manifestUrl?: unknown;
16
+ };
17
+ backendFederation?: {
18
+ name?: unknown;
19
+ versionBoundary?: {
20
+ ui?: {
21
+ manifestUrl?: unknown;
22
+ };
23
+ };
24
+ executionSurfaces?: {
25
+ node?: {
26
+ remoteName?: unknown;
27
+ manifestUrl?: unknown;
28
+ containerEntry?: unknown;
29
+ remoteType?: unknown;
30
+ };
31
+ };
32
+ };
33
+ deliveryUnit?: {
34
+ unitId?: unknown;
35
+ buildMarker?: unknown;
36
+ sourceRevision?: unknown;
37
+ packageName?: unknown;
38
+ version?: unknown;
39
+ };
40
+ serverExecution?: {
41
+ node?: {
42
+ remoteName?: unknown;
43
+ manifestUrl?: unknown;
44
+ containerEntry?: unknown;
45
+ remoteType?: unknown;
46
+ };
47
+ };
48
+ };
49
+ export type CompactConfig = {
50
+ topology?: {
51
+ apps?: CompactApp[];
52
+ };
53
+ };
54
+ export type BackendFederationApp = {
55
+ id: string;
56
+ directory: string;
57
+ packageName?: string;
58
+ version?: string;
59
+ buildVersion?: string;
60
+ unitId?: string;
61
+ sourceRevision?: string;
62
+ deliveryUnit?: DeliveryUnitContractBlock;
63
+ port: number;
64
+ apiPrefix: string;
65
+ apiStem: string;
66
+ backendName: string;
67
+ manifestUrl: string;
68
+ containerEntry: string;
69
+ remoteType: string;
70
+ uiManifestUrl?: string;
71
+ compactDeliveryUnit?: {
72
+ unitId?: string;
73
+ buildMarker?: string;
74
+ sourceRevision?: string;
75
+ packageName?: string;
76
+ version?: string;
77
+ };
78
+ };
79
+ export type BackendFederationBuildIdentity = {
80
+ appId?: string;
81
+ packageName?: string;
82
+ version?: string;
83
+ buildVersion?: string;
84
+ unitId?: string;
85
+ sourceRevision?: string;
86
+ artifact?: UltramodernBuildArtifact;
87
+ };
88
+ export declare const normalizeRelativePath: (value: string) => string;
89
+ export declare const buildArtifactPathFor: (appDirectory: string) => string;
90
+ export declare const buildModulePathFor: (appDirectory: string) => string;
91
+ export declare const readBuildIdentity: (appDirectory: string) => Promise<BackendFederationBuildIdentity>;
92
+ export declare const findWorkspaceRoot: (appDirectory: string) => string | undefined;
93
+ export declare const resolveWorkspaceSourceRevision: (workspaceRoot: string) => Promise<string>;
94
+ export declare const createStampedDeliveryUnit: (input: {
95
+ appId: string;
96
+ unitId?: string;
97
+ buildMarker?: string;
98
+ packageName?: string;
99
+ version?: string;
100
+ sourceRevision: string;
101
+ }) => DeliveryUnitContractBlock | undefined;
102
+ export declare const createAppFromCompactMetadata: (workspaceRoot: string, appDirectory: string, compactApp: CompactApp) => BackendFederationApp | undefined;
103
+ export declare const findBackendFederationApp: (workspaceRoot: string, appDirectory: string) => Promise<BackendFederationApp | undefined>;
@@ -0,0 +1,13 @@
1
+ import type { AppTools, CliPlugin } from '../../types';
2
+ export type { BackendFederationBuildIdentity } from './config';
3
+ export type BackendFederationArtifactResult = {
4
+ appId: string;
5
+ manifestPath: string;
6
+ containerPath: string;
7
+ deliveryUnitArtifactPath?: string;
8
+ remoteName: string;
9
+ remoteType: string;
10
+ };
11
+ export declare const emitBackendFederationArtifacts: (appDirectory: string, distDirectory: string) => Promise<BackendFederationArtifactResult | undefined>;
12
+ export default _default;
13
+ declare function _default(): CliPlugin<AppTools>;
@@ -0,0 +1,2 @@
1
+ export type { BackendFederationArtifactResult } from './backend-federation/emit';
2
+ export { default, emitBackendFederationArtifacts, } from './backend-federation/emit';
@@ -0,0 +1,15 @@
1
+ import type { CloudflareModernConfig } from './types';
2
+ export declare const getCloudflareArtifacts: (modernConfig: CloudflareModernConfig) => {
3
+ from: string;
4
+ to: string;
5
+ index: number;
6
+ }[];
7
+ export declare const getCloudflarePublicAssets: (modernConfig: CloudflareModernConfig) => {
8
+ from: string;
9
+ to: string;
10
+ index: number;
11
+ }[];
12
+ export declare const copyCloudflareArtifacts: (appDirectory: string, outputDirectory: string, artifacts: ReturnType<typeof getCloudflareArtifacts>) => Promise<void>;
13
+ export declare const copyCloudflarePublicAssets: (appDirectory: string, publicDirectory: string, publicAssets: ReturnType<typeof getCloudflarePublicAssets>) => Promise<void>;
14
+ export declare const copyCloudflareD1Migrations: (appDirectory: string, outputDirectory: string, modernConfig: CloudflareModernConfig) => Promise<void>;
15
+ export declare const readRouteSpec: (outputDirectory: string) => Promise<any>;
@@ -0,0 +1,23 @@
1
+ import { CLOUDFLARE_RUNTIME_TYPE, CLOUDFLARE_WORKER_BUNDLE_FORMAT } from '../cloudflare-output-contract';
2
+ export { CLOUDFLARE_RUNTIME_TYPE, CLOUDFLARE_WORKER_BUNDLE_FORMAT };
3
+ export declare const WORKER_ENTRY = "server/index.mjs";
4
+ export declare const WORKER_MANIFEST = "server/modern-worker-manifest.json";
5
+ export declare const WRANGLER_CONFIG_FILE = "wrangler.json";
6
+ export declare const OUTPUT_PACKAGE_FILE = "package.json";
7
+ export declare const ASSETS_BINDING = "ASSETS";
8
+ export declare const ROUTE_SPEC_FILE = "route.json";
9
+ export declare const ROUTE_SPEC_OUTPUT = "server/route.json";
10
+ export declare const LOADABLE_STATS_FILE = "loadable-stats.json";
11
+ export declare const ROUTE_MANIFEST_FILE = "routes-manifest.json";
12
+ export declare const PUBLIC_ASSETS_DIRECTORY = "public";
13
+ export declare const WORKER_BUNDLE_DIRECTORY = "worker";
14
+ export declare const SERVER_BUNDLE_DIRECTORY = "bundles";
15
+ export declare const SERVER_OUTPUT_DIRECTORY = "server";
16
+ export declare const DEFAULT_SERVER_ONLY_PUBLIC_ASSET_EXCLUDES: readonly ['api', 'shared'];
17
+ export declare const BFF_EFFECT_WORKER_ENTRY = "worker/__modern_bff_effect.js";
18
+ export declare const EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE = "Ensure the Effect API entry exists at api/index.ts or bff.effect.entry, and import Cloudflare edge handlers from @modern-js/plugin-bff/effect-edge instead of lambda/Hono server helpers.";
19
+ export declare const DEFAULT_COMPATIBILITY_DATE = "2026-06-02";
20
+ export declare const COMPATIBILITY_DATE_PATTERN: RegExp;
21
+ export declare const REQUIRED_COMPATIBILITY_FLAGS: readonly ["nodejs_compat", "global_fetch_strictly_public"];
22
+ export declare const RESERVED_ARTIFACT_DESTINATION_FILES: Set<string>;
23
+ export declare const RESERVED_ARTIFACT_DESTINATION_DIRECTORIES: Set<string>;
@@ -0,0 +1,23 @@
1
+ import { type DeliveryUnitIdentity } from '@modern-js/utils/universal';
2
+ export type DeliveryUnitStamp = DeliveryUnitIdentity & {
3
+ surfaces: {
4
+ ui: DeliveryUnitIdentity & {
5
+ surface: 'ui';
6
+ };
7
+ api: DeliveryUnitIdentity & {
8
+ surface: 'api';
9
+ };
10
+ };
11
+ };
12
+ /**
13
+ * Resolve the delivery-unit record declared for this app by the workspace
14
+ * compact config (`.modernjs/ultramodern.json`). This is the topology source
15
+ * of truth the Cloudflare worker snapshot is verified against.
16
+ */
17
+ export declare const resolveTopologyDeliveryUnit: (appDirectory: string) => Promise<DeliveryUnitIdentity | undefined>;
18
+ /**
19
+ * Resolve the delivery-unit identity actually bundled into the worker by
20
+ * parsing the generated `shared/ultramodern-build.ts` module. This is the
21
+ * worker snapshot / UI+API surface source that gets stamped into the manifest.
22
+ */
23
+ export declare const resolveWorkerDeliveryUnitStamp: (appDirectory: string) => Promise<DeliveryUnitStamp | undefined>;
@@ -0,0 +1,22 @@
1
+ import type { CloudflareAppContext } from './types';
2
+ type WorkerI18nDetection = {
3
+ order: string[];
4
+ lookupQuerystring: string;
5
+ lookupCookie: string;
6
+ lookupHeader: string;
7
+ };
8
+ type WorkerI18nEntry = {
9
+ i18nextDetector: boolean;
10
+ languages: string[];
11
+ fallbackLanguage: string;
12
+ detection: WorkerI18nDetection;
13
+ ignoreRedirectRoutes: string[];
14
+ staticRoutePrefixes: string[];
15
+ localisedUrls?: Record<string, Record<string, string>>;
16
+ };
17
+ export declare const createI18nWorkerManifest: (routeSpec: {
18
+ routes: Array<Record<string, unknown>>;
19
+ }, appContext: CloudflareAppContext) => {
20
+ entries: Record<string, WorkerI18nEntry>;
21
+ } | undefined;
22
+ export {};
@@ -1,2 +1,2 @@
1
- import type { CreatePreset } from './platform';
1
+ import type { CreatePreset } from '../platform';
2
2
  export declare const createCloudflarePreset: CreatePreset;
@@ -0,0 +1,51 @@
1
+ export declare const createCloudflareWorkerSecurityPolicy: (modernConfig: Parameters<CreatePreset>[0]['modernConfig']) => {
2
+ enabled: boolean;
3
+ cors: {
4
+ assets: boolean;
5
+ allowedOrigins: string[];
6
+ allowedMethods: string[];
7
+ allowedHeaders: string[];
8
+ reason: string | undefined;
9
+ };
10
+ reason: any;
11
+ headers?: undefined;
12
+ contentSecurityPolicy?: undefined;
13
+ noindex?: undefined;
14
+ } | {
15
+ enabled: boolean;
16
+ headers: {
17
+ referrerPolicy: any;
18
+ contentTypeOptions: any;
19
+ permissionsPolicy: any;
20
+ };
21
+ contentSecurityPolicy: {
22
+ mode: "off";
23
+ directives: {};
24
+ reason: string | undefined;
25
+ } | {
26
+ mode: "enforce" | "report-only";
27
+ directives: {
28
+ [k: string]: string[];
29
+ };
30
+ reason: string | undefined;
31
+ };
32
+ noindex: {
33
+ workersDev: boolean;
34
+ localhost: boolean;
35
+ previewHostnames: never[];
36
+ reason?: undefined;
37
+ } | {
38
+ workersDev: boolean;
39
+ localhost: boolean;
40
+ previewHostnames: string[];
41
+ reason: string | undefined;
42
+ };
43
+ cors: {
44
+ assets: boolean;
45
+ allowedOrigins: string[];
46
+ allowedMethods: string[];
47
+ allowedHeaders: string[];
48
+ reason: string | undefined;
49
+ };
50
+ reason: any;
51
+ };
@@ -0,0 +1,5 @@
1
+ import type { CreatePreset } from '../platform';
2
+ type CloudflarePresetOptions = Parameters<CreatePreset>[0];
3
+ export type CloudflareAppContext = CloudflarePresetOptions['appContext'];
4
+ export type CloudflareModernConfig = CloudflarePresetOptions['modernConfig'];
5
+ export {};
@@ -0,0 +1,6 @@
1
+ import type { JsonValue } from '../../../../types/config/deploy';
2
+ export declare const isRecord: (value: unknown) => value is Record<string, unknown>;
3
+ export declare const normalizeRelativePath: (value: unknown, label: string, scope?: string, options?: {
4
+ allowRoot?: boolean;
5
+ }) => string;
6
+ export declare const isJsonRecord: (value: unknown) => value is Record<string, JsonValue>;
@@ -0,0 +1,113 @@
1
+ import type { DeliveryUnitStamp } from './delivery-unit';
2
+ import type { CloudflareAppContext, CloudflareModernConfig } from './types';
3
+ export declare const createWorkerManifest: (outputDirectory: string, modernConfig: CloudflareModernConfig, appContext: CloudflareAppContext, deliveryUnitStamp: DeliveryUnitStamp | undefined) => Promise<{
4
+ version: number;
5
+ runtime: {
6
+ type: string;
7
+ entry: string;
8
+ fetchExport: boolean;
9
+ nodeListen: boolean;
10
+ };
11
+ assets: {
12
+ binding: string;
13
+ directory: string;
14
+ runWorkerFirst: boolean;
15
+ };
16
+ routeSpec: {
17
+ file: string;
18
+ routes: any[];
19
+ };
20
+ workerBundles: {
21
+ directory: string;
22
+ format: string;
23
+ importableFromModuleWorker: boolean;
24
+ requestHandlerExport: string;
25
+ };
26
+ resources: {
27
+ loadableStats: string;
28
+ routeManifest: string;
29
+ };
30
+ security: {
31
+ enabled: boolean;
32
+ cors: {
33
+ assets: boolean;
34
+ allowedOrigins: string[];
35
+ allowedMethods: string[];
36
+ allowedHeaders: string[];
37
+ reason: string | undefined;
38
+ };
39
+ reason: any;
40
+ headers?: undefined;
41
+ contentSecurityPolicy?: undefined;
42
+ noindex?: undefined;
43
+ } | {
44
+ enabled: boolean;
45
+ headers: {
46
+ referrerPolicy: any;
47
+ contentTypeOptions: any;
48
+ permissionsPolicy: any;
49
+ };
50
+ contentSecurityPolicy: {
51
+ mode: "off";
52
+ directives: {};
53
+ reason: string | undefined;
54
+ } | {
55
+ mode: "enforce" | "report-only";
56
+ directives: {
57
+ [k: string]: string[];
58
+ };
59
+ reason: string | undefined;
60
+ };
61
+ noindex: {
62
+ workersDev: boolean;
63
+ localhost: boolean;
64
+ previewHostnames: never[];
65
+ reason?: undefined;
66
+ } | {
67
+ workersDev: boolean;
68
+ localhost: boolean;
69
+ previewHostnames: string[];
70
+ reason: string | undefined;
71
+ };
72
+ cors: {
73
+ assets: boolean;
74
+ allowedOrigins: string[];
75
+ allowedMethods: string[];
76
+ allowedHeaders: string[];
77
+ reason: string | undefined;
78
+ };
79
+ reason: any;
80
+ };
81
+ deliveryUnit?: DeliveryUnitStamp | undefined;
82
+ i18n: {
83
+ entries: Record<string, {
84
+ i18nextDetector: boolean;
85
+ languages: string[];
86
+ fallbackLanguage: string;
87
+ detection: {
88
+ order: string[];
89
+ lookupQuerystring: string;
90
+ lookupCookie: string;
91
+ lookupHeader: string;
92
+ };
93
+ ignoreRedirectRoutes: string[];
94
+ staticRoutePrefixes: string[];
95
+ localisedUrls?: Record<string, Record<string, string>>;
96
+ }>;
97
+ } | undefined;
98
+ bff: {
99
+ runtimeFramework: string;
100
+ prefix: string;
101
+ worker: string;
102
+ } | undefined;
103
+ serviceBindings?: {
104
+ binding: any;
105
+ service: any;
106
+ prefix: any;
107
+ interface: string;
108
+ }[] | undefined;
109
+ }>;
110
+ export declare const createWorkerModuleLoaders: (manifest: any) => string;
111
+ export declare const getPublicAssetExcludes: (appDirectory: string, modernConfig: CloudflareModernConfig) => string[];
112
+ export declare const shouldCopyToPublicAssets: (src: string, distDirectory: string, publicAssetExcludes: string[]) => boolean;
113
+ export declare const shouldCopyToWorkerBundle: (src: string, workerBundleDirectory: string) => boolean;
@@ -0,0 +1,39 @@
1
+ import type { JsonValue } from '../../../../types/config/deploy';
2
+ import type { CloudflareModernConfig } from './types';
3
+ export declare const createWorkerServiceBindings: (modernConfig: CloudflareModernConfig, configuredWranglerServices: JsonValue | undefined) => {
4
+ binding: string;
5
+ service: string;
6
+ prefix?: string | undefined;
7
+ }[] | JsonValue | undefined;
8
+ export declare const createWorkerManifestServiceBindings: (serviceBindings: ReturnType<typeof createWorkerServiceBindings>) => {
9
+ binding: any;
10
+ service: any;
11
+ prefix: any;
12
+ interface: string;
13
+ }[] | undefined;
14
+ export declare const createWranglerConfig: (appDirectory: string, modernConfig: CloudflareModernConfig) => {
15
+ $schema: string;
16
+ name: string;
17
+ compatibility_date: string;
18
+ main: string;
19
+ compatibility_flags: JsonValue[];
20
+ assets: {
21
+ directory: string;
22
+ binding: string;
23
+ run_worker_first: boolean;
24
+ };
25
+ d1_databases?: {
26
+ binding: string;
27
+ database_name: string;
28
+ database_id: string;
29
+ migrations_dir?: string | undefined;
30
+ preview_database_id?: string | undefined;
31
+ remote?: boolean | undefined;
32
+ }[] | JsonValue | undefined;
33
+ services?: string | number | boolean | JsonValue[] | {
34
+ binding: string;
35
+ service: string;
36
+ }[] | {
37
+ [key: string]: JsonValue;
38
+ } | null | undefined;
39
+ };
@@ -0,0 +1,13 @@
1
+ export declare const CLOUDFLARE_WORKER_ENTRY = "server/index.mjs";
2
+ export declare const CLOUDFLARE_WORKER_MANIFEST = "server/modern-worker-manifest.json";
3
+ export declare const CLOUDFLARE_WRANGLER_CONFIG_FILE = "wrangler.json";
4
+ export declare const CLOUDFLARE_OUTPUT_PACKAGE_FILE = "package.json";
5
+ export declare const CLOUDFLARE_WORKER_PACKAGE_FILE = "worker/package.json";
6
+ export declare const CLOUDFLARE_ASSETS_BINDING = "ASSETS";
7
+ export declare const CLOUDFLARE_PUBLIC_ASSETS_DIRECTORY = "public";
8
+ export declare const CLOUDFLARE_WORKER_BUNDLE_DIRECTORY = "worker";
9
+ export declare const CLOUDFLARE_RUNTIME_TYPE = "cloudflare-module-worker";
10
+ export declare const CLOUDFLARE_OUTPUT_PACKAGE_TYPE = "module";
11
+ export declare const CLOUDFLARE_WORKER_PACKAGE_TYPE = "commonjs";
12
+ export declare const CLOUDFLARE_WORKER_BUNDLE_FORMAT = "commonjs";
13
+ export declare const CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS: readonly ['nodejs_compat', 'global_fetch_strictly_public'];
@@ -0,0 +1,34 @@
1
+ import { CLOUDFLARE_ASSETS_BINDING, CLOUDFLARE_OUTPUT_PACKAGE_TYPE, CLOUDFLARE_PUBLIC_ASSETS_DIRECTORY, CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS, CLOUDFLARE_WORKER_ENTRY, CLOUDFLARE_WORKER_PACKAGE_TYPE } from './cloudflare-output-contract';
2
+ type CloudflareOutputPlan = {
3
+ outputDirectory: string;
4
+ requiredFiles: string[];
5
+ publicLeakDirectories: string[];
6
+ paths: {
7
+ workerEntry: string;
8
+ workerManifest: string;
9
+ wranglerConfig: string;
10
+ outputPackage: string;
11
+ workerPackage: string;
12
+ publicAssets: string;
13
+ workerBundle: string;
14
+ };
15
+ packages: {
16
+ output: {
17
+ type: typeof CLOUDFLARE_OUTPUT_PACKAGE_TYPE;
18
+ };
19
+ worker: {
20
+ type: typeof CLOUDFLARE_WORKER_PACKAGE_TYPE;
21
+ };
22
+ };
23
+ wrangler: {
24
+ main: typeof CLOUDFLARE_WORKER_ENTRY;
25
+ assets: {
26
+ binding: typeof CLOUDFLARE_ASSETS_BINDING;
27
+ directory: `./${typeof CLOUDFLARE_PUBLIC_ASSETS_DIRECTORY}`;
28
+ run_worker_first: true;
29
+ };
30
+ requiredCompatibilityFlags: typeof CLOUDFLARE_REQUIRED_COMPATIBILITY_FLAGS;
31
+ };
32
+ };
33
+ export declare function createCloudflareOutputPlan(outputDirectory: string): CloudflareOutputPlan;
34
+ export {};
@@ -0,0 +1,4 @@
1
+ import { type DeliveryUnitIdentity } from '@modern-js/utils/universal';
2
+ import type { CloudflareOutputVerifierIssue, JsonObject } from './issues';
3
+ export type CloudflareDeliveryUnitIdentity = DeliveryUnitIdentity;
4
+ export declare const verifyDeliveryUnitIdentity: (issues: CloudflareOutputVerifierIssue[], manifest: JsonObject, manifestPath: string, declared: CloudflareDeliveryUnitIdentity | undefined) => void;
@@ -0,0 +1,18 @@
1
+ import type { CloudflareDeliveryUnitIdentity } from './identity';
2
+ import type { CloudflareOutputVerifierResult } from './issues';
3
+ export type { CloudflareDeliveryUnitIdentity } from './identity';
4
+ export type { CloudflareOutputVerifierIssue, CloudflareOutputVerifierIssueCode, CloudflareOutputVerifierResult, } from './issues';
5
+ export { type VerifyCloudflareOutputMutationPolicyOptions, verifyCloudflareOutputMutationPolicy, } from './mutation-policy';
6
+ export interface VerifyCloudflareOutputOptions {
7
+ outputDirectory: string;
8
+ importWorker?: boolean;
9
+ /**
10
+ * Topology-declared delivery-unit record (from the workspace compact config).
11
+ * When provided, the Cloudflare worker manifest must carry a matching
12
+ * `deliveryUnit` stamp so the deployed worker snapshot is proven to derive
13
+ * from the same delivery unit as the Node/API surfaces (ADR-0019 lane D).
14
+ */
15
+ deliveryUnit?: CloudflareDeliveryUnitIdentity;
16
+ }
17
+ export declare const verifyCloudflareOutput: (options: VerifyCloudflareOutputOptions) => Promise<CloudflareOutputVerifierResult>;
18
+ export declare const assertCloudflareOutput: (options: VerifyCloudflareOutputOptions) => Promise<void>;
@@ -0,0 +1,14 @@
1
+ export type CloudflareOutputVerifierIssueCode = 'missing-file' | 'invalid-manifest' | 'invalid-wrangler' | 'invalid-package' | 'public-output-leak' | 'missing-worker-bundle' | 'invalid-worker-bundle' | 'worker-import-failed' | 'delivery-unit-drift' | 'missing-delivery-unit' | 'forbidden-mutation-pattern';
2
+ export interface CloudflareOutputVerifierIssue {
3
+ code: CloudflareOutputVerifierIssueCode;
4
+ message: string;
5
+ path?: string;
6
+ }
7
+ export interface CloudflareOutputVerifierResult {
8
+ ok: boolean;
9
+ issues: CloudflareOutputVerifierIssue[];
10
+ }
11
+ export type JsonObject = Record<string, any>;
12
+ export declare const addIssue: (issues: CloudflareOutputVerifierIssue[], issue: CloudflareOutputVerifierIssue) => void;
13
+ export declare const assertEqual: (issues: CloudflareOutputVerifierIssue[], actual: unknown, expected: unknown, issue: CloudflareOutputVerifierIssue) => void;
14
+ export declare const assertFlag: (issues: CloudflareOutputVerifierIssue[], flags: unknown, flag: string, issue: CloudflareOutputVerifierIssue) => void;
@@ -0,0 +1,2 @@
1
+ import type { CloudflareOutputVerifierIssue, JsonObject } from './issues';
2
+ export declare const verifyManifestShape: (issues: CloudflareOutputVerifierIssue[], manifest: JsonObject, manifestPath: string) => void;
@@ -0,0 +1,6 @@
1
+ import type { CloudflareOutputVerifierResult } from './issues';
2
+ export interface VerifyCloudflareOutputMutationPolicyOptions {
3
+ scanRoots: string[];
4
+ }
5
+ export declare const walkFiles: (root: string) => Promise<string[]>;
6
+ export declare const verifyCloudflareOutputMutationPolicy: (options: VerifyCloudflareOutputMutationPolicyOptions) => Promise<CloudflareOutputVerifierResult>;
@@ -0,0 +1,15 @@
1
+ import type { CloudflareOutputVerifierIssue, JsonObject } from './issues';
2
+ interface WorkerBundleReference {
3
+ kind: 'effect-bff' | 'route';
4
+ reference: string;
5
+ }
6
+ interface ResolvedWorkerBundleReference extends WorkerBundleReference {
7
+ path: string;
8
+ }
9
+ export declare const getEffectBffWorker: (manifest: JsonObject) => any;
10
+ export declare const getWorkerBundleReferences: (manifest: JsonObject) => WorkerBundleReference[];
11
+ export declare const resolveWorkerBundleReference: (issues: CloudflareOutputVerifierIssue[], outputDirectory: string, reference: WorkerBundleReference, manifestPath: string) => ResolvedWorkerBundleReference | null;
12
+ 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 verifyWorkerBundleReferences: (issues: CloudflareOutputVerifierIssue[], worker: ResolvedWorkerBundleReference, source: string) => void;
14
+ export declare const verifyWorkerImport: (issues: CloudflareOutputVerifierIssue[], entryPath: string) => Promise<void>;
15
+ export {};