better-effect 0.11.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 (102) hide show
  1. package/README.md +544 -10
  2. package/dist/adapters/iti.d.mts +3 -2
  3. package/dist/adapters/iti.d.mts.map +1 -1
  4. package/dist/adapters/iti.mjs +11 -10
  5. package/dist/adapters/iti.mjs.map +1 -1
  6. package/dist/bun.d.mts +43 -0
  7. package/dist/bun.d.mts.map +1 -0
  8. package/dist/bun.mjs +40 -0
  9. package/dist/bun.mjs.map +1 -0
  10. package/dist/{context-BUEf1qjL.mjs → context-BphfFUMO.mjs} +4 -2
  11. package/dist/context-BphfFUMO.mjs.map +1 -0
  12. package/dist/current-request-CIU7AHhF.d.mts +22 -0
  13. package/dist/current-request-CIU7AHhF.d.mts.map +1 -0
  14. package/dist/current-request-DDKNyymv.mjs +20 -0
  15. package/dist/current-request-DDKNyymv.mjs.map +1 -0
  16. package/dist/disposable-CP-Q2H3l.mjs +57 -0
  17. package/dist/disposable-CP-Q2H3l.mjs.map +1 -0
  18. package/dist/{effect-2ZcGZI8A.mjs → effect-CPdV7Yv8.mjs} +56 -10
  19. package/dist/effect-CPdV7Yv8.mjs.map +1 -0
  20. package/dist/hono.d.mts +7 -5
  21. package/dist/hono.d.mts.map +1 -1
  22. package/dist/hono.mjs +88 -30
  23. package/dist/hono.mjs.map +1 -1
  24. package/dist/{index-heuaRmXR.d.mts → index-AiKM71-u.d.mts} +3 -1
  25. package/dist/{index-heuaRmXR.d.mts.map → index-AiKM71-u.d.mts.map} +1 -1
  26. package/dist/index-BodMy6rO.d.mts +180 -0
  27. package/dist/index-BodMy6rO.d.mts.map +1 -0
  28. package/dist/{index-C7Qild0_.d.mts → index-CCi07kUw.d.mts} +15 -151
  29. package/dist/index-CCi07kUw.d.mts.map +1 -0
  30. package/dist/index-DAKn0qHk.d.mts +19 -0
  31. package/dist/index-DAKn0qHk.d.mts.map +1 -0
  32. package/dist/{index-DStz0JMN.d.mts → index-cXgyMa0v.d.mts} +75 -22
  33. package/dist/index-cXgyMa0v.d.mts.map +1 -0
  34. package/dist/index.d.mts +7 -4
  35. package/dist/index.mjs +8 -6
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/{internal-identity-DmUpBeeL.mjs → internal-identity-CbXoZIfw.mjs} +3 -3
  38. package/dist/internal-identity-CbXoZIfw.mjs.map +1 -0
  39. package/dist/{signal-B97cs85Z.mjs → layer-D16GKxuX.mjs} +31 -112
  40. package/dist/layer-D16GKxuX.mjs.map +1 -0
  41. package/dist/next.d.mts +116 -0
  42. package/dist/next.d.mts.map +1 -0
  43. package/dist/next.mjs +68 -0
  44. package/dist/next.mjs.map +1 -0
  45. package/dist/node-context-Ca18oNSg.mjs +25 -0
  46. package/dist/node-context-Ca18oNSg.mjs.map +1 -0
  47. package/dist/node-context-DczjAcrX.d.mts +12 -0
  48. package/dist/node-context-DczjAcrX.d.mts.map +1 -0
  49. package/dist/node.d.mts +51 -0
  50. package/dist/node.d.mts.map +1 -0
  51. package/dist/node.mjs +233 -0
  52. package/dist/node.mjs.map +1 -0
  53. package/dist/observer-9nhbL7Pr.d.mts +68 -0
  54. package/dist/observer-9nhbL7Pr.d.mts.map +1 -0
  55. package/dist/opentelemetry.d.mts +94 -0
  56. package/dist/opentelemetry.d.mts.map +1 -0
  57. package/dist/opentelemetry.mjs +453 -0
  58. package/dist/opentelemetry.mjs.map +1 -0
  59. package/dist/{index-rQhZk3Nt.d.mts → outcome-DI8LPIQ4.d.mts} +27 -72
  60. package/dist/outcome-DI8LPIQ4.d.mts.map +1 -0
  61. package/dist/{scope-GGnmTQck.mjs → program-metadata-BxjGkT17.mjs} +19 -4
  62. package/dist/program-metadata-BxjGkT17.mjs.map +1 -0
  63. package/dist/registration-drnZk0SY.mjs +182 -0
  64. package/dist/registration-drnZk0SY.mjs.map +1 -0
  65. package/dist/runtime/explicit.d.mts +1 -1
  66. package/dist/runtime/explicit.mjs +1 -1
  67. package/dist/runtime/node.d.mts +3 -12
  68. package/dist/runtime/node.mjs +2 -24
  69. package/dist/{runtime-DnMn0X0X.mjs → runtime-C_55ofnL.mjs} +245 -67
  70. package/dist/runtime-C_55ofnL.mjs.map +1 -0
  71. package/dist/signal-nfgFyNCk.mjs +52 -0
  72. package/dist/signal-nfgFyNCk.mjs.map +1 -0
  73. package/dist/{standard-services-BFBq-4lo.mjs → standard-services-vnGIafkS.mjs} +200 -30
  74. package/dist/standard-services-vnGIafkS.mjs.map +1 -0
  75. package/dist/standard-services.d.mts +4 -3
  76. package/dist/standard-services.mjs +4 -3
  77. package/dist/testing.d.mts +67 -7
  78. package/dist/testing.d.mts.map +1 -1
  79. package/dist/testing.mjs +192 -9
  80. package/dist/testing.mjs.map +1 -1
  81. package/dist/types-oihI-ESv.d.mts +54 -0
  82. package/dist/types-oihI-ESv.d.mts.map +1 -0
  83. package/dist/web-Bq3MfMrj.mjs +147 -0
  84. package/dist/web-Bq3MfMrj.mjs.map +1 -0
  85. package/dist/web.d.mts +47 -0
  86. package/dist/web.d.mts.map +1 -0
  87. package/dist/web.mjs +2 -0
  88. package/package.json +39 -3
  89. package/dist/context-BUEf1qjL.mjs.map +0 -1
  90. package/dist/effect-2ZcGZI8A.mjs.map +0 -1
  91. package/dist/errors-Dnjhzbt0.mjs +0 -99
  92. package/dist/errors-Dnjhzbt0.mjs.map +0 -1
  93. package/dist/index-C7Qild0_.d.mts.map +0 -1
  94. package/dist/index-DStz0JMN.d.mts.map +0 -1
  95. package/dist/index-rQhZk3Nt.d.mts.map +0 -1
  96. package/dist/internal-identity-DmUpBeeL.mjs.map +0 -1
  97. package/dist/runtime/node.d.mts.map +0 -1
  98. package/dist/runtime/node.mjs.map +0 -1
  99. package/dist/runtime-DnMn0X0X.mjs.map +0 -1
  100. package/dist/scope-GGnmTQck.mjs.map +0 -1
  101. package/dist/signal-B97cs85Z.mjs.map +0 -1
  102. package/dist/standard-services-BFBq-4lo.mjs.map +0 -1
