@bleedingdev/modern-js-plugin-bff 3.2.0-ultramodern.11 → 3.2.0-ultramodern.110
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/cli.js +9 -5
- package/dist/cjs/constants.js +13 -9
- package/dist/cjs/index.js +9 -5
- package/dist/cjs/loader.js +32 -5
- package/dist/cjs/runtime/create-request/index.js +9 -5
- package/dist/cjs/runtime/data-platform/index.js +48 -13
- package/dist/cjs/runtime/effect/adapter.js +24 -87
- package/dist/cjs/runtime/effect/context.js +19 -7
- package/dist/cjs/runtime/effect/edge.js +173 -0
- package/dist/cjs/runtime/effect/handler.js +597 -0
- package/dist/cjs/runtime/effect/index.js +30 -547
- package/dist/cjs/runtime/effect/module.js +142 -0
- package/dist/cjs/runtime/effect/operation-context.js +115 -0
- package/dist/cjs/runtime/effect-client/index.js +22 -6
- package/dist/cjs/runtime/hono/adapter.js +9 -5
- package/dist/cjs/runtime/hono/index.js +9 -5
- package/dist/cjs/runtime/hono/operators.js +9 -5
- package/dist/cjs/server.js +9 -5
- package/dist/cjs/utils/clientGenerator.js +9 -5
- package/dist/cjs/utils/createHonoRoutes.js +9 -5
- package/dist/cjs/utils/crossProjectApiPlugin.js +9 -5
- package/dist/cjs/utils/effectClientGenerator.js +26 -5
- package/dist/cjs/utils/pluginGenerator.js +9 -5
- package/dist/cjs/utils/runtimeGenerator.js +9 -5
- package/dist/esm/loader.mjs +23 -0
- package/dist/esm/runtime/data-platform/index.mjs +31 -9
- package/dist/esm/runtime/effect/adapter.mjs +16 -83
- package/dist/esm/runtime/effect/context.mjs +3 -1
- package/dist/esm/runtime/effect/edge.mjs +90 -0
- package/dist/esm/runtime/effect/handler.mjs +438 -0
- package/dist/esm/runtime/effect/index.mjs +3 -437
- package/dist/esm/runtime/effect/module.mjs +104 -0
- package/dist/esm/runtime/effect/operation-context.mjs +77 -0
- package/dist/esm/runtime/effect-client/index.mjs +14 -2
- package/dist/esm/utils/effectClientGenerator.mjs +17 -0
- package/dist/esm-node/loader.mjs +23 -0
- package/dist/esm-node/runtime/data-platform/index.mjs +31 -9
- package/dist/esm-node/runtime/effect/adapter.mjs +16 -83
- package/dist/esm-node/runtime/effect/context.mjs +3 -1
- package/dist/esm-node/runtime/effect/edge.mjs +91 -0
- package/dist/esm-node/runtime/effect/handler.mjs +439 -0
- package/dist/esm-node/runtime/effect/index.mjs +3 -437
- package/dist/esm-node/runtime/effect/module.mjs +105 -0
- package/dist/esm-node/runtime/effect/operation-context.mjs +78 -0
- package/dist/esm-node/runtime/effect-client/index.mjs +14 -2
- package/dist/esm-node/utils/effectClientGenerator.mjs +17 -0
- package/dist/types/runtime/create-request/index.d.ts +1 -0
- package/dist/types/runtime/data-platform/index.d.ts +4 -0
- package/dist/types/runtime/effect/context.d.ts +3 -6
- package/dist/types/runtime/effect/edge.d.ts +25 -0
- package/dist/types/runtime/effect/handler.d.ts +173 -0
- package/dist/types/runtime/effect/index.d.ts +2 -170
- package/dist/types/runtime/effect/module.d.ts +28 -0
- package/dist/types/runtime/effect/operation-context.d.ts +10 -0
- package/dist/types/runtime/effect-client/index.d.ts +6 -1
- package/dist/types/utils/createHonoRoutes.d.ts +3 -3
- package/dist/types/utils/effectClientGenerator.d.ts +1 -1
- package/package.json +26 -17
package/dist/cjs/cli.js
CHANGED
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
package/dist/cjs/constants.js
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -23,10 +27,6 @@ var __webpack_require__ = {};
|
|
|
23
27
|
})();
|
|
24
28
|
var __webpack_exports__ = {};
|
|
25
29
|
__webpack_require__.r(__webpack_exports__);
|
|
26
|
-
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
-
API_APP_NAME: ()=>API_APP_NAME,
|
|
28
|
-
BUILD_FILES: ()=>BUILD_FILES
|
|
29
|
-
});
|
|
30
30
|
const API_APP_NAME = '_app';
|
|
31
31
|
const BUILD_FILES = [
|
|
32
32
|
'**/*.[tj]sx?',
|
|
@@ -37,6 +37,10 @@ const BUILD_FILES = [
|
|
|
37
37
|
'!__tests__/*.tsx?',
|
|
38
38
|
'!__tests__/*.jsx?'
|
|
39
39
|
];
|
|
40
|
+
__webpack_require__.d(__webpack_exports__, {}, {
|
|
41
|
+
API_APP_NAME: API_APP_NAME,
|
|
42
|
+
BUILD_FILES: BUILD_FILES
|
|
43
|
+
});
|
|
40
44
|
exports.API_APP_NAME = __webpack_exports__.API_APP_NAME;
|
|
41
45
|
exports.BUILD_FILES = __webpack_exports__.BUILD_FILES;
|
|
42
46
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
package/dist/cjs/index.js
CHANGED
|
@@ -24,11 +24,15 @@ function __webpack_require__(moduleId) {
|
|
|
24
24
|
};
|
|
25
25
|
})();
|
|
26
26
|
(()=>{
|
|
27
|
-
__webpack_require__.d = (exports1,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
__webpack_require__.d = (exports1, getters, values)=>{
|
|
28
|
+
var define = (defs, kind)=>{
|
|
29
|
+
for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
[kind]: defs[key]
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
define(getters, "get");
|
|
35
|
+
define(values, "value");
|
|
32
36
|
};
|
|
33
37
|
})();
|
|
34
38
|
(()=>{
|
package/dist/cjs/loader.js
CHANGED
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -40,6 +44,24 @@ const utils_namespaceObject = require("@modern-js/utils");
|
|
|
40
44
|
const external_path_namespaceObject = require("path");
|
|
41
45
|
var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
|
|
42
46
|
const effectClientGenerator_js_namespaceObject = require("./utils/effectClientGenerator.js");
|
|
47
|
+
async function transformEffectRuntimeSource(source, filename) {
|
|
48
|
+
const swc = await import("@swc/core");
|
|
49
|
+
const result = await swc.transform(source, {
|
|
50
|
+
filename,
|
|
51
|
+
sourceMaps: false,
|
|
52
|
+
jsc: {
|
|
53
|
+
parser: {
|
|
54
|
+
syntax: "typescript",
|
|
55
|
+
tsx: filename.endsWith('.tsx') || filename.endsWith('.jsx')
|
|
56
|
+
},
|
|
57
|
+
target: 'es2022'
|
|
58
|
+
},
|
|
59
|
+
module: {
|
|
60
|
+
type: 'es6'
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return result.code;
|
|
64
|
+
}
|
|
43
65
|
async function loader(source) {
|
|
44
66
|
this.cacheable();
|
|
45
67
|
const { resourcePath } = this;
|
|
@@ -51,6 +73,11 @@ async function loader(source) {
|
|
|
51
73
|
apiDir: draftOptions.apiDir,
|
|
52
74
|
effectEntry: draftOptions.effectEntry
|
|
53
75
|
});
|
|
76
|
+
if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && external_path_default().resolve(effectEntryFile) === external_path_default().resolve(resourcePath) && this.resourceQuery.includes('modern-bff-runtime')) {
|
|
77
|
+
const code = await transformEffectRuntimeSource(source, resourcePath);
|
|
78
|
+
callback(void 0, code);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
54
81
|
if ('effect' === draftOptions.bffRuntimeFramework && effectEntryFile && external_path_default().resolve(effectEntryFile) === external_path_default().resolve(resourcePath)) {
|
|
55
82
|
const code = await (0, effectClientGenerator_js_namespaceObject.generateEffectClientCode)({
|
|
56
83
|
appDir: draftOptions.appDir,
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -24,18 +28,21 @@ var __webpack_require__ = {};
|
|
|
24
28
|
var __webpack_exports__ = {};
|
|
25
29
|
__webpack_require__.r(__webpack_exports__);
|
|
26
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
DATA_BATCH_TRANSPORT_OTEL_EVENT: ()=>DATA_BATCH_TRANSPORT_OTEL_EVENT,
|
|
27
32
|
DEFAULT_DATA_BATCH_ENDPOINT: ()=>DEFAULT_DATA_BATCH_ENDPOINT,
|
|
28
33
|
DEFAULT_DATA_BATCH_HEADER: ()=>DEFAULT_DATA_BATCH_HEADER,
|
|
29
34
|
DEFAULT_DATA_ENVELOPE_HEADER: ()=>DEFAULT_DATA_ENVELOPE_HEADER,
|
|
30
35
|
buildQueryKey: ()=>buildQueryKey,
|
|
31
36
|
buildScopeKey: ()=>buildScopeKey,
|
|
32
37
|
createDataBatchTransport: ()=>createDataBatchTransport,
|
|
38
|
+
createDataBatchTransportTelemetryAttributes: ()=>createDataBatchTransportTelemetryAttributes,
|
|
33
39
|
createHydrationEnvelope: ()=>createHydrationEnvelope,
|
|
34
40
|
createInvalidationEvent: ()=>createInvalidationEvent,
|
|
35
41
|
createOperationId: ()=>createOperationId,
|
|
36
42
|
createRequestEnvelope: ()=>createRequestEnvelope,
|
|
37
43
|
decodeRequestEnvelopeHeader: ()=>decodeRequestEnvelopeHeader,
|
|
38
44
|
deriveChildTraceContext: ()=>deriveChildTraceContext,
|
|
45
|
+
emitDataBatchTransportEvent: ()=>emitDataBatchTransportEvent,
|
|
39
46
|
encodeRequestEnvelopeHeader: ()=>encodeRequestEnvelopeHeader,
|
|
40
47
|
formatTraceparentHeader: ()=>formatTraceparentHeader,
|
|
41
48
|
normalizeOrigin: ()=>normalizeOrigin,
|
|
@@ -46,6 +53,28 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
46
53
|
validateRequestEnvelope: ()=>validateRequestEnvelope,
|
|
47
54
|
validateSelectionPlan: ()=>validateSelectionPlan
|
|
48
55
|
});
|
|
56
|
+
const api_namespaceObject = require("@opentelemetry/api");
|
|
57
|
+
const DATA_BATCH_TRANSPORT_OTEL_EVENT = 'modernjs.data.batch';
|
|
58
|
+
function createDataBatchTransportTelemetryAttributes(event) {
|
|
59
|
+
return {
|
|
60
|
+
'modernjs.data.batch.type': event.type,
|
|
61
|
+
'modernjs.data.batch.endpoint': event.endpoint,
|
|
62
|
+
'modernjs.data.batch.degraded': 'fallback' === event.type || 'disable' === event.type,
|
|
63
|
+
...event.batchId ? {
|
|
64
|
+
'modernjs.data.batch.id': event.batchId
|
|
65
|
+
} : {},
|
|
66
|
+
...'number' == typeof event.size ? {
|
|
67
|
+
'modernjs.data.batch.size': event.size
|
|
68
|
+
} : {},
|
|
69
|
+
...event.reason ? {
|
|
70
|
+
'modernjs.data.batch.reason': event.reason
|
|
71
|
+
} : {}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function emitDataBatchTransportEvent(onEvent, event) {
|
|
75
|
+
onEvent?.(event);
|
|
76
|
+
api_namespaceObject.trace.getActiveSpan()?.addEvent(DATA_BATCH_TRANSPORT_OTEL_EVENT, createDataBatchTransportTelemetryAttributes(event));
|
|
77
|
+
}
|
|
49
78
|
const DEFAULT_DATA_ENVELOPE_HEADER = 'x-modernjs-data-envelope';
|
|
50
79
|
const DEFAULT_DATA_BATCH_ENDPOINT = '/_data/batch';
|
|
51
80
|
const DEFAULT_DATA_BATCH_HEADER = 'x-modernjs-data-batch';
|
|
@@ -463,7 +492,7 @@ function createDataBatchTransport(options = {}) {
|
|
|
463
492
|
bucket.items = [];
|
|
464
493
|
bucket.bytes = 0;
|
|
465
494
|
if (1 === items.length || disabledEndpoints.has(endpoint)) {
|
|
466
|
-
onEvent
|
|
495
|
+
emitDataBatchTransportEvent(onEvent, {
|
|
467
496
|
type: disabledEndpoints.has(endpoint) ? 'fallback' : 'flush',
|
|
468
497
|
endpoint,
|
|
469
498
|
size: items.length,
|
|
@@ -480,7 +509,7 @@ function createDataBatchTransport(options = {}) {
|
|
|
480
509
|
sentAt: Date.now(),
|
|
481
510
|
items: items.map((item)=>item.item)
|
|
482
511
|
};
|
|
483
|
-
onEvent
|
|
512
|
+
emitDataBatchTransportEvent(onEvent, {
|
|
484
513
|
type: 'flush',
|
|
485
514
|
endpoint,
|
|
486
515
|
batchId,
|
|
@@ -507,7 +536,7 @@ function createDataBatchTransport(options = {}) {
|
|
|
507
536
|
requestInit.signal = controller.signal;
|
|
508
537
|
timeoutHandle = setTimeout(()=>{
|
|
509
538
|
controller.abort();
|
|
510
|
-
onEvent
|
|
539
|
+
emitDataBatchTransportEvent(onEvent, {
|
|
511
540
|
type: 'fallback',
|
|
512
541
|
endpoint,
|
|
513
542
|
batchId,
|
|
@@ -520,13 +549,13 @@ function createDataBatchTransport(options = {}) {
|
|
|
520
549
|
if (!response.ok) {
|
|
521
550
|
if (404 === response.status || 405 === response.status) {
|
|
522
551
|
disabledEndpoints.add(endpoint);
|
|
523
|
-
onEvent
|
|
552
|
+
emitDataBatchTransportEvent(onEvent, {
|
|
524
553
|
type: 'disable',
|
|
525
554
|
endpoint,
|
|
526
555
|
batchId,
|
|
527
556
|
reason: `batch-endpoint-unavailable-${String(response.status)}`
|
|
528
557
|
});
|
|
529
|
-
} else onEvent
|
|
558
|
+
} else emitDataBatchTransportEvent(onEvent, {
|
|
530
559
|
type: 'fallback',
|
|
531
560
|
endpoint,
|
|
532
561
|
batchId,
|
|
@@ -539,7 +568,7 @@ function createDataBatchTransport(options = {}) {
|
|
|
539
568
|
}
|
|
540
569
|
const result = await response.json();
|
|
541
570
|
if (!isBatchResponsePayload(result)) {
|
|
542
|
-
onEvent
|
|
571
|
+
emitDataBatchTransportEvent(onEvent, {
|
|
543
572
|
type: 'fallback',
|
|
544
573
|
endpoint,
|
|
545
574
|
batchId,
|
|
@@ -562,7 +591,7 @@ function createDataBatchTransport(options = {}) {
|
|
|
562
591
|
return parseResponseLikeCreateRequest(reconstructedResponse);
|
|
563
592
|
});
|
|
564
593
|
} catch (error) {
|
|
565
|
-
onEvent
|
|
594
|
+
emitDataBatchTransportEvent(onEvent, {
|
|
566
595
|
type: 'fallback',
|
|
567
596
|
endpoint,
|
|
568
597
|
batchId,
|
|
@@ -629,7 +658,7 @@ function createDataBatchTransport(options = {}) {
|
|
|
629
658
|
};
|
|
630
659
|
bucket.items.push(queued);
|
|
631
660
|
bucket.bytes += size;
|
|
632
|
-
onEvent
|
|
661
|
+
emitDataBatchTransportEvent(onEvent, {
|
|
633
662
|
type: 'enqueue',
|
|
634
663
|
endpoint,
|
|
635
664
|
size: bucket.items.length
|
|
@@ -644,18 +673,21 @@ function createDataBatchTransport(options = {}) {
|
|
|
644
673
|
return promise;
|
|
645
674
|
};
|
|
646
675
|
}
|
|
676
|
+
exports.DATA_BATCH_TRANSPORT_OTEL_EVENT = __webpack_exports__.DATA_BATCH_TRANSPORT_OTEL_EVENT;
|
|
647
677
|
exports.DEFAULT_DATA_BATCH_ENDPOINT = __webpack_exports__.DEFAULT_DATA_BATCH_ENDPOINT;
|
|
648
678
|
exports.DEFAULT_DATA_BATCH_HEADER = __webpack_exports__.DEFAULT_DATA_BATCH_HEADER;
|
|
649
679
|
exports.DEFAULT_DATA_ENVELOPE_HEADER = __webpack_exports__.DEFAULT_DATA_ENVELOPE_HEADER;
|
|
650
680
|
exports.buildQueryKey = __webpack_exports__.buildQueryKey;
|
|
651
681
|
exports.buildScopeKey = __webpack_exports__.buildScopeKey;
|
|
652
682
|
exports.createDataBatchTransport = __webpack_exports__.createDataBatchTransport;
|
|
683
|
+
exports.createDataBatchTransportTelemetryAttributes = __webpack_exports__.createDataBatchTransportTelemetryAttributes;
|
|
653
684
|
exports.createHydrationEnvelope = __webpack_exports__.createHydrationEnvelope;
|
|
654
685
|
exports.createInvalidationEvent = __webpack_exports__.createInvalidationEvent;
|
|
655
686
|
exports.createOperationId = __webpack_exports__.createOperationId;
|
|
656
687
|
exports.createRequestEnvelope = __webpack_exports__.createRequestEnvelope;
|
|
657
688
|
exports.decodeRequestEnvelopeHeader = __webpack_exports__.decodeRequestEnvelopeHeader;
|
|
658
689
|
exports.deriveChildTraceContext = __webpack_exports__.deriveChildTraceContext;
|
|
690
|
+
exports.emitDataBatchTransportEvent = __webpack_exports__.emitDataBatchTransportEvent;
|
|
659
691
|
exports.encodeRequestEnvelopeHeader = __webpack_exports__.encodeRequestEnvelopeHeader;
|
|
660
692
|
exports.formatTraceparentHeader = __webpack_exports__.formatTraceparentHeader;
|
|
661
693
|
exports.normalizeOrigin = __webpack_exports__.normalizeOrigin;
|
|
@@ -666,18 +698,21 @@ exports.validateHydrationEnvelope = __webpack_exports__.validateHydrationEnvelop
|
|
|
666
698
|
exports.validateRequestEnvelope = __webpack_exports__.validateRequestEnvelope;
|
|
667
699
|
exports.validateSelectionPlan = __webpack_exports__.validateSelectionPlan;
|
|
668
700
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
701
|
+
"DATA_BATCH_TRANSPORT_OTEL_EVENT",
|
|
669
702
|
"DEFAULT_DATA_BATCH_ENDPOINT",
|
|
670
703
|
"DEFAULT_DATA_BATCH_HEADER",
|
|
671
704
|
"DEFAULT_DATA_ENVELOPE_HEADER",
|
|
672
705
|
"buildQueryKey",
|
|
673
706
|
"buildScopeKey",
|
|
674
707
|
"createDataBatchTransport",
|
|
708
|
+
"createDataBatchTransportTelemetryAttributes",
|
|
675
709
|
"createHydrationEnvelope",
|
|
676
710
|
"createInvalidationEvent",
|
|
677
711
|
"createOperationId",
|
|
678
712
|
"createRequestEnvelope",
|
|
679
713
|
"decodeRequestEnvelopeHeader",
|
|
680
714
|
"deriveChildTraceContext",
|
|
715
|
+
"emitDataBatchTransportEvent",
|
|
681
716
|
"encodeRequestEnvelopeHeader",
|
|
682
717
|
"formatTraceparentHeader",
|
|
683
718
|
"normalizeOrigin",
|
|
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
|
|
|
10
10
|
};
|
|
11
11
|
})();
|
|
12
12
|
(()=>{
|
|
13
|
-
__webpack_require__.d = (exports1,
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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");
|
|
18
22
|
};
|
|
19
23
|
})();
|
|
20
24
|
(()=>{
|
|
@@ -36,11 +40,10 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
36
40
|
EffectAdapter: ()=>EffectAdapter
|
|
37
41
|
});
|
|
38
42
|
const utils_namespaceObject = require("@modern-js/utils");
|
|
39
|
-
const httpapi_namespaceObject = require("effect/unstable/httpapi");
|
|
40
43
|
const external_path_namespaceObject = require("path");
|
|
41
44
|
var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
|
|
42
45
|
const external_context_js_namespaceObject = require("./context.js");
|
|
43
|
-
const
|
|
46
|
+
const external_module_js_namespaceObject = require("./module.js");
|
|
44
47
|
const before = [
|
|
45
48
|
'custom-server-hook',
|
|
46
49
|
'custom-server-middleware',
|
|
@@ -73,24 +76,9 @@ function createRequestForMountedPrefix(req, prefix) {
|
|
|
73
76
|
url.pathname = nextPath;
|
|
74
77
|
return new Request(url, req);
|
|
75
78
|
}
|
|
76
|
-
function isRequestHandler(value) {
|
|
77
|
-
return 'function' == typeof value;
|
|
78
|
-
}
|
|
79
79
|
function maybeResponse(value) {
|
|
80
80
|
return value instanceof Response;
|
|
81
81
|
}
|
|
82
|
-
function isRecord(value) {
|
|
83
|
-
return 'object' == typeof value && null !== value;
|
|
84
|
-
}
|
|
85
|
-
function includesRuntimeExports(value) {
|
|
86
|
-
return 'api' in value || 'layer' in value || 'createHandler' in value || 'handler' in value;
|
|
87
|
-
}
|
|
88
|
-
function isHttpApiWithProps(value) {
|
|
89
|
-
return httpapi_namespaceObject.HttpApi.isHttpApi(value) && isRecord(value) && 'string' == typeof value.identifier && isRecord(value.groups);
|
|
90
|
-
}
|
|
91
|
-
function isEffectApiDefinition(module) {
|
|
92
|
-
return isHttpApiWithProps(module.api) && void 0 !== module.layer;
|
|
93
|
-
}
|
|
94
82
|
class EffectAdapter {
|
|
95
83
|
resolveEntryFile() {
|
|
96
84
|
const { appDirectory, apiDirectory } = this.api.getServerContext();
|
|
@@ -101,70 +89,13 @@ class EffectAdapter {
|
|
|
101
89
|
return (0, utils_namespaceObject.findExists)(JS_OR_TS_EXTS.map((ext)=>`${entryWithoutExt}${ext}`));
|
|
102
90
|
}
|
|
103
91
|
async loadEffectHandlerFromModule(mod) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
};
|
|
112
|
-
if (isRequestHandler(normalizedModule.handler)) return {
|
|
113
|
-
handler: normalizedModule.handler
|
|
114
|
-
};
|
|
115
|
-
const entry = normalizedModule.default;
|
|
116
|
-
if (isRequestHandler(entry)) return {
|
|
117
|
-
handler: entry
|
|
118
|
-
};
|
|
119
|
-
if ('function' == typeof entry && 0 === entry.length) {
|
|
120
|
-
const out = await entry();
|
|
121
|
-
if (isRequestHandler(out)) return {
|
|
122
|
-
handler: out
|
|
123
|
-
};
|
|
124
|
-
mergeRuntimeExports(out);
|
|
125
|
-
}
|
|
126
|
-
if (isRecord(entry)) normalizedModule = {
|
|
127
|
-
...normalizedModule,
|
|
128
|
-
...entry
|
|
129
|
-
};
|
|
130
|
-
if (isRecord(entry) && 'handler' in entry) {
|
|
131
|
-
const maybeHandler = entry.handler;
|
|
132
|
-
if (isRequestHandler(maybeHandler)) normalizedModule = {
|
|
133
|
-
...normalizedModule,
|
|
134
|
-
handler: maybeHandler
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
if (isRequestHandler(normalizedModule.handler)) return {
|
|
138
|
-
handler: normalizedModule.handler
|
|
139
|
-
};
|
|
140
|
-
if ('function' == typeof normalizedModule.createHandler) {
|
|
141
|
-
const webHandler = normalizedModule.createHandler({
|
|
142
|
-
openapi: this.api.getServerConfig()?.bff?.effect?.openapi,
|
|
143
|
-
dataPlatform: this.api.getServerConfig()?.bff?.effect?.dataPlatform
|
|
144
|
-
});
|
|
145
|
-
return {
|
|
146
|
-
handler: async (request)=>webHandler.handler(request),
|
|
147
|
-
dispose: async ()=>{
|
|
148
|
-
await webHandler.dispose();
|
|
149
|
-
}
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
if (isEffectApiDefinition(normalizedModule)) {
|
|
153
|
-
utils_namespaceObject.logger.warn('[BFF][Effect] Detected { api, layer } export without createHandler. Prefer `defineEffectBff(...)` from @modern-js/plugin-bff/server to avoid module instance mismatch.');
|
|
154
|
-
const webHandler = (0, external_index_js_namespaceObject.createHttpApiHandler)({
|
|
155
|
-
api: normalizedModule.api,
|
|
156
|
-
layer: normalizedModule.layer,
|
|
157
|
-
openapi: this.api.getServerConfig()?.bff?.effect?.openapi,
|
|
158
|
-
dataPlatform: this.api.getServerConfig()?.bff?.effect?.dataPlatform
|
|
159
|
-
});
|
|
160
|
-
return {
|
|
161
|
-
handler: async (request)=>webHandler.handler(request),
|
|
162
|
-
dispose: async ()=>{
|
|
163
|
-
await webHandler.dispose();
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
return null;
|
|
92
|
+
return (0, external_module_js_namespaceObject.resolveEffectBffModuleHandler)(mod, {
|
|
93
|
+
openapi: this.api.getServerConfig()?.bff?.effect?.openapi,
|
|
94
|
+
dataPlatform: this.api.getServerConfig()?.bff?.effect?.dataPlatform,
|
|
95
|
+
onWarning: (message)=>{
|
|
96
|
+
utils_namespaceObject.logger.warn(message);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
168
99
|
}
|
|
169
100
|
async reloadHandler() {
|
|
170
101
|
if (!this.isEffect) return;
|
|
@@ -282,7 +213,13 @@ class EffectAdapter {
|
|
|
282
213
|
request: effectRequest,
|
|
283
214
|
env: c.env,
|
|
284
215
|
path: c.req.path,
|
|
285
|
-
method: c.req.method
|
|
216
|
+
method: c.req.method,
|
|
217
|
+
operationContext: (0, external_context_js_namespaceObject.createEffectOperationContext)({
|
|
218
|
+
request: effectRequest,
|
|
219
|
+
env: c.env,
|
|
220
|
+
path: c.req.path,
|
|
221
|
+
method: c.req.method
|
|
222
|
+
})
|
|
286
223
|
};
|
|
287
224
|
response = await (0, external_context_js_namespaceObject.runWithEffectContext)(effectContext, ()=>this.handler.length > 1 ? this.handler(effectRequest, effectContext) : this.handler(effectRequest));
|
|
288
225
|
} catch (error) {
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
3
|
(()=>{
|
|
4
|
-
__webpack_require__.d = (exports1,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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");
|
|
9
13
|
};
|
|
10
14
|
})();
|
|
11
15
|
(()=>{
|
|
@@ -24,10 +28,13 @@ var __webpack_require__ = {};
|
|
|
24
28
|
var __webpack_exports__ = {};
|
|
25
29
|
__webpack_require__.r(__webpack_exports__);
|
|
26
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
createEffectOperationContext: ()=>external_operation_context_js_namespaceObject.createEffectOperationContext,
|
|
27
32
|
runWithEffectContext: ()=>runWithEffectContext,
|
|
28
|
-
useEffectContext: ()=>useEffectContext
|
|
33
|
+
useEffectContext: ()=>useEffectContext,
|
|
34
|
+
useOperationContext: ()=>useOperationContext
|
|
29
35
|
});
|
|
30
36
|
const external_node_async_hooks_namespaceObject = require("node:async_hooks");
|
|
37
|
+
const external_operation_context_js_namespaceObject = require("./operation-context.js");
|
|
31
38
|
const kEffectContextStorage = Symbol.for('modernjs.plugin-bff.effectContextStorage');
|
|
32
39
|
const globalStore = globalThis;
|
|
33
40
|
const effectContextStorage = globalStore[kEffectContextStorage] ?? (globalStore[kEffectContextStorage] = new external_node_async_hooks_namespaceObject.AsyncLocalStorage());
|
|
@@ -37,11 +44,16 @@ const useEffectContext = ()=>{
|
|
|
37
44
|
if (!context) throw new Error("Can't call useEffectContext out of Effect runtime scope");
|
|
38
45
|
return context;
|
|
39
46
|
};
|
|
47
|
+
const useOperationContext = ()=>useEffectContext().operationContext;
|
|
48
|
+
exports.createEffectOperationContext = __webpack_exports__.createEffectOperationContext;
|
|
40
49
|
exports.runWithEffectContext = __webpack_exports__.runWithEffectContext;
|
|
41
50
|
exports.useEffectContext = __webpack_exports__.useEffectContext;
|
|
51
|
+
exports.useOperationContext = __webpack_exports__.useOperationContext;
|
|
42
52
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
53
|
+
"createEffectOperationContext",
|
|
43
54
|
"runWithEffectContext",
|
|
44
|
-
"useEffectContext"
|
|
55
|
+
"useEffectContext",
|
|
56
|
+
"useOperationContext"
|
|
45
57
|
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
46
58
|
Object.defineProperty(exports, '__esModule', {
|
|
47
59
|
value: true
|