@gaganref/confect-server 10.3.1-fork.4 → 10.3.1-fork.40

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 (279) hide show
  1. package/dist/ActionCall.d.ts +30 -0
  2. package/dist/ActionCall.d.ts.map +1 -0
  3. package/dist/ActionCall.js +41 -0
  4. package/dist/ActionCall.js.map +1 -0
  5. package/dist/ActionCtx.d.ts +1 -1
  6. package/dist/ActionCtx.d.ts.map +1 -1
  7. package/dist/ActionCtx.js.map +1 -1
  8. package/dist/ActionRunner.js +2 -2
  9. package/dist/AiGatewayDecisionClient.d.ts +2 -2
  10. package/dist/AiGatewayDecisionClient.d.ts.map +1 -1
  11. package/dist/AiGatewayDecisionClient.js +1 -1
  12. package/dist/AiGatewayDecisionClient.js.map +1 -1
  13. package/dist/AiGatewayLanguageClient.d.ts +2 -2
  14. package/dist/AiGatewayLanguageClient.d.ts.map +1 -1
  15. package/dist/AiGatewayLanguageClient.js +1 -1
  16. package/dist/AiGatewayLanguageClient.js.map +1 -1
  17. package/dist/Auth.d.ts +14 -2
  18. package/dist/Auth.d.ts.map +1 -1
  19. package/dist/Auth.js +13 -3
  20. package/dist/Auth.js.map +1 -1
  21. package/dist/Callback.js +3 -3
  22. package/dist/ComponentCtx.d.ts +1 -1
  23. package/dist/ComponentCtx.d.ts.map +1 -1
  24. package/dist/ConvexConfigProvider.js +2 -2
  25. package/dist/ConvexFunctionDefinitions.d.ts +4 -4
  26. package/dist/ConvexFunctionDefinitions.d.ts.map +1 -1
  27. package/dist/ConvexFunctionDefinitions.js +4 -4
  28. package/dist/ConvexFunctionDefinitions.js.map +1 -1
  29. package/dist/ConvexLogger.js +1 -1
  30. package/dist/CronJobs.d.ts +1 -1
  31. package/dist/CronJobs.d.ts.map +1 -1
  32. package/dist/CronJobs.js +6 -6
  33. package/dist/CronJobs.js.map +1 -1
  34. package/dist/DataModel.d.ts +3 -3
  35. package/dist/DataModel.d.ts.map +1 -1
  36. package/dist/DataModel.js.map +1 -1
  37. package/dist/DatabaseReader.d.ts +4 -4
  38. package/dist/DatabaseReader.d.ts.map +1 -1
  39. package/dist/DatabaseReader.js.map +1 -1
  40. package/dist/DatabaseSchema.d.ts +1 -1
  41. package/dist/DatabaseSchema.d.ts.map +1 -1
  42. package/dist/DatabaseSchema.js +2 -2
  43. package/dist/DatabaseSchema.js.map +1 -1
  44. package/dist/DatabaseWriter.d.ts +41 -7
  45. package/dist/DatabaseWriter.d.ts.map +1 -1
  46. package/dist/DatabaseWriter.js +55 -8
  47. package/dist/DatabaseWriter.js.map +1 -1
  48. package/dist/Document.d.ts +4 -4
  49. package/dist/Document.d.ts.map +1 -1
  50. package/dist/Document.js.map +1 -1
  51. package/dist/ExecutionMetadata.js +1 -1
  52. package/dist/FunctionImpl.d.ts +2 -2
  53. package/dist/FunctionImpl.d.ts.map +1 -1
  54. package/dist/FunctionImpl.js +2 -2
  55. package/dist/FunctionImpl.js.map +1 -1
  56. package/dist/FunctionRegistryItem.d.ts +1 -1
  57. package/dist/FunctionRegistryItem.d.ts.map +1 -1
  58. package/dist/FunctionRegistryItem.js +1 -1
  59. package/dist/FunctionRegistryItem.js.map +1 -1
  60. package/dist/GroupImpl.d.ts +24 -5
  61. package/dist/GroupImpl.d.ts.map +1 -1
  62. package/dist/GroupImpl.js +21 -22
  63. package/dist/GroupImpl.js.map +1 -1
  64. package/dist/GroupRegistry.d.ts +3 -2
  65. package/dist/GroupRegistry.d.ts.map +1 -1
  66. package/dist/GroupRegistry.js +10 -3
  67. package/dist/GroupRegistry.js.map +1 -1
  68. package/dist/Handler.d.ts +31 -27
  69. package/dist/Handler.d.ts.map +1 -1
  70. package/dist/Handler.js.map +1 -1
  71. package/dist/HttpRouter.d.ts +15 -13
  72. package/dist/HttpRouter.d.ts.map +1 -1
  73. package/dist/HttpRouter.js +16 -7
  74. package/dist/HttpRouter.js.map +1 -1
  75. package/dist/MiddlewareImpl.d.ts +14 -14
  76. package/dist/MiddlewareImpl.d.ts.map +1 -1
  77. package/dist/MiddlewareImpl.js +1 -1
  78. package/dist/MiddlewareImpl.js.map +1 -1
  79. package/dist/MutationCtx.d.ts +1 -1
  80. package/dist/MutationCtx.d.ts.map +1 -1
  81. package/dist/MutationCtx.js.map +1 -1
  82. package/dist/MutationRunner.d.ts +1 -1
  83. package/dist/MutationRunner.d.ts.map +1 -1
  84. package/dist/MutationRunner.js +2 -2
  85. package/dist/MutationRunner.js.map +1 -1
  86. package/dist/MutationTransactionContext.d.ts +2 -2
  87. package/dist/MutationTransactionContext.d.ts.map +1 -1
  88. package/dist/MutationTransactionContext.js +2 -2
  89. package/dist/MutationTransactionContext.js.map +1 -1
  90. package/dist/OfficialComponent.d.ts +50 -0
  91. package/dist/OfficialComponent.d.ts.map +1 -0
  92. package/dist/OfficialComponent.js +70 -0
  93. package/dist/OfficialComponent.js.map +1 -0
  94. package/dist/OrderedQuery.d.ts +4 -4
  95. package/dist/OrderedQuery.d.ts.map +1 -1
  96. package/dist/OrderedQuery.js.map +1 -1
  97. package/dist/QueryCtx.d.ts +1 -1
  98. package/dist/QueryCtx.d.ts.map +1 -1
  99. package/dist/QueryCtx.js.map +1 -1
  100. package/dist/QueryInitializer.d.ts +10 -10
  101. package/dist/QueryInitializer.d.ts.map +1 -1
  102. package/dist/QueryInitializer.js +2 -2
  103. package/dist/QueryInitializer.js.map +1 -1
  104. package/dist/QueryRunner.d.ts +2 -2
  105. package/dist/QueryRunner.d.ts.map +1 -1
  106. package/dist/QueryRunner.js +2 -2
  107. package/dist/QueryRunner.js.map +1 -1
  108. package/dist/QueryStream.d.ts +131 -23
  109. package/dist/QueryStream.d.ts.map +1 -1
  110. package/dist/QueryStream.js +142 -40
  111. package/dist/QueryStream.js.map +1 -1
  112. package/dist/QueryStreamCursor.d.ts +2 -2
  113. package/dist/QueryStreamCursor.d.ts.map +1 -1
  114. package/dist/QueryStreamCursor.js +1 -1
  115. package/dist/QueryStreamCursor.js.map +1 -1
  116. package/dist/QueryStreamIndexPrefix.d.ts +2 -2
  117. package/dist/QueryStreamIndexPrefix.d.ts.map +1 -1
  118. package/dist/QueryStreamIndexPrefix.js +1 -1
  119. package/dist/QueryStreamIndexPrefix.js.map +1 -1
  120. package/dist/QueryStreamIndexRange.d.ts +4 -4
  121. package/dist/QueryStreamIndexRange.d.ts.map +1 -1
  122. package/dist/QueryStreamIndexRange.js +2 -2
  123. package/dist/QueryStreamIndexRange.js.map +1 -1
  124. package/dist/QueryStreamKey.d.ts +2 -2
  125. package/dist/QueryStreamKey.d.ts.map +1 -1
  126. package/dist/QueryStreamKey.js +1 -1
  127. package/dist/QueryStreamKey.js.map +1 -1
  128. package/dist/QueryStreamKeyBounds.d.ts +3 -3
  129. package/dist/QueryStreamKeyBounds.d.ts.map +1 -1
  130. package/dist/QueryStreamKeyBounds.js +2 -2
  131. package/dist/QueryStreamKeyBounds.js.map +1 -1
  132. package/dist/QueryStreamKeyLayout.d.ts +1 -1
  133. package/dist/QueryStreamKeyLayout.d.ts.map +1 -1
  134. package/dist/QueryStreamKeyLayout.js +2 -2
  135. package/dist/QueryStreamKeyLayout.js.map +1 -1
  136. package/dist/QueryStreamKeyValues.d.ts +1 -1
  137. package/dist/QueryStreamKeyValues.d.ts.map +1 -1
  138. package/dist/QueryStreamKeyValues.js +1 -1
  139. package/dist/QueryStreamKeyValues.js.map +1 -1
  140. package/dist/QueryStreamPagination.d.ts +1 -1
  141. package/dist/QueryStreamPagination.d.ts.map +1 -1
  142. package/dist/QueryStreamPagination.js +1 -1
  143. package/dist/QueryStreamPagination.js.map +1 -1
  144. package/dist/QueryStreamReadBudget.d.ts +3 -2
  145. package/dist/QueryStreamReadBudget.d.ts.map +1 -1
  146. package/dist/QueryStreamReadBudget.js +7 -4
  147. package/dist/QueryStreamReadBudget.js.map +1 -1
  148. package/dist/QueryTransactionContext.js +2 -2
  149. package/dist/RegisteredConvexFunction.d.ts +27 -24
  150. package/dist/RegisteredConvexFunction.d.ts.map +1 -1
  151. package/dist/RegisteredConvexFunction.js +39 -26
  152. package/dist/RegisteredConvexFunction.js.map +1 -1
  153. package/dist/RegisteredFunction.d.ts +51 -47
  154. package/dist/RegisteredFunction.d.ts.map +1 -1
  155. package/dist/RegisteredFunction.js +117 -37
  156. package/dist/RegisteredFunction.js.map +1 -1
  157. package/dist/RegisteredFunctions.d.ts +3 -3
  158. package/dist/RegisteredFunctions.d.ts.map +1 -1
  159. package/dist/RegisteredFunctions.js.map +1 -1
  160. package/dist/RegisteredNodeFunction.d.ts +7 -7
  161. package/dist/RegisteredNodeFunction.d.ts.map +1 -1
  162. package/dist/RegisteredNodeFunction.js +8 -6
  163. package/dist/RegisteredNodeFunction.js.map +1 -1
  164. package/dist/Registry.d.ts +1 -1
  165. package/dist/Registry.d.ts.map +1 -1
  166. package/dist/Registry.js.map +1 -1
  167. package/dist/RegistryItems.d.ts +7 -0
  168. package/dist/RegistryItems.d.ts.map +1 -1
  169. package/dist/RegistryItems.js +8 -3
  170. package/dist/RegistryItems.js.map +1 -1
  171. package/dist/RequestMetadata.js +1 -1
  172. package/dist/ResolvedMiddleware.d.ts +2 -2
  173. package/dist/ResolvedMiddleware.d.ts.map +1 -1
  174. package/dist/ResolvedMiddleware.js.map +1 -1
  175. package/dist/Scheduler.js +2 -2
  176. package/dist/Storage.d.ts +6 -6
  177. package/dist/Storage.d.ts.map +1 -1
  178. package/dist/Storage.js +1 -1
  179. package/dist/Storage.js.map +1 -1
  180. package/dist/StorageActionWriter.d.ts +1 -1
  181. package/dist/StorageActionWriter.d.ts.map +1 -1
  182. package/dist/StorageActionWriter.js +1 -1
  183. package/dist/StorageActionWriter.js.map +1 -1
  184. package/dist/StorageReader.d.ts +1 -1
  185. package/dist/StorageReader.d.ts.map +1 -1
  186. package/dist/StorageReader.js +1 -1
  187. package/dist/StorageReader.js.map +1 -1
  188. package/dist/StorageWriter.d.ts +1 -1
  189. package/dist/StorageWriter.d.ts.map +1 -1
  190. package/dist/StorageWriter.js +1 -1
  191. package/dist/StorageWriter.js.map +1 -1
  192. package/dist/TableInfo.d.ts +2 -2
  193. package/dist/TableInfo.d.ts.map +1 -1
  194. package/dist/TableInfo.js.map +1 -1
  195. package/dist/TransactionMetadata.js +1 -1
  196. package/dist/VectorSearch.d.ts +1 -1
  197. package/dist/VectorSearch.d.ts.map +1 -1
  198. package/dist/VectorSearch.js +1 -1
  199. package/dist/VectorSearch.js.map +1 -1
  200. package/dist/index.d.ts +62 -60
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +20 -18
  203. package/dist/internal/AiGatewayDecisionClient.d.ts +1 -1
  204. package/dist/internal/AiGatewayDecisionClient.d.ts.map +1 -1
  205. package/dist/internal/AiGatewayDecisionClient.js +1 -1
  206. package/dist/internal/AiGatewayDecisionClient.js.map +1 -1
  207. package/dist/internal/AiGatewayLanguageClient.d.ts +1 -1
  208. package/dist/internal/AiGatewayLanguageClient.d.ts.map +1 -1
  209. package/dist/internal/AiGatewayLanguageClient.js +1 -1
  210. package/dist/internal/AiGatewayLanguageClient.js.map +1 -1
  211. package/dist/internal/AiGatewayServiceToken.js +1 -1
  212. package/dist/internal/DocumentPatch.d.ts +16 -0
  213. package/dist/internal/DocumentPatch.d.ts.map +1 -0
  214. package/dist/internal/DocumentPatch.js +36 -0
  215. package/dist/internal/DocumentPatch.js.map +1 -0
  216. package/dist/internal/observability.d.ts +5 -0
  217. package/dist/internal/observability.d.ts.map +1 -0
  218. package/dist/internal/observability.js +21 -0
  219. package/dist/internal/observability.js.map +1 -0
  220. package/dist/node.d.ts +1 -1
  221. package/dist/node.d.ts.map +1 -1
  222. package/package.json +5 -5
  223. package/src/ActionCall.ts +82 -0
  224. package/src/ActionCtx.ts +1 -1
  225. package/src/AiGatewayDecisionClient.ts +3 -3
  226. package/src/AiGatewayLanguageClient.ts +3 -3
  227. package/src/Auth.ts +24 -2
  228. package/src/ComponentCtx.ts +1 -1
  229. package/src/ConvexFunctionDefinitions.ts +10 -9
  230. package/src/CronJobs.ts +1 -1
  231. package/src/DataModel.ts +3 -3
  232. package/src/DatabaseReader.ts +4 -4
  233. package/src/DatabaseSchema.ts +1 -1
  234. package/src/DatabaseWriter.ts +189 -31
  235. package/src/Document.ts +4 -4
  236. package/src/FunctionImpl.ts +5 -5
  237. package/src/FunctionRegistryItem.ts +1 -1
  238. package/src/GroupImpl.ts +66 -13
  239. package/src/GroupRegistry.ts +11 -7
  240. package/src/Handler.ts +44 -28
  241. package/src/HttpRouter.ts +71 -21
  242. package/src/MiddlewareImpl.ts +17 -17
  243. package/src/MutationCtx.ts +1 -1
  244. package/src/MutationRunner.ts +1 -1
  245. package/src/MutationTransactionContext.ts +2 -2
  246. package/src/OfficialComponent.ts +151 -0
  247. package/src/OrderedQuery.ts +4 -4
  248. package/src/QueryCtx.ts +1 -1
  249. package/src/QueryInitializer.ts +9 -9
  250. package/src/QueryRunner.ts +2 -2
  251. package/src/QueryStream.ts +406 -76
  252. package/src/QueryStreamCursor.ts +3 -3
  253. package/src/QueryStreamIndexPrefix.ts +2 -2
  254. package/src/QueryStreamIndexRange.ts +4 -4
  255. package/src/QueryStreamKey.ts +2 -2
  256. package/src/QueryStreamKeyBounds.ts +3 -3
  257. package/src/QueryStreamKeyLayout.ts +1 -1
  258. package/src/QueryStreamKeyValues.ts +1 -1
  259. package/src/QueryStreamPagination.ts +2 -2
  260. package/src/QueryStreamReadBudget.ts +19 -6
  261. package/src/RegisteredConvexFunction.ts +38 -21
  262. package/src/RegisteredFunction.ts +190 -60
  263. package/src/RegisteredFunctions.ts +4 -4
  264. package/src/RegisteredNodeFunction.ts +15 -9
  265. package/src/Registry.ts +1 -1
  266. package/src/RegistryItems.ts +33 -2
  267. package/src/ResolvedMiddleware.ts +2 -2
  268. package/src/Storage.ts +3 -3
  269. package/src/StorageActionWriter.ts +1 -1
  270. package/src/StorageReader.ts +1 -1
  271. package/src/StorageWriter.ts +1 -1
  272. package/src/TableInfo.ts +2 -2
  273. package/src/VectorSearch.ts +1 -1
  274. package/src/index.ts +62 -60
  275. package/src/internal/AiGatewayDecisionClient.ts +2 -2
  276. package/src/internal/AiGatewayLanguageClient.ts +2 -2
  277. package/src/internal/DocumentPatch.ts +87 -0
  278. package/src/internal/observability.ts +27 -0
  279. package/src/node.ts +1 -1