@@ -1,99 +0,0 @@
1
- //#region src/service/errors.ts
2
- const formatResolutionPath = (path) => path.map((service) => service.serviceTag).join(" → ");
3
- /** Thrown when a Service is accessed without an active runtime resolver. */
4
- var ServiceRuntimeNotConfiguredError = class extends Error {
5
- constructor() {
6
- super("No ServiceResolver is available in the current runtime context");
7
- this.name = "ServiceRuntimeNotConfiguredError";
8
- }
9
- };
10
- /** Thrown when a runtime has no provider for the requested Service tag. */
11
- var ServiceNotFoundError = class extends Error {
12
- service;
13
- constructor(service) {
14
- super(`Service "${service.serviceTag}" was not provided`);
15
- this.service = service;
16
- this.name = "ServiceNotFoundError";
17
- }
18
- };
19
- /** Thrown when resolving a Service re-enters a Service already in its path. */
20
- var CircularDependencyError = class extends Error {
21
- path;
22
- constructor(path) {
23
- const normalizedPath = Object.freeze([...path]);
24
- super(`Circular Service dependency detected:\n${formatResolutionPath(normalizedPath)}`);
25
- this.name = "CircularDependencyError";
26
- this.path = normalizedPath;
27
- }
28
- };
29
- /** Thrown when a registered Service provider fails during lazy acquisition. */
30
- var ServiceAcquisitionError = class extends Error {
31
- service;
32
- cause;
33
- constructor(service, resolutionPath, cause) {
34
- const normalizedPath = Object.freeze([...resolutionPath]);
35
- super(`Failed to acquire Service "${service.serviceTag}"` + (normalizedPath.length > 0 ? ` while resolving: ${formatResolutionPath(normalizedPath)}` : ""));
36
- this.service = service;
37
- this.name = "ServiceAcquisitionError";
38
- this.cause = cause;
39
- this.resolutionPath = normalizedPath;
40
- }
41
- resolutionPath;
42
- };
43
- //#endregion
44
- //#region src/layer/errors.ts
45
- /** Thrown when a Layer registers the same Service tag more than once. */
46
- var DuplicateServiceError = class extends Error {
47
- service;
48
- constructor(service) {
49
- super(`Duplicate service tag "${service.serviceTag}"`);
50
- this.service = service;
51
- this.name = "DuplicateServiceError";
52
- }
53
- };
54
- /** Thrown when one Service tag is associated with incompatible constructors. */
55
- var ServiceTagCollisionError = class extends Error {
56
- existing;
57
- incoming;
58
- constructor(existing, incoming) {
59
- super(`Service tag "${incoming.serviceTag}" is already associated with "${existing.name}" and cannot be associated with "${incoming.name}"`);
60
- this.existing = existing;
61
- this.incoming = incoming;
62
- this.name = "ServiceTagCollisionError";
63
- }
64
- };
65
- /** Thrown when a backend fails while registering a Layer provider. */
66
- var LayerRegistrationError = class extends Error {
67
- service;
68
- registrationCause;
69
- cleanupCause;
70
- constructor(service, registrationCause, cleanupCause) {
71
- super(service ? `Failed to register service "${service.serviceTag}"` : "Failed to build Layer", { cause: registrationCause });
72
- this.service = service;
73
- this.registrationCause = registrationCause;
74
- this.cleanupCause = cleanupCause;
75
- this.name = "LayerRegistrationError";
76
- }
77
- };
78
- /** Thrown when one or more Layer-owned resources fail during disposal. */
79
- var LayerDisposeError = class extends Error {
80
- causes;
81
- constructor(causes) {
82
- super(`Failed to dispose Layer (${causes.length} error${causes.length === 1 ? "" : "s"})`);
83
- this.causes = causes;
84
- this.name = "LayerDisposeError";
85
- }
86
- };
87
- /** Thrown when a Layer generator yields a value other than a Service requirement. */
88
- var LayerGeneratorYieldError = class extends Error {
89
- service;
90
- constructor(service) {
91
- super(`Layer.gen("${service.serviceTag}") yielded an unsupported value`);
92
- this.service = service;
93
- this.name = "LayerGeneratorYieldError";
94
- }
95
- };
96
- //#endregion
97
- export { ServiceTagCollisionError as a, ServiceNotFoundError as c, LayerRegistrationError as i, ServiceRuntimeNotConfiguredError as l, LayerDisposeError as n, CircularDependencyError as o, LayerGeneratorYieldError as r, ServiceAcquisitionError as s, DuplicateServiceError as t };
98
-
99
- //# sourceMappingURL=errors-Dnjhzbt0.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors-Dnjhzbt0.mjs","names":[],"sources":["../src/service/errors.ts","../src/layer/errors.ts"],"sourcesContent":["import type { AnyServiceToken } from './types'\n\nconst formatResolutionPath = (path: readonly AnyServiceToken[]): string =>\n path.map((service) => service.serviceTag).join(' → ')\n\n/** Thrown when a Service is accessed without an active runtime resolver. */\nexport class ServiceRuntimeNotConfiguredError extends Error {\n constructor() {\n super('No ServiceResolver is available in the current runtime context')\n\n this.name = 'ServiceRuntimeNotConfiguredError'\n }\n}\n\n/** Thrown when a runtime has no provider for the requested Service tag. */\nexport class ServiceNotFoundError extends Error {\n constructor(readonly service: AnyServiceToken) {\n super(`Service \"${service.serviceTag}\" was not provided`)\n\n this.name = 'ServiceNotFoundError'\n }\n}\n\n/** Thrown when resolving a Service re-enters a Service already in its path. */\nexport class CircularDependencyError extends Error {\n readonly path: readonly AnyServiceToken[]\n\n constructor(path: readonly AnyServiceToken[]) {\n const normalizedPath = Object.freeze([...path])\n\n super(`Circular Service dependency detected:\\n${formatResolutionPath(normalizedPath)}`)\n\n this.name = 'CircularDependencyError'\n this.path = normalizedPath\n }\n}\n\n/** Thrown when a registered Service provider fails during lazy acquisition. */\nexport class ServiceAcquisitionError extends Error {\n override readonly cause: unknown\n\n constructor(\n readonly service: AnyServiceToken,\n resolutionPath: readonly AnyServiceToken[],\n cause: unknown\n ) {\n const normalizedPath = Object.freeze([...resolutionPath])\n\n super(\n `Failed to acquire Service \"${service.serviceTag}\"` +\n (normalizedPath.length > 0\n ? ` while resolving: ${formatResolutionPath(normalizedPath)}`\n : '')\n )\n\n this.name = 'ServiceAcquisitionError'\n this.cause = cause\n this.resolutionPath = normalizedPath\n }\n\n readonly resolutionPath: readonly AnyServiceToken[]\n}\n","import type { AnyServiceToken, ServiceClass } from '../service'\nimport type { ScopeOutcome } from '../scope'\n\ntype LayerCause = Extract<ScopeOutcome, { readonly status: 'failure' }>['cause']\n\n/** Thrown when a Layer registers the same Service tag more than once. */\nexport class DuplicateServiceError extends Error {\n constructor(readonly service: ServiceClass<any>) {\n super(`Duplicate service tag \"${service.serviceTag}\"`)\n\n this.name = 'DuplicateServiceError'\n }\n}\n\n/** Thrown when one Service tag is associated with incompatible constructors. */\nexport class ServiceTagCollisionError extends Error {\n constructor(\n readonly existing: AnyServiceToken,\n readonly incoming: AnyServiceToken\n ) {\n super(\n `Service tag \"${incoming.serviceTag}\" is already associated with \"${existing.name}\" ` +\n `and cannot be associated with \"${incoming.name}\"`\n )\n\n this.name = 'ServiceTagCollisionError'\n }\n}\n\n/** Thrown when a backend fails while registering a Layer provider. */\nexport class LayerRegistrationError extends Error {\n constructor(\n readonly service: ServiceClass<any> | undefined,\n readonly registrationCause: LayerCause,\n readonly cleanupCause?: LayerCause\n ) {\n super(\n service ? `Failed to register service \"${service.serviceTag}\"` : 'Failed to build Layer',\n {\n cause: registrationCause\n }\n )\n\n this.name = 'LayerRegistrationError'\n }\n}\n\n/** Thrown when one or more Layer-owned resources fail during disposal. */\nexport class LayerDisposeError extends Error {\n constructor(readonly causes: readonly unknown[]) {\n super(`Failed to dispose Layer (${causes.length} error${causes.length === 1 ? '' : 's'})`)\n\n this.name = 'LayerDisposeError'\n }\n}\n\n/** Thrown when a Layer generator yields a value other than a Service requirement. */\nexport class LayerGeneratorYieldError extends Error {\n constructor(readonly service: ServiceClass<any>) {\n super(`Layer.gen(\"${service.serviceTag}\") yielded an unsupported value`)\n\n this.name = 'LayerGeneratorYieldError'\n }\n}\n"],"mappings":";AAEA,MAAM,wBAAwB,SAC5B,KAAK,KAAK,YAAY,QAAQ,UAAU,CAAC,CAAC,KAAK,KAAK;;AAGtD,IAAa,mCAAb,cAAsD,MAAM;CAC1D,cAAc;EACZ,MAAM,gEAAgE;EAEtE,KAAK,OAAO;CACd;AACF;;AAGA,IAAa,uBAAb,cAA0C,MAAM;CACzB;CAArB,YAAY,SAAmC;EAC7C,MAAM,YAAY,QAAQ,WAAW,mBAAmB;EADrC,KAAA,UAAA;EAGnB,KAAK,OAAO;CACd;AACF;;AAGA,IAAa,0BAAb,cAA6C,MAAM;CACjD;CAEA,YAAY,MAAkC;EAC5C,MAAM,iBAAiB,OAAO,OAAO,CAAC,GAAG,IAAI,CAAC;EAE9C,MAAM,0CAA0C,qBAAqB,cAAc,GAAG;EAEtF,KAAK,OAAO;EACZ,KAAK,OAAO;CACd;AACF;;AAGA,IAAa,0BAAb,cAA6C,MAAM;CAItC;CAHX;CAEA,YACE,SACA,gBACA,OACA;EACA,MAAM,iBAAiB,OAAO,OAAO,CAAC,GAAG,cAAc,CAAC;EAExD,MACE,8BAA8B,QAAQ,WAAW,MAC9C,eAAe,SAAS,IACrB,qBAAqB,qBAAqB,cAAc,MACxD,GACR;EAXS,KAAA,UAAA;EAaT,KAAK,OAAO;EACZ,KAAK,QAAQ;EACb,KAAK,iBAAiB;CACxB;CAEA;AACF;;;;ACvDA,IAAa,wBAAb,cAA2C,MAAM;CAC1B;CAArB,YAAY,SAAqC;EAC/C,MAAM,0BAA0B,QAAQ,WAAW,EAAE;EADlC,KAAA,UAAA;EAGnB,KAAK,OAAO;CACd;AACF;;AAGA,IAAa,2BAAb,cAA8C,MAAM;CAEvC;CACA;CAFX,YACE,UACA,UACA;EACA,MACE,gBAAgB,SAAS,WAAW,gCAAgC,SAAS,KAAK,mCAC9C,SAAS,KAAK,EACpD;EANS,KAAA,WAAA;EACA,KAAA,WAAA;EAOT,KAAK,OAAO;CACd;AACF;;AAGA,IAAa,yBAAb,cAA4C,MAAM;CAErC;CACA;CACA;CAHX,YACE,SACA,mBACA,cACA;EACA,MACE,UAAU,+BAA+B,QAAQ,WAAW,KAAK,yBACjE,EACE,OAAO,kBACT,CACF;EATS,KAAA,UAAA;EACA,KAAA,oBAAA;EACA,KAAA,eAAA;EAST,KAAK,OAAO;CACd;AACF;;AAGA,IAAa,oBAAb,cAAuC,MAAM;CACtB;CAArB,YAAY,QAAqC;EAC/C,MAAM,4BAA4B,OAAO,OAAO,QAAQ,OAAO,WAAW,IAAI,KAAK,IAAI,EAAE;EADtE,KAAA,SAAA;EAGnB,KAAK,OAAO;CACd;AACF;;AAGA,IAAa,2BAAb,cAA8C,MAAM;CAC7B;CAArB,YAAY,SAAqC;EAC/C,MAAM,cAAc,QAAQ,WAAW,gCAAgC;EADpD,KAAA,UAAA;EAGnB,KAAK,OAAO;CACd;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-C7Qild0_.d.mts","names":[],"sources":["../src/runtime/types.ts","../src/runtime/runtime.ts","../src/runtime/signal.ts","../src/effect/combinators.ts","../src/effect/program-combinators.ts","../src/effect/effect.ts","../src/function/pipe.ts","../src/resource/errors.ts","../src/resource/types.ts","../src/resource/resource.ts"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-DStz0JMN.d.mts","names":[],"sources":["../src/standard-services/config.ts","../src/standard-services/index.ts"],"mappings":";;;;;;KAcY,eAAe,SAAS;;KAGxB;WACD;WACA,YAAY;;;KAIX,qBAAqB,eAAe,oBAAoB;WACzD,QAAQ;;;KAIP,aAAa,eAAe,oBAAoB,iBAAiB,YAAY;;KAG7E,YAAY,eAAe,oBAAoB,iBAAiB,WAAW;;KAG3E,cAAc,iBAAiB;;;cAG9B,8BAA8B;WAChC,QAAQ,cAAc;WACtB;;;;cAIE,0BAA0B;WAC5B;WACA;WACA;;;KAIC,cAAc,wBAAwB,oBAAoB;KAEjE,YAAY,qBAAqB,QAAQ,KAAK,SAC/C,WAAW,SACX,mBAAmB;;KAGX,YACV,eAAe,kBACf,qBAAqB,QAAQ,aAC7B,QAAQ;GAEP,OAAO,kBAAkB,eACxB,YAAY,cAAc,QAC1B,aAAa;;;;;;;;;;cAuNJ,eAAe;WACL,QAAQ;EAAR,YAAA,QAAQ;;EAK7B,IAAI;;SAKG,MAAM,QAAQ,eAAY,YAAA,cAAA;;SAK1B,aAAa,UAAS,sBAAwB,YAAA,cAAA;;SAW9C,OAAO,eAAe,kBAAkB,QAAQ,SAAS,YAAY,QAAQ;;SAK7E,QAAQ,eAAe,kBAC5B,SAAS,qBAAqB,UAC7B,YAAY;;SAmBR,QAAQ,SAAS,uBACd,eAAe,kBAAkB,qBAAqB,QAAQ,KAAK,QAAQ,aACjF,OAAO,YAAY,QAAQ,cAAc,WACxC,YAAY,QAAQ,cAAc;;;cAmB5B,YAAU,YAAA,cAAA;;;;;;;;;;;cCvUV,cAAc;EACzB,OAAO;EAIP,MAAM,uBAAuB;;;cAOlB,WAAS,YAAA,cAAA;;cAQT,qBAAqB,QAAQ,SAAS;UACzC;mBAES;EAEL,YAAA,UAAS;EAQrB,OAAO;EAIP,QAAQ,OAAO;EAWf,QAAQ;EAMR,MAAM,uBAAuB;SAStB,MAAM,UAAS,gBAAiB,YAAA,cAAA;UAI/B;;cAYG,iBAAkB,UAAS,kBAAiB,YAAA,cAAA;;;;;;;;;cAG5C,eAAe;EAC1B;EAIA,QAAQ;;;cAUG,YAAU,YAAA,cAAA;;cAGV,wBAAwB,QAAQ,SAAS;UAC5C;EAEI,YAAA;EAQZ;EAKA,QAAQ;SAQD,MAAM,eAAY,YAAA,cAAA;;cAKd,oBAAqB,iBAAY,YAAA,cAAA;KAElC;KAEA;EACV,OAAO;EACP;EACA,OAAO;;KAGG,kEAMC;YACG,cAAc;;;;;;;;;;cAqBjB,eAAe;EAC1B,IAAI,OAAO;EACX,IAAI,OAAO,aAAa,iBAAiB,OAAO;EAahD,MAAM,iBAAiB,OAAO;EAI9B,KAAK,iBAAiB,OAAO;EAI7B,KAAK,iBAAiB,OAAO;EAI7B,MAAM,iBAAiB,OAAO;;;cAMnB,YAAU,YAAA,cAAA;;cAGV,sBAAsB,QAAQ,SAAS;WACzC,QAAQ;EAEjB,IAAI,OAAO;EACX,IAAI,OAAO,aAAa,iBAAiB,OAAO;EAOhD,MAAM,iBAAiB,OAAO;EAI9B,KAAK,iBAAiB,OAAO;EAI7B,KAAK,iBAAiB,OAAO;EAI7B,MAAM,iBAAiB,OAAO;EAI9B;SAIO;;;;SAKA,MAAM,SAAQ,aAA6B,YAAA,cAAA;;cAKvC,uBAAe,YAAA,cAAA;;;;;;;;;cAGf,uBAAuB;WAIb;WAHZ;EAGY,YAAA;SAMd,MAAM,iBAAc,YAAA,cAAA;;cAMhB,sBAAuB,mBAAc,YAAA,cAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-rQhZk3Nt.d.mts","names":[],"sources":["../src/internal/variance.ts","../src/utils/types.ts","../src/internal/missing-dependencies.ts","../src/layer/metadata.ts","../src/layer/inference.ts","../src/layer/types.ts","../src/layer/layer.ts","../src/layer/backend.ts","../src/layer/map-layer-backend.ts","../src/layer/errors.ts","../src/runtime/observer.ts","../src/runtime/outcome.ts"],"mappings":";;;KACY,UAAU,WAAW;;KAGrB,UAAU,MAAM,OAAO,MAAM;;;KCJ7B,aAAa,KAAK,IAAI,YAAY;;;KCElC,oBAAoB,gBAAgB;;WAErC,iBAAiB;;;;;cCCP;UAEJ,kBACX,iBAAiB,gBACjB,oBAAoB;WAEf,UAAU;WACV,UAAU;;UAGJ,qBACX,iBAAiB,gBACjB,uBAAuB;WAElB,UAAU;WACV,gBAAgB;;UAGV,oBACX,gBAAgB,cAAc,YAAY,yBAC1C,eAAe,iBAAiB,YAAY;YAEtC;aACC,SAAS;aACT,QAAQ;;;;;KCfhB,MAAM,mBAAmB;KACzB,QAAQ,MAAM;KAEd,UAAQ,GAAG,YAAY,KAAK,qBAC5B,oBAAoB;;KAMb,aAAa,kBAAkB;;KAG/B,oBAAoB,UAAU,cACxC,UAAU,YAAY,gBAAgB,aAAa;KAEzC,oBAAoB,UAAU,cACxC,UAAU,YAAY,iBAAiB,YAAY;KAEhD,cAAc,YACjB,MAAM,iCAEF,iBAAiB,4BACA,aAAa;KAK/B,eAAe,aAAa,YAAY,cAAc,eACzD,aAAa,gBACJ,aAAa,WACnB,aAAa,iBAAiB,aAAa;KAK3C,oBAAoB,aAAa,YAAY,cAAc,eAC9D,gBAAgB,gBACP,gBAAgB,WACtB,gBAAgB,iBAAiB,gBAAgB;KAKjD,YAAY,aAAa,YAAY,cAAc,cACtD,eAAe,MAAM,sBAAsB,oBAAoB,MAAM;KAQlE,oBACH,oBAAoB,YACpB,iBAAiB,cACf,iBAAiB,aAAa,YAAY,aAAa;KAEtD,mBAAmB,oBAAoB,YAAY,yBACzC,oBAAoB,aAAa,QAAQ,UAAU,uBAAuB;;;;;KAM7E,gBAAgB,iBAAiB,YAAY,iBAAiB,cACxE,qBAAqB,kBAAkB,qBAAqB,oBAExD,MAAM,iCAEJ,MAAM,8CAES,cAAc,WAAW,oBAEpC,iBAAiB,aACf,mBAAmB,UAAU;;KAI/B,0BAA0B,oBAAoB,YAAY,iBAAiB,2BACxE,cAAc,QAAQ,cAAc,UAAU,eACvD,QAAQ,aAAa,cACrB,gBAAgB,aAAa;KAE9B,mBAAmB,cAAc,YAAY;KAC7C,sBAAsB,iBAAiB,YAAY;KAEnD,cAAc,WAAW,gBAAgB,oBAAoB,iBAAiB;KAE9E,cAAc,WAAW,gBAAgB,yBAAyB,YAAY;KAE9E,eAAe,UAClB,eAAe,uBAAuB,iBAAiB;KAEpD,eAAe,UAClB,eAAe,4BAA4B,YAAY;;KAG7C,eAAe,UAAU,cACnC,UAAU,sBAAsB,gBAAgB;;;;;KAMtC,cAAc,UAAU,cAClC,UAAU,2BAA2B,UACjC,UACC,oBAAoB,KAAK,oBAAoB,8BAE5C,iBAAiB,oBAAoB,IAAI,oBAAoB;KAEhE,4BAA4B,UAAU,cACvC,cAAc,eAAe,MAC7B,eAAe,cAAc;KAE5B,cAAc,gBAAgB,kBAAkB,eAAe,wBAClE,UAAU,oCAGR,gBAAgB,SAAS;;KAGjB,YACV,gBAAgB,kBAChB,eAAe,6BACf,wBAAwB,aAAa,cAAc,WAAW,eAAe,WAC3E,MACF,iBACA,0BAA0B,cAAc,WAAW,eAAe,SAAS,oBAE3E,cAAc,SAAS;KAEpB,iBAAiB,KACpB,UAAU,YAAY,gBAAgB,aAAa,UAAU;KAE1D,kBAAkB,KACrB,iBAAiB,kBAAkB,iBAAiB,kBAAkB,iBAAiB,cACnF,MAAM,yBACJ,MAAM,wCAGN,QAAQ,yBACN,MAAM;KAMX,wBAAwB,KAAK,oBAC9B,iBAAiB,kBAAkB,gBAAgB,YACjD,MAAM,yBACJ,MAAM;KAOT,qBAAqB,KAAK,oBAC3B,iBAAiB,kBAAkB,gBAAgB,YACjD,QAAQ,yBACN,MAAM;KAOT,mBAAmB,KAAK,oBACzB,kBAAkB;;KAMV,sBAAsB,KAChC,UAAQ,mBACJ,kBAAkB,kBACL,mBAAmB,0BAEjB,wBAAwB,kBACtB,qBAAqB;KAKvC,cAAc,KACjB,iBAAiB,kBAAkB,iBAAiB,kBAAkB,iBAAiB,cACnF,MAAM,yBACJ,MAAM,wCAGN,MAAM,yBACJ,QAAQ;;KAON,qBAAqB,mBAAmB,oBAAoB,cAAc;;KAK1E,gBAAgB,KAC1B,MAAM,0BAEF,UAAQ,kBACN,sBAAsB;KAKlB,gBAAgB,KAC1B,sBAAsB,gCAElB,qBAAqB,0CAEnB,gBAAgB;KAInB;WACM;;KAGN;WACM;;;KAIC,mBAAmB,UAAU,cACvC,gBAAgB,mCACZ,sBACA,gBAAgB,6BACd;;KAII,mBAAmB,wBAAwB,mBACpD,eAAe,SAAS,mBAAmB,OAAO;KAGhD,sBAAsB,aAAa,YAAY,cAAc,eAChE,QAAQ,aAAa,OAAO,aAAa;;KAMtC,yBACH,iBAAiB,YACjB,qBAAqB,cACnB,iBAAiB,aACjB,sBAAsB,UAAU,2CAChB,qBAAqB,aAAa,YAAY,UAAU,iCAEpE,WACF;KAGD,qBAAqB,iBAAiB,YAAY,qBAAqB,cAC1E,sBAAsB,UAAU,2CACd,qBAAqB,aAAa,YAAY,UAAU;KAKvE,wBAAwB,gBAAgB,kBAAkB,qBAAqB,cAClF,gBAAgB,oBAAoB,iBAChC,qBAAqB,UAAU,qCAE7B;KAGH,kBAAkB,gBAAgB,kBAAkB,oBAAoB,cACzE,wBAAwB,SAAS,QAAQ,oBAAoB,cAAc,eAC3E,eAAe;KAEd,iBAAiB,eAAe,qBAAqB,oBAAoB,cAC5E,eAAe,uBAAuB,gBAAgB,kBAClD,iBACE,yBAAyB,UAAU,QAAQ,oBAAoB,cAAc,cAC7E;KAIH,sBACH,gBAAgB,kBAChB,2BAA2B,gBACzB,kCACI,aAAa,qBACV,sBAAsB,gBAE7B,sBAAsB,kBAAkB,SAAS,OAAO,QACxD;KAEC,qBACH,eAAe,qBACf,2BAA2B,gBACzB,kCACI,aAAa,qBACV,sBAAsB,gBAE7B,qBACE,iBAAiB,QAAQ,QAAQ,QAAQ,cAAc,OAAO,sBAC9D,QAEF;KAEC,mBAAmB,kBAAkB,YAAY,kBAAkB,4BACtE,kBAAkB,aAAa,YAAY,WAAW;KAKnD,4BACH,mBAAmB,YACnB,iBAAiB,cACf,mBAAmB,4BAEjB,iBAAiB,aACb,mBAAmB,YAAY,QAAQ,oBAAoB,WAAW,gCAI1E;KAGD,mBACH,eAAe,YACf,iBAAiB,aAAa,UAC5B,eAAe,aACf,4BAA4B,QAAQ,oBAAoB,SAAS,aAAa;KAG7E,yBAAyB,wBAAwB,gCACnD,eAAe,SAAS,sBAAsB,OAAO;KAKnD,iBAAiB,wBAAwB,gBAC5C,yBAAyB,uBACrB,kBACA,YAAY,eAAe,iBAAiB,cAAc;;KAGpD,YAAY,wBAAwB,gBAAgB,iBAAiB;KAE5E,sBACH,wBAAwB,YACxB,2BAA2B,gBACzB,kCACI,aAAa,qBACV,sBAAsB,gBAE7B,sBACI,yBAAyB,iBAAiB,QAAQ,oBAAoB,OAAO,eAC7E,QAAQ,oBAAoB,OAAO,aACrC,QAEF;KAEC,sBACH,aAAa,YACb,2BAA2B,gBACzB,2BAA2B,eAC3B,MAAM,sBAAsB,QAAQ,oBAAoB,OAAO,aAAa;KAG3E,6BACH,aAAa,YACb,2BAA2B,gBAE3B,0BAA0B,SAAS,2BAC/B,kBACA,YACE,sBAAsB,eAAe,OAAO,YAC5C,qBAAqB,cAAc,OAAO,YAC1C,QAAQ,mBAAmB,sBAAsB,MAAM,aAAa;;KAUhE,oBACV,aAAa,YACb,2BAA2B,gBACzB,6BAA6B,MAAM;KAElC,yBAAyB,gBAAgB,YAAY,oBAAoB,cAC5E,eAAe,SAAS,4BACpB,oBAAoB,SAAS,oCAE3B,eAAe;;KAIX,0BACV,wBAAwB,YACxB,4BAA4B,cAE5B,sBAAsB,iBAAiB,oCACnC,wBAAwB,aACtB,4BAA4B,aAC1B,yBAAyB,iBAAiB;KAK/C,0BAA0B,eAAe;WACnC,yCAAyC;;KAG/C;WACM;;KAGN,2BAA2B,UAAU,cACxC,sBAAsB,4BAElB,mBAAmB,mBACH,cAAc,QAAQ,oBAAoB,IAAI,eACxD;KAGP,oBAAoB,UAAU,yBAAyB,OAAO,kCACjE,aAAa,yBAEX;KAGC,+BAA+B,aAAa,sCAE7C,oBAAoB;KAEnB,sBAAsB,2BAA2B,mBACnD,eAAe,YAAY,2BAA2B,UAAU;KAG9D,8BAA8B,2BAA2B,gBAC5D,+BACE,2BAA2B,eACvB,4BACG,eAAe,YAAY,2BAA2B,UAAU;KAKtE,aAAa,UAAU,sBAAsB,kBAAkB,WAChE,QAAQ,SAAS,MAAM;KAGtB,cAAc,iBAAiB,iBACjC,OAAO,aAAa,YAAY,QAAQ;YAAsB,wBAAwB;;KAGpF,sBAAsB,SAAS,oBAAoB,eACtD,iBAAiB,SAAS,aAAa,yCAGpC,iBAAiB,SAAS,aAAa,wBAAwB,gBAC7D,sBAAsB,iBAAiB,SAAS,aAAa;KAK/D,oBAAoB,SAAS,oBAAoB,6BACpD,oBAAoB,cACf,iBAAiB,SAAS,aAAa,yCAEtC,sBAAsB,SAAS;KAMlC,iBAAiB,MAAM,sBAAsB,uBAC9C,aAAa,MAAM;KAGlB,uCACH,wBAAwB,YACxB,oBAAoB,cAClB,wBAAwB,aACxB,oBAAoB,aAClB,yBAAyB,iBAAiB;KAI3C,wBACH,wBAAwB,YACxB,4BAA4B,cAC1B,yBAAyB,iBAAiB,uBAAuB;KAEhE,qBACH,wBAAwB,YACxB,4BAA4B,cAE5B,uCACE,iBACA,oCACc,iBACX,0CAEC,0BAA0B,QAAQ,cAAc;;;;;;KAQnD,iCACH,2BAA2B,cAC3B,SACA,wBAAwB,YACxB,gCACA,oCACE,kCACI,aAAa,qBACV,sBAAsB,gBAE7B,gCACE,iCAAiC,MAAM,SAAS,0BAChD,sBAAsB,qBACpB,iCAAiC,MAAM,SAAS,0BAChD,+BACE,oBAAoB,SAAS,QAAQ,oBAAoB,OAAO,4BAC9D,iCAAiC,MAAM,SAAS,iCAChD,qBAAqB,iBAAiB,QAAQ,oBAAoB,OAAO,eACvE,iCACE,MACA,SACA,wBACE,iBACA,QAAQ,oBAAoB,OAAO,6BAK3C,qBAAqB,iBAAiB,QAAQ,oBAAoB,OAAO,eACvE,iCACE,MACA,SACA,wBACE,iBACA,QAAQ,oBAAoB,OAAO;;KAQ9C,2BACH,2BAA2B,cAC3B,SACA,wBAAwB,YACxB,gCACA,oCACE,+BACF,2BAA2B,eACvB,yBACE,iCACE,WACA,SACA,iBACA,gBACA;;KAOE,oBACV,gBAAgB,YAChB,oBAAoB,cAClB,2BAA2B,WAC7B,2BAA2B,gBAC1B,sBAAsB,kCAEnB,sBAAsB,uCAGhB,0BACE,QAAQ,4BAA4B,UAAU,aAC9C,QAAQ,4BAA4B,cAAc,0CAItD,0BACE,0BACE,QAAQ,4BAA4B,UAAU,aAC9C,QAAQ,4BAA4B,cAAc;KAI3D,QAAQ,oDAAoD;KAE5D;WACM;;;KAIC,kBAAkB,aAAa,YAAY,2BAA2B,iBAChF,uCAGE,QAAQ,2BACN,sBAAsB,+BAEpB,6BACF,2BAA2B,QACzB,sBAAsB,aACtB,+BACE,2BAA2B,gBACtB,2CAEC,yBACE,sBAAsB,aACpB,8BAA8B,aAC9B,2BACE,WACA,cAAc,QAAQ,4BAA4B,OAAO,cACzD,QAAQ,4BAA4B,OAAO,oBAE3C,sBAAsB;KAMvC,yBAAyB,SAAS;WAC5B,+CAA+C;;WAE3C,yCAAyC;IACpD;WAAyB;IACvB,QACA;WAAyB;IACvB,QACA;WAAyB;IACvB,QACA;WAAyB;IACvB,QACA,8BAA8B,aAC5B,yBAAyB;;KAI3B,yBACV,aAAa,YACb,2BAA2B,gBAE3B,yBAAyB,kBAAkB,MAAM,2BAA0B,YACtE,qCAEC;;KAII,cAAc,UAAU,cAAc,mBAAmB,MAClE,gBAAgB,yBACb,IACA,gBAAgB,sBACb,oBAAoB,sBACnB,IACA,IAAI,oBAAoB,QAAQ,oBAAoB,IAAI,eAC1D;KAEH,6BACH,qBAAqB,YACrB,gBAAgB,cACd,gBACF,QAAQ,oBAAoB,UAAU,aACtC,QAAQ,cAAc;;KAIZ,uBACV,qBAAqB,YACrB,gBAAgB,cACd,mBAAmB,YACpB,gBAAgB,+BACb,UACA,gBAAgB,4BACb,6BAA6B,cAAc,4BAC1C,UACA,UAAU,oBAAoB,6BAA6B,cAAc,YAC3E;;KAGI,iBAAiB,iBAAiB,YAAY,iBAAiB,gBACzE,mBAAmB,gBACnB;KAGG,iBAAiB,WAAW,IAAI,YAAY;KAE5C,kCACH,iBAAiB,YACjB,GACA,iBAAiB,eACd,gBAAgB,UAAU,6BAC3B,iBAAiB,KACjB,iBAAiB,KAAK,oBAAoB,gBAAgB,UAAU;;KAG5D,kBAAkB,iBAAiB,YAAY,KAAK,kCAC9D,UACA,GACA,mBAAmB;;;;UCxtBJ;;WAEN,SAAS;;WAGT,eAAe;;;KAId,eACV,UAAU,wBACV,cAAc,8BAA8B,qCACpC,eAAe,OAAO,gBAAgB,aAAa;;KAGjD,2BACV,UAAU,wBACV,cAAc,+BACZ,oBAAoB,aAAa,MAAM,uBAAuB;;;cCKpD;UAEJ,qBAAqB,cAAc;WAClC,WAAW,UAAU;WACrB,WAAW,UAAU;;KAG3B;WACM;WACA,SAAS;;UAGV,sBAAsB;;WAGrB,WAAW,mBAAmB,SAAS,iBAAiB;;WAGxD,2BAA2B,aAAa;;;KAI9C,iCACH,6BACA,iBAAiB,aAAa,cAC5B,aAAa,KAAK,uBAAuB;KAExC,QAAQ,MAAM,YAAY,QAAQ,wBAClC,oBAAoB;KAKpB;WACM;;KAGN,sBAAsB,SAAS,QAAQ,sBAAsB;KAE7D,kBAAkB,aAAa,wBAAwB,WAAW;WAC5D,MAAM;WACN,IAAI;IACX,sBAAsB,QACxB,sBAAsB,QACpB,gBAAgB,aAAa,iBAAiB,gBAAgB,aAAa;WAG9D;;;;;;;;;;;;;;;;;;;cAoBJ,aACJ,iBAAiB,aAAa,gBACjC,iBAAiB,aAAa;YAEhB,cAAc,cAAc,UAAU;;WAG/C,oBAAoB;UAEtB;;kBAKS,OAAO;;SAGhB,KAAK,UAAU,4CACpB,SAAS,IACR,YAAY,cAAc,aAAa,IAAI,oBAAoB,aAAa;SAExE,KAAK,UAAU,wBACpB,SAAS,GACT,eAAe,aAAa,gBAAgB,aAAa,OACxD,YAAY,cAAc,aAAa,IAAI,oBAAoB,aAAa;;SAyBxE,QAAQ,UAAU,wBACvB,SAAS,GACT,UAAU,gBAAgB,aAAa,MACtC,YAAY,cAAc,aAAa,IAAI,oBAAoB,aAAa;;SAaxE,MAAM,aAAa,wBAAwB,WAAW,wBAC3D,SAAS,kBAAkB,MAAM,MAChC,YACD,cAAc,aAAa,KAAK,aAAa,QAAQ,oBAAoB,aAAa;;SAoBjF,OAAO,UAAU,wBACtB,SAAS,GACT,eAAe,aAAa,gBAAgB,aAAa,MACzD,UAAU,UAAU,aAAa,IAAI,SAAS,iBAAiB,qBAC9D,YAAY,cAAc,aAAa,IAAI,oBAAoB,aAAa;;SAexE,iBAAiB,UAAU,wBAChC,SAAS,GACT,eAAe,aAAa,gBAAgB,aAAa,MAAM,sBAC9D,YAAY,cAAc,aAAa,IAAI,oBAAoB,aAAa;;SAuBxE,UAAU,UAAU,wBAAwB,cAAc,6BAC/D,SAAS,GACT,SAAS,eAAe,GAAG,QAC3B,UAAU,UAAU,aAAa,IAAI,SAAS,iBAAiB,qBAC9D,YAAY,cAAc,aAAa,IAAI,2BAA2B,GAAG;;SAerE,IAAI,UAAU,wBAAwB,cAAc,6BACzD,SAAS,GACT,SAAS,eAAe,GAAG,SAC1B,YAAY,cAAc,aAAa,IAAI,2BAA2B,GAAG;;SAWrE,YAAY,wBAAwB,iBACtC,QAAQ,SAAS,mBAAmB,UACtC,YAAY;;SAyBR,SAAS,UAAU,YAAY,OAAO,IAAI,cAAc,KAAK;;SAK7D,SAAS,aAAa,YAC3B,MAAM,OAAO,mBAAmB,QAC/B,oBAAoB;SAEhB,SACL,aAAa,kBACP,4BAA4B,eAAe,eAEjD,MAAM,OAAO,mBAAmB,UAC7B,WAAW,YAAY,kBAAkB,MAAM,aACjD,oBAAoB,MAAM;SAEtB,SAAS,aAAa,kBAAkB,2BAA2B,cACxE,MAAM,OAAO,mBAAmB,UAC7B,WAAW,YAAY,kBAAkB,MAAM,aACjD,oBAAoB,MAAM;;;kBAuCN;;OAEX,MAAM;;OAGN,SAAS,UAAU,cAAc,oBAAoB;;OAGrD,SAAS,UAAU,cAAc,oBAAoB;;OAGrD,QAAQ,UAAU,cAAc,oBAAoB;;OAGpD,SAAS,UAAU,cAAc,cAAc;;;;;KCnWjD;;;;;WAKD,yBACP,uBAAuB,8BACb;;;UAIG,qBAAqB;;EAEpC,SAAS,cAAc,oBAAoB;;EAG3C,WAAW,UAAU,6BAA6B;;;;;cCVvC,2BAA2B;mBACrB;mBAEA;mBAEA;;EAGjB,SAAS,cAAc;;EAgBjB,QAAQ,UAAU,iBAAiB,OAAO,IAAI,QAAQ,aAAa;;EA6CnE,WAAW,UAAU,6BAA6B;;;;KC9ErD,aAAa,QAAQ;WAAyB;;;cAGtC,8BAA8B;WACpB,SAAS;EAAT,YAAA,SAAS;;;cAQnB,iCAAiC;WAEjC,UAAU;WACV,UAAU;EADV,YAAA,UAAU,iBACV,UAAU;;;cAYV,+BAA+B;WAE/B,SAAS;WACT,mBAAmB;WACnB,eAAe;EAFf,YAAA,SAAS,+BACT,mBAAmB,YACnB,eAAe;;;cAcf,0BAA0B;WAChB;EAAA,YAAA;;;cAQV,iCAAiC;WACvB,SAAS;EAAT,YAAA,SAAS;;;;;KCpDpB;WACD,SAAS;WACT,yBAAyB;WACzB,SAAS;;;KAIR;WACD,SAAS;WACT,yBAAyB;WACzB,SAAS;;;KAIR;WACD,OAAO;;;KAIN;WACD,OAAO;WACP,SAAS;;;KAIR;WACD,SAAS;WACT,SAAS;WACT;;;KAIC;WACD,oBAAoB,OAAO,+BAA+B;WAC1D,oBAAoB,OAAO,+BAA+B;WAC1D,oBAAoB,OAAO,+BAA+B;WAC1D,kBAAkB,OAAO,6BAA6B;WACtD,qBAAqB,OAAO,gCAAgC;;;cAI1D;EACa,aAAA,oBAAS,sBAAoB;;;;;KCnC3C;;WAED,SAAS;;WAET,OAAO;;;KAIN,0BACV,YAAY,2BAA2B,8BACpC;;KAGO;;WAED,UAAU;;WAEV;;WAEA,qBAAqB;;WAErB,mBAAmB;;WAEnB,iBAAiB;;WAEjB,SAAS;;;KAIR;WACD,SAAS;;;KAIR;;WAED;;WAEA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"internal-identity-DmUpBeeL.mjs","names":[],"sources":["../src/layer/internal-identity.ts"],"sourcesContent":["import type { AnyServiceToken } from '../service'\n\nimport { ServiceTagCollisionError } from './errors'\n\nimport type { LayerRegistration } from './types'\n\ntype LayerAcquiredValue = Awaited<ReturnType<LayerRegistration['acquire']>>\n\nconst serviceMemberNames = (token: AnyServiceToken): readonly (string | symbol)[] => {\n const names = new Set<string | symbol>()\n let prototype = token.prototype\n\n while (prototype && prototype !== Object.prototype) {\n for (const name of Object.getOwnPropertyNames(prototype)) {\n if (name !== 'constructor') {\n names.add(name)\n }\n }\n\n for (const symbol of Object.getOwnPropertySymbols(prototype)) {\n names.add(symbol)\n }\n\n prototype = Object.getPrototypeOf(prototype)\n }\n\n return [...names]\n}\n\n/**\n * Check the runtime portion of a same-tag association before returning it.\n * TypeScript remains authoritative for full structural compatibility; this\n * check catches the common incompatible-method collision after erasure.\n */\nexport const assertServiceCompatibility = (\n requested: AnyServiceToken,\n registered: AnyServiceToken,\n instance: LayerAcquiredValue\n): void => {\n if (requested === registered || requested.serviceTag !== registered.serviceTag) {\n return\n }\n\n const candidate = Object(instance)\n\n // SAFETY: Service providers are object instances; Object() lets this runtime boundary reject rogue primitive values without trusting their static type.\n if (candidate !== instance) {\n throw new ServiceTagCollisionError(registered, requested)\n }\n\n for (const name of serviceMemberNames(requested)) {\n if (!(name in candidate)) {\n throw new ServiceTagCollisionError(registered, requested)\n }\n }\n}\n"],"mappings":";;AAQA,MAAM,sBAAsB,UAAyD;CACnF,MAAM,wBAAQ,IAAI,IAAqB;CACvC,IAAI,YAAY,MAAM;CAEtB,OAAO,aAAa,cAAc,OAAO,WAAW;EAClD,KAAK,MAAM,QAAQ,OAAO,oBAAoB,SAAS,GACrD,IAAI,SAAS,eACX,MAAM,IAAI,IAAI;EAIlB,KAAK,MAAM,UAAU,OAAO,sBAAsB,SAAS,GACzD,MAAM,IAAI,MAAM;EAGlB,YAAY,OAAO,eAAe,SAAS;CAC7C;CAEA,OAAO,CAAC,GAAG,KAAK;AAClB;;;;;;AAOA,MAAa,8BACX,WACA,YACA,aACS;CACT,IAAI,cAAc,cAAc,UAAU,eAAe,WAAW,YAClE;CAGF,MAAM,YAAY,OAAO,QAAQ;CAGjC,IAAI,cAAc,UAChB,MAAM,IAAI,yBAAyB,YAAY,SAAS;CAG1D,KAAK,MAAM,QAAQ,mBAAmB,SAAS,GAC7C,IAAI,EAAE,QAAQ,YACZ,MAAM,IAAI,yBAAyB,YAAY,SAAS;AAG9D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.d.mts","names":[],"sources":["../../src/runtime/node.ts"],"mappings":";;;;cA2Ba,qCAAqC;EAChD,IAAI,GAAG,SAAS,gBAAgB,eAAe,IAAI;EAInD,WAAW;;;cAYA,2BAAyB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"node.mjs","names":[],"sources":["../../src/runtime/node.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'node:async_hooks'\n\nimport { RuntimeContextNotConfiguredError } from './errors'\n\nimport {\n currentRuntimeContextFrame,\n setRuntimeContextFrameCarrier,\n withActiveRuntimeContextStorage\n} from './context'\n\nimport type {\n ActiveRuntimeContextFrame,\n RuntimeContext,\n RuntimeContextFrameCarrier,\n RuntimeContextStorage\n} from './context'\n\nconst asyncLocalStorage = new AsyncLocalStorage<ActiveRuntimeContextFrame>()\n\nconst frameCarrier: RuntimeContextFrameCarrier = {\n run: (frame, program) => asyncLocalStorage.run(frame, program),\n current: () => asyncLocalStorage.getStore()\n}\n\nsetRuntimeContextFrameCarrier(frameCarrier)\n\n/** RuntimeContextStorage backed by Node/Bun async context propagation. */\nexport class NodeRuntimeContextStorage implements RuntimeContextStorage {\n run<A>(context: RuntimeContext, program: () => A): A {\n return withActiveRuntimeContextStorage(this, context, program)\n }\n\n current(): RuntimeContext {\n const frame = currentRuntimeContextFrame()\n\n if (!frame || frame.storage !== this) {\n throw new RuntimeContextNotConfiguredError()\n }\n\n return frame.context\n }\n}\n\n/** Shared Node/Bun storage used by the compatibility APIs and default Runtime. */\nexport const nodeRuntimeContextStorage = new NodeRuntimeContextStorage()\n\nexport { RuntimeContextNotConfiguredError } from './errors'\n\nexport type { RuntimeContext, RuntimeContextStorage } from './context'\n"],"mappings":";;;AAiBA,MAAM,oBAAoB,IAAI,kBAA6C;AAO3E,8BAA8B;CAJ5B,MAAM,OAAO,YAAY,kBAAkB,IAAI,OAAO,OAAO;CAC7D,eAAe,kBAAkB,SAAS;AAGH,CAAC;;AAG1C,IAAa,4BAAb,MAAwE;CACtE,IAAO,SAAyB,SAAqB;EACnD,OAAO,gCAAgC,MAAM,SAAS,OAAO;CAC/D;CAEA,UAA0B;EACxB,MAAM,QAAQ,2BAA2B;EAEzC,IAAI,CAAC,SAAS,MAAM,YAAY,MAC9B,MAAM,IAAI,iCAAiC;EAG7C,OAAO,MAAM;CACf;AACF;;AAGA,MAAa,4BAA4B,IAAI,0BAA0B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime-DnMn0X0X.mjs","names":[],"sources":["../src/layer/map-layer-backend.ts","../src/runtime/outcome.ts","../src/runtime/observer.ts","../src/layer/resolution.ts","../src/layer/runtime.ts","../src/runtime/runtime.ts"],"sourcesContent":["import { assertServiceCompatibility } from './internal-identity'\n\nimport { DuplicateServiceError, ServiceTagCollisionError } from './errors'\n\nimport type { LayerBackend, LayerBackendDisposeOptions } from './backend'\nimport type { LayerRegistration } from './types'\n\nimport { ServiceNotFoundError, type AnyServiceToken } from '../service'\n\ntype LayerAcquiredValue = Awaited<ReturnType<LayerRegistration['acquire']>>\n\n/** Native map-backed Layer backend used by Runtime when no adapter is supplied. */\nexport class MapLayerBackend implements LayerBackend {\n private readonly providers = new Map<string, LayerRegistration>()\n\n private readonly instances = new Map<string, LayerAcquiredValue>()\n\n private readonly pending = new Map<string, Promise<LayerAcquiredValue>>()\n\n /** Register a provider, rejecting duplicate or colliding Service tags. */\n register(registration: LayerRegistration): void {\n const tag = registration.service.serviceTag\n const existing = this.providers.get(tag)\n\n if (existing) {\n if (existing.service !== registration.service) {\n throw new ServiceTagCollisionError(existing.service, registration.service)\n }\n\n throw new DuplicateServiceError(registration.service)\n }\n\n this.providers.set(tag, registration)\n }\n\n /** Resolve and cache a provider instance by Service tag. */\n async resolve<T extends AnyServiceToken>(token: T): Promise<InstanceType<T>> {\n const tag = token.serviceTag\n const provider = this.providers.get(tag)\n\n if (!provider) {\n throw new ServiceNotFoundError(token)\n }\n\n const validate = (instance: LayerAcquiredValue): InstanceType<T> => {\n assertServiceCompatibility(token, provider.service, instance)\n\n // SAFETY: The provider and requested token share a tag, and compatibility checks verify the registered members before restoring the token-specific instance type.\n return instance as InstanceType<T>\n }\n\n const cached = this.instances.get(tag)\n\n if (cached !== undefined) {\n return validate(cached)\n }\n\n const pending = this.pending.get(tag)\n\n if (pending) {\n return validate(await pending)\n }\n\n const acquisition = Promise.resolve()\n .then(() => provider.acquire())\n .then((instance) => {\n validate(instance)\n this.instances.set(tag, instance)\n\n return instance\n })\n .finally(() => {\n this.pending.delete(tag)\n })\n\n this.pending.set(tag, acquisition)\n\n return validate(await acquisition)\n }\n\n /** Clear pending acquisitions, cached instances, and provider registrations. */\n async disposeAll(options?: LayerBackendDisposeOptions): Promise<void> {\n const acquisitions = [...this.pending.values()]\n\n if (acquisitions.length > 0) {\n const observePending = options?.onPendingAcquisitions\n\n if (observePending) {\n await observePending(acquisitions)\n }\n\n await Promise.allSettled(acquisitions)\n }\n\n this.instances.clear()\n this.pending.clear()\n this.providers.clear()\n }\n}\n","import { Err } from 'better-result'\n\nimport type { CleanupFailureDiagnostic, MaybePromise, ScopeOutcome } from '../scope'\n\nimport type { LayerDisposeError } from '../layer/errors'\n\nimport type { LayerBackend } from '../layer/backend'\n\nimport type { RuntimeContextStorage } from './context'\n\nimport type { RuntimeObserver } from './observer'\n\n/** Aggregated cleanup information reported during Runtime shutdown. */\nexport type RuntimeShutdownDiagnostic = {\n /** Final outcome supplied to the Runtime root Scope. */\n readonly outcome: ScopeOutcome\n /** Aggregated root-Scope and backend cleanup failure. */\n readonly error: LayerDisposeError\n}\n\n/** Observer notified about cleanup failures without changing primary results. */\nexport type CleanupFailureObserver = (\n diagnostic: CleanupFailureDiagnostic | RuntimeShutdownDiagnostic\n) => MaybePromise<void>\n\n/** Optional Runtime configuration for cleanup diagnostics. */\nexport type RuntimeOptions = {\n /** Backend used to register and resolve the Layer. Defaults to MapLayerBackend. */\n readonly backend?: LayerBackend\n /** Resolve every Layer provider before Runtime.make resolves. */\n readonly warmup?: boolean\n /** Best-effort lifecycle and Service resolution observers. */\n readonly observers?: readonly RuntimeObserver[]\n /** Optional observer for best-effort cleanup diagnostics. */\n readonly onCleanupFailure?: CleanupFailureObserver\n /** Context storage used by Service, Scope and Layer resolution. */\n readonly contextStorage?: RuntimeContextStorage\n /** Optional signal exposed through the RuntimeContext. */\n readonly signal?: AbortSignal\n}\n\n/** Optional signal supplied to one managed Runtime execution. */\nexport type RuntimeRunOptions = {\n readonly signal?: AbortSignal\n}\n\n/** Cooperative shutdown policy for a managed Runtime. */\nexport type RuntimeDisposeOptions = {\n /** Time to let active executions settle before requesting cancellation. */\n readonly gracePeriod?: number\n /** Abort active execution signals after the grace period expires. */\n readonly abortAfterGracePeriod?: boolean\n}\n\n/** Classify only a nominal better-result Err as a failed Runtime outcome. */\nexport const classifyRuntimeOutcome = <A>(value: A): ScopeOutcome => {\n if (value instanceof Err) {\n return {\n status: 'failure',\n cause: value.error\n }\n }\n\n return {\n status: 'success'\n }\n}\n","import type { AnyServiceToken } from '../service'\nimport type { Scope } from '../scope'\nimport type { ScopeOutcome } from '../scope'\nimport type { MaybePromise } from '../utils/types'\n\n/** Event emitted after a Service resolution attempt settles. */\nexport type RuntimeServiceResolveEvent = {\n readonly service: AnyServiceToken\n readonly resolutionPath: readonly AnyServiceToken[]\n readonly outcome: ScopeOutcome\n}\n\n/** Event emitted after a provider acquisition attempt settles. */\nexport type RuntimeServiceAcquireEvent = {\n readonly service: AnyServiceToken\n readonly resolutionPath: readonly AnyServiceToken[]\n readonly outcome: ScopeOutcome\n}\n\n/** Event emitted immediately before a program starts in an execution Scope. */\nexport type RuntimeExecutionStartEvent = {\n readonly scope: Scope\n}\n\n/** Event emitted after a program and its execution Scope settle. */\nexport type RuntimeExecutionEndEvent = {\n readonly scope: Scope\n readonly outcome: ScopeOutcome\n}\n\n/** Event emitted after a Layer provider release callback settles. */\nexport type RuntimeResourceReleaseEvent = {\n readonly service: AnyServiceToken\n readonly outcome: ScopeOutcome\n readonly error?: unknown\n}\n\n/** Optional best-effort hooks for Runtime lifecycle and resolution events. */\nexport type RuntimeObserver = {\n readonly onServiceResolve?: (event: RuntimeServiceResolveEvent) => MaybePromise<void>\n readonly onServiceAcquire?: (event: RuntimeServiceAcquireEvent) => MaybePromise<void>\n readonly onExecutionStart?: (event: RuntimeExecutionStartEvent) => MaybePromise<void>\n readonly onExecutionEnd?: (event: RuntimeExecutionEndEvent) => MaybePromise<void>\n readonly onResourceRelease?: (event: RuntimeResourceReleaseEvent) => MaybePromise<void>\n}\n\n/** Compose best-effort Runtime observers into one observer. */\nexport const RuntimeObserver = {\n compose: (...observers: readonly RuntimeObserver[]): RuntimeObserver => ({\n onServiceResolve: (event) => {\n notifyRuntimeObservers(observers, (observer) => observer.onServiceResolve, event)\n },\n onServiceAcquire: (event) => {\n notifyRuntimeObservers(observers, (observer) => observer.onServiceAcquire, event)\n },\n onExecutionStart: (event) => {\n notifyRuntimeObservers(observers, (observer) => observer.onExecutionStart, event)\n },\n onExecutionEnd: (event) => {\n notifyRuntimeObservers(observers, (observer) => observer.onExecutionEnd, event)\n },\n onResourceRelease: (event) => {\n notifyRuntimeObservers(observers, (observer) => observer.onResourceRelease, event)\n }\n })\n}\n\nexport const notifyRuntimeObservers = <Event>(\n observers: readonly RuntimeObserver[],\n select: (observer: RuntimeObserver) => ((event: Event) => MaybePromise<void>) | undefined,\n event: Event\n): void => {\n for (const observer of observers) {\n const callback = select(observer)\n\n if (!callback) {\n continue\n }\n\n try {\n void Promise.resolve(callback(event)).catch(() => {})\n } catch {\n // Observability must never change the Runtime result.\n }\n }\n}\n","import {\n CircularDependencyError,\n ServiceAcquisitionError,\n ServiceNotFoundError,\n type AnyServiceToken,\n type ServiceResolver\n} from '../service'\n\nimport { getRuntimeContext, makeRuntimeContext, runRuntimeContext } from '../runtime/context'\n\nimport { defaultRuntimeContextStorage } from '../runtime/default'\n\nimport type { RuntimeContextStorage } from '../runtime/context'\n\nimport { notifyRuntimeObservers, type RuntimeObserver } from '../runtime/observer'\n\nimport type { ScopeOutcome } from '../scope'\n\nimport { ServiceTagCollisionError } from './errors'\n\nconst findCycleStart = (path: readonly AnyServiceToken[], token: AnyServiceToken): number =>\n path.findIndex((current) => current.serviceTag === token.serviceTag)\n\nconst shouldPreserve = (cause: unknown): boolean =>\n cause instanceof CircularDependencyError ||\n cause instanceof ServiceAcquisitionError ||\n cause instanceof ServiceNotFoundError ||\n cause instanceof ServiceTagCollisionError\n\n/** Wrap a backend with Runtime-local resolution paths and acquisition errors. */\nexport const createResolutionResolver = (\n resolver: ServiceResolver,\n storage: RuntimeContextStorage = defaultRuntimeContextStorage,\n observers: readonly RuntimeObserver[] = []\n): ServiceResolver => {\n const wrapped: ServiceResolver = {\n async resolve<T extends AnyServiceToken>(token: T): Promise<InstanceType<T>> {\n const context = getRuntimeContext(storage)\n const path = context?.resolutionPath ?? []\n const cycleStart = findCycleStart(path, token)\n const resolutionPath = [...path, token]\n\n const notifyResolve = (outcome: ScopeOutcome): void => {\n notifyRuntimeObservers(observers, (observer) => observer.onServiceResolve, {\n service: token,\n resolutionPath,\n outcome\n })\n }\n\n if (cycleStart >= 0) {\n const error = new CircularDependencyError([...path.slice(cycleStart), token])\n notifyResolve({ status: 'failure', cause: error })\n throw error\n }\n\n const nextContext = makeRuntimeContext(\n wrapped,\n context?.scope,\n resolutionPath,\n context?.signal,\n context\n )\n\n return await runRuntimeContext(storage, nextContext, async () => {\n try {\n const instance = await resolver.resolve(token)\n notifyResolve({ status: 'success' })\n return instance\n } catch (cause) {\n if (shouldPreserve(cause)) {\n notifyResolve({ status: 'failure', cause })\n throw cause\n }\n\n const error = new ServiceAcquisitionError(token, resolutionPath, cause)\n notifyResolve({ status: 'failure', cause: error })\n throw error\n }\n })\n }\n }\n\n return wrapped\n}\n","import type { AnyService, AnyServiceToken, ServiceResolver } from '../service'\n\nimport { Scope, type CloseableScope } from '../scope'\nimport { runScoped } from '../scope/internal'\nimport { ScopeRuntime } from '../scope/runtime'\n\nimport {\n getRuntimeContext,\n makeRuntimeContext,\n runRuntimeContext,\n type RuntimeContextStorage\n} from '../runtime/context'\n\nimport { defaultRuntimeContextStorage } from '../runtime/default'\n\nimport {\n classifyRuntimeOutcome,\n type CleanupFailureObserver,\n type RuntimeDisposeOptions,\n type RuntimeOptions,\n type RuntimeRunOptions,\n type RuntimeShutdownDiagnostic\n} from '../runtime/outcome'\n\nimport { linkAbortSignals, type AbortSignalLink } from '../runtime/signal'\n\nimport { LayerDisposeError, LayerRegistrationError } from './errors'\n\nimport { createResolutionResolver } from './resolution'\n\nimport { notifyRuntimeObservers, type RuntimeObserver } from '../runtime/observer'\n\nimport type { LayerBackend } from './backend'\n\nimport { MapLayerBackend } from './map-layer-backend'\n\nimport type {\n CompleteExecution,\n CompleteExecutionLayer,\n CompleteInput,\n LayerInput,\n ProvidedEnvironment\n} from './inference'\n\nimport type { LayerRegistration } from './types'\n\nimport type { ScopeFinalizer, ScopeOutcome } from '../scope'\n\ntype LayerProvider = LayerInput['providers'][number]\n\ninterface RuntimeHandleCore<Provided extends AnyService> {\n /** The backend used to resolve this Layer's providers. */\n readonly backend: LayerBackend\n\n /** Run a program in a child Scope of the Layer's root Scope. */\n run<A>(program: CompleteExecution<Provided, A>, options?: RuntimeRunOptions): Promise<Awaited<A>>\n\n /** Run a program with providers owned by that execution's child Scope. */\n runWith<Request extends LayerInput, A>(\n layer: Request & CompleteExecutionLayer<Provided, Request>,\n program: CompleteExecution<Provided | ProvidedEnvironment<Request>, A>,\n options?: RuntimeRunOptions\n ): Promise<Awaited<A>>\n\n /** Resolve every registered provider before accepting normal executions. */\n warmup(): Promise<void>\n\n /** Stop new executions and release Layer-owned resources. */\n dispose(input?: RuntimeDisposeOptions | ScopeOutcome): Promise<void>\n}\n\n/** Runtime-facing handle that owns a Layer's resources and execution scopes. */\nexport type RuntimeHandle<Provided extends AnyService = any> = RuntimeHandleCore<Provided>\n\nconst SCOPE_SUCCESS: ScopeOutcome = Object.freeze({ status: 'success' })\n\nclass RuntimeHandleDisposedError extends Error {\n constructor() {\n super('Cannot run a program using a disposed Layer')\n\n this.name = 'RuntimeHandleDisposedError'\n }\n}\n\nconst normalizeDisposeCauses = (cause: unknown): readonly unknown[] => {\n if (cause instanceof AggregateError) {\n return [...cause.errors]\n }\n\n return [cause]\n}\n\nconst isScopeOutcome = (\n input: RuntimeDisposeOptions | ScopeOutcome | undefined\n): input is ScopeOutcome => input !== undefined && 'status' in input\n\nconst validateDisposeOptions = (options: RuntimeDisposeOptions): void => {\n const { gracePeriod } = options\n\n if (gracePeriod !== undefined && (!Number.isFinite(gracePeriod) || gracePeriod < 0)) {\n throw new RangeError('Runtime dispose gracePeriod must be a finite non-negative number')\n }\n}\n\ntype ActiveExecution = {\n readonly promise: Promise<unknown>\n}\n\nconst notifyShutdownFailure = async (\n observer: CleanupFailureObserver | undefined,\n diagnostic: RuntimeShutdownDiagnostic\n): Promise<void> => {\n if (!observer) {\n return\n }\n\n try {\n await observer(diagnostic)\n } catch {\n // Shutdown diagnostics are best effort and never affect the primary result.\n }\n}\n\nconst releaseLayerResource = async (\n service: LayerProvider['service'],\n release: ScopeFinalizer,\n outcome: ScopeOutcome,\n observers: readonly RuntimeObserver[]\n): Promise<void> => {\n try {\n await release(outcome)\n notifyRuntimeObservers(observers, (observer) => observer.onResourceRelease, {\n service,\n outcome\n })\n } catch (cause) {\n notifyRuntimeObservers(observers, (observer) => observer.onResourceRelease, {\n service,\n outcome,\n error: cause\n })\n throw cause\n }\n}\n\nconst bindProviderToScope = (\n provider: LayerProvider,\n scope: CloseableScope,\n contextStorage: RuntimeContextStorage,\n resolver: ServiceResolver,\n observers: readonly RuntimeObserver[]\n): LayerRegistration => ({\n service: provider.service,\n\n acquire: () => {\n const current = getRuntimeContext(contextStorage)\n const context = makeRuntimeContext(\n resolver,\n scope,\n current?.resolutionPath ?? [],\n current?.signal,\n current\n )\n\n return runRuntimeContext(contextStorage, context, () =>\n ScopeRuntime.run(\n scope,\n async () => {\n const resolutionPath = current?.resolutionPath ?? [provider.service]\n\n try {\n const instance = provider.acquireWithRelease\n ? (\n await scope.acquire(provider.acquireWithRelease, (acquired, outcome) =>\n releaseLayerResource(provider.service, acquired.release, outcome, observers)\n )\n ).instance\n : provider.release\n ? await scope.acquire(\n () => provider.acquire(),\n (resource, outcome) =>\n releaseLayerResource(\n provider.service,\n (releaseOutcome) => provider.release!(resource, releaseOutcome),\n outcome,\n observers\n )\n )\n : await provider.acquire()\n\n notifyRuntimeObservers(observers, (observer) => observer.onServiceAcquire, {\n service: provider.service,\n resolutionPath,\n outcome: SCOPE_SUCCESS\n })\n\n return instance\n } catch (cause) {\n notifyRuntimeObservers(observers, (observer) => observer.onServiceAcquire, {\n service: provider.service,\n resolutionPath,\n outcome: {\n status: 'failure',\n cause\n }\n })\n throw cause\n }\n },\n contextStorage\n )\n )\n }\n})\n\n/** Resolve request-local providers first, then fall back to the Runtime root. */\nclass ExecutionLayerBackend implements LayerBackend {\n private readonly localTags = new Set<string>()\n\n constructor(\n private readonly local: MapLayerBackend,\n private readonly root: LayerBackend\n ) {}\n\n register(registration: LayerRegistration): void {\n this.localTags.add(registration.service.serviceTag)\n this.local.register(registration)\n }\n\n async resolve<T extends AnyServiceToken>(token: T): Promise<InstanceType<T>> {\n if (this.localTags.has(token.serviceTag)) {\n return await this.local.resolve(token)\n }\n\n return await this.root.resolve(token)\n }\n\n async disposeAll(): Promise<void> {\n await this.local.disposeAll()\n this.localTags.clear()\n }\n}\n\nclass RuntimeHandleImpl<Provided extends AnyService> implements RuntimeHandleCore<Provided> {\n private disposePromise: Promise<void> | undefined\n\n private warmupPromise: Promise<void> | undefined\n\n private readonly executions = new Set<ActiveExecution>()\n\n private readonly shutdownController = new AbortController()\n\n private state: 'active' | 'disposing' | 'disposed' = 'active'\n\n constructor(\n readonly backend: LayerBackend,\n private readonly resolver: ServiceResolver,\n private readonly rootScope: CloseableScope,\n private readonly onCleanupFailure: CleanupFailureObserver | undefined,\n private readonly contextStorage: RuntimeContextStorage,\n private readonly signal: AbortSignal | undefined,\n private readonly observers: readonly RuntimeObserver[],\n private readonly services: readonly AnyServiceToken[]\n ) {}\n\n run<A>(\n program: CompleteExecution<Provided, A>,\n options?: RuntimeRunOptions\n ): Promise<Awaited<A>> {\n this.assertActive()\n\n const executionScope = this.rootScope.fork()\n const signalLink = linkAbortSignals(\n this.signal,\n options?.signal,\n this.shutdownController.signal\n )\n\n return this.startExecution<Awaited<A>>(signalLink, () =>\n this.runExecution(executionScope, program, this.resolver, signalLink.signal)\n )\n }\n\n runWith<Request extends LayerInput, A>(\n layer: Request & CompleteExecutionLayer<Provided, Request>,\n program: CompleteExecution<Provided | ProvidedEnvironment<Request>, A>,\n options?: RuntimeRunOptions\n ): Promise<Awaited<A>> {\n this.assertActive()\n\n const executionScope = this.rootScope.fork()\n const localBackend = new MapLayerBackend()\n const backend = new ExecutionLayerBackend(localBackend, this.backend)\n const resolver = createResolutionResolver(backend, this.contextStorage, this.observers)\n const signalLink = linkAbortSignals(\n this.signal,\n options?.signal,\n this.shutdownController.signal\n )\n\n return this.startExecution<Awaited<A>>(signalLink, async (): Promise<Awaited<A>> => {\n try {\n return await this.runExecution<Awaited<A>>(\n executionScope,\n async (): Promise<Awaited<A>> => {\n for (const provider of layer.providers) {\n backend.register(\n bindProviderToScope(\n provider,\n executionScope,\n this.contextStorage,\n resolver,\n this.observers\n )\n )\n }\n\n return await program()\n },\n resolver,\n signalLink.signal\n )\n } finally {\n await localBackend.disposeAll()\n }\n })\n }\n\n warmup(): Promise<void> {\n this.assertActive()\n\n if (this.warmupPromise) {\n return this.warmupPromise\n }\n\n const warmup = runRuntimeContext(\n this.contextStorage,\n makeRuntimeContext(this.resolver, this.rootScope, [], this.signal),\n async () => {\n for (const service of this.services) {\n await this.resolver.resolve(service)\n }\n }\n )\n\n this.warmupPromise = warmup\n\n void warmup.then(\n () => {\n if (this.warmupPromise === warmup) {\n this.warmupPromise = undefined\n }\n },\n () => {\n if (this.warmupPromise === warmup) {\n this.warmupPromise = undefined\n }\n }\n )\n\n return warmup\n }\n\n private startExecution<A>(signalLink: AbortSignalLink, run: () => PromiseLike<A>): Promise<A> {\n let resolveExecution!: (value: A | PromiseLike<A>) => void\n let rejectExecution!: (cause?: unknown) => void\n\n const execution = new Promise<A>((resolve, reject) => {\n resolveExecution = resolve\n rejectExecution = reject\n })\n\n const activeExecution: ActiveExecution = { promise: execution }\n\n this.executions.add(activeExecution)\n\n void execution.then(\n () => {\n this.executions.delete(activeExecution)\n signalLink.dispose()\n },\n () => {\n this.executions.delete(activeExecution)\n signalLink.dispose()\n }\n )\n\n try {\n const running = run()\n\n void running.then(\n (value) => {\n resolveExecution(value)\n },\n (cause) => {\n rejectExecution(cause)\n }\n )\n } catch (cause) {\n rejectExecution(cause)\n }\n\n return execution\n }\n\n private runExecution<A>(\n executionScope: CloseableScope,\n program: () => A | PromiseLike<A>,\n resolver: ServiceResolver = this.resolver,\n signal: AbortSignal = this.shutdownController.signal\n ): Promise<Awaited<A>> {\n let outcome!: ScopeOutcome\n const onOutcome = (determinedOutcome: ScopeOutcome): void => {\n outcome = determinedOutcome\n }\n const runOptions = this.onCleanupFailure\n ? {\n classify: classifyRuntimeOutcome,\n onOutcome,\n onCleanupFailure: this.onCleanupFailure\n }\n : {\n classify: classifyRuntimeOutcome,\n onOutcome\n }\n\n notifyRuntimeObservers(this.observers, (observer) => observer.onExecutionStart, {\n scope: executionScope\n })\n\n const execution = runScoped(executionScope, program, {\n ...runOptions,\n contextStorage: this.contextStorage,\n context: makeRuntimeContext(resolver, executionScope, [], signal)\n })\n\n return execution.then(\n (value) => {\n notifyRuntimeObservers(this.observers, (observer) => observer.onExecutionEnd, {\n scope: executionScope,\n outcome\n })\n return value\n },\n (cause) => {\n notifyRuntimeObservers(this.observers, (observer) => observer.onExecutionEnd, {\n scope: executionScope,\n outcome\n })\n throw cause\n }\n )\n }\n\n dispose(input?: RuntimeDisposeOptions | ScopeOutcome): Promise<void> {\n if (this.disposePromise) {\n return this.disposePromise\n }\n\n const outcome =\n isScopeOutcome(input) || input === undefined ? (input ?? SCOPE_SUCCESS) : SCOPE_SUCCESS\n const options = isScopeOutcome(input) || input === undefined ? {} : input\n\n validateDisposeOptions(options)\n this.state = 'disposing'\n\n const executions = [...this.executions]\n\n this.disposePromise = this.performDispose(executions, outcome, options)\n\n return this.disposePromise\n }\n\n private async performDispose(\n executions: readonly ActiveExecution[],\n outcome: ScopeOutcome,\n options: RuntimeDisposeOptions\n ): Promise<void> {\n const failures: unknown[] = []\n\n await Promise.allSettled(this.warmupPromise ? [this.warmupPromise] : [])\n await this.waitForExecutions(executions, options)\n\n try {\n const signalLink = linkAbortSignals(this.signal, this.shutdownController.signal)\n\n try {\n await runRuntimeContext(\n this.contextStorage,\n makeRuntimeContext(this.resolver, this.rootScope, [], signalLink.signal),\n () => this.rootScope.close(outcome)\n )\n } finally {\n signalLink.dispose()\n }\n } catch (cause) {\n failures.push(cause)\n }\n\n try {\n await this.backend.disposeAll()\n } catch (cause) {\n failures.push(cause)\n }\n\n this.state = 'disposed'\n\n if (failures.length > 0) {\n const error = new LayerDisposeError(failures.flatMap(normalizeDisposeCauses))\n\n await notifyShutdownFailure(this.onCleanupFailure, {\n outcome,\n error\n })\n\n throw error\n }\n }\n\n private async waitForExecutions(\n executions: readonly ActiveExecution[],\n options: RuntimeDisposeOptions\n ): Promise<void> {\n const settled = Promise.allSettled(executions.map((execution) => execution.promise))\n\n if (options.abortAfterGracePeriod !== true || executions.length === 0) {\n await settled\n return\n }\n\n const gracePeriod = options.gracePeriod ?? 0\n let timer: ReturnType<typeof setTimeout> | undefined\n\n const timedOut = await Promise.race([\n settled.then(() => false),\n new Promise<boolean>((resolve) => {\n timer = setTimeout(() => resolve(true), gracePeriod)\n })\n ])\n\n if (timer !== undefined) {\n clearTimeout(timer)\n }\n\n if (timedOut && !this.shutdownController.signal.aborted) {\n this.shutdownController.abort(new Error('Runtime shutdown grace period exceeded'))\n }\n\n await settled\n }\n\n private assertActive(): void {\n if (this.state !== 'active') {\n throw new RuntimeHandleDisposedError()\n }\n }\n}\n\n/** Build a Runtime handle for a complete Layer and register its providers. */\nexport const createRuntimeHandle = async <L extends LayerInput>(\n layer: L & CompleteInput<L>,\n backend: LayerBackend,\n options: RuntimeOptions = {}\n): Promise<RuntimeHandle<ProvidedEnvironment<L>>> => {\n const rootScope = Scope.make()\n const contextStorage = options.contextStorage ?? defaultRuntimeContextStorage\n const observers = options.observers ?? []\n const resolver = createResolutionResolver(backend, contextStorage, observers)\n ScopeRuntime.bind(rootScope, contextStorage)\n let current: LayerProvider | undefined\n\n try {\n for (const provider of layer.providers) {\n current = provider\n\n await backend.register(\n bindProviderToScope(provider, rootScope, contextStorage, resolver, observers)\n )\n }\n } catch (registrationCause) {\n const outcome: ScopeOutcome = {\n status: 'failure',\n cause: registrationCause\n }\n const cleanupCauses: unknown[] = []\n\n try {\n await runRuntimeContext(\n contextStorage,\n makeRuntimeContext(resolver, rootScope, [], options.signal),\n () => rootScope.close(outcome)\n )\n } catch (cause) {\n cleanupCauses.push(cause)\n }\n\n try {\n await backend.disposeAll()\n } catch (cause) {\n cleanupCauses.push(cause)\n }\n\n if (cleanupCauses.length > 0) {\n const shutdownError = new LayerDisposeError(cleanupCauses.flatMap(normalizeDisposeCauses))\n\n await notifyShutdownFailure(options.onCleanupFailure, {\n outcome,\n error: shutdownError\n })\n }\n\n const cleanupCause =\n cleanupCauses.length === 1\n ? cleanupCauses[0]\n : cleanupCauses.length > 1\n ? new LayerDisposeError(cleanupCauses.flatMap(normalizeDisposeCauses))\n : undefined\n\n throw new LayerRegistrationError(current?.service, registrationCause, cleanupCause)\n }\n\n return new RuntimeHandleImpl<ProvidedEnvironment<L>>(\n backend,\n resolver,\n rootScope,\n options.onCleanupFailure,\n contextStorage,\n options.signal,\n observers,\n layer.providers.map((provider) => provider.service)\n )\n}\n","import type { LayerBackend } from '../layer'\n\nimport { MapLayerBackend } from '../layer/map-layer-backend'\n\nimport { createRuntimeHandle, type RuntimeHandle } from '../layer/runtime'\n\nimport type {\n CompleteExecutionLayer,\n LayerInput,\n CompleteInput,\n ProvidedEnvironment\n} from '../layer/inference'\n\nimport type { CompleteExecution } from '../layer/inference'\n\nimport type { AnyService } from '../service'\n\nimport {\n classifyRuntimeOutcome,\n type RuntimeDisposeOptions,\n type RuntimeOptions,\n type RuntimeRunOptions,\n type RuntimeShutdownDiagnostic\n} from './outcome'\n\nimport type { ScopeOutcome } from '../scope'\n\nimport type { RuntimeFor } from './types'\n\nimport type { RuntimeObserver } from './observer'\n\ntype RuntimeBackendInput = LayerBackend | RuntimeOptions | undefined\n\ntype RuntimeConfig = {\n readonly backend: LayerBackend\n readonly options: RuntimeOptions\n}\n\nconst isLayerBackend = (value: RuntimeBackendInput): value is LayerBackend =>\n value !== undefined && 'register' in value && 'resolve' in value && 'disposeAll' in value\n\nconst resolveRuntimeConfig = (\n backendOrOptions: RuntimeBackendInput,\n legacyOptions?: RuntimeOptions\n): RuntimeConfig => {\n if (isLayerBackend(backendOrOptions)) {\n return {\n backend: backendOrOptions,\n options: legacyOptions ?? {}\n }\n }\n\n const options = backendOrOptions ?? {}\n\n return {\n backend: options.backend ?? new MapLayerBackend(),\n options\n }\n}\n\n/**\n * Long-lived execution environment backed by a complete Layer.\n *\n * A Runtime owns Layer resources until `dispose()` is called. Each `run()` is\n * isolated in a child Scope, while Layer-scoped resources remain shared.\n *\n * @example\n * ```ts\n * const runtime = await Runtime.make(AppLive)\n * const result = await runtime.run(loadUser('u1'))\n * await runtime.dispose()\n * ```\n *\n * @typeParam Provided The branded Service instances supplied by the Layer.\n */\nexport class Runtime<Provided extends AnyService = any> {\n private constructor(private readonly handle: RuntimeHandle<Provided>) {}\n\n /**\n * Create a long-lived Runtime that owns its Layer resources.\n *\n * @example\n * ```ts\n * const runtime = await Runtime.make(AppLive)\n * const result = await runtime.run(program)\n * await runtime.dispose()\n * ```\n */\n static make<L extends LayerInput>(\n layer: L & CompleteInput<L>,\n backend: LayerBackend,\n options?: RuntimeOptions\n ): Promise<Runtime<ProvidedEnvironment<L>>>\n\n static make<L extends LayerInput>(\n layer: L & CompleteInput<L>,\n options?: RuntimeOptions\n ): Promise<Runtime<ProvidedEnvironment<L>>>\n\n static async make<L extends LayerInput>(\n layer: L & CompleteInput<L>,\n backendOrOptions?: LayerBackend | RuntimeOptions,\n legacyOptions?: RuntimeOptions\n ): Promise<Runtime<ProvidedEnvironment<L>>> {\n const { backend, options } = resolveRuntimeConfig(backendOrOptions, legacyOptions)\n const handle = await createRuntimeHandle(layer, backend, options)\n const runtime = new Runtime<ProvidedEnvironment<L>>(handle)\n\n if (options.warmup) {\n await runtime.warmup()\n }\n\n return runtime\n }\n\n /**\n * Run one program and dispose its Layer resources before resolving.\n *\n * This is convenient for request-style or command-style execution where a\n * Runtime should not outlive the operation.\n */\n static run<A, L extends LayerInput>(\n layer: L & CompleteInput<L>,\n backend: LayerBackend,\n program: CompleteExecution<ProvidedEnvironment<L>, A>,\n options?: RuntimeOptions\n ): Promise<Awaited<A>>\n\n static run<A, L extends LayerInput>(\n layer: L & CompleteInput<L>,\n program: CompleteExecution<ProvidedEnvironment<L>, A>,\n options?: RuntimeOptions\n ): Promise<Awaited<A>>\n\n static run<A, L extends LayerInput>(\n layer: L & CompleteInput<L>,\n options: RuntimeOptions,\n program: CompleteExecution<ProvidedEnvironment<L>, A>\n ): Promise<Awaited<A>>\n\n static async run<A, L extends LayerInput>(\n layer: L & CompleteInput<L>,\n backendOrProgramOrOptions:\n | LayerBackend\n | RuntimeOptions\n | CompleteExecution<ProvidedEnvironment<L>, A>,\n programOrOptions?: CompleteExecution<ProvidedEnvironment<L>, A> | RuntimeOptions,\n legacyOptions?: RuntimeOptions\n ): Promise<Awaited<A>> {\n let program: CompleteExecution<ProvidedEnvironment<L>, A>\n let backendOrOptions: RuntimeBackendInput\n let options: RuntimeOptions | undefined\n\n // oxlint-disable-next-line anti-slop/no-runtime-typeof -- overload dispatch needs to distinguish a Program callback from configuration.\n if (typeof backendOrProgramOrOptions === 'function') {\n program = backendOrProgramOrOptions\n // SAFETY: The function overload branch establishes that this argument is the optional RuntimeOptions value.\n backendOrOptions = programOrOptions as RuntimeOptions | undefined\n options = undefined\n } else {\n backendOrOptions = backendOrProgramOrOptions\n // SAFETY: The non-function overload branch establishes that this argument is the complete execution callback.\n program = programOrOptions as CompleteExecution<ProvidedEnvironment<L>, A>\n options = legacyOptions\n }\n\n const config = resolveRuntimeConfig(backendOrOptions, options)\n let programOutcome: ScopeOutcome | undefined\n const outcomeObserver: RuntimeObserver = {\n onExecutionEnd: ({ outcome }) => {\n programOutcome = outcome\n }\n }\n const runtimeOptions: RuntimeOptions = {\n ...config.options,\n observers: [outcomeObserver, ...(config.options.observers ?? [])]\n }\n const runtime = await Runtime.make(layer, config.backend, runtimeOptions)\n\n let value!: Awaited<A>\n let executionFailed = false\n let executionFailure: unknown\n\n try {\n value = await runtime.runUnchecked(program)\n } catch (cause) {\n executionFailed = true\n executionFailure = cause\n }\n\n const outcome: ScopeOutcome =\n programOutcome ??\n ({\n status: 'failure',\n cause: executionFailure\n } as const)\n\n try {\n await runtime.disposeWithOutcome(outcome)\n } catch (shutdownFailure) {\n if (!executionFailed && outcome.status === 'success') {\n throw shutdownFailure\n }\n }\n\n if (executionFailed) {\n throw executionFailure\n }\n\n return value\n }\n\n /** Run a callback with a managed Runtime and always dispose it afterward. */\n static use<A, L extends LayerInput>(\n layer: L & CompleteInput<L>,\n use: (runtime: Runtime<ProvidedEnvironment<L>>) => A | PromiseLike<A>,\n options?: RuntimeOptions\n ): Promise<Awaited<A>>\n\n static async use<A, L extends LayerInput>(\n layer: L & CompleteInput<L>,\n use: (runtime: Runtime<ProvidedEnvironment<L>>) => A | PromiseLike<A>,\n options?: RuntimeOptions\n ): Promise<Awaited<A>> {\n const runtime = await Runtime.make(layer, options)\n\n let value!: Awaited<A>\n let executionFailed = false\n let executionFailure: unknown\n let programOutcome: ScopeOutcome | undefined\n\n try {\n value = await use(runtime)\n programOutcome = classifyRuntimeOutcome(value)\n } catch (cause) {\n executionFailed = true\n executionFailure = cause\n programOutcome = {\n status: 'failure',\n cause\n }\n }\n\n const outcome: ScopeOutcome =\n programOutcome ??\n ({\n status: 'failure',\n cause: executionFailure\n } as const)\n\n try {\n await runtime.disposeWithOutcome(outcome)\n } catch (shutdownFailure) {\n if (!executionFailed && outcome.status === 'success') {\n throw shutdownFailure\n }\n }\n\n if (executionFailed) {\n throw executionFailure\n }\n\n return value\n }\n\n /** Resolve every Layer provider and dispose the Runtime if warmup fails. */\n async warmup(): Promise<void> {\n try {\n await this.handle.warmup()\n } catch (cause) {\n try {\n await this.handle.dispose({ status: 'failure', cause })\n } catch {\n // Warmup failure remains the primary error; cleanup is best effort.\n }\n\n throw cause\n }\n }\n\n /** Run one execution in this Runtime's child Scope. */\n run<A>(\n program: CompleteExecution<Provided, A>,\n options?: RuntimeRunOptions\n ): Promise<Awaited<A>> {\n return this.handle.run(program, options)\n }\n\n /** Run one execution with a Layer owned by that execution's child Scope. */\n runWith<Request extends LayerInput, A>(\n layer: Request & CompleteExecutionLayer<Provided, Request>,\n program: CompleteExecution<Provided | ProvidedEnvironment<Request>, A>,\n options?: RuntimeRunOptions\n ): Promise<Awaited<A>> {\n return this.handle.runWith(layer, program, options)\n }\n\n private runUnchecked<A>(program: () => A | PromiseLike<A>): Promise<Awaited<A>> {\n // SAFETY: One-shot Runtime.run performs the same complete-program validation at its public boundary before using this internal escape hatch.\n return this.handle.run(program as CompleteExecution<Provided, A>)\n }\n\n /** Stop new executions and release the Runtime's Layer resources. */\n dispose(options?: RuntimeDisposeOptions): Promise<void>\n\n /** @deprecated Scope outcomes are kept for internal compatibility. */\n dispose(outcome: ScopeOutcome): Promise<void>\n\n dispose(optionsOrOutcome?: RuntimeDisposeOptions | ScopeOutcome): Promise<void> {\n return this.handle.dispose(optionsOrOutcome)\n }\n\n /** Release Runtime-owned resources through JavaScript's async disposal protocol. */\n async [Symbol.asyncDispose](): Promise<void> {\n await this.dispose()\n }\n\n private disposeWithOutcome(outcome: ScopeOutcome): Promise<void> {\n return this.handle.dispose(outcome)\n }\n}\n\n/** Type-level aliases for naming Runtime handles and shutdown options. */\nexport declare namespace Runtime {\n /** Name a Runtime type from a concrete Layer. */\n export type For<L extends LayerInput> = RuntimeFor<L>\n\n /** Optional Runtime shutdown configuration. */\n export type Options = RuntimeOptions\n\n /** Optional signal supplied to one managed Runtime execution. */\n export type RunOptions = RuntimeRunOptions\n\n /** Cooperative shutdown policy for a managed Runtime. */\n export type DisposeOptions = RuntimeDisposeOptions\n\n /** Diagnostic reported for aggregated Runtime shutdown cleanup failures. */\n export type ShutdownDiagnostic = RuntimeShutdownDiagnostic\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scope-GGnmTQck.mjs","names":[],"sources":["../src/scope/runtime.ts","../src/scope/internal.ts","../src/scope/scope.ts"],"sourcesContent":["import { ScopeRuntimeNotConfiguredError } from './errors'\n\nimport { RuntimeContextNotConfiguredError } from '../runtime/errors'\n\nimport type { Scope } from './scope'\n\nimport {\n activeRuntimeContextStorage,\n currentRuntimeContext,\n getRuntimeContext,\n makeRuntimeContext,\n runRuntimeContext\n} from '../runtime/context'\n\nimport type { RuntimeContextStorage } from '../runtime/context'\n\nconst scopeStorages = new WeakMap<object, RuntimeContextStorage>()\n\n/** Bridges the current Scope through async execution context. */\nexport class ScopeRuntime {\n /** Supply a Scope while invoking a callback. */\n static run<A>(\n scope: Scope,\n program: () => A,\n storage: RuntimeContextStorage = scopeStorages.get(scope) ?? activeRuntimeContextStorage()\n ): A {\n scopeStorages.set(scope, storage)\n\n const current = getRuntimeContext(storage)\n const context = makeRuntimeContext(\n current?.resolver,\n scope,\n current?.resolutionPath ?? [],\n current?.signal,\n current\n )\n\n return runRuntimeContext(storage, context, program)\n }\n\n /** Return the Scope active in the current execution context. */\n static current(): Scope {\n let context\n\n try {\n context = currentRuntimeContext()\n } catch (cause) {\n if (cause instanceof RuntimeContextNotConfiguredError) {\n throw new ScopeRuntimeNotConfiguredError()\n }\n\n throw cause\n }\n\n if (!context.scope) {\n throw new ScopeRuntimeNotConfiguredError()\n }\n\n return context.scope\n }\n\n /** Associate a Runtime-owned Scope with its context storage. */\n static bind(scope: Scope, storage: RuntimeContextStorage): void {\n scopeStorages.set(scope, storage)\n }\n}\n","import { ScopeCloseError } from './errors'\n\nimport { ScopeRuntime } from './runtime'\n\nimport type { CloseableScope } from './scope'\n\nimport {\n runRuntimeContext,\n type CompleteRuntimeContext,\n type RuntimeContextStorage\n} from '../runtime/context'\n\nimport type { CleanupFailureDiagnostic, MaybePromise, ScopeOutcome } from './types'\n\nexport type OutcomeClassifier<A> = (value: A) => ScopeOutcome\n\nexport type RunScopedOptions<A> = {\n readonly classify: OutcomeClassifier<A>\n readonly onOutcome?: (outcome: ScopeOutcome) => void\n readonly onCleanupFailure?: (diagnostic: CleanupFailureDiagnostic) => MaybePromise<void>\n readonly contextStorage?: RuntimeContextStorage\n readonly context?: CompleteRuntimeContext\n}\n\nconst notifyCleanupFailure = async (\n observer: ((diagnostic: CleanupFailureDiagnostic) => MaybePromise<void>) | undefined,\n diagnostic: CleanupFailureDiagnostic\n): Promise<void> => {\n if (!observer) {\n return\n }\n\n try {\n await observer(diagnostic)\n } catch {\n // Cleanup diagnostics are best effort and never affect the primary result.\n }\n}\n\nexport const runScoped = async <A>(\n scope: CloseableScope,\n program: () => A | PromiseLike<A>,\n options: RunScopedOptions<Awaited<A>>\n): Promise<Awaited<A>> => {\n let value!: Awaited<A>\n\n let programFailed = false\n let programFailure: unknown\n\n try {\n const run = () => ScopeRuntime.run(scope, program, options.contextStorage)\n\n value = await (options.context && options.contextStorage\n ? runRuntimeContext(options.contextStorage, options.context, run)\n : run())\n } catch (cause) {\n programFailed = true\n programFailure = cause\n }\n\n let outcome: ScopeOutcome\n let outcomeStatus: ScopeOutcome['status']\n\n if (programFailed) {\n outcome = {\n status: 'failure',\n cause: programFailure\n }\n outcomeStatus = 'failure'\n } else {\n try {\n outcome = options.classify(value)\n // Read the discriminant before cleanup so a throwing classifier or proxy is a program failure.\n outcomeStatus = outcome.status\n } catch (cause) {\n programFailed = true\n programFailure = cause\n outcome = {\n status: 'failure',\n cause\n }\n outcomeStatus = 'failure'\n }\n }\n\n options.onOutcome?.(outcome)\n\n let cleanupFailed = false\n let cleanupFailure: unknown\n\n try {\n await scope.close(outcome)\n } catch (cause) {\n cleanupFailed = true\n cleanupFailure = cause\n }\n\n if (cleanupFailed) {\n const error =\n cleanupFailure instanceof ScopeCloseError\n ? cleanupFailure\n : new ScopeCloseError([cleanupFailure])\n\n await notifyCleanupFailure(options.onCleanupFailure, {\n outcome,\n error\n })\n\n cleanupFailure = error\n }\n\n if (programFailed) {\n throw programFailure\n }\n\n if (outcomeStatus === 'failure') {\n return value\n }\n\n if (cleanupFailed) {\n throw cleanupFailure\n }\n\n return value\n}\n","import { ResourceNotDisposableError, ScopeCloseError, ScopeClosedError } from './errors'\n\nimport { getDisposeFinalizer } from './disposable'\n\nimport { runScoped } from './internal'\n\nimport { ScopeRuntime } from './runtime'\n\nimport type { DisposableResource, MaybePromise, ScopeFinalizer, ScopeOutcome } from './types'\n\n/**\n * Non-owning lifecycle context for finalizers and child Scopes.\n *\n * A Scope can register cleanup and create children, but it cannot close\n * itself. Use `Scope.make()` or `Scope.run()` when your code owns the Scope.\n */\nexport interface Scope {\n /** Register a finalizer that runs when the owning Scope closes. */\n addFinalizer(finalizer: ScopeFinalizer): void\n\n /** Acquire a resource and register its outcome-aware release callback. */\n acquire<R>(\n acquire: () => MaybePromise<R>,\n release: (resource: R, outcome: ScopeOutcome) => MaybePromise<void>\n ): Promise<R>\n\n /** Register an already-acquired disposable resource. */\n add<R extends DisposableResource>(resource: R): Promise<R>\n\n /** Create a child Scope owned by this Scope. */\n fork(): CloseableScope\n}\n\n/** A Scope whose owner is responsible for calling `close()`. */\nexport interface CloseableScope extends Scope {\n /** Close the Scope and run children and finalizers in child-first LIFO order. */\n close(outcome?: ScopeOutcome): Promise<void>\n}\n\nconst SCOPE_SUCCESS: ScopeOutcome = Object.freeze({ status: 'success' })\n\nclass ScopeImpl implements CloseableScope {\n private readonly children = new Set<ScopeImpl>()\n\n private readonly finalizers: ScopeFinalizer[] = []\n\n private closePromise: Promise<void> | undefined\n\n private closeOutcome: ScopeOutcome | undefined\n\n constructor(private parent?: ScopeImpl) {}\n\n fork(): CloseableScope {\n this.assertOpen()\n\n const child = new ScopeImpl(this)\n\n this.children.add(child)\n\n return child\n }\n\n addFinalizer(finalizer: ScopeFinalizer): void {\n this.assertOpen()\n\n this.finalizers.push(finalizer)\n }\n\n async acquire<R>(\n acquire: () => MaybePromise<R>,\n release: (resource: R, outcome: ScopeOutcome) => MaybePromise<void>\n ): Promise<R> {\n this.assertOpen()\n\n const resource = await acquire()\n\n try {\n this.addFinalizer((outcome) => release(resource, outcome))\n\n return resource\n } catch (scopeFailure) {\n try {\n await release(resource, this.closeOutcome ?? SCOPE_SUCCESS)\n } catch (releaseFailure) {\n throw new AggregateError(\n [scopeFailure, releaseFailure],\n 'Scope closed while acquiring a resource and immediate cleanup also failed'\n )\n }\n\n throw scopeFailure\n }\n }\n\n async add<R extends DisposableResource>(resource: R): Promise<R> {\n const finalizer = getDisposeFinalizer(resource)\n\n if (!finalizer) {\n throw new ResourceNotDisposableError()\n }\n\n try {\n this.addFinalizer(finalizer)\n\n return resource\n } catch (scopeFailure) {\n try {\n await finalizer(this.closeOutcome ?? SCOPE_SUCCESS)\n } catch (releaseFailure) {\n throw new AggregateError(\n [scopeFailure, releaseFailure],\n 'Scope closed while adding a disposable resource and cleanup also failed'\n )\n }\n\n throw scopeFailure\n }\n }\n\n close(outcome: ScopeOutcome = SCOPE_SUCCESS): Promise<void> {\n if (this.closePromise) {\n return this.closePromise\n }\n\n this.closeOutcome = outcome\n this.closePromise = Promise.resolve().then(() => this.closeWithRuntime(outcome))\n\n return this.closePromise\n }\n\n private async closeWithRuntime(outcome: ScopeOutcome): Promise<void> {\n let started = false\n\n try {\n await ScopeRuntime.run(this, () => {\n started = true\n return this.closeInternal(outcome)\n })\n } catch (storageFailure) {\n if (started) {\n throw storageFailure\n }\n\n // Context propagation cannot prevent direct Scope cleanup.\n try {\n await this.closeInternal(outcome)\n } catch (cleanupFailure) {\n const cleanupCauses =\n cleanupFailure instanceof ScopeCloseError ? cleanupFailure.causes : [cleanupFailure]\n\n throw new ScopeCloseError([storageFailure, ...cleanupCauses])\n }\n\n throw storageFailure\n }\n }\n\n private async closeInternal(outcome: ScopeOutcome): Promise<void> {\n const failures: unknown[] = []\n\n const children = [...this.children]\n\n this.children.clear()\n\n for (let index = children.length - 1; index >= 0; index--) {\n const child = children[index]\n\n if (!child) {\n continue\n }\n\n try {\n await child.close(outcome)\n } catch (cause) {\n if (cause instanceof ScopeCloseError) {\n failures.push(...cause.causes)\n } else {\n failures.push(cause)\n }\n }\n }\n\n for (let index = this.finalizers.length - 1; index >= 0; index--) {\n const finalizer = this.finalizers[index]\n\n if (!finalizer) {\n continue\n }\n\n try {\n await finalizer(outcome)\n } catch (cause) {\n failures.push(cause)\n }\n }\n\n this.finalizers.length = 0\n\n this.detach()\n\n if (failures.length > 0) {\n throw new ScopeCloseError(failures)\n }\n }\n\n private detach(): void {\n const parent = this.parent\n\n if (!parent) {\n return\n }\n\n parent.children.delete(this)\n this.parent = undefined\n }\n\n private assertOpen(): void {\n if (this.closePromise) {\n throw new ScopeClosedError()\n }\n }\n}\n\nexport const Scope = {\n /** Create an owned, initially open Scope. */\n make(): CloseableScope {\n return new ScopeImpl()\n },\n\n /** Return the non-owning Scope available in the current execution context. */\n current(): Scope {\n return ScopeRuntime.current()\n },\n\n /** Run a callback with an existing Scope supplied as the current context. */\n provide<A>(scope: Scope, program: () => A): A {\n return ScopeRuntime.run(scope, program)\n },\n\n /** Resolve the current Scope through `yield* Scope` inside an Effect. */\n // oxlint-disable-next-line require-yield\n *[Symbol.iterator](): Generator<never, Scope, unknown> {\n return ScopeRuntime.current()\n },\n\n /**\n * Run a program in a newly owned Scope.\n *\n * Scope is independent from `better-result`, so returned values—including\n * `Result.err`—close this Scope with a successful outcome. Result-aware\n * outcome classification belongs to `Runtime.run`.\n *\n * @example\n * ```ts\n * await Scope.run(async (scope) => {\n * const connection = await scope.acquire(connect, (connection) => connection.close())\n * return connection.query()\n * })\n * ```\n */\n run<A>(program: (scope: Scope) => A | PromiseLike<A>): Promise<Awaited<A>> {\n const scope = new ScopeImpl()\n\n return runScoped(scope, () => program(scope), {\n classify: () => SCOPE_SUCCESS\n })\n }\n} as const\n\n/** Type-level aliases for Scope ownership, outcomes, and cleanup contracts. */\nexport declare namespace Scope {\n /** A Scope whose owner is responsible for calling `close()`. */\n export type Closeable = CloseableScope\n\n /** The outcome supplied to Scope finalizers and resource releases. */\n export type Outcome = ScopeOutcome\n\n /** A cleanup callback registered with a Scope. */\n export type Finalizer = ScopeFinalizer\n\n /** A value implementing a JavaScript disposal protocol. */\n export type Disposable = DisposableResource\n}\n"],"mappings":";;;AAgBA,MAAM,gCAAgB,IAAI,QAAuC;;AAGjE,IAAa,eAAb,MAA0B;;CAExB,OAAO,IACL,OACA,SACA,UAAiC,cAAc,IAAI,KAAK,KAAK,4BAA4B,GACtF;EACH,cAAc,IAAI,OAAO,OAAO;EAEhC,MAAM,UAAU,kBAAkB,OAAO;EACzC,MAAM,UAAU,mBACd,SAAS,UACT,OACA,SAAS,kBAAkB,CAAC,GAC5B,SAAS,QACT,OACF;EAEA,OAAO,kBAAkB,SAAS,SAAS,OAAO;CACpD;;CAGA,OAAO,UAAiB;EACtB,IAAI;EAEJ,IAAI;GACF,UAAU,sBAAsB;EAClC,SAAS,OAAO;GACd,IAAI,iBAAiB,kCACnB,MAAM,IAAI,+BAA+B;GAG3C,MAAM;EACR;EAEA,IAAI,CAAC,QAAQ,OACX,MAAM,IAAI,+BAA+B;EAG3C,OAAO,QAAQ;CACjB;;CAGA,OAAO,KAAK,OAAc,SAAsC;EAC9D,cAAc,IAAI,OAAO,OAAO;CAClC;AACF;;;ACzCA,MAAM,uBAAuB,OAC3B,UACA,eACkB;CAClB,IAAI,CAAC,UACH;CAGF,IAAI;EACF,MAAM,SAAS,UAAU;CAC3B,QAAQ,CAER;AACF;AAEA,MAAa,YAAY,OACvB,OACA,SACA,YACwB;CACxB,IAAI;CAEJ,IAAI,gBAAgB;CACpB,IAAI;CAEJ,IAAI;EACF,MAAM,YAAY,aAAa,IAAI,OAAO,SAAS,QAAQ,cAAc;EAEzE,QAAQ,OAAO,QAAQ,WAAW,QAAQ,iBACtC,kBAAkB,QAAQ,gBAAgB,QAAQ,SAAS,GAAG,IAC9D,IAAI;CACV,SAAS,OAAO;EACd,gBAAgB;EAChB,iBAAiB;CACnB;CAEA,IAAI;CACJ,IAAI;CAEJ,IAAI,eAAe;EACjB,UAAU;GACR,QAAQ;GACR,OAAO;EACT;EACA,gBAAgB;CAClB,OACE,IAAI;EACF,UAAU,QAAQ,SAAS,KAAK;EAEhC,gBAAgB,QAAQ;CAC1B,SAAS,OAAO;EACd,gBAAgB;EAChB,iBAAiB;EACjB,UAAU;GACR,QAAQ;GACR;EACF;EACA,gBAAgB;CAClB;CAGF,QAAQ,YAAY,OAAO;CAE3B,IAAI,gBAAgB;CACpB,IAAI;CAEJ,IAAI;EACF,MAAM,MAAM,MAAM,OAAO;CAC3B,SAAS,OAAO;EACd,gBAAgB;EAChB,iBAAiB;CACnB;CAEA,IAAI,eAAe;EACjB,MAAM,QACJ,0BAA0B,kBACtB,iBACA,IAAI,gBAAgB,CAAC,cAAc,CAAC;EAE1C,MAAM,qBAAqB,QAAQ,kBAAkB;GACnD;GACA;EACF,CAAC;EAED,iBAAiB;CACnB;CAEA,IAAI,eACF,MAAM;CAGR,IAAI,kBAAkB,WACpB,OAAO;CAGT,IAAI,eACF,MAAM;CAGR,OAAO;AACT;;;ACrFA,MAAM,gBAA8B,OAAO,OAAO,EAAE,QAAQ,UAAU,CAAC;AAEvE,IAAM,YAAN,MAAM,UAAoC;CASpB;CARpB,2BAA4B,IAAI,IAAe;CAE/C,aAAgD,CAAC;CAEjD;CAEA;CAEA,YAAY,QAA4B;EAApB,KAAA,SAAA;CAAqB;CAEzC,OAAuB;EACrB,KAAK,WAAW;EAEhB,MAAM,QAAQ,IAAI,UAAU,IAAI;EAEhC,KAAK,SAAS,IAAI,KAAK;EAEvB,OAAO;CACT;CAEA,aAAa,WAAiC;EAC5C,KAAK,WAAW;EAEhB,KAAK,WAAW,KAAK,SAAS;CAChC;CAEA,MAAM,QACJ,SACA,SACY;EACZ,KAAK,WAAW;EAEhB,MAAM,WAAW,MAAM,QAAQ;EAE/B,IAAI;GACF,KAAK,cAAc,YAAY,QAAQ,UAAU,OAAO,CAAC;GAEzD,OAAO;EACT,SAAS,cAAc;GACrB,IAAI;IACF,MAAM,QAAQ,UAAU,KAAK,gBAAgB,aAAa;GAC5D,SAAS,gBAAgB;IACvB,MAAM,IAAI,eACR,CAAC,cAAc,cAAc,GAC7B,2EACF;GACF;GAEA,MAAM;EACR;CACF;CAEA,MAAM,IAAkC,UAAyB;EAC/D,MAAM,YAAY,oBAAoB,QAAQ;EAE9C,IAAI,CAAC,WACH,MAAM,IAAI,2BAA2B;EAGvC,IAAI;GACF,KAAK,aAAa,SAAS;GAE3B,OAAO;EACT,SAAS,cAAc;GACrB,IAAI;IACF,MAAM,UAAU,KAAK,gBAAgB,aAAa;GACpD,SAAS,gBAAgB;IACvB,MAAM,IAAI,eACR,CAAC,cAAc,cAAc,GAC7B,yEACF;GACF;GAEA,MAAM;EACR;CACF;CAEA,MAAM,UAAwB,eAA8B;EAC1D,IAAI,KAAK,cACP,OAAO,KAAK;EAGd,KAAK,eAAe;EACpB,KAAK,eAAe,QAAQ,QAAQ,CAAC,CAAC,WAAW,KAAK,iBAAiB,OAAO,CAAC;EAE/E,OAAO,KAAK;CACd;CAEA,MAAc,iBAAiB,SAAsC;EACnE,IAAI,UAAU;EAEd,IAAI;GACF,MAAM,aAAa,IAAI,YAAY;IACjC,UAAU;IACV,OAAO,KAAK,cAAc,OAAO;GACnC,CAAC;EACH,SAAS,gBAAgB;GACvB,IAAI,SACF,MAAM;GAIR,IAAI;IACF,MAAM,KAAK,cAAc,OAAO;GAClC,SAAS,gBAAgB;IACvB,MAAM,gBACJ,0BAA0B,kBAAkB,eAAe,SAAS,CAAC,cAAc;IAErF,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,GAAG,aAAa,CAAC;GAC9D;GAEA,MAAM;EACR;CACF;CAEA,MAAc,cAAc,SAAsC;EAChE,MAAM,WAAsB,CAAC;EAE7B,MAAM,WAAW,CAAC,GAAG,KAAK,QAAQ;EAElC,KAAK,SAAS,MAAM;EAEpB,KAAK,IAAI,QAAQ,SAAS,SAAS,GAAG,SAAS,GAAG,SAAS;GACzD,MAAM,QAAQ,SAAS;GAEvB,IAAI,CAAC,OACH;GAGF,IAAI;IACF,MAAM,MAAM,MAAM,OAAO;GAC3B,SAAS,OAAO;IACd,IAAI,iBAAiB,iBACnB,SAAS,KAAK,GAAG,MAAM,MAAM;SAE7B,SAAS,KAAK,KAAK;GAEvB;EACF;EAEA,KAAK,IAAI,QAAQ,KAAK,WAAW,SAAS,GAAG,SAAS,GAAG,SAAS;GAChE,MAAM,YAAY,KAAK,WAAW;GAElC,IAAI,CAAC,WACH;GAGF,IAAI;IACF,MAAM,UAAU,OAAO;GACzB,SAAS,OAAO;IACd,SAAS,KAAK,KAAK;GACrB;EACF;EAEA,KAAK,WAAW,SAAS;EAEzB,KAAK,OAAO;EAEZ,IAAI,SAAS,SAAS,GACpB,MAAM,IAAI,gBAAgB,QAAQ;CAEtC;CAEA,SAAuB;EACrB,MAAM,SAAS,KAAK;EAEpB,IAAI,CAAC,QACH;EAGF,OAAO,SAAS,OAAO,IAAI;EAC3B,KAAK,SAAS,KAAA;CAChB;CAEA,aAA2B;EACzB,IAAI,KAAK,cACP,MAAM,IAAI,iBAAiB;CAE/B;AACF;AAEA,MAAa,QAAQ;;CAEnB,OAAuB;EACrB,OAAO,IAAI,UAAU;CACvB;;CAGA,UAAiB;EACf,OAAO,aAAa,QAAQ;CAC9B;;CAGA,QAAW,OAAc,SAAqB;EAC5C,OAAO,aAAa,IAAI,OAAO,OAAO;CACxC;;CAIA,EAAE,OAAO,YAA8C;EACrD,OAAO,aAAa,QAAQ;CAC9B;;;;;;;;;;;;;;;;CAiBA,IAAO,SAAoE;EACzE,MAAM,QAAQ,IAAI,UAAU;EAE5B,OAAO,UAAU,aAAa,QAAQ,KAAK,GAAG,EAC5C,gBAAgB,cAClB,CAAC;CACH;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"signal-B97cs85Z.mjs","names":["Constructor"],"sources":["../src/runtime/default.ts","../src/service/runtime.ts","../src/service/service.ts","../src/scope/errors.ts","../src/scope/disposable.ts","../src/layer/internal.ts","../src/layer/layer.ts","../src/runtime/signal.ts"],"sourcesContent":["import { nodeRuntimeContextStorage } from './node'\n\nimport { setDefaultRuntimeContextStorage } from './context'\n\n/** The Node/Bun storage used by the main Runtime entrypoint. */\nexport const defaultRuntimeContextStorage = nodeRuntimeContextStorage\n\nsetDefaultRuntimeContextStorage(defaultRuntimeContextStorage)\n","import { ServiceRuntimeNotConfiguredError } from './errors'\n\nimport { RuntimeContextNotConfiguredError } from '../runtime/errors'\n\nimport {\n currentRuntimeContext,\n getRuntimeContext,\n makeRuntimeContext,\n runRuntimeContext\n} from '../runtime/context'\n\nimport { defaultRuntimeContextStorage } from '../runtime/default'\n\nimport type { AnyServiceToken } from './types'\n\nimport type { RuntimeContextStorage } from '../runtime/context'\n\n/** Resolves class-backed Service tokens for a runtime execution. */\nexport interface ServiceResolver {\n /** Resolve a token to its corresponding Service instance. */\n resolve<T extends AnyServiceToken>(token: T): InstanceType<T> | PromiseLike<InstanceType<T>>\n}\n\n/** Provides the resolver context used by Service tokens during execution. */\nexport class ServiceRuntime {\n /**\n * Run a callback with a resolver available to `yield* Service` expressions.\n *\n * The context is scoped to the callback and is restored afterward.\n *\n * @example\n * ```ts\n * const value = ServiceRuntime.run(resolver, () => {\n * return ServiceRuntime.resolve(Database)\n * })\n * ```\n */\n static run<A>(\n resolver: ServiceResolver,\n program: () => A,\n storage: RuntimeContextStorage = defaultRuntimeContextStorage\n ): A {\n const current = getRuntimeContext(storage)\n const context = makeRuntimeContext(\n resolver,\n current?.scope,\n current?.resolver === resolver ? current.resolutionPath : [],\n current?.signal,\n current?.resolver === resolver ? current : undefined\n )\n\n return runRuntimeContext(storage, context, program)\n }\n\n /** Return the resolver active in the current execution context. */\n static current(): ServiceResolver {\n let context\n\n try {\n context = currentRuntimeContext()\n } catch (cause) {\n if (cause instanceof RuntimeContextNotConfiguredError) {\n throw new ServiceRuntimeNotConfiguredError()\n }\n\n throw cause\n }\n\n if (!context.resolver) {\n throw new ServiceRuntimeNotConfiguredError()\n }\n\n return context.resolver\n }\n\n /** Resolve a Service token using the active resolver. */\n static async resolve<T extends AnyServiceToken>(token: T): Promise<InstanceType<T>> {\n const resolver = ServiceRuntime.current()\n\n return await resolver.resolve(token)\n }\n}\n","import { ServiceRuntime } from './runtime'\n\nimport type { ServiceRequirement } from '../effect/types'\n\nimport type {\n AnyService,\n AnyServiceToken,\n ServiceClass,\n ServiceContract,\n ServiceIdentity,\n ServiceIdentityTypeId,\n ServiceInstance,\n ServiceRequirements,\n ServiceTag,\n ServiceToken,\n ServiceTokenOf\n} from './types'\n\ntype ServiceTagLiteral<Tag extends string> = string extends Tag\n ? never\n : Tag extends ''\n ? never\n : Tag\n\ninterface ServiceFactory<Self> {\n <const Tag extends string>(\n tag: ServiceTagLiteral<Tag>\n ): (abstract new () => ServiceIdentity<Tag>) & {\n readonly name: string\n readonly serviceTag: Tag\n } & {\n readonly of: Service.FactoryOf<Self, Tag>\n readonly [Symbol.asyncIterator]: (\n this: ServiceToken<Tag, Self & ServiceIdentity<Tag>>\n ) => AsyncGenerator<ServiceRequirement<Self>, Self, unknown>\n }\n}\n\n/**\n * Declare a class-backed Service with a stable string-literal identity.\n *\n * The returned class is simultaneously the implementation type, the runtime\n * dependency token, and the value yielded by `yield*` in an Effect generator.\n * The explicit self type preserves exact instance inference, while the second\n * call captures the tag as a literal for Layer composition and diagnostics.\n *\n * @example\n * ```ts\n * class Database extends Service<Database>()('Database') {\n * query(): string {\n * return 'ok'\n * }\n * }\n *\n * const database = yield* Database\n * database.query()\n * ```\n *\n * @typeParam Self The instance type implemented by the declared Service.\n */\nexport function Service<Self>(): ServiceFactory<Self> {\n return function <const Tag extends string>(tag: ServiceTagLiteral<Tag>) {\n if (tag.length === 0) {\n throw new TypeError('Service tags must not be empty')\n }\n\n abstract class BaseService implements ServiceIdentity<Tag> {\n /** The stable logical identity used by Layers and resolver backends. */\n static readonly serviceTag: Tag = tag\n declare readonly [ServiceIdentityTypeId]: Tag\n\n /**\n * Type-check a structural implementation of this Service.\n *\n * This is an identity helper. It returns the supplied value unchanged\n * and does not invoke a constructor or modify its prototype.\n *\n * @example\n * ```ts\n * class Database extends Service<Database>()('Database') {\n * query(sql: string): string {\n * return sql\n * }\n * }\n *\n * const database = Database.of({\n * query: (sql) => `Result: ${sql}`\n * })\n *\n * database.query('SELECT 1')\n * // 'Result: SELECT 1'\n * // database is the original object, not an instance of Database\n * ```\n */\n static of(this: void, implementation: ServiceContract<Self & ServiceIdentity<Tag>>): Self {\n // SAFETY: ServiceContract removes only the phantom marker; this boundary restores Self.\n return implementation as Self\n }\n\n /** Resolve this Service from the resolver active in the current runtime. */\n // oxlint-disable-next-line require-yield\n static async *[Symbol.asyncIterator](\n this: ServiceToken<Tag, Self & ServiceIdentity<Tag>>\n ): AsyncGenerator<ServiceRequirement<Self>, Self, unknown> {\n return await ServiceRuntime.resolve(this)\n }\n }\n\n return BaseService\n }\n}\n\n/** Type-level aliases for Service tokens and their instance contracts. */\nexport declare namespace Service {\n /** The widened Service instance constraint. */\n export type Any = AnyService\n\n /** A class-backed Service token with a stable tag and instance contract. */\n export type Token<Tag extends string = string, Instance extends AnyService = any> = ServiceToken<\n Tag,\n Instance\n >\n\n /** A constructible Service class with a stable tag and instance contract. */\n export type Class<\n Tag extends string = string,\n Instance extends AnyService = AnyService\n > = ServiceClass<Tag, Instance>\n\n /** Extract the instance represented by a Service token. */\n export type Instance<T extends AnyServiceToken> = ServiceInstance<T>\n\n /** Extract the stable tag represented by a Service instance. */\n export type Tag<S extends AnyService> = ServiceTag<S>\n\n /** A branded Service instance identity with a stable tag. */\n export type Identity<Tag extends string = string> = ServiceIdentity<Tag>\n\n /** Remove the internal identity marker from a Service implementation contract. */\n export type Contract<S extends AnyService> = ServiceContract<S>\n\n /** Extract the Service token represented by a branded Service instance. */\n export type TokenOf<S extends AnyService> = ServiceTokenOf<S>\n\n /** Declaration bridge for the recursive structural `Service.of` signature. */\n export type FactoryOf<Self, Tag extends string> = (\n this: void,\n implementation: ServiceContract<Self & ServiceIdentity<Tag>>\n ) => Self\n\n /** Extract Effect Service requirements from a Service instance. */\n export type Requirements<S extends AnyService> = ServiceRequirements<S>\n}\n","/** Thrown when Scope context is accessed outside an active Scope execution. */\nexport class ScopeRuntimeNotConfiguredError extends Error {\n constructor() {\n super('No Scope is available in the current execution context')\n\n this.name = 'ScopeRuntimeNotConfiguredError'\n }\n}\n\n/** Thrown when a resource or finalizer is added after Scope closure begins. */\nexport class ScopeClosedError extends Error {\n constructor() {\n super('Cannot add resources or finalizers to a closed Scope')\n\n this.name = 'ScopeClosedError'\n }\n}\n\n/** Aggregates finalizer failures encountered while closing a Scope. */\nexport class ScopeCloseError extends Error {\n constructor(readonly causes: readonly unknown[]) {\n super(\n `Failed to close Scope (${causes.length} finalizer${causes.length === 1 ? '' : 's'} failed)`\n )\n\n this.name = 'ScopeCloseError'\n }\n}\n\n/** Thrown when a value has neither Symbol.dispose nor Symbol.asyncDispose. */\nexport class ResourceNotDisposableError extends Error {\n constructor() {\n super('Resource does not implement Symbol.dispose or Symbol.asyncDispose')\n\n this.name = 'ResourceNotDisposableError'\n }\n}\n","import type { ScopeFinalizer } from './types'\n\nconst SCOPE_SUCCESS = { status: 'success' } as const\n\ntype Disposer = (...args: never[]) => void | PromiseLike<void>\n\ntype DisposableCandidate = {\n [Symbol.dispose]?: Disposer\n\n [Symbol.asyncDispose]?: Disposer\n}\n\n/** Return a Scope finalizer for a value's async or sync disposal protocol. */\nexport const getDisposeFinalizer = <Resource>(resource: Resource): ScopeFinalizer | undefined => {\n // SAFETY: Object() provides a property-bearing view for protocol lookup; each method is checked for callability before invocation.\n const candidate = Object(resource) as DisposableCandidate\n const asyncDispose = candidate[Symbol.asyncDispose]\n\n if (asyncDispose instanceof Function) {\n return () => asyncDispose.call(resource)\n }\n\n const dispose = candidate[Symbol.dispose]\n\n if (dispose instanceof Function) {\n return () => dispose.call(resource)\n }\n\n return undefined\n}\n\n/** Dispose a value immediately when it implements a disposal protocol. */\nexport const disposeResource = <Resource>(resource: Resource): void | PromiseLike<void> => {\n const finalizer = getDisposeFinalizer(resource)\n\n return finalizer?.(SCOPE_SUCCESS)\n}\n","import { LayerGeneratorYieldError } from './errors'\n\nimport type { ServiceRequirement } from '../effect/types'\nimport type { ServiceClass } from '../service'\n\nimport type { LayerGenerator } from './types'\n\nexport const runLayerGenerator = async <\n S extends ServiceClass<any, any>,\n Yield extends ServiceRequirement<unknown>\n>(\n service: S,\n factory: LayerGenerator<S, Yield>\n): Promise<InstanceType<S>> => {\n const iterator = factory()\n\n const state = await iterator.next()\n\n if (!state.done) {\n try {\n // SAFETY: The iterator is closed only to discard an invalid yield; its return value is ignored.\n await iterator.return(undefined as never)\n } finally {\n // oxlint-disable-next-line no-unsafe-finally\n throw new LayerGeneratorYieldError(service)\n }\n }\n\n // SAFETY: The public generator boundary accepts only the requested Service contract.\n return state.value as InstanceType<S>\n}\n","import type { ServiceRequirement } from '../effect/types'\nimport { ServiceRuntime } from '../service'\nimport type { AnyService, ServiceClass, ServiceContract, ServiceRequirements } from '../service'\nimport { ResourceNotDisposableError } from '../scope'\nimport { getDisposeFinalizer } from '../scope/disposable'\n\nimport type { DisposableResource, ScopeFinalizer, ScopeOutcome } from '../scope'\nimport type { Covariant, Invariant } from '../internal/variance'\nimport type { MaybePromise } from '../utils/types'\n\nimport { DuplicateServiceError, ServiceTagCollisionError } from './errors'\nimport { runLayerGenerator } from './internal'\n\nimport type {\n LayerInput,\n CompleteInput,\n LayerResult,\n MergeResult,\n OverrideLayerResult,\n ValidateLayerInput,\n ValidateLayerTuple,\n ValidateOverrides,\n ProvidedEnvironment,\n RequiredEnvironment\n} from './inference'\nimport type { ProviderEntry } from './metadata'\nimport type { LayerGenerator, LayerGeneratorRequirements, LayerRegistration } from './types'\n\ndeclare const LayerTypeId: unique symbol\n\ninterface LayerVariance<in out Provided, out Required> {\n readonly _Provided: Invariant<Provided>\n readonly _Required: Covariant<Required>\n}\n\ntype CapturedLayerAcquisition = {\n readonly instance: unknown\n readonly release: ScopeFinalizer\n}\n\ninterface LayerProvider extends LayerRegistration {\n /** Provider storage deliberately erases the concrete instance type. */\n // oxlint-disable-next-line anti-slop/no-unknown-parameters\n readonly release?: (instance: unknown, outcome: ScopeOutcome) => MaybePromise<void>\n\n /** Capture acquisition-local cleanup without retaining the acquired instance. */\n readonly acquireWithRelease?: () => MaybePromise<CapturedLayerAcquisition>\n}\n\n/** A Service class whose constructor can be called without arguments. */\ntype DefaultConstructibleServiceClass<\n Tag extends string = string,\n Instance extends AnyService = AnyService\n> = ServiceClass<Tag, Instance> & (new () => Instance)\n\ntype IsUnion<Type, Candidate = Type> = Type extends unknown\n ? [Candidate] extends [Type]\n ? false\n : true\n : never\n\ntype InvalidUnionAliasToken = {\n readonly __betterEffectUnionLayerAliasToken: unique symbol\n}\n\ntype RejectUnionAliasToken<Token> = IsUnion<Token> extends true ? InvalidUnionAliasToken : unknown\n\ntype LayerAliasOptions<From extends ServiceClass<any, any>, To extends ServiceClass<any, any>> = {\n readonly from: From\n readonly to: To\n} & RejectUnionAliasToken<From> &\n RejectUnionAliasToken<To> &\n ([ServiceContract<InstanceType<From>>] extends [ServiceContract<InstanceType<To>>]\n ? unknown\n : {\n readonly __betterEffectIncompatibleLayerAlias: unique symbol\n })\n\n/**\n * Declarative collection of Service providers.\n *\n * A Layer describes how to acquire implementations; it does not execute\n * providers until a `Runtime` is created. Use `merge` to compose distinct\n * providers and `override` when replacing an existing provider intentionally.\n *\n * @example\n * ```ts\n * const AppLive = Layer.merge(\n * Layer.succeed(Database, database),\n * Layer.make(UserRepository)\n * )\n *\n * const runtime = await Runtime.make(AppLive, backend)\n * ```\n */\nexport class Layer<\n in out Provided extends AnyService = AnyService,\n out Required extends AnyService = AnyService\n> {\n declare readonly [LayerTypeId]: LayerVariance<Provided, Required>\n\n /** The provider registrations retained by this Layer. */\n readonly providers: readonly LayerProvider[]\n\n private constructor(providers: readonly LayerProvider[]) {\n this.providers = Object.freeze([...providers])\n }\n\n /** A stable provider-free Layer for composition roots with no Services. */\n static readonly empty: Layer<never, never> = Object.freeze(new Layer<never, never>([]))\n\n /** Create a Layer that lazily acquires a Service instance. */\n static make<S extends DefaultConstructibleServiceClass<any, any>>(\n service: S\n ): LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>>\n\n static make<S extends ServiceClass<any, any>>(\n service: S,\n acquire: () => MaybePromise<ServiceContract<InstanceType<S>>>\n ): LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>>\n\n static make<S extends ServiceClass<any, any>>(\n service: S,\n acquire?: () => MaybePromise<ServiceContract<InstanceType<S>>>\n ): LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>> {\n const defaultAcquire = (): InstanceType<S> => {\n // SAFETY: The no-argument overload constrains `service` to a default constructible class.\n const Constructor = service as new () => InstanceType<S>\n\n return new Constructor()\n }\n\n const normalizedAcquire = normalizeAcquire<S>(acquire ?? defaultAcquire)\n\n // SAFETY: Runtime storage erases only the concrete provider metadata; the public constructor result restores its typed provenance.\n return new Layer([\n {\n service,\n acquire: normalizedAcquire\n }\n ]) as LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>>\n }\n\n /** Create a Layer from an already-constructed Service instance. */\n static succeed<S extends ServiceClass<any, any>>(\n service: S,\n instance: ServiceContract<InstanceType<S>>\n ): LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>> {\n const normalizedAcquire = normalizeAcquire<S>(() => instance)\n\n // SAFETY: The structural instance has been checked against the requested Service contract.\n return new Layer([\n {\n service,\n acquire: normalizedAcquire\n }\n ]) as LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>>\n }\n\n /** Alias a source Service under a compatible target contract. */\n static alias<From extends ServiceClass<any, any>, To extends ServiceClass<any, any>>(\n options: LayerAliasOptions<From, To>\n ): LayerResult<\n ProviderEntry<InstanceType<To>, InstanceType<From> | ServiceRequirements<InstanceType<To>>>\n > {\n const { from, to } = options\n\n // Keep alias acquisition in the normal Layer generator path so Runtime supplies the active resolver and resolution diagnostics.\n // oxlint-disable-next-line require-yield\n const alias = Layer.gen(to, async function* () {\n const source = await ServiceRuntime.resolve(from)\n\n // SAFETY: LayerAliasOptions checks that the source implementation satisfies the target contract.\n return source as ServiceContract<InstanceType<To>>\n })\n\n // SAFETY: The alias factory resolves the declared source token before returning the target contract.\n return alias as LayerResult<\n ProviderEntry<InstanceType<To>, InstanceType<From> | ServiceRequirements<InstanceType<To>>>\n >\n }\n\n /** Define a provider with Runtime-root cleanup. */\n static scoped<S extends ServiceClass<any, any>>(\n service: S,\n acquire: () => MaybePromise<ServiceContract<InstanceType<S>>>,\n release: (instance: InstanceType<S>, outcome: ScopeOutcome) => MaybePromise<void>\n ): LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>> {\n // SAFETY: The public callbacks constrain acquisition and release to the requested Service.\n return new Layer([\n {\n service,\n acquire: normalizeAcquire<S>(acquire),\n release: (instance, outcome) => {\n // SAFETY: The backend invokes release with the instance acquired for this token.\n return release(instance as InstanceType<S>, outcome)\n }\n }\n ]) as LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>>\n }\n\n /** Define a provider with Runtime-root cleanup through its disposal protocol. */\n static scopedDisposable<S extends ServiceClass<any, any>>(\n service: S,\n acquire: () => MaybePromise<ServiceContract<InstanceType<S>> & DisposableResource>\n ): LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>> {\n const acquireWithRelease = async (): Promise<CapturedLayerAcquisition> => {\n const instance = await acquire()\n const finalizer = getDisposeFinalizer(instance)\n\n if (!finalizer) {\n throw new ResourceNotDisposableError()\n }\n\n return { instance, release: finalizer }\n }\n\n // SAFETY: The public callback constrains the acquired value and this runtime-only carrier is erased at the Layer boundary.\n return new Layer([\n {\n service,\n acquire: async () => (await acquireWithRelease()).instance,\n acquireWithRelease\n }\n ]) as LayerResult<ProviderEntry<InstanceType<S>, ServiceRequirements<InstanceType<S>>>>\n }\n\n /** Define a provider whose acquisition can yield contextual Services. */\n static scopedGen<S extends ServiceClass<any, any>, Yield extends ServiceRequirement<unknown>>(\n service: S,\n factory: LayerGenerator<S, Yield>,\n release: (instance: InstanceType<S>, outcome: ScopeOutcome) => MaybePromise<void>\n ): LayerResult<ProviderEntry<InstanceType<S>, LayerGeneratorRequirements<S, Yield>>> {\n // SAFETY: The generator and release callback are checked against the requested Service.\n return new Layer([\n {\n service,\n acquire: () => runLayerGenerator(service, factory),\n release: (instance, outcome) => {\n // SAFETY: The backend invokes release with the instance acquired for this token.\n return release(instance as InstanceType<S>, outcome)\n }\n }\n ]) as LayerResult<ProviderEntry<InstanceType<S>, LayerGeneratorRequirements<S, Yield>>>\n }\n\n /** Define a provider whose acquisition can yield contextual Services. */\n static gen<S extends ServiceClass<any, any>, Yield extends ServiceRequirement<unknown>>(\n service: S,\n factory: LayerGenerator<S, Yield>\n ): LayerResult<ProviderEntry<InstanceType<S>, LayerGeneratorRequirements<S, Yield>>> {\n // SAFETY: The generator result is normalized to the requested Service at the runtime boundary.\n return new Layer([\n {\n service,\n acquire: () => runLayerGenerator(service, factory)\n }\n ]) as LayerResult<ProviderEntry<InstanceType<S>, LayerGeneratorRequirements<S, Yield>>>\n }\n\n /** Compose Layers without replacing providers. */\n static merge<const Layers extends readonly LayerInput[]>(\n ...layers: Layers & ValidateLayerTuple<Layers>\n ): MergeResult<Layers> {\n const providers = new Map<string, LayerProvider>()\n\n for (const layer of layers) {\n for (const provider of layer.providers) {\n const service = provider.service\n const existing = providers.get(service.serviceTag)\n\n if (existing) {\n if (existing.service !== service) {\n throw new ServiceTagCollisionError(existing.service, service)\n }\n\n throw new DuplicateServiceError(service)\n }\n\n providers.set(service.serviceTag, provider)\n }\n }\n\n // SAFETY: The heterogeneous provider list is erased only at this internal storage boundary.\n return new Layer([...providers.values()]) as MergeResult<Layers>\n }\n\n /** Mark a Layer composition root as complete without changing its runtime value. */\n static complete<L extends LayerInput>(layer: L & CompleteInput<L>): L {\n return layer\n }\n\n /** Replace providers in a base Layer, using tag identity and compatible contracts. */\n static override<Base extends LayerInput>(\n base: Base & ValidateLayerInput<Base>\n ): OverrideLayerResult<Base, readonly []>\n\n static override<\n Base extends LayerInput,\n const Overrides extends readonly [LayerInput, ...LayerInput[]]\n >(\n base: Base & ValidateLayerInput<Base>,\n ...overrides: Overrides & ValidateOverrides<Base, Overrides>\n ): OverrideLayerResult<Base, Overrides>\n\n static override<Base extends LayerInput, const Overrides extends readonly LayerInput[]>(\n base: Base & ValidateLayerInput<Base>,\n ...overrides: Overrides & ValidateOverrides<Base, Overrides>\n ): OverrideLayerResult<Base, Overrides>\n\n static override(base: LayerInput, ...overrides: readonly LayerInput[]): Layer<any, any> {\n const providers = new Map<string, LayerProvider>()\n\n for (const provider of base.providers) {\n providers.set(provider.service.serviceTag, provider)\n }\n\n for (const layer of overrides) {\n for (const provider of layer.providers) {\n providers.set(provider.service.serviceTag, provider)\n }\n }\n\n // SAFETY: Runtime provider replacement preserves the computed override metadata.\n return new Layer([...providers.values()]) as Layer<any, any>\n }\n}\n\n// TypeScript's `readonly` does not affect the runtime property descriptor. Keep\n// the class field's enumerable behavior while locking the singleton binding.\nObject.defineProperty(Layer, 'empty', {\n value: Layer.empty,\n writable: false,\n enumerable: true,\n configurable: false\n})\n\nconst normalizeAcquire =\n <S extends ServiceClass<any, any>>(\n acquire: () => MaybePromise<ServiceContract<InstanceType<S>>>\n ): (() => MaybePromise<InstanceType<S>>) =>\n () => {\n // SAFETY: ServiceContract removes only the declaration-only identity; runtime values are unchanged.\n return acquire() as MaybePromise<InstanceType<S>>\n }\n\n/** Type-level aliases for inspecting Layer environments and completeness. */\nexport declare namespace Layer {\n /** The widened Layer shape accepted by generic Layer infrastructure. */\n export type Any = LayerInput\n\n /** Extract the branded Service instances provided by a Layer. */\n export type Provided<L extends LayerInput> = ProvidedEnvironment<L>\n\n /** Extract the external Service requirements of a Layer. */\n export type Required<L extends LayerInput> = RequiredEnvironment<L>\n\n /** Extract the Services still missing from a Layer composition. */\n export type Missing<L extends LayerInput> = RequiredEnvironment<L>\n\n /** Validate a Layer's requirements and input shape. */\n export type Complete<L extends LayerInput> = CompleteInput<L>\n}\n","import { currentRuntimeContext } from './context'\n\nconst neverAbortedSignal = new AbortController().signal\n\ntype SignalListener = readonly [AbortSignal, () => void]\n\nexport type AbortSignalLink = {\n readonly signal: AbortSignal\n readonly dispose: () => void\n}\n\n/** Link caller, Runtime and shutdown signals without owning the caller's controller. */\nexport const linkAbortSignals = (\n ...signals: readonly (AbortSignal | undefined)[]\n): AbortSignalLink => {\n const active = signals.filter((signal): signal is AbortSignal => signal !== undefined)\n\n if (active.length === 0) {\n return { signal: neverAbortedSignal, dispose: () => {} }\n }\n\n if (active.length === 1) {\n return { signal: active[0]!, dispose: () => {} }\n }\n\n const controller = new AbortController()\n const listeners: SignalListener[] = []\n let disposed = false\n\n const dispose = (): void => {\n if (disposed) {\n return\n }\n\n disposed = true\n\n for (const [source, listener] of listeners) {\n source.removeEventListener('abort', listener)\n }\n\n listeners.length = 0\n }\n\n const abortFrom = (source: AbortSignal): void => {\n if (controller.signal.aborted) {\n return\n }\n\n controller.abort(source.reason)\n dispose()\n }\n\n for (const source of active) {\n if (source.aborted) {\n abortFrom(source)\n break\n }\n\n const listener = (): void => abortFrom(source)\n listeners.push([source, listener])\n source.addEventListener('abort', listener, { once: true })\n }\n\n return { signal: controller.signal, dispose }\n}\n\n/** Return the current cooperative-cancellation signal. */\nexport const currentAbortSignal = (): AbortSignal =>\n currentRuntimeContext().signal ?? neverAbortedSignal\n\n/** Yieldable access to the signal of the current Runtime execution. */\nexport const CurrentAbortSignal = {\n // oxlint-disable-next-line require-yield\n *[Symbol.iterator](): Generator<never, AbortSignal, unknown> {\n return currentAbortSignal()\n }\n} as const\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"standard-services-BFBq-4lo.mjs","names":[],"sources":["../src/standard-services/config.ts","../src/standard-services/index.ts"],"sourcesContent":["import {\n Result,\n TaggedError,\n type Err,\n type Result as ResultType,\n type StandardSchemaV1,\n type UnhandledException\n} from 'better-result'\n\nimport type { ServiceRequirement } from '../effect/types'\nimport { Layer } from '../layer'\nimport { Service } from '../service'\n\n/** Raw string values supplied to a configuration schema. */\nexport type ConfigSource = Readonly<Record<string, string | undefined>>\n\n/** Optional sources used by environment-backed configuration values. */\nexport type ConfigSourceOptions = {\n readonly dotEnvPath?: string\n readonly envSource?: ConfigSource\n}\n\n/** Options for the one-call schema-bound configuration API. */\nexport type ConfigFromEnvOptions<Schema extends StandardSchemaV1> = ConfigSourceOptions & {\n readonly schema: Schema\n}\n\n/** The decoded value produced by a Standard Schema. */\nexport type ConfigOutput<Schema extends StandardSchemaV1> = StandardSchemaV1.InferOutput<Schema>\n\n/** The raw input type described by a Standard Schema. */\nexport type ConfigInput<Schema extends StandardSchemaV1> = StandardSchemaV1.InferInput<Schema>\n\n/** A safe validation issue exposed by a configuration failure. */\nexport type ConfigIssue = StandardSchemaV1.Issue\n\n/** A schema validation failure. Raw source values are intentionally omitted. */\nexport class ConfigValidationError extends TaggedError('ConfigValidationError')<{\n readonly issues: ReadonlyArray<ConfigIssue>\n readonly message: string\n}> {}\n\n/** A dotenv or host-source loading failure. Raw source values are intentionally omitted. */\nexport class ConfigSourceError extends TaggedError('ConfigSourceError')<{\n readonly cause: unknown\n readonly message: string\n readonly path?: string\n}> {}\n\n/** Errors that may be returned while loading or validating configuration. */\nexport type ConfigError = ConfigValidationError | ConfigSourceError | UnhandledException\n\ntype ConfigYield<Requirements extends Service.Any, Error> =\n | Err<never, Error>\n | ServiceRequirement<Requirements>\n\n/** A reusable, async-yieldable Standard Schema configuration descriptor. */\nexport type ConfigValue<\n Schema extends StandardSchemaV1,\n Requirements extends Service.Any = never,\n Error = ConfigError\n> = {\n [Symbol.asyncIterator](): AsyncGenerator<\n ConfigYield<Requirements, Error>,\n ConfigOutput<Schema>,\n unknown\n >\n}\n\ntype RuntimeConfigYield = Err<never, ConfigError> | ServiceRequirement<Service.Any>\n\ntype ConfigValueSpec<Schema extends StandardSchemaV1> = {\n readonly schema: Schema\n readonly source: 'bound' | 'provider'\n readonly sourceOptions?: ConfigSourceOptions\n}\n\ntype MutableConfigSourceOptions = {\n dotEnvPath?: string\n envSource?: ConfigSource\n}\n\ntype RuntimeGlobal = typeof globalThis & {\n readonly process?: { readonly env?: ConfigSource }\n readonly Bun?: {\n readonly env?: ConfigSource\n readonly file?: (path: string) => { text(): Promise<string> }\n }\n}\n\n// SAFETY: Hosts may expose process/Bun globals at runtime without declaring them on globalThis.\nconst runtimeGlobal = globalThis as RuntimeGlobal\n\nconst hostEnvironment = (): ConfigSource => {\n const processEnvironment = runtimeGlobal.process?.env\n\n if (processEnvironment !== undefined) {\n return processEnvironment\n }\n\n return runtimeGlobal.Bun?.env ?? {}\n}\n\nconst readText = async (path: string): Promise<string> => {\n const file = runtimeGlobal.Bun?.file\n\n if (file !== undefined) {\n return await file(path).text()\n }\n\n const { readFile } = await import('node:fs/promises')\n\n return await readFile(path, 'utf8')\n}\n\nconst parseDotEnv = (text: string) => {\n const values = new Map<string, string>()\n\n for (const [lineIndex, rawLine] of text\n .replace(/^\\uFEFF/, '')\n .split(/\\r?\\n/u)\n .entries()) {\n let line = rawLine.trim()\n\n if (line === '' || line.startsWith('#')) {\n continue\n }\n\n if (/^export\\s/u.test(line)) {\n line = line.replace(/^export\\s+/u, '')\n }\n\n const separator = line.indexOf('=')\n\n if (separator <= 0) {\n throw new Error(`Invalid dotenv entry at line ${lineIndex + 1}`)\n }\n\n const key = line.slice(0, separator).trim()\n\n if (!/^[A-Za-z_][A-Za-z0-9_]*$/u.test(key)) {\n throw new Error(`Invalid dotenv key at line ${lineIndex + 1}`)\n }\n\n let value = line.slice(separator + 1).trim()\n const quote = value[0]\n\n if (quote === '\"' || quote === \"'\") {\n const closingQuote = value.indexOf(quote, 1)\n const trailing = closingQuote < 0 ? '' : value.slice(closingQuote + 1).trim()\n\n if (closingQuote < 0 || (trailing !== '' && !trailing.startsWith('#'))) {\n throw new Error(`Unterminated dotenv value at line ${lineIndex + 1}`)\n }\n\n value = value.slice(1, closingQuote)\n } else {\n const comment = value.search(/\\s+#/u)\n\n if (comment >= 0) {\n value = value.slice(0, comment).trimEnd()\n }\n }\n\n values.set(key, value)\n }\n\n return Object.fromEntries(values)\n}\n\nconst loadSource = async (options: ConfigSourceOptions = {}): Promise<ConfigSource> => {\n const dotenv =\n options.dotEnvPath === undefined ? {} : parseDotEnv(await readText(options.dotEnvPath))\n const explicit = options.envSource ?? hostEnvironment()\n\n return {\n ...dotenv,\n ...explicit\n }\n}\n\nconst sourceError = (path: string | undefined, cause: unknown): ConfigSourceError => {\n const message =\n path === undefined\n ? 'Failed to load configuration source'\n : `Failed to load configuration source at ${path}`\n\n if (path === undefined) {\n return new ConfigSourceError({ cause, message })\n }\n\n return new ConfigSourceError({ cause, message, path })\n}\n\nconst validate = async <Schema extends StandardSchemaV1>(\n schema: Schema,\n source: ConfigSource\n): Promise<ResultType<ConfigOutput<Schema>, ConfigValidationError | UnhandledException>> => {\n const checked = await Result.tryPromise(() =>\n Promise.resolve(schema['~standard'].validate(source))\n )\n\n if (checked.status === 'error') {\n return checked\n }\n\n if (checked.value.issues !== undefined) {\n return Result.err(\n new ConfigValidationError({\n issues: Object.freeze([...checked.value.issues]),\n message: 'Configuration validation failed'\n })\n )\n }\n\n // SAFETY: A successful Standard Schema result carries its declared output type.\n return Result.ok(checked.value.value as ConfigOutput<Schema>)\n}\n\nconst evaluate = async <Schema extends StandardSchemaV1>(\n spec: ConfigValueSpec<Schema>,\n provider?: Config\n): Promise<ResultType<ConfigOutput<Schema>, ConfigError>> => {\n const loaded = await Result.tryPromise({\n try: async () => {\n if (spec.source === 'provider') {\n const base = provider?.source\n\n if (base === undefined) {\n throw new Error('Config provider did not expose a source')\n }\n\n if (spec.sourceOptions === undefined) {\n return base\n }\n\n return {\n ...base,\n ...(await loadSource(spec.sourceOptions))\n }\n }\n\n return await loadSource(spec.sourceOptions)\n },\n catch: (cause) => sourceError(spec.sourceOptions?.dotEnvPath, cause)\n })\n\n if (loaded.status === 'error') {\n return loaded\n }\n\n return await validate(spec.schema, loaded.value)\n}\n\nconst makeConfigValue = <Schema extends StandardSchemaV1, Requirements extends Service.Any>(\n spec: ConfigValueSpec<Schema>\n): ConfigValue<Schema, Requirements> => {\n const value = {\n ...spec,\n async *[Symbol.asyncIterator](): AsyncGenerator<\n RuntimeConfigYield,\n ConfigOutput<Schema>,\n unknown\n > {\n let provider: Config | undefined\n\n if (spec.source === 'provider') {\n provider = yield* Config\n }\n\n return yield* Result.await(evaluate(spec, provider))\n }\n }\n\n // SAFETY: The runtime iterator only yields Result errors and Service values; the public cast restores the phantom requirement.\n return value as ConfigValue<Schema, Requirements>\n}\n\n/** Host-backed raw configuration source and provider token. */\nexport class Config extends Service<Config>()('Config') {\n constructor(readonly source: ConfigSource) {\n super()\n }\n\n /** Read one raw value from the configured source. */\n get(key: string): string | undefined {\n return this.source[key]\n }\n\n /** Create a provider from an already-loaded source. */\n static layer(source: ConfigSource) {\n return Layer.succeed(Config, new Config(source))\n }\n\n /** Create a provider whose source is loaded from dotenv and the host environment. */\n static layerFromEnv(options: ConfigSourceOptions = {}) {\n return Layer.make(Config, async () => {\n try {\n return new Config(await loadSource(options))\n } catch (cause) {\n throw sourceError(options.dotEnvPath, cause)\n }\n })\n }\n\n /** Describe a configuration read from the contextual Config provider. */\n static schema<Schema extends StandardSchemaV1>(schema: Schema): ConfigValue<Schema, Config> {\n return makeConfigValue({ schema, source: 'provider' })\n }\n\n /** Describe a reusable configuration loaded from dotenv and the host environment. */\n static fromEnv<Schema extends StandardSchemaV1>(\n options: ConfigFromEnvOptions<Schema>\n ): ConfigValue<Schema> {\n const sourceOptions: MutableConfigSourceOptions = {}\n\n if (options.dotEnvPath !== undefined) {\n sourceOptions.dotEnvPath = options.dotEnvPath\n }\n\n if (options.envSource !== undefined) {\n sourceOptions.envSource = options.envSource\n }\n\n return makeConfigValue({\n schema: options.schema,\n source: 'bound',\n sourceOptions\n })\n }\n\n /** Add an environment source to a provider-backed descriptor for functional `pipe` composition. */\n static withEnv(options: ConfigSourceOptions) {\n return <Schema extends StandardSchemaV1, Requirements extends Service.Any, Error = ConfigError>(\n value: ConfigValue<Schema, Requirements, Error>\n ): ConfigValue<Schema, Requirements, Error> => {\n // SAFETY: Values produced by this module retain their schema/source descriptor fields; custom iterables pass through unchanged.\n const internal = value as ConfigValue<Schema, Requirements> & ConfigValueSpec<Schema>\n\n if (!('schema' in internal)) {\n return value\n }\n\n // SAFETY: The internal descriptor preserves the original schema and requirement phantom.\n return makeConfigValue({\n schema: internal.schema,\n source: internal.source,\n sourceOptions: options\n }) as ConfigValue<Schema, Requirements, Error>\n }\n }\n}\n\n/** The default lazy host-environment Config provider. */\nexport const ConfigLive = Config.layerFromEnv()\n\nexport type { StandardSchemaV1 }\n","import { CurrentAbortSignal } from '../runtime'\nimport { Layer } from '../layer'\nimport { Service } from '../service'\n\nexport { CurrentAbortSignal }\n\nexport { Config, ConfigLive, ConfigSourceError, ConfigValidationError } from './config'\n\nexport type {\n ConfigError,\n ConfigFromEnvOptions,\n ConfigInput,\n ConfigIssue,\n ConfigOutput,\n ConfigSource,\n ConfigSourceOptions,\n ConfigValue,\n StandardSchemaV1\n} from './config'\n\nconst assertDelay = (milliseconds: number): void => {\n if (!Number.isFinite(milliseconds) || milliseconds < 0) {\n throw new RangeError('Delay must be a finite non-negative number')\n }\n}\n\n/** Host-backed time and waiting service. */\nexport class Clock extends Service<Clock>()('Clock') {\n now(): Date {\n return new Date()\n }\n\n sleep(milliseconds: number): Promise<void> {\n assertDelay(milliseconds)\n return new Promise((resolve) => setTimeout(resolve, milliseconds))\n }\n}\n\n/** The default host Clock provider. */\nexport const ClockLive = Layer.make(Clock)\n\ntype ClockWaiter = {\n readonly at: number\n readonly resolve: () => void\n}\n\n/** Deterministic Clock implementation for tests. */\nexport class ClockTest implements Service.Contract<Clock> {\n private currentTime: number\n\n private readonly waiters: ClockWaiter[] = []\n\n constructor(initial: Date | number = 0) {\n this.currentTime = initial instanceof Date ? initial.getTime() : initial\n\n if (!Number.isFinite(this.currentTime)) {\n throw new RangeError('ClockTest time must be finite')\n }\n }\n\n now(): Date {\n return new Date(this.currentTime)\n }\n\n setTime(value: Date | number): void {\n const next = value instanceof Date ? value.getTime() : value\n\n if (!Number.isFinite(next)) {\n throw new RangeError('ClockTest time must be finite')\n }\n\n this.currentTime = next\n this.flushWaiters()\n }\n\n advance(milliseconds: number): void {\n assertDelay(milliseconds)\n this.currentTime += milliseconds\n this.flushWaiters()\n }\n\n sleep(milliseconds: number): Promise<void> {\n assertDelay(milliseconds)\n\n return new Promise((resolve) => {\n this.waiters.push({ at: this.currentTime + milliseconds, resolve })\n this.flushWaiters()\n })\n }\n\n static layer(initial: Date | number = 0) {\n return Layer.succeed(Clock, new ClockTest(initial))\n }\n\n private flushWaiters(): void {\n for (let index = this.waiters.length - 1; index >= 0; index--) {\n const waiter = this.waiters[index]!\n\n if (waiter.at <= this.currentTime) {\n this.waiters.splice(index, 1)\n waiter.resolve()\n }\n }\n }\n}\n\nexport const ClockTestLayer = (initial: Date | number = 0) => ClockTest.layer(initial)\n\n/** Host-backed pseudo-random number service. */\nexport class Random extends Service<Random>()('Random') {\n next(): number {\n return Math.random()\n }\n\n nextInt(maxExclusive: number): number {\n if (!Number.isInteger(maxExclusive) || maxExclusive <= 0) {\n throw new RangeError('Random.nextInt maxExclusive must be a positive integer')\n }\n\n return Math.floor(this.next() * maxExclusive)\n }\n}\n\n/** The default host Random provider. */\nexport const RandomLive = Layer.make(Random)\n\n/** Reproducible pseudo-random implementation with isolated mutable state. */\nexport class RandomSeeded implements Service.Contract<Random> {\n private state: number\n\n constructor(seed: number) {\n if (!Number.isFinite(seed)) {\n throw new RangeError('RandomSeeded seed must be finite')\n }\n\n this.state = seed >>> 0\n }\n\n next(): number {\n this.state = (1664525 * this.state + 1013904223) >>> 0\n return this.state / 0x1_0000_0000\n }\n\n nextInt(maxExclusive: number): number {\n if (!Number.isInteger(maxExclusive) || maxExclusive <= 0) {\n throw new RangeError('RandomSeeded.nextInt maxExclusive must be a positive integer')\n }\n\n return Math.floor(this.next() * maxExclusive)\n }\n\n static layer(seed: number) {\n return Layer.succeed(Random, new RandomSeeded(seed))\n }\n}\n\nexport const RandomSeededLayer = (seed: number) => RandomSeeded.layer(seed)\n\nexport type LoggerLevel = 'debug' | 'info' | 'warn' | 'error'\n\nexport type LoggerEvent = {\n level: LoggerLevel\n message: string\n data?: LoggerData\n}\n\nexport type LoggerData =\n | string\n | number\n | boolean\n | bigint\n | null\n | readonly LoggerData[]\n | { readonly [key: string]: LoggerData }\ntype LoggerInput = LoggerEvent | LoggerLevel\n\nconst isLoggerLevel = (value: LoggerInput): value is LoggerLevel =>\n value === 'debug' || value === 'info' || value === 'warn' || value === 'error'\n\nconst toLoggerEvent = (input: LoggerInput, message?: string, data?: LoggerData): LoggerEvent => {\n if (!isLoggerLevel(input)) {\n return input\n }\n\n const event: LoggerEvent = { level: input, message: message ?? '' }\n\n if (data !== undefined) {\n event.data = data\n }\n\n return event\n}\n\n/** Structured host logger bridge. */\nexport class Logger extends Service<Logger>()('Logger') {\n log(event: LoggerEvent): void\n log(level: LoggerLevel, message: string, data?: LoggerData): void\n log(first: LoggerInput, message?: string, data?: LoggerData): void {\n const event = toLoggerEvent(first, message, data)\n\n const write = console[event.level]\n\n if (event.data === undefined) {\n write.call(console, event.message)\n } else {\n write.call(console, event.message, event.data)\n }\n }\n\n debug(message: string, data?: LoggerData): void {\n this.log('debug', message, data)\n }\n\n info(message: string, data?: LoggerData): void {\n this.log('info', message, data)\n }\n\n warn(message: string, data?: LoggerData): void {\n this.log('warn', message, data)\n }\n\n error(message: string, data?: LoggerData): void {\n this.log('error', message, data)\n }\n}\n\n/** The default host Logger provider. */\nexport const LoggerLive = Layer.make(Logger)\n\n/** Ordered in-memory Logger implementation for tests. */\nexport class LoggerTest implements Service.Contract<Logger> {\n readonly events: LoggerEvent[] = []\n\n log(event: LoggerEvent): void\n log(level: LoggerLevel, message: string, data?: LoggerData): void\n log(first: LoggerInput, message?: string, data?: LoggerData): void {\n const event = toLoggerEvent(first, message, data)\n\n this.events.push(event)\n }\n\n debug(message: string, data?: LoggerData): void {\n this.log('debug', message, data)\n }\n\n info(message: string, data?: LoggerData): void {\n this.log('info', message, data)\n }\n\n warn(message: string, data?: LoggerData): void {\n this.log('warn', message, data)\n }\n\n error(message: string, data?: LoggerData): void {\n this.log('error', message, data)\n }\n\n clear(): void {\n this.events.length = 0\n }\n\n static make() {\n const logger = new LoggerTest()\n return { logger, layer: Layer.succeed(Logger, logger) }\n }\n\n static layer(logger: LoggerTest = new LoggerTest()) {\n return Layer.succeed(Logger, logger)\n }\n}\n\nexport const LoggerTestLayer = () => LoggerTest.layer()\n\n/** Execution-local request value carried by a normal Service provider. */\nexport class CurrentRequest extends Service<CurrentRequest>()('CurrentRequest') {\n readonly request: unknown\n\n // oxlint-disable-next-line anti-slop/no-unknown-parameters\n constructor(readonly value: unknown) {\n super()\n this.request = value\n }\n\n // oxlint-disable-next-line anti-slop/no-unknown-parameters\n static layer(value: unknown) {\n return Layer.succeed(CurrentRequest, new CurrentRequest(value))\n }\n}\n\n// oxlint-disable-next-line anti-slop/no-unknown-parameters\nexport const CurrentRequestLayer = (value: unknown) => CurrentRequest.layer(value)\n"],"mappings":"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"}