@bleedingdev/modern-js-plugin-bff-extensions 3.9.0-ultramodern.4 → 3.9.0-ultramodern.5
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/edge.js +6 -6
- package/dist/cjs/backend-federation/index.js +5 -5
- package/dist/cjs/backend-federation/load.js +2 -2
- package/dist/cjs/backend-federation-manifest/metadata.js +3 -3
- package/dist/cjs/backend-federation-manifest/remote.js +2 -2
- package/dist/cjs/backend-federation-manifest/validation.js +3 -3
- package/dist/cjs/client-generator/rendering.js +4 -4
- package/dist/cjs/cross-project-policy/evaluation.js +3 -3
- package/dist/cjs/cross-project-policy/node.js +4 -3
- package/dist/cjs/cross-project-policy/producer-runtime.js +58 -0
- package/dist/cjs/effect-adapter/entry.js +1 -0
- package/dist/cjs/effect-adapter/index.js +9 -2
- package/dist/cjs/effect-source-loader/loader.js +6 -4
- package/dist/cjs/effect-source-loader/rspack-loader.js +89 -0
- package/dist/cjs/effect-source-loader/worker-runtime-wrapper.js +2 -30
- package/dist/cjs/hono/cross-project-policy.js +2 -1
- package/dist/cjs/hono/node.js +51 -0
- package/dist/esm/backend-federation/edge.mjs +1 -1
- package/dist/esm/backend-federation/index.mjs +1 -1
- package/dist/esm/backend-federation/load.mjs +1 -1
- package/dist/esm/backend-federation-manifest/metadata.mjs +1 -1
- package/dist/esm/backend-federation-manifest/remote.mjs +1 -1
- package/dist/esm/backend-federation-manifest/validation.mjs +1 -1
- package/dist/esm/client-generator/rendering.mjs +2 -2
- package/dist/esm/cross-project-policy/evaluation.mjs +1 -1
- package/dist/esm/cross-project-policy/node.mjs +2 -1
- package/dist/esm/cross-project-policy/producer-runtime.mjs +20 -0
- package/dist/esm/effect-adapter/entry.mjs +1 -0
- package/dist/esm/effect-adapter/index.mjs +5 -1
- package/dist/esm/effect-source-loader/loader.mjs +6 -4
- package/dist/esm/effect-source-loader/rspack-loader.mjs +51 -0
- package/dist/esm/effect-source-loader/worker-runtime-wrapper.mjs +2 -30
- package/dist/esm/hono/cross-project-policy.mjs +2 -1
- package/dist/esm-node/backend-federation/edge.mjs +1 -1
- package/dist/esm-node/backend-federation/index.mjs +1 -1
- package/dist/esm-node/backend-federation/load.mjs +1 -1
- package/dist/esm-node/backend-federation-manifest/metadata.mjs +1 -1
- package/dist/esm-node/backend-federation-manifest/remote.mjs +1 -1
- package/dist/esm-node/backend-federation-manifest/validation.mjs +1 -1
- package/dist/esm-node/client-generator/rendering.mjs +2 -2
- package/dist/esm-node/cross-project-policy/evaluation.mjs +1 -1
- package/dist/esm-node/cross-project-policy/node.mjs +2 -1
- package/dist/esm-node/cross-project-policy/producer-runtime.mjs +21 -0
- package/dist/esm-node/effect-adapter/entry.mjs +1 -0
- package/dist/esm-node/effect-adapter/index.mjs +5 -1
- package/dist/esm-node/effect-source-loader/loader.mjs +6 -4
- package/dist/esm-node/effect-source-loader/rspack-loader.mjs +53 -0
- package/dist/esm-node/effect-source-loader/worker-runtime-wrapper.mjs +2 -30
- package/dist/esm-node/hono/cross-project-policy.mjs +2 -1
- package/dist/esm-node/hono/node.mjs +14 -0
- package/dist/types/backend-federation/edge.d.ts +1 -1
- package/dist/types/backend-federation/index.d.ts +1 -1
- package/dist/types/backend-federation/types.d.ts +1 -1
- package/dist/types/client-generator/rendering.d.ts +1 -1
- package/dist/types/client-generator/types.d.ts +1 -1
- package/dist/types/cross-project-policy/evaluation.d.ts +1 -1
- package/dist/types/cross-project-policy/node.d.ts +2 -1
- package/dist/types/cross-project-policy/producer-runtime.d.ts +20 -0
- package/dist/types/effect-adapter/entry.d.ts +1 -0
- package/dist/types/effect-adapter/index.d.ts +2 -0
- package/dist/types/effect-source-loader/rspack-loader.d.ts +23 -0
- package/dist/types/hono/node.d.ts +4 -0
- package/package.json +48 -8
- package/src/backend-federation/edge.ts +1 -1
- package/src/backend-federation/index.ts +1 -1
- package/src/backend-federation/load.ts +1 -1
- package/src/backend-federation/types.ts +1 -1
- package/src/backend-federation-manifest/metadata.ts +1 -1
- package/src/backend-federation-manifest/remote.ts +1 -1
- package/src/backend-federation-manifest/validation.ts +1 -1
- package/src/client-generator/rendering.ts +6 -6
- package/src/client-generator/types.ts +1 -1
- package/src/cross-project-policy/evaluation.ts +1 -1
- package/src/cross-project-policy/node.ts +3 -3
- package/src/cross-project-policy/producer-runtime.ts +43 -0
- package/src/effect-adapter/entry.ts +1 -0
- package/src/effect-adapter/index.ts +5 -0
- package/src/effect-source-loader/loader.ts +29 -23
- package/src/effect-source-loader/rspack-loader.ts +102 -0
- package/src/effect-source-loader/worker-runtime-wrapper.ts +2 -30
- package/src/hono/cross-project-policy.ts +2 -1
- package/src/hono/node.ts +24 -0
|
@@ -28,16 +28,16 @@ var __webpack_require__ = {};
|
|
|
28
28
|
var __webpack_exports__ = {};
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
-
BACKEND_FEDERATION_CONTRACT_VERSION: ()=>
|
|
32
|
-
BACKEND_FEDERATION_EFFECT_EXPOSE: ()=>
|
|
33
|
-
BACKEND_FEDERATION_MANIFEST_FILE: ()=>
|
|
34
|
-
BACKEND_FEDERATION_NODE_ADAPTER_VERSION: ()=>
|
|
31
|
+
BACKEND_FEDERATION_CONTRACT_VERSION: ()=>backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_CONTRACT_VERSION,
|
|
32
|
+
BACKEND_FEDERATION_EFFECT_EXPOSE: ()=>backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE,
|
|
33
|
+
BACKEND_FEDERATION_MANIFEST_FILE: ()=>backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_MANIFEST_FILE,
|
|
34
|
+
BACKEND_FEDERATION_NODE_ADAPTER_VERSION: ()=>backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_NODE_ADAPTER_VERSION,
|
|
35
35
|
createBackendFederationLoadEntryPlugin: ()=>external_edge_runtime_js_namespaceObject.createBackendFederationLoadEntryPlugin,
|
|
36
36
|
createBackendFederationRuntime: ()=>external_edge_runtime_js_namespaceObject.createBackendFederationRuntime,
|
|
37
37
|
loadBackendFederatedEffectApi: ()=>loadBackendFederatedEffectApi,
|
|
38
38
|
validateExpectedBackendFederationIdentity: ()=>external_identity_js_namespaceObject.validateExpectedBackendFederationIdentity
|
|
39
39
|
});
|
|
40
|
-
const
|
|
40
|
+
const backend_federation_contracts_namespaceObject = require("@modern-js/backend-federation-contracts");
|
|
41
41
|
const external_edge_runtime_js_namespaceObject = require("./edge-runtime.js");
|
|
42
42
|
const external_legacy_warning_js_namespaceObject = require("./legacy-warning.js");
|
|
43
43
|
const external_utils_js_namespaceObject = require("./utils.js");
|
|
@@ -47,7 +47,7 @@ function loadBackendFederatedEffectApi(options) {
|
|
|
47
47
|
const remoteName = options.remote?.name ?? options.remoteName;
|
|
48
48
|
if (void 0 === remoteName || 0 === remoteName.length) return Promise.reject(new Error('[BFF][Effect] Missing backend federation remote name.'));
|
|
49
49
|
if (void 0 === options.expected) console.warn(external_legacy_warning_js_namespaceObject.LEGACY_LOAD_WARNING);
|
|
50
|
-
const expose = options.expose ?? options.remote?.expose ??
|
|
50
|
+
const expose = options.expose ?? options.remote?.expose ?? backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE;
|
|
51
51
|
const remoteRequest = `${remoteName}/${(0, external_utils_js_namespaceObject.normalizeExpose)(expose)}`;
|
|
52
52
|
let runtime;
|
|
53
53
|
try {
|
|
@@ -28,15 +28,15 @@ var __webpack_require__ = {};
|
|
|
28
28
|
var __webpack_exports__ = {};
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
-
BACKEND_FEDERATION_CONTRACT_VERSION: ()=>
|
|
32
|
-
BACKEND_FEDERATION_EFFECT_EXPOSE: ()=>
|
|
33
|
-
BACKEND_FEDERATION_MANIFEST_FILE: ()=>
|
|
34
|
-
BACKEND_FEDERATION_NODE_ADAPTER_VERSION: ()=>
|
|
31
|
+
BACKEND_FEDERATION_CONTRACT_VERSION: ()=>backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_CONTRACT_VERSION,
|
|
32
|
+
BACKEND_FEDERATION_EFFECT_EXPOSE: ()=>backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE,
|
|
33
|
+
BACKEND_FEDERATION_MANIFEST_FILE: ()=>backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_MANIFEST_FILE,
|
|
34
|
+
BACKEND_FEDERATION_NODE_ADAPTER_VERSION: ()=>backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_NODE_ADAPTER_VERSION,
|
|
35
35
|
createBackendFederationLoadEntryPlugin: ()=>external_plugin_js_namespaceObject.createBackendFederationLoadEntryPlugin,
|
|
36
36
|
createBackendFederationRuntime: ()=>external_runtime_js_namespaceObject.createBackendFederationRuntime,
|
|
37
37
|
validateExpectedBackendFederationIdentity: ()=>external_identity_js_namespaceObject.validateExpectedBackendFederationIdentity
|
|
38
38
|
});
|
|
39
|
-
const
|
|
39
|
+
const backend_federation_contracts_namespaceObject = require("@modern-js/backend-federation-contracts");
|
|
40
40
|
const external_identity_js_namespaceObject = require("./identity.js");
|
|
41
41
|
const external_plugin_js_namespaceObject = require("./plugin.js");
|
|
42
42
|
const external_runtime_js_namespaceObject = require("./runtime.js");
|
|
@@ -30,7 +30,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
31
|
loadBackendFederatedEffectApi: ()=>loadBackendFederatedEffectApi
|
|
32
32
|
});
|
|
33
|
-
const
|
|
33
|
+
const backend_federation_contracts_namespaceObject = require("@modern-js/backend-federation-contracts");
|
|
34
34
|
const Effect_namespaceObject = require("effect/Effect");
|
|
35
35
|
const Logger_namespaceObject = require("effect/Logger");
|
|
36
36
|
const external_legacy_warning_js_namespaceObject = require("./legacy-warning.js");
|
|
@@ -54,7 +54,7 @@ function loadBackendFederatedEffectApi(options) {
|
|
|
54
54
|
if (void 0 !== configuredRemote.verification || options.entryPolicy?.expected !== void 0) return Promise.reject(new Error('[BFF][Effect] A custom Module Federation runtime cannot bypass verified backend entry loading.'));
|
|
55
55
|
}
|
|
56
56
|
const runtime = options.runtime ?? (0, external_runtime_js_namespaceObject.createBackendFederationRuntime)(options);
|
|
57
|
-
const expose = options.expose ?? options.remote?.expose ??
|
|
57
|
+
const expose = options.expose ?? options.remote?.expose ?? backend_federation_contracts_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE;
|
|
58
58
|
const remoteRequest = `${remoteName}/${(0, external_utils_js_namespaceObject.normalizeExpose)(expose)}`;
|
|
59
59
|
return runtime.loadRemote(remoteRequest).then((loaded)=>(0, external_validate_loaded_js_namespaceObject.validateLoadedBackendFederatedEffectApi)(loaded, {
|
|
60
60
|
allowMissingIdentityMetadata: options.allowMissingIdentityMetadata,
|
|
@@ -37,7 +37,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
37
37
|
stringValue: ()=>stringValue,
|
|
38
38
|
versionBoundaryMetadata: ()=>versionBoundaryMetadata
|
|
39
39
|
});
|
|
40
|
-
const
|
|
40
|
+
const backend_federation_contracts_namespaceObject = require("@modern-js/backend-federation-contracts");
|
|
41
41
|
function stringValue(value) {
|
|
42
42
|
return 'string' == typeof value && value.length > 0 ? value : void 0;
|
|
43
43
|
}
|
|
@@ -64,10 +64,10 @@ function resolveRemoteEntryFromMetadata(manifest) {
|
|
|
64
64
|
].filter(Boolean).join('/');
|
|
65
65
|
}
|
|
66
66
|
function backendFederationMetadata(manifest) {
|
|
67
|
-
return (0,
|
|
67
|
+
return (0, backend_federation_contracts_namespaceObject.backendFederationMetadata)(manifest);
|
|
68
68
|
}
|
|
69
69
|
function versionBoundaryMetadata(manifest) {
|
|
70
|
-
return (0,
|
|
70
|
+
return (0, backend_federation_contracts_namespaceObject.backendFederationVersionBoundary)(manifest);
|
|
71
71
|
}
|
|
72
72
|
function deliveryUnitMetadata(record) {
|
|
73
73
|
return recordField(record, 'deliveryUnit');
|
|
@@ -30,8 +30,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
31
|
resolveBackendFederationRemoteFromManifest: ()=>resolveBackendFederationRemoteFromManifest
|
|
32
32
|
});
|
|
33
|
+
const backend_federation_contracts_namespaceObject = require("@modern-js/backend-federation-contracts");
|
|
33
34
|
const backend_federation_security_namespaceObject = require("@modern-js/server-runtime-extensions/backend-federation-security");
|
|
34
|
-
const universal_namespaceObject = require("@modern-js/utils/universal");
|
|
35
35
|
const index_js_namespaceObject = require("../backend-federation/index.js");
|
|
36
36
|
const external_errors_js_namespaceObject = require("./errors.js");
|
|
37
37
|
const external_metadata_js_namespaceObject = require("./metadata.js");
|
|
@@ -44,7 +44,7 @@ function resolveBackendFederationRemoteFromManifest(manifest, remoteOverride = {
|
|
|
44
44
|
const manifestEntryUrl = (0, external_metadata_js_namespaceObject.stringValue)(backendFederation?.containerEntry) ?? (0, external_metadata_js_namespaceObject.stringValue)(entry?.url) ?? (0, external_metadata_js_namespaceObject.resolveRemoteEntryFromMetadata)(manifest);
|
|
45
45
|
const remoteEntryUrl = remoteOverride.entry ?? manifestEntryUrl;
|
|
46
46
|
const remoteType = remoteOverride.type ?? (0, external_metadata_js_namespaceObject.stringValue)(backendFederation?.remoteType) ?? (0, external_metadata_js_namespaceObject.stringValue)(entry?.type) ?? (0, external_metadata_js_namespaceObject.stringValue)(remoteEntry?.type) ?? 'module';
|
|
47
|
-
const expose = remoteOverride.expose ?? (0,
|
|
47
|
+
const expose = remoteOverride.expose ?? (0, backend_federation_contracts_namespaceObject.backendFederationExposeNames)(backendFederation)[0] ?? index_js_namespaceObject.BACKEND_FEDERATION_EFFECT_EXPOSE;
|
|
48
48
|
let verification;
|
|
49
49
|
try {
|
|
50
50
|
const manifestVerification = (0, backend_federation_security_namespaceObject.resolveBackendFederationRemoteEntryVerification)(manifest);
|
|
@@ -32,7 +32,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
32
32
|
validateBackendFederationManifest: ()=>validateBackendFederationManifest,
|
|
33
33
|
validateLoadedBackendFederationContract: ()=>validateLoadedBackendFederationContract
|
|
34
34
|
});
|
|
35
|
-
const
|
|
35
|
+
const backend_federation_contracts_namespaceObject = require("@modern-js/backend-federation-contracts");
|
|
36
36
|
const index_js_namespaceObject = require("../backend-federation/index.js");
|
|
37
37
|
const external_errors_js_namespaceObject = require("./errors.js");
|
|
38
38
|
const external_metadata_js_namespaceObject = require("./metadata.js");
|
|
@@ -48,12 +48,12 @@ function validateBackendFederationManifest(manifest, expected = {}) {
|
|
|
48
48
|
const expectedBuildMarker = resolveExpectedBuildMarker(expected);
|
|
49
49
|
const backendFederation = (0, external_metadata_js_namespaceObject.backendFederationMetadata)(manifest);
|
|
50
50
|
(0, external_errors_js_namespaceObject.assertManifestAdapter)(backendFederation, 'manifest_invalid', '[BFF][Effect] Backend federation manifest must declare backendFederation metadata.');
|
|
51
|
-
const manifestShape = (0,
|
|
51
|
+
const manifestShape = (0, backend_federation_contracts_namespaceObject.validateBackendFederationManifest)(manifest, {
|
|
52
52
|
expectedContractVersion: false,
|
|
53
53
|
expectedNodeAdapterVersion: false,
|
|
54
54
|
validateDeliveryUnit: false
|
|
55
55
|
});
|
|
56
|
-
(0, external_errors_js_namespaceObject.assertManifestAdapter)(manifestShape.ok, 'manifest_invalid', `[BFF][Effect] Backend federation manifest schema invalid: ${(0,
|
|
56
|
+
(0, external_errors_js_namespaceObject.assertManifestAdapter)(manifestShape.ok, 'manifest_invalid', `[BFF][Effect] Backend federation manifest schema invalid: ${(0, backend_federation_contracts_namespaceObject.formatBackendFederationValidationErrors)(manifestShape.errors)}.`);
|
|
57
57
|
(0, external_errors_js_namespaceObject.assertManifestAdapter)('effect' === backendFederation.runtimeFramework, 'strict_effect_required', '[BFF][Effect] Backend federation manifest must declare runtimeFramework: "effect".');
|
|
58
58
|
(0, external_errors_js_namespaceObject.assertManifestAdapter)(true === backendFederation.strictEffectApproach, 'strict_effect_required', '[BFF][Effect] Backend federation manifest must declare strictEffectApproach: true.');
|
|
59
59
|
(0, external_errors_js_namespaceObject.assertVersionValue)((0, external_metadata_js_namespaceObject.stringValue)(backendFederation.contractVersion), expected.contractVersion ?? index_js_namespaceObject.BACKEND_FEDERATION_CONTRACT_VERSION, 'manifest contractVersion');
|
|
@@ -32,11 +32,11 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
32
32
|
renderEffectClientCode: ()=>renderEffectClientCode,
|
|
33
33
|
renderEffectClientDeclaration: ()=>renderEffectClientDeclaration
|
|
34
34
|
});
|
|
35
|
-
const bff_core_namespaceObject = require("@modern-js/bff-core");
|
|
36
35
|
const effect_namespaceObject = require("@modern-js/bff-effect/effect");
|
|
36
|
+
const node_namespaceObject = require("@modern-js/server-runtime-extensions/bff-policy/node");
|
|
37
37
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
38
38
|
const DEFAULT_REQUEST_CREATOR = '@modern-js/plugin-bff/client';
|
|
39
|
-
const EFFECT_CLIENT_RUNTIME_IMPORT = '@modern-js/
|
|
39
|
+
const EFFECT_CLIENT_RUNTIME_IMPORT = '@modern-js/bff-effect/effect-client-runtime';
|
|
40
40
|
function isAbsoluteUrl(value) {
|
|
41
41
|
try {
|
|
42
42
|
new URL(value);
|
|
@@ -113,7 +113,7 @@ function createEffectClientGeneration(endpoints, options) {
|
|
|
113
113
|
const dataPlatformAppNamespace = void 0 === packageName || '' === packageName ? 'unknown-app' : packageName;
|
|
114
114
|
const requestId = 'bundle' === options.target ? void 0 !== options.requestId && '' !== options.requestId.trim() ? options.requestId.trim() : void 0 !== packageName && '' !== packageName ? packageName : void 0 : void 0;
|
|
115
115
|
const normalizedRequestId = void 0 === requestId || '' === requestId ? 'default' : requestId;
|
|
116
|
-
const operationVersion = (0,
|
|
116
|
+
const operationVersion = (0, node_namespaceObject.deriveOperationVersion)(packageInfo.version);
|
|
117
117
|
const batchConfig = options.dataPlatformBatch;
|
|
118
118
|
const batchEndpoint = resolveBatchEndpoint(options.prefix, batchConfig?.endpoint);
|
|
119
119
|
const manifest = {
|
|
@@ -151,7 +151,7 @@ function createEffectClientGeneration(endpoints, options) {
|
|
|
151
151
|
return {
|
|
152
152
|
config,
|
|
153
153
|
manifest,
|
|
154
|
-
operationContracts: (0,
|
|
154
|
+
operationContracts: (0, node_namespaceObject.buildOperationContractMap)({
|
|
155
155
|
handlers: (0, effect_namespaceObject.toOperationContractSources)(endpoints),
|
|
156
156
|
requestId: normalizedRequestId,
|
|
157
157
|
operationVersion
|
|
@@ -31,13 +31,13 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
31
31
|
checkCrossProjectPolicyForRequest: ()=>checkCrossProjectPolicyForRequest,
|
|
32
32
|
checkCrossProjectPolicyResponse: ()=>checkCrossProjectPolicyResponse
|
|
33
33
|
});
|
|
34
|
-
const
|
|
34
|
+
const bff_policy_namespaceObject = require("@modern-js/server-runtime-extensions/bff-policy");
|
|
35
35
|
const DENIAL_HEADERS = {
|
|
36
36
|
'content-type': 'application/json; charset=utf-8'
|
|
37
37
|
};
|
|
38
38
|
const checkCrossProjectPolicyResponse = (headers, policy, observedRequest)=>{
|
|
39
39
|
if (!policy?.enabled) return null;
|
|
40
|
-
const violation = (0,
|
|
40
|
+
const violation = (0, bff_policy_namespaceObject.evaluateCrossProjectPolicy)(headers, policy, observedRequest);
|
|
41
41
|
if (!violation) return null;
|
|
42
42
|
return new Response(JSON.stringify({
|
|
43
43
|
code: violation.code,
|
|
@@ -54,7 +54,7 @@ const checkCrossProjectPolicyForRequest = (request, policy)=>{
|
|
|
54
54
|
method: request.method,
|
|
55
55
|
pathname: new URL(request.url).pathname
|
|
56
56
|
};
|
|
57
|
-
const observedRequest = (0,
|
|
57
|
+
const observedRequest = (0, bff_policy_namespaceObject.resolveCrossProjectRequestObservation)(requestTarget, policy) ?? {
|
|
58
58
|
method: requestTarget.method,
|
|
59
59
|
routePath: requestTarget.pathname
|
|
60
60
|
};
|
|
@@ -42,7 +42,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
42
42
|
const external_node_fs_namespaceObject = require("node:fs");
|
|
43
43
|
const external_node_path_namespaceObject = require("node:path");
|
|
44
44
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
45
|
-
|
|
45
|
+
require("@modern-js/server-runtime-extensions/server-config");
|
|
46
|
+
const node_namespaceObject = require("@modern-js/server-runtime-extensions/bff-policy/node");
|
|
46
47
|
const readNearestPackageVersion = (startDir)=>{
|
|
47
48
|
if (!startDir) return;
|
|
48
49
|
let current = external_node_path_default().resolve(startDir);
|
|
@@ -59,12 +60,12 @@ const readNearestPackageVersion = (startDir)=>{
|
|
|
59
60
|
const resolveAdapterCrossProjectPolicy = (api, handlers)=>{
|
|
60
61
|
const bff = api.getServerConfig()?.bff;
|
|
61
62
|
const { apiDirectory, appDirectory } = api.getServerContext();
|
|
62
|
-
return (0,
|
|
63
|
+
return (0, node_namespaceObject.resolveCrossProjectPolicy)({
|
|
63
64
|
crossProjectPolicy: bff?.crossProjectPolicy,
|
|
64
65
|
handlers,
|
|
65
66
|
requestId: bff?.requestId,
|
|
66
67
|
isCrossProjectServer: bff?.isCrossProjectServer,
|
|
67
|
-
operationVersion: (0,
|
|
68
|
+
operationVersion: (0, node_namespaceObject.deriveOperationVersion)(readNearestPackageVersion(apiDirectory) ?? readNearestPackageVersion(appDirectory))
|
|
68
69
|
});
|
|
69
70
|
};
|
|
70
71
|
exports.resolveAdapterCrossProjectPolicy = __webpack_exports__.resolveAdapterCrossProjectPolicy;
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
function createProducerClient(configure, { requestId }) {
|
|
31
|
+
return (options)=>configure({
|
|
32
|
+
requestId,
|
|
33
|
+
requireEnvelope: true,
|
|
34
|
+
...options,
|
|
35
|
+
identityBinding: {
|
|
36
|
+
enabled: true,
|
|
37
|
+
strict: true,
|
|
38
|
+
...options?.identityBinding
|
|
39
|
+
},
|
|
40
|
+
operationContract: {
|
|
41
|
+
enabled: true,
|
|
42
|
+
strict: true,
|
|
43
|
+
requireSchemaHash: true,
|
|
44
|
+
requireOperationVersion: true,
|
|
45
|
+
...options?.operationContract
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
50
|
+
createProducerClient: ()=>createProducerClient
|
|
51
|
+
});
|
|
52
|
+
exports.createProducerClient = __webpack_exports__.createProducerClient;
|
|
53
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
54
|
+
"createProducerClient"
|
|
55
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
56
|
+
Object.defineProperty(exports, '__esModule', {
|
|
57
|
+
value: true
|
|
58
|
+
});
|
|
@@ -41,6 +41,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
41
41
|
});
|
|
42
42
|
const external_node_path_namespaceObject = require("node:path");
|
|
43
43
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
44
|
+
require("@modern-js/server-runtime-extensions/server-config");
|
|
44
45
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
45
46
|
const JS_OR_TS_EXTS = [
|
|
46
47
|
'.js',
|
|
@@ -37,10 +37,12 @@ var __webpack_require__ = {};
|
|
|
37
37
|
var __webpack_exports__ = {};
|
|
38
38
|
__webpack_require__.r(__webpack_exports__);
|
|
39
39
|
__webpack_require__.d(__webpack_exports__, {
|
|
40
|
-
EffectAdapter: ()=>EffectAdapter
|
|
40
|
+
EffectAdapter: ()=>EffectAdapter,
|
|
41
|
+
createRuntimeAdapters: ()=>createRuntimeAdapters
|
|
41
42
|
});
|
|
42
43
|
const external_node_path_namespaceObject = require("node:path");
|
|
43
44
|
var external_node_path_default = /*#__PURE__*/ __webpack_require__.n(external_node_path_namespaceObject);
|
|
45
|
+
require("@modern-js/server-runtime-extensions/server-config");
|
|
44
46
|
const effect_namespaceObject = require("@modern-js/bff-effect/effect");
|
|
45
47
|
const runtime_lifecycle_namespaceObject = require("@modern-js/server-runtime-extensions/runtime-lifecycle");
|
|
46
48
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
@@ -178,9 +180,14 @@ class EffectAdapter {
|
|
|
178
180
|
this.api = api;
|
|
179
181
|
}
|
|
180
182
|
}
|
|
183
|
+
const createRuntimeAdapters = (api)=>[
|
|
184
|
+
new EffectAdapter(api)
|
|
185
|
+
];
|
|
181
186
|
exports.EffectAdapter = __webpack_exports__.EffectAdapter;
|
|
187
|
+
exports.createRuntimeAdapters = __webpack_exports__.createRuntimeAdapters;
|
|
182
188
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
183
|
-
"EffectAdapter"
|
|
189
|
+
"EffectAdapter",
|
|
190
|
+
"createRuntimeAdapters"
|
|
184
191
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
185
192
|
Object.defineProperty(exports, '__esModule', {
|
|
186
193
|
value: true
|
|
@@ -93,16 +93,18 @@ function preserveSourceModuleSemantics() {
|
|
|
93
93
|
name: 'modern-js-effect-source-semantics',
|
|
94
94
|
setup (buildApi) {
|
|
95
95
|
buildApi.onLoad({
|
|
96
|
-
filter: /\.[cm]?[jt]sx
|
|
96
|
+
filter: /\.[cm]?[jt]sx?$/,
|
|
97
|
+
namespace: 'file'
|
|
97
98
|
}, async (args)=>{
|
|
98
99
|
const loader = sourceLoader(args);
|
|
99
100
|
if (!loader) return;
|
|
100
101
|
const source = await external_node_fs_default().promises.readFile(args.path, 'utf8');
|
|
102
|
+
const canonicalSourcePath = await external_node_fs_default().promises.realpath(args.path);
|
|
101
103
|
const compiled = await (0, external_esbuild_namespaceObject.transform)(source, {
|
|
102
104
|
define: {
|
|
103
|
-
__dirname: JSON.stringify(external_node_path_default().dirname(
|
|
104
|
-
__filename: JSON.stringify(
|
|
105
|
-
'import.meta.url': JSON.stringify((0, external_node_url_namespaceObject.pathToFileURL)(
|
|
105
|
+
__dirname: JSON.stringify(external_node_path_default().dirname(canonicalSourcePath)),
|
|
106
|
+
__filename: JSON.stringify(canonicalSourcePath),
|
|
107
|
+
'import.meta.url': JSON.stringify((0, external_node_url_namespaceObject.pathToFileURL)(canonicalSourcePath).href)
|
|
106
108
|
},
|
|
107
109
|
jsx: 'automatic',
|
|
108
110
|
loader,
|
|
@@ -0,0 +1,89 @@
|
|
|
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
|
+
default: ()=>loader
|
|
32
|
+
});
|
|
33
|
+
const external_node_fs_namespaceObject = require("node:fs");
|
|
34
|
+
const external_index_js_namespaceObject = require("./index.js");
|
|
35
|
+
async function loader(source) {
|
|
36
|
+
this.cacheable();
|
|
37
|
+
delete require.cache[this.resourcePath];
|
|
38
|
+
const callback = this.async();
|
|
39
|
+
try {
|
|
40
|
+
const options = this.getOptions();
|
|
41
|
+
const entry = (0, external_index_js_namespaceObject.resolveEffectEntryFile)(options);
|
|
42
|
+
if (!entry || (0, external_node_fs_namespaceObject.realpathSync)(entry) !== (0, external_node_fs_namespaceObject.realpathSync)(this.resourcePath)) throw new Error(`Unexpected Effect BFF loader resource: ${this.resourcePath}`);
|
|
43
|
+
const query = new URLSearchParams(this.resourceQuery);
|
|
44
|
+
if (query.has('modern-bff-runtime-source')) {
|
|
45
|
+
const { transform } = await import("@swc/core");
|
|
46
|
+
const transformed = await transform(source, {
|
|
47
|
+
filename: this.resourcePath,
|
|
48
|
+
sourceMaps: false,
|
|
49
|
+
jsc: {
|
|
50
|
+
parser: {
|
|
51
|
+
syntax: "typescript",
|
|
52
|
+
tsx: /\.[jt]sx$/.test(this.resourcePath)
|
|
53
|
+
},
|
|
54
|
+
target: 'es2024'
|
|
55
|
+
},
|
|
56
|
+
module: {
|
|
57
|
+
type: 'es6'
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
callback(void 0, await (0, external_index_js_namespaceObject.bundleEffectWorkerRuntimeSource)(transformed.code, this.resourcePath, this));
|
|
61
|
+
} else if (query.has('modern-bff-runtime')) callback(void 0, await (0, external_index_js_namespaceObject.generateEffectWorkerRuntimeWrapper)(this, options, this.resourcePath));
|
|
62
|
+
else {
|
|
63
|
+
const code = await (0, external_index_js_namespaceObject.generateEffectClientCode)({
|
|
64
|
+
appDir: options.appDir,
|
|
65
|
+
apiDir: options.apiDir,
|
|
66
|
+
resourcePath: this.resourcePath,
|
|
67
|
+
prefix: options.prefix,
|
|
68
|
+
port: Number(options.port),
|
|
69
|
+
target: options.target,
|
|
70
|
+
requestId: options.requestId,
|
|
71
|
+
requestCreator: options.requestCreator,
|
|
72
|
+
httpMethodDecider: options.httpMethodDecider,
|
|
73
|
+
dataPlatformBatch: options.effectDataPlatformBatch,
|
|
74
|
+
onDependency: (dependency)=>this.addDependency(dependency)
|
|
75
|
+
});
|
|
76
|
+
if (null === code) throw new Error(`Failed to generate Effect client for ${this.resourcePath}`);
|
|
77
|
+
callback(void 0, code);
|
|
78
|
+
}
|
|
79
|
+
} catch (error) {
|
|
80
|
+
callback(error instanceof Error ? error : new Error(String(error)));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports["default"] = __webpack_exports__["default"];
|
|
84
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
85
|
+
"default"
|
|
86
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
87
|
+
Object.defineProperty(exports, '__esModule', {
|
|
88
|
+
value: true
|
|
89
|
+
});
|
|
@@ -45,36 +45,8 @@ async function generateEffectWorkerRuntimeWrapper(loader, options, resourcePath)
|
|
|
45
45
|
const sourceRequest = `${resourcePath}?modern-bff-runtime-source`;
|
|
46
46
|
const operationContracts = artifacts?.operationContracts ?? {};
|
|
47
47
|
return `import * as effectBffModule from ${JSON.stringify(sourceRequest)};
|
|
48
|
-
import {
|
|
49
|
-
|
|
50
|
-
const __generatedOperationContracts = ${JSON.stringify(operationContracts)};
|
|
51
|
-
|
|
52
|
-
const __mergeGeneratedOperationContracts = policy => {
|
|
53
|
-
if (
|
|
54
|
-
!policy ||
|
|
55
|
-
!policy.expectedOperationContracts ||
|
|
56
|
-
typeof policy.expectedOperationContracts !== 'object' ||
|
|
57
|
-
Array.isArray(policy.expectedOperationContracts)
|
|
58
|
-
) {
|
|
59
|
-
return policy;
|
|
60
|
-
}
|
|
61
|
-
return {
|
|
62
|
-
...policy,
|
|
63
|
-
expectedOperationContracts: {
|
|
64
|
-
...policy.expectedOperationContracts,
|
|
65
|
-
...__generatedOperationContracts,
|
|
66
|
-
},
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export const __modern_create_effect_bff_dispatcher = options =>
|
|
71
|
-
createEffectBffEdgeDispatcher({
|
|
72
|
-
...options,
|
|
73
|
-
crossProjectPolicy: __mergeGeneratedOperationContracts(
|
|
74
|
-
options?.crossProjectPolicy,
|
|
75
|
-
),
|
|
76
|
-
module: effectBffModule,
|
|
77
|
-
});
|
|
48
|
+
import { createEffectBffEdgeDispatcherFactory } from '@modern-js/bff-effect/effect-edge';
|
|
49
|
+
export const __modern_create_effect_bff_dispatcher = createEffectBffEdgeDispatcherFactory(effectBffModule, ${JSON.stringify(operationContracts)});
|
|
78
50
|
`;
|
|
79
51
|
}
|
|
80
52
|
async function generateEffectClientCode(options) {
|
|
@@ -37,7 +37,8 @@ const createHonoCrossProjectPolicyMiddleware = (policy, routePath)=>async functi
|
|
|
37
37
|
routePath
|
|
38
38
|
});
|
|
39
39
|
if (denial) return denial;
|
|
40
|
-
|
|
40
|
+
const result = await next();
|
|
41
|
+
return result instanceof Response ? result : void 0;
|
|
41
42
|
};
|
|
42
43
|
exports.createHonoCrossProjectPolicyMiddleware = __webpack_exports__.createHonoCrossProjectPolicyMiddleware;
|
|
43
44
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
createHonoRouteBinder: ()=>createHonoRouteBinder
|
|
32
|
+
});
|
|
33
|
+
const utils_namespaceObject = require("@modern-js/utils");
|
|
34
|
+
const node_js_namespaceObject = require("../cross-project-policy/node.js");
|
|
35
|
+
const external_bind_route_handlers_js_namespaceObject = require("./bind-route-handlers.js");
|
|
36
|
+
const createHonoRouteBinder = (api, handlers)=>{
|
|
37
|
+
const policy = (0, node_js_namespaceObject.resolveAdapterCrossProjectPolicy)(api, handlers);
|
|
38
|
+
return (options)=>(0, external_bind_route_handlers_js_namespaceObject.bindHonoRouteHandlers)({
|
|
39
|
+
...options,
|
|
40
|
+
policy,
|
|
41
|
+
onError: api.getServerConfig()?.onError,
|
|
42
|
+
reportError: (error)=>utils_namespaceObject.logger.error(error)
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
exports.createHonoRouteBinder = __webpack_exports__.createHonoRouteBinder;
|
|
46
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
47
|
+
"createHonoRouteBinder"
|
|
48
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
49
|
+
Object.defineProperty(exports, '__esModule', {
|
|
50
|
+
value: true
|
|
51
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_MANIFEST_FILE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION } from "@modern-js/
|
|
1
|
+
import { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_MANIFEST_FILE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION } from "@modern-js/backend-federation-contracts";
|
|
2
2
|
import { createBackendFederationLoadEntryPlugin, createBackendFederationRuntime, createBackendFederationRuntimeForLoad } from "./edge-runtime.mjs";
|
|
3
3
|
import { LEGACY_LOAD_WARNING } from "./legacy-warning.mjs";
|
|
4
4
|
import { normalizeExpose } from "./utils.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_MANIFEST_FILE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION } from "@modern-js/
|
|
1
|
+
export { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_EFFECT_EXPOSE, BACKEND_FEDERATION_MANIFEST_FILE, BACKEND_FEDERATION_NODE_ADAPTER_VERSION } from "@modern-js/backend-federation-contracts";
|
|
2
2
|
export { validateExpectedBackendFederationIdentity } from "./identity.mjs";
|
|
3
3
|
export { createBackendFederationLoadEntryPlugin } from "./plugin.mjs";
|
|
4
4
|
export { createBackendFederationRuntime } from "./runtime.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BACKEND_FEDERATION_EFFECT_EXPOSE } from "@modern-js/
|
|
1
|
+
import { BACKEND_FEDERATION_EFFECT_EXPOSE } from "@modern-js/backend-federation-contracts";
|
|
2
2
|
import { LEGACY_LOAD_WARNING } from "./legacy-warning.mjs";
|
|
3
3
|
import { collectRemotes } from "./remotes.mjs";
|
|
4
4
|
import { createBackendFederationRuntime } from "./runtime.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { backendFederationMetadata, backendFederationVersionBoundary } from "@modern-js/
|
|
1
|
+
import { backendFederationMetadata, backendFederationVersionBoundary } from "@modern-js/backend-federation-contracts";
|
|
2
2
|
function stringValue(value) {
|
|
3
3
|
return 'string' == typeof value && value.length > 0 ? value : void 0;
|
|
4
4
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { backendFederationExposeNames } from "@modern-js/backend-federation-contracts";
|
|
1
2
|
import { BackendFederationRemoteEntryError, resolveBackendFederationRemoteEntryVerification } from "@modern-js/server-runtime-extensions/backend-federation-security";
|
|
2
|
-
import { backendFederationExposeNames } from "@modern-js/utils/universal";
|
|
3
3
|
import { BACKEND_FEDERATION_EFFECT_EXPOSE } from "../backend-federation/index.mjs";
|
|
4
4
|
import { BackendFederationManifestAdapterError, assertManifestAdapter } from "./errors.mjs";
|
|
5
5
|
import { backendFederationMetadata, recordField, resolveRemoteEntryFromMetadata, stringValue } from "./metadata.mjs";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { formatBackendFederationValidationErrors, validateBackendFederationManifest } from "@modern-js/
|
|
1
|
+
import { formatBackendFederationValidationErrors, validateBackendFederationManifest } from "@modern-js/backend-federation-contracts";
|
|
2
2
|
import { BACKEND_FEDERATION_CONTRACT_VERSION, BACKEND_FEDERATION_NODE_ADAPTER_VERSION } from "../backend-federation/index.mjs";
|
|
3
3
|
import { BackendFederationManifestAdapterError, assertConsistentValue, assertManifestAdapter, assertVersionValue } from "./errors.mjs";
|
|
4
4
|
import { backendFederationMetadata, manifestDeliveryUnit, recordField, stringValue, versionBoundaryMetadata } from "./metadata.mjs";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { buildOperationContractMap, deriveOperationVersion } from "@modern-js/bff-core";
|
|
2
1
|
import { createEffectEndpointContractHash, ensureLeadingSlash, normalizeEffectPrefix, toOperationContractSources } from "@modern-js/bff-effect/effect";
|
|
2
|
+
import { buildOperationContractMap, deriveOperationVersion } from "@modern-js/server-runtime-extensions/bff-policy/node";
|
|
3
3
|
import { fs, upath } from "@modern-js/utils";
|
|
4
4
|
const DEFAULT_REQUEST_CREATOR = '@modern-js/plugin-bff/client';
|
|
5
|
-
const EFFECT_CLIENT_RUNTIME_IMPORT = '@modern-js/
|
|
5
|
+
const EFFECT_CLIENT_RUNTIME_IMPORT = '@modern-js/bff-effect/effect-client-runtime';
|
|
6
6
|
function isAbsoluteUrl(value) {
|
|
7
7
|
try {
|
|
8
8
|
new URL(value);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { evaluateCrossProjectPolicy, resolveCrossProjectRequestObservation } from "@modern-js/
|
|
1
|
+
import { evaluateCrossProjectPolicy, resolveCrossProjectRequestObservation } from "@modern-js/server-runtime-extensions/bff-policy";
|
|
2
2
|
const DENIAL_HEADERS = {
|
|
3
3
|
'content-type': 'application/json; charset=utf-8'
|
|
4
4
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
2
|
import node_path from "node:path";
|
|
3
|
-
import
|
|
3
|
+
import "@modern-js/server-runtime-extensions/server-config";
|
|
4
|
+
import { deriveOperationVersion, resolveCrossProjectPolicy } from "@modern-js/server-runtime-extensions/bff-policy/node";
|
|
4
5
|
const readNearestPackageVersion = (startDir)=>{
|
|
5
6
|
if (!startDir) return;
|
|
6
7
|
let current = node_path.resolve(startDir);
|