@bleedingdev/modern-js-plugin-bff 3.2.0-ultramodern.102 → 3.2.0-ultramodern.104

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.
Files changed (39) hide show
  1. package/dist/cjs/cli.js +9 -5
  2. package/dist/cjs/constants.js +13 -9
  3. package/dist/cjs/index.js +9 -5
  4. package/dist/cjs/loader.js +9 -5
  5. package/dist/cjs/runtime/create-request/index.js +9 -5
  6. package/dist/cjs/runtime/data-platform/index.js +9 -5
  7. package/dist/cjs/runtime/effect/adapter.js +9 -5
  8. package/dist/cjs/runtime/effect/context.js +9 -5
  9. package/dist/cjs/runtime/effect/edge.js +14 -10
  10. package/dist/cjs/runtime/effect/handler.js +59 -60
  11. package/dist/cjs/runtime/effect/index.js +28 -16
  12. package/dist/cjs/runtime/effect/module.js +59 -32
  13. package/dist/cjs/runtime/effect/operation-context.js +9 -5
  14. package/dist/cjs/runtime/effect-client/index.js +10 -6
  15. package/dist/cjs/runtime/hono/adapter.js +9 -5
  16. package/dist/cjs/runtime/hono/index.js +9 -5
  17. package/dist/cjs/runtime/hono/operators.js +9 -5
  18. package/dist/cjs/server.js +9 -5
  19. package/dist/cjs/utils/clientGenerator.js +9 -5
  20. package/dist/cjs/utils/createHonoRoutes.js +9 -5
  21. package/dist/cjs/utils/crossProjectApiPlugin.js +9 -5
  22. package/dist/cjs/utils/effectClientGenerator.js +9 -5
  23. package/dist/cjs/utils/pluginGenerator.js +9 -5
  24. package/dist/cjs/utils/runtimeGenerator.js +9 -5
  25. package/dist/esm/runtime/effect/handler.mjs +7 -6
  26. package/dist/esm/runtime/effect/index.mjs +2 -0
  27. package/dist/esm/runtime/effect/module.mjs +50 -27
  28. package/dist/esm/runtime/effect-client/index.mjs +1 -1
  29. package/dist/esm-node/runtime/effect/handler.mjs +7 -6
  30. package/dist/esm-node/runtime/effect/index.mjs +2 -0
  31. package/dist/esm-node/runtime/effect/module.mjs +50 -27
  32. package/dist/esm-node/runtime/effect-client/index.mjs +1 -1
  33. package/dist/types/runtime/effect/context.d.ts +1 -1
  34. package/dist/types/runtime/effect/handler.d.ts +7 -4
  35. package/dist/types/runtime/effect/index.d.ts +1 -0
  36. package/dist/types/runtime/effect/module.d.ts +1 -1
  37. package/dist/types/utils/createHonoRoutes.d.ts +3 -3
  38. package/dist/types/utils/effectClientGenerator.d.ts +1 -1
  39. package/package.json +13 -13
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
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
  (()=>{
@@ -26,6 +30,7 @@ __webpack_require__.r(__webpack_exports__);
26
30
  __webpack_require__.d(__webpack_exports__, {
27
31
  resolveEffectBffModuleHandler: ()=>resolveEffectBffModuleHandler
28
32
  });
33
+ const Context_namespaceObject = require("effect/Context");
29
34
  const httpapi_namespaceObject = require("effect/unstable/httpapi");
30
35
  const external_handler_js_namespaceObject = require("./handler.js");
31
36
  function isRecord(value) {
@@ -40,15 +45,29 @@ function isRequestHandler(value) {
40
45
  function isEffectApiDefinition(module) {
41
46
  return httpapi_namespaceObject.HttpApi.isHttpApi(module.api) && void 0 !== module.layer;
42
47
  }
43
- async function resolveEffectBffModuleHandler(mod, options = {}) {
44
- let normalizedModule = mod;
45
- const mergeRuntimeExports = (value)=>{
46
- if (!isRecord(value) || !includesRuntimeExports(value)) return;
47
- normalizedModule = {
48
- ...normalizedModule,
49
- ...value
50
- };
48
+ function isEffectServiceContext(context) {
49
+ return 'object' == typeof context && null !== context && 'mapUnsafe' in context;
50
+ }
51
+ const emptyEffectServiceContext = Context_namespaceObject.empty();
52
+ function callEffectBffRequestHandler(handler, request, context) {
53
+ return void 0 === context ? handler(request) : handler(request, context);
54
+ }
55
+ function createLoadedHandler(webHandler) {
56
+ return {
57
+ handler: (request, context)=>callEffectBffRequestHandler(webHandler.handler, request, context),
58
+ dispose: webHandler.dispose
59
+ };
60
+ }
61
+ function createLoadedHttpApiHandler(webHandler) {
62
+ return {
63
+ handler: (request, context)=>{
64
+ const effectContext = isEffectServiceContext(context) ? context : emptyEffectServiceContext;
65
+ return webHandler.handler(request, effectContext);
66
+ },
67
+ dispose: webHandler.dispose
51
68
  };
69
+ }
70
+ function resolveNormalizedEffectBffModuleHandler(normalizedModule, options = {}) {
52
71
  if (isRequestHandler(normalizedModule.handler)) return {
53
72
  handler: normalizedModule.handler
54
73
  };
@@ -56,13 +75,6 @@ async function resolveEffectBffModuleHandler(mod, options = {}) {
56
75
  if (isRequestHandler(entry)) return {
57
76
  handler: entry
58
77
  };
59
- if ('function' == typeof entry && 0 === entry.length) {
60
- const out = await entry();
61
- if (isRequestHandler(out)) return {
62
- handler: out
63
- };
64
- mergeRuntimeExports(out);
65
- }
66
78
  if (isRecord(entry)) normalizedModule = {
67
79
  ...normalizedModule,
68
80
  ...entry
@@ -82,12 +94,7 @@ async function resolveEffectBffModuleHandler(mod, options = {}) {
82
94
  openapi: options.openapi,
83
95
  dataPlatform: options.dataPlatform
84
96
  });
85
- return {
86
- handler: async (request, context)=>webHandler.handler(request, context),
87
- dispose: async ()=>{
88
- await webHandler.dispose();
89
- }
90
- };
97
+ return createLoadedHandler(webHandler);
91
98
  }
92
99
  if (isEffectApiDefinition(normalizedModule)) {
93
100
  options.onWarning?.('[BFF][Effect] Detected { api, layer } export without createHandler. Prefer `defineEffectBff(...)` from @modern-js/plugin-bff/server to avoid module instance mismatch.');
@@ -97,15 +104,35 @@ async function resolveEffectBffModuleHandler(mod, options = {}) {
97
104
  openapi: options.openapi,
98
105
  dataPlatform: options.dataPlatform
99
106
  });
100
- return {
101
- handler: async (request, context)=>webHandler.handler(request, context),
102
- dispose: async ()=>{
103
- await webHandler.dispose();
104
- }
105
- };
107
+ return createLoadedHttpApiHandler(webHandler);
106
108
  }
107
109
  return null;
108
110
  }
111
+ function resolveEffectBffModuleHandler(mod, options = {}) {
112
+ let normalizedModule = mod;
113
+ const mergeRuntimeExports = (value)=>{
114
+ if (!isRecord(value) || !includesRuntimeExports(value)) return;
115
+ normalizedModule = {
116
+ ...normalizedModule,
117
+ ...value
118
+ };
119
+ };
120
+ if (isRequestHandler(normalizedModule.handler)) return Promise.resolve({
121
+ handler: normalizedModule.handler
122
+ });
123
+ const entry = normalizedModule.default;
124
+ if (isRequestHandler(entry)) return Promise.resolve({
125
+ handler: entry
126
+ });
127
+ if ('function' == typeof entry && 0 === entry.length) return Promise.resolve(entry()).then((out)=>{
128
+ if (isRequestHandler(out)) return {
129
+ handler: out
130
+ };
131
+ mergeRuntimeExports(out);
132
+ return resolveNormalizedEffectBffModuleHandler(normalizedModule, options);
133
+ });
134
+ return Promise.resolve(resolveNormalizedEffectBffModuleHandler(normalizedModule, options));
135
+ }
109
136
  exports.resolveEffectBffModuleHandler = __webpack_exports__.resolveEffectBffModuleHandler;
110
137
  for(var __rspack_i in __webpack_exports__)if (-1 === [
111
138
  "resolveEffectBffModuleHandler"
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
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, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
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
  (()=>{
@@ -102,7 +106,7 @@ function makeEffectHttpApiClient(api, options) {
102
106
  for (const [header, value] of Object.entries(requestContextHeaders))if (void 0 === nextRequest.headers[header.toLowerCase()]) nextRequest = http_namespaceObject.HttpClientRequest.setHeader(nextRequest, header, value);
103
107
  return nextRequest;
104
108
  }));
105
- return options?.transformClient ? options.transformClient(contextClient) : contextClient;
109
+ return 'function' == typeof options?.transformClient ? options.transformClient(contextClient) : contextClient;
106
110
  };
107
111
  return httpapi_namespaceObject.HttpApiClient.make(api, {
108
112
  baseUrl: options?.baseUrl,
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
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
  (()=>{
@@ -27,11 +27,15 @@ function __webpack_require__(moduleId) {
27
27
  };
28
28
  })();
29
29
  (()=>{
30
- __webpack_require__.d = (exports1, definition)=>{
31
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
32
- enumerable: true,
33
- get: definition[key]
34
- });
30
+ __webpack_require__.d = (exports1, getters, values)=>{
31
+ var define = (defs, kind)=>{
32
+ for(var key in defs)if (__webpack_require__.o(defs, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
33
+ enumerable: true,
34
+ [kind]: defs[key]
35
+ });
36
+ };
37
+ define(getters, "get");
38
+ define(values, "value");
35
39
  };
36
40
  })();
37
41
  (()=>{
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  var __webpack_require__ = {};
3
3
  (()=>{
4
- __webpack_require__.d = (exports1, definition)=>{
5
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
- enumerable: true,
7
- get: definition[key]
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
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
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
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
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
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
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
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
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
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
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
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
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
  (()=>{
@@ -10,11 +10,15 @@ var __webpack_require__ = {};
10
10
  };
11
11
  })();
12
12
  (()=>{
13
- __webpack_require__.d = (exports1, definition)=>{
14
- for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
15
- enumerable: true,
16
- get: definition[key]
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
  (()=>{
@@ -1,9 +1,8 @@
1
1
  import * as __rspack_external_effect_Layer_16f7a8fc from "effect/Layer";
2
- import { HttpRouter, HttpServerResponse, HttpTraceContext } from "effect/unstable/http";
2
+ import { HttpRouter, HttpServer, HttpServerResponse, HttpTraceContext } from "effect/unstable/http";
3
3
  import { HttpApiBuilder, OpenApi } from "effect/unstable/httpapi";
4
4
  import { RpcSerialization, RpcServer } from "effect/unstable/rpc";
5
5
  import { DEFAULT_DATA_BATCH_ENDPOINT, DEFAULT_DATA_BATCH_HEADER, DEFAULT_DATA_ENVELOPE_HEADER, decodeRequestEnvelopeHeader, validateRequestEnvelope, validateSelectionPlan } from "../data-platform/index.mjs";
6
- import * as __rspack_external__effect_opentelemetry_8bbbb5af from "@effect/opentelemetry";
7
6
  import * as __rspack_external_effect_Config_29be8a92 from "effect/Config";
8
7
  import * as __rspack_external_effect_Effect_194ac36c from "effect/Effect";
9
8
  import * as __rspack_external_effect_Option_4d691636 from "effect/Option";
@@ -11,6 +10,8 @@ import * as __rspack_external_effect_Schema_f8472650 from "effect/Schema";
11
10
  export * from "effect/unstable/http";
12
11
  export * from "effect/unstable/httpapi";
13
12
  export * from "effect/unstable/rpc";
13
+ import * as __rspack_external_effect_Context_f1289ca3 from "effect/Context";
14
+ const emptyEffectServiceContext = __rspack_external_effect_Context_f1289ca3.empty();
14
15
  function normalizeOpenApiPath(pathname) {
15
16
  if (!pathname.startsWith('/')) return `/${pathname}`;
16
17
  return pathname;
@@ -287,7 +288,7 @@ function defineEffectRpcBff(definition) {
287
288
  };
288
289
  }
289
290
  function createHttpApiHandler(options) {
290
- const apiLayer = options.layer;
291
+ const apiLayer = options.layer.pipe(__rspack_external_effect_Layer_16f7a8fc.provide(HttpServer.layerServices));
291
292
  const openApiLayer = createOpenApiLayer(options.api, options.openapi);
292
293
  const mergedLayer = openApiLayer ? __rspack_external_effect_Layer_16f7a8fc.mergeAll(apiLayer, openApiLayer) : apiLayer;
293
294
  const httpApiHandler = HttpRouter.toWebHandler(mergedLayer);
@@ -304,7 +305,7 @@ function createHttpApiHandler(options) {
304
305
  const withDataPlatformValidation = async (request, context)=>{
305
306
  const validationError = validateDataPlatformRequestEnvelope(request, options.dataPlatform);
306
307
  if (validationError) return validationError;
307
- return httpApiHandler.handler(request, context);
308
+ return httpApiHandler.handler(request, context ?? emptyEffectServiceContext);
308
309
  };
309
310
  const handleBatchRequest = async (request, context)=>{
310
311
  const mountedPrefix = getMountedPrefixFromContext(request, context);
@@ -423,7 +424,7 @@ function createHttpApiHandler(options) {
423
424
  const rpcHandler = createRpcApiHandler(options.rpc);
424
425
  return {
425
426
  handler: async (request, context)=>{
426
- if (isRpcRequest(request, rpcPath)) return rpcHandler.handler(request, context);
427
+ if (isRpcRequest(request, rpcPath)) return rpcHandler.handler(request, context ?? emptyEffectServiceContext);
427
428
  return handleHttpApiRequest(request);
428
429
  },
429
430
  dispose: async ()=>{
@@ -434,4 +435,4 @@ function createHttpApiHandler(options) {
434
435
  }
435
436
  };
436
437
  }
437
- export { HttpApiBuilder, HttpTraceContext, __rspack_external__effect_opentelemetry_8bbbb5af as OpenTelemetry, __rspack_external_effect_Config_29be8a92 as Config, __rspack_external_effect_Effect_194ac36c as Effect, __rspack_external_effect_Layer_16f7a8fc as Layer, __rspack_external_effect_Option_4d691636 as Option, __rspack_external_effect_Schema_f8472650 as Schema, createHttpApiHandler, defineEffectBff, defineEffectRpcBff };
438
+ export { HttpApiBuilder, HttpTraceContext, __rspack_external_effect_Config_29be8a92 as Config, __rspack_external_effect_Effect_194ac36c as Effect, __rspack_external_effect_Layer_16f7a8fc as Layer, __rspack_external_effect_Option_4d691636 as Option, __rspack_external_effect_Schema_f8472650 as Schema, createHttpApiHandler, defineEffectBff, defineEffectRpcBff };
@@ -1,2 +1,4 @@
1
+ import * as __rspack_external__effect_opentelemetry_8bbbb5af from "@effect/opentelemetry";
1
2
  export * from "./handler.mjs";
2
3
  export { createEffectOperationContext, useEffectContext, useOperationContext } from "./context.mjs";
4
+ export { __rspack_external__effect_opentelemetry_8bbbb5af as OpenTelemetry };
@@ -1,5 +1,6 @@
1
1
  import { HttpApi } from "effect/unstable/httpapi";
2
2
  import { createHttpApiHandler } from "./handler.mjs";
3
+ import * as __rspack_external_effect_Context_f1289ca3 from "effect/Context";
3
4
  function isRecord(value) {
4
5
  return 'object' == typeof value && null !== value;
5
6
  }
@@ -12,15 +13,29 @@ function isRequestHandler(value) {
12
13
  function isEffectApiDefinition(module) {
13
14
  return HttpApi.isHttpApi(module.api) && void 0 !== module.layer;
14
15
  }
15
- async function resolveEffectBffModuleHandler(mod, options = {}) {
16
- let normalizedModule = mod;
17
- const mergeRuntimeExports = (value)=>{
18
- if (!isRecord(value) || !includesRuntimeExports(value)) return;
19
- normalizedModule = {
20
- ...normalizedModule,
21
- ...value
22
- };
16
+ function isEffectServiceContext(context) {
17
+ return 'object' == typeof context && null !== context && 'mapUnsafe' in context;
18
+ }
19
+ const emptyEffectServiceContext = __rspack_external_effect_Context_f1289ca3.empty();
20
+ function callEffectBffRequestHandler(handler, request, context) {
21
+ return void 0 === context ? handler(request) : handler(request, context);
22
+ }
23
+ function createLoadedHandler(webHandler) {
24
+ return {
25
+ handler: (request, context)=>callEffectBffRequestHandler(webHandler.handler, request, context),
26
+ dispose: webHandler.dispose
23
27
  };
28
+ }
29
+ function createLoadedHttpApiHandler(webHandler) {
30
+ return {
31
+ handler: (request, context)=>{
32
+ const effectContext = isEffectServiceContext(context) ? context : emptyEffectServiceContext;
33
+ return webHandler.handler(request, effectContext);
34
+ },
35
+ dispose: webHandler.dispose
36
+ };
37
+ }
38
+ function resolveNormalizedEffectBffModuleHandler(normalizedModule, options = {}) {
24
39
  if (isRequestHandler(normalizedModule.handler)) return {
25
40
  handler: normalizedModule.handler
26
41
  };
@@ -28,13 +43,6 @@ async function resolveEffectBffModuleHandler(mod, options = {}) {
28
43
  if (isRequestHandler(entry)) return {
29
44
  handler: entry
30
45
  };
31
- if ('function' == typeof entry && 0 === entry.length) {
32
- const out = await entry();
33
- if (isRequestHandler(out)) return {
34
- handler: out
35
- };
36
- mergeRuntimeExports(out);
37
- }
38
46
  if (isRecord(entry)) normalizedModule = {
39
47
  ...normalizedModule,
40
48
  ...entry
@@ -54,12 +62,7 @@ async function resolveEffectBffModuleHandler(mod, options = {}) {
54
62
  openapi: options.openapi,
55
63
  dataPlatform: options.dataPlatform
56
64
  });
57
- return {
58
- handler: async (request, context)=>webHandler.handler(request, context),
59
- dispose: async ()=>{
60
- await webHandler.dispose();
61
- }
62
- };
65
+ return createLoadedHandler(webHandler);
63
66
  }
64
67
  if (isEffectApiDefinition(normalizedModule)) {
65
68
  options.onWarning?.('[BFF][Effect] Detected { api, layer } export without createHandler. Prefer `defineEffectBff(...)` from @modern-js/plugin-bff/server to avoid module instance mismatch.');
@@ -69,13 +72,33 @@ async function resolveEffectBffModuleHandler(mod, options = {}) {
69
72
  openapi: options.openapi,
70
73
  dataPlatform: options.dataPlatform
71
74
  });
72
- return {
73
- handler: async (request, context)=>webHandler.handler(request, context),
74
- dispose: async ()=>{
75
- await webHandler.dispose();
76
- }
77
- };
75
+ return createLoadedHttpApiHandler(webHandler);
78
76
  }
79
77
  return null;
80
78
  }
79
+ function resolveEffectBffModuleHandler(mod, options = {}) {
80
+ let normalizedModule = mod;
81
+ const mergeRuntimeExports = (value)=>{
82
+ if (!isRecord(value) || !includesRuntimeExports(value)) return;
83
+ normalizedModule = {
84
+ ...normalizedModule,
85
+ ...value
86
+ };
87
+ };
88
+ if (isRequestHandler(normalizedModule.handler)) return Promise.resolve({
89
+ handler: normalizedModule.handler
90
+ });
91
+ const entry = normalizedModule.default;
92
+ if (isRequestHandler(entry)) return Promise.resolve({
93
+ handler: entry
94
+ });
95
+ if ('function' == typeof entry && 0 === entry.length) return Promise.resolve(entry()).then((out)=>{
96
+ if (isRequestHandler(out)) return {
97
+ handler: out
98
+ };
99
+ mergeRuntimeExports(out);
100
+ return resolveNormalizedEffectBffModuleHandler(normalizedModule, options);
101
+ });
102
+ return Promise.resolve(resolveNormalizedEffectBffModuleHandler(normalizedModule, options));
103
+ }
81
104
  export { resolveEffectBffModuleHandler };
@@ -55,7 +55,7 @@ function makeEffectHttpApiClient(api, options) {
55
55
  for (const [header, value] of Object.entries(requestContextHeaders))if (void 0 === nextRequest.headers[header.toLowerCase()]) nextRequest = HttpClientRequest.setHeader(nextRequest, header, value);
56
56
  return nextRequest;
57
57
  }));
58
- return options?.transformClient ? options.transformClient(contextClient) : contextClient;
58
+ return 'function' == typeof options?.transformClient ? options.transformClient(contextClient) : contextClient;
59
59
  };
60
60
  return HttpApiClient.make(api, {
61
61
  baseUrl: options?.baseUrl,
@@ -1,10 +1,9 @@
1
1
  import "node:module";
2
2
  import * as __rspack_external_effect_Layer_16f7a8fc from "effect/Layer";
3
- import { HttpRouter, HttpServerResponse, HttpTraceContext } from "effect/unstable/http";
3
+ import { HttpRouter, HttpServer, HttpServerResponse, HttpTraceContext } from "effect/unstable/http";
4
4
  import { HttpApiBuilder, OpenApi } from "effect/unstable/httpapi";
5
5
  import { RpcSerialization, RpcServer } from "effect/unstable/rpc";
6
6
  import { DEFAULT_DATA_BATCH_ENDPOINT, DEFAULT_DATA_BATCH_HEADER, DEFAULT_DATA_ENVELOPE_HEADER, decodeRequestEnvelopeHeader, validateRequestEnvelope, validateSelectionPlan } from "../data-platform/index.mjs";
7
- import * as __rspack_external__effect_opentelemetry_8bbbb5af from "@effect/opentelemetry";
8
7
  import * as __rspack_external_effect_Config_29be8a92 from "effect/Config";
9
8
  import * as __rspack_external_effect_Effect_194ac36c from "effect/Effect";
10
9
  import * as __rspack_external_effect_Option_4d691636 from "effect/Option";
@@ -12,6 +11,8 @@ import * as __rspack_external_effect_Schema_f8472650 from "effect/Schema";
12
11
  export * from "effect/unstable/http";
13
12
  export * from "effect/unstable/httpapi";
14
13
  export * from "effect/unstable/rpc";
14
+ import * as __rspack_external_effect_Context_f1289ca3 from "effect/Context";
15
+ const emptyEffectServiceContext = __rspack_external_effect_Context_f1289ca3.empty();
15
16
  function normalizeOpenApiPath(pathname) {
16
17
  if (!pathname.startsWith('/')) return `/${pathname}`;
17
18
  return pathname;
@@ -288,7 +289,7 @@ function defineEffectRpcBff(definition) {
288
289
  };
289
290
  }
290
291
  function createHttpApiHandler(options) {
291
- const apiLayer = options.layer;
292
+ const apiLayer = options.layer.pipe(__rspack_external_effect_Layer_16f7a8fc.provide(HttpServer.layerServices));
292
293
  const openApiLayer = createOpenApiLayer(options.api, options.openapi);
293
294
  const mergedLayer = openApiLayer ? __rspack_external_effect_Layer_16f7a8fc.mergeAll(apiLayer, openApiLayer) : apiLayer;
294
295
  const httpApiHandler = HttpRouter.toWebHandler(mergedLayer);
@@ -305,7 +306,7 @@ function createHttpApiHandler(options) {
305
306
  const withDataPlatformValidation = async (request, context)=>{
306
307
  const validationError = validateDataPlatformRequestEnvelope(request, options.dataPlatform);
307
308
  if (validationError) return validationError;
308
- return httpApiHandler.handler(request, context);
309
+ return httpApiHandler.handler(request, context ?? emptyEffectServiceContext);
309
310
  };
310
311
  const handleBatchRequest = async (request, context)=>{
311
312
  const mountedPrefix = getMountedPrefixFromContext(request, context);
@@ -424,7 +425,7 @@ function createHttpApiHandler(options) {
424
425
  const rpcHandler = createRpcApiHandler(options.rpc);
425
426
  return {
426
427
  handler: async (request, context)=>{
427
- if (isRpcRequest(request, rpcPath)) return rpcHandler.handler(request, context);
428
+ if (isRpcRequest(request, rpcPath)) return rpcHandler.handler(request, context ?? emptyEffectServiceContext);
428
429
  return handleHttpApiRequest(request);
429
430
  },
430
431
  dispose: async ()=>{
@@ -435,4 +436,4 @@ function createHttpApiHandler(options) {
435
436
  }
436
437
  };
437
438
  }
438
- export { HttpApiBuilder, HttpTraceContext, __rspack_external__effect_opentelemetry_8bbbb5af as OpenTelemetry, __rspack_external_effect_Config_29be8a92 as Config, __rspack_external_effect_Effect_194ac36c as Effect, __rspack_external_effect_Layer_16f7a8fc as Layer, __rspack_external_effect_Option_4d691636 as Option, __rspack_external_effect_Schema_f8472650 as Schema, createHttpApiHandler, defineEffectBff, defineEffectRpcBff };
439
+ export { HttpApiBuilder, HttpTraceContext, __rspack_external_effect_Config_29be8a92 as Config, __rspack_external_effect_Effect_194ac36c as Effect, __rspack_external_effect_Layer_16f7a8fc as Layer, __rspack_external_effect_Option_4d691636 as Option, __rspack_external_effect_Schema_f8472650 as Schema, createHttpApiHandler, defineEffectBff, defineEffectRpcBff };
@@ -1,3 +1,5 @@
1
1
  import "node:module";
2
+ import * as __rspack_external__effect_opentelemetry_8bbbb5af from "@effect/opentelemetry";
2
3
  export * from "./handler.mjs";
3
4
  export { createEffectOperationContext, useEffectContext, useOperationContext } from "./context.mjs";
5
+ export { __rspack_external__effect_opentelemetry_8bbbb5af as OpenTelemetry };