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

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
@@ -14,6 +14,17 @@ export interface CloudflareWorkerArtifactConfig {
14
14
  */
15
15
  to: string;
16
16
  }
17
+ export interface CloudflareWorkerPublicAssetConfig {
18
+ /**
19
+ * Source file or directory, relative to the app root, to copy into
20
+ * Cloudflare Worker Static Assets.
21
+ */
22
+ from: string;
23
+ /**
24
+ * Destination path relative to `.output/public`.
25
+ */
26
+ to: string;
27
+ }
17
28
  export interface CloudflareWorkerD1DatabaseConfig {
18
29
  /**
19
30
  * Worker binding name, for example `DB`.
@@ -41,6 +52,17 @@ export interface CloudflareWorkerD1DatabaseConfig {
41
52
  */
42
53
  remote?: boolean;
43
54
  }
55
+ export interface CloudflareWorkerServiceBindingConfig {
56
+ /** Worker binding name exposed on the module worker `env` object. */
57
+ binding: string;
58
+ /** Target Cloudflare Worker service name. */
59
+ service: string;
60
+ /**
61
+ * Optional application path prefix that Modern.js should dispatch to this
62
+ * service binding with `env[binding].fetch(request)`.
63
+ */
64
+ prefix?: string;
65
+ }
44
66
  export interface CloudflareWorkerSecurityCspConfig {
45
67
  mode?: CloudflareWorkerSecurityCspMode;
46
68
  directives?: Record<string, string[] | string | false>;
@@ -1,5 +1,5 @@
1
- import type { CloudflareWorkerArtifactConfig, CloudflareWorkerD1DatabaseConfig, CloudflareWorkerSecurityConfig, DeployTarget, JsonValue } from './cloudflareDeploy';
2
- export type { CloudflareWorkerArtifactConfig, CloudflareWorkerD1DatabaseConfig, CloudflareWorkerSecurityConfig, CloudflareWorkerSecurityCorsConfig, CloudflareWorkerSecurityCspConfig, CloudflareWorkerSecurityCspMode, CloudflareWorkerSecurityNoindexConfig, DeployTarget, JsonValue, } from './cloudflareDeploy';
1
+ import type { CloudflareWorkerArtifactConfig, CloudflareWorkerD1DatabaseConfig, CloudflareWorkerPublicAssetConfig, CloudflareWorkerSecurityConfig, CloudflareWorkerServiceBindingConfig, DeployTarget, JsonValue } from './cloudflareDeploy';
2
+ export type { CloudflareWorkerArtifactConfig, CloudflareWorkerD1DatabaseConfig, CloudflareWorkerPublicAssetConfig, CloudflareWorkerSecurityConfig, CloudflareWorkerSecurityCorsConfig, CloudflareWorkerSecurityCspConfig, CloudflareWorkerSecurityCspMode, CloudflareWorkerSecurityNoindexConfig, CloudflareWorkerServiceBindingConfig, DeployTarget, JsonValue, } from './cloudflareDeploy';
3
3
  export interface MicroFrontend {
4
4
  /**
5
5
  * Specifies whether to enable the HTML entry.
@@ -47,12 +47,25 @@ export interface DeployUserConfig {
47
47
  * Use this for provider resources such as migrations or generated config.
48
48
  */
49
49
  artifacts?: CloudflareWorkerArtifactConfig[];
50
+ /**
51
+ * Additional app-root files or directories to serve as Cloudflare Worker
52
+ * Static Assets under `.output/public`. Use `to: '.'` to copy a
53
+ * source directory's contents into the public asset root.
54
+ */
55
+ publicAssets?: CloudflareWorkerPublicAssetConfig[];
50
56
  /**
51
57
  * First-class Cloudflare D1 bindings. Modern.js writes these to
52
58
  * `wrangler.json` as `d1_databases` and stages configured migration
53
59
  * directories into `.output`.
54
60
  */
55
61
  d1Databases?: CloudflareWorkerD1DatabaseConfig[];
62
+ /**
63
+ * First-class Cloudflare service bindings. Modern.js writes these to
64
+ * `wrangler.json` as `services`; when a binding also has `prefix`,
65
+ * the generated Worker dispatches matching requests through
66
+ * `env[binding].fetch(request)`.
67
+ */
68
+ services?: CloudflareWorkerServiceBindingConfig[];
56
69
  /**
57
70
  * Dist output paths that must not be copied into Cloudflare public assets.
58
71
  * Entries are slash-normalized path prefixes relative to the app dist root.
package/lib/types.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="react" />
3
3
  /// <reference types="react-dom" />
4
- /// <reference types="@rsbuild/core/types" />
5
- /// <reference path="../dist/types/index.d.ts" />
6
4
 
7
5
  declare namespace NodeJS {
8
6
  interface ProcessEnv {
@@ -12,7 +10,8 @@ declare namespace NodeJS {
12
10
  }
13
11
  }
14
12
 
15
- // reference @rsbuild/core/types, but there are some differences, such as svg
13
+ // Keep this app-environment surface independent from framework configuration
14
+ // declarations so strict app typecheck does not enter toolchain internals.
16
15
  /**
17
16
  * Image assets
18
17
  */
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "modern",
18
18
  "modern.js"
19
19
  ],
20
- "version": "3.5.0-ultramodern.4",
20
+ "version": "3.5.0-ultramodern.40",
21
21
  "types": "./dist/types/index.d.ts",
22
22
  "main": "./dist/cjs/index.js",
23
23
  "exports": {
@@ -45,6 +45,12 @@
45
45
  "require": "./dist/cjs/run/index.js",
46
46
  "default": "./dist/cjs/run/index.js"
47
47
  },
48
+ "./cloudflare-output-verifier": {
49
+ "types": "./dist/types/plugins/deploy/platforms/cloudflare-output-verifier/index.d.ts",
50
+ "import": "./dist/esm-node/plugins/deploy/platforms/cloudflare-output-verifier/index.mjs",
51
+ "require": "./dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js",
52
+ "default": "./dist/cjs/plugins/deploy/platforms/cloudflare-output-verifier/index.js"
53
+ },
48
54
  "./types": {
49
55
  "types": "./lib/types.d.ts",
50
56
  "default": "./lib/types.d.ts"
@@ -78,37 +84,37 @@
78
84
  "@babel/traverse": "^8.0.0",
79
85
  "@babel/types": "^8.0.0",
80
86
  "@loadable/component": "5.16.7",
81
- "@rsbuild/core": "2.1.1",
87
+ "@rsbuild/core": "2.1.5",
82
88
  "@swc/core": "1.15.43",
83
89
  "@swc/helpers": "^0.5.23",
84
90
  "compression-webpack-plugin": "^12.0.0",
85
- "es-module-lexer": "^2.1.0",
91
+ "es-module-lexer": "^2.3.0",
86
92
  "esbuild": "^0.28.1",
87
93
  "flatted": "^3.4.2",
88
94
  "import-meta-resolve": "^4.2.0",
89
95
  "mlly": "^1.8.2",
90
96
  "ndepe": "^0.1.13",
91
97
  "pkg-types": "^2.3.1",
92
- "std-env": "4.1.0",
93
- "@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.5.0-ultramodern.4",
94
- "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.4",
95
- "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.4",
96
- "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.4",
97
- "@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.5.0-ultramodern.4",
98
- "@modern-js/server": "npm:@bleedingdev/modern-js-server@3.5.0-ultramodern.4",
99
- "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.4",
100
- "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.4",
101
- "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.5.0-ultramodern.4",
102
- "@modern-js/server-utils": "npm:@bleedingdev/modern-js-server-utils@3.5.0-ultramodern.4"
98
+ "std-env": "4.2.0",
99
+ "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.5.0-ultramodern.40",
100
+ "@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.5.0-ultramodern.40",
101
+ "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.40",
102
+ "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.40",
103
+ "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.5.0-ultramodern.40",
104
+ "@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.5.0-ultramodern.40",
105
+ "@modern-js/server": "npm:@bleedingdev/modern-js-server@3.5.0-ultramodern.40",
106
+ "@modern-js/server-utils": "npm:@bleedingdev/modern-js-server-utils@3.5.0-ultramodern.40",
107
+ "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.40",
108
+ "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.40"
103
109
  },
104
110
  "devDependencies": {
105
- "@rslib/core": "0.23.1",
111
+ "@rslib/core": "0.23.2",
106
112
  "@types/babel__traverse": "7.28.0",
107
- "@types/node": "^26.0.1",
108
- "@typescript/native-preview": "7.0.0-dev.20260628.1",
113
+ "@types/node": "^26.1.1",
114
+ "@typescript/native-preview": "7.0.0-dev.20260707.2",
109
115
  "ts-node": "^10.9.2",
110
116
  "tsconfig-paths": "^4.2.0",
111
- "typescript": "^6.0.3",
117
+ "typescript": "^7.0.2",
112
118
  "@scripts/rstest-config": "2.66.0"
113
119
  },
114
120
  "peerDependencies": {
@@ -1,196 +0,0 @@
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_RUNTIME_HOST = 'http://127.0.0.1:8080';
31
- const DEFAULT_RUNTIME_STATUS_PATH = '/_modern/runtime/status';
32
- const DEFAULT_RUNTIME_FALLBACK_SIGNAL_PATH = '/_modern/contract-gates/runtime-fallback';
33
- const DEFAULT_RUNTIME_TOKEN_HEADER = 'x-modernjs-runtime-signal-token';
34
- const DEFAULT_TIMEOUT_MS = 5000;
35
- const resolveRuntimeEndpoint = (input, defaultPath)=>{
36
- const rawInput = input?.trim();
37
- if (!rawInput) return `${DEFAULT_RUNTIME_HOST}${defaultPath}`;
38
- if (rawInput.startsWith('http://') || rawInput.startsWith('https://')) return rawInput;
39
- const normalized = rawInput.startsWith('/') ? rawInput : `/${rawInput}`;
40
- return `${DEFAULT_RUNTIME_HOST}${normalized}`;
41
- };
42
- const resolveToken = ({ token, tokenEnv })=>{
43
- if ('string' == typeof token && token.trim().length > 0) return token.trim();
44
- if ('string' == typeof tokenEnv && tokenEnv.trim().length > 0) {
45
- const value = process.env[tokenEnv.trim()];
46
- if ('string' == typeof value && value.trim().length > 0) return value.trim();
47
- }
48
- };
49
- const parseTimeoutMs = (value)=>{
50
- if ('string' != typeof value || 0 === value.trim().length) return DEFAULT_TIMEOUT_MS;
51
- const parsed = Number.parseInt(value, 10);
52
- if (!Number.isFinite(parsed) || parsed <= 0) return DEFAULT_TIMEOUT_MS;
53
- return parsed;
54
- };
55
- const parseMetadata = (metadata)=>{
56
- if ('string' != typeof metadata || 0 === metadata.trim().length) return;
57
- const parsed = JSON.parse(metadata);
58
- if (!parsed || 'object' != typeof parsed || Array.isArray(parsed)) throw new Error('metadata must be a JSON object');
59
- return parsed;
60
- };
61
- const fetchWithTimeout = async (url, init, timeoutMs)=>{
62
- const controller = new AbortController();
63
- const timeout = setTimeout(()=>{
64
- controller.abort();
65
- }, timeoutMs);
66
- try {
67
- return await fetch(url, {
68
- ...init,
69
- signal: controller.signal
70
- });
71
- } finally{
72
- clearTimeout(timeout);
73
- }
74
- };
75
- const parseResponseBody = async (response)=>{
76
- const text = await response.text();
77
- if (!text) return {};
78
- try {
79
- return JSON.parse(text);
80
- } catch (_error) {
81
- return {
82
- raw: text
83
- };
84
- }
85
- };
86
- const INDENT_STEP = ' ';
87
- const formatScalar = (value)=>'string' == typeof value ? value : JSON.stringify(value) ?? 'undefined';
88
- const formatHumanReadableLines = (value, indent)=>{
89
- if (Array.isArray(value)) {
90
- if (0 === value.length) return [
91
- `${indent}(empty)`
92
- ];
93
- return value.flatMap((entry)=>null !== entry && 'object' == typeof entry ? [
94
- `${indent}-`,
95
- ...formatHumanReadableLines(entry, indent + INDENT_STEP)
96
- ] : [
97
- `${indent}- ${formatScalar(entry)}`
98
- ]);
99
- }
100
- if (null !== value && 'object' == typeof value) {
101
- const entries = Object.entries(value);
102
- if (0 === entries.length) return [
103
- `${indent}(empty)`
104
- ];
105
- return entries.flatMap(([key, entry])=>null !== entry && 'object' == typeof entry ? [
106
- `${indent}${key}:`,
107
- ...formatHumanReadableLines(entry, indent + INDENT_STEP)
108
- ] : [
109
- `${indent}${key}: ${formatScalar(entry)}`
110
- ]);
111
- }
112
- return [
113
- `${indent}${formatScalar(value)}`
114
- ];
115
- };
116
- const formatRuntimeOutput = (payload, jsonOnly)=>jsonOnly ? JSON.stringify(payload, null, 2) : formatHumanReadableLines(payload, '').join('\n');
117
- const printOutput = (payload, jsonOnly)=>{
118
- console.log(formatRuntimeOutput(payload, jsonOnly));
119
- };
120
- const createRuntimeFallbackSignalPayload = (options)=>{
121
- const payload = {
122
- appName: options.app,
123
- reason: options.reason || 'runtime_fallback',
124
- phase: options.phase || 'load'
125
- };
126
- if (options.entry) payload.entry = options.entry;
127
- if (options.runtimeDigest) payload.runtimeDigest = options.runtimeDigest;
128
- const metadata = parseMetadata(options.metadata);
129
- if (metadata) payload.metadata = metadata;
130
- return payload;
131
- };
132
- const runtimeCommand = async (program, _api)=>{
133
- const runtime = program.command('runtime').description('runtime operations');
134
- runtime.command('status').description('read runtime status snapshot').option('--endpoint <endpoint>', 'runtime status endpoint URL or path').option('--token <token>', 'runtime status auth token').option('--token-env <name>', 'environment variable name that stores runtime status auth token', 'MODERN_RUNTIME_SIGNAL_TOKEN').option('--header-name <name>', 'auth header name', DEFAULT_RUNTIME_TOKEN_HEADER).option('--timeout <ms>', 'request timeout in milliseconds', '5000').option('--json', 'output as JSON format for machine reading').action(async (options)=>{
135
- const endpoint = resolveRuntimeEndpoint(options.endpoint, DEFAULT_RUNTIME_STATUS_PATH);
136
- const timeoutMs = parseTimeoutMs(options.timeout);
137
- const token = resolveToken({
138
- token: options.token,
139
- tokenEnv: options.tokenEnv
140
- });
141
- const headerName = options.headerName?.trim() || DEFAULT_RUNTIME_TOKEN_HEADER;
142
- const headers = new Headers();
143
- if (token) headers.set(headerName, token);
144
- const response = await fetchWithTimeout(endpoint, {
145
- method: 'GET',
146
- headers
147
- }, timeoutMs);
148
- const payload = await parseResponseBody(response);
149
- if (!response.ok) throw new Error(`runtime status request failed with ${response.status}: ${JSON.stringify(payload)}`);
150
- printOutput(payload, options.json);
151
- });
152
- runtime.command('fallback-signal').description('emit runtime fallback signal for canary gate mutation').requiredOption('--app <appName>', 'remote app name').option('--endpoint <endpoint>', 'runtime fallback signal endpoint URL or path').option('--reason <reason>', 'fallback reason', 'runtime_fallback').option('--phase <phase>', 'fallback phase', 'load').option('--entry <entry>', 'remote entry URL').option('--runtime-digest <digest>', 'runtime digest value').option('--metadata <json>', 'metadata JSON object string').option('--token <token>', 'runtime signal auth token').option('--token-env <name>', 'environment variable name that stores runtime signal auth token', 'MODERN_RUNTIME_SIGNAL_TOKEN').option('--header-name <name>', 'auth header name', DEFAULT_RUNTIME_TOKEN_HEADER).option('--timeout <ms>', 'request timeout in milliseconds', '5000').option('--json', 'output as JSON format for machine reading').action(async (options)=>{
153
- const endpoint = resolveRuntimeEndpoint(options.endpoint, DEFAULT_RUNTIME_FALLBACK_SIGNAL_PATH);
154
- const timeoutMs = parseTimeoutMs(options.timeout);
155
- const token = resolveToken({
156
- token: options.token,
157
- tokenEnv: options.tokenEnv
158
- });
159
- const headerName = options.headerName?.trim() || DEFAULT_RUNTIME_TOKEN_HEADER;
160
- const payload = createRuntimeFallbackSignalPayload(options);
161
- const headers = new Headers({
162
- 'content-type': 'application/json'
163
- });
164
- if (token) headers.set(headerName, token);
165
- const response = await fetchWithTimeout(endpoint, {
166
- method: 'POST',
167
- headers,
168
- body: JSON.stringify(payload)
169
- }, timeoutMs);
170
- const responsePayload = await parseResponseBody(response);
171
- if (!response.ok) throw new Error(`runtime fallback signal request failed with ${response.status}: ${JSON.stringify(responsePayload)}`);
172
- printOutput(responsePayload, options.json);
173
- });
174
- };
175
- __webpack_require__.d(__webpack_exports__, {}, {
176
- createRuntimeFallbackSignalPayload: createRuntimeFallbackSignalPayload,
177
- formatRuntimeOutput: formatRuntimeOutput,
178
- resolveRuntimeEndpoint: resolveRuntimeEndpoint,
179
- resolveToken: resolveToken,
180
- runtimeCommand: runtimeCommand
181
- });
182
- exports.createRuntimeFallbackSignalPayload = __webpack_exports__.createRuntimeFallbackSignalPayload;
183
- exports.formatRuntimeOutput = __webpack_exports__.formatRuntimeOutput;
184
- exports.resolveRuntimeEndpoint = __webpack_exports__.resolveRuntimeEndpoint;
185
- exports.resolveToken = __webpack_exports__.resolveToken;
186
- exports.runtimeCommand = __webpack_exports__.runtimeCommand;
187
- for(var __rspack_i in __webpack_exports__)if (-1 === [
188
- "createRuntimeFallbackSignalPayload",
189
- "formatRuntimeOutput",
190
- "resolveRuntimeEndpoint",
191
- "resolveToken",
192
- "runtimeCommand"
193
- ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
194
- Object.defineProperty(exports, '__esModule', {
195
- value: true
196
- });