@@ -1,10 +1,11 @@
1
1
  import type * as GroupSpec from "@confect/core/GroupSpec";
2
2
  import type * as MiddlewareSpec from "@confect/core/MiddlewareSpec";
3
+ import * as RegistryItems from "./RegistryItems.js";
3
4
  import * as Context from "effect/Context";
4
5
  import * as Layer from "effect/Layer";
5
- import type * as DatabaseSchema from "./DatabaseSchema";
6
- import type * as FunctionImpl from "./FunctionImpl";
7
- import type * as MiddlewareImpl from "./MiddlewareImpl";
6
+ import type * as DatabaseSchema from "./DatabaseSchema.js";
7
+ import type * as FunctionImpl from "./FunctionImpl.js";
8
+ import type * as MiddlewareImpl from "./MiddlewareImpl.js";
8
9
  export declare const TypeId = "~@confect/server/GroupImpl";
9
10
  export type TypeId = typeof TypeId;
10
11
  export type FinalizationStatus = "Unfinalized" | "Finalized";
@@ -59,6 +60,15 @@ export declare const GroupImpl: <FinalizationStatus_ extends FinalizationStatus>
59
60
  * runtime.
60
61
  */
61
62
  export declare const make: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Group extends GroupSpec.AnyWithProps>(_databaseSchema: DatabaseSchema_, _group: Group & MiddlewareSpec.ValidateImplRequires<GroupSpec.Functions<Group>, GroupSpec.MiddlewareSpecs<Group>>) => Layer.Layer<GroupImpl<"Unfinalized">, never, FunctionImpl.FromGroupSpec<Group> | MiddlewareImpl.FromGroupSpec<Group>>;
63
+ declare const MissingRequiredMiddlewareError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
64
+ readonly _tag: "MissingRequiredMiddlewareError";
65
+ } & Readonly<A>;
66
+ export declare class MissingRequiredMiddlewareError extends MissingRequiredMiddlewareError_base<{
67
+ readonly missing: ReadonlyArray<RegistryItems.MissingMiddleware>;
68
+ }> {
69
+ get message(): string;
70
+ }
71
+ type Finalizable = Layer.Layer<AnyUnfinalized> | Layer.Layer<AnyFinalized>;
62
72
  /**
63
73
  * Mark a `GroupImpl` layer as fully implemented. The parameter type defaults
64
74
  * `RIn = never`, so passing a layer that still requires any `FunctionImpl`
@@ -70,8 +80,17 @@ export declare const make: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps,
70
80
  * registered into this group's scope are snapshotted onto the produced service
71
81
  * value's `registeredFunctionNames` field, so consumers can verify impl
72
82
  * completeness against a `GroupSpec`'s expected functions without having to
73
- * inspect the `Registry` themselves.
83
+ * inspect the `Registry` themselves. Pass `{ required }` to check every
84
+ * registered function's middleware at layer build, including internal
85
+ * functions. This form also accepts a finalized layer so generated registration
86
+ * can enforce the backend declaration without changing authored impls. Pass
87
+ * `groupPath` to qualify uncovered function names in the diagnostic.
74
88
  */
75
- export declare const finalize: (group: Layer.Layer<GroupImpl<"Unfinalized">>) => Layer.Layer<GroupImpl<"Finalized">>;
89
+ export declare function finalize(options: {
90
+ readonly groupPath?: string;
91
+ readonly required: ReadonlyArray<Pick<MiddlewareSpec.AnyMiddlewareSpec, "key">>;
92
+ }): (group: Finalizable) => Layer.Layer<GroupImpl<"Finalized">>;
93
+ export declare function finalize(group: Layer.Layer<GroupImpl<"Unfinalized">>): Layer.Layer<GroupImpl<"Finalized">>;
76
94
  export type FromGroupSpec<Group extends GroupSpec.AnyWithProps> = FunctionImpl.FromGroupSpec<Group> | MiddlewareImpl.FromGroupSpec<Group>;
95
+ export {};
77
96
  //# sourceMappingURL=GroupImpl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GroupImpl.d.ts","sourceRoot":"","sources":["../src/GroupImpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,KAAK,cAAc,MAAM,8BAA8B,CAAC;AAIpE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,KAAK,YAAY,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AAExD,eAAO,MAAM,MAAM,+BAA+B,CAAC;AACnD,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,WAAW,CAAC;AAE7D,MAAM,WAAW,SAAS,CACxB,mBAAmB,SAAS,kBAAkB,GAAG,aAAa;IAE9D,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IACjD;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxD;;;;;;OAMG;IACH,QAAQ,CAAC,wBAAwB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,GAAI,SAAQ,SAAS,CAAC,kBAAkB,CAAC;CAAG;AAE7D,eAAO,MAAM,WAAW,MAAO,OAAO,KAAG,CAAC,IAAI,GACZ,CAAC;AAEnC,MAAM,WAAW,YAAa,SAAQ,SAAS,CAAC,WAAW,CAAC;CAAG;AAC/D,MAAM,WAAW,cAAe,SAAQ,SAAS,CAAC,aAAa,CAAC;CAAG;AAEnE,eAAO,MAAM,oBAAoB,MAAO,OAAO,KAAG,CAAC,IAAI,YACC,CAAC;AAEzD,eAAO,MAAM,sBAAsB,MAAO,OAAO,KAAG,CAAC,IAAI,cACC,CAAC;AAE3D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,mBAAmB,SAAS,kBAAkB,2BAErE;IACD,kBAAkB,EAAE,mBAAmB,CAAC;CACzC,oFAGE,CAAC;AAEJ;;;;;;GAMG;AACH,eAAO,MAAM,IAAI,GACf,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,KAAK,SAAS,SAAS,CAAC,YAAY,mBAEnB,eAAe,UACxB,KAAK,GACX,cAAc,CAAC,oBAAoB,CACjC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAC1B,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CACjC,KACF,KAAK,CAAC,KAAK,CACZ,SAAS,CAAC,aAAa,CAAC,EACxB,KAAK,EACL,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CActE,CAAC;AAOJ;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,UACZ,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAC3C,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CA6BlC,CAAC;AAEJ,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,SAAS,CAAC,YAAY,IAC1D,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,GACjC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"GroupImpl.d.ts","sourceRoot":"","sources":["../src/GroupImpl.ts"],"names":[],"mappings":"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"}
package/dist/GroupImpl.js CHANGED
@@ -1,16 +1,18 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
2
  import { Registry } from "./Registry.js";
3
- import { functionNames, middlewareKeys } from "./RegistryItems.js";
3
+ import { functionNames, middlewareKeys, missingRequired } from "./RegistryItems.js";
4
4
  import * as Context from "effect/Context";
