better-effect 0.12.0 → 0.13.0

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 (87) hide show
  1. package/README.md +327 -7
  2. package/dist/adapters/iti.d.mts +3 -3
  3. package/dist/bun.d.mts +43 -0
  4. package/dist/bun.d.mts.map +1 -0
  5. package/dist/bun.mjs +40 -0
  6. package/dist/bun.mjs.map +1 -0
  7. package/dist/{context-BUEf1qjL.mjs → context-BphfFUMO.mjs} +4 -2
  8. package/dist/context-BphfFUMO.mjs.map +1 -0
  9. package/dist/current-request-CIU7AHhF.d.mts +22 -0
  10. package/dist/current-request-CIU7AHhF.d.mts.map +1 -0
  11. package/dist/current-request-DDKNyymv.mjs +20 -0
  12. package/dist/current-request-DDKNyymv.mjs.map +1 -0
  13. package/dist/{signal-D2UTcaaG.mjs → disposable-CP-Q2H3l.mjs} +4 -52
  14. package/dist/disposable-CP-Q2H3l.mjs.map +1 -0
  15. package/dist/{effect-CK4YZaX0.mjs → effect-CPdV7Yv8.mjs} +2 -2
  16. package/dist/{effect-CK4YZaX0.mjs.map → effect-CPdV7Yv8.mjs.map} +1 -1
  17. package/dist/hono.d.mts +7 -5
  18. package/dist/hono.d.mts.map +1 -1
  19. package/dist/hono.mjs +88 -30
  20. package/dist/hono.mjs.map +1 -1
  21. package/dist/{index-heuaRmXR.d.mts → index-AiKM71-u.d.mts} +3 -1
  22. package/dist/{index-heuaRmXR.d.mts.map → index-AiKM71-u.d.mts.map} +1 -1
  23. package/dist/{index-GYJ4qm9K.d.mts → index-BodMy6rO.d.mts} +6 -5
  24. package/dist/index-BodMy6rO.d.mts.map +1 -0
  25. package/dist/{index-CX6iAoCB.d.mts → index-CCi07kUw.d.mts} +2 -2
  26. package/dist/{index-CX6iAoCB.d.mts.map → index-CCi07kUw.d.mts.map} +1 -1
  27. package/dist/{index-BMdU_Z72.d.mts → index-DAKn0qHk.d.mts} +4 -3
  28. package/dist/index-DAKn0qHk.d.mts.map +1 -0
  29. package/dist/{index-B1nH4luq.d.mts → index-cXgyMa0v.d.mts} +6 -20
  30. package/dist/index-cXgyMa0v.d.mts.map +1 -0
  31. package/dist/index.d.mts +6 -5
  32. package/dist/index.mjs +7 -6
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/{layer-D56fRdLt.mjs → layer-D16GKxuX.mjs} +4 -4
  35. package/dist/layer-D16GKxuX.mjs.map +1 -0
  36. package/dist/next.d.mts +116 -0
  37. package/dist/next.d.mts.map +1 -0
  38. package/dist/next.mjs +68 -0
  39. package/dist/next.mjs.map +1 -0
  40. package/dist/{node-context-lggRF4bR.mjs → node-context-Ca18oNSg.mjs} +2 -2
  41. package/dist/{node-context-lggRF4bR.mjs.map → node-context-Ca18oNSg.mjs.map} +1 -1
  42. package/dist/{node-context-DWsCUBRa.d.mts → node-context-DczjAcrX.d.mts} +2 -2
  43. package/dist/{node-context-DWsCUBRa.d.mts.map → node-context-DczjAcrX.d.mts.map} +1 -1
  44. package/dist/node.d.mts +4 -4
  45. package/dist/node.mjs +4 -4
  46. package/dist/observer-9nhbL7Pr.d.mts +68 -0
  47. package/dist/observer-9nhbL7Pr.d.mts.map +1 -0
  48. package/dist/opentelemetry.d.mts +94 -0
  49. package/dist/opentelemetry.d.mts.map +1 -0
  50. package/dist/opentelemetry.mjs +453 -0
  51. package/dist/opentelemetry.mjs.map +1 -0
  52. package/dist/{outcome-CB43bnFW.d.mts → outcome-DI8LPIQ4.d.mts} +14 -69
  53. package/dist/outcome-DI8LPIQ4.d.mts.map +1 -0
  54. package/dist/{program-metadata-DhQCCirO.mjs → program-metadata-BxjGkT17.mjs} +3 -3
  55. package/dist/{program-metadata-DhQCCirO.mjs.map → program-metadata-BxjGkT17.mjs.map} +1 -1
  56. package/dist/runtime/explicit.d.mts +1 -1
  57. package/dist/runtime/explicit.mjs +1 -1
  58. package/dist/runtime/node.d.mts +2 -2
  59. package/dist/runtime/node.mjs +2 -2
  60. package/dist/{runtime-CBMrX8Wl.mjs → runtime-C_55ofnL.mjs} +42 -27
  61. package/dist/runtime-C_55ofnL.mjs.map +1 -0
  62. package/dist/signal-nfgFyNCk.mjs +52 -0
  63. package/dist/signal-nfgFyNCk.mjs.map +1 -0
  64. package/dist/{standard-services-GBZ32tll.mjs → standard-services-vnGIafkS.mjs} +3 -17
  65. package/dist/standard-services-vnGIafkS.mjs.map +1 -0
  66. package/dist/standard-services.d.mts +3 -2
  67. package/dist/standard-services.mjs +3 -2
  68. package/dist/testing.d.mts +6 -5
  69. package/dist/testing.d.mts.map +1 -1
  70. package/dist/testing.mjs +6 -6
  71. package/dist/types-oihI-ESv.d.mts +54 -0
  72. package/dist/types-oihI-ESv.d.mts.map +1 -0
  73. package/dist/web-Bq3MfMrj.mjs +147 -0
  74. package/dist/web-Bq3MfMrj.mjs.map +1 -0
  75. package/dist/web.d.mts +47 -0
  76. package/dist/web.d.mts.map +1 -0
  77. package/dist/web.mjs +2 -0
  78. package/package.json +33 -2
  79. package/dist/context-BUEf1qjL.mjs.map +0 -1
  80. package/dist/index-B1nH4luq.d.mts.map +0 -1
  81. package/dist/index-BMdU_Z72.d.mts.map +0 -1
  82. package/dist/index-GYJ4qm9K.d.mts.map +0 -1
  83. package/dist/layer-D56fRdLt.mjs.map +0 -1
  84. package/dist/outcome-CB43bnFW.d.mts.map +0 -1
  85. package/dist/runtime-CBMrX8Wl.mjs.map +0 -1
  86. package/dist/signal-D2UTcaaG.mjs.map +0 -1
  87. package/dist/standard-services-GBZ32tll.mjs.map +0 -1
package/dist/hono.mjs CHANGED
@@ -1,11 +1,54 @@
1
- import { t as Layer } from "./layer-D56fRdLt.mjs";
2
- import { t as Effect } from "./effect-CK4YZaX0.mjs";
3
- import { a as CurrentRequest } from "./standard-services-GBZ32tll.mjs";
1
+ import { t as Effect } from "./effect-CPdV7Yv8.mjs";
2
+ import { r as assertResponse, t as WebEffect } from "./web-Bq3MfMrj.mjs";
4
3
  import { Result } from "better-result";
5
4
  import { createMiddleware } from "hono/factory";
6
5
  //#region src/hono/request-boundary.ts
