@bleedingdev/modern-js-app-tools-extensions 3.8.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.
Files changed (198) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -0
  3. package/dist/cjs/cloudflare/artifacts.js +127 -0
  4. package/dist/cjs/cloudflare/constants.js +141 -0
  5. package/dist/cjs/cloudflare/delivery-unit.js +161 -0
  6. package/dist/cjs/cloudflare/i18n-worker.js +135 -0
  7. package/dist/cjs/cloudflare/index.js +156 -0
  8. package/dist/cjs/cloudflare/security-policies.js +205 -0
  9. package/dist/cjs/cloudflare/types.js +18 -0
  10. package/dist/cjs/cloudflare/utils.js +66 -0
  11. package/dist/cjs/cloudflare/worker-manifest.js +239 -0
  12. package/dist/cjs/cloudflare/wrangler-config.js +205 -0
  13. package/dist/cjs/cloudflare-builder.js +394 -0
  14. package/dist/cjs/cloudflare-output-contract.js +108 -0
  15. package/dist/cjs/cloudflare-output-plan.js +93 -0
  16. package/dist/cjs/cloudflare-output-verifier/identity.js +92 -0
  17. package/dist/cjs/cloudflare-output-verifier/index.js +188 -0
  18. package/dist/cjs/cloudflare-output-verifier/issues.js +54 -0
  19. package/dist/cjs/cloudflare-output-verifier/manifest.js +89 -0
  20. package/dist/cjs/cloudflare-output-verifier/mutation-policy.js +151 -0
  21. package/dist/cjs/cloudflare-output-verifier/worker-bundles.js +378 -0
  22. package/dist/cjs/config.js +18 -0
  23. package/dist/cjs/css-extract-runtime-plugin.js +74 -0
  24. package/dist/cjs/index.js +125 -0
  25. package/dist/cjs/read-template.js +56 -0
  26. package/dist/cjs/release-envelope/canonical.js +68 -0
  27. package/dist/cjs/release-envelope/framework-output.js +649 -0
  28. package/dist/cjs/release-envelope/index.js +399 -0
  29. package/dist/cjs/release-envelope/plugin.js +102 -0
  30. package/dist/cjs/release-envelope/types.js +51 -0
  31. package/dist/cjs/release-identity.js +110 -0
  32. package/dist/cjs/templates/cloudflare-entry.001-bootstrap-security.mjs +251 -0
  33. package/dist/cjs/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
  34. package/dist/cjs/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
  35. package/dist/cjs/templates/cloudflare-entry.004-rendering-css.mjs +1194 -0
  36. package/dist/cjs/templates/cloudflare-entry.005-worker-dispatch.mjs +421 -0
  37. package/dist/cjs/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
  38. package/dist/cjs/templates/cloudflare-worker-fs-promises.mjs +11 -0
  39. package/dist/cjs/templates/cloudflare-worker-loadable-server.mjs +281 -0
  40. package/dist/cjs/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
  41. package/dist/cjs/templates/cloudflare-worker-path.mjs +98 -0
  42. package/dist/esm/cloudflare/artifacts.mjs +64 -0
  43. package/dist/esm/cloudflare/constants.mjs +34 -0
  44. package/dist/esm/cloudflare/delivery-unit.mjs +110 -0
  45. package/dist/esm/cloudflare/i18n-worker.mjs +97 -0
  46. package/dist/esm/cloudflare/index.mjs +108 -0
  47. package/dist/esm/cloudflare/security-policies.mjs +167 -0
  48. package/dist/esm/cloudflare/types.mjs +0 -0
  49. package/dist/esm/cloudflare/utils.mjs +12 -0
  50. package/dist/esm/cloudflare/worker-manifest.mjs +179 -0
  51. package/dist/esm/cloudflare/wrangler-config.mjs +151 -0
  52. package/dist/esm/cloudflare-builder.mjs +327 -0
  53. package/dist/esm/cloudflare-output-contract.mjs +31 -0
  54. package/dist/esm/cloudflare-output-plan.mjs +45 -0
  55. package/dist/esm/cloudflare-output-verifier/identity.mjs +54 -0
  56. package/dist/esm/cloudflare-output-verifier/index.mjs +133 -0
  57. package/dist/esm/cloudflare-output-verifier/issues.mjs +10 -0
  58. package/dist/esm/cloudflare-output-verifier/manifest.mjs +51 -0
  59. package/dist/esm/cloudflare-output-verifier/mutation-policy.mjs +99 -0
  60. package/dist/esm/cloudflare-output-verifier/worker-bundles.mjs +313 -0
  61. package/dist/esm/config.mjs +0 -0
  62. package/dist/esm/css-extract-runtime-plugin.mjs +32 -0
  63. package/dist/esm/index.mjs +10 -0
  64. package/dist/esm/read-template.mjs +5 -0
  65. package/dist/esm/release-envelope/canonical.mjs +21 -0
  66. package/dist/esm/release-envelope/framework-output.mjs +573 -0
  67. package/dist/esm/release-envelope/index.mjs +335 -0
  68. package/dist/esm/release-envelope/plugin.mjs +54 -0
  69. package/dist/esm/release-envelope/types.mjs +7 -0
  70. package/dist/esm/release-identity.mjs +66 -0
  71. package/dist/esm/templates/cloudflare-entry.001-bootstrap-security.mjs +251 -0
  72. package/dist/esm/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
  73. package/dist/esm/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
  74. package/dist/esm/templates/cloudflare-entry.004-rendering-css.mjs +1194 -0
  75. package/dist/esm/templates/cloudflare-entry.005-worker-dispatch.mjs +421 -0
  76. package/dist/esm/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
  77. package/dist/esm/templates/cloudflare-worker-fs-promises.mjs +11 -0
  78. package/dist/esm/templates/cloudflare-worker-loadable-server.mjs +281 -0
  79. package/dist/esm/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
  80. package/dist/esm/templates/cloudflare-worker-path.mjs +98 -0
  81. package/dist/esm-node/cloudflare/artifacts.mjs +65 -0
  82. package/dist/esm-node/cloudflare/constants.mjs +35 -0
  83. package/dist/esm-node/cloudflare/delivery-unit.mjs +111 -0
  84. package/dist/esm-node/cloudflare/i18n-worker.mjs +98 -0
  85. package/dist/esm-node/cloudflare/index.mjs +109 -0
  86. package/dist/esm-node/cloudflare/security-policies.mjs +168 -0
  87. package/dist/esm-node/cloudflare/types.mjs +1 -0
  88. package/dist/esm-node/cloudflare/utils.mjs +13 -0
  89. package/dist/esm-node/cloudflare/worker-manifest.mjs +180 -0
  90. package/dist/esm-node/cloudflare/wrangler-config.mjs +152 -0
  91. package/dist/esm-node/cloudflare-builder.mjs +328 -0
  92. package/dist/esm-node/cloudflare-output-contract.mjs +32 -0
  93. package/dist/esm-node/cloudflare-output-plan.mjs +46 -0
  94. package/dist/esm-node/cloudflare-output-verifier/identity.mjs +55 -0
  95. package/dist/esm-node/cloudflare-output-verifier/index.mjs +134 -0
  96. package/dist/esm-node/cloudflare-output-verifier/issues.mjs +11 -0
  97. package/dist/esm-node/cloudflare-output-verifier/manifest.mjs +52 -0
  98. package/dist/esm-node/cloudflare-output-verifier/mutation-policy.mjs +100 -0
  99. package/dist/esm-node/cloudflare-output-verifier/worker-bundles.mjs +314 -0
  100. package/dist/esm-node/config.mjs +1 -0
  101. package/dist/esm-node/css-extract-runtime-plugin.mjs +33 -0
  102. package/dist/esm-node/index.mjs +11 -0
  103. package/dist/esm-node/read-template.mjs +9 -0
  104. package/dist/esm-node/release-envelope/canonical.mjs +22 -0
  105. package/dist/esm-node/release-envelope/framework-output.mjs +574 -0
  106. package/dist/esm-node/release-envelope/index.mjs +336 -0
  107. package/dist/esm-node/release-envelope/plugin.mjs +55 -0
  108. package/dist/esm-node/release-envelope/types.mjs +8 -0
  109. package/dist/esm-node/release-identity.mjs +67 -0
  110. package/dist/esm-node/templates/cloudflare-entry.001-bootstrap-security.mjs +251 -0
  111. package/dist/esm-node/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
  112. package/dist/esm-node/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
  113. package/dist/esm-node/templates/cloudflare-entry.004-rendering-css.mjs +1194 -0
  114. package/dist/esm-node/templates/cloudflare-entry.005-worker-dispatch.mjs +421 -0
  115. package/dist/esm-node/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
  116. package/dist/esm-node/templates/cloudflare-worker-fs-promises.mjs +11 -0
  117. package/dist/esm-node/templates/cloudflare-worker-loadable-server.mjs +281 -0
  118. package/dist/esm-node/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
  119. package/dist/esm-node/templates/cloudflare-worker-path.mjs +98 -0
  120. package/dist/types/cloudflare/artifacts.d.ts +15 -0
  121. package/dist/types/cloudflare/constants.d.ts +24 -0
  122. package/dist/types/cloudflare/delivery-unit.d.ts +23 -0
  123. package/dist/types/cloudflare/i18n-worker.d.ts +22 -0
  124. package/dist/types/cloudflare/index.d.ts +2 -0
  125. package/dist/types/cloudflare/security-policies.d.ts +52 -0
  126. package/dist/types/cloudflare/types.d.ts +28 -0
  127. package/dist/types/cloudflare/utils.d.ts +6 -0
  128. package/dist/types/cloudflare/worker-manifest.d.ts +149 -0
  129. package/dist/types/cloudflare/wrangler-config.d.ts +51 -0
  130. package/dist/types/cloudflare-builder.d.ts +59 -0
  131. package/dist/types/cloudflare-output-contract.d.ts +14 -0
  132. package/dist/types/cloudflare-output-plan.d.ts +34 -0
  133. package/dist/types/cloudflare-output-verifier/identity.d.ts +8 -0
  134. package/dist/types/cloudflare-output-verifier/index.d.ts +18 -0
  135. package/dist/types/cloudflare-output-verifier/issues.d.ts +14 -0
  136. package/dist/types/cloudflare-output-verifier/manifest.d.ts +2 -0
  137. package/dist/types/cloudflare-output-verifier/mutation-policy.d.ts +14 -0
  138. package/dist/types/cloudflare-output-verifier/worker-bundles.d.ts +20 -0
  139. package/dist/types/config.d.ts +175 -0
  140. package/dist/types/css-extract-runtime-plugin.d.ts +6 -0
  141. package/dist/types/index.d.ts +10 -0
  142. package/dist/types/read-template.d.ts +2 -0
  143. package/dist/types/release-envelope/canonical.d.ts +5 -0
  144. package/dist/types/release-envelope/framework-output.d.ts +32 -0
  145. package/dist/types/release-envelope/index.d.ts +6 -0
  146. package/dist/types/release-envelope/plugin.d.ts +30 -0
  147. package/dist/types/release-envelope/types.d.ts +62 -0
  148. package/dist/types/release-identity.d.ts +16 -0
  149. package/dist/types/templates/cloudflare-entry.001-bootstrap-security.d.mts +1 -0
  150. package/dist/types/templates/cloudflare-entry.002-assets-routes.d.mts +1 -0
  151. package/dist/types/templates/cloudflare-entry.003-i18n-locales.d.mts +1 -0
  152. package/dist/types/templates/cloudflare-entry.004-rendering-css.d.mts +1 -0
  153. package/dist/types/templates/cloudflare-entry.005-worker-dispatch.d.mts +1 -0
  154. package/dist/types/templates/cloudflare-entry.006-fetch-handler.d.mts +4 -0
  155. package/dist/types/templates/cloudflare-worker-fs-promises.d.mts +5 -0
  156. package/dist/types/templates/cloudflare-worker-loadable-server.d.mts +48 -0
  157. package/dist/types/templates/cloudflare-worker-mf-ssr-runtime-plugin.d.mts +13 -0
  158. package/dist/types/templates/cloudflare-worker-path.d.mts +21 -0
  159. package/package.json +131 -0
  160. package/src/cloudflare/artifacts.ts +165 -0
  161. package/src/cloudflare/constants.ts +50 -0
  162. package/src/cloudflare/delivery-unit.ts +195 -0
  163. package/src/cloudflare/i18n-worker.ts +197 -0
  164. package/src/cloudflare/index.ts +259 -0
  165. package/src/cloudflare/security-policies.ts +194 -0
  166. package/src/cloudflare/types.ts +33 -0
  167. package/src/cloudflare/utils.ts +40 -0
  168. package/src/cloudflare/worker-manifest.ts +313 -0
  169. package/src/cloudflare/wrangler-config.ts +338 -0
  170. package/src/cloudflare-builder.ts +653 -0
  171. package/src/cloudflare-output-contract.ts +30 -0
  172. package/src/cloudflare-output-plan.ts +108 -0
  173. package/src/cloudflare-output-verifier/identity.ts +87 -0
  174. package/src/cloudflare-output-verifier/index.ts +277 -0
  175. package/src/cloudflare-output-verifier/issues.ts +54 -0
  176. package/src/cloudflare-output-verifier/manifest.ts +76 -0
  177. package/src/cloudflare-output-verifier/mutation-policy.ts +159 -0
  178. package/src/cloudflare-output-verifier/worker-bundles.ts +664 -0
  179. package/src/config.ts +196 -0
  180. package/src/css-extract-runtime-plugin.ts +70 -0
  181. package/src/index.ts +10 -0
  182. package/src/read-template.ts +8 -0
  183. package/src/release-envelope/canonical.ts +58 -0
  184. package/src/release-envelope/framework-output.ts +1121 -0
  185. package/src/release-envelope/index.ts +656 -0
  186. package/src/release-envelope/plugin.ts +125 -0
  187. package/src/release-envelope/types.ts +83 -0
  188. package/src/release-identity.ts +134 -0
  189. package/src/templates/cloudflare-entry.001-bootstrap-security.mjs +251 -0
  190. package/src/templates/cloudflare-entry.002-assets-routes.mjs +191 -0
  191. package/src/templates/cloudflare-entry.003-i18n-locales.mjs +514 -0
  192. package/src/templates/cloudflare-entry.004-rendering-css.mjs +1194 -0
  193. package/src/templates/cloudflare-entry.005-worker-dispatch.mjs +421 -0
  194. package/src/templates/cloudflare-entry.006-fetch-handler.mjs +93 -0
  195. package/src/templates/cloudflare-worker-fs-promises.mjs +11 -0
  196. package/src/templates/cloudflare-worker-loadable-server.mjs +281 -0
  197. package/src/templates/cloudflare-worker-mf-ssr-runtime-plugin.mjs +14 -0
  198. package/src/templates/cloudflare-worker-path.mjs +98 -0
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ createWorkerManifest: ()=>createWorkerManifest,
41
+ createWorkerModuleLoaders: ()=>createWorkerModuleLoaders,
42
+ getPublicAssetExcludes: ()=>getPublicAssetExcludes,
43
+ shouldCopyToPublicAssets: ()=>shouldCopyToPublicAssets,
44
+ shouldCopyToWorkerBundle: ()=>shouldCopyToWorkerBundle
45
+ });
46
+ const external_node_path_namespaceObject = require("node:path");
47
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
48
+ const utils_namespaceObject = require("@modern-js/utils");
49
+ const external_artifacts_js_namespaceObject = require("./artifacts.js");
50
+ const external_constants_js_namespaceObject = require("./constants.js");
51
+ const external_i18n_worker_js_namespaceObject = require("./i18n-worker.js");
52
+ const external_security_policies_js_namespaceObject = require("./security-policies.js");
53
+ const external_utils_js_namespaceObject = require("./utils.js");
54
+ const external_wrangler_config_js_namespaceObject = require("./wrangler-config.js");
55
+ const createMissingEffectBffWorkerError = (outputDirectory, worker)=>new Error(`Cloudflare Effect API runtime is configured, but the BFF worker bundle is missing: ${external_node_path_default().join(outputDirectory, worker)}. ${external_constants_js_namespaceObject.EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE}`);
56
+ const createEffectBffWorkerManifest = (modernConfig)=>{
57
+ const bff = modernConfig.bff;
58
+ const configuredPolicy = bff?.crossProjectPolicy;
59
+ if (configuredPolicy?.verifyProducerIdentity !== void 0) throw new Error('Cloudflare Effect BFF cannot serialize bff.crossProjectPolicy.verifyProducerIdentity into the worker manifest. Configure a worker-native identity binding before enabling this policy at the edge.');
60
+ const crossProjectPolicy = {
61
+ ...configuredPolicy,
62
+ enabled: configuredPolicy?.enabled ?? Boolean(bff?.isCrossProjectServer),
63
+ requireEnvelope: configuredPolicy?.requireEnvelope ?? true,
64
+ requireOperationContext: configuredPolicy?.requireOperationContext ?? true,
65
+ requireOperationContextDetails: configuredPolicy?.requireOperationContextDetails ?? true,
66
+ requireOperationSchemaHash: configuredPolicy?.requireOperationSchemaHash ?? true,
67
+ requireOperationVersion: configuredPolicy?.requireOperationVersion ?? true,
68
+ allowUnknownOperations: configuredPolicy?.allowUnknownOperations ?? false,
69
+ expectedOperationContracts: {
70
+ ...configuredPolicy?.expectedOperationContracts ?? {}
71
+ }
72
+ };
73
+ const openapi = bff?.effect?.openapi;
74
+ const dataPlatform = bff?.effect?.dataPlatform;
75
+ return {
76
+ ...void 0 === openapi ? {} : {
77
+ openapi
78
+ },
79
+ ...void 0 === dataPlatform ? {} : {
80
+ dataPlatform
81
+ },
82
+ crossProjectPolicy
83
+ };
84
+ };
85
+ const createModuleFederationWorkerManifest = async (outputDirectory)=>{
86
+ const manifestPath = external_node_path_default().join(outputDirectory, external_constants_js_namespaceObject.PUBLIC_ASSETS_DIRECTORY, 'mf-manifest.json');
87
+ if (!await utils_namespaceObject.fs.pathExists(manifestPath)) return;
88
+ const manifest = await utils_namespaceObject.fs.readJson(manifestPath);
89
+ const name = (0, external_utils_js_namespaceObject.isRecord)(manifest) && 'string' == typeof manifest.name ? manifest.name : void 0;
90
+ const manifestExposes = (0, external_utils_js_namespaceObject.isRecord)(manifest) && Array.isArray(manifest.exposes) ? manifest.exposes : [];
91
+ const exposes = manifestExposes.filter(external_utils_js_namespaceObject.isRecord).flatMap((expose)=>{
92
+ if ('string' != typeof expose.path) return [];
93
+ const assets = (0, external_utils_js_namespaceObject.isRecord)(expose.assets) ? expose.assets : void 0;
94
+ const css = assets && (0, external_utils_js_namespaceObject.isRecord)(assets.css) ? assets.css : void 0;
95
+ return [
96
+ {
97
+ path: expose.path,
98
+ css: [
99
+ ...css && Array.isArray(css.sync) ? css.sync : [],
100
+ ...css && Array.isArray(css.async) ? css.async : []
101
+ ].filter((asset)=>'string' == typeof asset && asset.endsWith('.css'))
102
+ }
103
+ ];
104
+ });
105
+ return name && exposes.length > 0 ? {
106
+ name,
107
+ exposes
108
+ } : void 0;
109
+ };
110
+ const createWorkerManifest = async (outputDirectory, modernConfig, appContext, deliveryUnitStamp)=>{
111
+ const routeSpec = await (0, external_artifacts_js_namespaceObject.readRouteSpec)(outputDirectory);
112
+ const routes = await Promise.all(routeSpec.routes.map(async (route)=>{
113
+ const worker = 'string' == typeof route.worker ? route.worker : void 0;
114
+ return {
115
+ urlPath: route.urlPath,
116
+ entryName: route.entryName,
117
+ entryPath: route.entryPath,
118
+ isSSR: Boolean(route.isSSR),
119
+ worker,
120
+ workerExists: worker ? await utils_namespaceObject.fs.pathExists(external_node_path_default().join(outputDirectory, worker)) : false
121
+ };
122
+ }));
123
+ const bffPrefix = modernConfig.bff?.prefix;
124
+ const primaryBffPrefix = Array.isArray(bffPrefix) ? bffPrefix[0] : bffPrefix;
125
+ const isEffectApi = Boolean(modernConfig.bff) && modernConfig.bff?.runtimeFramework !== 'hono';
126
+ const effectApiWorkerExists = await utils_namespaceObject.fs.pathExists(external_node_path_default().join(outputDirectory, external_constants_js_namespaceObject.BFF_EFFECT_WORKER_ENTRY));
127
+ const serviceBindings = (0, external_wrangler_config_js_namespaceObject.createWorkerManifestServiceBindings)((0, external_wrangler_config_js_namespaceObject.createWorkerServiceBindings)(modernConfig, void 0));
128
+ const moduleFederation = await createModuleFederationWorkerManifest(outputDirectory);
129
+ if (isEffectApi && primaryBffPrefix && !effectApiWorkerExists) throw createMissingEffectBffWorkerError(outputDirectory, external_constants_js_namespaceObject.BFF_EFFECT_WORKER_ENTRY);
130
+ const effectBffManifest = isEffectApi ? createEffectBffWorkerManifest(modernConfig) : void 0;
131
+ return {
132
+ version: 1,
133
+ runtime: {
134
+ type: external_constants_js_namespaceObject.CLOUDFLARE_RUNTIME_TYPE,
135
+ entry: external_constants_js_namespaceObject.WORKER_ENTRY,
136
+ fetchExport: true,
137
+ nodeListen: false
138
+ },
139
+ assets: {
140
+ binding: external_constants_js_namespaceObject.ASSETS_BINDING,
141
+ directory: `./${external_constants_js_namespaceObject.PUBLIC_ASSETS_DIRECTORY}`,
142
+ runWorkerFirst: true
143
+ },
144
+ routeSpec: {
145
+ file: external_constants_js_namespaceObject.ROUTE_SPEC_OUTPUT,
146
+ routes
147
+ },
148
+ workerBundles: {
149
+ directory: external_constants_js_namespaceObject.WORKER_BUNDLE_DIRECTORY,
150
+ format: external_constants_js_namespaceObject.CLOUDFLARE_WORKER_BUNDLE_FORMAT,
151
+ importableFromModuleWorker: true,
152
+ requestHandlerExport: 'requestHandler'
153
+ },
154
+ resources: {
155
+ loadableStats: external_constants_js_namespaceObject.LOADABLE_STATS_FILE,
156
+ routeManifest: external_constants_js_namespaceObject.ROUTE_MANIFEST_FILE
157
+ },
158
+ security: (0, external_security_policies_js_namespaceObject.createCloudflareWorkerSecurityPolicy)(modernConfig),
159
+ ...void 0 === moduleFederation ? {} : {
160
+ moduleFederation
161
+ },
162
+ ...deliveryUnitStamp ? {
163
+ deliveryUnit: deliveryUnitStamp
164
+ } : {},
165
+ i18n: (0, external_i18n_worker_js_namespaceObject.createI18nWorkerManifest)(routeSpec, appContext),
166
+ bff: isEffectApi && primaryBffPrefix && effectApiWorkerExists ? {
167
+ dispatcherExport: external_constants_js_namespaceObject.BFF_EFFECT_WORKER_DISPATCHER_EXPORT,
168
+ runtimeFramework: 'effect',
169
+ prefix: primaryBffPrefix,
170
+ worker: external_constants_js_namespaceObject.BFF_EFFECT_WORKER_ENTRY,
171
+ effect: effectBffManifest
172
+ } : void 0,
173
+ ...void 0 === serviceBindings ? {} : {
174
+ serviceBindings
175
+ }
176
+ };
177
+ };
178
+ const createWorkerModuleLoaders = (manifest)=>{
179
+ const imports = new Map();
180
+ for (const route of manifest.routeSpec.routes)if (route.worker && route.workerExists) {
181
+ const importPath = `../${String(route.worker).replace(/^\/+/u, '')}`;
182
+ imports.set(route.worker, `() => import(${JSON.stringify(importPath)})`);
183
+ }
184
+ if (manifest.bff?.worker) {
185
+ const importPath = `../${String(manifest.bff.worker).replace(/^\/+/u, '')}`;
186
+ imports.set(manifest.bff.worker, `() => import(${JSON.stringify(importPath)})`);
187
+ }
188
+ if (0 === imports.size) return '{}';
189
+ const loaders = [
190
+ ...imports.entries()
191
+ ].map(([worker, loader])=>`${JSON.stringify(worker)}: ${loader}`);
192
+ return `{\n${loaders.join(',\n')}\n}`;
193
+ };
194
+ const getPublicAssetExcludes = (appDirectory, modernConfig)=>[
195
+ ...external_constants_js_namespaceObject.DEFAULT_SERVER_ONLY_PUBLIC_ASSET_EXCLUDES.filter((directory)=>{
196
+ try {
197
+ return utils_namespaceObject.fs.statSync(external_node_path_default().join(appDirectory, directory)).isDirectory();
198
+ } catch {
199
+ return false;
200
+ }
201
+ }),
202
+ ...modernConfig.deploy?.worker?.publicAssetExcludes ?? []
203
+ ].map((entry)=>(0, external_utils_js_namespaceObject.normalizeRelativePath)(entry, 'deploy.worker.publicAssetExcludes'));
204
+ const shouldCopyToPublicAssets = (src, distDirectory, publicAssetExcludes)=>{
205
+ const relativePath = external_node_path_default().relative(distDirectory, src);
206
+ if (!relativePath) return true;
207
+ const normalizedRelativePath = relativePath.replace(/\\/g, '/');
208
+ const [topLevelDirectory] = normalizedRelativePath.split('/');
209
+ const basename = normalizedRelativePath.split('/').pop() ?? '';
210
+ return normalizedRelativePath !== external_constants_js_namespaceObject.ROUTE_SPEC_FILE && topLevelDirectory !== external_constants_js_namespaceObject.WORKER_BUNDLE_DIRECTORY && topLevelDirectory !== external_constants_js_namespaceObject.SERVER_BUNDLE_DIRECTORY && '.env' !== basename && !basename.startsWith('.env.') && !publicAssetExcludes.some((exclude)=>normalizedRelativePath === exclude || normalizedRelativePath.startsWith(`${exclude}/`));
211
+ };
212
+ const shouldCopyToWorkerBundle = (src, workerBundleDirectory)=>{
213
+ const relativePath = external_node_path_default().relative(workerBundleDirectory, src);
214
+ if (!relativePath) return true;
215
+ const normalizedRelativePath = relativePath.replace(/\\/g, '/');
216
+ const basename = external_node_path_default().basename(normalizedRelativePath);
217
+ if (basename.startsWith('.') || normalizedRelativePath.includes('/.')) return false;
218
+ if (utils_namespaceObject.fs.statSync(src).isDirectory()) return true;
219
+ return [
220
+ '.cjs',
221
+ '.js',
222
+ '.mjs'
223
+ ].includes(external_node_path_default().extname(normalizedRelativePath));
224
+ };
225
+ exports.createWorkerManifest = __webpack_exports__.createWorkerManifest;
226
+ exports.createWorkerModuleLoaders = __webpack_exports__.createWorkerModuleLoaders;
227
+ exports.getPublicAssetExcludes = __webpack_exports__.getPublicAssetExcludes;
228
+ exports.shouldCopyToPublicAssets = __webpack_exports__.shouldCopyToPublicAssets;
229
+ exports.shouldCopyToWorkerBundle = __webpack_exports__.shouldCopyToWorkerBundle;
230
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
231
+ "createWorkerManifest",
232
+ "createWorkerModuleLoaders",
233
+ "getPublicAssetExcludes",
234
+ "shouldCopyToPublicAssets",
235
+ "shouldCopyToWorkerBundle"
236
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
237
+ Object.defineProperty(exports, '__esModule', {
238
+ value: true
239
+ });
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.n = (module)=>{
5
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
6
+ __webpack_require__.d(getter, {
7
+ a: getter
8
+ });
9
+ return getter;
10
+ };
11
+ })();
12
+ (()=>{
13
+ __webpack_require__.d = (exports1, getters, values)=>{
14
+ var define = (defs, kind)=>{
15
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
16
+ enumerable: true,
17
+ [kind]: defs[key]
18
+ });
19
+ };
20
+ define(getters, "get");
21
+ define(values, "value");
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ createWorkerManifestServiceBindings: ()=>createWorkerManifestServiceBindings,
41
+ createWorkerServiceBindings: ()=>createWorkerServiceBindings,
42
+ createWranglerConfig: ()=>createWranglerConfig
43
+ });
44
+ const external_node_path_namespaceObject = require("node:path");
45
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
46
+ const external_constants_js_namespaceObject = require("./constants.js");
47
+ const external_utils_js_namespaceObject = require("./utils.js");
48
+ const getCompatibilityDate = (modernConfig)=>{
49
+ const configuredDate = modernConfig.deploy?.worker?.compatibilityDate?.trim();
50
+ const compatibilityDate = configuredDate || external_constants_js_namespaceObject.DEFAULT_COMPATIBILITY_DATE;
51
+ if (!external_constants_js_namespaceObject.COMPATIBILITY_DATE_PATTERN.test(compatibilityDate)) throw new Error(`deploy.worker.compatibilityDate must use YYYY-MM-DD, received ${JSON.stringify(compatibilityDate)}.`);
52
+ return compatibilityDate;
53
+ };
54
+ const getWorkerName = (appDirectory)=>{
55
+ const basename = external_node_path_default().basename(appDirectory);
56
+ return basename.replace(/[^a-zA-Z0-9-_]/g, '-') || 'modern-cloudflare-worker';
57
+ };
58
+ const getConfiguredWorkerName = (appDirectory, modernConfig)=>{
59
+ const configuredName = modernConfig.deploy?.worker?.name?.trim();
60
+ return configuredName || getWorkerName(appDirectory);
61
+ };
62
+ const getConfiguredWrangler = (modernConfig)=>{
63
+ const wrangler = modernConfig.deploy?.worker?.wrangler;
64
+ if (void 0 === wrangler) return {};
65
+ if (!(0, external_utils_js_namespaceObject.isJsonRecord)(wrangler)) throw new Error('deploy.worker.wrangler must be a JSON object.');
66
+ return wrangler;
67
+ };
68
+ const createWranglerCompatibilityFlags = (configuredFlags)=>{
69
+ if (void 0 === configuredFlags) return [
70
+ ...external_constants_js_namespaceObject.REQUIRED_COMPATIBILITY_FLAGS
71
+ ];
72
+ if (!Array.isArray(configuredFlags) || configuredFlags.some((flag)=>'string' != typeof flag)) throw new Error('deploy.worker.wrangler.compatibility_flags must be an array of strings.');
73
+ return [
74
+ ...new Set([
75
+ ...configuredFlags,
76
+ ...external_constants_js_namespaceObject.REQUIRED_COMPATIBILITY_FLAGS
77
+ ])
78
+ ];
79
+ };
80
+ const createWranglerAssetsConfig = (configuredAssets)=>{
81
+ if (void 0 !== configuredAssets && !(0, external_utils_js_namespaceObject.isJsonRecord)(configuredAssets)) throw new Error('deploy.worker.wrangler.assets must be an object.');
82
+ return {
83
+ ...(0, external_utils_js_namespaceObject.isJsonRecord)(configuredAssets) ? configuredAssets : {},
84
+ directory: `./${external_constants_js_namespaceObject.PUBLIC_ASSETS_DIRECTORY}`,
85
+ binding: external_constants_js_namespaceObject.ASSETS_BINDING,
86
+ run_worker_first: true
87
+ };
88
+ };
89
+ const assertNonEmptyString = (value, label)=>{
90
+ if ('string' != typeof value || 0 === value.trim().length) throw new Error(`${label} must be a non-empty string.`);
91
+ return value.trim();
92
+ };
93
+ const normalizeD1Database = (database, index)=>{
94
+ const binding = assertNonEmptyString(database.binding, `deploy.worker.d1Databases[${index}].binding`);
95
+ const databaseName = assertNonEmptyString(database.databaseName, `deploy.worker.d1Databases[${index}].databaseName`);
96
+ const databaseId = assertNonEmptyString(database.databaseId, `deploy.worker.d1Databases[${index}].databaseId`);
97
+ const migrationsDir = void 0 === database.migrationsDir ? void 0 : (0, external_utils_js_namespaceObject.normalizeRelativePath)(database.migrationsDir, `deploy.worker.d1Databases[${index}].migrationsDir`, 'app root');
98
+ const previewDatabaseId = void 0 === database.previewDatabaseId ? void 0 : assertNonEmptyString(database.previewDatabaseId, `deploy.worker.d1Databases[${index}].previewDatabaseId`);
99
+ return {
100
+ binding,
101
+ database_name: databaseName,
102
+ database_id: databaseId,
103
+ ...void 0 === migrationsDir ? {} : {
104
+ migrations_dir: migrationsDir
105
+ },
106
+ ...void 0 === previewDatabaseId ? {} : {
107
+ preview_database_id: previewDatabaseId
108
+ },
109
+ ...void 0 === database.remote ? {} : {
110
+ remote: database.remote
111
+ }
112
+ };
113
+ };
114
+ const createWranglerD1Databases = (modernConfig, configuredWranglerD1)=>{
115
+ const d1Databases = modernConfig.deploy?.worker?.d1Databases;
116
+ if (void 0 === d1Databases) return configuredWranglerD1;
117
+ if (void 0 !== configuredWranglerD1) throw new Error('Use deploy.worker.d1Databases or deploy.worker.wrangler.d1_databases, not both.');
118
+ if (!Array.isArray(d1Databases)) throw new Error('deploy.worker.d1Databases must be an array.');
119
+ return d1Databases.map(normalizeD1Database);
120
+ };
121
+ const normalizeServiceBinding = (service, index)=>{
122
+ const binding = assertNonEmptyString(service.binding, `deploy.worker.services[${index}].binding`);
123
+ const serviceName = assertNonEmptyString(service.service, `deploy.worker.services[${index}].service`);
124
+ const prefix = void 0 === service.prefix ? void 0 : assertNonEmptyString(service.prefix, `deploy.worker.services[${index}].prefix`);
125
+ if (void 0 !== service.fragments && !Array.isArray(service.fragments)) throw new Error(`deploy.worker.services[${index}].fragments must be an array.`);
126
+ const fragments = void 0 === service.fragments ? void 0 : service.fragments.map((fragment, fragmentIndex)=>({
127
+ remote: assertNonEmptyString(fragment.remote, `deploy.worker.services[${index}].fragments[${fragmentIndex}].remote`),
128
+ expose: assertNonEmptyString(fragment.expose, `deploy.worker.services[${index}].fragments[${fragmentIndex}].expose`),
129
+ boundaryId: assertNonEmptyString(fragment.boundaryId, `deploy.worker.services[${index}].fragments[${fragmentIndex}].boundaryId`),
130
+ path: assertNonEmptyString(fragment.path, `deploy.worker.services[${index}].fragments[${fragmentIndex}].path`)
131
+ }));
132
+ return {
133
+ binding,
134
+ service: serviceName,
135
+ ...void 0 === prefix ? {} : {
136
+ prefix
137
+ },
138
+ ...void 0 === fragments ? {} : {
139
+ fragments
140
+ }
141
+ };
142
+ };
143
+ const createWorkerServiceBindings = (modernConfig, configuredWranglerServices)=>{
144
+ const services = modernConfig.deploy?.worker?.services;
145
+ if (void 0 === services) return configuredWranglerServices;
146
+ if (void 0 !== configuredWranglerServices) throw new Error('Use deploy.worker.services or deploy.worker.wrangler.services, not both.');
147
+ if (!Array.isArray(services)) throw new Error('deploy.worker.services must be an array.');
148
+ return services.map(normalizeServiceBinding);
149
+ };
150
+ const createWranglerServices = (serviceBindings)=>{
151
+ if (!Array.isArray(serviceBindings)) return serviceBindings;
152
+ if (!serviceBindings.every(external_utils_js_namespaceObject.isJsonRecord)) return serviceBindings;
153
+ return serviceBindings.map((service)=>{
154
+ const { prefix, fragments, ...wranglerService } = service;
155
+ return wranglerService;
156
+ });
157
+ };
158
+ const createWorkerManifestServiceBindings = (serviceBindings)=>{
159
+ if (!Array.isArray(serviceBindings)) return;
160
+ const bindings = serviceBindings;
161
+ const manifestBindings = bindings.filter((service)=>(0, external_utils_js_namespaceObject.isJsonRecord)(service) && 'string' == typeof service.binding && 'string' == typeof service.service && ('string' == typeof service.prefix || Array.isArray(service.fragments) && service.fragments.length > 0)).map((service)=>({
162
+ binding: service.binding,
163
+ service: service.service,
164
+ interface: 'fetch',
165
+ ...void 0 === service.prefix ? {} : {
166
+ prefix: service.prefix
167
+ },
168
+ ...void 0 === service.fragments ? {} : {
169
+ fragments: service.fragments
170
+ }
171
+ }));
172
+ return manifestBindings.length > 0 ? manifestBindings : void 0;
173
+ };
174
+ const createWranglerConfig = (appDirectory, modernConfig)=>{
175
+ const wrangler = getConfiguredWrangler(modernConfig);
176
+ const d1Databases = createWranglerD1Databases(modernConfig, wrangler.d1_databases);
177
+ const serviceBindings = createWorkerServiceBindings(modernConfig, wrangler.services);
178
+ const wranglerServices = createWranglerServices(serviceBindings);
179
+ return {
180
+ $schema: 'node_modules/wrangler/config-schema.json',
181
+ name: getConfiguredWorkerName(appDirectory, modernConfig),
182
+ compatibility_date: getCompatibilityDate(modernConfig),
183
+ ...wrangler,
184
+ main: external_constants_js_namespaceObject.WORKER_ENTRY,
185
+ compatibility_flags: createWranglerCompatibilityFlags(wrangler.compatibility_flags),
186
+ assets: createWranglerAssetsConfig(wrangler.assets),
187
+ ...void 0 === d1Databases ? {} : {
188
+ d1_databases: d1Databases
189
+ },
190
+ ...void 0 === wranglerServices ? {} : {
191
+ services: wranglerServices
192
+ }
193
+ };
194
+ };
195
+ exports.createWorkerManifestServiceBindings = __webpack_exports__.createWorkerManifestServiceBindings;
196
+ exports.createWorkerServiceBindings = __webpack_exports__.createWorkerServiceBindings;
197
+ exports.createWranglerConfig = __webpack_exports__.createWranglerConfig;
198
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
199
+ "createWorkerManifestServiceBindings",
200
+ "createWorkerServiceBindings",
201
+ "createWranglerConfig"
202
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
203
+ Object.defineProperty(exports, '__esModule', {
204
+ value: true
205
+ });