@bleedingdev/modern-js-ultramodern-app-tools 3.9.0-ultramodern.12 → 3.9.0-ultramodern.13

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.
@@ -46,10 +46,12 @@ __webpack_require__.d(__webpack_exports__, {
46
46
  ultramodernReleaseEnvelopePlugin: ()=>external_release_envelope_plugin_js_namespaceObject.ultramodernReleaseEnvelopePlugin
47
47
  });
48
48
  const app_tools_namespaceObject = require("@modern-js/app-tools");
49
+ const builder_namespaceObject = require("@modern-js/app-tools/builder");
49
50
  const backend_federation_build_namespaceObject = require("@modern-js/app-tools-extensions/backend-federation-build");
50
51
  var backend_federation_build_default = /*#__PURE__*/ __webpack_require__.n(backend_federation_build_namespaceObject);
51
52
  const cloudflare_builder_namespaceObject = require("@modern-js/app-tools-extensions/cloudflare-builder");
52
53
  const plugin_namespaceObject = require("@modern-js/app-tools-extensions/deploy-output/plugin");
54
+ const target_namespaceObject = require("@modern-js/app-tools-extensions/deploy-output/target");
53
55
  const policy_defaults_namespaceObject = require("@modern-js/app-tools-extensions/policy-defaults");
54
56
  const runtime_package_resolution_namespaceObject = require("@modern-js/app-tools-extensions/runtime-package-resolution");
55
57
  const i18n_integration_namespaceObject = require("@modern-js/i18n-integration");