7
- const overrideRequestLayer = (base, replacement) => {
8
- return Layer.override(base, replacement);
6
+ const recordRequestFailure = (state, cause) => {
7
+ state.outcome ??= {
8
+ kind: "failure",
9
+ cause
10
+ };
11
+ };
12
+ const recordRequestSuccess = (state, value, options) => {
13
+ state.outcome ??= {
14
+ kind: "success",
15
+ value,
16
+ options
17
+ };
18
+ };
19
+ const makeBoundaryOptions = (options, state, context) => {
20
+ const boundaryOptions = {
21
+ onSuccess: ({ value }) => {
22
+ if (context.finalized) return context.res;
23
+ const outcome = state.outcome;
24
+ if (outcome?.kind !== "success") return value;
25
+ if (outcome.options.respond !== void 0) return outcome.options.respond(value, context);
26
+ const success = { value };
27
+ if (outcome.options.status !== void 0) Object.assign(success, { status: outcome.options.status });
28
+ if (outcome.options.serialize !== void 0) Object.assign(success, { serialize: outcome.options.serialize });
29
+ return options.onSuccess(success, context);
30
+ },
31
+ onFailure: (error) => {
32
+ if (context.error !== void 0 || context.finalized) return context.res;
33
+ if (state.outcome?.kind === "defect") return context.res;
34
+ return options.onFailure(error, context);
35
+ }
36
+ };
37
+ if (options.requestLayer !== void 0) Object.assign(boundaryOptions, { requestLayer: (_request) => options.requestLayer(context) });
38
+ return boundaryOptions;
39
+ };
40
+ const selectBoundaryResult = (state, context) => {
41
+ const outcome = state.outcome;
42
+ if (outcome?.kind === "failure") return Result.err(outcome.cause);
43
+ if (context.error !== void 0) {
44
+ state.outcome = {
45
+ kind: "defect",
46
+ cause: context.error
47
+ };
48
+ return Result.err(context.error);
49
+ }
50
+ if (outcome?.kind === "success") return Result.ok(outcome.value);
51
+ return Result.ok(context.res);
9
52
  };
10
53
  const makeRequestBoundary = (options) => {
11
54
  return createMiddleware(async (context, next) => {
@@ -17,19 +60,25 @@ const makeRequestBoundary = (options) => {
17
60
  const state = {};
18
61
  options.states.set(key, state);
19
62
  try {
20
- const requestLayer = CurrentRequest.layer(context.req.raw);
21
- const customLayer = options.requestLayer?.(context);
22
- const layer = customLayer === void 0 ? requestLayer : overrideRequestLayer(requestLayer, customLayer);
23
- await options.runtime.runWith(layer, async () => {
24
- try {
25
- await next();
26
- } catch (cause) {
27
- state.failure ??= { cause };
28
- }
29
- if (state.failure !== void 0) return Result.err(state.failure.cause);
30
- if (context.error !== void 0) return Result.err(context.error);
31
- return Result.ok(context.res);
32
- }, { signal: context.req.raw.signal });
63
+ const program = Effect.fn(async function* () {
64
+ await next();
65
+ return selectBoundaryResult(state, context);
66
+ });
67
+ const boundaryOptions = makeBoundaryOptions(options, state, context);
68
+ let response;
69
+ if (options.requestLayer === void 0) response = await WebEffect.handle(options.runtime, context.req.raw, program, {
70
+ onSuccess: boundaryOptions.onSuccess,
71
+ onFailure: boundaryOptions.onFailure
72
+ });
73
+ else {
74
+ const requestBoundaryOptions = {
75
+ onSuccess: boundaryOptions.onSuccess,
76
+ onFailure: boundaryOptions.onFailure,
77
+ requestLayer: (_request) => options.requestLayer(context)
78
+ };
79
+ response = await WebEffect.handle(options.runtime, context.req.raw, program, requestBoundaryOptions);
80
+ }
81
+ if (!context.finalized || context.res !== response) context.res = response;
33
82
  } finally {
34
83
  options.states.delete(key);
35
84
  }
@@ -71,7 +120,9 @@ var HonoEffect = class HonoEffect {
71
120
  return makeRequestBoundary({
72
121
  runtime: this.runtime,
73
122
  states: this.states,
74
- requestLayer: this.requestLayer
123
+ requestLayer: this.requestLayer,
124
+ onSuccess: this.onSuccess,
125
+ onFailure: this.onFailure
75
126
  });
76
127
  }
77
128
  handler(...args) {
@@ -104,23 +155,29 @@ var HonoEffect = class HonoEffect {
104
155
  await next();
105
156
  };
106
157
  }
107
- handleFailure(state, error, context) {
108
- state.failure ??= { cause: error };
109
- return this.onFailure(error, context);
158
+ recordFailure(state, error) {
159
+ recordRequestFailure(state, error);
110
160
  }
111
161
  makeHandler(makeProgram, options) {
112
162
  return async (context) => {
113
163
  const state = this.getState(context);
114
164
  const result = await makeProgram(context)();
115
165
  if (Result.isError(result)) return await this.handleFailure(state, result.error, context);
116
- const value = result.value;
117
- if (options.respond !== void 0) return await options.respond(value, context);
118
- const success = { value };
119
- if (options.status !== void 0) Object.assign(success, { status: options.status });
120
- if (options.serialize !== void 0) Object.assign(success, { serialize: options.serialize });
121
- return await this.onSuccess(success, context);
166
+ recordRequestSuccess(state, result.value, options);
167
+ return await this.handleSuccess(result.value, options, context);
122
168
  };
123
169
  }
170
+ async handleSuccess(value, options, context) {
171
+ if (options.respond !== void 0) return assertResponse(await options.respond(value, context));
172
+ const success = { value };
173
+ if (options.status !== void 0) Object.assign(success, { status: options.status });
174
+ if (options.serialize !== void 0) Object.assign(success, { serialize: options.serialize });
175
+ return assertResponse(await this.onSuccess(success, context));
176
+ }
177
+ async handleFailure(state, error, context) {
178
+ this.recordFailure(state, error);
179
+ return assertResponse(await this.onFailure(error, context));
180
+ }
124
181
  composeInputMiddleware(inputMiddleware, handler) {
125
182
  return async (context, next) => {
126
183
  let downstreamResponse;
@@ -128,12 +185,13 @@ var HonoEffect = class HonoEffect {
128
185
  const nextOnce = async () => {
129
186
  if (nextCalled) throw new Error("next() called multiple times");
130
187
  nextCalled = true;
131
- downstreamResponse = await handler(context, next);
188
+ const response = await handler(context, next);
189
+ if (response !== void 0) downstreamResponse = response;
132
190
  };
133
191
  const middlewareResponse = await inputMiddleware(context, nextOnce);
134
192
  if (middlewareResponse instanceof Response) return middlewareResponse;
135
193
  if (downstreamResponse !== void 0) return downstreamResponse;
136
- return context.res;
194
+ if (context.finalized) return context.res;
137
195
  };
138
196
  }
139
197
  getState(context) {
package/dist/hono.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hono.mjs","names":[],"sources":["../src/hono/request-boundary.ts","../src/hono/responses.ts","../src/hono/hono-effect.ts"],"sourcesContent":["import { Result } from 'better-result'\nimport { createMiddleware } from 'hono/factory'\nimport type { Env, MiddlewareHandler } from 'hono'\n\nimport { CurrentRequest } from '../standard-services'\nimport { Layer } from '../layer'\nimport type { LayerInput } from '../layer/inference'\nimport { Runtime } from '../runtime'\nimport type { AnyService } from '../service'\nimport type { HonoContext } from './types'\n\nexport type RequestState = {\n failure?: {\n readonly cause: unknown\n }\n}\n\nexport type RequestBoundaryOptions<Provided extends AnyService, RequestLayer extends LayerInput> = {\n readonly runtime: Runtime<Provided>\n readonly states: WeakMap<object, RequestState>\n readonly requestLayer?: ((context: HonoContext) => RequestLayer) | undefined\n}\n\nconst overrideRequestLayer = (base: LayerInput, replacement: LayerInput): Layer<any, any> => {\n // SAFETY: HonoEffect.make validates the concrete replacement before this erased dispatch boundary.\n return Layer.override(base, replacement as never)\n}\n\nexport const makeRequestBoundary = <\n Provided extends AnyService,\n RequestLayer extends LayerInput,\n E extends Env = Env,\n Path extends string = string\n>(\n options: RequestBoundaryOptions<Provided, RequestLayer>\n): MiddlewareHandler<E, Path> => {\n // SAFETY: createMiddleware preserves the Hono handler contract; only the generic Context is restored here.\n return createMiddleware(async (context, next) => {\n const key = context\n const existing = options.states.get(key)\n\n if (existing !== undefined) {\n await next()\n return\n }\n\n const state: RequestState = {}\n options.states.set(key, state)\n\n try {\n const requestLayer = CurrentRequest.layer(context.req.raw)\n const customLayer = options.requestLayer?.(context)\n const layer: Layer<any, any> =\n customLayer === undefined ? requestLayer : overrideRequestLayer(requestLayer, customLayer)\n\n await options.runtime.runWith(\n layer,\n async () => {\n try {\n await next()\n } catch (cause) {\n state.failure ??= { cause }\n }\n\n if (state.failure !== undefined) {\n return Result.err(state.failure.cause)\n }\n\n if (context.error !== undefined) {\n return Result.err(context.error)\n }\n\n return Result.ok(context.res)\n },\n { signal: context.req.raw.signal }\n )\n } finally {\n options.states.delete(key)\n }\n }) as MiddlewareHandler<E, Path>\n}\n","import type { HonoContext, HonoEffectSuccess } from './types'\n\nconst DEFAULT_FAILURE_MESSAGE = 'Internal Server Error'\n\nexport const defaultSuccess = (\n { value, status, serialize }: HonoEffectSuccess,\n context: HonoContext\n): Response => {\n if (value instanceof Response) {\n return value\n }\n\n const body = serialize === undefined ? value : serialize(value)\n\n if (body === undefined) {\n // SAFETY: route status is intentionally configurable and Hono validates it at response construction.\n return context.body(null, (status ?? 204) as never)\n }\n\n if (status === undefined) {\n return context.json({ data: body })\n }\n\n // SAFETY: route status is intentionally configurable and Hono validates it at response construction.\n return context.json({ data: body }, status as never)\n}\n\n// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Result errors are intentionally opaque at this HTTP boundary.\nexport const defaultFailure = (error: unknown, context: HonoContext): Response => {\n if (error instanceof Response) {\n return error\n }\n\n return context.json({ error: DEFAULT_FAILURE_MESSAGE }, 500)\n}\n","import { Result } from 'better-result'\nimport type { Context, Env, Handler, Input, MiddlewareHandler } from 'hono'\n\nimport { Effect } from '../effect'\nimport type { EffectSuccess, EffectYield, ProgramFromGenerator } from '../effect/types'\nimport { Runtime } from '../runtime'\nimport type { LayerInput } from '../layer/inference'\nimport type { AnyService } from '../service'\nimport { makeRequestBoundary, type RequestState } from './request-boundary'\nimport { defaultFailure, defaultSuccess } from './responses'\nimport type {\n AnyGeneratorBody,\n AnyHonoMiddleware,\n AnyProgram,\n AnyProgramFactory,\n AnyResult,\n AnyRouteOptions,\n AvailableServices,\n CompleteProgram,\n DefaultRequestLayer,\n GeneratorBody,\n GeneratorChecks,\n HonoContext,\n HonoEffectContext,\n HonoEffectOptions,\n HonoEffectRouteOptions,\n HonoRequestLayerChecks,\n HonoEffectSuccess,\n MiddlewareEnvironment,\n ResponseLike,\n MiddlewareInputs,\n MiddlewarePath\n} from './types'\n\ntype HonoRouteArguments<Middlewares extends readonly AnyHonoMiddleware[], Body, Options> =\n | [...middlewares: Middlewares, body: Body]\n | [...middlewares: Middlewares, body: Body, options: Options | undefined]\n\ntype HonoHandlerFactory<\n ContextType extends object,\n Provided extends AnyService,\n Failure,\n ProgramFactory extends (context: ContextType) => AnyProgram\n> = ProgramFactory &\n ([ReturnType<ProgramFactory>] extends [\n CompleteProgram<Provided, ReturnType<ProgramFactory>, Failure>\n ]\n ? unknown\n : (context: ContextType) => CompleteProgram<Provided, ReturnType<ProgramFactory>, Failure>)\n\n/** Run Effect Programs inside one Runtime execution per Hono request. */\nexport class HonoEffect<\n Provided extends AnyService = any,\n Failure = unknown,\n RequestLayer extends LayerInput = DefaultRequestLayer\n> {\n readonly runtime: Runtime<Provided>\n\n private readonly states = new WeakMap<object, RequestState>()\n\n private readonly onSuccess: NonNullable<HonoEffectOptions<Failure, RequestLayer>['onSuccess']>\n\n private readonly onFailure: NonNullable<HonoEffectOptions<Failure, RequestLayer>['onFailure']>\n\n private readonly requestLayer: HonoEffectOptions<Failure, RequestLayer>['requestLayer']\n\n private constructor(\n runtime: Runtime<Provided>,\n options: HonoEffectOptions<Failure, RequestLayer>\n ) {\n this.runtime = runtime\n this.onSuccess = options.onSuccess ?? defaultSuccess\n this.onFailure = options.onFailure ?? defaultFailure\n this.requestLayer = options.requestLayer\n }\n\n static make<\n Provided extends AnyService,\n Failure = unknown,\n RequestLayer extends LayerInput = DefaultRequestLayer\n >(\n runtime: Runtime<Provided>,\n options?: HonoEffectOptions<Failure, RequestLayer> &\n HonoRequestLayerChecks<Provided, RequestLayer>\n ): HonoEffect<Provided, Failure, RequestLayer> {\n return new HonoEffect(runtime, options ?? {})\n }\n\n middleware<E extends Env = Env, Path extends string = string>(): MiddlewareHandler<E, Path> {\n return makeRequestBoundary<Provided, RequestLayer, E, Path>({\n runtime: this.runtime,\n states: this.states,\n requestLayer: this.requestLayer\n })\n }\n\n handler<\n E extends Env = Env,\n Path extends string = string,\n InputType extends Input = Input,\n Program extends AnyProgram = AnyProgram\n >(\n makeProgram: (\n context: Context<E, Path, InputType>\n ) => CompleteProgram<AvailableServices<Provided, RequestLayer>, Program, Failure>,\n options?: HonoEffectRouteOptions<EffectSuccess<Program>, Context<E, Path, InputType>>\n ): Handler<E, Path, InputType, Promise<Response>>\n handler<\n const Middlewares extends readonly AnyHonoMiddleware[],\n E extends Env = MiddlewareEnvironment<Middlewares>,\n Path extends string = MiddlewarePath<Middlewares>,\n const ProgramFactory extends (\n context: HonoEffectContext<E, Path, MiddlewareInputs<Middlewares>>\n ) => AnyProgram = (\n context: HonoEffectContext<E, Path, MiddlewareInputs<Middlewares>>\n ) => AnyProgram\n >(\n ...args: HonoRouteArguments<\n Middlewares,\n HonoHandlerFactory<\n HonoEffectContext<E, Path, MiddlewareInputs<Middlewares>>,\n AvailableServices<Provided, RequestLayer>,\n Failure,\n ProgramFactory\n >,\n HonoEffectRouteOptions<\n EffectSuccess<ReturnType<ProgramFactory>>,\n Context<E, Path, MiddlewareInputs<Middlewares>>\n >\n >\n ): Handler<E, Path, MiddlewareInputs<Middlewares>, Promise<Response>>\n handler(...args: unknown[]): Handler<any, any, any, Promise<Response>> {\n const last = args.at(-1)\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- overload dispatch separates route options from function callbacks.\n const hasOptions = args.length > 1 && (last === undefined || typeof last !== 'function')\n // SAFETY: the overloads restrict the optional trailing argument to route options.\n const options = ((hasOptions ? last : {}) ?? {}) as AnyRouteOptions\n const bodyIndex = hasOptions ? args.length - 2 : args.length - 1\n // SAFETY: the overloads place the program factory immediately before route options.\n const makeProgram = args[bodyIndex] as AnyProgramFactory\n let handler = this.makeHandler(makeProgram, options)\n\n for (let index = bodyIndex - 1; index >= 0; index -= 1) {\n // SAFETY: every argument before the program factory is an input middleware by the overloads.\n handler = this.composeInputMiddleware(args[index] as AnyHonoMiddleware, handler)\n }\n\n return handler\n }\n\n gen<\n E extends Env = Env,\n Path extends string = string,\n InputType extends Input = Input,\n const Yield extends EffectYield = EffectYield,\n const Returned extends AnyResult = AnyResult\n >(\n body: GeneratorBody<Context<E, Path, InputType>, Yield, Returned> &\n GeneratorChecks<AvailableServices<Provided, RequestLayer>, Yield, Returned, Failure>,\n options?: HonoEffectRouteOptions<\n EffectSuccess<ProgramFromGenerator<Yield, Returned>>,\n Context<E, Path, InputType>\n >\n ): Handler<E, Path, InputType, Promise<Response>>\n gen<\n const Middlewares extends readonly AnyHonoMiddleware[],\n E extends Env = MiddlewareEnvironment<Middlewares>,\n Path extends string = MiddlewarePath<Middlewares>,\n const Yield extends EffectYield = EffectYield,\n const Returned extends AnyResult = AnyResult\n >(\n ...args: HonoRouteArguments<\n Middlewares,\n GeneratorBody<HonoEffectContext<E, Path, MiddlewareInputs<Middlewares>>, Yield, Returned> &\n GeneratorChecks<AvailableServices<Provided, RequestLayer>, Yield, Returned, Failure>,\n HonoEffectRouteOptions<\n EffectSuccess<ProgramFromGenerator<Yield, Returned>>,\n Context<E, Path, MiddlewareInputs<Middlewares>>\n >\n >\n ): Handler<E, Path, MiddlewareInputs<Middlewares>, Promise<Response>>\n gen(...args: unknown[]): Handler<any, any, any, Promise<Response>> {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- overload dispatch distinguishes middleware from the generator body.\n const last = args.at(-1)\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- overload dispatch separates route options from function callbacks.\n const hasOptions = args.length > 1 && (last === undefined || typeof last !== 'function')\n // SAFETY: the overloads restrict the optional trailing argument to route options.\n const options = ((hasOptions ? last : {}) ?? {}) as AnyRouteOptions\n const bodyIndex = hasOptions ? args.length - 2 : args.length - 1\n // SAFETY: the overloads place the generator body immediately before route options.\n const body = args[bodyIndex] as AnyGeneratorBody\n\n let handler = this.makeHandler((context) => {\n // SAFETY: Effect.fn's runtime generator accepts both sync and async generators; the cast only joins its overloads.\n const program = Effect.fn(\n () => body(context) as AsyncGenerator<EffectYield, AnyResult, unknown>\n )\n\n // SAFETY: the public GeneratorChecks overload validates requirements before this erased boundary.\n return program as AnyProgram\n }, options)\n\n for (let index = bodyIndex - 1; index >= 0; index -= 1) {\n // SAFETY: every argument before the generator body is an input middleware by the overloads.\n handler = this.composeInputMiddleware(args[index] as AnyHonoMiddleware, handler)\n }\n\n return handler\n }\n\n guard<\n E extends Env = Env,\n Path extends string = string,\n InputType extends Input = Input,\n const Yield extends EffectYield = EffectYield,\n const Returned extends AnyResult = AnyResult\n >(\n body: GeneratorBody<Context<E, Path, InputType>, Yield, Returned> &\n GeneratorChecks<AvailableServices<Provided, RequestLayer>, Yield, Returned, Failure>\n ): MiddlewareHandler<E, Path> {\n return async (context, next) => {\n const state = this.getState(context)\n // SAFETY: Effect.fn accepts the sync or async generator supplied by the caller; this joins its overloads.\n const program = Effect.fn(() => body(context) as AsyncGenerator<Yield, Returned, unknown>)\n const result = await program()\n\n if (Result.isError(result)) {\n return await this.handleFailure(state, result.error, context)\n }\n\n await next()\n }\n }\n\n private handleFailure(\n state: RequestState,\n // oxlint-disable-next-line anti-slop/no-unknown-parameters -- Result errors are intentionally opaque at this HTTP boundary.\n error: unknown,\n context: HonoContext\n ): ResponseLike {\n state.failure ??= { cause: error }\n // SAFETY: the public handler, gen, and guard constraints validate this error against Failure.\n return this.onFailure(error as Failure, context)\n }\n\n private makeHandler(\n makeProgram: (context: HonoContext) => AnyProgram,\n options: HonoEffectRouteOptions<any, any>\n ): Handler<any, any, any, Promise<Response>> {\n return async (context) => {\n const state = this.getState(context)\n const program = makeProgram(context)\n const result = await program()\n\n if (Result.isError(result)) {\n return await this.handleFailure(state, result.error, context)\n }\n\n const value = result.value\n\n if (options.respond !== undefined) {\n return await options.respond(value, context)\n }\n\n const success: HonoEffectSuccess<any> = { value }\n\n if (options.status !== undefined) {\n Object.assign(success, { status: options.status })\n }\n\n if (options.serialize !== undefined) {\n Object.assign(success, { serialize: options.serialize })\n }\n\n return await this.onSuccess(success, context)\n }\n }\n\n private composeInputMiddleware(\n inputMiddleware: AnyHonoMiddleware,\n handler: Handler<any, any, any, Promise<Response>>\n ): Handler<any, any, any, Promise<Response>> {\n return async (context, next) => {\n let downstreamResponse: Response | undefined\n let nextCalled = false\n\n // Match Hono's compose guard: a middleware may advance the chain only once.\n const nextOnce = async (): Promise<void> => {\n if (nextCalled) {\n throw new Error('next() called multiple times')\n }\n\n nextCalled = true\n downstreamResponse = await handler(context, next)\n }\n const middlewareResponse = await inputMiddleware(context, nextOnce)\n\n if (middlewareResponse instanceof Response) {\n return middlewareResponse\n }\n\n if (downstreamResponse !== undefined) {\n return downstreamResponse\n }\n\n return context.res\n }\n }\n\n private getState(context: HonoContext): RequestState {\n const state = this.states.get(context)\n\n if (state === undefined) {\n throw new HonoEffectBoundaryMissingError()\n }\n\n return state\n }\n}\n\nexport class HonoEffectBoundaryMissingError extends Error {\n constructor() {\n super('Register HonoEffect.middleware() before better-effect handlers')\n this.name = 'HonoEffectBoundaryMissingError'\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"hono.mjs","names":[],"sources":["../src/hono/request-boundary.ts","../src/hono/responses.ts","../src/hono/hono-effect.ts"],"sourcesContent":["import { Result } from 'better-result'\nimport { createMiddleware } from 'hono/factory'\nimport type { Env, MiddlewareHandler } from 'hono'\n\nimport { Effect } from '../effect'\nimport type { LayerInput } from '../layer/inference'\nimport { Runtime } from '../runtime'\nimport type { AnyService } from '../service'\nimport { WebEffect } from '../web'\nimport type { AnyRouteOptions, HonoContext, HonoEffectSuccess, ResponseLike } from './types'\n\n/* oxlint-disable anti-slop/no-unknown-parameters -- Hono handlers carry opaque Result values until the typed adapter callbacks consume them. */\n\ntype RequestOutcome =\n | {\n readonly kind: 'success'\n readonly value: unknown\n readonly options: AnyRouteOptions\n }\n | {\n readonly kind: 'failure'\n readonly cause: unknown\n }\n | {\n readonly kind: 'defect'\n readonly cause: unknown\n }\n\nexport type RequestState = {\n outcome?: RequestOutcome\n}\n\n// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Result failures are intentionally opaque until the Hono policy narrows them.\nexport const recordRequestFailure = (state: RequestState, cause: unknown): void => {\n state.outcome ??= { kind: 'failure', cause }\n}\n\n// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Route success values retain their public generic type only at the Hono handler boundary.\nexport const recordRequestSuccess = (\n state: RequestState,\n value: unknown,\n options: AnyRouteOptions\n): void => {\n state.outcome ??= { kind: 'success', value, options }\n}\n\nexport type RequestBoundaryOptions<\n Provided extends AnyService,\n RequestLayer extends LayerInput,\n Failure\n> = {\n readonly runtime: Runtime<Provided>\n readonly states: WeakMap<object, RequestState>\n readonly requestLayer?: ((context: HonoContext) => RequestLayer) | undefined\n readonly onSuccess: (result: HonoEffectSuccess<any>, context: HonoContext) => ResponseLike\n readonly onFailure: (error: Failure, context: HonoContext) => ResponseLike\n}\n\ntype BoundaryOptions<RequestLayer extends LayerInput> = {\n readonly requestLayer?: (request: Request) => RequestLayer\n readonly onSuccess: (result: { readonly value: unknown }) => ResponseLike\n readonly onFailure: (error: unknown) => ResponseLike\n}\n\nconst makeBoundaryOptions = <Provided extends AnyService, RequestLayer extends LayerInput, Failure>(\n options: RequestBoundaryOptions<Provided, RequestLayer, Failure>,\n state: RequestState,\n context: HonoContext\n): BoundaryOptions<RequestLayer> => {\n const boundaryOptions: BoundaryOptions<RequestLayer> = {\n onSuccess: ({ value }) => {\n if (context.finalized) {\n return context.res\n }\n\n const outcome = state.outcome\n\n if (outcome?.kind !== 'success') {\n // SAFETY: Values without a Hono route outcome are existing Web Responses; WebEffect validates them.\n return value as Response\n }\n\n if (outcome.options.respond !== undefined) {\n return outcome.options.respond(value, context)\n }\n\n const success: HonoEffectSuccess = { value }\n\n if (outcome.options.status !== undefined) {\n Object.assign(success, { status: outcome.options.status })\n }\n\n if (outcome.options.serialize !== undefined) {\n Object.assign(success, { serialize: outcome.options.serialize })\n }\n\n return options.onSuccess(success, context)\n },\n onFailure: (error) => {\n if (context.error !== undefined || context.finalized) {\n return context.res\n }\n\n if (state.outcome?.kind === 'defect') {\n // SAFETY: Hono has already converted its Error into context.res through app.onError; WebEffect validates it.\n return context.res\n }\n\n // SAFETY: HonoEffect validates the Program failure channel against Failure before this erased Web boundary.\n return options.onFailure(error as Failure, context)\n }\n }\n\n if (options.requestLayer !== undefined) {\n Object.assign(boundaryOptions, {\n requestLayer: (_request: Request) => options.requestLayer!(context)\n })\n }\n\n return boundaryOptions\n}\n\nconst selectBoundaryResult = (state: RequestState, context: HonoContext) => {\n const outcome = state.outcome\n\n if (outcome?.kind === 'failure') {\n return Result.err(outcome.cause)\n }\n\n if (context.error !== undefined) {\n state.outcome = { kind: 'defect', cause: context.error }\n return Result.err(context.error)\n }\n\n if (outcome?.kind === 'success') {\n return Result.ok(outcome.value)\n }\n\n return Result.ok(context.res)\n}\n\nexport const makeRequestBoundary = <\n Provided extends AnyService,\n RequestLayer extends LayerInput,\n Failure,\n E extends Env = Env,\n Path extends string = string\n>(\n options: RequestBoundaryOptions<Provided, RequestLayer, Failure>\n): MiddlewareHandler<E, Path> => {\n // SAFETY: createMiddleware preserves the Hono handler contract; only the generic Context is restored here.\n return createMiddleware(async (context, next) => {\n const key = context\n const existing = options.states.get(key)\n\n if (existing !== undefined) {\n await next()\n return\n }\n\n const state: RequestState = {}\n options.states.set(key, state)\n\n try {\n // oxlint-disable-next-line require-yield -- The bridge turns the complete Hono chain into one lazy WebEffect Program.\n const program = Effect.fn(async function* () {\n await next()\n return selectBoundaryResult(state, context)\n })\n const boundaryOptions = makeBoundaryOptions(options, state, context)\n let response: Response\n\n if (options.requestLayer === undefined) {\n response = await WebEffect.handle(options.runtime, context.req.raw, program, {\n onSuccess: boundaryOptions.onSuccess,\n onFailure: boundaryOptions.onFailure\n })\n } else {\n const requestBoundaryOptions = {\n onSuccess: boundaryOptions.onSuccess,\n onFailure: boundaryOptions.onFailure,\n requestLayer: (_request: Request) => options.requestLayer!(context)\n }\n // SAFETY: HonoEffect.make validates the concrete request Layer before this erased WebEffect dispatch.\n response = await WebEffect.handle(\n options.runtime,\n context.req.raw,\n program,\n requestBoundaryOptions as never\n )\n }\n\n if (!context.finalized || context.res !== response) {\n context.res = response\n }\n } finally {\n options.states.delete(key)\n }\n }) as MiddlewareHandler<E, Path>\n}\n","import type { HonoContext, HonoEffectSuccess } from './types'\n\nconst DEFAULT_FAILURE_MESSAGE = 'Internal Server Error'\n\nexport const defaultSuccess = (\n { value, status, serialize }: HonoEffectSuccess,\n context: HonoContext\n): Response => {\n if (value instanceof Response) {\n return value\n }\n\n const body = serialize === undefined ? value : serialize(value)\n\n if (body === undefined) {\n // SAFETY: route status is intentionally configurable and Hono validates it at response construction.\n return context.body(null, (status ?? 204) as never)\n }\n\n if (status === undefined) {\n return context.json({ data: body })\n }\n\n // SAFETY: route status is intentionally configurable and Hono validates it at response construction.\n return context.json({ data: body }, status as never)\n}\n\n// oxlint-disable-next-line anti-slop/no-unknown-parameters -- Result errors are intentionally opaque at this HTTP boundary.\nexport const defaultFailure = (error: unknown, context: HonoContext): Response => {\n if (error instanceof Response) {\n return error\n }\n\n return context.json({ error: DEFAULT_FAILURE_MESSAGE }, 500)\n}\n","import { Result } from 'better-result'\nimport type { Context, Env, Handler, Input, MiddlewareHandler } from 'hono'\n\nimport { Effect } from '../effect'\nimport type { EffectSuccess, EffectYield, ProgramFromGenerator } from '../effect/types'\nimport { Runtime } from '../runtime'\nimport type { LayerInput } from '../layer/inference'\nimport type { AnyService } from '../service'\nimport {\n makeRequestBoundary,\n recordRequestFailure,\n recordRequestSuccess,\n type RequestState\n} from './request-boundary'\nimport { assertResponse } from '../web/responses'\nimport { defaultFailure, defaultSuccess } from './responses'\nimport type {\n AnyGeneratorBody,\n AnyHonoMiddleware,\n AnyProgram,\n AnyProgramFactory,\n AnyResult,\n AnyRouteOptions,\n AvailableServices,\n CompleteProgram,\n DefaultRequestLayer,\n GeneratorBody,\n GeneratorChecks,\n HonoContext,\n HonoEffectContext,\n HonoEffectOptions,\n HonoEffectRouteOptions,\n HonoEffectSuccess,\n HonoRequestLayerChecks,\n MiddlewareEnvironment,\n MiddlewareInputs,\n MiddlewarePath\n} from './types'\n\ntype HonoRouteArguments<Middlewares extends readonly AnyHonoMiddleware[], Body, Options> =\n | [...middlewares: Middlewares, body: Body]\n | [...middlewares: Middlewares, body: Body, options: Options | undefined]\n\ntype HonoInternalHandler = (\n context: HonoContext,\n next: () => Promise<void>\n) => Promise<Response | void>\n\ntype HonoHandlerFactory<\n ContextType extends object,\n Provided extends AnyService,\n Failure,\n ProgramFactory extends (context: ContextType) => AnyProgram\n> = ProgramFactory &\n ([ReturnType<ProgramFactory>] extends [\n CompleteProgram<Provided, ReturnType<ProgramFactory>, Failure>\n ]\n ? unknown\n : (context: ContextType) => CompleteProgram<Provided, ReturnType<ProgramFactory>, Failure>)\n\n/** Run Effect Programs inside one Runtime execution per Hono request. */\nexport class HonoEffect<\n Provided extends AnyService = any,\n Failure = unknown,\n RequestLayer extends LayerInput = DefaultRequestLayer\n> {\n readonly runtime: Runtime<Provided>\n\n private readonly states = new WeakMap<object, RequestState>()\n\n private readonly onSuccess: NonNullable<HonoEffectOptions<Failure, RequestLayer>['onSuccess']>\n\n private readonly onFailure: NonNullable<HonoEffectOptions<Failure, RequestLayer>['onFailure']>\n\n private readonly requestLayer: HonoEffectOptions<Failure, RequestLayer>['requestLayer']\n\n private constructor(\n runtime: Runtime<Provided>,\n options: HonoEffectOptions<Failure, RequestLayer>\n ) {\n this.runtime = runtime\n this.onSuccess = options.onSuccess ?? defaultSuccess\n this.onFailure = options.onFailure ?? defaultFailure\n this.requestLayer = options.requestLayer\n }\n\n static make<\n Provided extends AnyService,\n Failure = unknown,\n RequestLayer extends LayerInput = DefaultRequestLayer\n >(\n runtime: Runtime<Provided>,\n options?: HonoEffectOptions<Failure, RequestLayer> &\n HonoRequestLayerChecks<Provided, RequestLayer>\n ): HonoEffect<Provided, Failure, RequestLayer> {\n return new HonoEffect(runtime, options ?? {})\n }\n\n middleware<E extends Env = Env, Path extends string = string>(): MiddlewareHandler<E, Path> {\n return makeRequestBoundary<Provided, RequestLayer, Failure, E, Path>({\n runtime: this.runtime,\n states: this.states,\n requestLayer: this.requestLayer,\n onSuccess: this.onSuccess,\n onFailure: this.onFailure\n })\n }\n\n handler<\n E extends Env = Env,\n Path extends string = string,\n InputType extends Input = Input,\n Program extends AnyProgram = AnyProgram\n >(\n makeProgram: (\n context: Context<E, Path, InputType>\n ) => CompleteProgram<AvailableServices<Provided, RequestLayer>, Program, Failure>,\n options?: HonoEffectRouteOptions<EffectSuccess<Program>, Context<E, Path, InputType>>\n ): Handler<E, Path, InputType, Promise<Response>>\n handler<\n const Middlewares extends readonly AnyHonoMiddleware[],\n E extends Env = MiddlewareEnvironment<Middlewares>,\n Path extends string = MiddlewarePath<Middlewares>,\n const ProgramFactory extends (\n context: HonoEffectContext<E, Path, MiddlewareInputs<Middlewares>>\n ) => AnyProgram = (\n context: HonoEffectContext<E, Path, MiddlewareInputs<Middlewares>>\n ) => AnyProgram\n >(\n ...args: HonoRouteArguments<\n Middlewares,\n HonoHandlerFactory<\n HonoEffectContext<E, Path, MiddlewareInputs<Middlewares>>,\n AvailableServices<Provided, RequestLayer>,\n Failure,\n ProgramFactory\n >,\n HonoEffectRouteOptions<\n EffectSuccess<ReturnType<ProgramFactory>>,\n Context<E, Path, MiddlewareInputs<Middlewares>>\n >\n >\n ): Handler<E, Path, MiddlewareInputs<Middlewares>, Promise<Response>>\n handler(...args: unknown[]): Handler<any, any, any, Promise<Response>> {\n const last = args.at(-1)\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- overload dispatch separates route options from function callbacks.\n const hasOptions = args.length > 1 && (last === undefined || typeof last !== 'function')\n // SAFETY: the overloads restrict the optional trailing argument to route options.\n const options = ((hasOptions ? last : {}) ?? {}) as AnyRouteOptions\n const bodyIndex = hasOptions ? args.length - 2 : args.length - 1\n // SAFETY: the overloads place the program factory immediately before route options.\n const makeProgram = args[bodyIndex] as AnyProgramFactory\n let handler = this.makeHandler(makeProgram, options)\n\n for (let index = bodyIndex - 1; index >= 0; index -= 1) {\n // SAFETY: every argument before the program factory is an input middleware by the overloads.\n handler = this.composeInputMiddleware(args[index] as AnyHonoMiddleware, handler)\n }\n\n // SAFETY: The public overload retains HonoEffect's Promise<Response> source contract; Hono also accepts the internal Promise<void> completion.\n return handler as Handler<any, any, any, Promise<Response>>\n }\n\n gen<\n E extends Env = Env,\n Path extends string = string,\n InputType extends Input = Input,\n const Yield extends EffectYield = EffectYield,\n const Returned extends AnyResult = AnyResult\n >(\n body: GeneratorBody<Context<E, Path, InputType>, Yield, Returned> &\n GeneratorChecks<AvailableServices<Provided, RequestLayer>, Yield, Returned, Failure>,\n options?: HonoEffectRouteOptions<\n EffectSuccess<ProgramFromGenerator<Yield, Returned>>,\n Context<E, Path, InputType>\n >\n ): Handler<E, Path, InputType, Promise<Response>>\n gen<\n const Middlewares extends readonly AnyHonoMiddleware[],\n E extends Env = MiddlewareEnvironment<Middlewares>,\n Path extends string = MiddlewarePath<Middlewares>,\n const Yield extends EffectYield = EffectYield,\n const Returned extends AnyResult = AnyResult\n >(\n ...args: HonoRouteArguments<\n Middlewares,\n GeneratorBody<HonoEffectContext<E, Path, MiddlewareInputs<Middlewares>>, Yield, Returned> &\n GeneratorChecks<AvailableServices<Provided, RequestLayer>, Yield, Returned, Failure>,\n HonoEffectRouteOptions<\n EffectSuccess<ProgramFromGenerator<Yield, Returned>>,\n Context<E, Path, MiddlewareInputs<Middlewares>>\n >\n >\n ): Handler<E, Path, MiddlewareInputs<Middlewares>, Promise<Response>>\n gen(...args: unknown[]): Handler<any, any, any, Promise<Response>> {\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- overload dispatch distinguishes middleware from the generator body.\n const last = args.at(-1)\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- overload dispatch separates route options from function callbacks.\n const hasOptions = args.length > 1 && (last === undefined || typeof last !== 'function')\n // SAFETY: the overloads restrict the optional trailing argument to route options.\n const options = ((hasOptions ? last : {}) ?? {}) as AnyRouteOptions\n const bodyIndex = hasOptions ? args.length - 2 : args.length - 1\n // SAFETY: the overloads place the generator body immediately before route options.\n const body = args[bodyIndex] as AnyGeneratorBody\n\n let handler = this.makeHandler((context) => {\n // SAFETY: Effect.fn's runtime generator accepts both sync and async generators; the cast only joins its overloads.\n const program = Effect.fn(\n () => body(context) as AsyncGenerator<EffectYield, AnyResult, unknown>\n )\n\n // SAFETY: the public GeneratorChecks overload validates requirements before this erased boundary.\n return program as AnyProgram\n }, options)\n\n for (let index = bodyIndex - 1; index >= 0; index -= 1) {\n // SAFETY: every argument before the generator body is an input middleware by the overloads.\n handler = this.composeInputMiddleware(args[index] as AnyHonoMiddleware, handler)\n }\n\n // SAFETY: The public overload retains HonoEffect's Promise<Response> source contract; Hono also accepts the internal Promise<void> completion.\n return handler as Handler<any, any, any, Promise<Response>>\n }\n\n guard<\n E extends Env = Env,\n Path extends string = string,\n InputType extends Input = Input,\n const Yield extends EffectYield = EffectYield,\n const Returned extends AnyResult = AnyResult\n >(\n body: GeneratorBody<Context<E, Path, InputType>, Yield, Returned> &\n GeneratorChecks<AvailableServices<Provided, RequestLayer>, Yield, Returned, Failure>\n ): MiddlewareHandler<E, Path> {\n return async (context, next) => {\n const state = this.getState(context)\n // SAFETY: Effect.fn accepts the sync or async generator supplied by the caller; this joins its overloads.\n const program = Effect.fn(() => body(context) as AsyncGenerator<Yield, Returned, unknown>)\n const result = await program()\n\n if (Result.isError(result)) {\n return await this.handleFailure(state, result.error, context)\n }\n\n await next()\n }\n }\n\n private recordFailure(\n state: RequestState,\n // oxlint-disable-next-line anti-slop/no-unknown-parameters -- Result errors are intentionally opaque until the WebEffect policy narrows them.\n error: unknown\n ): void {\n recordRequestFailure(state, error)\n }\n\n private makeHandler(\n makeProgram: (context: HonoContext) => AnyProgram,\n options: HonoEffectRouteOptions<any, any>\n ): HonoInternalHandler {\n return async (context) => {\n const state = this.getState(context)\n const result = await makeProgram(context)()\n\n if (Result.isError(result)) {\n return await this.handleFailure(state, result.error, context)\n }\n\n recordRequestSuccess(state, result.value, options)\n return await this.handleSuccess(result.value, options, context)\n }\n }\n\n private async handleSuccess(\n // oxlint-disable-next-line anti-slop/no-unknown-parameters -- Route values are intentionally opaque until the Hono success policy consumes them.\n value: unknown,\n options: AnyRouteOptions,\n context: HonoContext\n ): Promise<Response> {\n if (options.respond !== undefined) {\n return assertResponse(await options.respond(value, context))\n }\n\n const success: HonoEffectSuccess = { value }\n\n if (options.status !== undefined) {\n Object.assign(success, { status: options.status })\n }\n\n if (options.serialize !== undefined) {\n Object.assign(success, { serialize: options.serialize })\n }\n\n return assertResponse(await this.onSuccess(success, context))\n }\n\n private async handleFailure(\n state: RequestState,\n // oxlint-disable-next-line anti-slop/no-unknown-parameters -- Result errors are intentionally opaque until the Hono failure policy consumes them.\n error: unknown,\n context: HonoContext\n ): Promise<Response> {\n this.recordFailure(state, error)\n // SAFETY: The public handler, generator, and guard constraints validate this error against Failure.\n return assertResponse(await this.onFailure(error as Failure, context))\n }\n\n private composeInputMiddleware(\n inputMiddleware: AnyHonoMiddleware,\n handler: HonoInternalHandler\n ): HonoInternalHandler {\n return async (context, next) => {\n let downstreamResponse: Response | undefined\n let nextCalled = false\n\n // Match Hono's compose guard: a middleware may advance the chain only once.\n const nextOnce = async (): Promise<void> => {\n if (nextCalled) {\n throw new Error('next() called multiple times')\n }\n\n nextCalled = true\n const response = await handler(context, next)\n\n if (response !== undefined) {\n downstreamResponse = response\n }\n }\n const middlewareResponse = await inputMiddleware(context, nextOnce)\n\n if (middlewareResponse instanceof Response) {\n return middlewareResponse\n }\n\n if (downstreamResponse !== undefined) {\n return downstreamResponse\n }\n\n if (context.finalized) {\n return context.res\n }\n }\n }\n\n private getState(context: HonoContext): RequestState {\n const state = this.states.get(context)\n\n if (state === undefined) {\n throw new HonoEffectBoundaryMissingError()\n }\n\n return state\n }\n}\n\nexport class HonoEffectBoundaryMissingError extends Error {\n constructor() {\n super('Register HonoEffect.middleware() before better-effect handlers')\n this.name = 'HonoEffectBoundaryMissingError'\n }\n}\n"],"mappings":"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"}
@@ -313,6 +313,8 @@ interface RuntimeContext {
313
313
  readonly scope?: Scope;
314
314
  readonly signal?: AbortSignal;
315
315
  readonly resolutionPath: readonly AnyServiceToken[];
316
+ /** Runtime execution owner, omitted for warmup and Runtime-root activity. */
317
+ readonly executionId?: string;
316
318
  }
317
319
  /** Host-specific storage for the current RuntimeContext. */
318
320
  interface RuntimeContextStorage {
@@ -371,4 +373,4 @@ declare class ServiceAcquisitionError extends Error {
371
373
  }
372
374
  //#endregion
373
375
  export { ProgramFromGenerator as A, ServiceTag as B, EffectError as C, EffectYield as D, EffectSuccess as E, ServiceContract as F, ServiceToken as H, ServiceIdentity as I, ServiceIdentityTypeId as L, AnyService as M, AnyServiceToken as N, InferYieldRequirements as O, ServiceClass as P, ServiceInstance as R, Effect as S, EffectRequirements as T, ServiceTokenOf as U, ServiceTagOf as V, ScopeCloseError as _, ServiceResolver as a, Service as b, RuntimeContextStorage as c, CleanupFailureDiagnostic as d, DisposableResource as f, ResourceNotDisposableError as g, ScopeOutcome as h, ServiceRuntimeNotConfiguredError as i, ServiceRequirement as j, Program as k, CloseableScope as l, ScopeFinalizer as m, ServiceAcquisitionError as n, ServiceRuntime as o, MaybePromise as p, ServiceNotFoundError as r, RuntimeContext as s, CircularDependencyError as t, Scope as u, ScopeClosedError as v, EffectFromGenerator as w, AnyEffect as x, ScopeRuntimeNotConfiguredError as y, ServiceRequirements as z };
374
- //# sourceMappingURL=index-heuaRmXR.d.mts.map
376
+ //# sourceMappingURL=index-AiKM71-u.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-heuaRmXR.d.mts","names":[],"sources":["../src/service/types.ts","../src/effect/types.ts","../src/service/service.ts","../src/scope/errors.ts","../src/scope/types.ts","../src/scope/scope.ts","../src/runtime/context.ts","../src/service/runtime.ts","../src/service/errors.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index-AiKM71-u.d.mts","names":[],"sources":["../src/service/types.ts","../src/effect/types.ts","../src/service/service.ts","../src/scope/errors.ts","../src/scope/types.ts","../src/scope/scope.ts","../src/runtime/context.ts","../src/service/runtime.ts","../src/service/errors.ts"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { M as AnyService, h as ScopeOutcome } from "./index-heuaRmXR.mjs";
2
- import { C as CompleteExecution, D as LayerInput, M as ProvidedEnvironment, T as CompleteInput, a as RuntimeShutdownDiagnostic, i as RuntimeRunOptions, n as RuntimeDisposeOptions, r as RuntimeOptions, w as CompleteExecutionLayer, x as Layer, y as LayerBackend } from "./outcome-CB43bnFW.mjs";
3
- import "./index-BMdU_Z72.mjs";
4
- import "./index-CX6iAoCB.mjs";
1
+ import { M as AnyService, h as ScopeOutcome } from "./index-AiKM71-u.mjs";
2
+ import { _ as CompleteInput, a as RuntimeShutdownDiagnostic, d as LayerBackend, g as CompleteExecutionLayer, h as CompleteExecution, i as RuntimeRunOptions, n as RuntimeDisposeOptions, p as Layer, r as RuntimeOptions, w as ProvidedEnvironment, y as LayerInput } from "./outcome-DI8LPIQ4.mjs";
3
+ import "./observer-9nhbL7Pr.mjs";
4
+ import "./index-DAKn0qHk.mjs";
5
+ import "./index-CCi07kUw.mjs";
5
6
  import { Result, UnhandledException } from "better-result";
6
7
  //#region src/runtime/types.d.ts
7
8
  /** A detached diagnostic view of one active Runtime execution. */
@@ -176,4 +177,4 @@ declare const Resource: {
176
177
  };
177
178
  //#endregion
178
179
  export { ReleaseOutcome as a, CurrentAbortSignal as c, RuntimeFor as d, RuntimeInspection as f, ReleaseFailureObserver as i, Runtime as l, AcquireUseReleaseOptions as n, ResourceReleaseFailure as o, AsyncResult as r, pipe as s, Resource as t, RuntimeExecutionInspection as u };
179
- //# sourceMappingURL=index-GYJ4qm9K.d.mts.map
180
+ //# sourceMappingURL=index-BodMy6rO.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BodMy6rO.d.mts","names":[],"sources":["../src/runtime/types.ts","../src/runtime/runtime.ts","../src/runtime/signal.ts","../src/function/pipe.ts","../src/resource/errors.ts","../src/resource/types.ts","../src/resource/resource.ts"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { A as ProgramFromGenerator, C as EffectError, D as EffectYield, E as EffectSuccess, M as AnyService, S as Effect$1, T as EffectRequirements, f as DisposableResource, h as ScopeOutcome, k as Program$1, p as MaybePromise, w as EffectFromGenerator, x as AnyEffect } from "./index-heuaRmXR.mjs";
1
+ import { A as ProgramFromGenerator, C as EffectError, D as EffectYield, E as EffectSuccess, M as AnyService, S as Effect$1, T as EffectRequirements, f as DisposableResource, h as ScopeOutcome, k as Program$1, p as MaybePromise, w as EffectFromGenerator, x as AnyEffect } from "./index-AiKM71-u.mjs";
2
2
  import { Err, Result, UnhandledException } from "better-result";
3
3
  //#region src/effect/combinators.d.ts
4
4
  type EffectInput<A, E> = Result<A, E> | PromiseLike<Result<A, E>>;
@@ -397,4 +397,4 @@ declare namespace Effect {
397
397
  }
398
398
  //#endregion
399
399
  export { Program as n, ProgramAllOptions as r, Effect as t };
400
- //# sourceMappingURL=index-CX6iAoCB.d.mts.map
400
+ //# sourceMappingURL=index-CCi07kUw.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CX6iAoCB.d.mts","names":[],"sources":["../src/effect/combinators.ts","../src/effect/program-combinators.ts","../src/effect/effect.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index-CCi07kUw.d.mts","names":[],"sources":["../src/effect/combinators.ts","../src/effect/program-combinators.ts","../src/effect/effect.ts"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { N as AnyServiceToken } from "./index-heuaRmXR.mjs";
2
- import { S as LayerRegistration, b as LayerBackendDisposeOptions, y as LayerBackend } from "./outcome-CB43bnFW.mjs";
1
+ import { N as AnyServiceToken } from "./index-AiKM71-u.mjs";
2
+ import { d as LayerBackend, f as LayerBackendDisposeOptions, m as LayerRegistration } from "./outcome-DI8LPIQ4.mjs";
3
+ import "./observer-9nhbL7Pr.mjs";
3
4
  //#region src/layer/map-layer-backend.d.ts
4
5
  /** Native map-backed Layer backend used by Runtime when no adapter is supplied. */
5
6
  declare class MapLayerBackend implements LayerBackend {
@@ -15,4 +16,4 @@ declare class MapLayerBackend implements LayerBackend {
15
16
  }
16
17
  //#endregion
17
18
  export { MapLayerBackend as t };
18
- //# sourceMappingURL=index-BMdU_Z72.d.mts.map
19
+ //# sourceMappingURL=index-DAKn0qHk.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DAKn0qHk.d.mts","names":[],"sources":["../src/layer/map-layer-backend.ts"],"mappings":";;;;;cAca,2BAA2B;mBACrB;mBAEA;mBAEA;;EAGjB,SAAS,cAAc;;EAiBjB,QAAQ,UAAU,iBAAiB,OAAO,IAAI,QAAQ,aAAa;;EA6CnE,WAAW,UAAU,6BAA6B"}
@@ -1,6 +1,7 @@
1
- import { H as ServiceToken, I as ServiceIdentity, b as Service, j as ServiceRequirement } from "./index-heuaRmXR.mjs";
2
- import { R as ProviderEntry, k as LayerResult } from "./outcome-CB43bnFW.mjs";
3
- import "./index-GYJ4qm9K.mjs";
1
+ import { H as ServiceToken, I as ServiceIdentity, b as Service, j as ServiceRequirement } from "./index-AiKM71-u.mjs";
2
+ import { A as ProviderEntry, x as LayerResult } from "./outcome-DI8LPIQ4.mjs";
3
+ import "./index-BodMy6rO.mjs";
4
+ import "./current-request-CIU7AHhF.mjs";
4
5
  import { Err, StandardSchemaV1, UnhandledException } from "better-result";
5
6
  //#region src/standard-services/config.d.ts
6
7
  /** Raw string values supplied to a configuration schema. */
@@ -229,21 +230,6 @@ declare class LoggerTest implements Service.Contract<Logger> {
229
230
  static layer(logger?: LoggerTest): LayerResult<ProviderEntry<Logger, never>>;
230
231
  }
231
232
  declare const LoggerTestLayer: () => LayerResult<ProviderEntry<Logger, never>>;
232
- declare const CurrentRequest_base: (abstract new () => ServiceIdentity<"CurrentRequest">) & {
233
- readonly name: string;
234
- readonly serviceTag: "CurrentRequest";
235
- } & {
236
- readonly of: Service.FactoryOf<CurrentRequest, "CurrentRequest">;
237
- readonly [Symbol.asyncIterator]: (this: ServiceToken<"CurrentRequest", CurrentRequest & ServiceIdentity<"CurrentRequest">>) => AsyncGenerator<ServiceRequirement<CurrentRequest>, CurrentRequest, unknown>;
238
- };
239
- /** Execution-local request value carried by a normal Service provider. */
240
- declare class CurrentRequest extends CurrentRequest_base {
241
- readonly value: unknown;
242
- readonly request: unknown;
243
- constructor(value: unknown);
244
- static layer(value: unknown): LayerResult<ProviderEntry<CurrentRequest, never>>;
245
- }
246
- declare const CurrentRequestLayer: (value: unknown) => LayerResult<ProviderEntry<CurrentRequest, never>>;
247
233
  //#endregion
248
- export { ConfigIssue as A, IdGeneratorTest as C, ConfigError as D, Config as E, ConfigSourceOptions as F, ConfigValidationError as I, ConfigValue as L, ConfigOutput as M, ConfigSource as N, ConfigFromEnvOptions as O, ConfigSourceError as P, StandardSchemaV1 as R, IdGeneratorLive as S, IdGeneratorUnavailableError as T, RandomLive as _, ClockTestLayer as a, IdGenerator as b, CurrentRequestLayer as c, LoggerEvent as d, LoggerLevel as f, Random as g, LoggerTestLayer as h, ClockTest as i, ConfigLive as j, ConfigInput as k, Logger as l, LoggerTest as m, ClockLive as n, ClockTestRunAllOptions as o, LoggerLive as p, ClockSleepOptions as r, CurrentRequest as s, Clock as t, LoggerData as u, RandomSeeded as v, IdGeneratorTestLayer as w, IdGeneratorExhaustedError as x, RandomSeededLayer as y };
249
- //# sourceMappingURL=index-B1nH4luq.d.mts.map
234
+ export { ConfigOutput as A, IdGeneratorUnavailableError as C, ConfigInput as D, ConfigFromEnvOptions as E, ConfigValue as F, StandardSchemaV1 as I, ConfigSourceError as M, ConfigSourceOptions as N, ConfigIssue as O, ConfigValidationError as P, IdGeneratorTestLayer as S, ConfigError as T, RandomSeededLayer as _, ClockTestLayer as a, IdGeneratorLive as b, LoggerData as c, LoggerLive as d, LoggerTest as f, RandomSeeded as g, RandomLive as h, ClockTest as i, ConfigSource as j, ConfigLive as k, LoggerEvent as l, Random as m, ClockLive as n, ClockTestRunAllOptions as o, LoggerTestLayer as p, ClockSleepOptions as r, Logger as s, Clock as t, LoggerLevel as u, IdGenerator as v, Config as w, IdGeneratorTest as x, IdGeneratorExhaustedError as y };
235
+ //# sourceMappingURL=index-cXgyMa0v.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-cXgyMa0v.d.mts","names":[],"sources":["../src/standard-services/config.ts","../src/standard-services/id-generator.ts","../src/standard-services/index.ts"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,7 +1,8 @@
1
- import { B as ServiceTag, C as EffectError, D as EffectYield, E as EffectSuccess, F as ServiceContract, H as ServiceToken, I as ServiceIdentity, M as AnyService, N as AnyServiceToken, P as ServiceClass, R as ServiceInstance, T as EffectRequirements, U as ServiceTokenOf, _ as ScopeCloseError, a as ServiceResolver, b as Service, c as RuntimeContextStorage, d as CleanupFailureDiagnostic, f as DisposableResource, g as ResourceNotDisposableError, h as ScopeOutcome, i as ServiceRuntimeNotConfiguredError, j as ServiceRequirement, l as CloseableScope, m as ScopeFinalizer, n as ServiceAcquisitionError, o as ServiceRuntime, r as ServiceNotFoundError, s as RuntimeContext, t as CircularDependencyError, u as Scope, v as ScopeClosedError, x as AnyEffect, y as ScopeRuntimeNotConfiguredError, z as ServiceRequirements } from "./index-heuaRmXR.mjs";
2
- import { S as LayerRegistration, _ as LayerRegistrationError, a as RuntimeShutdownDiagnostic, b as LayerBackendDisposeOptions, c as RuntimeExecutionMetadata, d as RuntimeResourceReleaseEvent, f as RuntimeServiceAcquireEvent, g as LayerGeneratorYieldError, h as LayerDisposeError, i as RuntimeRunOptions, l as RuntimeExecutionStartEvent, m as DuplicateServiceError, n as RuntimeDisposeOptions, o as RuntimeExecutionAttributes, p as RuntimeServiceResolveEvent, r as RuntimeOptions, s as RuntimeExecutionEndEvent, t as CleanupFailureObserver, u as RuntimeObserver, v as ServiceTagCollisionError, x as Layer, y as LayerBackend } from "./outcome-CB43bnFW.mjs";
3
- import { t as MapLayerBackend } from "./index-BMdU_Z72.mjs";
4
- import { a as ReleaseOutcome, c as CurrentAbortSignal, d as RuntimeFor, f as RuntimeInspection, i as ReleaseFailureObserver, l as Runtime, n as AcquireUseReleaseOptions, o as ResourceReleaseFailure, r as AsyncResult, s as pipe, t as Resource, u as RuntimeExecutionInspection } from "./index-GYJ4qm9K.mjs";
1
+ import { B as ServiceTag, C as EffectError, D as EffectYield, E as EffectSuccess, F as ServiceContract, H as ServiceToken, I as ServiceIdentity, M as AnyService, N as AnyServiceToken, P as ServiceClass, R as ServiceInstance, T as EffectRequirements, U as ServiceTokenOf, _ as ScopeCloseError, a as ServiceResolver, b as Service, c as RuntimeContextStorage, d as CleanupFailureDiagnostic, f as DisposableResource, g as ResourceNotDisposableError, h as ScopeOutcome, i as ServiceRuntimeNotConfiguredError, j as ServiceRequirement, l as CloseableScope, m as ScopeFinalizer, n as ServiceAcquisitionError, o as ServiceRuntime, r as ServiceNotFoundError, s as RuntimeContext, t as CircularDependencyError, u as Scope, v as ScopeClosedError, x as AnyEffect, y as ScopeRuntimeNotConfiguredError, z as ServiceRequirements } from "./index-AiKM71-u.mjs";
2
+ import { a as RuntimeShutdownDiagnostic, c as LayerGeneratorYieldError, d as LayerBackend, f as LayerBackendDisposeOptions, i as RuntimeRunOptions, l as LayerRegistrationError, m as LayerRegistration, n as RuntimeDisposeOptions, o as DuplicateServiceError, p as Layer, r as RuntimeOptions, s as LayerDisposeError, t as CleanupFailureObserver, u as ServiceTagCollisionError } from "./outcome-DI8LPIQ4.mjs";
3
+ import { a as RuntimeObserver, c as RuntimeServiceResolveEvent, i as RuntimeExecutionStartEvent, n as RuntimeExecutionEndEvent, o as RuntimeResourceReleaseEvent, r as RuntimeExecutionMetadata, s as RuntimeServiceAcquireEvent, t as RuntimeExecutionAttributes } from "./observer-9nhbL7Pr.mjs";
4
+ import { t as MapLayerBackend } from "./index-DAKn0qHk.mjs";
5
+ import { a as ReleaseOutcome, c as CurrentAbortSignal, d as RuntimeFor, f as RuntimeInspection, i as ReleaseFailureObserver, l as Runtime, n as AcquireUseReleaseOptions, o as ResourceReleaseFailure, r as AsyncResult, s as pipe, t as Resource, u as RuntimeExecutionInspection } from "./index-BodMy6rO.mjs";
5
6
  import { t as RuntimeContextNotConfiguredError } from "./errors-BKcsQ0ip.mjs";
6
- import { n as Program, r as ProgramAllOptions, t as Effect } from "./index-CX6iAoCB.mjs";
7
+ import { n as Program, r as ProgramAllOptions, t as Effect } from "./index-CCi07kUw.mjs";
7
8
  export { type AcquireUseReleaseOptions, type AnyEffect, type AnyService, type AnyServiceToken, type AsyncResult, CircularDependencyError, type CleanupFailureDiagnostic, type CleanupFailureObserver, type CloseableScope, CurrentAbortSignal, type DisposableResource, DuplicateServiceError, Effect, type EffectError, type EffectRequirements, type EffectSuccess, type EffectYield, Layer, type LayerBackend, type LayerBackendDisposeOptions, LayerDisposeError, LayerGeneratorYieldError, type LayerRegistration, LayerRegistrationError, MapLayerBackend, Program, type ProgramAllOptions, type ReleaseFailureObserver, type ReleaseOutcome, Resource, ResourceNotDisposableError, ResourceReleaseFailure, Runtime, type RuntimeContext, RuntimeContextNotConfiguredError, type RuntimeContextStorage, type RuntimeDisposeOptions, type RuntimeExecutionAttributes, type RuntimeExecutionEndEvent, type RuntimeExecutionInspection, type RuntimeExecutionMetadata, type RuntimeExecutionStartEvent, type RuntimeFor, type RuntimeInspection, RuntimeObserver, type RuntimeOptions, type RuntimeResourceReleaseEvent, type RuntimeRunOptions, type RuntimeServiceAcquireEvent, type RuntimeServiceResolveEvent, type RuntimeShutdownDiagnostic, Scope, ScopeCloseError, ScopeClosedError, type ScopeFinalizer, type ScopeOutcome, ScopeRuntimeNotConfiguredError, Service, ServiceAcquisitionError, type ServiceClass, type ServiceContract, type ServiceIdentity, type ServiceInstance, ServiceNotFoundError, type ServiceRequirement, type ServiceRequirements, type ServiceResolver, ServiceRuntime, ServiceRuntimeNotConfiguredError, type ServiceTag, ServiceTagCollisionError, type ServiceToken, type ServiceTokenOf, pipe };
package/dist/index.mjs CHANGED
@@ -1,10 +1,11 @@
1
1
  import { a as LayerGeneratorYieldError, c as CircularDependencyError, d as ServiceRuntimeNotConfiguredError, i as LayerDisposeError, l as ServiceAcquisitionError, o as LayerRegistrationError, r as DuplicateServiceError, s as ServiceTagCollisionError, u as ServiceNotFoundError } from "./registration-drnZk0SY.mjs";
2
- import { h as RuntimeContextNotConfiguredError } from "./context-BUEf1qjL.mjs";
3
- import { a as ResourceNotDisposableError, c as ScopeRuntimeNotConfiguredError, o as ScopeCloseError, r as disposeResource, s as ScopeClosedError, t as CurrentAbortSignal } from "./signal-D2UTcaaG.mjs";
4
- import { n as Service, r as ServiceRuntime, t as Layer } from "./layer-D56fRdLt.mjs";
5
- import { i as Scope } from "./program-metadata-DhQCCirO.mjs";
6
- import { i as MapLayerBackend, n as RuntimeObserver, t as Runtime } from "./runtime-CBMrX8Wl.mjs";
7
- import { n as Program, t as Effect } from "./effect-CK4YZaX0.mjs";
2
+ import { h as RuntimeContextNotConfiguredError } from "./context-BphfFUMO.mjs";
3
+ import { a as ScopeClosedError, i as ScopeCloseError, o as ScopeRuntimeNotConfiguredError, r as ResourceNotDisposableError, t as disposeResource } from "./disposable-CP-Q2H3l.mjs";
4
+ import { n as Service, r as ServiceRuntime, t as Layer } from "./layer-D16GKxuX.mjs";
5
+ import { i as Scope } from "./program-metadata-BxjGkT17.mjs";
6
+ import { i as MapLayerBackend, n as RuntimeObserver, t as Runtime } from "./runtime-C_55ofnL.mjs";
7
+ import { n as Program, t as Effect } from "./effect-CPdV7Yv8.mjs";
8
+ import { t as CurrentAbortSignal } from "./signal-nfgFyNCk.mjs";
8
9
  import { Result, TaggedError } from "better-result";
9
10
  //#region src/function/pipe.ts
10
11
  function pipe(value, ...operations) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/function/pipe.ts","../src/resource/errors.ts","../src/resource/internal.ts","../src/resource/resource.ts"],"sourcesContent":["type Unary<A, B> = (value: A) => B\n\n/**\n * Compose a value through a sequence of unary functions.\n *\n * `pipe` is deliberately independent of Effect, Result, Promise, Scope, and\n * Service metadata.\n *\n * @example\n * ```ts\n * const label = pipe(\n * 'alice',\n * (name) => name.trim(),\n * (name) => name.toUpperCase()\n * )\n * ```\n */\ntype PipeRuntimeValue = Parameters<Unary<any, any>>[0]\n\ntype PipeRuntimeOperation = Unary<PipeRuntimeValue, PipeRuntimeValue>\n\nexport function pipe<A>(value: A): A\nexport function pipe<A, B>(value: A, ab: Unary<A, B>): B\nexport function pipe<A, B, C>(value: A, ab: Unary<A, B>, bc: Unary<B, C>): C\nexport function pipe<A, B, C, D>(value: A, ab: Unary<A, B>, bc: Unary<B, C>, cd: Unary<C, D>): D\nexport function pipe<A, B, C, D, E>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>\n): E\nexport function pipe<A, B, C, D, E, F>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>\n): F\nexport function pipe<A, B, C, D, E, F, G>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>\n): G\nexport function pipe<A, B, C, D, E, F, G, H>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>,\n gh: Unary<G, H>\n): H\nexport function pipe<A, B, C, D, E, F, G, H, I>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>,\n gh: Unary<G, H>,\n hi: Unary<H, I>\n): I\nexport function pipe<A, B, C, D, E, F, G, H, I, J>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>,\n gh: Unary<G, H>,\n hi: Unary<H, I>,\n ij: Unary<I, J>\n): J\nexport function pipe<A, B, C, D, E, F, G, H, I, J, K>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>,\n gh: Unary<G, H>,\n hi: Unary<H, I>,\n ij: Unary<I, J>,\n jk: Unary<J, K>\n): K\nexport function pipe(\n value: PipeRuntimeValue,\n ...operations: ReadonlyArray<PipeRuntimeOperation>\n): PipeRuntimeValue {\n return operations.reduce((current, operation) => operation(current), value)\n}\n","import { TaggedError } from 'better-result'\n\n/** Describes a failure encountered while releasing a Resource. */\nexport class ResourceReleaseFailure extends TaggedError('ResourceReleaseFailure')<{\n readonly resource: string\n readonly cause: unknown\n readonly message: string\n}> {}\n","import { Result, type Result as ResultType, type UnhandledException } from 'better-result'\n\nimport { ResourceReleaseFailure } from './errors'\n\nimport { disposeResource } from '../scope/disposable'\n\nexport { disposeResource }\n\nimport type { AsyncResult, MaybePromise, ReleaseFailureObserver, ReleaseOutcome } from './types'\n\nconst toReleaseFailure = (resource: string, cause: unknown): ResourceReleaseFailure =>\n new ResourceReleaseFailure({\n resource,\n cause,\n message: `Failed to release resource: ${resource}`\n })\n\nexport const runResult = async <T, E>(\n operation: () => AsyncResult<T, E>\n): Promise<ResultType<T, E | UnhandledException>> => {\n const execution = await Result.tryPromise(() => Promise.resolve(operation()))\n\n return execution.andThen((result) => result)\n}\n\nconst normalizeReleaseOutcome = (\n name: string,\n outcome: ReleaseOutcome\n): ResultType<void, ResourceReleaseFailure> => {\n if (outcome === undefined) {\n return Result.ok()\n }\n\n return outcome.mapError((cause) => toReleaseFailure(name, cause))\n}\n\nexport const runRelease = async <R>(\n name: string,\n resource: R,\n release: (resource: R) => MaybePromise<ReleaseOutcome>\n): Promise<ResultType<void, ResourceReleaseFailure>> => {\n const execution = await Result.tryPromise({\n try: () => Promise.resolve(release(resource)),\n catch: (cause) => toReleaseFailure(name, cause)\n })\n\n return execution.andThen((outcome) => normalizeReleaseOutcome(name, outcome))\n}\n\nconst notifyReleaseFailure = async (\n observer: ReleaseFailureObserver | undefined,\n\n failure: ResourceReleaseFailure\n): Promise<void> => {\n if (!observer) {\n return\n }\n\n try {\n await observer(failure)\n } catch {\n /*\n * Diagnostics must never replace\n * the actual operation error.\n */\n }\n}\n\nexport const combineUseAndRelease = async <A, E>(\n used: ResultType<A, E>,\n\n released: ResultType<void, ResourceReleaseFailure>,\n\n onReleaseFailure?: ReleaseFailureObserver\n): Promise<ResultType<A, E | ResourceReleaseFailure>> => {\n if (Result.isError(used)) {\n if (Result.isError(released)) {\n await notifyReleaseFailure(onReleaseFailure, released.error)\n }\n\n return Result.err<A, E | ResourceReleaseFailure>(used.error)\n }\n\n if (Result.isError(released)) {\n await notifyReleaseFailure(onReleaseFailure, released.error)\n\n return Result.err<A, E | ResourceReleaseFailure>(released.error)\n }\n\n return Result.ok<A, E | ResourceReleaseFailure>(used.value)\n}\n","import { Result, type Result as ResultType, type UnhandledException } from 'better-result'\n\nimport { Scope } from '../scope'\n\nimport { ResourceReleaseFailure } from './errors'\n\nimport { combineUseAndRelease, disposeResource, runRelease, runResult } from './internal'\n\nimport type { AcquireUseReleaseOptions } from './types'\n\n/**\n * Acquire a resource, use it, and always attempt release afterward.\n *\n * Acquisition, use, and release may be synchronous or asynchronous Result\n * operations. If both use and release fail, the use error remains primary and\n * `onReleaseFailure` receives the cleanup failure as a diagnostic.\n *\n * When `release` is omitted, `Symbol.asyncDispose` is preferred over\n * `Symbol.dispose`.\n *\n * @example\n * ```ts\n * const result = await Resource.acquireUseRelease({\n * name: 'database connection',\n * acquire: () => connect(),\n * use: (connection) => query(connection),\n * release: (connection) => connection.close()\n * })\n * ```\n */\nconst acquireUseRelease = <R, A, AcquireError, UseError>({\n name,\n acquire,\n use,\n release = disposeResource,\n onReleaseFailure\n}: AcquireUseReleaseOptions<R, A, AcquireError, UseError>): Promise<\n ResultType<A, AcquireError | UseError | UnhandledException | ResourceReleaseFailure>\n> =>\n Result.gen(async function* () {\n const resource = yield* Result.await(runResult(acquire))\n\n const scope = Scope.make()\n\n let released: ResultType<void, ResourceReleaseFailure> = Result.ok()\n\n scope.addFinalizer(async () => {\n released = await runRelease(name, resource, release)\n })\n\n const used = await runResult(() => use(resource))\n\n await scope.close()\n\n return await combineUseAndRelease(used, released, onReleaseFailure)\n })\n\nexport const Resource = {\n /** Acquire, use, and release a resource with deterministic error precedence. */\n acquireUseRelease\n} as const\n"],"mappings":";;;;;;;;;AA+FA,SAAgB,KACd,OACA,GAAG,YACe;CAClB,OAAO,WAAW,QAAQ,SAAS,cAAc,UAAU,OAAO,GAAG,KAAK;AAC5E;;;;ACjGA,IAAa,yBAAb,cAA4C,YAAY,wBAAwB,CAAC,CAI9E,CAAC;;;ACGJ,MAAM,oBAAoB,UAAkB,UAC1C,IAAI,uBAAuB;CACzB;CACA;CACA,SAAS,+BAA+B;AAC1C,CAAC;AAEH,MAAa,YAAY,OACvB,cACmD;CAGnD,QAAO,MAFiB,OAAO,iBAAiB,QAAQ,QAAQ,UAAU,CAAC,CAAC,EAAA,CAE3D,SAAS,WAAW,MAAM;AAC7C;AAEA,MAAM,2BACJ,MACA,YAC6C;CAC7C,IAAI,YAAY,KAAA,GACd,OAAO,OAAO,GAAG;CAGnB,OAAO,QAAQ,UAAU,UAAU,iBAAiB,MAAM,KAAK,CAAC;AAClE;AAEA,MAAa,aAAa,OACxB,MACA,UACA,YACsD;CAMtD,QAAO,MALiB,OAAO,WAAW;EACxC,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,CAAC;EAC5C,QAAQ,UAAU,iBAAiB,MAAM,KAAK;CAChD,CAAC,EAAA,CAEgB,SAAS,YAAY,wBAAwB,MAAM,OAAO,CAAC;AAC9E;AAEA,MAAM,uBAAuB,OAC3B,UAEA,YACkB;CAClB,IAAI,CAAC,UACH;CAGF,IAAI;EACF,MAAM,SAAS,OAAO;CACxB,QAAQ,CAKR;AACF;AAEA,MAAa,uBAAuB,OAClC,MAEA,UAEA,qBACuD;CACvD,IAAI,OAAO,QAAQ,IAAI,GAAG;EACxB,IAAI,OAAO,QAAQ,QAAQ,GACzB,MAAM,qBAAqB,kBAAkB,SAAS,KAAK;EAG7D,OAAO,OAAO,IAAmC,KAAK,KAAK;CAC7D;CAEA,IAAI,OAAO,QAAQ,QAAQ,GAAG;EAC5B,MAAM,qBAAqB,kBAAkB,SAAS,KAAK;EAE3D,OAAO,OAAO,IAAmC,SAAS,KAAK;CACjE;CAEA,OAAO,OAAO,GAAkC,KAAK,KAAK;AAC5D;;;;;;;;;;;;;;;;;;;;;;;AC5DA,MAAM,qBAAmD,EACvD,MACA,SACA,KACA,UAAU,iBACV,uBAIA,OAAO,IAAI,mBAAmB;CAC5B,MAAM,WAAW,OAAO,OAAO,MAAM,UAAU,OAAO,CAAC;CAEvD,MAAM,QAAQ,MAAM,KAAK;CAEzB,IAAI,WAAqD,OAAO,GAAG;CAEnE,MAAM,aAAa,YAAY;EAC7B,WAAW,MAAM,WAAW,MAAM,UAAU,OAAO;CACrD,CAAC;CAED,MAAM,OAAO,MAAM,gBAAgB,IAAI,QAAQ,CAAC;CAEhD,MAAM,MAAM,MAAM;CAElB,OAAO,MAAM,qBAAqB,MAAM,UAAU,gBAAgB;AACpE,CAAC;AAEH,MAAa,WAAW;;AAEtB,kBACF"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/function/pipe.ts","../src/resource/errors.ts","../src/resource/internal.ts","../src/resource/resource.ts"],"sourcesContent":["type Unary<A, B> = (value: A) => B\n\n/**\n * Compose a value through a sequence of unary functions.\n *\n * `pipe` is deliberately independent of Effect, Result, Promise, Scope, and\n * Service metadata.\n *\n * @example\n * ```ts\n * const label = pipe(\n * 'alice',\n * (name) => name.trim(),\n * (name) => name.toUpperCase()\n * )\n * ```\n */\ntype PipeRuntimeValue = Parameters<Unary<any, any>>[0]\n\ntype PipeRuntimeOperation = Unary<PipeRuntimeValue, PipeRuntimeValue>\n\nexport function pipe<A>(value: A): A\nexport function pipe<A, B>(value: A, ab: Unary<A, B>): B\nexport function pipe<A, B, C>(value: A, ab: Unary<A, B>, bc: Unary<B, C>): C\nexport function pipe<A, B, C, D>(value: A, ab: Unary<A, B>, bc: Unary<B, C>, cd: Unary<C, D>): D\nexport function pipe<A, B, C, D, E>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>\n): E\nexport function pipe<A, B, C, D, E, F>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>\n): F\nexport function pipe<A, B, C, D, E, F, G>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>\n): G\nexport function pipe<A, B, C, D, E, F, G, H>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>,\n gh: Unary<G, H>\n): H\nexport function pipe<A, B, C, D, E, F, G, H, I>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>,\n gh: Unary<G, H>,\n hi: Unary<H, I>\n): I\nexport function pipe<A, B, C, D, E, F, G, H, I, J>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>,\n gh: Unary<G, H>,\n hi: Unary<H, I>,\n ij: Unary<I, J>\n): J\nexport function pipe<A, B, C, D, E, F, G, H, I, J, K>(\n value: A,\n ab: Unary<A, B>,\n bc: Unary<B, C>,\n cd: Unary<C, D>,\n de: Unary<D, E>,\n ef: Unary<E, F>,\n fg: Unary<F, G>,\n gh: Unary<G, H>,\n hi: Unary<H, I>,\n ij: Unary<I, J>,\n jk: Unary<J, K>\n): K\nexport function pipe(\n value: PipeRuntimeValue,\n ...operations: ReadonlyArray<PipeRuntimeOperation>\n): PipeRuntimeValue {\n return operations.reduce((current, operation) => operation(current), value)\n}\n","import { TaggedError } from 'better-result'\n\n/** Describes a failure encountered while releasing a Resource. */\nexport class ResourceReleaseFailure extends TaggedError('ResourceReleaseFailure')<{\n readonly resource: string\n readonly cause: unknown\n readonly message: string\n}> {}\n","import { Result, type Result as ResultType, type UnhandledException } from 'better-result'\n\nimport { ResourceReleaseFailure } from './errors'\n\nimport { disposeResource } from '../scope/disposable'\n\nexport { disposeResource }\n\nimport type { AsyncResult, MaybePromise, ReleaseFailureObserver, ReleaseOutcome } from './types'\n\nconst toReleaseFailure = (resource: string, cause: unknown): ResourceReleaseFailure =>\n new ResourceReleaseFailure({\n resource,\n cause,\n message: `Failed to release resource: ${resource}`\n })\n\nexport const runResult = async <T, E>(\n operation: () => AsyncResult<T, E>\n): Promise<ResultType<T, E | UnhandledException>> => {\n const execution = await Result.tryPromise(() => Promise.resolve(operation()))\n\n return execution.andThen((result) => result)\n}\n\nconst normalizeReleaseOutcome = (\n name: string,\n outcome: ReleaseOutcome\n): ResultType<void, ResourceReleaseFailure> => {\n if (outcome === undefined) {\n return Result.ok()\n }\n\n return outcome.mapError((cause) => toReleaseFailure(name, cause))\n}\n\nexport const runRelease = async <R>(\n name: string,\n resource: R,\n release: (resource: R) => MaybePromise<ReleaseOutcome>\n): Promise<ResultType<void, ResourceReleaseFailure>> => {\n const execution = await Result.tryPromise({\n try: () => Promise.resolve(release(resource)),\n catch: (cause) => toReleaseFailure(name, cause)\n })\n\n return execution.andThen((outcome) => normalizeReleaseOutcome(name, outcome))\n}\n\nconst notifyReleaseFailure = async (\n observer: ReleaseFailureObserver | undefined,\n\n failure: ResourceReleaseFailure\n): Promise<void> => {\n if (!observer) {\n return\n }\n\n try {\n await observer(failure)\n } catch {\n /*\n * Diagnostics must never replace\n * the actual operation error.\n */\n }\n}\n\nexport const combineUseAndRelease = async <A, E>(\n used: ResultType<A, E>,\n\n released: ResultType<void, ResourceReleaseFailure>,\n\n onReleaseFailure?: ReleaseFailureObserver\n): Promise<ResultType<A, E | ResourceReleaseFailure>> => {\n if (Result.isError(used)) {\n if (Result.isError(released)) {\n await notifyReleaseFailure(onReleaseFailure, released.error)\n }\n\n return Result.err<A, E | ResourceReleaseFailure>(used.error)\n }\n\n if (Result.isError(released)) {\n await notifyReleaseFailure(onReleaseFailure, released.error)\n\n return Result.err<A, E | ResourceReleaseFailure>(released.error)\n }\n\n return Result.ok<A, E | ResourceReleaseFailure>(used.value)\n}\n","import { Result, type Result as ResultType, type UnhandledException } from 'better-result'\n\nimport { Scope } from '../scope'\n\nimport { ResourceReleaseFailure } from './errors'\n\nimport { combineUseAndRelease, disposeResource, runRelease, runResult } from './internal'\n\nimport type { AcquireUseReleaseOptions } from './types'\n\n/**\n * Acquire a resource, use it, and always attempt release afterward.\n *\n * Acquisition, use, and release may be synchronous or asynchronous Result\n * operations. If both use and release fail, the use error remains primary and\n * `onReleaseFailure` receives the cleanup failure as a diagnostic.\n *\n * When `release` is omitted, `Symbol.asyncDispose` is preferred over\n * `Symbol.dispose`.\n *\n * @example\n * ```ts\n * const result = await Resource.acquireUseRelease({\n * name: 'database connection',\n * acquire: () => connect(),\n * use: (connection) => query(connection),\n * release: (connection) => connection.close()\n * })\n * ```\n */\nconst acquireUseRelease = <R, A, AcquireError, UseError>({\n name,\n acquire,\n use,\n release = disposeResource,\n onReleaseFailure\n}: AcquireUseReleaseOptions<R, A, AcquireError, UseError>): Promise<\n ResultType<A, AcquireError | UseError | UnhandledException | ResourceReleaseFailure>\n> =>\n Result.gen(async function* () {\n const resource = yield* Result.await(runResult(acquire))\n\n const scope = Scope.make()\n\n let released: ResultType<void, ResourceReleaseFailure> = Result.ok()\n\n scope.addFinalizer(async () => {\n released = await runRelease(name, resource, release)\n })\n\n const used = await runResult(() => use(resource))\n\n await scope.close()\n\n return await combineUseAndRelease(used, released, onReleaseFailure)\n })\n\nexport const Resource = {\n /** Acquire, use, and release a resource with deterministic error precedence. */\n acquireUseRelease\n} as const\n"],"mappings":";;;;;;;;;;AA+FA,SAAgB,KACd,OACA,GAAG,YACe;CAClB,OAAO,WAAW,QAAQ,SAAS,cAAc,UAAU,OAAO,GAAG,KAAK;AAC5E;;;;ACjGA,IAAa,yBAAb,cAA4C,YAAY,wBAAwB,CAAC,CAI9E,CAAC;;;ACGJ,MAAM,oBAAoB,UAAkB,UAC1C,IAAI,uBAAuB;CACzB;CACA;CACA,SAAS,+BAA+B;AAC1C,CAAC;AAEH,MAAa,YAAY,OACvB,cACmD;CAGnD,QAAO,MAFiB,OAAO,iBAAiB,QAAQ,QAAQ,UAAU,CAAC,CAAC,EAAA,CAE3D,SAAS,WAAW,MAAM;AAC7C;AAEA,MAAM,2BACJ,MACA,YAC6C;CAC7C,IAAI,YAAY,KAAA,GACd,OAAO,OAAO,GAAG;CAGnB,OAAO,QAAQ,UAAU,UAAU,iBAAiB,MAAM,KAAK,CAAC;AAClE;AAEA,MAAa,aAAa,OACxB,MACA,UACA,YACsD;CAMtD,QAAO,MALiB,OAAO,WAAW;EACxC,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,CAAC;EAC5C,QAAQ,UAAU,iBAAiB,MAAM,KAAK;CAChD,CAAC,EAAA,CAEgB,SAAS,YAAY,wBAAwB,MAAM,OAAO,CAAC;AAC9E;AAEA,MAAM,uBAAuB,OAC3B,UAEA,YACkB;CAClB,IAAI,CAAC,UACH;CAGF,IAAI;EACF,MAAM,SAAS,OAAO;CACxB,QAAQ,CAKR;AACF;AAEA,MAAa,uBAAuB,OAClC,MAEA,UAEA,qBACuD;CACvD,IAAI,OAAO,QAAQ,IAAI,GAAG;EACxB,IAAI,OAAO,QAAQ,QAAQ,GACzB,MAAM,qBAAqB,kBAAkB,SAAS,KAAK;EAG7D,OAAO,OAAO,IAAmC,KAAK,KAAK;CAC7D;CAEA,IAAI,OAAO,QAAQ,QAAQ,GAAG;EAC5B,MAAM,qBAAqB,kBAAkB,SAAS,KAAK;EAE3D,OAAO,OAAO,IAAmC,SAAS,KAAK;CACjE;CAEA,OAAO,OAAO,GAAkC,KAAK,KAAK;AAC5D;;;;;;;;;;;;;;;;;;;;;;;AC5DA,MAAM,qBAAmD,EACvD,MACA,SACA,KACA,UAAU,iBACV,uBAIA,OAAO,IAAI,mBAAmB;CAC5B,MAAM,WAAW,OAAO,OAAO,MAAM,UAAU,OAAO,CAAC;CAEvD,MAAM,QAAQ,MAAM,KAAK;CAEzB,IAAI,WAAqD,OAAO,GAAG;CAEnE,MAAM,aAAa,YAAY;EAC7B,WAAW,MAAM,WAAW,MAAM,UAAU,OAAO;CACrD,CAAC;CAED,MAAM,OAAO,MAAM,gBAAgB,IAAI,QAAQ,CAAC;CAEhD,MAAM,MAAM,MAAM;CAElB,OAAO,MAAM,qBAAqB,MAAM,UAAU,gBAAgB;AACpE,CAAC;AAEH,MAAa,WAAW;;AAEtB,kBACF"}
@@ -1,6 +1,6 @@
1
1
  import { a as LayerGeneratorYieldError, d as ServiceRuntimeNotConfiguredError, f as captureServiceTag, m as validateServiceTag, p as registerServiceTag, r as DuplicateServiceError, s as ServiceTagCollisionError, t as captureLayerRegistrationTag } from "./registration-drnZk0SY.mjs";
2
- import { h as RuntimeContextNotConfiguredError, i as getRuntimeContext, l as makeRuntimeContext, n as currentRuntimeContext, u as runRuntimeContext } from "./context-BUEf1qjL.mjs";
3
- import { a as ResourceNotDisposableError, i as getDisposeFinalizer, l as defaultRuntimeContextStorage } from "./signal-D2UTcaaG.mjs";
2
+ import { h as RuntimeContextNotConfiguredError, i as getRuntimeContext, l as makeRuntimeContext, n as currentRuntimeContext, u as runRuntimeContext } from "./context-BphfFUMO.mjs";
3
+ import { n as getDisposeFinalizer, r as ResourceNotDisposableError, s as defaultRuntimeContextStorage } from "./disposable-CP-Q2H3l.mjs";
4
4
  //#region src/service/runtime.ts
5
5
  /** Provides the resolver context used by Service tokens during execution. */
6
6
  var ServiceRuntime = class ServiceRuntime {
@@ -18,7 +18,7 @@ var ServiceRuntime = class ServiceRuntime {
18
18
  */
19
19
  static run(resolver, program, storage = defaultRuntimeContextStorage) {
20
20
  const current = getRuntimeContext(storage);
21
- const context = makeRuntimeContext(resolver, current?.scope, current?.resolver === resolver ? current.resolutionPath : [], current?.signal, current?.resolver === resolver ? current : void 0);
21
+ const context = makeRuntimeContext(resolver, current?.scope, current?.resolver === resolver ? current.resolutionPath : [], current?.signal, current?.resolver === resolver ? current : void 0, current?.executionId);
22
22
  return runRuntimeContext(storage, context, program);
23
23
  }
24
24
  /** Return the resolver active in the current execution context. */
@@ -266,4 +266,4 @@ const normalizeAcquire = (acquire) => () => {
266
266
  //#endregion
267
267
  export { Service as n, ServiceRuntime as r, Layer as t };
268
268
 
269
- //# sourceMappingURL=layer-D56fRdLt.mjs.map
269
+ //# sourceMappingURL=layer-D16GKxuX.mjs.map