@bleedingdev/modern-js-backend-federation-contracts 3.9.0-ultramodern.8 → 3.9.3-ultramodern.1
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/dist/cjs/backend-federation-contract/build-artifact.js +140 -62
- package/dist/cjs/backend-federation-contract/constants.js +5 -1
- package/dist/cjs/backend-federation-contract/index.js +36 -0
- package/dist/cjs/backend-federation-contract/renderer-profile.js +164 -0
- package/dist/cjs/backend-federation-contract/renderer-router-bindings.js +179 -0
- package/dist/cjs/backend-federation-contract/runtime-build-artifact.js +57 -0
- package/dist/esm/backend-federation-contract/build-artifact.mjs +140 -65
- package/dist/esm/backend-federation-contract/constants.mjs +3 -2
- package/dist/esm/backend-federation-contract/index.mjs +5 -2
- package/dist/esm/backend-federation-contract/renderer-profile.mjs +111 -0
- package/dist/esm/backend-federation-contract/renderer-router-bindings.mjs +138 -0
- package/dist/esm/backend-federation-contract/runtime-build-artifact.mjs +19 -0
- package/dist/esm-node/backend-federation-contract/build-artifact.mjs +140 -65
- package/dist/esm-node/backend-federation-contract/constants.mjs +3 -2
- package/dist/esm-node/backend-federation-contract/index.mjs +5 -2
- package/dist/esm-node/backend-federation-contract/renderer-profile.mjs +112 -0
- package/dist/esm-node/backend-federation-contract/renderer-router-bindings.mjs +139 -0
- package/dist/esm-node/backend-federation-contract/runtime-build-artifact.mjs +20 -0
- package/dist/types/backend-federation-contract/build-artifact.d.ts +3 -2
- package/dist/types/backend-federation-contract/constants.d.ts +2 -1
- package/dist/types/backend-federation-contract/index.d.ts +7 -3
- package/dist/types/backend-federation-contract/renderer-profile.d.ts +31 -0
- package/dist/types/backend-federation-contract/renderer-router-bindings.d.ts +27 -0
- package/dist/types/backend-federation-contract/runtime-build-artifact.d.ts +7 -0
- package/dist/types/backend-federation-contract/types.d.ts +21 -11
- package/package.json +11 -9
- package/src/backend-federation-contract/build-artifact.ts +248 -58
- package/src/backend-federation-contract/constants.ts +5 -1
- package/src/backend-federation-contract/index.ts +28 -0
- package/src/backend-federation-contract/renderer-profile.ts +238 -0
- package/src/backend-federation-contract/renderer-router-bindings.ts +336 -0
- package/src/backend-federation-contract/runtime-build-artifact.ts +48 -0
- package/src/backend-federation-contract/types.ts +27 -5
|
@@ -28,6 +28,7 @@ var __webpack_require__ = {};
|
|
|
28
28
|
var __webpack_exports__ = {};
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
assertUltramodernBuildArtifact: ()=>assertUltramodernBuildArtifact,
|
|
31
32
|
createUltramodernBuildArtifact: ()=>createUltramodernBuildArtifact,
|
|
32
33
|
isUltramodernBuildArtifact: ()=>isUltramodernBuildArtifact,
|
|
33
34
|
stampUltramodernBuildArtifactIdentity: ()=>stampUltramodernBuildArtifactIdentity,
|
|
@@ -36,8 +37,42 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
36
37
|
});
|
|
37
38
|
const external_constants_js_namespaceObject = require("./constants.js");
|
|
38
39
|
const external_delivery_unit_js_namespaceObject = require("./delivery-unit.js");
|
|
40
|
+
const external_renderer_profile_js_namespaceObject = require("./renderer-profile.js");
|
|
41
|
+
const external_renderer_router_bindings_js_namespaceObject = require("./renderer-router-bindings.js");
|
|
39
42
|
const external_validation_core_js_namespaceObject = require("./validation-core.js");
|
|
40
|
-
const
|
|
43
|
+
const immutableRendererProfile = (profile)=>Object.freeze({
|
|
44
|
+
...profile,
|
|
45
|
+
compiler: Object.freeze({
|
|
46
|
+
...profile.compiler
|
|
47
|
+
}),
|
|
48
|
+
hydration: Object.freeze({
|
|
49
|
+
...profile.hydration
|
|
50
|
+
}),
|
|
51
|
+
router: Object.freeze({
|
|
52
|
+
...profile.router
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
const validateUiRouterBindings = (ui, primaryEntryName, path)=>{
|
|
56
|
+
const errors = [];
|
|
57
|
+
if (!Object.hasOwn(ui, 'routerBindings')) {
|
|
58
|
+
(0, external_validation_core_js_namespaceObject.addError)(errors, path, 'is required on the UI surface.');
|
|
59
|
+
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
60
|
+
}
|
|
61
|
+
const bindings = ui.routerBindings;
|
|
62
|
+
errors.push(...(0, external_renderer_router_bindings_js_namespaceObject.validateRendererRouterBindings)(bindings, (0, external_validation_core_js_namespaceObject.isRecord)(bindings) ? Object.keys(bindings) : [], path).errors);
|
|
63
|
+
if ('string' == typeof primaryEntryName && (!(0, external_validation_core_js_namespaceObject.isRecord)(bindings) || !Object.hasOwn(bindings, primaryEntryName))) (0, external_validation_core_js_namespaceObject.addError)(errors, path, 'must include the primary renderer entry.');
|
|
64
|
+
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
65
|
+
};
|
|
66
|
+
const createUltramodernBuildArtifact = (record, options = {})=>{
|
|
67
|
+
if (Object.hasOwn(options, 'ui')) {
|
|
68
|
+
if (!options.ui) throw new Error('artifact.ui must contain an explicit identity and profile.');
|
|
69
|
+
const errors = [
|
|
70
|
+
...(0, external_renderer_profile_js_namespaceObject.validateRendererIdentity)(options.ui.identity, 'artifact.ui.identity').errors,
|
|
71
|
+
...(0, external_renderer_profile_js_namespaceObject.validateRendererProfile)(options.ui.profile, 'artifact.ui.profile').errors,
|
|
72
|
+
...validateUiRouterBindings(options.ui, (0, external_validation_core_js_namespaceObject.isRecord)(options.ui.identity) ? options.ui.identity.entryName : void 0, 'artifact.ui.routerBindings').errors
|
|
73
|
+
];
|
|
74
|
+
if (errors.length) throw new Error((0, external_validation_core_js_namespaceObject.formatBackendFederationValidationErrors)(errors));
|
|
75
|
+
}
|
|
41
76
|
const deliveryUnit = {
|
|
42
77
|
appId: record.appId,
|
|
43
78
|
build: record.buildMarker,
|
|
@@ -50,41 +85,30 @@ const createUltramodernBuildArtifact = (record)=>{
|
|
|
50
85
|
unitId: record.unitId,
|
|
51
86
|
version: record.version
|
|
52
87
|
};
|
|
53
|
-
const
|
|
54
|
-
appId: deliveryUnit.appId,
|
|
55
|
-
build: deliveryUnit.build,
|
|
56
|
-
buildMarker: deliveryUnit.buildMarker,
|
|
57
|
-
deployProfile: deliveryUnit.deployProfile,
|
|
58
|
-
kind: deliveryUnit.kind,
|
|
59
|
-
packageName: deliveryUnit.packageName,
|
|
60
|
-
schemaVersion: deliveryUnit.schemaVersion,
|
|
61
|
-
sourceRevision: deliveryUnit.sourceRevision,
|
|
62
|
-
surface: 'api',
|
|
63
|
-
unitId: deliveryUnit.unitId,
|
|
64
|
-
version: deliveryUnit.version
|
|
65
|
-
};
|
|
66
|
-
const ui = {
|
|
67
|
-
appId: deliveryUnit.appId,
|
|
68
|
-
build: deliveryUnit.build,
|
|
69
|
-
buildMarker: deliveryUnit.buildMarker,
|
|
70
|
-
deployProfile: deliveryUnit.deployProfile,
|
|
71
|
-
kind: deliveryUnit.kind,
|
|
72
|
-
packageName: deliveryUnit.packageName,
|
|
73
|
-
schemaVersion: deliveryUnit.schemaVersion,
|
|
74
|
-
sourceRevision: deliveryUnit.sourceRevision,
|
|
75
|
-
surface: 'ui',
|
|
76
|
-
unitId: deliveryUnit.unitId,
|
|
77
|
-
version: deliveryUnit.version
|
|
78
|
-
};
|
|
79
|
-
return {
|
|
88
|
+
const artifact = {
|
|
80
89
|
deliveryUnit,
|
|
81
90
|
kind: 'ultramodern-build-artifact',
|
|
82
|
-
schemaVersion: external_constants_js_namespaceObject.
|
|
91
|
+
schemaVersion: external_constants_js_namespaceObject.ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION,
|
|
83
92
|
surfaces: {
|
|
84
|
-
api
|
|
85
|
-
|
|
93
|
+
api: {
|
|
94
|
+
...deliveryUnit,
|
|
95
|
+
surface: 'api'
|
|
96
|
+
},
|
|
97
|
+
...options.ui ? {
|
|
98
|
+
ui: {
|
|
99
|
+
...deliveryUnit,
|
|
100
|
+
surface: 'ui',
|
|
101
|
+
rendererIdentity: Object.freeze({
|
|
102
|
+
...options.ui.identity
|
|
103
|
+
}),
|
|
104
|
+
rendererProfile: immutableRendererProfile(options.ui.profile),
|
|
105
|
+
routerBindings: (0, external_renderer_router_bindings_js_namespaceObject.immutableRendererRouterBindings)(options.ui.routerBindings)
|
|
106
|
+
}
|
|
107
|
+
} : {}
|
|
86
108
|
}
|
|
87
109
|
};
|
|
110
|
+
assertUltramodernBuildArtifact(artifact);
|
|
111
|
+
return artifact;
|
|
88
112
|
};
|
|
89
113
|
const validateUltramodernBuildArtifact = (value, path = 'artifact')=>{
|
|
90
114
|
const errors = [];
|
|
@@ -92,14 +116,24 @@ const validateUltramodernBuildArtifact = (value, path = 'artifact')=>{
|
|
|
92
116
|
(0, external_validation_core_js_namespaceObject.addError)(errors, path, 'must be an object.');
|
|
93
117
|
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
94
118
|
}
|
|
95
|
-
|
|
119
|
+
for (const field of Object.keys(value))if (![
|
|
120
|
+
'schemaVersion',
|
|
121
|
+
'kind',
|
|
122
|
+
'deliveryUnit',
|
|
123
|
+
'surfaces'
|
|
124
|
+
].includes(field)) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.${field}`, 'is not a supported field.');
|
|
125
|
+
if (value.schemaVersion !== external_constants_js_namespaceObject.ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.schemaVersion`, `must be ${external_constants_js_namespaceObject.ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION}.`);
|
|
96
126
|
if ('ultramodern-build-artifact' !== value.kind) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.kind`, 'must be "ultramodern-build-artifact".');
|
|
97
127
|
const deliveryUnit = value.deliveryUnit;
|
|
98
128
|
errors.push(...(0, external_delivery_unit_js_namespaceObject.validateDeliveryUnitRecord)(deliveryUnit, {
|
|
99
|
-
path: `${path}.deliveryUnit
|
|
100
|
-
allowBuildAlias: true
|
|
129
|
+
path: `${path}.deliveryUnit`
|
|
101
130
|
}).errors);
|
|
102
131
|
if ((0, external_validation_core_js_namespaceObject.isRecord)(deliveryUnit)) {
|
|
132
|
+
for (const field of [
|
|
133
|
+
'rendererIdentity',
|
|
134
|
+
'rendererProfile',
|
|
135
|
+
'routerBindings'
|
|
136
|
+
])if (Object.hasOwn(deliveryUnit, field)) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.deliveryUnit.${field}`, 'is only allowed on the UI surface.');
|
|
103
137
|
const build = (0, external_validation_core_js_namespaceObject.nonEmptyString)(deliveryUnit.build);
|
|
104
138
|
const buildMarker = (0, external_validation_core_js_namespaceObject.nonEmptyString)(deliveryUnit.buildMarker);
|
|
105
139
|
if (build) {
|
|
@@ -111,15 +145,16 @@ const validateUltramodernBuildArtifact = (value, path = 'artifact')=>{
|
|
|
111
145
|
(0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.surfaces`, 'must be an object.');
|
|
112
146
|
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
113
147
|
}
|
|
148
|
+
for (const surface of Object.keys(surfaces))if ('api' !== surface && 'ui' !== surface) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.surfaces.${surface}`, 'is not a supported surface.');
|
|
114
149
|
for (const surface of [
|
|
115
150
|
'ui',
|
|
116
151
|
'api'
|
|
117
152
|
]){
|
|
153
|
+
if ('ui' === surface && !Object.hasOwn(surfaces, 'ui')) continue;
|
|
118
154
|
const marker = surfaces[surface];
|
|
119
155
|
const markerPath = `${path}.surfaces.${surface}`;
|
|
120
156
|
errors.push(...(0, external_delivery_unit_js_namespaceObject.validateDeliveryUnitRecord)(marker, {
|
|
121
|
-
path: markerPath
|
|
122
|
-
allowBuildAlias: true
|
|
157
|
+
path: markerPath
|
|
123
158
|
}).errors);
|
|
124
159
|
if (!(0, external_validation_core_js_namespaceObject.isRecord)(marker)) continue;
|
|
125
160
|
const markerBuild = (0, external_validation_core_js_namespaceObject.nonEmptyString)(marker.build);
|
|
@@ -128,52 +163,95 @@ const validateUltramodernBuildArtifact = (value, path = 'artifact')=>{
|
|
|
128
163
|
if (markerBuildMarker && markerBuild !== markerBuildMarker) (0, external_validation_core_js_namespaceObject.addError)(errors, `${markerPath}.build`, 'must match buildMarker.');
|
|
129
164
|
} else (0, external_validation_core_js_namespaceObject.addError)(errors, `${markerPath}.build`, 'must be non-empty string.');
|
|
130
165
|
if (marker.surface !== surface) (0, external_validation_core_js_namespaceObject.addError)(errors, `${markerPath}.surface`, `must be "${surface}".`);
|
|
166
|
+
if ('api' === surface) {
|
|
167
|
+
for (const field of [
|
|
168
|
+
'rendererIdentity',
|
|
169
|
+
'rendererProfile',
|
|
170
|
+
'routerBindings'
|
|
171
|
+
])if (Object.hasOwn(marker, field)) (0, external_validation_core_js_namespaceObject.addError)(errors, `${markerPath}.${field}`, 'is forbidden on the API surface.');
|
|
172
|
+
} else {
|
|
173
|
+
errors.push(...(0, external_renderer_profile_js_namespaceObject.validateRendererIdentity)(marker.rendererIdentity, `${markerPath}.rendererIdentity`).errors, ...(0, external_renderer_profile_js_namespaceObject.validateRendererProfile)(marker.rendererProfile, `${markerPath}.rendererProfile`).errors);
|
|
174
|
+
const rendererIdentity = (0, external_validation_core_js_namespaceObject.recordField)(marker, 'rendererIdentity');
|
|
175
|
+
const rendererProfile = (0, external_validation_core_js_namespaceObject.recordField)(marker, 'rendererProfile');
|
|
176
|
+
errors.push(...validateUiRouterBindings(marker, rendererIdentity?.entryName, `${markerPath}.routerBindings`).errors);
|
|
177
|
+
if (rendererIdentity) {
|
|
178
|
+
if (rendererIdentity.appId !== marker.appId) (0, external_validation_core_js_namespaceObject.addError)(errors, `${markerPath}.rendererIdentity.appId`, 'must match the UI delivery-unit appId.');
|
|
179
|
+
if (rendererIdentity.buildId !== marker.buildMarker) (0, external_validation_core_js_namespaceObject.addError)(errors, `${markerPath}.rendererIdentity.buildId`, 'must match the UI delivery-unit buildMarker.');
|
|
180
|
+
}
|
|
181
|
+
if (rendererIdentity && rendererProfile) {
|
|
182
|
+
for (const field of [
|
|
183
|
+
'renderer',
|
|
184
|
+
'protocolVersion'
|
|
185
|
+
])if (rendererIdentity[field] !== rendererProfile[field]) (0, external_validation_core_js_namespaceObject.addError)(errors, `${markerPath}.rendererProfile.${field}`, 'must match the renderer identity.');
|
|
186
|
+
}
|
|
187
|
+
}
|
|
131
188
|
for (const field of external_constants_js_namespaceObject.DELIVERY_UNIT_IDENTITY_FIELDS){
|
|
132
|
-
const deliveryUnitValue = (0, external_delivery_unit_js_namespaceObject.deliveryUnitIdentityFieldValue)(deliveryUnit, field
|
|
133
|
-
|
|
134
|
-
});
|
|
135
|
-
const markerValue = (0, external_delivery_unit_js_namespaceObject.deliveryUnitIdentityFieldValue)(marker, field, {
|
|
136
|
-
allowBuildAlias: true
|
|
137
|
-
});
|
|
189
|
+
const deliveryUnitValue = (0, external_delivery_unit_js_namespaceObject.deliveryUnitIdentityFieldValue)(deliveryUnit, field);
|
|
190
|
+
const markerValue = (0, external_delivery_unit_js_namespaceObject.deliveryUnitIdentityFieldValue)(marker, field);
|
|
138
191
|
if (void 0 !== deliveryUnitValue && void 0 !== markerValue && deliveryUnitValue !== markerValue) (0, external_validation_core_js_namespaceObject.addError)(errors, `${markerPath}.${field}`, `must match ${path}.deliveryUnit.${field}.`);
|
|
139
192
|
}
|
|
193
|
+
if ((0, external_validation_core_js_namespaceObject.isRecord)(deliveryUnit)) {
|
|
194
|
+
for (const field of [
|
|
195
|
+
'appId',
|
|
196
|
+
'packageName',
|
|
197
|
+
'version',
|
|
198
|
+
'deployProfile',
|
|
199
|
+
'schemaVersion',
|
|
200
|
+
'kind'
|
|
201
|
+
])if (marker[field] !== deliveryUnit[field]) (0, external_validation_core_js_namespaceObject.addError)(errors, `${markerPath}.${field}`, `must match ${path}.deliveryUnit.${field}.`);
|
|
202
|
+
}
|
|
140
203
|
}
|
|
141
204
|
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
142
205
|
};
|
|
143
206
|
const isUltramodernBuildArtifact = (value)=>validateUltramodernBuildArtifact(value).ok;
|
|
144
|
-
|
|
207
|
+
function assertUltramodernBuildArtifact(value, path = 'artifact') {
|
|
208
|
+
const result = validateUltramodernBuildArtifact(value, path);
|
|
209
|
+
if (!result.ok) throw new Error((0, external_validation_core_js_namespaceObject.formatBackendFederationValidationErrors)(result.errors));
|
|
210
|
+
}
|
|
211
|
+
const stampUltramodernBuildArtifactIdentity = (artifact, identity)=>{
|
|
212
|
+
assertUltramodernBuildArtifact(artifact);
|
|
213
|
+
const stamped = {
|
|
214
|
+
build: identity.buildMarker,
|
|
215
|
+
buildMarker: identity.buildMarker,
|
|
216
|
+
sourceRevision: identity.sourceRevision
|
|
217
|
+
};
|
|
218
|
+
const stamp = (value)=>({
|
|
219
|
+
...value,
|
|
220
|
+
...stamped
|
|
221
|
+
});
|
|
222
|
+
const result = {
|
|
145
223
|
...artifact,
|
|
146
|
-
deliveryUnit:
|
|
147
|
-
...artifact.deliveryUnit,
|
|
148
|
-
build: identity.buildMarker,
|
|
149
|
-
buildMarker: identity.buildMarker,
|
|
150
|
-
sourceRevision: identity.sourceRevision
|
|
151
|
-
},
|
|
224
|
+
deliveryUnit: stamp(artifact.deliveryUnit),
|
|
152
225
|
surfaces: {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
226
|
+
api: stamp(artifact.surfaces.api),
|
|
227
|
+
...artifact.surfaces.ui ? {
|
|
228
|
+
ui: {
|
|
229
|
+
...stamp(artifact.surfaces.ui),
|
|
230
|
+
rendererIdentity: Object.freeze({
|
|
231
|
+
...artifact.surfaces.ui.rendererIdentity,
|
|
232
|
+
buildId: identity.buildMarker
|
|
233
|
+
}),
|
|
234
|
+
rendererProfile: immutableRendererProfile(artifact.surfaces.ui.rendererProfile),
|
|
235
|
+
routerBindings: (0, external_renderer_router_bindings_js_namespaceObject.immutableRendererRouterBindings)(artifact.surfaces.ui.routerBindings)
|
|
236
|
+
}
|
|
237
|
+
} : {}
|
|
165
238
|
}
|
|
166
|
-
}
|
|
239
|
+
};
|
|
240
|
+
assertUltramodernBuildArtifact(result);
|
|
241
|
+
return result;
|
|
242
|
+
};
|
|
167
243
|
const stampUltramodernBuildArtifactSourceRevision = (artifact, sourceRevision)=>stampUltramodernBuildArtifactIdentity(artifact, {
|
|
168
244
|
buildMarker: artifact.deliveryUnit.buildMarker,
|
|
169
245
|
sourceRevision
|
|
170
246
|
});
|
|
247
|
+
exports.assertUltramodernBuildArtifact = __webpack_exports__.assertUltramodernBuildArtifact;
|
|
171
248
|
exports.createUltramodernBuildArtifact = __webpack_exports__.createUltramodernBuildArtifact;
|
|
172
249
|
exports.isUltramodernBuildArtifact = __webpack_exports__.isUltramodernBuildArtifact;
|
|
173
250
|
exports.stampUltramodernBuildArtifactIdentity = __webpack_exports__.stampUltramodernBuildArtifactIdentity;
|
|
174
251
|
exports.stampUltramodernBuildArtifactSourceRevision = __webpack_exports__.stampUltramodernBuildArtifactSourceRevision;
|
|
175
252
|
exports.validateUltramodernBuildArtifact = __webpack_exports__.validateUltramodernBuildArtifact;
|
|
176
253
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
254
|
+
"assertUltramodernBuildArtifact",
|
|
177
255
|
"createUltramodernBuildArtifact",
|
|
178
256
|
"isUltramodernBuildArtifact",
|
|
179
257
|
"stampUltramodernBuildArtifactIdentity",
|
|
@@ -31,7 +31,7 @@ const BACKEND_FEDERATION_EFFECT_EXPOSE = './effect-api';
|
|
|
31
31
|
const BACKEND_FEDERATION_MANIFEST_FILE = 'backend-mf-manifest.json';
|
|
32
32
|
const BACKEND_FEDERATION_REMOTE_ENTRY_FILE = 'backendRemoteEntry.cjs';
|
|
33
33
|
const BACKEND_FEDERATION_CONTRACT_VERSION = 'microvertical-server-effect-v1';
|
|
34
|
-
const BACKEND_FEDERATION_NODE_ADAPTER_VERSION = 'backend-mf-effect-
|
|
34
|
+
const BACKEND_FEDERATION_NODE_ADAPTER_VERSION = 'backend-mf-effect-v2';
|
|
35
35
|
const DELIVERY_UNIT_SCHEMA_VERSION = 1;
|
|
36
36
|
const DELIVERY_UNIT_KIND = 'microvertical-delivery-unit';
|
|
37
37
|
const DELIVERY_UNIT_DEPLOY_PROFILE = 'cloudflare-ssr-mf-effect-v1';
|
|
@@ -41,6 +41,7 @@ const DELIVERY_UNIT_IDENTITY_FIELDS = [
|
|
|
41
41
|
'sourceRevision'
|
|
42
42
|
];
|
|
43
43
|
const ULTRAMODERN_BUILD_ARTIFACT_FILE = 'ultramodern-build.json';
|
|
44
|
+
const ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION = 2;
|
|
44
45
|
const ULTRAMODERN_BUILD_ARTIFACT_PATH = `shared/${ULTRAMODERN_BUILD_ARTIFACT_FILE}`;
|
|
45
46
|
const ULTRAMODERN_BUILD_MODULE_FILE = 'ultramodern-build.ts';
|
|
46
47
|
const ULTRAMODERN_BUILD_MODULE_PATH = `shared/${ULTRAMODERN_BUILD_MODULE_FILE}`;
|
|
@@ -56,6 +57,7 @@ __webpack_require__.d(__webpack_exports__, {}, {
|
|
|
56
57
|
DELIVERY_UNIT_SCHEMA_VERSION: DELIVERY_UNIT_SCHEMA_VERSION,
|
|
57
58
|
ULTRAMODERN_BUILD_ARTIFACT_FILE: ULTRAMODERN_BUILD_ARTIFACT_FILE,
|
|
58
59
|
ULTRAMODERN_BUILD_ARTIFACT_PATH: ULTRAMODERN_BUILD_ARTIFACT_PATH,
|
|
60
|
+
ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION: ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION,
|
|
59
61
|
ULTRAMODERN_BUILD_MODULE_FILE: ULTRAMODERN_BUILD_MODULE_FILE,
|
|
60
62
|
ULTRAMODERN_BUILD_MODULE_PATH: ULTRAMODERN_BUILD_MODULE_PATH
|
|
61
63
|
});
|
|
@@ -70,6 +72,7 @@ exports.DELIVERY_UNIT_KIND = __webpack_exports__.DELIVERY_UNIT_KIND;
|
|
|
70
72
|
exports.DELIVERY_UNIT_SCHEMA_VERSION = __webpack_exports__.DELIVERY_UNIT_SCHEMA_VERSION;
|
|
71
73
|
exports.ULTRAMODERN_BUILD_ARTIFACT_FILE = __webpack_exports__.ULTRAMODERN_BUILD_ARTIFACT_FILE;
|
|
72
74
|
exports.ULTRAMODERN_BUILD_ARTIFACT_PATH = __webpack_exports__.ULTRAMODERN_BUILD_ARTIFACT_PATH;
|
|
75
|
+
exports.ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION = __webpack_exports__.ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION;
|
|
73
76
|
exports.ULTRAMODERN_BUILD_MODULE_FILE = __webpack_exports__.ULTRAMODERN_BUILD_MODULE_FILE;
|
|
74
77
|
exports.ULTRAMODERN_BUILD_MODULE_PATH = __webpack_exports__.ULTRAMODERN_BUILD_MODULE_PATH;
|
|
75
78
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
@@ -84,6 +87,7 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
84
87
|
"DELIVERY_UNIT_SCHEMA_VERSION",
|
|
85
88
|
"ULTRAMODERN_BUILD_ARTIFACT_FILE",
|
|
86
89
|
"ULTRAMODERN_BUILD_ARTIFACT_PATH",
|
|
90
|
+
"ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION",
|
|
87
91
|
"ULTRAMODERN_BUILD_MODULE_FILE",
|
|
88
92
|
"ULTRAMODERN_BUILD_MODULE_PATH"
|
|
89
93
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
@@ -37,10 +37,14 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
37
37
|
DELIVERY_UNIT_IDENTITY_FIELDS: ()=>external_constants_js_namespaceObject.DELIVERY_UNIT_IDENTITY_FIELDS,
|
|
38
38
|
DELIVERY_UNIT_KIND: ()=>external_constants_js_namespaceObject.DELIVERY_UNIT_KIND,
|
|
39
39
|
DELIVERY_UNIT_SCHEMA_VERSION: ()=>external_constants_js_namespaceObject.DELIVERY_UNIT_SCHEMA_VERSION,
|
|
40
|
+
RENDERER_PROTOCOL_VERSION: ()=>external_renderer_profile_js_namespaceObject.RENDERER_PROTOCOL_VERSION,
|
|
40
41
|
ULTRAMODERN_BUILD_ARTIFACT_FILE: ()=>external_constants_js_namespaceObject.ULTRAMODERN_BUILD_ARTIFACT_FILE,
|
|
41
42
|
ULTRAMODERN_BUILD_ARTIFACT_PATH: ()=>external_constants_js_namespaceObject.ULTRAMODERN_BUILD_ARTIFACT_PATH,
|
|
43
|
+
ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION: ()=>external_constants_js_namespaceObject.ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION,
|
|
42
44
|
ULTRAMODERN_BUILD_MODULE_FILE: ()=>external_constants_js_namespaceObject.ULTRAMODERN_BUILD_MODULE_FILE,
|
|
43
45
|
ULTRAMODERN_BUILD_MODULE_PATH: ()=>external_constants_js_namespaceObject.ULTRAMODERN_BUILD_MODULE_PATH,
|
|
46
|
+
assertRendererProfileCompatibility: ()=>external_renderer_profile_js_namespaceObject.assertRendererProfileCompatibility,
|
|
47
|
+
assertUltramodernBuildArtifact: ()=>external_build_artifact_js_namespaceObject.assertUltramodernBuildArtifact,
|
|
44
48
|
backendFederationExposeNames: ()=>external_metadata_js_namespaceObject.backendFederationExposeNames,
|
|
45
49
|
backendFederationMetadata: ()=>external_metadata_js_namespaceObject.backendFederationMetadata,
|
|
46
50
|
backendFederationVersionBoundary: ()=>external_metadata_js_namespaceObject.backendFederationVersionBoundary,
|
|
@@ -48,8 +52,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
48
52
|
deliveryUnitContractBlock: ()=>external_delivery_unit_js_namespaceObject.deliveryUnitContractBlock,
|
|
49
53
|
deliveryUnitIdentityFieldValue: ()=>external_delivery_unit_js_namespaceObject.deliveryUnitIdentityFieldValue,
|
|
50
54
|
formatBackendFederationValidationErrors: ()=>external_validation_core_js_namespaceObject.formatBackendFederationValidationErrors,
|
|
55
|
+
immutableRendererRouterBindings: ()=>external_renderer_router_bindings_js_namespaceObject.immutableRendererRouterBindings,
|
|
51
56
|
isUltramodernBuildArtifact: ()=>external_build_artifact_js_namespaceObject.isUltramodernBuildArtifact,
|
|
52
57
|
nonEmptyString: ()=>external_validation_core_js_namespaceObject.nonEmptyString,
|
|
58
|
+
resolveUltramodernBuildArtifact: ()=>external_runtime_build_artifact_js_namespaceObject.resolveUltramodernBuildArtifact,
|
|
53
59
|
stampUltramodernBuildArtifactIdentity: ()=>external_build_artifact_js_namespaceObject.stampUltramodernBuildArtifactIdentity,
|
|
54
60
|
stampUltramodernBuildArtifactSourceRevision: ()=>external_build_artifact_js_namespaceObject.stampUltramodernBuildArtifactSourceRevision,
|
|
55
61
|
toBackendFederationExposeNames: ()=>external_metadata_js_namespaceObject.toBackendFederationExposeNames,
|
|
@@ -59,12 +65,20 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
59
65
|
validateDeliveryUnitContractBlock: ()=>external_delivery_unit_js_namespaceObject.validateDeliveryUnitContractBlock,
|
|
60
66
|
validateDeliveryUnitIdentity: ()=>external_delivery_unit_js_namespaceObject.validateDeliveryUnitIdentity,
|
|
61
67
|
validateDeliveryUnitRecord: ()=>external_delivery_unit_js_namespaceObject.validateDeliveryUnitRecord,
|
|
68
|
+
validateRendererIdentity: ()=>external_renderer_profile_js_namespaceObject.validateRendererIdentity,
|
|
69
|
+
validateRendererProfile: ()=>external_renderer_profile_js_namespaceObject.validateRendererProfile,
|
|
70
|
+
validateRendererProfileCompatibility: ()=>external_renderer_profile_js_namespaceObject.validateRendererProfileCompatibility,
|
|
71
|
+
validateRendererRouterBindings: ()=>external_renderer_router_bindings_js_namespaceObject.validateRendererRouterBindings,
|
|
72
|
+
validateRendererRouterPackageIdentity: ()=>external_renderer_profile_js_namespaceObject.validateRendererRouterPackageIdentity,
|
|
62
73
|
validateUltramodernBuildArtifact: ()=>external_build_artifact_js_namespaceObject.validateUltramodernBuildArtifact
|
|
63
74
|
});
|
|
64
75
|
const external_build_artifact_js_namespaceObject = require("./build-artifact.js");
|
|
65
76
|
const external_constants_js_namespaceObject = require("./constants.js");
|
|
66
77
|
const external_delivery_unit_js_namespaceObject = require("./delivery-unit.js");
|
|
67
78
|
const external_metadata_js_namespaceObject = require("./metadata.js");
|
|
79
|
+
const external_renderer_profile_js_namespaceObject = require("./renderer-profile.js");
|
|
80
|
+
const external_renderer_router_bindings_js_namespaceObject = require("./renderer-router-bindings.js");
|
|
81
|
+
const external_runtime_build_artifact_js_namespaceObject = require("./runtime-build-artifact.js");
|
|
68
82
|
const external_validation_core_js_namespaceObject = require("./validation-core.js");
|
|
69
83
|
exports.BACKEND_FEDERATION_CONTRACT_VERSION = __webpack_exports__.BACKEND_FEDERATION_CONTRACT_VERSION;
|
|
70
84
|
exports.BACKEND_FEDERATION_EFFECT_EXPOSE = __webpack_exports__.BACKEND_FEDERATION_EFFECT_EXPOSE;
|
|
@@ -75,10 +89,14 @@ exports.DELIVERY_UNIT_DEPLOY_PROFILE = __webpack_exports__.DELIVERY_UNIT_DEPLOY_
|
|
|
75
89
|
exports.DELIVERY_UNIT_IDENTITY_FIELDS = __webpack_exports__.DELIVERY_UNIT_IDENTITY_FIELDS;
|
|
76
90
|
exports.DELIVERY_UNIT_KIND = __webpack_exports__.DELIVERY_UNIT_KIND;
|
|
77
91
|
exports.DELIVERY_UNIT_SCHEMA_VERSION = __webpack_exports__.DELIVERY_UNIT_SCHEMA_VERSION;
|
|
92
|
+
exports.RENDERER_PROTOCOL_VERSION = __webpack_exports__.RENDERER_PROTOCOL_VERSION;
|
|
78
93
|
exports.ULTRAMODERN_BUILD_ARTIFACT_FILE = __webpack_exports__.ULTRAMODERN_BUILD_ARTIFACT_FILE;
|
|
79
94
|
exports.ULTRAMODERN_BUILD_ARTIFACT_PATH = __webpack_exports__.ULTRAMODERN_BUILD_ARTIFACT_PATH;
|
|
95
|
+
exports.ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION = __webpack_exports__.ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION;
|
|
80
96
|
exports.ULTRAMODERN_BUILD_MODULE_FILE = __webpack_exports__.ULTRAMODERN_BUILD_MODULE_FILE;
|
|
81
97
|
exports.ULTRAMODERN_BUILD_MODULE_PATH = __webpack_exports__.ULTRAMODERN_BUILD_MODULE_PATH;
|
|
98
|
+
exports.assertRendererProfileCompatibility = __webpack_exports__.assertRendererProfileCompatibility;
|
|
99
|
+
exports.assertUltramodernBuildArtifact = __webpack_exports__.assertUltramodernBuildArtifact;
|
|
82
100
|
exports.backendFederationExposeNames = __webpack_exports__.backendFederationExposeNames;
|
|
83
101
|
exports.backendFederationMetadata = __webpack_exports__.backendFederationMetadata;
|
|
84
102
|
exports.backendFederationVersionBoundary = __webpack_exports__.backendFederationVersionBoundary;
|
|
@@ -86,8 +104,10 @@ exports.createUltramodernBuildArtifact = __webpack_exports__.createUltramodernBu
|
|
|
86
104
|
exports.deliveryUnitContractBlock = __webpack_exports__.deliveryUnitContractBlock;
|
|
87
105
|
exports.deliveryUnitIdentityFieldValue = __webpack_exports__.deliveryUnitIdentityFieldValue;
|
|
88
106
|
exports.formatBackendFederationValidationErrors = __webpack_exports__.formatBackendFederationValidationErrors;
|
|
107
|
+
exports.immutableRendererRouterBindings = __webpack_exports__.immutableRendererRouterBindings;
|
|
89
108
|
exports.isUltramodernBuildArtifact = __webpack_exports__.isUltramodernBuildArtifact;
|
|
90
109
|
exports.nonEmptyString = __webpack_exports__.nonEmptyString;
|
|
110
|
+
exports.resolveUltramodernBuildArtifact = __webpack_exports__.resolveUltramodernBuildArtifact;
|
|
91
111
|
exports.stampUltramodernBuildArtifactIdentity = __webpack_exports__.stampUltramodernBuildArtifactIdentity;
|
|
92
112
|
exports.stampUltramodernBuildArtifactSourceRevision = __webpack_exports__.stampUltramodernBuildArtifactSourceRevision;
|
|
93
113
|
exports.toBackendFederationExposeNames = __webpack_exports__.toBackendFederationExposeNames;
|
|
@@ -97,6 +117,11 @@ exports.validateBackendFederationMetadata = __webpack_exports__.validateBackendF
|
|
|
97
117
|
exports.validateDeliveryUnitContractBlock = __webpack_exports__.validateDeliveryUnitContractBlock;
|
|
98
118
|
exports.validateDeliveryUnitIdentity = __webpack_exports__.validateDeliveryUnitIdentity;
|
|
99
119
|
exports.validateDeliveryUnitRecord = __webpack_exports__.validateDeliveryUnitRecord;
|
|
120
|
+
exports.validateRendererIdentity = __webpack_exports__.validateRendererIdentity;
|
|
121
|
+
exports.validateRendererProfile = __webpack_exports__.validateRendererProfile;
|
|
122
|
+
exports.validateRendererProfileCompatibility = __webpack_exports__.validateRendererProfileCompatibility;
|
|
123
|
+
exports.validateRendererRouterBindings = __webpack_exports__.validateRendererRouterBindings;
|
|
124
|
+
exports.validateRendererRouterPackageIdentity = __webpack_exports__.validateRendererRouterPackageIdentity;
|
|
100
125
|
exports.validateUltramodernBuildArtifact = __webpack_exports__.validateUltramodernBuildArtifact;
|
|
101
126
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
102
127
|
"BACKEND_FEDERATION_CONTRACT_VERSION",
|
|
@@ -108,10 +133,14 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
108
133
|
"DELIVERY_UNIT_IDENTITY_FIELDS",
|
|
109
134
|
"DELIVERY_UNIT_KIND",
|
|
110
135
|
"DELIVERY_UNIT_SCHEMA_VERSION",
|
|
136
|
+
"RENDERER_PROTOCOL_VERSION",
|
|
111
137
|
"ULTRAMODERN_BUILD_ARTIFACT_FILE",
|
|
112
138
|
"ULTRAMODERN_BUILD_ARTIFACT_PATH",
|
|
139
|
+
"ULTRAMODERN_BUILD_ARTIFACT_SCHEMA_VERSION",
|
|
113
140
|
"ULTRAMODERN_BUILD_MODULE_FILE",
|
|
114
141
|
"ULTRAMODERN_BUILD_MODULE_PATH",
|
|
142
|
+
"assertRendererProfileCompatibility",
|
|
143
|
+
"assertUltramodernBuildArtifact",
|
|
115
144
|
"backendFederationExposeNames",
|
|
116
145
|
"backendFederationMetadata",
|
|
117
146
|
"backendFederationVersionBoundary",
|
|
@@ -119,8 +148,10 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
119
148
|
"deliveryUnitContractBlock",
|
|
120
149
|
"deliveryUnitIdentityFieldValue",
|
|
121
150
|
"formatBackendFederationValidationErrors",
|
|
151
|
+
"immutableRendererRouterBindings",
|
|
122
152
|
"isUltramodernBuildArtifact",
|
|
123
153
|
"nonEmptyString",
|
|
154
|
+
"resolveUltramodernBuildArtifact",
|
|
124
155
|
"stampUltramodernBuildArtifactIdentity",
|
|
125
156
|
"stampUltramodernBuildArtifactSourceRevision",
|
|
126
157
|
"toBackendFederationExposeNames",
|
|
@@ -130,6 +161,11 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
|
130
161
|
"validateDeliveryUnitContractBlock",
|
|
131
162
|
"validateDeliveryUnitIdentity",
|
|
132
163
|
"validateDeliveryUnitRecord",
|
|
164
|
+
"validateRendererIdentity",
|
|
165
|
+
"validateRendererProfile",
|
|
166
|
+
"validateRendererProfileCompatibility",
|
|
167
|
+
"validateRendererRouterBindings",
|
|
168
|
+
"validateRendererRouterPackageIdentity",
|
|
133
169
|
"validateUltramodernBuildArtifact"
|
|
134
170
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
135
171
|
Object.defineProperty(exports, '__esModule', {
|
|
@@ -0,0 +1,164 @@
|
|
|
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
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
RENDERER_PROTOCOL_VERSION: ()=>RENDERER_PROTOCOL_VERSION,
|
|
32
|
+
assertRendererProfileCompatibility: ()=>assertRendererProfileCompatibility,
|
|
33
|
+
validateRendererIdentity: ()=>validateRendererIdentity,
|
|
34
|
+
validateRendererProfile: ()=>validateRendererProfile,
|
|
35
|
+
validateRendererProfileCompatibility: ()=>validateRendererProfileCompatibility,
|
|
36
|
+
validateRendererRouterPackageIdentity: ()=>validateRendererRouterPackageIdentity
|
|
37
|
+
});
|
|
38
|
+
const external_validation_core_js_namespaceObject = require("./validation-core.js");
|
|
39
|
+
const RENDERER_PROTOCOL_VERSION = 1;
|
|
40
|
+
const exactFields = (value, fields, path, errors)=>{
|
|
41
|
+
for (const field of Object.keys(value))if (!fields.includes(field)) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.${field}`, 'is not a supported field.');
|
|
42
|
+
};
|
|
43
|
+
const canonicalString = (value)=>'string' == typeof value && value.length > 0 && value.trim() === value;
|
|
44
|
+
const exactPackageVersion = /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*)(?:\.(?:0|[1-9]\d*|\d*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\+([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$/;
|
|
45
|
+
const validateRenderer = (value, path, errors)=>{
|
|
46
|
+
if (!canonicalString(value.renderer) || !/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/u.test(value.renderer)) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.renderer`, 'must be a lowercase renderer token separated by single hyphens.');
|
|
47
|
+
if (value.protocolVersion !== RENDERER_PROTOCOL_VERSION) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.protocolVersion`, `must be ${RENDERER_PROTOCOL_VERSION}.`);
|
|
48
|
+
};
|
|
49
|
+
const validateRendererIdentity = (value, path = 'rendererIdentity')=>{
|
|
50
|
+
const errors = [];
|
|
51
|
+
if (!(0, external_validation_core_js_namespaceObject.isRecord)(value)) {
|
|
52
|
+
(0, external_validation_core_js_namespaceObject.addError)(errors, path, 'must be an object.');
|
|
53
|
+
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
54
|
+
}
|
|
55
|
+
exactFields(value, [
|
|
56
|
+
'renderer',
|
|
57
|
+
'appId',
|
|
58
|
+
'entryName',
|
|
59
|
+
'protocolVersion',
|
|
60
|
+
'buildId'
|
|
61
|
+
], path, errors);
|
|
62
|
+
validateRenderer(value, path, errors);
|
|
63
|
+
for (const field of [
|
|
64
|
+
'appId',
|
|
65
|
+
'entryName',
|
|
66
|
+
'buildId'
|
|
67
|
+
])if (!canonicalString(value[field])) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.${field}`, 'must be a non-empty trimmed string.');
|
|
68
|
+
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
69
|
+
};
|
|
70
|
+
const validatePackageIdentity = (value, path, errors, router = false, hydration = false)=>{
|
|
71
|
+
if (!(0, external_validation_core_js_namespaceObject.isRecord)(value)) return void (0, external_validation_core_js_namespaceObject.addError)(errors, path, 'must be an object.');
|
|
72
|
+
exactFields(value, router ? [
|
|
73
|
+
'name',
|
|
74
|
+
'version',
|
|
75
|
+
'coreName',
|
|
76
|
+
'coreVersion'
|
|
77
|
+
] : [
|
|
78
|
+
'name',
|
|
79
|
+
'version'
|
|
80
|
+
], path, errors);
|
|
81
|
+
if (!canonicalString(value.name)) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.name`, 'must be a non-empty trimmed string.');
|
|
82
|
+
if (router && !canonicalString(value.coreName)) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.coreName`, 'must be a non-empty trimmed string.');
|
|
83
|
+
for (const field of router ? [
|
|
84
|
+
'version',
|
|
85
|
+
'coreVersion'
|
|
86
|
+
] : [
|
|
87
|
+
'version'
|
|
88
|
+
])if (!canonicalString(value[field]) || !(exactPackageVersion.test(value[field]) || hydration && /^[1-9]\d*$/.test(value[field]))) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.${field}`, 'must be an exact version.');
|
|
89
|
+
};
|
|
90
|
+
const validateRendererRouterPackageIdentity = (value, path = 'routerPackage')=>{
|
|
91
|
+
const errors = [];
|
|
92
|
+
validatePackageIdentity(value, path, errors, true);
|
|
93
|
+
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
94
|
+
};
|
|
95
|
+
const validateRendererProfile = (value, path = 'rendererProfile')=>{
|
|
96
|
+
const errors = [];
|
|
97
|
+
if (!(0, external_validation_core_js_namespaceObject.isRecord)(value)) {
|
|
98
|
+
(0, external_validation_core_js_namespaceObject.addError)(errors, path, 'must be an object.');
|
|
99
|
+
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
100
|
+
}
|
|
101
|
+
exactFields(value, [
|
|
102
|
+
'renderer',
|
|
103
|
+
'protocolVersion',
|
|
104
|
+
'compiler',
|
|
105
|
+
'hydration',
|
|
106
|
+
'router'
|
|
107
|
+
], path, errors);
|
|
108
|
+
validateRenderer(value, path, errors);
|
|
109
|
+
validatePackageIdentity(value.compiler, `${path}.compiler`, errors);
|
|
110
|
+
validatePackageIdentity(value.hydration, `${path}.hydration`, errors, false, true);
|
|
111
|
+
validatePackageIdentity(value.router, `${path}.router`, errors, true);
|
|
112
|
+
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
113
|
+
};
|
|
114
|
+
const validateRendererProfileCompatibility = (expected, actual, path = 'rendererProfile')=>{
|
|
115
|
+
const errors = [
|
|
116
|
+
...validateRendererProfile(expected, `${path}.expected`).errors,
|
|
117
|
+
...validateRendererProfile(actual, `${path}.actual`).errors
|
|
118
|
+
];
|
|
119
|
+
if (errors.length || !(0, external_validation_core_js_namespaceObject.isRecord)(expected) || !(0, external_validation_core_js_namespaceObject.isRecord)(actual)) return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
120
|
+
if (expected.renderer !== actual.renderer) {
|
|
121
|
+
(0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.renderer`, 'cross-renderer components are unsupported.');
|
|
122
|
+
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
123
|
+
}
|
|
124
|
+
if (expected.protocolVersion !== actual.protocolVersion) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.protocolVersion`, 'must match the consuming renderer protocol.');
|
|
125
|
+
for (const field of [
|
|
126
|
+
'compiler',
|
|
127
|
+
'hydration',
|
|
128
|
+
'router'
|
|
129
|
+
]){
|
|
130
|
+
const expectedPackage = expected[field];
|
|
131
|
+
const actualPackage = actual[field];
|
|
132
|
+
for (const identityField of 'router' === field ? [
|
|
133
|
+
'name',
|
|
134
|
+
'version',
|
|
135
|
+
'coreName',
|
|
136
|
+
'coreVersion'
|
|
137
|
+
] : [
|
|
138
|
+
'name',
|
|
139
|
+
'version'
|
|
140
|
+
])if (expectedPackage[identityField] !== actualPackage[identityField]) (0, external_validation_core_js_namespaceObject.addError)(errors, `${path}.${field}.${identityField}`, 'must match the consuming renderer profile.');
|
|
141
|
+
}
|
|
142
|
+
return (0, external_validation_core_js_namespaceObject.validationResult)(errors);
|
|
143
|
+
};
|
|
144
|
+
const assertRendererProfileCompatibility = (expected, actual)=>{
|
|
145
|
+
const result = validateRendererProfileCompatibility(expected, actual);
|
|
146
|
+
if (!result.ok) throw new Error((0, external_validation_core_js_namespaceObject.formatBackendFederationValidationErrors)(result.errors));
|
|
147
|
+
};
|
|
148
|
+
exports.RENDERER_PROTOCOL_VERSION = __webpack_exports__.RENDERER_PROTOCOL_VERSION;
|
|
149
|
+
exports.assertRendererProfileCompatibility = __webpack_exports__.assertRendererProfileCompatibility;
|
|
150
|
+
exports.validateRendererIdentity = __webpack_exports__.validateRendererIdentity;
|
|
151
|
+
exports.validateRendererProfile = __webpack_exports__.validateRendererProfile;
|
|
152
|
+
exports.validateRendererProfileCompatibility = __webpack_exports__.validateRendererProfileCompatibility;
|
|
153
|
+
exports.validateRendererRouterPackageIdentity = __webpack_exports__.validateRendererRouterPackageIdentity;
|
|
154
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
155
|
+
"RENDERER_PROTOCOL_VERSION",
|
|
156
|
+
"assertRendererProfileCompatibility",
|
|
157
|
+
"validateRendererIdentity",
|
|
158
|
+
"validateRendererProfile",
|
|
159
|
+
"validateRendererProfileCompatibility",
|
|
160
|
+
"validateRendererRouterPackageIdentity"
|
|
161
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
162
|
+
Object.defineProperty(exports, '__esModule', {
|
|
163
|
+
value: true
|
|
164
|
+
});
|