@@ -58,6 +60,28 @@ const external_router_integration_plugin_js_namespaceObject = require("./router-
58
60
  const external_rsc_disabled_plugin_js_namespaceObject = require("./rsc-disabled-plugin.js");
59
61
  const external_ssr_integration_plugin_js_namespaceObject = require("./ssr-integration-plugin.js");
60
62
  const external_preset_js_namespaceObject = require("./preset.js");
63
+ const headlessCloudflareWorkerPlugin = ()=>({
64
+ name: '@modern-js/headless-cloudflare-worker',
65
+ post: [
66
+ '@modern-js/ultramodern-release-envelope'
67
+ ],
68
+ setup (api) {
69
+ api.onAfterBuild(async ()=>{
70
+ const appContext = api.getAppContext();
71
+ const normalizedConfig = api.getNormalizedConfig();
72
+ if (!appContext.apiOnly || 'cloudflare' !== (0, target_namespaceObject.resolveDeployTarget)(normalizedConfig)) return;
73
+ const createBuilderForModern = await (0, builder_namespaceObject.createBuilderGenerator)();
74
+ const builder = await createBuilderForModern({
75
+ appContext,
76
+ normalizedConfig
77
+ });
78
+ builder.removePlugins([
79
+ 'builder-plugin-adapter-modern-ssr'
80
+ ]);
81
+ await builder.build();
82
+ });
83
+ }
84
+ });
61
85
  const ultramodernAppTools = ()=>({
62
86
  name: '@modern-js/ultramodern-app-tools',
63
87
  usePlugins: [
@@ -67,6 +91,7 @@ const ultramodernAppTools = ()=>({
67
91
  (0, external_ssr_integration_plugin_js_namespaceObject.ultramodernSSRIntegrationPlugin)(),
68
92
  backend_federation_build_default()(),
69
93
  (0, cloudflare_builder_namespaceObject.createCloudflareBuilderPlugin)(),
94
+ headlessCloudflareWorkerPlugin(),
70
95
  (0, plugin_namespaceObject.createDeployOutputAliasesPlugin)(),
71
96
  (0, external_release_envelope_plugin_js_namespaceObject.ultramodernReleaseEnvelopePlugin)()
72
97
  ],
@@ -1,7 +1,9 @@
1
1
  import { appTools } from "@modern-js/app-tools";
2
+ import { createBuilderGenerator } from "@modern-js/app-tools/builder";
2
3
  import backend_federation_build from "@modern-js/app-tools-extensions/backend-federation-build";
3
4
  import { createCloudflareBuilderPlugin } from "@modern-js/app-tools-extensions/cloudflare-builder";
4
5
  import { createDeployOutputAliasesPlugin } from "@modern-js/app-tools-extensions/deploy-output/plugin";
6
+ import { resolveDeployTarget } from "@modern-js/app-tools-extensions/deploy-output/target";
5
7
  import { RENDERER_EXTENSIONS_PACKAGE, SERVER_EXTENSIONS_PLUGIN_NAME } from "@modern-js/app-tools-extensions/policy-defaults";
6
8
  import { collectRuntimePackageModuleDirectories, createRuntimePackageResolutionPlugin } from "@modern-js/app-tools-extensions/runtime-package-resolution";
7
9
  import { ultramodernI18nIntegrationPlugin } from "@modern-js/i18n-integration";
@@ -9,6 +11,28 @@ import { ultramodernReleaseEnvelopePlugin } from "./release-envelope-plugin.mjs"
9
11
  import { ultramodernRouterIntegrationPlugin } from "./router-integration-plugin.mjs";
10
12
  import { rscDisabledRuntimePlugin } from "./rsc-disabled-plugin.mjs";
11
13
  import { ultramodernSSRIntegrationPlugin } from "./ssr-integration-plugin.mjs";
14
+ const headlessCloudflareWorkerPlugin = ()=>({
15
+ name: '@modern-js/headless-cloudflare-worker',
16
+ post: [
17
+ '@modern-js/ultramodern-release-envelope'
18
+ ],
19
+ setup (api) {
20
+ api.onAfterBuild(async ()=>{
21
+ const appContext = api.getAppContext();
22
+ const normalizedConfig = api.getNormalizedConfig();
23
+ if (!appContext.apiOnly || 'cloudflare' !== resolveDeployTarget(normalizedConfig)) return;
24
+ const createBuilderForModern = await createBuilderGenerator();
25
+ const builder = await createBuilderForModern({
26
+ appContext,
27
+ normalizedConfig
28
+ });
29
+ builder.removePlugins([
30
+ 'builder-plugin-adapter-modern-ssr'
31
+ ]);
32
+ await builder.build();
33
+ });
34
+ }
35
+ });
12
36
  const ultramodernAppTools = ()=>({
13
37
  name: '@modern-js/ultramodern-app-tools',
14
38
  usePlugins: [
@@ -18,6 +42,7 @@ const ultramodernAppTools = ()=>({
18
42
  ultramodernSSRIntegrationPlugin(),
19
43
  backend_federation_build(),
20
44
  createCloudflareBuilderPlugin(),
45
+ headlessCloudflareWorkerPlugin(),
21
46
  createDeployOutputAliasesPlugin(),
22
47
  ultramodernReleaseEnvelopePlugin()
23
48
  ],
@@ -1,8 +1,10 @@
1
1
  import "node:module";
2
2
  import { appTools } from "@modern-js/app-tools";
3
+ import { createBuilderGenerator } from "@modern-js/app-tools/builder";
3
4
  import backend_federation_build from "@modern-js/app-tools-extensions/backend-federation-build";
4
5
  import { createCloudflareBuilderPlugin } from "@modern-js/app-tools-extensions/cloudflare-builder";
5
6
  import { createDeployOutputAliasesPlugin } from "@modern-js/app-tools-extensions/deploy-output/plugin";
7
+ import { resolveDeployTarget } from "@modern-js/app-tools-extensions/deploy-output/target";
6
8
  import { RENDERER_EXTENSIONS_PACKAGE, SERVER_EXTENSIONS_PLUGIN_NAME } from "@modern-js/app-tools-extensions/policy-defaults";
7
9
  import { collectRuntimePackageModuleDirectories, createRuntimePackageResolutionPlugin } from "@modern-js/app-tools-extensions/runtime-package-resolution";
8
10
  import { ultramodernI18nIntegrationPlugin } from "@modern-js/i18n-integration";
@@ -10,6 +12,28 @@ import { ultramodernReleaseEnvelopePlugin } from "./release-envelope-plugin.mjs"
10
12
  import { ultramodernRouterIntegrationPlugin } from "./router-integration-plugin.mjs";
11
13
  import { rscDisabledRuntimePlugin } from "./rsc-disabled-plugin.mjs";
12
14
  import { ultramodernSSRIntegrationPlugin } from "./ssr-integration-plugin.mjs";
15
+ const headlessCloudflareWorkerPlugin = ()=>({
16
+ name: '@modern-js/headless-cloudflare-worker',
17
+ post: [
18
+ '@modern-js/ultramodern-release-envelope'
19
+ ],
20
+ setup (api) {
21
+ api.onAfterBuild(async ()=>{
22
+ const appContext = api.getAppContext();
23
+ const normalizedConfig = api.getNormalizedConfig();
24
+ if (!appContext.apiOnly || 'cloudflare' !== resolveDeployTarget(normalizedConfig)) return;
25
+ const createBuilderForModern = await createBuilderGenerator();
26
+ const builder = await createBuilderForModern({
27
+ appContext,
28
+ normalizedConfig
29
+ });
30
+ builder.removePlugins([
31
+ 'builder-plugin-adapter-modern-ssr'
32
+ ]);
33
+ await builder.build();
34
+ });
35
+ }
36
+ });
13
37
  const ultramodernAppTools = ()=>({
14
38
  name: '@modern-js/ultramodern-app-tools',
15
39
  usePlugins: [
@@ -19,6 +43,7 @@ const ultramodernAppTools = ()=>({
19
43
  ultramodernSSRIntegrationPlugin(),
20
44
  backend_federation_build(),
21
45
  createCloudflareBuilderPlugin(),
46
+ headlessCloudflareWorkerPlugin(),
22
47
  createDeployOutputAliasesPlugin(),
23
48
  ultramodernReleaseEnvelopePlugin()
24
49
  ],
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "directory": "packages/solutions/ultramodern-app-tools"
12
12
  },
13
13
  "license": "MIT",
14
- "version": "3.9.0-ultramodern.12",
14
+ "version": "3.9.0-ultramodern.13",
15
15
  "files": [
16
16
  "dist",
17
17
  "src"
@@ -62,29 +62,29 @@
62
62
  "node": ">=26.7.0"
63
63
  },
64
64
  "dependencies": {
65
- "@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.9.0-ultramodern.12",
66
- "@modern-js/app-tools-extensions": "npm:@bleedingdev/modern-js-app-tools-extensions@3.9.0-ultramodern.12",
67
- "@modern-js/i18n-integration": "npm:@bleedingdev/modern-js-i18n-integration@3.9.0-ultramodern.12",
68
- "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.9.0-ultramodern.12",
69
- "@modern-js/runtime": "npm:@bleedingdev/modern-js-runtime@3.9.0-ultramodern.12",
70
- "@modern-js/runtime-extensions": "npm:@bleedingdev/modern-js-runtime-extensions@3.9.0-ultramodern.12",
71
- "@modern-js/runtime-renderer-extensions": "npm:@bleedingdev/modern-js-runtime-renderer-extensions@3.9.0-ultramodern.12",
72
- "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.9.0-ultramodern.12",
73
- "@modern-js/server-runtime-extensions": "npm:@bleedingdev/modern-js-server-runtime-extensions@3.9.0-ultramodern.12",
74
- "@rsbuild/core": "2.2.3"
65
+ "@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.9.0-ultramodern.13",
66
+ "@modern-js/app-tools-extensions": "npm:@bleedingdev/modern-js-app-tools-extensions@3.9.0-ultramodern.13",
67
+ "@modern-js/i18n-integration": "npm:@bleedingdev/modern-js-i18n-integration@3.9.0-ultramodern.13",
68
+ "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.9.0-ultramodern.13",
69
+ "@modern-js/runtime": "npm:@bleedingdev/modern-js-runtime@3.9.0-ultramodern.13",
70
+ "@modern-js/runtime-extensions": "npm:@bleedingdev/modern-js-runtime-extensions@3.9.0-ultramodern.13",
71
+ "@modern-js/runtime-renderer-extensions": "npm:@bleedingdev/modern-js-runtime-renderer-extensions@3.9.0-ultramodern.13",
72
+ "@modern-js/server-core": "npm:@bleedingdev/modern-js-server-core@3.9.0-ultramodern.13",
73
+ "@modern-js/server-runtime-extensions": "npm:@bleedingdev/modern-js-server-runtime-extensions@3.9.0-ultramodern.13",
74
+ "@rsbuild/core": "2.2.9"
75
75
  },
76
76
  "devDependencies": {
77
- "@modern-js/backend-federation-contracts": "npm:@bleedingdev/modern-js-backend-federation-contracts@3.9.0-ultramodern.12",
78
- "@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.9.0-ultramodern.12",
79
- "@modern-js/plugin-bff": "npm:@bleedingdev/modern-js-plugin-bff@3.9.0-ultramodern.12",
80
- "@modern-js/plugin-tanstack": "npm:@bleedingdev/modern-js-plugin-tanstack@3.9.0-ultramodern.12",
81
- "@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.9.0-ultramodern.12",
82
- "@modern-js/server": "npm:@bleedingdev/modern-js-server@3.9.0-ultramodern.12",
83
- "@modern-js/tsconfig": "npm:@bleedingdev/modern-js-tsconfig@3.9.0-ultramodern.12",
84
- "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.9.0-ultramodern.12",
85
- "@rslib/core": "1.0.0",
77
+ "@modern-js/backend-federation-contracts": "npm:@bleedingdev/modern-js-backend-federation-contracts@3.9.0-ultramodern.13",
78
+ "@modern-js/builder": "npm:@bleedingdev/modern-js-builder@3.9.0-ultramodern.13",
79
+ "@modern-js/plugin-bff": "npm:@bleedingdev/modern-js-plugin-bff@3.9.0-ultramodern.13",
80
+ "@modern-js/plugin-tanstack": "npm:@bleedingdev/modern-js-plugin-tanstack@3.9.0-ultramodern.13",
81
+ "@modern-js/prod-server": "npm:@bleedingdev/modern-js-prod-server@3.9.0-ultramodern.13",
82
+ "@modern-js/server": "npm:@bleedingdev/modern-js-server@3.9.0-ultramodern.13",
83
+ "@modern-js/tsconfig": "npm:@bleedingdev/modern-js-tsconfig@3.9.0-ultramodern.13",
84
+ "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.9.0-ultramodern.13",
85
+ "@rslib/core": "1.0.2",
86
86
  "@scripts/rstest-config": "2.66.0",
87
- "@types/node": "^26.4.1",
87
+ "@types/node": "^26.6.2",
88
88
  "@typescript/native-preview": "7.0.0-dev.20260707.2"
89
89
  },
90
90
  "sideEffects": false,
@@ -1,7 +1,9 @@
1
1
  import { type AppTools, appTools, type CliPlugin } from '@modern-js/app-tools';
2
+ import { createBuilderGenerator } from '@modern-js/app-tools/builder';
2
3
  import backendFederationBuildPlugin from '@modern-js/app-tools-extensions/backend-federation-build';
3
4
  import { createCloudflareBuilderPlugin } from '@modern-js/app-tools-extensions/cloudflare-builder';
4
5
  import { createDeployOutputAliasesPlugin } from '@modern-js/app-tools-extensions/deploy-output/plugin';
6
+ import { resolveDeployTarget } from '@modern-js/app-tools-extensions/deploy-output/target';
5
7
  import {
6
8
  RENDERER_EXTENSIONS_PACKAGE,
7
9
  SERVER_EXTENSIONS_PLUGIN_NAME,
@@ -24,6 +26,36 @@ export {
24
26
  export { ultramodernReleaseEnvelopePlugin } from './release-envelope-plugin';
25
27
  export type { AppUserConfig, UltramodernAppUserConfig } from './types';
26
28
 
29
+ const headlessCloudflareWorkerPlugin = (): CliPlugin<AppTools> => ({
30
+ name: '@modern-js/headless-cloudflare-worker',
31
+ post: ['@modern-js/ultramodern-release-envelope'],
32
+ setup(api) {
33
+ api.onAfterBuild(async () => {
34
+ const appContext = api.getAppContext();
35
+ const normalizedConfig = api.getNormalizedConfig();
36
+ if (
37
+ !appContext.apiOnly ||
38
+ resolveDeployTarget(normalizedConfig) !== 'cloudflare'
39
+ ) {
40
+ return;
41
+ }
42
+
43
+ // Native API-only builds intentionally skip their UI builder. Reuse the
44
+ // same builder generator with the Cloudflare plugin's worker-only entry.
45
+ const createBuilderForModern = await createBuilderGenerator();
46
+ const builder = await createBuilderForModern({
47
+ appContext,
48
+ normalizedConfig,
49
+ });
50
+ // This compiler has only an Effect worker entry. The framework SSR
51
+ // adapter filters page entries and requires a UI route, so it does not
52
+ // apply to a headless API worker.
53
+ builder.removePlugins(['builder-plugin-adapter-modern-ssr']);
54
+ await builder.build();
55
+ });
56
+ },
57
+ });
58
+
27
59
  /** Compose the fork's build and release features through native CLI plugins. */
28
60
  export const ultramodernAppTools = (): CliPlugin<AppTools> => ({
29
61
  name: '@modern-js/ultramodern-app-tools',
@@ -34,6 +66,7 @@ export const ultramodernAppTools = (): CliPlugin<AppTools> => ({
34
66
  ultramodernSSRIntegrationPlugin(),
35
67
  backendFederationBuildPlugin(),
36
68
  createCloudflareBuilderPlugin(),
69
+ headlessCloudflareWorkerPlugin(),
37
70
  createDeployOutputAliasesPlugin(),
38
71
  ultramodernReleaseEnvelopePlugin(),
39
72
  ],