@bleedingdev/modern-js-app-tools 3.4.0-ultramodern.19 → 3.4.0-ultramodern.20

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.
@@ -137,8 +137,11 @@ function getCloudflareWorkerNodeExternals() {
137
137
  function getEffectBffEntry(normalizedConfig, appContext) {
138
138
  if (!normalizedConfig.bff || 'hono' === normalizedConfig.bff.runtimeFramework) return;
139
139
  const configuredEntry = normalizedConfig.bff.effect?.entry;
140
- const entryWithoutOrWithExtension = configuredEntry ? external_node_path_default().isAbsolute(configuredEntry) ? configuredEntry : external_node_path_default().resolve(appContext.appDirectory, configuredEntry) : external_node_path_default().resolve(appContext.apiDirectory, 'effect', 'index');
141
- return resolveJsOrTsEntry(entryWithoutOrWithExtension);
140
+ if (configuredEntry) {
141
+ const entryWithoutOrWithExtension = external_node_path_default().isAbsolute(configuredEntry) ? configuredEntry : external_node_path_default().resolve(appContext.appDirectory, configuredEntry);
142
+ return resolveJsOrTsEntry(entryWithoutOrWithExtension);
143
+ }
144
+ return resolveJsOrTsEntry(external_node_path_default().resolve(appContext.apiDirectory, 'index'));
142
145
  }
143
146
  function isCloudflareWorkerDeploy(normalizedConfig) {
144
147
  return normalizedConfig.deploy?.target === 'cloudflare' || 'cloudflare' === process.env.MODERNJS_DEPLOY;
@@ -227,7 +230,7 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
227
230
  const useWorkerTarget = (0, utils_namespaceObject.isServiceWorker)(normalizedConfig);
228
231
  if (useWorkerTarget) {
229
232
  const useCloudflareModuleWorker = isCloudflareWorkerDeploy(normalizedConfig);
230
- const effectBffEntry = useCloudflareModuleWorker ? getEffectBffEntry(normalizedConfig, appContext) : void 0;
233
+ const effectApiEntry = useCloudflareModuleWorker ? getEffectBffEntry(normalizedConfig, appContext) : void 0;
231
234
  const tanstackRouterSsrServerFile = useCloudflareModuleWorker ? resolvePackageFile('@tanstack/router-core', 'dist/esm/ssr/ssr-server.js', [
232
235
  appContext.appDirectory,
233
236
  process.cwd()
@@ -269,10 +272,10 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
269
272
  const fsPromisesWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-fs-promises.mjs') : void 0;
270
273
  const pathWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-path.mjs') : void 0;
271
274
  const baseWorkerEntries = useCloudflareModuleWorker ? cloudflareWorkerServerEntries : serverEntries;
272
- const workerEntries = effectBffEntry ? {
275
+ const workerEntries = effectApiEntry ? {
273
276
  ...baseWorkerEntries,
274
277
  [BFF_EFFECT_WORKER_ENTRY_NAME]: [
275
- `${effectBffEntry}?${BFF_EFFECT_WORKER_RUNTIME_QUERY}`
278
+ `${effectApiEntry}?${BFF_EFFECT_WORKER_RUNTIME_QUERY}`
276
279
  ]
277
280
  } : baseWorkerEntries;
278
281
  environments[builder_namespaceObject.SERVICE_WORKER_ENVIRONMENT_NAME] = {
@@ -61,7 +61,7 @@ const DEFAULT_SERVER_ONLY_PUBLIC_ASSET_EXCLUDES = [
61
61
  'shared'
62
62
  ];
63
63
  const BFF_EFFECT_WORKER_ENTRY = `${WORKER_BUNDLE_DIRECTORY}/__modern_bff_effect.js`;
64
- const EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE = 'Ensure the Effect BFF entry exists at api/effect/index.ts or bff.effect.entry, and import Cloudflare edge handlers from @modern-js/plugin-bff/effect-edge instead of lambda/Hono server helpers.';
64
+ const EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE = 'Ensure the Effect API entry exists at api/index.ts or bff.effect.entry, and import Cloudflare edge handlers from @modern-js/plugin-bff/effect-edge instead of lambda/Hono server helpers.';
65
65
  const DEFAULT_COMPATIBILITY_DATE = '2026-06-02';
66
66
  const COMPATIBILITY_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/u;
67
67
  const REQUIRED_COMPATIBILITY_FLAGS = [
@@ -335,7 +335,7 @@ const readRouteSpec = async (outputDirectory)=>{
335
335
  routes: Array.isArray(routeSpec.routes) ? routeSpec.routes : []
336
336
  };
337
337
  };
338
- const createMissingEffectBffWorkerError = (outputDirectory, worker)=>new Error(`Cloudflare Effect BFF is configured, but the BFF worker bundle is missing: ${external_node_path_default().join(outputDirectory, worker)}. ${EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE}`);
338
+ 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)}. ${EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE}`);
339
339
  const createWorkerManifest = async (outputDirectory, modernConfig)=>{
340
340
  const routeSpec = await readRouteSpec(outputDirectory);
341
341
  const routes = await Promise.all(routeSpec.routes.map(async (route)=>{
@@ -351,9 +351,9 @@ const createWorkerManifest = async (outputDirectory, modernConfig)=>{
351
351
  }));
352
352
  const bffPrefix = modernConfig.bff?.prefix;
353
353
  const primaryBffPrefix = Array.isArray(bffPrefix) ? bffPrefix[0] : bffPrefix;
354
- const isEffectBff = Boolean(modernConfig.bff) && modernConfig.bff?.runtimeFramework !== 'hono';
355
- const effectBffWorkerExists = await utils_namespaceObject.fs.pathExists(external_node_path_default().join(outputDirectory, BFF_EFFECT_WORKER_ENTRY));
356
- if (isEffectBff && primaryBffPrefix && !effectBffWorkerExists) throw createMissingEffectBffWorkerError(outputDirectory, BFF_EFFECT_WORKER_ENTRY);
354
+ const isEffectApi = Boolean(modernConfig.bff) && modernConfig.bff?.runtimeFramework !== 'hono';
355
+ const effectApiWorkerExists = await utils_namespaceObject.fs.pathExists(external_node_path_default().join(outputDirectory, BFF_EFFECT_WORKER_ENTRY));
356
+ if (isEffectApi && primaryBffPrefix && !effectApiWorkerExists) throw createMissingEffectBffWorkerError(outputDirectory, BFF_EFFECT_WORKER_ENTRY);
357
357
  return {
358
358
  version: 1,
359
359
  runtime: {
@@ -382,7 +382,7 @@ const createWorkerManifest = async (outputDirectory, modernConfig)=>{
382
382
  routeManifest: ROUTE_MANIFEST_FILE
383
383
  },
384
384
  security: createCloudflareWorkerSecurityPolicy(modernConfig),
385
- bff: isEffectBff && primaryBffPrefix && effectBffWorkerExists ? {
385
+ bff: isEffectApi && primaryBffPrefix && effectApiWorkerExists ? {
386
386
  runtimeFramework: 'effect',
387
387
  prefix: primaryBffPrefix,
388
388
  worker: BFF_EFFECT_WORKER_ENTRY
@@ -94,8 +94,11 @@ function getCloudflareWorkerNodeExternals() {
94
94
  function getEffectBffEntry(normalizedConfig, appContext) {
95
95
  if (!normalizedConfig.bff || 'hono' === normalizedConfig.bff.runtimeFramework) return;
96
96
  const configuredEntry = normalizedConfig.bff.effect?.entry;
97
- const entryWithoutOrWithExtension = configuredEntry ? node_path.isAbsolute(configuredEntry) ? configuredEntry : node_path.resolve(appContext.appDirectory, configuredEntry) : node_path.resolve(appContext.apiDirectory, 'effect', 'index');
98
- return resolveJsOrTsEntry(entryWithoutOrWithExtension);
97
+ if (configuredEntry) {
98
+ const entryWithoutOrWithExtension = node_path.isAbsolute(configuredEntry) ? configuredEntry : node_path.resolve(appContext.appDirectory, configuredEntry);
99
+ return resolveJsOrTsEntry(entryWithoutOrWithExtension);
100
+ }
101
+ return resolveJsOrTsEntry(node_path.resolve(appContext.apiDirectory, 'index'));
99
102
  }
100
103
  function isCloudflareWorkerDeploy(normalizedConfig) {
101
104
  return normalizedConfig.deploy?.target === 'cloudflare' || 'cloudflare' === process.env.MODERNJS_DEPLOY;
@@ -184,7 +187,7 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
184
187
  const useWorkerTarget = isServiceWorker(normalizedConfig);
185
188
  if (useWorkerTarget) {
186
189
  const useCloudflareModuleWorker = isCloudflareWorkerDeploy(normalizedConfig);
187
- const effectBffEntry = useCloudflareModuleWorker ? getEffectBffEntry(normalizedConfig, appContext) : void 0;
190
+ const effectApiEntry = useCloudflareModuleWorker ? getEffectBffEntry(normalizedConfig, appContext) : void 0;
188
191
  const tanstackRouterSsrServerFile = useCloudflareModuleWorker ? resolvePackageFile('@tanstack/router-core', 'dist/esm/ssr/ssr-server.js', [
189
192
  appContext.appDirectory,
190
193
  process.cwd()
@@ -226,10 +229,10 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
226
229
  const fsPromisesWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-fs-promises.mjs') : void 0;
227
230
  const pathWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-path.mjs') : void 0;
228
231
  const baseWorkerEntries = useCloudflareModuleWorker ? cloudflareWorkerServerEntries : serverEntries;
229
- const workerEntries = effectBffEntry ? {
232
+ const workerEntries = effectApiEntry ? {
230
233
  ...baseWorkerEntries,
231
234
  [BFF_EFFECT_WORKER_ENTRY_NAME]: [
232
- `${effectBffEntry}?${BFF_EFFECT_WORKER_RUNTIME_QUERY}`
235
+ `${effectApiEntry}?${BFF_EFFECT_WORKER_RUNTIME_QUERY}`
233
236
  ]
234
237
  } : baseWorkerEntries;
235
238
  environments[SERVICE_WORKER_ENVIRONMENT_NAME] = {
@@ -19,7 +19,7 @@ const DEFAULT_SERVER_ONLY_PUBLIC_ASSET_EXCLUDES = [
19
19
  'shared'
20
20
  ];
21
21
  const BFF_EFFECT_WORKER_ENTRY = `${WORKER_BUNDLE_DIRECTORY}/__modern_bff_effect.js`;
22
- const EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE = 'Ensure the Effect BFF entry exists at api/effect/index.ts or bff.effect.entry, and import Cloudflare edge handlers from @modern-js/plugin-bff/effect-edge instead of lambda/Hono server helpers.';
22
+ const EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE = 'Ensure the Effect API entry exists at api/index.ts or bff.effect.entry, and import Cloudflare edge handlers from @modern-js/plugin-bff/effect-edge instead of lambda/Hono server helpers.';
23
23
  const DEFAULT_COMPATIBILITY_DATE = '2026-06-02';
24
24
  const COMPATIBILITY_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/u;
25
25
  const REQUIRED_COMPATIBILITY_FLAGS = [
@@ -293,7 +293,7 @@ const readRouteSpec = async (outputDirectory)=>{
293
293
  routes: Array.isArray(routeSpec.routes) ? routeSpec.routes : []
294
294
  };
295
295
  };
296
- const createMissingEffectBffWorkerError = (outputDirectory, worker)=>new Error(`Cloudflare Effect BFF is configured, but the BFF worker bundle is missing: ${node_path.join(outputDirectory, worker)}. ${EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE}`);
296
+ const createMissingEffectBffWorkerError = (outputDirectory, worker)=>new Error(`Cloudflare Effect API runtime is configured, but the BFF worker bundle is missing: ${node_path.join(outputDirectory, worker)}. ${EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE}`);
297
297
  const createWorkerManifest = async (outputDirectory, modernConfig)=>{
298
298
  const routeSpec = await readRouteSpec(outputDirectory);
299
299
  const routes = await Promise.all(routeSpec.routes.map(async (route)=>{
@@ -309,9 +309,9 @@ const createWorkerManifest = async (outputDirectory, modernConfig)=>{
309
309
  }));
310
310
  const bffPrefix = modernConfig.bff?.prefix;
311
311
  const primaryBffPrefix = Array.isArray(bffPrefix) ? bffPrefix[0] : bffPrefix;
312
- const isEffectBff = Boolean(modernConfig.bff) && modernConfig.bff?.runtimeFramework !== 'hono';
313
- const effectBffWorkerExists = await fs.pathExists(node_path.join(outputDirectory, BFF_EFFECT_WORKER_ENTRY));
314
- if (isEffectBff && primaryBffPrefix && !effectBffWorkerExists) throw createMissingEffectBffWorkerError(outputDirectory, BFF_EFFECT_WORKER_ENTRY);
312
+ const isEffectApi = Boolean(modernConfig.bff) && modernConfig.bff?.runtimeFramework !== 'hono';
313
+ const effectApiWorkerExists = await fs.pathExists(node_path.join(outputDirectory, BFF_EFFECT_WORKER_ENTRY));
314
+ if (isEffectApi && primaryBffPrefix && !effectApiWorkerExists) throw createMissingEffectBffWorkerError(outputDirectory, BFF_EFFECT_WORKER_ENTRY);
315
315
  return {
316
316
  version: 1,
317
317
  runtime: {
@@ -340,7 +340,7 @@ const createWorkerManifest = async (outputDirectory, modernConfig)=>{
340
340
  routeManifest: ROUTE_MANIFEST_FILE
341
341
  },
342
342
  security: createCloudflareWorkerSecurityPolicy(modernConfig),
343
- bff: isEffectBff && primaryBffPrefix && effectBffWorkerExists ? {
343
+ bff: isEffectApi && primaryBffPrefix && effectApiWorkerExists ? {
344
344
  runtimeFramework: 'effect',
345
345
  prefix: primaryBffPrefix,
346
346
  worker: BFF_EFFECT_WORKER_ENTRY
@@ -99,8 +99,11 @@ function getCloudflareWorkerNodeExternals() {
99
99
  function getEffectBffEntry(normalizedConfig, appContext) {
100
100
  if (!normalizedConfig.bff || 'hono' === normalizedConfig.bff.runtimeFramework) return;
101
101
  const configuredEntry = normalizedConfig.bff.effect?.entry;
102
- const entryWithoutOrWithExtension = configuredEntry ? node_path.isAbsolute(configuredEntry) ? configuredEntry : node_path.resolve(appContext.appDirectory, configuredEntry) : node_path.resolve(appContext.apiDirectory, 'effect', 'index');
103
- return resolveJsOrTsEntry(entryWithoutOrWithExtension);
102
+ if (configuredEntry) {
103
+ const entryWithoutOrWithExtension = node_path.isAbsolute(configuredEntry) ? configuredEntry : node_path.resolve(appContext.appDirectory, configuredEntry);
104
+ return resolveJsOrTsEntry(entryWithoutOrWithExtension);
105
+ }
106
+ return resolveJsOrTsEntry(node_path.resolve(appContext.apiDirectory, 'index'));
104
107
  }
105
108
  function isCloudflareWorkerDeploy(normalizedConfig) {
106
109
  return normalizedConfig.deploy?.target === 'cloudflare' || 'cloudflare' === process.env.MODERNJS_DEPLOY;
@@ -189,7 +192,7 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
189
192
  const useWorkerTarget = isServiceWorker(normalizedConfig);
190
193
  if (useWorkerTarget) {
191
194
  const useCloudflareModuleWorker = isCloudflareWorkerDeploy(normalizedConfig);
192
- const effectBffEntry = useCloudflareModuleWorker ? getEffectBffEntry(normalizedConfig, appContext) : void 0;
195
+ const effectApiEntry = useCloudflareModuleWorker ? getEffectBffEntry(normalizedConfig, appContext) : void 0;
193
196
  const tanstackRouterSsrServerFile = useCloudflareModuleWorker ? resolvePackageFile('@tanstack/router-core', 'dist/esm/ssr/ssr-server.js', [
194
197
  appContext.appDirectory,
195
198
  process.cwd()
@@ -231,10 +234,10 @@ function getBuilderEnvironments(normalizedConfig, appContext, tempBuilderConfig)
231
234
  const fsPromisesWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-fs-promises.mjs') : void 0;
232
235
  const pathWorkerFile = useCloudflareModuleWorker ? getCloudflareWorkerCompatFile('cloudflare-worker-path.mjs') : void 0;
233
236
  const baseWorkerEntries = useCloudflareModuleWorker ? cloudflareWorkerServerEntries : serverEntries;
234
- const workerEntries = effectBffEntry ? {
237
+ const workerEntries = effectApiEntry ? {
235
238
  ...baseWorkerEntries,
236
239
  [BFF_EFFECT_WORKER_ENTRY_NAME]: [
237
- `${effectBffEntry}?${BFF_EFFECT_WORKER_RUNTIME_QUERY}`
240
+ `${effectApiEntry}?${BFF_EFFECT_WORKER_RUNTIME_QUERY}`
238
241
  ]
239
242
  } : baseWorkerEntries;
240
243
  environments[SERVICE_WORKER_ENVIRONMENT_NAME] = {
@@ -20,7 +20,7 @@ const DEFAULT_SERVER_ONLY_PUBLIC_ASSET_EXCLUDES = [
20
20
  'shared'
21
21
  ];
22
22
  const BFF_EFFECT_WORKER_ENTRY = `${WORKER_BUNDLE_DIRECTORY}/__modern_bff_effect.js`;
23
- const EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE = 'Ensure the Effect BFF entry exists at api/effect/index.ts or bff.effect.entry, and import Cloudflare edge handlers from @modern-js/plugin-bff/effect-edge instead of lambda/Hono server helpers.';
23
+ const EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE = 'Ensure the Effect API entry exists at api/index.ts or bff.effect.entry, and import Cloudflare edge handlers from @modern-js/plugin-bff/effect-edge instead of lambda/Hono server helpers.';
24
24
  const DEFAULT_COMPATIBILITY_DATE = '2026-06-02';
25
25
  const COMPATIBILITY_DATE_PATTERN = /^\d{4}-\d{2}-\d{2}$/u;
26
26
  const REQUIRED_COMPATIBILITY_FLAGS = [
@@ -294,7 +294,7 @@ const readRouteSpec = async (outputDirectory)=>{
294
294
  routes: Array.isArray(routeSpec.routes) ? routeSpec.routes : []
295
295
  };
296
296
  };
297
- const createMissingEffectBffWorkerError = (outputDirectory, worker)=>new Error(`Cloudflare Effect BFF is configured, but the BFF worker bundle is missing: ${node_path.join(outputDirectory, worker)}. ${EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE}`);
297
+ const createMissingEffectBffWorkerError = (outputDirectory, worker)=>new Error(`Cloudflare Effect API runtime is configured, but the BFF worker bundle is missing: ${node_path.join(outputDirectory, worker)}. ${EFFECT_BFF_CLOUDFLARE_IMPORT_GUIDANCE}`);
298
298
  const createWorkerManifest = async (outputDirectory, modernConfig)=>{
299
299
  const routeSpec = await readRouteSpec(outputDirectory);
300
300
  const routes = await Promise.all(routeSpec.routes.map(async (route)=>{
@@ -310,9 +310,9 @@ const createWorkerManifest = async (outputDirectory, modernConfig)=>{
310
310
  }));
311
311
  const bffPrefix = modernConfig.bff?.prefix;
312
312
  const primaryBffPrefix = Array.isArray(bffPrefix) ? bffPrefix[0] : bffPrefix;
313
- const isEffectBff = Boolean(modernConfig.bff) && modernConfig.bff?.runtimeFramework !== 'hono';
314
- const effectBffWorkerExists = await fs.pathExists(node_path.join(outputDirectory, BFF_EFFECT_WORKER_ENTRY));
315
- if (isEffectBff && primaryBffPrefix && !effectBffWorkerExists) throw createMissingEffectBffWorkerError(outputDirectory, BFF_EFFECT_WORKER_ENTRY);
313
+ const isEffectApi = Boolean(modernConfig.bff) && modernConfig.bff?.runtimeFramework !== 'hono';
314
+ const effectApiWorkerExists = await fs.pathExists(node_path.join(outputDirectory, BFF_EFFECT_WORKER_ENTRY));
315
+ if (isEffectApi && primaryBffPrefix && !effectApiWorkerExists) throw createMissingEffectBffWorkerError(outputDirectory, BFF_EFFECT_WORKER_ENTRY);
316
316
  return {
317
317
  version: 1,
318
318
  runtime: {
@@ -341,7 +341,7 @@ const createWorkerManifest = async (outputDirectory, modernConfig)=>{
341
341
  routeManifest: ROUTE_MANIFEST_FILE
342
342
  },
343
343
  security: createCloudflareWorkerSecurityPolicy(modernConfig),
344
- bff: isEffectBff && primaryBffPrefix && effectBffWorkerExists ? {
344
+ bff: isEffectApi && primaryBffPrefix && effectApiWorkerExists ? {
345
345
  runtimeFramework: 'effect',
346
346
  prefix: primaryBffPrefix,
347
347
  worker: BFF_EFFECT_WORKER_ENTRY
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "modern",
18
18
  "modern.js"
19
19
  ],
20
- "version": "3.4.0-ultramodern.19",
20
+ "version": "3.4.0-ultramodern.20",
21
21
  "types": "./dist/types/index.d.ts",
22
22
  "main": "./dist/cjs/index.js",
23
23
  "exports": {
@@ -90,16 +90,16 @@
90
90
  "ndepe": "^0.1.13",
91
91
  "pkg-types": "^2.3.1",
92
92
  "std-env": "4.1.0",
93
- "@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.4.0-ultramodern.19",
94
- "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.4.0-ultramodern.19",
95
- "@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.4.0-ultramodern.19",
96
- "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.4.0-ultramodern.19",
97
- "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.4.0-ultramodern.19",
98
- "@modern-js/server-utils": "npm:@bleedingdev/modern-js-server-utils@3.4.0-ultramodern.19",
99
- "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.4.0-ultramodern.19",
100
- "@modern-js/server": "npm:@bleedingdev/modern-js-server@3.4.0-ultramodern.19",
101
- "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.4.0-ultramodern.19",
102
- "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.4.0-ultramodern.19"
93
+ "@modern-js/i18n-utils": "npm:@bleedingdev/modern-js-i18n-utils@3.4.0-ultramodern.20",
94
+ "@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.4.0-ultramodern.20",
95
+ "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.4.0-ultramodern.20",
96
+ "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.4.0-ultramodern.20",
97
+ "@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.4.0-ultramodern.20",
98
+ "@modern-js/server-utils": "npm:@bleedingdev/modern-js-server-utils@3.4.0-ultramodern.20",
99
+ "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.4.0-ultramodern.20",
100
+ "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.4.0-ultramodern.20",
101
+ "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.4.0-ultramodern.20",
102
+ "@modern-js/server": "npm:@bleedingdev/modern-js-server@3.4.0-ultramodern.20"
103
103
  },
104
104
  "devDependencies": {
105
105
  "@rslib/core": "0.23.0",