@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,156 @@
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
+ createCloudflarePreset: ()=>createCloudflarePreset
41
+ });
42
+ const external_node_path_namespaceObject = require("node:path");
43
+ var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
44
+ const utils_namespaceObject = require("@modern-js/utils");
45
+ const external_cloudflare_output_plan_js_namespaceObject = require("../cloudflare-output-plan.js");
46
+ const index_js_namespaceObject = require("../cloudflare-output-verifier/index.js");
47
+ const external_read_template_js_namespaceObject = require("../read-template.js");
48
+ const framework_output_js_namespaceObject = require("../release-envelope/framework-output.js");
49
+ const external_artifacts_js_namespaceObject = require("./artifacts.js");
50
+ const external_constants_js_namespaceObject = require("./constants.js");
51
+ const external_delivery_unit_js_namespaceObject = require("./delivery-unit.js");
52
+ const external_worker_manifest_js_namespaceObject = require("./worker-manifest.js");
53
+ const external_wrangler_config_js_namespaceObject = require("./wrangler-config.js");
54
+ const CLOUDFLARE_ENTRY_TEMPLATE_FRAGMENTS = [
55
+ 'cloudflare-entry.001-bootstrap-security.mjs',
56
+ 'cloudflare-entry.002-assets-routes.mjs',
57
+ 'cloudflare-entry.003-i18n-locales.mjs',
58
+ 'cloudflare-entry.004-rendering-css.mjs',
59
+ 'cloudflare-entry.005-worker-dispatch.mjs',
60
+ 'cloudflare-entry.006-fetch-handler.mjs'
61
+ ];
62
+ const readCloudflareEntryTemplate = async ()=>(await Promise.all(CLOUDFLARE_ENTRY_TEMPLATE_FRAGMENTS.map((fragment)=>(0, external_read_template_js_namespaceObject.readTemplate)(fragment)))).join('');
63
+ const createCloudflarePreset = ({ api, appContext, modernConfig })=>{
64
+ const { apiOnly, appDirectory, distDirectory } = appContext;
65
+ const outputDirectory = external_node_path_default().join(appDirectory, '.output');
66
+ const outputPlan = (0, external_cloudflare_output_plan_js_namespaceObject.createCloudflareOutputPlan)(outputDirectory);
67
+ const publicDirectory = outputPlan.paths.publicAssets;
68
+ const workerEntryPath = outputPlan.paths.workerEntry;
69
+ const workerManifestPath = outputPlan.paths.workerManifest;
70
+ const routeSpecOutputPath = external_node_path_default().join(outputDirectory, external_constants_js_namespaceObject.ROUTE_SPEC_OUTPUT);
71
+ const wranglerConfigPath = outputPlan.paths.wranglerConfig;
72
+ const cloudflareArtifacts = (0, external_artifacts_js_namespaceObject.getCloudflareArtifacts)(modernConfig);
73
+ const publicAssetExcludes = (0, external_worker_manifest_js_namespaceObject.getPublicAssetExcludes)(appDirectory, modernConfig);
74
+ const releaseEnvelopeEnabled = api.isPluginExists('@modern-js/ultramodern-release-envelope');
75
+ let hasReleaseEnvelope = false;
76
+ return {
77
+ async prepare () {
78
+ await utils_namespaceObject.fs.remove(outputDirectory);
79
+ },
80
+ async writeOutput () {
81
+ if (releaseEnvelopeEnabled && await utils_namespaceObject.fs.pathExists(external_node_path_default().join(distDirectory, framework_output_js_namespaceObject.MICROVERTICAL_RELEASE_ENVELOPE_PATH))) await (0, framework_output_js_namespaceObject.emitFrameworkMicroVerticalReleaseEnvelope)({
82
+ apiOnly,
83
+ distDirectory,
84
+ target: 'cloudflare'
85
+ });
86
+ if (releaseEnvelopeEnabled) await (0, framework_output_js_namespaceObject.verifyBuildOutputReleaseEnvelope)(distDirectory, 'cloudflare');
87
+ await utils_namespaceObject.fs.copy(distDirectory, publicDirectory, {
88
+ filter: (src)=>{
89
+ const relativePath = external_node_path_default().relative(distDirectory, src).replace(/\\/gu, '/');
90
+ return 'release' !== relativePath && !relativePath.startsWith('release/') && 'public' !== relativePath && !relativePath.startsWith('public/') && (0, external_worker_manifest_js_namespaceObject.shouldCopyToPublicAssets)(src, distDirectory, publicAssetExcludes);
91
+ }
92
+ });
93
+ const generatedPublicDirectory = external_node_path_default().join(distDirectory, 'public');
94
+ if (await utils_namespaceObject.fs.pathExists(generatedPublicDirectory)) await utils_namespaceObject.fs.copy(generatedPublicDirectory, publicDirectory, {
95
+ filter: (src)=>{
96
+ const relativePath = external_node_path_default().relative(generatedPublicDirectory, src).replace(/\\/gu, '/');
97
+ return 'release' !== relativePath && !relativePath.startsWith('release/') && (0, external_worker_manifest_js_namespaceObject.shouldCopyToPublicAssets)(src, generatedPublicDirectory, publicAssetExcludes);
98
+ }
99
+ });
100
+ await utils_namespaceObject.fs.ensureDir(external_node_path_default().dirname(workerEntryPath));
101
+ await utils_namespaceObject.fs.ensureDir(external_node_path_default().dirname(workerManifestPath));
102
+ const routeSpecSourcePath = external_node_path_default().join(distDirectory, external_constants_js_namespaceObject.ROUTE_SPEC_FILE);
103
+ if (await utils_namespaceObject.fs.pathExists(routeSpecSourcePath)) await utils_namespaceObject.fs.copy(routeSpecSourcePath, routeSpecOutputPath);
104
+ const workerBundleSourceDirectory = external_node_path_default().join(distDirectory, external_constants_js_namespaceObject.WORKER_BUNDLE_DIRECTORY);
105
+ const workerBundleOutputDirectory = outputPlan.paths.workerBundle;
106
+ if (await utils_namespaceObject.fs.pathExists(workerBundleSourceDirectory)) {
107
+ await utils_namespaceObject.fs.copy(workerBundleSourceDirectory, workerBundleOutputDirectory, {
108
+ filter: (src)=>(0, external_worker_manifest_js_namespaceObject.shouldCopyToWorkerBundle)(src, workerBundleSourceDirectory)
109
+ });
110
+ await utils_namespaceObject.fs.writeJSON(outputPlan.paths.workerPackage, outputPlan.packages.worker);
111
+ }
112
+ await (0, external_artifacts_js_namespaceObject.copyCloudflareArtifacts)(appDirectory, outputDirectory, cloudflareArtifacts);
113
+ await (0, external_artifacts_js_namespaceObject.copyCloudflarePublicAssets)(appDirectory, publicDirectory, (0, external_artifacts_js_namespaceObject.getCloudflarePublicAssets)(modernConfig));
114
+ await (0, external_artifacts_js_namespaceObject.copyCloudflareD1Migrations)(appDirectory, outputDirectory, modernConfig);
115
+ await utils_namespaceObject.fs.writeJSON(wranglerConfigPath, (0, external_wrangler_config_js_namespaceObject.createWranglerConfig)(appDirectory, modernConfig), {
116
+ spaces: 2
117
+ });
118
+ const deliveryUnitStamp = await (0, external_delivery_unit_js_namespaceObject.resolveWorkerDeliveryUnitStamp)(appDirectory);
119
+ await utils_namespaceObject.fs.writeJSON(workerManifestPath, await (0, external_worker_manifest_js_namespaceObject.createWorkerManifest)(outputDirectory, modernConfig, appContext, deliveryUnitStamp), {
120
+ spaces: 2
121
+ });
122
+ await utils_namespaceObject.fs.writeJSON(outputPlan.paths.outputPackage, outputPlan.packages.output);
123
+ hasReleaseEnvelope = releaseEnvelopeEnabled && Boolean(await (0, framework_output_js_namespaceObject.stageCloudflareReleaseEnvelope)({
124
+ distDirectory,
125
+ outputDirectory
126
+ }));
127
+ },
128
+ async genEntry () {
129
+ const template = await readCloudflareEntryTemplate();
130
+ const manifest = await utils_namespaceObject.fs.readJSON(workerManifestPath);
131
+ await utils_namespaceObject.fs.writeFile(workerEntryPath, template.replace('p_workerManifest', JSON.stringify(manifest, null, 2)).replace('p_workerModuleLoaders', (0, external_worker_manifest_js_namespaceObject.createWorkerModuleLoaders)(manifest)));
132
+ const topologyDeliveryUnit = await (0, external_delivery_unit_js_namespaceObject.resolveTopologyDeliveryUnit)(appDirectory);
133
+ await (0, index_js_namespaceObject.assertCloudflareOutput)({
134
+ outputDirectory,
135
+ importWorker: false,
136
+ ...topologyDeliveryUnit ? {
137
+ deliveryUnit: topologyDeliveryUnit
138
+ } : {}
139
+ });
140
+ if (hasReleaseEnvelope) {
141
+ await (0, framework_output_js_namespaceObject.emitCloudflareStagedReleaseEnvelope)({
142
+ distDirectory,
143
+ outputDirectory
144
+ });
145
+ await (0, framework_output_js_namespaceObject.verifyCloudflareReleaseEnvelopeStaging)(outputDirectory);
146
+ } else if (await utils_namespaceObject.fs.pathExists(external_node_path_default().join(outputDirectory, framework_output_js_namespaceObject.MICROVERTICAL_RELEASE_ENVELOPE_PATH))) throw new Error('[ultramodern-release-envelope] Cloudflare staging contains an envelope not selected from this MicroVertical build.');
147
+ }
148
+ };
149
+ };
150
+ exports.createCloudflarePreset = __webpack_exports__.createCloudflarePreset;
151
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
152
+ "createCloudflarePreset"
153
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
154
+ Object.defineProperty(exports, '__esModule', {
155
+ value: true
156
+ });
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, getters, values)=>{
5
+ var define = (defs, kind)=>{
6
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
7
+ enumerable: true,
8
+ [kind]: defs[key]
9
+ });
10
+ };
11
+ define(getters, "get");
12
+ define(values, "value");
13
+ };
14
+ })();
15
+ (()=>{
16
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
17
+ })();
18
+ (()=>{
19
+ __webpack_require__.r = (exports1)=>{
20
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
21
+ value: 'Module'
22
+ });
23
+ Object.defineProperty(exports1, '__esModule', {
24
+ value: true
25
+ });
26
+ };
27
+ })();
28
+ var __webpack_exports__ = {};
29
+ __webpack_require__.r(__webpack_exports__);
30
+ const DEFAULT_SECURITY_HEADERS = {
31
+ referrerPolicy: 'strict-origin-when-cross-origin',
32
+ contentTypeOptions: 'nosniff',
33
+ permissionsPolicy: 'camera=(), geolocation=(), microphone=(), payment=(), usb=()'
34
+ };
35
+ const DEFAULT_CORS_ALLOWED_METHODS = [
36
+ 'GET',
37
+ 'HEAD',
38
+ 'POST',
39
+ 'PUT',
40
+ 'PATCH',
41
+ 'DELETE',
42
+ 'OPTIONS'
43
+ ];
44
+ const DEFAULT_CSP_DIRECTIVES = {
45
+ 'base-uri': [
46
+ "'self'"
47
+ ],
48
+ 'connect-src': [
49
+ "'self'",
50
+ 'https:',
51
+ 'http:',
52
+ 'wss:',
53
+ 'ws:'
54
+ ],
55
+ 'default-src': [
56
+ "'self'"
57
+ ],
58
+ 'font-src': [
59
+ "'self'",
60
+ 'data:',
61
+ 'https:',
62
+ 'http:'
63
+ ],
64
+ 'form-action': [
65
+ "'self'"
66
+ ],
67
+ 'frame-ancestors': [
68
+ "'self'"
69
+ ],
70
+ 'img-src': [
71
+ "'self'",
72
+ 'data:',
73
+ 'blob:',
74
+ 'https:',
75
+ 'http:'
76
+ ],
77
+ 'manifest-src': [
78
+ "'self'",
79
+ 'https:',
80
+ 'http:'
81
+ ],
82
+ 'object-src': [
83
+ "'none'"
84
+ ],
85
+ "script-src": [
86
+ "'self'",
87
+ "'unsafe-inline'",
88
+ "'unsafe-eval'",
89
+ 'https:',
90
+ 'http:',
91
+ 'blob:'
92
+ ],
93
+ 'style-src': [
94
+ "'self'",
95
+ "'unsafe-inline'",
96
+ 'https:',
97
+ 'http:'
98
+ ],
99
+ 'worker-src': [
100
+ "'self'",
101
+ 'blob:'
102
+ ]
103
+ };
104
+ const normalizeDirectiveValues = (value)=>{
105
+ const values = Array.isArray(value) ? value : [
106
+ value
107
+ ];
108
+ return [
109
+ ...new Set(values.map((entry)=>entry.trim()).filter(Boolean))
110
+ ];
111
+ };
112
+ const appendDirectiveValues = (directives, name, values)=>{
113
+ if (!values?.length) return;
114
+ directives[name] = normalizeDirectiveValues([
115
+ ...directives[name] ?? [],
116
+ ...values
117
+ ]);
118
+ };
119
+ const createContentSecurityPolicy = (config)=>{
120
+ const mode = config?.mode ?? 'report-only';
121
+ if ('off' === mode) return {
122
+ mode,
123
+ directives: {},
124
+ reason: config?.reason
125
+ };
126
+ const directives = Object.fromEntries(Object.entries(DEFAULT_CSP_DIRECTIVES).map(([name, values])=>[
127
+ name,
128
+ [
129
+ ...values
130
+ ]
131
+ ]));
132
+ for (const [name, value] of Object.entries(config?.directives ?? {}))if (false === value) delete directives[name];
133
+ else directives[name] = normalizeDirectiveValues(value);
134
+ if (config?.frameAncestors === false) delete directives['frame-ancestors'];
135
+ else if (config?.frameAncestors) directives['frame-ancestors'] = normalizeDirectiveValues(config.frameAncestors);
136
+ appendDirectiveValues(directives, "script-src", config?.additionalScriptSrc);
137
+ appendDirectiveValues(directives, 'style-src', config?.additionalStyleSrc);
138
+ appendDirectiveValues(directives, 'connect-src', config?.additionalConnectSrc);
139
+ appendDirectiveValues(directives, 'img-src', config?.additionalImgSrc);
140
+ if (config?.reportUri) directives['report-uri'] = [
141
+ config.reportUri
142
+ ];
143
+ return {
144
+ mode,
145
+ directives,
146
+ reason: config?.reason
147
+ };
148
+ };
149
+ const createNoindexPolicy = (noindex)=>{
150
+ if (false === noindex) return {
151
+ workersDev: false,
152
+ localhost: false,
153
+ previewHostnames: []
154
+ };
155
+ if (true === noindex || void 0 === noindex) return {
156
+ workersDev: true,
157
+ localhost: true,
158
+ previewHostnames: []
159
+ };
160
+ return {
161
+ workersDev: noindex.workersDev ?? true,
162
+ localhost: noindex.localhost ?? true,
163
+ previewHostnames: noindex.previewHostnames ?? [],
164
+ reason: noindex.reason
165
+ };
166
+ };
167
+ const createCloudflareWorkerCorsPolicy = (cors)=>({
168
+ assets: cors?.assets ?? true,
169
+ allowedOrigins: normalizeDirectiveValues(cors?.allowedOrigins ?? []),
170
+ allowedMethods: cors?.allowedMethods?.length ? normalizeDirectiveValues(cors.allowedMethods.map((method)=>method.toUpperCase())) : DEFAULT_CORS_ALLOWED_METHODS,
171
+ allowedHeaders: cors?.allowedHeaders?.length ? normalizeDirectiveValues(cors.allowedHeaders) : [
172
+ '*'
173
+ ],
174
+ reason: cors?.reason
175
+ });
176
+ const createCloudflareWorkerSecurityPolicy = (modernConfig)=>{
177
+ const security = modernConfig.deploy?.worker?.security;
178
+ if (security?.enabled === false) return {
179
+ enabled: false,
180
+ cors: createCloudflareWorkerCorsPolicy(security.cors),
181
+ reason: security.reason
182
+ };
183
+ return {
184
+ enabled: true,
185
+ headers: {
186
+ referrerPolicy: security?.headers?.referrerPolicy ?? DEFAULT_SECURITY_HEADERS.referrerPolicy,
187
+ contentTypeOptions: security?.headers?.contentTypeOptions ?? DEFAULT_SECURITY_HEADERS.contentTypeOptions,
188
+ permissionsPolicy: security?.headers?.permissionsPolicy ?? DEFAULT_SECURITY_HEADERS.permissionsPolicy
189
+ },
190
+ contentSecurityPolicy: createContentSecurityPolicy(security?.contentSecurityPolicy),
191
+ noindex: createNoindexPolicy(security?.noindex),
192
+ cors: createCloudflareWorkerCorsPolicy(security?.cors),
193
+ reason: security?.reason
194
+ };
195
+ };
196
+ __webpack_require__.d(__webpack_exports__, {}, {
197
+ createCloudflareWorkerSecurityPolicy: createCloudflareWorkerSecurityPolicy
198
+ });
199
+ exports.createCloudflareWorkerSecurityPolicy = __webpack_exports__.createCloudflareWorkerSecurityPolicy;
200
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
201
+ "createCloudflareWorkerSecurityPolicy"
202
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
203
+ Object.defineProperty(exports, '__esModule', {
204
+ value: true
205
+ });
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,66 @@
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
+ isJsonRecord: ()=>isJsonRecord,
41
+ isRecord: ()=>isRecord,
42
+ normalizeRelativePath: ()=>normalizeRelativePath
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 isRecord = (value)=>null !== value && 'object' == typeof value && !Array.isArray(value);
47
+ const normalizeRelativePath = (value, label, scope = 'app output', options = {})=>{
48
+ if ('string' != typeof value) throw new Error(`${label} must be a relative path inside the ${scope}.`);
49
+ const normalized = value.trim().replace(/\\/g, '/').replace(/^\.\/+/u, '').replace(/\/+$/u, '');
50
+ const segments = normalized.split('/');
51
+ const isRootDestination = '.' === normalized;
52
+ if (!normalized || external_node_path_default().isAbsolute(normalized) || !options.allowRoot && isRootDestination || segments.includes('..')) throw new Error(`${label} must be a relative path inside the ${scope}.`);
53
+ return normalized;
54
+ };
55
+ const isJsonRecord = (value)=>'object' == typeof value && null !== value && !Array.isArray(value);
56
+ exports.isJsonRecord = __webpack_exports__.isJsonRecord;
57
+ exports.isRecord = __webpack_exports__.isRecord;
58
+ exports.normalizeRelativePath = __webpack_exports__.normalizeRelativePath;
59
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
60
+ "isJsonRecord",
61
+ "isRecord",
62
+ "normalizeRelativePath"
63
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
64
+ Object.defineProperty(exports, '__esModule', {
65
+ value: true
66
+ });