@bleedingdev/modern-js-create 3.5.0-ultramodern.3 → 3.5.0-ultramodern.30
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.
- package/README.md +21 -17
- package/dist/cjs/ultramodern-tooling/commands.cjs +772 -75
- package/dist/cjs/ultramodern-tooling/config.cjs +149 -8
- package/dist/cjs/ultramodern-workspace/add-vertical.cjs +25 -0
- package/dist/cjs/ultramodern-workspace/api.cjs +44 -0
- package/dist/cjs/ultramodern-workspace/app-files.cjs +8 -11
- package/dist/cjs/ultramodern-workspace/backend-federation.cjs +282 -0
- package/dist/cjs/ultramodern-workspace/contracts.cjs +24 -8
- package/dist/cjs/ultramodern-workspace/delivery-unit-sync.cjs +157 -0
- package/dist/cjs/ultramodern-workspace/delivery-unit.cjs +88 -0
- package/dist/cjs/ultramodern-workspace/descriptors.cjs +24 -0
- package/dist/cjs/ultramodern-workspace/module-federation.cjs +161 -50
- package/dist/cjs/ultramodern-workspace/package-json.cjs +26 -43
- package/dist/cjs/ultramodern-workspace/pnpm-workspace-policy-plan.cjs +166 -0
- package/dist/cjs/ultramodern-workspace/tooling-command-catalog.cjs +153 -0
- package/dist/cjs/ultramodern-workspace/versions.cjs +8 -3
- package/dist/cjs/ultramodern-workspace/workspace-script-plan.cjs +175 -0
- package/dist/cjs/ultramodern-workspace/workspace-scripts.cjs +104 -63
- package/dist/cjs/ultramodern-workspace/workspace-validation-contract.cjs +97 -0
- package/dist/cjs/ultramodern-workspace/write-workspace.cjs +11 -3
- package/dist/cjs/ultramodern-workspace/zerops.cjs +100 -0
- package/dist/esm/ultramodern-tooling/commands.js +775 -78
- package/dist/esm/ultramodern-tooling/config.js +144 -9
- package/dist/esm/ultramodern-workspace/add-vertical.js +26 -1
- package/dist/esm/ultramodern-workspace/api.js +43 -2
- package/dist/esm/ultramodern-workspace/app-files.js +8 -11
- package/dist/esm/ultramodern-workspace/backend-federation.js +217 -0
- package/dist/esm/ultramodern-workspace/contracts.js +24 -8
- package/dist/esm/ultramodern-workspace/delivery-unit-sync.js +108 -0
- package/dist/esm/ultramodern-workspace/delivery-unit.js +31 -0
- package/dist/esm/ultramodern-workspace/descriptors.js +13 -1
- package/dist/esm/ultramodern-workspace/module-federation.js +160 -42
- package/dist/esm/ultramodern-workspace/package-json.js +16 -40
- package/dist/esm/ultramodern-workspace/pnpm-workspace-policy-plan.js +113 -0
- package/dist/esm/ultramodern-workspace/tooling-command-catalog.js +100 -0
- package/dist/esm/ultramodern-workspace/versions.js +6 -4
- package/dist/esm/ultramodern-workspace/workspace-script-plan.js +110 -0
- package/dist/esm/ultramodern-workspace/workspace-scripts.js +88 -65
- package/dist/esm/ultramodern-workspace/workspace-validation-contract.js +59 -0
- package/dist/esm/ultramodern-workspace/write-workspace.js +14 -6
- package/dist/esm/ultramodern-workspace/zerops.js +62 -0
- package/dist/esm-node/ultramodern-tooling/commands.js +775 -78
- package/dist/esm-node/ultramodern-tooling/config.js +144 -9
- package/dist/esm-node/ultramodern-workspace/add-vertical.js +26 -1
- package/dist/esm-node/ultramodern-workspace/api.js +43 -2
- package/dist/esm-node/ultramodern-workspace/app-files.js +8 -11
- package/dist/esm-node/ultramodern-workspace/backend-federation.js +218 -0
- package/dist/esm-node/ultramodern-workspace/contracts.js +24 -8
- package/dist/esm-node/ultramodern-workspace/delivery-unit-sync.js +109 -0
- package/dist/esm-node/ultramodern-workspace/delivery-unit.js +32 -0
- package/dist/esm-node/ultramodern-workspace/descriptors.js +13 -1
- package/dist/esm-node/ultramodern-workspace/module-federation.js +160 -42
- package/dist/esm-node/ultramodern-workspace/package-json.js +16 -40
- package/dist/esm-node/ultramodern-workspace/pnpm-workspace-policy-plan.js +114 -0
- package/dist/esm-node/ultramodern-workspace/tooling-command-catalog.js +101 -0
- package/dist/esm-node/ultramodern-workspace/versions.js +6 -4
- package/dist/esm-node/ultramodern-workspace/workspace-script-plan.js +111 -0
- package/dist/esm-node/ultramodern-workspace/workspace-scripts.js +88 -65
- package/dist/esm-node/ultramodern-workspace/workspace-validation-contract.js +60 -0
- package/dist/esm-node/ultramodern-workspace/write-workspace.js +14 -6
- package/dist/esm-node/ultramodern-workspace/zerops.js +63 -0
- package/dist/types/ultramodern-tooling/config.d.ts +6 -0
- package/dist/types/ultramodern-workspace/api.d.ts +1 -0
- package/dist/types/ultramodern-workspace/backend-federation.d.ts +11 -0
- package/dist/types/ultramodern-workspace/contracts.d.ts +1 -1
- package/dist/types/ultramodern-workspace/delivery-unit-sync.d.ts +6 -0
- package/dist/types/ultramodern-workspace/delivery-unit.d.ts +27 -0
- package/dist/types/ultramodern-workspace/descriptors.d.ts +4 -0
- package/dist/types/ultramodern-workspace/module-federation.d.ts +4 -9
- package/dist/types/ultramodern-workspace/package-json.d.ts +0 -1
- package/dist/types/ultramodern-workspace/pnpm-workspace-policy-plan.d.ts +39 -0
- package/dist/types/ultramodern-workspace/tooling-command-catalog.d.ts +18 -0
- package/dist/types/ultramodern-workspace/versions.d.ts +5 -3
- package/dist/types/ultramodern-workspace/workspace-script-plan.d.ts +72 -0
- package/dist/types/ultramodern-workspace/workspace-scripts.d.ts +13 -0
- package/dist/types/ultramodern-workspace/workspace-validation-contract.d.ts +42 -0
- package/dist/types/ultramodern-workspace/zerops.d.ts +2 -0
- package/package.json +3 -3
- package/template-workspace/.gitignore.handlebars +4 -0
- package/template-workspace/README.md.handlebars +18 -15
- package/template-workspace/patches/@module-federation__bridge-react@2.6.0.patch +140 -0
- package/template-workspace/patches/@module-federation__modern-js-v3@2.6.0.patch +57 -0
- package/template-workspace/patches/drizzle-orm-ts7-strict-declarations.patch +452 -0
- package/template-workspace/patches/effect-schema-error-type-id.patch +18 -0
- package/template-workspace/pnpm-workspace.yaml.handlebars +8 -0
- package/template-workspace/scripts/bootstrap-agent-skills.mjs +11 -3
- package/templates/workspace-scripts/check-ultramodern-api-boundaries.mts +40 -2
- package/templates/workspace-scripts/generate-node-backend-federation.mjs +270 -0
- package/templates/workspace-scripts/materialize-zerops-runtime.mjs +448 -0
- package/templates/workspace-scripts/proof-cloudflare-version.mjs +237 -9
- package/templates/workspace-scripts/proof-node-backend-federation.mjs +729 -0
- package/templates/workspace-scripts/ultramodern-cloudflare-proof.mjs +188 -2
- package/templates/workspace-scripts/validate-ultramodern-workspace.mjs.handlebars +434 -18
|
@@ -34,9 +34,12 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
34
34
|
createUltramodernConfig: ()=>createUltramodernConfig
|
|
35
35
|
});
|
|
36
36
|
const external_api_cjs_namespaceObject = require("./api.cjs");
|
|
37
|
+
const external_backend_federation_cjs_namespaceObject = require("./backend-federation.cjs");
|
|
38
|
+
const external_delivery_unit_cjs_namespaceObject = require("./delivery-unit.cjs");
|
|
37
39
|
const external_descriptors_cjs_namespaceObject = require("./descriptors.cjs");
|
|
38
40
|
const external_naming_cjs_namespaceObject = require("./naming.cjs");
|
|
39
41
|
const external_policy_cjs_namespaceObject = require("./policy.cjs");
|
|
42
|
+
const external_tooling_command_catalog_cjs_namespaceObject = require("./tooling-command-catalog.cjs");
|
|
40
43
|
const external_versions_cjs_namespaceObject = require("./versions.cjs");
|
|
41
44
|
function createTopology(scope, remotes = []) {
|
|
42
45
|
const shellHost = (0, external_descriptors_cjs_namespaceObject.createShellHost)(remotes);
|
|
@@ -79,6 +82,12 @@ function createTopology(scope, remotes = []) {
|
|
|
79
82
|
fallbackTelemetryEvent: 'modernjs:mv-runtime-parity',
|
|
80
83
|
sharedContractVersion: 'mf-ssr-contract-v1'
|
|
81
84
|
},
|
|
85
|
+
...(0, external_backend_federation_cjs_namespaceObject.createBackendFederationContract)(scope, vertical) ? {
|
|
86
|
+
backendFederation: (0, external_backend_federation_cjs_namespaceObject.createBackendFederationContract)(scope, vertical)
|
|
87
|
+
} : {},
|
|
88
|
+
...vertical.api ? {
|
|
89
|
+
deliveryUnit: (0, external_delivery_unit_cjs_namespaceObject.deliveryUnitContractBlock)((0, external_delivery_unit_cjs_namespaceObject.createDeliveryUnitRecord)(scope, vertical))
|
|
90
|
+
} : {},
|
|
82
91
|
...(0, external_api_cjs_namespaceObject.apiTopologyMetadata)(vertical) ? {
|
|
83
92
|
api: (0, external_api_cjs_namespaceObject.apiTopologyMetadata)(vertical)
|
|
84
93
|
} : {},
|
|
@@ -134,7 +143,7 @@ function createOwnership(scope, remotes = []) {
|
|
|
134
143
|
}))
|
|
135
144
|
};
|
|
136
145
|
}
|
|
137
|
-
function createDevelopmentOverlay(remotes = []) {
|
|
146
|
+
function createDevelopmentOverlay(scope, remotes = []) {
|
|
138
147
|
return {
|
|
139
148
|
schemaVersion: 1,
|
|
140
149
|
environment: 'development',
|
|
@@ -150,6 +159,10 @@ function createDevelopmentOverlay(remotes = []) {
|
|
|
150
159
|
remote.id,
|
|
151
160
|
`http://localhost:${remote.port}/mf-manifest.json`
|
|
152
161
|
])),
|
|
162
|
+
serverExecution: Object.fromEntries((0, external_descriptors_cjs_namespaceObject.verticalApiApps)(remotes).map((app)=>[
|
|
163
|
+
app.id,
|
|
164
|
+
(0, external_backend_federation_cjs_namespaceObject.createServerExecutionOverlay)(scope, app)
|
|
165
|
+
])),
|
|
153
166
|
apis: Object.fromEntries((0, external_descriptors_cjs_namespaceObject.verticalApiApps)(remotes).map((app)=>[
|
|
154
167
|
app.id,
|
|
155
168
|
`http://localhost:${app.port}${(0, external_descriptors_cjs_namespaceObject.resolveApiPrefix)(app)}`
|
|
@@ -226,6 +239,12 @@ function createUltramodernConfig(scope, modernVersion, packageSource, apps = [
|
|
|
226
239
|
tsConfigPath: './tsconfig.mf-types.json'
|
|
227
240
|
}
|
|
228
241
|
},
|
|
242
|
+
...(0, external_backend_federation_cjs_namespaceObject.createBackendFederationContract)(scope, app) ? {
|
|
243
|
+
backendFederation: (0, external_backend_federation_cjs_namespaceObject.createBackendFederationContract)(scope, app)
|
|
244
|
+
} : {},
|
|
245
|
+
...app.api ? {
|
|
246
|
+
deliveryUnit: (0, external_delivery_unit_cjs_namespaceObject.deliveryUnitContractBlock)((0, external_delivery_unit_cjs_namespaceObject.createDeliveryUnitRecord)(scope, app))
|
|
247
|
+
} : {},
|
|
229
248
|
...app.api ? {
|
|
230
249
|
api: {
|
|
231
250
|
stem: app.api.stem,
|
|
@@ -269,6 +288,9 @@ function createUltramodernConfig(scope, modernVersion, packageSource, apps = [
|
|
|
269
288
|
hostOnly: 'shell' === app.kind && 0 === Object.keys(app.exposes ?? {}).length
|
|
270
289
|
}))
|
|
271
290
|
},
|
|
291
|
+
backendFederation: {
|
|
292
|
+
apps: (0, external_descriptors_cjs_namespaceObject.verticalApiApps)(remotes).map((app)=>(0, external_backend_federation_cjs_namespaceObject.createBackendFederationSummary)(scope, app))
|
|
293
|
+
},
|
|
272
294
|
agentSkills: {
|
|
273
295
|
target: 'codex',
|
|
274
296
|
lockfile: './.codex/skills-lock.json',
|
|
@@ -283,13 +305,7 @@ function createUltramodernConfig(scope, modernVersion, packageSource, apps = [
|
|
|
283
305
|
tooling: {
|
|
284
306
|
command: 'modern-js-create ultramodern',
|
|
285
307
|
wrappers: {
|
|
286
|
-
|
|
287
|
-
typecheck: "scripts/ultramodern-typecheck.mts",
|
|
288
|
-
mfTypes: "scripts/assert-mf-types.mts",
|
|
289
|
-
publicSurface: "scripts/generate-public-surface-assets.mts",
|
|
290
|
-
cloudflareProof: "scripts/proof-cloudflare-version.mts",
|
|
291
|
-
performanceReadiness: "scripts/ultramodern-performance-readiness.mts",
|
|
292
|
-
migrateStrictEffect: "scripts/migrate-strict-effect.mts",
|
|
308
|
+
...(0, external_tooling_command_catalog_cjs_namespaceObject.createGeneratedToolingWrapperMap)(),
|
|
293
309
|
apiBoundaries: "scripts/check-ultramodern-api-boundaries.mts",
|
|
294
310
|
skills: "scripts/bootstrap-agent-skills.mts"
|
|
295
311
|
}
|
|
@@ -0,0 +1,157 @@
|
|
|
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
|
+
runSyncDeliveryUnit: ()=>runSyncDeliveryUnit
|
|
41
|
+
});
|
|
42
|
+
const external_node_fs_namespaceObject = require("node:fs");
|
|
43
|
+
var external_node_fs_default = /*#__PURE__*/ __webpack_require__.n(external_node_fs_namespaceObject);
|
|
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 config_cjs_namespaceObject = require("../ultramodern-tooling/config.cjs");
|
|
47
|
+
const external_backend_federation_cjs_namespaceObject = require("./backend-federation.cjs");
|
|
48
|
+
const external_delivery_unit_cjs_namespaceObject = require("./delivery-unit.cjs");
|
|
49
|
+
const external_descriptors_cjs_namespaceObject = require("./descriptors.cjs");
|
|
50
|
+
const external_module_federation_cjs_namespaceObject = require("./module-federation.cjs");
|
|
51
|
+
const REFERENCE_TOPOLOGY_PATH = 'topology/reference-topology.json';
|
|
52
|
+
function readOption(args, name) {
|
|
53
|
+
const prefix = `${name}=`;
|
|
54
|
+
const inline = args.find((arg)=>arg.startsWith(prefix));
|
|
55
|
+
if (inline) {
|
|
56
|
+
const value = inline.slice(prefix.length);
|
|
57
|
+
if (!value) throw new Error(`${name} needs a value.`);
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
const index = args.indexOf(name);
|
|
61
|
+
if (-1 === index) return;
|
|
62
|
+
const value = args[index + 1];
|
|
63
|
+
if (!value || value.startsWith('--')) throw new Error(`${name} needs a value.`);
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
function isPlainObject(value) {
|
|
67
|
+
return 'object' == typeof value && null !== value && !Array.isArray(value);
|
|
68
|
+
}
|
|
69
|
+
function writeTextIfChanged(absolutePath, content) {
|
|
70
|
+
if (external_node_fs_default().existsSync(absolutePath) && external_node_fs_default().readFileSync(absolutePath, 'utf-8') === content) return false;
|
|
71
|
+
external_node_fs_default().mkdirSync(external_node_path_default().dirname(absolutePath), {
|
|
72
|
+
recursive: true
|
|
73
|
+
});
|
|
74
|
+
external_node_fs_default().writeFileSync(absolutePath, content, 'utf-8');
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
function writeJsonIfChanged(absolutePath, value) {
|
|
78
|
+
return writeTextIfChanged(absolutePath, `${JSON.stringify(value, null, 2)}\n`);
|
|
79
|
+
}
|
|
80
|
+
function stampDeliveryUnitIdentity(entry, scope, app) {
|
|
81
|
+
const block = (0, external_delivery_unit_cjs_namespaceObject.deliveryUnitContractBlock)((0, external_delivery_unit_cjs_namespaceObject.createDeliveryUnitRecord)(scope, app));
|
|
82
|
+
entry.deliveryUnit = block;
|
|
83
|
+
if (isPlainObject(entry.backendFederation)) {
|
|
84
|
+
entry.backendFederation.deliveryUnit = block;
|
|
85
|
+
if (!isPlainObject(entry.backendFederation.versionBoundary)) entry.backendFederation.versionBoundary = {};
|
|
86
|
+
entry.backendFederation.versionBoundary.identityRoot = 'deliveryUnit';
|
|
87
|
+
} else entry.backendFederation = (0, external_backend_federation_cjs_namespaceObject.createBackendFederationContract)(scope, app);
|
|
88
|
+
}
|
|
89
|
+
function runSyncDeliveryUnit(args, context) {
|
|
90
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
91
|
+
process.stdout.write(`Usage:
|
|
92
|
+
modern-js-create ultramodern sync-delivery-unit [--workspace <dir>]
|
|
93
|
+
|
|
94
|
+
Backfills the per-vertical delivery-unit identity blocks required by
|
|
95
|
+
\`ultramodern validate\` onto an existing generated workspace, in place and
|
|
96
|
+
through framework tooling only. For each full-stack vertical it writes the
|
|
97
|
+
delivery-unit block into .modernjs/ultramodern.json topology.apps[] and
|
|
98
|
+
topology/reference-topology.json verticals[] (plus backendFederation.deliveryUnit
|
|
99
|
+
and backendFederation.versionBoundary.identityRoot) and regenerates
|
|
100
|
+
verticals/<id>/shared/ultramodern-build.ts. Idempotent: a second run writes
|
|
101
|
+
nothing.
|
|
102
|
+
`);
|
|
103
|
+
return 0;
|
|
104
|
+
}
|
|
105
|
+
const workspaceOverride = readOption(args, '--workspace');
|
|
106
|
+
const workspaceRoot = workspaceOverride ? external_node_path_default().resolve(context.invocationCwd, workspaceOverride) : context.workspaceRoot;
|
|
107
|
+
const compactPath = external_node_path_default().join(workspaceRoot, external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH);
|
|
108
|
+
if (!external_node_fs_default().existsSync(compactPath)) throw new Error(`Missing ${external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH}. sync-delivery-unit needs the compact UltraModern config; run \`modern-js-create ultramodern migrate-strict-effect\` first.`);
|
|
109
|
+
const config = (0, config_cjs_namespaceObject.readUltramodernConfig)(workspaceRoot);
|
|
110
|
+
const scope = config.workspace.packageScope;
|
|
111
|
+
const apiApps = (0, config_cjs_namespaceObject.workspaceAppsFromToolingConfig)(config).filter((app)=>Boolean(app.api));
|
|
112
|
+
const written = [];
|
|
113
|
+
const unchanged = [];
|
|
114
|
+
const track = (relativePath, changed)=>{
|
|
115
|
+
(changed ? written : unchanged).push(relativePath);
|
|
116
|
+
};
|
|
117
|
+
const appById = new Map(apiApps.map((app)=>[
|
|
118
|
+
app.id,
|
|
119
|
+
app
|
|
120
|
+
]));
|
|
121
|
+
const compact = JSON.parse(external_node_fs_default().readFileSync(compactPath, 'utf-8'));
|
|
122
|
+
if (isPlainObject(compact) && Array.isArray(compact.topology?.apps)) for (const entry of compact.topology.apps){
|
|
123
|
+
if (!isPlainObject(entry)) continue;
|
|
124
|
+
const app = appById.get(String(entry.id));
|
|
125
|
+
if (app) stampDeliveryUnitIdentity(entry, scope, app);
|
|
126
|
+
}
|
|
127
|
+
track(external_descriptors_cjs_namespaceObject.ULTRAMODERN_CONFIG_PATH, writeJsonIfChanged(compactPath, compact));
|
|
128
|
+
const topologyPath = external_node_path_default().join(workspaceRoot, REFERENCE_TOPOLOGY_PATH);
|
|
129
|
+
if (external_node_fs_default().existsSync(topologyPath)) {
|
|
130
|
+
const topology = JSON.parse(external_node_fs_default().readFileSync(topologyPath, 'utf-8'));
|
|
131
|
+
if (isPlainObject(topology) && Array.isArray(topology.verticals)) for (const entry of topology.verticals){
|
|
132
|
+
if (!isPlainObject(entry)) continue;
|
|
133
|
+
const app = appById.get(String(entry.id));
|
|
134
|
+
if (app) stampDeliveryUnitIdentity(entry, scope, app);
|
|
135
|
+
}
|
|
136
|
+
track(REFERENCE_TOPOLOGY_PATH, writeJsonIfChanged(topologyPath, topology));
|
|
137
|
+
}
|
|
138
|
+
for (const app of apiApps){
|
|
139
|
+
const relativePath = external_node_path_default().join(app.directory, 'shared/ultramodern-build.ts');
|
|
140
|
+
const changed = writeTextIfChanged(external_node_path_default().join(workspaceRoot, relativePath), (0, external_module_federation_cjs_namespaceObject.createUltramodernBuildModule)(scope, app));
|
|
141
|
+
track(relativePath, changed);
|
|
142
|
+
}
|
|
143
|
+
if (0 === written.length) process.stdout.write('[ultramodern] sync-delivery-unit: already in sync; no files written.\n');
|
|
144
|
+
else {
|
|
145
|
+
process.stdout.write(`[ultramodern] sync-delivery-unit: wrote ${written.length} file(s):\n`);
|
|
146
|
+
for (const relativePath of written)process.stdout.write(` wrote ${relativePath}\n`);
|
|
147
|
+
for (const relativePath of unchanged)process.stdout.write(` in-sync ${relativePath}\n`);
|
|
148
|
+
}
|
|
149
|
+
return 0;
|
|
150
|
+
}
|
|
151
|
+
exports.runSyncDeliveryUnit = __webpack_exports__.runSyncDeliveryUnit;
|
|
152
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
153
|
+
"runSyncDeliveryUnit"
|
|
154
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
155
|
+
Object.defineProperty(exports, '__esModule', {
|
|
156
|
+
value: true
|
|
157
|
+
});
|
|
@@ -0,0 +1,88 @@
|
|
|
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
|
+
DELIVERY_UNIT_SCHEMA_VERSION: ()=>DELIVERY_UNIT_SCHEMA_VERSION,
|
|
41
|
+
createBuildMarker: ()=>createBuildMarker,
|
|
42
|
+
createDeliveryUnitRecord: ()=>createDeliveryUnitRecord,
|
|
43
|
+
deliveryUnitContractBlock: ()=>deliveryUnitContractBlock
|
|
44
|
+
});
|
|
45
|
+
const external_node_crypto_namespaceObject = require("node:crypto");
|
|
46
|
+
var external_node_crypto_default = /*#__PURE__*/ __webpack_require__.n(external_node_crypto_namespaceObject);
|
|
47
|
+
const external_naming_cjs_namespaceObject = require("./naming.cjs");
|
|
48
|
+
const DELIVERY_UNIT_SCHEMA_VERSION = 1;
|
|
49
|
+
function createBuildMarker(scope, app) {
|
|
50
|
+
return external_node_crypto_default().createHash('sha256').update(`${scope}:${app.packageSuffix}:${app.id}:0.1.0`).digest('hex').slice(0, 16);
|
|
51
|
+
}
|
|
52
|
+
function deliveryUnitContractBlock(record) {
|
|
53
|
+
return {
|
|
54
|
+
schemaVersion: record.schemaVersion,
|
|
55
|
+
kind: record.kind,
|
|
56
|
+
unitId: record.unitId,
|
|
57
|
+
packageName: record.packageName,
|
|
58
|
+
version: record.version,
|
|
59
|
+
buildMarker: record.buildMarker,
|
|
60
|
+
sourceRevision: record.sourceRevision
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function createDeliveryUnitRecord(scope, app) {
|
|
64
|
+
return {
|
|
65
|
+
schemaVersion: DELIVERY_UNIT_SCHEMA_VERSION,
|
|
66
|
+
kind: 'microvertical-delivery-unit',
|
|
67
|
+
unitId: `${scope}/${app.domain ?? app.id}`,
|
|
68
|
+
appId: app.id,
|
|
69
|
+
packageName: (0, external_naming_cjs_namespaceObject.packageName)(scope, app.packageSuffix),
|
|
70
|
+
version: '0.1.0',
|
|
71
|
+
sourceRevision: 'workspace',
|
|
72
|
+
buildMarker: createBuildMarker(scope, app),
|
|
73
|
+
deployProfile: 'cloudflare-ssr-mf-effect-v1'
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
exports.DELIVERY_UNIT_SCHEMA_VERSION = __webpack_exports__.DELIVERY_UNIT_SCHEMA_VERSION;
|
|
77
|
+
exports.createBuildMarker = __webpack_exports__.createBuildMarker;
|
|
78
|
+
exports.createDeliveryUnitRecord = __webpack_exports__.createDeliveryUnitRecord;
|
|
79
|
+
exports.deliveryUnitContractBlock = __webpack_exports__.deliveryUnitContractBlock;
|
|
80
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
81
|
+
"DELIVERY_UNIT_SCHEMA_VERSION",
|
|
82
|
+
"createBuildMarker",
|
|
83
|
+
"createDeliveryUnitRecord",
|
|
84
|
+
"deliveryUnitContractBlock"
|
|
85
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
86
|
+
Object.defineProperty(exports, '__esModule', {
|
|
87
|
+
value: true
|
|
88
|
+
});
|
|
@@ -31,6 +31,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
31
31
|
ULTRAMODERN_CONFIG_PATH: ()=>ULTRAMODERN_CONFIG_PATH,
|
|
32
32
|
appHasApi: ()=>appHasApi,
|
|
33
33
|
appI18nNamespace: ()=>appI18nNamespace,
|
|
34
|
+
createBackendFederationContainerEntry: ()=>createBackendFederationContainerEntry,
|
|
35
|
+
createBackendFederationManifestEnv: ()=>createBackendFederationManifestEnv,
|
|
36
|
+
createBackendFederationManifestUrl: ()=>createBackendFederationManifestUrl,
|
|
37
|
+
createBackendFederationName: ()=>createBackendFederationName,
|
|
34
38
|
createCloudflarePublicUrlEnv: ()=>createCloudflarePublicUrlEnv,
|
|
35
39
|
createCloudflareWorkerName: ()=>createCloudflareWorkerName,
|
|
36
40
|
createModuleFederationRemoteContracts: ()=>createModuleFederationRemoteContracts,
|
|
@@ -161,6 +165,18 @@ function resolveRemoteRefs(app, remotes = []) {
|
|
|
161
165
|
function createRemoteManifestEnv(remote) {
|
|
162
166
|
return `VERTICAL_${(0, external_naming_cjs_namespaceObject.toEnvSegment)(remote.domain ?? remote.id)}_MF_MANIFEST`;
|
|
163
167
|
}
|
|
168
|
+
function createBackendFederationManifestEnv(remote) {
|
|
169
|
+
return `VERTICAL_${(0, external_naming_cjs_namespaceObject.toEnvSegment)(remote.domain ?? remote.id)}_BACKEND_MF_MANIFEST`;
|
|
170
|
+
}
|
|
171
|
+
function createBackendFederationName(app) {
|
|
172
|
+
return `${app.mfName}Backend`;
|
|
173
|
+
}
|
|
174
|
+
function createBackendFederationManifestUrl(app) {
|
|
175
|
+
return `http://localhost:${app.port}/backend-mf-manifest.json`;
|
|
176
|
+
}
|
|
177
|
+
function createBackendFederationContainerEntry(app) {
|
|
178
|
+
return `http://localhost:${app.port}/backendRemoteEntry.mjs`;
|
|
179
|
+
}
|
|
164
180
|
function createModuleFederationRemoteContracts(app, remotes = []) {
|
|
165
181
|
return resolveRemoteRefs(app, remotes).map((remote)=>({
|
|
166
182
|
id: remote.id,
|
|
@@ -182,6 +198,10 @@ function appI18nNamespace(app) {
|
|
|
182
198
|
exports.ULTRAMODERN_CONFIG_PATH = __webpack_exports__.ULTRAMODERN_CONFIG_PATH;
|
|
183
199
|
exports.appHasApi = __webpack_exports__.appHasApi;
|
|
184
200
|
exports.appI18nNamespace = __webpack_exports__.appI18nNamespace;
|
|
201
|
+
exports.createBackendFederationContainerEntry = __webpack_exports__.createBackendFederationContainerEntry;
|
|
202
|
+
exports.createBackendFederationManifestEnv = __webpack_exports__.createBackendFederationManifestEnv;
|
|
203
|
+
exports.createBackendFederationManifestUrl = __webpack_exports__.createBackendFederationManifestUrl;
|
|
204
|
+
exports.createBackendFederationName = __webpack_exports__.createBackendFederationName;
|
|
185
205
|
exports.createCloudflarePublicUrlEnv = __webpack_exports__.createCloudflarePublicUrlEnv;
|
|
186
206
|
exports.createCloudflareWorkerName = __webpack_exports__.createCloudflareWorkerName;
|
|
187
207
|
exports.createModuleFederationRemoteContracts = __webpack_exports__.createModuleFederationRemoteContracts;
|
|
@@ -201,6 +221,10 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
201
221
|
"ULTRAMODERN_CONFIG_PATH",
|
|
202
222
|
"appHasApi",
|
|
203
223
|
"appI18nNamespace",
|
|
224
|
+
"createBackendFederationContainerEntry",
|
|
225
|
+
"createBackendFederationManifestEnv",
|
|
226
|
+
"createBackendFederationManifestUrl",
|
|
227
|
+
"createBackendFederationName",
|
|
204
228
|
"createCloudflarePublicUrlEnv",
|
|
205
229
|
"createCloudflareWorkerName",
|
|
206
230
|
"createModuleFederationRemoteContracts",
|