5
- import * as Layer from "effect/Layer";
5
+ import * as Data from "effect/Data";
6
6
  import * as Effect from "effect/Effect";
7
- import * as Option from "effect/Option";
8
- import * as Array from "effect/Array";
9
- import * as Predicate from "effect/Predicate";
7
+ import * as Layer from "effect/Layer";
10
8
  import * as Ref from "effect/Ref";
9
+ import * as Predicate from "effect/Predicate";
10
+ import * as Array from "effect/Array";
11
+ import * as Option from "effect/Option";
11
12
  //#region src/GroupImpl.ts
12
13
  var GroupImpl_exports = /* @__PURE__ */ __exportAll({
13
14
  GroupImpl: () => GroupImpl,
15
+ MissingRequiredMiddlewareError: () => MissingRequiredMiddlewareError,
14
16
  TypeId: () => TypeId,
15
17
  finalize: () => finalize,
16
18
  isFinalizedGroupImpl: () => isFinalizedGroupImpl,
@@ -48,25 +50,22 @@ const make = (_databaseSchema, _group) => Layer.succeed(GroupImpl({ finalization
48
50
  registeredFunctionNames: [],
49
51
  registeredMiddlewareKeys: []
50
52
  });
51
- const findUnfinalizedGroupImpl = (context) => Array.findFirst(context.mapUnsafe.values(), isUnfinalizedGroupImpl);
52
- /**
53
- * Mark a `GroupImpl` layer as fully implemented. The parameter type defaults
54
- * `RIn = never`, so passing a layer that still requires any `FunctionImpl`
55
- * service produces a type error at the impl author's site. The codegen boundary
56
- * requires the resulting `"Finalized"` brand, so omitting this call is also
57
- * rejected downstream.
58
- *
59
- * As a side effect of finalization, the names of every `FunctionImpl` that
60
- * registered into this group's scope are snapshotted onto the produced service
61
- * value's `registeredFunctionNames` field, so consumers can verify impl
62
- * completeness against a `GroupSpec`'s expected functions without having to
63
- * inspect the `Registry` themselves.
64
- */
65
- const finalize = (group) => Layer.flatMap(group, (context) => findUnfinalizedGroupImpl(context).pipe(Option.match({
66
- onNone: () => Layer.effect(GroupImpl({ finalizationStatus: "Finalized" }), Effect.die(/* @__PURE__ */ new Error("GroupImpl.finalize: no Unfinalized GroupImpl service was found in the layer's context."))),
53
+ const findGroupImpl = (context) => Array.findFirst(context.mapUnsafe.values(), isGroupImpl);
54
+ var MissingRequiredMiddlewareError = class extends Data.TaggedError("MissingRequiredMiddlewareError") {
55
+ get message() {
56
+ return `GroupImpl.finalize: ${this.missing.map(({ functionName, middlewareKey }) => `${functionName} requires middleware "${middlewareKey}"`).join("\n")}`;
57
+ }
58
+ };
59
+ function finalize(input) {
60
+ return "required" in input ? (group) => finalizeWith(group, input.required, input.groupPath) : finalizeWith(input, []);
61
+ }
62
+ const finalizeWith = (group, required, groupPath = "") => Layer.flatMap(group, (context) => findGroupImpl(context).pipe(Option.match({
63
+ onNone: () => Layer.effect(GroupImpl({ finalizationStatus: "Finalized" }), Effect.die(/* @__PURE__ */ new Error("GroupImpl.finalize: no GroupImpl service was found in the layer's context."))),
67
64
  onSome: () => Layer.effect(GroupImpl({ finalizationStatus: "Finalized" }), Effect.gen(function* () {
68
65
  const registry = yield* Registry;
69
66
  const items = yield* Ref.get(registry);
67
+ const missing = missingRequired(items, required, groupPath);
68
+ if (missing.length > 0) return yield* Effect.die(new MissingRequiredMiddlewareError({ missing }));
70
69
  return {
71
70
  [TypeId]: TypeId,
72
71
  finalizationStatus: "Finalized",
@@ -76,6 +75,6 @@ const finalize = (group) => Layer.flatMap(group, (context) => findUnfinalizedGro
76
75
  }))
77
76
  })));
78
77
  //#endregion
79
- export { GroupImpl, GroupImpl_exports, TypeId, finalize, isFinalizedGroupImpl, isGroupImpl, isUnfinalizedGroupImpl, make };
78
+ export { GroupImpl, GroupImpl_exports, MissingRequiredMiddlewareError, TypeId, finalize, isFinalizedGroupImpl, isGroupImpl, isUnfinalizedGroupImpl, make };
80
79
 
81
80
  //# sourceMappingURL=GroupImpl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GroupImpl.js","names":["Registry.Registry","RegistryItems.functionNames","RegistryItems.middlewareKeys"],"sources":["../src/GroupImpl.ts"],"sourcesContent":["import type * as GroupSpec from \"@confect/core/GroupSpec\";\nimport type * as MiddlewareSpec from \"@confect/core/MiddlewareSpec\";\nimport * as Registry from \"./Registry\";\nimport * as RegistryItems from \"./RegistryItems\";\nimport * as Array from \"effect/Array\";\nimport * as Context from \"effect/Context\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Option from \"effect/Option\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Ref from \"effect/Ref\";\nimport type * as DatabaseSchema from \"./DatabaseSchema\";\nimport type * as FunctionImpl from \"./FunctionImpl\";\nimport type * as MiddlewareImpl from \"./MiddlewareImpl\";\n\nexport const TypeId = \"~@confect/server/GroupImpl\";\nexport type TypeId = typeof TypeId;\n\nexport type FinalizationStatus = \"Unfinalized\" | \"Finalized\";\n\nexport interface GroupImpl<\n FinalizationStatus_ extends FinalizationStatus = \"Unfinalized\",\n> {\n readonly [TypeId]: TypeId;\n readonly finalizationStatus: FinalizationStatus_;\n /**\n * Names of every function registered into this group's layer scope by\n * `FunctionImpl.make`. Authoritative only when `finalizationStatus` is\n * `\"Finalized\"`; the `\"Unfinalized\"` value is set to `[]` at `make`-time\n * since the list is only known once `finalize` snapshots the registry.\n */\n readonly registeredFunctionNames: ReadonlyArray<string>;\n /**\n * Keys of every middleware whose implementation registered into this group's\n * layer scope via `MiddlewareImpl.make` (and friends). Same authoritativeness\n * caveat as `registeredFunctionNames`. Lets consumers (the CLI's\n * `validateImpl`) verify middleware-impl completeness against a `GroupSpec`'s\n * attached middleware without inspecting the `Registry`.\n */\n readonly registeredMiddlewareKeys: ReadonlyArray<string>;\n}\n\nexport interface Any extends GroupImpl<FinalizationStatus> {}\n\nexport const isGroupImpl = (u: unknown): u is Any =>\n Predicate.hasProperty(u, TypeId);\n\nexport interface AnyFinalized extends GroupImpl<\"Finalized\"> {}\nexport interface AnyUnfinalized extends GroupImpl<\"Unfinalized\"> {}\n\nexport const isFinalizedGroupImpl = (u: unknown): u is AnyFinalized =>\n isGroupImpl(u) && u.finalizationStatus === \"Finalized\";\n\nexport const isUnfinalizedGroupImpl = (u: unknown): u is AnyUnfinalized =>\n isGroupImpl(u) && u.finalizationStatus === \"Unfinalized\";\n\n/**\n * Build the runtime tag for a `GroupImpl` service. The finalization status is\n * embedded in the tag string so that `Unfinalized` and `Finalized` are distinct\n * services at runtime; consumers of a finalized layer (the server's\n * `RegisteredFunctions.buildForGroup` and the CLI's `validateImpl`) retrieve\n * the typed `Finalized` service directly rather than scanning the context.\n *\n * The tag is keyed only by finalization status—no group path—because each\n * group's impl layer is built in its own isolated scope\n * (`buildForGroup`/`validateImpl` each provide a fresh `Registry`), so at most\n * one `GroupImpl` service of each status exists per build.\n */\nexport const GroupImpl = <FinalizationStatus_ extends FinalizationStatus>({\n finalizationStatus,\n}: {\n finalizationStatus: FinalizationStatus_;\n}) =>\n Context.Service<GroupImpl<FinalizationStatus_>>(\n `@confect/server/GroupImpl/${finalizationStatus}`,\n );\n\n/**\n * Begin a group's impl layer. `databaseSchema` and `group` are retained only as\n * type-level carriers (`group` drives the required `FunctionImpl` services via\n * `FromGroupSpec<Group>`; `databaseSchema` keeps the impl's dependency on\n * `_generated/schema` symmetric with `FunctionImpl.make`). Neither is read at\n * runtime.\n */\nexport const make = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Group extends GroupSpec.AnyWithProps,\n>(\n _databaseSchema: DatabaseSchema_,\n _group: Group &\n MiddlewareSpec.ValidateImplRequires<\n GroupSpec.Functions<Group>,\n GroupSpec.MiddlewareSpecs<Group>\n >,\n): Layer.Layer<\n GroupImpl<\"Unfinalized\">,\n never,\n FunctionImpl.FromGroupSpec<Group> | MiddlewareImpl.FromGroupSpec<Group>\n> =>\n Layer.succeed(\n GroupImpl<\"Unfinalized\">({ finalizationStatus: \"Unfinalized\" }),\n {\n [TypeId]: TypeId,\n finalizationStatus: \"Unfinalized\" as const,\n registeredFunctionNames: [],\n registeredMiddlewareKeys: [],\n },\n ) as Layer.Layer<\n GroupImpl<\"Unfinalized\">,\n never,\n FunctionImpl.FromGroupSpec<Group> | MiddlewareImpl.FromGroupSpec<Group>\n >;\n\nconst findUnfinalizedGroupImpl = <S>(\n context: Context.Context<S>,\n): Option.Option<AnyUnfinalized> =>\n Array.findFirst(context.mapUnsafe.values(), isUnfinalizedGroupImpl);\n\n/**\n * Mark a `GroupImpl` layer as fully implemented. The parameter type defaults\n * `RIn = never`, so passing a layer that still requires any `FunctionImpl`\n * service produces a type error at the impl author's site. The codegen boundary\n * requires the resulting `\"Finalized\"` brand, so omitting this call is also\n * rejected downstream.\n *\n * As a side effect of finalization, the names of every `FunctionImpl` that\n * registered into this group's scope are snapshotted onto the produced service\n * value's `registeredFunctionNames` field, so consumers can verify impl\n * completeness against a `GroupSpec`'s expected functions without having to\n * inspect the `Registry` themselves.\n */\nexport const finalize = (\n group: Layer.Layer<GroupImpl<\"Unfinalized\">>,\n): Layer.Layer<GroupImpl<\"Finalized\">> =>\n Layer.flatMap(group, (context): Layer.Layer<GroupImpl<\"Finalized\">> =>\n findUnfinalizedGroupImpl(context).pipe(\n Option.match({\n onNone: () =>\n Layer.effect(\n GroupImpl<\"Finalized\">({ finalizationStatus: \"Finalized\" }),\n Effect.die(\n new Error(\n \"GroupImpl.finalize: no Unfinalized GroupImpl service was found in the layer's context.\",\n ),\n ),\n ),\n onSome: () =>\n Layer.effect(\n GroupImpl<\"Finalized\">({ finalizationStatus: \"Finalized\" }),\n Effect.gen(function* () {\n const registry = yield* Registry.Registry;\n const items = yield* Ref.get(registry);\n return {\n [TypeId]: TypeId,\n finalizationStatus: \"Finalized\" as const,\n registeredFunctionNames: RegistryItems.functionNames(items),\n registeredMiddlewareKeys: RegistryItems.middlewareKeys(items),\n };\n }),\n ),\n }),\n ),\n );\n\nexport type FromGroupSpec<Group extends GroupSpec.AnyWithProps> =\n | FunctionImpl.FromGroupSpec<Group>\n | MiddlewareImpl.FromGroupSpec<Group>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAeA,MAAa,SAAS;AA6BtB,MAAa,eAAe,MAC1B,UAAU,YAAY,GAAG,MAAM;AAKjC,MAAa,wBAAwB,MACnC,YAAY,CAAC,KAAK,EAAE,uBAAuB;AAE7C,MAAa,0BAA0B,MACrC,YAAY,CAAC,KAAK,EAAE,uBAAuB;;;;;;;;;;;;;AAc7C,MAAa,aAA6D,EACxE,yBAIA,QAAQ,QACN,6BAA6B,oBAC/B;;;;;;;;AASF,MAAa,QAIX,iBACA,WAUA,MAAM,QACJ,UAAyB,EAAE,oBAAoB,cAAc,CAAC,GAC9D;EACG,SAAS;CACV,oBAAoB;CACpB,yBAAyB,CAAC;CAC1B,0BAA0B,CAAC;AAC7B,CACF;AAMF,MAAM,4BACJ,YAEA,MAAM,UAAU,QAAQ,UAAU,OAAO,GAAG,sBAAsB;;;;;;;;;;;;;;AAepE,MAAa,YACX,UAEA,MAAM,QAAQ,QAAQ,YACpB,yBAAyB,OAAO,CAAC,CAAC,KAChC,OAAO,MAAM;CACX,cACE,MAAM,OACJ,UAAuB,EAAE,oBAAoB,YAAY,CAAC,GAC1D,OAAO,oBACL,IAAI,MACF,wFACF,CACF,CACF;CACF,cACE,MAAM,OACJ,UAAuB,EAAE,oBAAoB,YAAY,CAAC,GAC1D,OAAO,IAAI,aAAa;EACtB,MAAM,WAAW,OAAOA;EACxB,MAAM,QAAQ,OAAO,IAAI,IAAI,QAAQ;EACrC,OAAO;IACJ,SAAS;GACV,oBAAoB;GACpB,yBAAyBC,cAA4B,KAAK;GAC1D,0BAA0BC,eAA6B,KAAK;EAC9D;CACF,CAAC,CACH;AACJ,CAAC,CACH,CACF"}
1
+ {"version":3,"file":"GroupImpl.js","names":["Registry.Registry","RegistryItems.missingRequired","RegistryItems.functionNames","RegistryItems.middlewareKeys"],"sources":["../src/GroupImpl.ts"],"sourcesContent":["import type * as GroupSpec from \"@confect/core/GroupSpec\";\nimport type * as MiddlewareSpec from \"@confect/core/MiddlewareSpec\";\nimport * as Registry from \"./Registry.js\";\nimport * as RegistryItems from \"./RegistryItems.js\";\nimport * as Array from \"effect/Array\";\nimport * as Context from \"effect/Context\";\nimport * as Effect from \"effect/Effect\";\nimport * as Data from \"effect/Data\";\nimport * as Layer from \"effect/Layer\";\nimport * as Option from \"effect/Option\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Ref from \"effect/Ref\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as FunctionImpl from \"./FunctionImpl.js\";\nimport type * as MiddlewareImpl from \"./MiddlewareImpl.js\";\n\nexport const TypeId = \"~@confect/server/GroupImpl\";\nexport type TypeId = typeof TypeId;\n\nexport type FinalizationStatus = \"Unfinalized\" | \"Finalized\";\n\nexport interface GroupImpl<\n FinalizationStatus_ extends FinalizationStatus = \"Unfinalized\",\n> {\n readonly [TypeId]: TypeId;\n readonly finalizationStatus: FinalizationStatus_;\n /**\n * Names of every function registered into this group's layer scope by\n * `FunctionImpl.make`. Authoritative only when `finalizationStatus` is\n * `\"Finalized\"`; the `\"Unfinalized\"` value is set to `[]` at `make`-time\n * since the list is only known once `finalize` snapshots the registry.\n */\n readonly registeredFunctionNames: ReadonlyArray<string>;\n /**\n * Keys of every middleware whose implementation registered into this group's\n * layer scope via `MiddlewareImpl.make` (and friends). Same authoritativeness\n * caveat as `registeredFunctionNames`. Lets consumers (the CLI's\n * `validateImpl`) verify middleware-impl completeness against a `GroupSpec`'s\n * attached middleware without inspecting the `Registry`.\n */\n readonly registeredMiddlewareKeys: ReadonlyArray<string>;\n}\n\nexport interface Any extends GroupImpl<FinalizationStatus> {}\n\nexport const isGroupImpl = (u: unknown): u is Any =>\n Predicate.hasProperty(u, TypeId);\n\nexport interface AnyFinalized extends GroupImpl<\"Finalized\"> {}\nexport interface AnyUnfinalized extends GroupImpl<\"Unfinalized\"> {}\n\nexport const isFinalizedGroupImpl = (u: unknown): u is AnyFinalized =>\n isGroupImpl(u) && u.finalizationStatus === \"Finalized\";\n\nexport const isUnfinalizedGroupImpl = (u: unknown): u is AnyUnfinalized =>\n isGroupImpl(u) && u.finalizationStatus === \"Unfinalized\";\n\n/**\n * Build the runtime tag for a `GroupImpl` service. The finalization status is\n * embedded in the tag string so that `Unfinalized` and `Finalized` are distinct\n * services at runtime; consumers of a finalized layer (the server's\n * `RegisteredFunctions.buildForGroup` and the CLI's `validateImpl`) retrieve\n * the typed `Finalized` service directly rather than scanning the context.\n *\n * The tag is keyed only by finalization status—no group path—because each\n * group's impl layer is built in its own isolated scope\n * (`buildForGroup`/`validateImpl` each provide a fresh `Registry`), so at most\n * one `GroupImpl` service of each status exists per build.\n */\nexport const GroupImpl = <FinalizationStatus_ extends FinalizationStatus>({\n finalizationStatus,\n}: {\n finalizationStatus: FinalizationStatus_;\n}) =>\n Context.Service<GroupImpl<FinalizationStatus_>>(\n `@confect/server/GroupImpl/${finalizationStatus}`,\n );\n\n/**\n * Begin a group's impl layer. `databaseSchema` and `group` are retained only as\n * type-level carriers (`group` drives the required `FunctionImpl` services via\n * `FromGroupSpec<Group>`; `databaseSchema` keeps the impl's dependency on\n * `_generated/schema` symmetric with `FunctionImpl.make`). Neither is read at\n * runtime.\n */\nexport const make = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Group extends GroupSpec.AnyWithProps,\n>(\n _databaseSchema: DatabaseSchema_,\n _group: Group &\n MiddlewareSpec.ValidateImplRequires<\n GroupSpec.Functions<Group>,\n GroupSpec.MiddlewareSpecs<Group>\n >,\n): Layer.Layer<\n GroupImpl<\"Unfinalized\">,\n never,\n FunctionImpl.FromGroupSpec<Group> | MiddlewareImpl.FromGroupSpec<Group>\n> =>\n Layer.succeed(\n GroupImpl<\"Unfinalized\">({ finalizationStatus: \"Unfinalized\" }),\n {\n [TypeId]: TypeId,\n finalizationStatus: \"Unfinalized\" as const,\n registeredFunctionNames: [],\n registeredMiddlewareKeys: [],\n },\n ) as Layer.Layer<\n GroupImpl<\"Unfinalized\">,\n never,\n FunctionImpl.FromGroupSpec<Group> | MiddlewareImpl.FromGroupSpec<Group>\n >;\n\nconst findGroupImpl = <S>(context: Context.Context<S>): Option.Option<Any> =>\n Array.findFirst(context.mapUnsafe.values(), isGroupImpl);\n\nexport class MissingRequiredMiddlewareError extends Data.TaggedError(\n \"MissingRequiredMiddlewareError\",\n)<{\n readonly missing: ReadonlyArray<RegistryItems.MissingMiddleware>;\n}> {\n override get message(): string {\n return `GroupImpl.finalize: ${this.missing.map(({ functionName, middlewareKey }) => `${functionName} requires middleware \"${middlewareKey}\"`).join(\"\\n\")}`;\n }\n}\n\ntype Finalizable = Layer.Layer<AnyUnfinalized> | Layer.Layer<AnyFinalized>;\n\n/**\n * Mark a `GroupImpl` layer as fully implemented. The parameter type defaults\n * `RIn = never`, so passing a layer that still requires any `FunctionImpl`\n * service produces a type error at the impl author's site. The codegen boundary\n * requires the resulting `\"Finalized\"` brand, so omitting this call is also\n * rejected downstream.\n *\n * As a side effect of finalization, the names of every `FunctionImpl` that\n * registered into this group's scope are snapshotted onto the produced service\n * value's `registeredFunctionNames` field, so consumers can verify impl\n * completeness against a `GroupSpec`'s expected functions without having to\n * inspect the `Registry` themselves. Pass `{ required }` to check every\n * registered function's middleware at layer build, including internal\n * functions. This form also accepts a finalized layer so generated registration\n * can enforce the backend declaration without changing authored impls. Pass\n * `groupPath` to qualify uncovered function names in the diagnostic.\n */\nexport function finalize(options: {\n readonly groupPath?: string;\n readonly required: ReadonlyArray<\n Pick<MiddlewareSpec.AnyMiddlewareSpec, \"key\">\n >;\n}): (group: Finalizable) => Layer.Layer<GroupImpl<\"Finalized\">>;\nexport function finalize(\n group: Layer.Layer<GroupImpl<\"Unfinalized\">>,\n): Layer.Layer<GroupImpl<\"Finalized\">>;\nexport function finalize(\n input:\n | Finalizable\n | {\n readonly groupPath?: string;\n readonly required: ReadonlyArray<\n Pick<MiddlewareSpec.AnyMiddlewareSpec, \"key\">\n >;\n },\n):\n | Layer.Layer<GroupImpl<\"Finalized\">>\n | ((group: Finalizable) => Layer.Layer<GroupImpl<\"Finalized\">>) {\n return \"required\" in input\n ? (group) => finalizeWith(group, input.required, input.groupPath)\n : finalizeWith(input, []);\n}\n\nconst finalizeWith = (\n group: Layer.Layer<never>,\n required: ReadonlyArray<Pick<MiddlewareSpec.AnyMiddlewareSpec, \"key\">>,\n groupPath = \"\",\n): Layer.Layer<GroupImpl<\"Finalized\">> =>\n Layer.flatMap(group, (context): Layer.Layer<GroupImpl<\"Finalized\">> =>\n findGroupImpl(context).pipe(\n Option.match({\n onNone: () =>\n Layer.effect(\n GroupImpl<\"Finalized\">({ finalizationStatus: \"Finalized\" }),\n Effect.die(\n new Error(\n \"GroupImpl.finalize: no GroupImpl service was found in the layer's context.\",\n ),\n ),\n ),\n onSome: () =>\n Layer.effect(\n GroupImpl<\"Finalized\">({ finalizationStatus: \"Finalized\" }),\n Effect.gen(function* () {\n const registry = yield* Registry.Registry;\n const items = yield* Ref.get(registry);\n const missing = RegistryItems.missingRequired(\n items,\n required,\n groupPath,\n );\n if (missing.length > 0) {\n return yield* Effect.die(\n new MissingRequiredMiddlewareError({ missing }),\n );\n }\n return {\n [TypeId]: TypeId,\n finalizationStatus: \"Finalized\" as const,\n registeredFunctionNames: RegistryItems.functionNames(items),\n registeredMiddlewareKeys: RegistryItems.middlewareKeys(items),\n };\n }),\n ),\n }),\n ),\n );\n\nexport type FromGroupSpec<Group extends GroupSpec.AnyWithProps> =\n | FunctionImpl.FromGroupSpec<Group>\n | MiddlewareImpl.FromGroupSpec<Group>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAa,SAAS;AA6BtB,MAAa,eAAe,MAC1B,UAAU,YAAY,GAAG,MAAM;AAKjC,MAAa,wBAAwB,MACnC,YAAY,CAAC,KAAK,EAAE,uBAAuB;AAE7C,MAAa,0BAA0B,MACrC,YAAY,CAAC,KAAK,EAAE,uBAAuB;;;;;;;;;;;;;AAc7C,MAAa,aAA6D,EACxE,yBAIA,QAAQ,QACN,6BAA6B,oBAC/B;;;;;;;;AASF,MAAa,QAIX,iBACA,WAUA,MAAM,QACJ,UAAyB,EAAE,oBAAoB,cAAc,CAAC,GAC9D;EACG,SAAS;CACV,oBAAoB;CACpB,yBAAyB,CAAC;CAC1B,0BAA0B,CAAC;AAC7B,CACF;AAMF,MAAM,iBAAoB,YACxB,MAAM,UAAU,QAAQ,UAAU,OAAO,GAAG,WAAW;AAEzD,IAAa,iCAAb,cAAoD,KAAK,YACvD,gCACF,CAAC,CAEE;CACD,IAAa,UAAkB;EAC7B,OAAO,uBAAuB,KAAK,QAAQ,KAAK,EAAE,cAAc,oBAAoB,GAAG,aAAa,wBAAwB,cAAc,EAAE,CAAC,CAAC,KAAK,IAAI;CACzJ;AACF;AA8BA,SAAgB,SACd,OAUgE;CAChE,OAAO,cAAc,SAChB,UAAU,aAAa,OAAO,MAAM,UAAU,MAAM,SAAS,IAC9D,aAAa,OAAO,CAAC,CAAC;AAC5B;AAEA,MAAM,gBACJ,OACA,UACA,YAAY,OAEZ,MAAM,QAAQ,QAAQ,YACpB,cAAc,OAAO,CAAC,CAAC,KACrB,OAAO,MAAM;CACX,cACE,MAAM,OACJ,UAAuB,EAAE,oBAAoB,YAAY,CAAC,GAC1D,OAAO,oBACL,IAAI,MACF,4EACF,CACF,CACF;CACF,cACE,MAAM,OACJ,UAAuB,EAAE,oBAAoB,YAAY,CAAC,GAC1D,OAAO,IAAI,aAAa;EACtB,MAAM,WAAW,OAAOA;EACxB,MAAM,QAAQ,OAAO,IAAI,IAAI,QAAQ;EACrC,MAAM,UAAUC,gBACd,OACA,UACA,SACF;EACA,IAAI,QAAQ,SAAS,GACnB,OAAO,OAAO,OAAO,IACnB,IAAI,+BAA+B,EAAE,QAAQ,CAAC,CAChD;EAEF,OAAO;IACJ,SAAS;GACV,oBAAoB;GACpB,yBAAyBC,cAA4B,KAAK;GAC1D,0BAA0BC,eAA6B,KAAK;EAC9D;CACF,CAAC,CACH;AACJ,CAAC,CACH,CACF"}
@@ -1,7 +1,8 @@
1
1
  import type * as Layer from "effect/Layer";
2
- import type * as GroupImpl from "./GroupImpl";
3
- import * as MiddlewareRegistryItem from "./MiddlewareRegistryItem";
2
+ import type * as GroupImpl from "./GroupImpl.js";
3
+ import * as MiddlewareRegistryItem from "./MiddlewareRegistryItem.js";
4
4
  export declare const make: (groupLayer: Layer.Layer<GroupImpl.GroupImpl<"Finalized">>) => {
5
+ observability: Layer.Layer<never, never, never> | undefined;
5
6
  functionRegistryItems: Record<string, unknown>;
6
7
  middlewareRegistryItems: Map<string, MiddlewareRegistryItem.MiddlewareRegistryItem>;
7
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"GroupRegistry.d.ts","sourceRoot":"","sources":["../src/GroupRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,sBAAsB,MAAM,0BAA0B,CAAC;AAEnE,eAAO,MAAM,IAAI,eACH,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;;;CAe1D,CAAC"}
1
+ {"version":3,"file":"GroupRegistry.d.ts","sourceRoot":"","sources":["../src/GroupRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAI3C,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AAEtE,eAAO,MAAM,IAAI,eACH,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;;;;CAkB1D,CAAC"}
@@ -1,14 +1,21 @@
1
1
  import { Registry } from "./Registry.js";
2
2
  import { isMiddlewareRegistryItem } from "./MiddlewareRegistryItem.js";
3
+ import { Observability } from "./RegisteredFunction.js";
3
4
  import * as Effect from "effect/Effect";
4
5
  import * as Ref from "effect/Ref";
5
6
  //#region src/GroupRegistry.ts
6
7
  const make = (groupLayer) => {
7
- const registryItems = Effect.gen(function* () {
8
+ const { registryItems, observability } = Effect.gen(function* () {
8
9
  const registry = yield* Registry;
9
- return yield* Ref.get(registry);
10
+ return {
11
+ registryItems: yield* Ref.get(registry),
12
+ observability: yield* Observability
13
+ };
10
14
  }).pipe(Effect.provide(groupLayer), Effect.provideService(Registry, Ref.makeUnsafe({})), Effect.runSync);
11
- return partitionRegistryItems(registryItems);
15
+ return {
16
+ ...partitionRegistryItems(registryItems),
17
+ observability
18
+ };
12
19
  };
13
20
  const partitionRegistryItems = (registryItems) => {
14
21
  const middlewareRegistryItems = /* @__PURE__ */ new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"GroupRegistry.js","names":["Registry.Registry","MiddlewareRegistryItem.isMiddlewareRegistryItem"],"sources":["../src/GroupRegistry.ts"],"sourcesContent":["import * as Effect from \"effect/Effect\";\nimport type * as Layer from \"effect/Layer\";\nimport * as Ref from \"effect/Ref\";\nimport * as Registry from \"./Registry\";\nimport type * as RegistryItems from \"./RegistryItems\";\nimport type * as GroupImpl from \"./GroupImpl\";\nimport * as MiddlewareRegistryItem from \"./MiddlewareRegistryItem\";\n\nexport const make = (\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n) => {\n const registryItems = Effect.gen(function* () {\n const registry = yield* Registry.Registry;\n return yield* Ref.get(registry);\n }).pipe(\n Effect.provide(groupLayer),\n Effect.provideService(\n Registry.Registry,\n Ref.makeUnsafe<RegistryItems.RegistryItems>({}),\n ),\n Effect.runSync,\n );\n\n return partitionRegistryItems(registryItems);\n};\n\nconst partitionRegistryItems = (registryItems: RegistryItems.RegistryItems) => {\n const middlewareRegistryItems = new Map<\n string,\n MiddlewareRegistryItem.MiddlewareRegistryItem\n >();\n const functionRegistryItems: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(registryItems)) {\n if (MiddlewareRegistryItem.isMiddlewareRegistryItem(value)) {\n middlewareRegistryItems.set(value.middlewareSpec.key, value);\n } else {\n functionRegistryItems[key] = value;\n }\n }\n return { functionRegistryItems, middlewareRegistryItems };\n};\n"],"mappings":";;;;;AAQA,MAAa,QACX,eACG;CACH,MAAM,gBAAgB,OAAO,IAAI,aAAa;EAC5C,MAAM,WAAW,OAAOA;EACxB,OAAO,OAAO,IAAI,IAAI,QAAQ;CAChC,CAAC,CAAC,CAAC,KACD,OAAO,QAAQ,UAAU,GACzB,OAAO,eACLA,UACA,IAAI,WAAwC,CAAC,CAAC,CAChD,GACA,OAAO,OACT;CAEA,OAAO,uBAAuB,aAAa;AAC7C;AAEA,MAAM,0BAA0B,kBAA+C;CAC7E,MAAM,0CAA0B,IAAI,IAGlC;CACF,MAAM,wBAAiD,CAAC;CACxD,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,aAAa,GACrD,IAAIC,yBAAgD,KAAK,GACvD,wBAAwB,IAAI,MAAM,eAAe,KAAK,KAAK;MAE3D,sBAAsB,OAAO;CAGjC,OAAO;EAAE;EAAuB;CAAwB;AAC1D"}
1
+ {"version":3,"file":"GroupRegistry.js","names":["Registry.Registry","RegisteredFunction.Observability","MiddlewareRegistryItem.isMiddlewareRegistryItem"],"sources":["../src/GroupRegistry.ts"],"sourcesContent":["import * as RegisteredFunction from \"./RegisteredFunction.js\";\nimport * as Effect from \"effect/Effect\";\nimport type * as Layer from \"effect/Layer\";\nimport * as Ref from \"effect/Ref\";\nimport * as Registry from \"./Registry.js\";\nimport type * as RegistryItems from \"./RegistryItems.js\";\nimport type * as GroupImpl from \"./GroupImpl.js\";\nimport * as MiddlewareRegistryItem from \"./MiddlewareRegistryItem.js\";\n\nexport const make = (\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n) => {\n const { registryItems, observability } = Effect.gen(function* () {\n const registry = yield* Registry.Registry;\n return {\n registryItems: yield* Ref.get(registry),\n observability: yield* RegisteredFunction.Observability,\n };\n }).pipe(\n Effect.provide(groupLayer),\n Effect.provideService(\n Registry.Registry,\n Ref.makeUnsafe<RegistryItems.RegistryItems>({}),\n ),\n Effect.runSync,\n );\n\n return { ...partitionRegistryItems(registryItems), observability };\n};\n\nconst partitionRegistryItems = (registryItems: RegistryItems.RegistryItems) => {\n const middlewareRegistryItems = new Map<\n string,\n MiddlewareRegistryItem.MiddlewareRegistryItem\n >();\n const functionRegistryItems: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(registryItems)) {\n if (MiddlewareRegistryItem.isMiddlewareRegistryItem(value)) {\n middlewareRegistryItems.set(value.middlewareSpec.key, value);\n } else {\n functionRegistryItems[key] = value;\n }\n }\n return { functionRegistryItems, middlewareRegistryItems };\n};\n"],"mappings":";;;;;;AASA,MAAa,QACX,eACG;CACH,MAAM,EAAE,eAAe,kBAAkB,OAAO,IAAI,aAAa;EAC/D,MAAM,WAAW,OAAOA;EACxB,OAAO;GACL,eAAe,OAAO,IAAI,IAAI,QAAQ;GACtC,eAAe,OAAOC;EACxB;CACF,CAAC,CAAC,CAAC,KACD,OAAO,QAAQ,UAAU,GACzB,OAAO,eACLD,UACA,IAAI,WAAwC,CAAC,CAAC,CAChD,GACA,OAAO,OACT;CAEA,OAAO;EAAE,GAAG,uBAAuB,aAAa;EAAG;CAAc;AACnE;AAEA,MAAM,0BAA0B,kBAA+C;CAC7E,MAAM,0CAA0B,IAAI,IAGlC;CACF,MAAM,wBAAiD,CAAC;CACxD,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,aAAa,GACrD,IAAIE,yBAAgD,KAAK,GACvD,wBAAwB,IAAI,MAAM,eAAe,KAAK,KAAK;MAE3D,sBAAsB,OAAO;CAGjC,OAAO;EAAE;EAAuB;CAAwB;AAC1D"}
package/dist/Handler.d.ts CHANGED
@@ -1,43 +1,47 @@
1
+ import type { ActionCall } from "@confect/core/ActionCall";
1
2
  import type { FunctionSpec, RuntimeAndFunctionType } from "@confect/core";
2
3
  import type * as FunctionProvenance from "@confect/core/FunctionProvenance";
3
4
  import type * as NodeServices from "@effect/platform-node/NodeServices";
4
5
  import type { Effect } from "effect";
5
- import type * as ActionCtx from "./ActionCtx";
6
- import type * as ActionRunner from "./ActionRunner";
7
- import type * as Auth from "./Auth";
8
- import type * as DatabaseReader from "./DatabaseReader";
9
- import type * as DatabaseSchema from "./DatabaseSchema";
10
- import type * as DatabaseWriter from "./DatabaseWriter";
11
- import type * as DataModel from "./DataModel";
12
- import type { ExecutionMetadata } from "./ExecutionMetadata";
13
- import type { RequestMetadata } from "./RequestMetadata";
14
- import type { TransactionMetadata } from "./TransactionMetadata";
15
- import type * as MutationCtx from "./MutationCtx";
16
- import type * as MutationRunner from "./MutationRunner";
17
- import type { MutationTransactionContext } from "./MutationTransactionContext";
18
- import type * as QueryCtx from "./QueryCtx";
19
- import type * as QueryRunner from "./QueryRunner";
20
- import type { QueryTransactionContext } from "./QueryTransactionContext";
21
- import type * as RegisteredFunction from "./RegisteredFunction";
22
- import type * as Scheduler from "./Scheduler";
23
- import type { Storage } from "./Storage";
24
- import type * as StorageActionWriter from "./StorageActionWriter";
25
- import type * as StorageReader from "./StorageReader";
26
- import type * as StorageWriter from "./StorageWriter";
27
- import type * as VectorSearch from "./VectorSearch";
6
+ import type * as ActionCtx from "./ActionCtx.js";
7
+ import type * as ActionRunner from "./ActionRunner.js";
8
+ import type * as Auth from "./Auth.js";
9
+ import type * as DatabaseReader from "./DatabaseReader.js";
10
+ import type * as DatabaseSchema from "./DatabaseSchema.js";
11
+ import type * as DatabaseWriter from "./DatabaseWriter.js";
12
+ import type * as DataModel from "./DataModel.js";
13
+ import type { ExecutionMetadata } from "./ExecutionMetadata.js";
14
+ import type { RequestMetadata } from "./RequestMetadata.js";
15
+ import type { TransactionMetadata } from "./TransactionMetadata.js";
16
+ import type * as MutationCtx from "./MutationCtx.js";
17
+ import type * as MutationRunner from "./MutationRunner.js";
18
+ import type { MutationTransactionContext } from "./MutationTransactionContext.js";
19
+ import type * as QueryCtx from "./QueryCtx.js";
20
+ import type * as QueryRunner from "./QueryRunner.js";
21
+ import type { QueryTransactionContext } from "./QueryTransactionContext.js";
22
+ import type * as RegisteredFunction from "./RegisteredFunction.js";
23
+ import type * as Scheduler from "./Scheduler.js";
24
+ import type { Storage } from "./Storage.js";
25
+ import type * as StorageActionWriter from "./StorageActionWriter.js";
26
+ import type * as StorageReader from "./StorageReader.js";
27
+ import type * as StorageWriter from "./StorageWriter.js";
28
+ import type * as VectorSearch from "./VectorSearch.js";
28
29
  export type Handler<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithProps, R = never> = FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<FunctionSpec_, FunctionProvenance.AnyConvex> ? ConvexProvenanceHandler<FunctionSpec_> : FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<FunctionSpec_, FunctionProvenance.AnyConfect> ? ConfectProvenanceHandler<DatabaseSchema_, FunctionSpec_, R> : never;
29
30
  type ConvexProvenanceHandler<FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConvex>> = RegisteredFunction.ConvexRegisteredFunction<FunctionSpec_>;
30
31
  type ConfectProvenanceHandler<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConfect>, R = never> = FunctionSpec_ extends FunctionSpec.WithFunctionType<FunctionSpec_, "query"> ? ConfectProvenanceQuery<DatabaseSchema_, FunctionSpec_, R> : FunctionSpec_ extends FunctionSpec.WithFunctionType<FunctionSpec_, "mutation"> ? ConfectProvenanceMutation<DatabaseSchema_, FunctionSpec_, R> : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<FunctionSpec_, RuntimeAndFunctionType.ConvexAction> ? ConvexRuntimeAction<DatabaseSchema_, FunctionSpec_, R> : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<FunctionSpec_, RuntimeAndFunctionType.NodeAction> ? NodeRuntimeAction<DatabaseSchema_, FunctionSpec_, R> : never;
31
32
  export type QueryServices<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = DatabaseReader.DatabaseReader<DatabaseSchema_> | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Auth.Auth) | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | ExecutionMetadata | TransactionMetadata | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Storage) | QueryRunner.QueryRunner | QueryTransactionContext | QueryCtx.QueryCtx<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>, DatabaseSchema.Scope<DatabaseSchema_>>;
32
- export type MutationServices<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = DatabaseReader.DatabaseReader<DatabaseSchema_> | DatabaseWriter.DatabaseWriter<DatabaseSchema_> | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Auth.Auth) | Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | ExecutionMetadata | TransactionMetadata | RequestMetadata | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Storage) | QueryRunner.QueryRunner | MutationRunner.MutationRunner | QueryTransactionContext | MutationTransactionContext | MutationCtx.MutationCtx<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>, DatabaseSchema.Scope<DatabaseSchema_>>;
33
+ export type MutationServices<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = DatabaseReader.DatabaseReader<DatabaseSchema_> | DatabaseWriter.DatabaseWriter<DatabaseSchema_> | Auth.MutationAuth | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Auth.Auth) | Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | ExecutionMetadata | TransactionMetadata | RequestMetadata | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Storage) | QueryRunner.QueryRunner | MutationRunner.MutationRunner | QueryTransactionContext | MutationTransactionContext | MutationCtx.MutationCtx<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>, DatabaseSchema.Scope<DatabaseSchema_>>;
33
34
  /**
34
35
  * Shared by both action runtimes.
35
36
  */
36
- export type ActionServices<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Auth.Auth) | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageActionWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | ExecutionMetadata | RequestMetadata | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Storage) | QueryRunner.QueryRunner | MutationRunner.MutationRunner | ActionRunner.ActionRunner | VectorSearch.VectorSearch<DataModel.FromSchema<DatabaseSchema_>> | ActionCtx.ActionCtx<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>, DatabaseSchema.Scope<DatabaseSchema_>>;
37
+ type RawActionServices<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Auth.Auth) | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | StorageActionWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>> | ExecutionMetadata | RequestMetadata | (DatabaseSchema_["target"]["kind"] extends "component" ? never : Storage) | QueryRunner.QueryRunner | MutationRunner.MutationRunner | ActionRunner.ActionRunner | VectorSearch.VectorSearch<DataModel.FromSchema<DatabaseSchema_>> | ActionCtx.ActionCtx<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>, DatabaseSchema.Scope<DatabaseSchema_>>;
38
+ export type ActionServices<S extends DatabaseSchema.AnyWithProps, R = never> = [
39
+ Extract<R, ActionCall>
40
+ ] extends [never] ? RawActionServices<S> : Exclude<RawActionServices<S>, Scheduler.ForScope<DatabaseSchema.Scope<S>> | QueryRunner.QueryRunner | MutationRunner.MutationRunner | ActionRunner.ActionRunner | ActionCtx.ActionCtx<DataModel.ToConvex<DataModel.FromSchema<S>>, DatabaseSchema.Scope<S>>>;
37
41
  export type ConfectProvenanceQuery<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyQuery>, R = never> = Base<FunctionSpec_, QueryServices<DatabaseSchema_> | R>;
38
42
  export type ConfectProvenanceMutation<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyMutation>, R = never> = Base<FunctionSpec_, MutationServices<DatabaseSchema_> | R>;
39
- export type ConvexRuntimeAction<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyAction>, R = never> = Base<FunctionSpec_, ActionServices<DatabaseSchema_> | R>;
40
- export type NodeRuntimeAction<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.NodeAction>, R = never> = Base<FunctionSpec_, ActionServices<DatabaseSchema_> | NodeServices.NodeServices | R>;
43
+ export type ConvexRuntimeAction<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyAction>, R = never> = Base<FunctionSpec_, ActionServices<DatabaseSchema_, R> | R>;
44
+ export type NodeRuntimeAction<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, FunctionSpec_ extends FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.NodeAction>, R = never> = Base<FunctionSpec_, ActionServices<DatabaseSchema_, R> | NodeServices.NodeServices | R>;
41
45
  type Base<FunctionSpec_ extends FunctionSpec.AnyWithProps, R> = (args: FunctionSpec.Args<FunctionSpec_>) => Effect.Effect<FunctionSpec.Returns<FunctionSpec_>, FunctionSpec.Error<FunctionSpec_>, R>;
42
46
  export type Any = AnyConfectProvenance | AnyConvexProvenance;
43
47
  export type AnyConfectProvenance = Base<FunctionSpec.AnyConfect, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../src/Handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../src/Handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,KAAK,kBAAkB,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,KAAK,YAAY,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,KAAK,WAAW,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,KAAK,WAAW,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,KAAK,kBAAkB,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,KAAK,mBAAmB,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,OAAO,CACjB,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,aAAa,SAAS,YAAY,CAAC,YAAY,EAC/C,CAAC,GAAG,KAAK,IAET,aAAa,SAAS,YAAY,CAAC,sBAAsB,CACvD,aAAa,EACb,kBAAkB,CAAC,SAAS,CAC7B,GACG,uBAAuB,CAAC,aAAa,CAAC,GACtC,aAAa,SAAS,YAAY,CAAC,sBAAsB,CACrD,aAAa,EACb,kBAAkB,CAAC,UAAU,CAC9B,GACD,wBAAwB,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,GAC3D,KAAK,CAAC;AAEd,KAAK,uBAAuB,CAC1B,aAAa,SACX,YAAY,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAC7E,kBAAkB,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC;AAE/D,KAAK,wBAAwB,CAC3B,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,aAAa,SACX,YAAY,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAChF,CAAC,GAAG,KAAK,IAET,aAAa,SAAS,YAAY,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,GACvE,sBAAsB,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,GACzD,aAAa,SAAS,YAAY,CAAC,gBAAgB,CAC/C,aAAa,EACb,UAAU,CACX,GACD,yBAAyB,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,GAC5D,aAAa,SAAS,YAAY,CAAC,0BAA0B,CACzD,aAAa,EACb,sBAAsB,CAAC,YAAY,CACpC,GACD,mBAAmB,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,GACtD,aAAa,SAAS,YAAY,CAAC,0BAA0B,CACzD,aAAa,EACb,sBAAsB,CAAC,UAAU,CAClC,GACD,iBAAiB,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC,CAAC,GACpD,KAAK,CAAC;AAElB,MAAM,MAAM,aAAa,CACvB,eAAe,SAAS,cAAc,CAAC,YAAY,IAEjD,cAAc,CAAC,cAAc,CAAC,eAAe,CAAC,GAC9C,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAC3E,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAC7D,iBAAiB,GACjB,mBAAmB,GACnB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC,GACzE,WAAW,CAAC,WAAW,GACvB,uBAAuB,GACvB,QAAQ,CAAC,QAAQ,CACf,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EACzD,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CACtC,CAAC;AAEN,MAAM,MAAM,gBAAgB,CAC1B,eAAe,SAAS,cAAc,CAAC,YAAY,IAEjD,cAAc,CAAC,cAAc,CAAC,eAAe,CAAC,GAC9C,cAAc,CAAC,cAAc,CAAC,eAAe,CAAC,GAC9C,IAAI,CAAC,YAAY,GACjB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAC3E,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GACzD,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAC7D,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAC7D,iBAAiB,GACjB,mBAAmB,GACnB,eAAe,GACf,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC,GACzE,WAAW,CAAC,WAAW,GACvB,cAAc,CAAC,cAAc,GAC7B,uBAAuB,GACvB,0BAA0B,GAC1B,WAAW,CAAC,WAAW,CACrB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EACzD,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CACtC,CAAC;AAEN;;GAEG;AACH,KAAK,iBAAiB,CAAC,eAAe,SAAS,cAAc,CAAC,YAAY,IACtE,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GACzD,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAC3E,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAC7D,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAC7D,mBAAmB,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GACnE,iBAAiB,GACjB,eAAe,GACf,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,OAAO,CAAC,GACzE,WAAW,CAAC,WAAW,GACvB,cAAc,CAAC,cAAc,GAC7B,YAAY,CAAC,YAAY,GACzB,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,GAChE,SAAS,CAAC,SAAS,CACjB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EACzD,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CACtC,CAAC;AAEN,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,KAAK,IAAI;IAC7E,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC;CACvB,SAAS,CAAC,KAAK,CAAC,GACb,iBAAiB,CAAC,CAAC,CAAC,GACpB,OAAO,CACL,iBAAiB,CAAC,CAAC,CAAC,EAClB,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAC3C,WAAW,CAAC,WAAW,GACvB,cAAc,CAAC,cAAc,GAC7B,YAAY,CAAC,YAAY,GACzB,SAAS,CAAC,SAAS,CACjB,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAC3C,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CACxB,CACJ,CAAC;AAEN,MAAM,MAAM,sBAAsB,CAChC,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,aAAa,SACX,YAAY,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,QAAQ,CAAC,EAC5E,CAAC,GAAG,KAAK,IACP,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAE5D,MAAM,MAAM,yBAAyB,CACnC,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,aAAa,SACX,YAAY,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,WAAW,CAAC,EAC/E,CAAC,GAAG,KAAK,IACP,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,MAAM,mBAAmB,CAC7B,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,aAAa,SACX,YAAY,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAC7E,CAAC,GAAG,KAAK,IACP,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAEhE,MAAM,MAAM,iBAAiB,CAC3B,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,aAAa,SACX,YAAY,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAC9E,CAAC,GAAG,KAAK,IACP,IAAI,CACN,aAAa,EACb,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,YAAY,GAAG,CAAC,CACnE,CAAC;AAEF,KAAK,IAAI,CAAC,aAAa,SAAS,YAAY,CAAC,YAAY,EAAE,CAAC,IAAI,CAC9D,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,KACnC,MAAM,CAAC,MAAM,CAChB,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,EACnC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,EACjC,CAAC,CACF,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAE7D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAEtE,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,GAAG,CAAC;AAEzD,MAAM,MAAM,QAAQ,CAClB,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,aAAa,SAAS,YAAY,CAAC,YAAY,EAC/C,YAAY,SAAS,MAAM,EAC3B,CAAC,GAAG,KAAK,IACP,OAAO,CACT,eAAe,EACf,YAAY,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC,EAClD,CAAC,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Handler.js","names":[],"sources":["../src/Handler.ts"],"sourcesContent":["import type { FunctionSpec, RuntimeAndFunctionType } from \"@confect/core\";\nimport type * as FunctionProvenance from \"@confect/core/FunctionProvenance\";\nimport type * as NodeServices from \"@effect/platform-node/NodeServices\";\nimport type { Effect } from \"effect\";\nimport type * as ActionCtx from \"./ActionCtx\";\nimport type * as ActionRunner from \"./ActionRunner\";\nimport type * as Auth from \"./Auth\";\nimport type * as DatabaseReader from \"./DatabaseReader\";\nimport type * as DatabaseSchema from \"./DatabaseSchema\";\nimport type * as DatabaseWriter from \"./DatabaseWriter\";\nimport type * as DataModel from \"./DataModel\";\nimport type { ExecutionMetadata } from \"./ExecutionMetadata\";\nimport type { RequestMetadata } from \"./RequestMetadata\";\nimport type { TransactionMetadata } from \"./TransactionMetadata\";\nimport type * as MutationCtx from \"./MutationCtx\";\nimport type * as MutationRunner from \"./MutationRunner\";\nimport type { MutationTransactionContext } from \"./MutationTransactionContext\";\nimport type * as QueryCtx from \"./QueryCtx\";\nimport type * as QueryRunner from \"./QueryRunner\";\nimport type { QueryTransactionContext } from \"./QueryTransactionContext\";\nimport type * as RegisteredFunction from \"./RegisteredFunction\";\nimport type * as Scheduler from \"./Scheduler\";\nimport type { Storage } from \"./Storage\";\nimport type * as StorageActionWriter from \"./StorageActionWriter\";\nimport type * as StorageReader from \"./StorageReader\";\nimport type * as StorageWriter from \"./StorageWriter\";\nimport type * as VectorSearch from \"./VectorSearch\";\n\nexport type Handler<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n R = never,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConvex\n >\n ? ConvexProvenanceHandler<FunctionSpec_>\n : FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConfect\n >\n ? ConfectProvenanceHandler<DatabaseSchema_, FunctionSpec_, R>\n : never;\n\ntype ConvexProvenanceHandler<\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConvex>,\n> = RegisteredFunction.ConvexRegisteredFunction<FunctionSpec_>;\n\ntype ConfectProvenanceHandler<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConfect>,\n R = never,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionType<FunctionSpec_, \"query\">\n ? ConfectProvenanceQuery<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithFunctionType<\n FunctionSpec_,\n \"mutation\"\n >\n ? ConfectProvenanceMutation<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<\n FunctionSpec_,\n RuntimeAndFunctionType.ConvexAction\n >\n ? ConvexRuntimeAction<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<\n FunctionSpec_,\n RuntimeAndFunctionType.NodeAction\n >\n ? NodeRuntimeAction<DatabaseSchema_, FunctionSpec_, R>\n : never;\n\nexport type QueryServices<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> =\n | DatabaseReader.DatabaseReader<DatabaseSchema_>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | TransactionMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | QueryTransactionContext\n | QueryCtx.QueryCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\nexport type MutationServices<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> =\n | DatabaseReader.DatabaseReader<DatabaseSchema_>\n | DatabaseWriter.DatabaseWriter<DatabaseSchema_>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | TransactionMetadata\n | RequestMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | MutationRunner.MutationRunner\n | QueryTransactionContext\n | MutationTransactionContext\n | MutationCtx.MutationCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\n/**\n * Shared by both action runtimes.\n */\nexport type ActionServices<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> =\n | Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageActionWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | RequestMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | MutationRunner.MutationRunner\n | ActionRunner.ActionRunner\n | VectorSearch.VectorSearch<DataModel.FromSchema<DatabaseSchema_>>\n | ActionCtx.ActionCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\nexport type ConfectProvenanceQuery<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyQuery>,\n R = never,\n> = Base<FunctionSpec_, QueryServices<DatabaseSchema_> | R>;\n\nexport type ConfectProvenanceMutation<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyMutation>,\n R = never,\n> = Base<FunctionSpec_, MutationServices<DatabaseSchema_> | R>;\n\nexport type ConvexRuntimeAction<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyAction>,\n R = never,\n> = Base<FunctionSpec_, ActionServices<DatabaseSchema_> | R>;\n\nexport type NodeRuntimeAction<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.NodeAction>,\n R = never,\n> = Base<\n FunctionSpec_,\n ActionServices<DatabaseSchema_> | NodeServices.NodeServices | R\n>;\n\ntype Base<FunctionSpec_ extends FunctionSpec.AnyWithProps, R> = (\n args: FunctionSpec.Args<FunctionSpec_>,\n) => Effect.Effect<\n FunctionSpec.Returns<FunctionSpec_>,\n FunctionSpec.Error<FunctionSpec_>,\n R\n>;\n\nexport type Any = AnyConfectProvenance | AnyConvexProvenance;\n\nexport type AnyConfectProvenance = Base<FunctionSpec.AnyConfect, any>;\n\nexport type AnyConvexProvenance = RegisteredFunction.Any;\n\nexport type WithName<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n FunctionName extends string,\n R = never,\n> = Handler<\n DatabaseSchema_,\n FunctionSpec.WithName<FunctionSpec_, FunctionName>,\n R\n>;\n"],"mappings":""}
1
+ {"version":3,"file":"Handler.js","names":[],"sources":["../src/Handler.ts"],"sourcesContent":["import type { ActionCall } from \"@confect/core/ActionCall\";\nimport type { FunctionSpec, RuntimeAndFunctionType } from \"@confect/core\";\nimport type * as FunctionProvenance from \"@confect/core/FunctionProvenance\";\nimport type * as NodeServices from \"@effect/platform-node/NodeServices\";\nimport type { Effect } from \"effect\";\nimport type * as ActionCtx from \"./ActionCtx.js\";\nimport type * as ActionRunner from \"./ActionRunner.js\";\nimport type * as Auth from \"./Auth.js\";\nimport type * as DatabaseReader from \"./DatabaseReader.js\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as DatabaseWriter from \"./DatabaseWriter.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport type { ExecutionMetadata } from \"./ExecutionMetadata.js\";\nimport type { RequestMetadata } from \"./RequestMetadata.js\";\nimport type { TransactionMetadata } from \"./TransactionMetadata.js\";\nimport type * as MutationCtx from \"./MutationCtx.js\";\nimport type * as MutationRunner from \"./MutationRunner.js\";\nimport type { MutationTransactionContext } from \"./MutationTransactionContext.js\";\nimport type * as QueryCtx from \"./QueryCtx.js\";\nimport type * as QueryRunner from \"./QueryRunner.js\";\nimport type { QueryTransactionContext } from \"./QueryTransactionContext.js\";\nimport type * as RegisteredFunction from \"./RegisteredFunction.js\";\nimport type * as Scheduler from \"./Scheduler.js\";\nimport type { Storage } from \"./Storage.js\";\nimport type * as StorageActionWriter from \"./StorageActionWriter.js\";\nimport type * as StorageReader from \"./StorageReader.js\";\nimport type * as StorageWriter from \"./StorageWriter.js\";\nimport type * as VectorSearch from \"./VectorSearch.js\";\n\nexport type Handler<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n R = never,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConvex\n >\n ? ConvexProvenanceHandler<FunctionSpec_>\n : FunctionSpec_ extends FunctionSpec.WithFunctionProvenance<\n FunctionSpec_,\n FunctionProvenance.AnyConfect\n >\n ? ConfectProvenanceHandler<DatabaseSchema_, FunctionSpec_, R>\n : never;\n\ntype ConvexProvenanceHandler<\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConvex>,\n> = RegisteredFunction.ConvexRegisteredFunction<FunctionSpec_>;\n\ntype ConfectProvenanceHandler<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionProvenance<FunctionProvenance.AnyConfect>,\n R = never,\n> =\n FunctionSpec_ extends FunctionSpec.WithFunctionType<FunctionSpec_, \"query\">\n ? ConfectProvenanceQuery<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithFunctionType<\n FunctionSpec_,\n \"mutation\"\n >\n ? ConfectProvenanceMutation<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<\n FunctionSpec_,\n RuntimeAndFunctionType.ConvexAction\n >\n ? ConvexRuntimeAction<DatabaseSchema_, FunctionSpec_, R>\n : FunctionSpec_ extends FunctionSpec.WithRuntimeAndFunctionType<\n FunctionSpec_,\n RuntimeAndFunctionType.NodeAction\n >\n ? NodeRuntimeAction<DatabaseSchema_, FunctionSpec_, R>\n : never;\n\nexport type QueryServices<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> =\n | DatabaseReader.DatabaseReader<DatabaseSchema_>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | TransactionMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | QueryTransactionContext\n | QueryCtx.QueryCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\nexport type MutationServices<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> =\n | DatabaseReader.DatabaseReader<DatabaseSchema_>\n | DatabaseWriter.DatabaseWriter<DatabaseSchema_>\n | Auth.MutationAuth\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | TransactionMetadata\n | RequestMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | MutationRunner.MutationRunner\n | QueryTransactionContext\n | MutationTransactionContext\n | MutationCtx.MutationCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\n/**\n * Shared by both action runtimes.\n */\ntype RawActionServices<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> =\n | Scheduler.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Auth.Auth)\n | StorageReader.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | StorageActionWriter.ForScope<DatabaseSchema.Scope<DatabaseSchema_>>\n | ExecutionMetadata\n | RequestMetadata\n | (DatabaseSchema_[\"target\"][\"kind\"] extends \"component\" ? never : Storage)\n | QueryRunner.QueryRunner\n | MutationRunner.MutationRunner\n | ActionRunner.ActionRunner\n | VectorSearch.VectorSearch<DataModel.FromSchema<DatabaseSchema_>>\n | ActionCtx.ActionCtx<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>,\n DatabaseSchema.Scope<DatabaseSchema_>\n >;\n\nexport type ActionServices<S extends DatabaseSchema.AnyWithProps, R = never> = [\n Extract<R, ActionCall>,\n] extends [never]\n ? RawActionServices<S>\n : Exclude<\n RawActionServices<S>,\n | Scheduler.ForScope<DatabaseSchema.Scope<S>>\n | QueryRunner.QueryRunner\n | MutationRunner.MutationRunner\n | ActionRunner.ActionRunner\n | ActionCtx.ActionCtx<\n DataModel.ToConvex<DataModel.FromSchema<S>>,\n DatabaseSchema.Scope<S>\n >\n >;\n\nexport type ConfectProvenanceQuery<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyQuery>,\n R = never,\n> = Base<FunctionSpec_, QueryServices<DatabaseSchema_> | R>;\n\nexport type ConfectProvenanceMutation<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyMutation>,\n R = never,\n> = Base<FunctionSpec_, MutationServices<DatabaseSchema_> | R>;\n\nexport type ConvexRuntimeAction<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.AnyAction>,\n R = never,\n> = Base<FunctionSpec_, ActionServices<DatabaseSchema_, R> | R>;\n\nexport type NodeRuntimeAction<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends\n FunctionSpec.AnyWithPropsWithFunctionType<RuntimeAndFunctionType.NodeAction>,\n R = never,\n> = Base<\n FunctionSpec_,\n ActionServices<DatabaseSchema_, R> | NodeServices.NodeServices | R\n>;\n\ntype Base<FunctionSpec_ extends FunctionSpec.AnyWithProps, R> = (\n args: FunctionSpec.Args<FunctionSpec_>,\n) => Effect.Effect<\n FunctionSpec.Returns<FunctionSpec_>,\n FunctionSpec.Error<FunctionSpec_>,\n R\n>;\n\nexport type Any = AnyConfectProvenance | AnyConvexProvenance;\n\nexport type AnyConfectProvenance = Base<FunctionSpec.AnyConfect, any>;\n\nexport type AnyConvexProvenance = RegisteredFunction.Any;\n\nexport type WithName<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n FunctionSpec_ extends FunctionSpec.AnyWithProps,\n FunctionName extends string,\n R = never,\n> = Handler<\n DatabaseSchema_,\n FunctionSpec.WithName<FunctionSpec_, FunctionName>,\n R\n>;\n"],"mappings":""}
@@ -7,19 +7,19 @@ import type * as HttpApiGroup from "effect/http-api/HttpApiGroup";
7
7
  import type * as Etag from "effect/http/Etag";
8
8
  import type * as HttpPlatform from "effect/http/HttpPlatform";
9
9
  import * as HttpRouter from "effect/http/HttpRouter";
10
- import type * as ActionRunner from "./ActionRunner";
11
- import type * as Auth from "./Auth";
12
- import type { ExecutionMetadata } from "./ExecutionMetadata";
13
- import type { RequestMetadata } from "./RequestMetadata";
14
- import type * as DatabaseSchema from "./DatabaseSchema";
15
- import type * as Handler from "./Handler";
16
- import type * as MutationRunner from "./MutationRunner";
17
- import type * as QueryRunner from "./QueryRunner";
18
- import type * as Scheduler from "./Scheduler";
19
- import type { Storage } from "./Storage";
20
- import type { StorageActionWriter } from "./StorageActionWriter";
21
- import type { StorageReader } from "./StorageReader";
22
- import type { StorageWriter } from "./StorageWriter";
10
+ import type * as ActionRunner from "./ActionRunner.js";
11
+ import type * as Auth from "./Auth.js";
12
+ import type { ExecutionMetadata } from "./ExecutionMetadata.js";
13
+ import type { RequestMetadata } from "./RequestMetadata.js";
14
+ import type * as DatabaseSchema from "./DatabaseSchema.js";
15
+ import type * as Handler from "./Handler.js";
16
+ import type * as MutationRunner from "./MutationRunner.js";
17
+ import type * as QueryRunner from "./QueryRunner.js";
18
+ import type * as Scheduler from "./Scheduler.js";
19
+ import type { Storage } from "./Storage.js";
20
+ import type { StorageActionWriter } from "./StorageActionWriter.js";
21
+ import type { StorageReader } from "./StorageReader.js";
22
+ import type { StorageWriter } from "./StorageWriter.js";
23
23
  /**
24
24
  * The Confect services available to HTTP route handlers and middleware,
25
25
  * supplied per request from the Convex action context.
@@ -67,6 +67,7 @@ export type Routes<Services_ = Services> = Layer.Layer<never, never, HttpRouter.
67
67
  * precedence.
68
68
  */
69
69
  export declare const make: <Id extends string, Groups extends HttpApiGroup.Constraint>(routes: Routes, options?: {
70
+ readonly observability?: Layer.Layer<never> | undefined;
70
71
  readonly api?: HttpApi.HttpApi<Id, Groups> | undefined;
71
72
  }) => ConvexHttpRouter;
72
73
  /**
@@ -75,6 +76,7 @@ export declare const make: <Id extends string, Groups extends HttpApiGroup.Const
75
76
  * Supply `{ api }` as in {@link make}; labels stay component-relative.
76
77
  */
77
78
  export declare const forSchema: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(schema: DatabaseSchema_) => <Id extends string, Groups extends HttpApiGroup.Constraint>(routes: Routes<Handler.ActionServices<DatabaseSchema_>>, options?: {
79
+ readonly observability?: Layer.Layer<never> | undefined;
78
80
  readonly api?: HttpApi.HttpApi<Id, Groups> | undefined;
79
81
  }) => ConvexHttpRouter;
80
82
  //# sourceMappingURL=HttpRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpRouter.d.ts","sourceRoot":"","sources":["../src/HttpRouter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,IAAI,gBAAgB,EAOpC,MAAM,eAAe,CAAC;AAMvB,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AAIzC,OAAO,KAAK,OAAO,MAAM,yBAAyB,CAAC;AACnD,OAAO,KAAK,KAAK,YAAY,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,KAAK,IAAI,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,KAAK,YAAY,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAErD,OAAO,KAAK,KAAK,YAAY,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,KAAK,IAAI,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AAExD,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAC;AAG1C,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,KAAK,WAAW,MAAM,eAAe,CAAC;AAElD,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAChB,WAAW,CAAC,WAAW,GACvB,cAAc,CAAC,cAAc,GAC7B,YAAY,CAAC,YAAY,GACzB,SAAS,CAAC,SAAS,GACnB,IAAI,CAAC,IAAI,GACT,iBAAiB,GACjB,eAAe,GACf,OAAO,GACP,aAAa,GACb,aAAa,GACb,mBAAmB,CAAC;AAExB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,MAAM,CAAC,SAAS,GAAG,QAAQ,IAAI,KAAK,CAAC,KAAK,CACpD,KAAK,EACL,KAAK,EACH,UAAU,CAAC,UAAU,GACrB,IAAI,CAAC,SAAS,GACd,UAAU,CAAC,UAAU,GACrB,YAAY,CAAC,YAAY,GACzB,IAAI,CAAC,IAAI,GACT,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,GACzC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAC/C,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,GAChC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CACzC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI,GAAI,EAAE,SAAS,MAAM,EAAE,MAAM,SAAS,YAAY,CAAC,UAAU,UACpE,MAAM,YACJ;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;CAAE,KACnE,gBACsE,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,SAAS,GACnB,eAAe,SAAS,cAAc,CAAC,YAAY,UAC1C,eAAe,MAExB,EAAE,SAAS,MAAM,EAAE,MAAM,SAAS,YAAY,CAAC,UAAU,UAChD,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,YAC7C;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,SAAS,CAAA;CAAE,KACnE,gBAgBA,CAAC"}
1
+ {"version":3,"file":"HttpRouter.d.ts","sourceRoot":"","sources":["../src/HttpRouter.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,22 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
2
  import { layer } from "./ConvexConfigProvider.js";
3
3
  import { layer as layer$1 } from "./ConvexLogger.js";
4
+ import { memoized } from "./internal/observability.js";
4
5
  import { actionLayer, baseActionLayer } from "./RegisteredFunction.js";
5
6
  import * as Context from "effect/Context";
6
- import * as Layer from "effect/Layer";
7
7
  import * as Effect from "effect/Effect";
8
+ import * as Layer from "effect/Layer";
9
+ import * as Array from "effect/Array";
8
10
  import { ROUTABLE_HTTP_METHODS, httpActionGeneric, httpRouter } from "convex/server";
9
11
  import * as Schema from "effect/Schema";
10
12
  import * as Match from "effect/Match";
11
- import * as Array from "effect/Array";
12
13
  import * as SchemaAST from "effect/SchemaAST";
13
14
  import * as Console from "effect/Console";
14
15
  import * as Config from "effect/Config";
15
16
  import * as FindMyWay from "effect/http/FindMyWay";
16
17
  import * as HttpApi from "effect/http-api/HttpApi";
17
18
  import * as HttpRouter from "effect/http/HttpRouter";
19
+ import * as HttpMiddleware from "effect/http/HttpMiddleware";
18
20
  import * as HttpServer from "effect/http/HttpServer";
19
21
  //#region src/HttpRouter.ts
20
22
  var HttpRouter_exports = /* @__PURE__ */ __exportAll({
@@ -40,22 +42,29 @@ var HttpRouter_exports = /* @__PURE__ */ __exportAll({
40
42
  * exact paths first and longer path prefixes before the catch-all, so they take
41
43
  * precedence.
42
44
  */
43
- const make = (routes, options) => makeWithLayer(routes, baseActionLayer, options?.api);
45
+ const make = (routes, options) => makeWithLayer(routes, baseActionLayer, options?.api, options?.observability);
44
46
  /**
45
47
  * Derive HTTP capabilities and ID scopes from the generated database schema.
46
48
  * Component routes are relative to their installation's HTTP mount prefix.
47
49
  * Supply `{ api }` as in {@link make}; labels stay component-relative.
48
50
  */
49
- const forSchema = (schema) => (routes, options) => makeWithLayer(Match.value(schema.target.kind).pipe(Match.when("app", () => routes), Match.when("component", () => routes.pipe(Layer.provide(componentRouter))), Match.exhaustive), (ctx) => actionLayer(schema, ctx), options?.api);
51
+ const forSchema = (schema) => (routes, options) => makeWithLayer(Match.value(schema.target.kind).pipe(Match.when("app", () => routes), Match.when("component", () => routes.pipe(Layer.provide(componentRouter))), Match.exhaustive), (ctx) => actionLayer(schema, ctx), options?.api, options?.observability, schema.target.kind === "component");
50
52
  const componentRouter = Layer.effect(HttpRouter.HttpRouter, Effect.gen(function* () {
51
53
  const router = yield* HttpRouter.HttpRouter;
52
54
  const siteUrl = yield* Config.schema(Schema.URLFromString, "CONVEX_SITE_URL");
53
55
  return router.prefixed(siteUrl.pathname);
54
56
  }).pipe(Effect.orDie));
55
- const makeWithLayer = (routes, layer$2, api) => {
57
+ const makeWithLayer = (routes, layer$2, api, observability, siteRelative = false) => {
56
58
  applyMonkeyPatches();
57
- const AppLayer = routes.pipe(Layer.provideMerge(layer$1), Layer.provideMerge(layer), Layer.provide(HttpServer.layerServices));
58
- const { handler } = HttpRouter.toWebHandler(AppLayer, { disableLogger: true });
59
+ const spanName = Layer.effect(HttpMiddleware.SpanNameGenerator, Effect.gen(function* () {
60
+ const prefix = siteRelative ? (yield* Config.schema(Schema.URLFromString, "CONVEX_SITE_URL")).pathname.replace(/\/$/, "") : "";
61
+ return (request) => convexHttpRouter.lookup(new URL(request.originalUrl).pathname.slice(prefix.length) || "/", request.method)?.[2] ?? "/*";
62
+ }).pipe(Effect.orDie));
63
+ const AppLayer = routes.pipe(Layer.provideMerge(observability === void 0 ? layer$1 : Layer.merge(memoized(observability), spanName)), Layer.provideMerge(layer), Layer.provide(HttpServer.layerServices));
64
+ const { handler } = HttpRouter.toWebHandler(AppLayer, {
65
+ disableLogger: true,
66
+ ...observability === void 0 ? {} : { middleware: (effect) => Effect.andThen(Effect.annotateCurrentSpan("kind", "httpAction"), effect) }
67
+ });
59
68
  const httpAction = httpActionGeneric((ctx, request) => {
60
69
  const services = Effect.runSync(Effect.scoped(Layer.build(layer$2(ctx))));
61
70
  return handler(request, Context.add(services, Console.Console, globalThis.console));