@gaganref/confect-server 10.3.1-fork.1 → 10.3.1-fork.11

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 (210) hide show
  1. package/dist/ActionCtx.d.ts +1 -1
  2. package/dist/ActionCtx.d.ts.map +1 -1
  3. package/dist/ActionCtx.js.map +1 -1
  4. package/dist/AiGatewayDecisionClient.d.ts +2 -2
  5. package/dist/AiGatewayDecisionClient.d.ts.map +1 -1
  6. package/dist/AiGatewayDecisionClient.js.map +1 -1
  7. package/dist/AiGatewayLanguageClient.d.ts +2 -2
  8. package/dist/AiGatewayLanguageClient.d.ts.map +1 -1
  9. package/dist/AiGatewayLanguageClient.js.map +1 -1
  10. package/dist/Auth.d.ts +1 -1
  11. package/dist/Auth.d.ts.map +1 -1
  12. package/dist/Auth.js.map +1 -1
  13. package/dist/ComponentCtx.d.ts +1 -1
  14. package/dist/ComponentCtx.d.ts.map +1 -1
  15. package/dist/ConvexFunctionDefinitions.d.ts +4 -4
  16. package/dist/ConvexFunctionDefinitions.d.ts.map +1 -1
  17. package/dist/ConvexFunctionDefinitions.js.map +1 -1
  18. package/dist/CronJobs.d.ts +1 -1
  19. package/dist/CronJobs.d.ts.map +1 -1
  20. package/dist/CronJobs.js.map +1 -1
  21. package/dist/DataModel.d.ts +3 -3
  22. package/dist/DataModel.d.ts.map +1 -1
  23. package/dist/DataModel.js.map +1 -1
  24. package/dist/DatabaseReader.d.ts +4 -4
  25. package/dist/DatabaseReader.d.ts.map +1 -1
  26. package/dist/DatabaseReader.js.map +1 -1
  27. package/dist/DatabaseSchema.d.ts +1 -1
  28. package/dist/DatabaseSchema.d.ts.map +1 -1
  29. package/dist/DatabaseSchema.js.map +1 -1
  30. package/dist/DatabaseWriter.d.ts +5 -5
  31. package/dist/DatabaseWriter.d.ts.map +1 -1
  32. package/dist/DatabaseWriter.js.map +1 -1
  33. package/dist/Document.d.ts +4 -4
  34. package/dist/Document.d.ts.map +1 -1
  35. package/dist/Document.js.map +1 -1
  36. package/dist/FunctionImpl.d.ts +2 -2
  37. package/dist/FunctionImpl.d.ts.map +1 -1
  38. package/dist/FunctionImpl.js.map +1 -1
  39. package/dist/FunctionRegistryItem.d.ts +1 -1
  40. package/dist/FunctionRegistryItem.d.ts.map +1 -1
  41. package/dist/FunctionRegistryItem.js.map +1 -1
  42. package/dist/GroupImpl.d.ts +3 -3
  43. package/dist/GroupImpl.d.ts.map +1 -1
  44. package/dist/GroupImpl.js.map +1 -1
  45. package/dist/GroupRegistry.d.ts +2 -2
  46. package/dist/GroupRegistry.d.ts.map +1 -1
  47. package/dist/GroupRegistry.js.map +1 -1
  48. package/dist/Handler.d.ts +23 -23
  49. package/dist/Handler.d.ts.map +1 -1
  50. package/dist/Handler.js.map +1 -1
  51. package/dist/HttpRouter.d.ts +13 -13
  52. package/dist/HttpRouter.d.ts.map +1 -1
  53. package/dist/HttpRouter.js.map +1 -1
  54. package/dist/MiddlewareImpl.d.ts +14 -14
  55. package/dist/MiddlewareImpl.d.ts.map +1 -1
  56. package/dist/MiddlewareImpl.js.map +1 -1
  57. package/dist/MutationCtx.d.ts +1 -1
  58. package/dist/MutationCtx.d.ts.map +1 -1
  59. package/dist/MutationCtx.js.map +1 -1
  60. package/dist/MutationRunner.d.ts +1 -1
  61. package/dist/MutationRunner.d.ts.map +1 -1
  62. package/dist/MutationRunner.js.map +1 -1
  63. package/dist/MutationTransactionContext.d.ts +2 -2
  64. package/dist/MutationTransactionContext.d.ts.map +1 -1
  65. package/dist/MutationTransactionContext.js.map +1 -1
  66. package/dist/OfficialComponent.d.ts +50 -0
  67. package/dist/OfficialComponent.d.ts.map +1 -0
  68. package/dist/OfficialComponent.js +70 -0
  69. package/dist/OfficialComponent.js.map +1 -0
  70. package/dist/OrderedQuery.d.ts +4 -4
  71. package/dist/OrderedQuery.d.ts.map +1 -1
  72. package/dist/OrderedQuery.js.map +1 -1
  73. package/dist/QueryCtx.d.ts +1 -1
  74. package/dist/QueryCtx.d.ts.map +1 -1
  75. package/dist/QueryCtx.js.map +1 -1
  76. package/dist/QueryInitializer.d.ts +10 -10
  77. package/dist/QueryInitializer.d.ts.map +1 -1
  78. package/dist/QueryInitializer.js.map +1 -1
  79. package/dist/QueryRunner.d.ts +2 -2
  80. package/dist/QueryRunner.d.ts.map +1 -1
  81. package/dist/QueryRunner.js.map +1 -1
  82. package/dist/QueryStream.d.ts +11 -11
  83. package/dist/QueryStream.d.ts.map +1 -1
  84. package/dist/QueryStream.js.map +1 -1
  85. package/dist/QueryStreamCursor.d.ts +2 -2
  86. package/dist/QueryStreamCursor.d.ts.map +1 -1
  87. package/dist/QueryStreamCursor.js.map +1 -1
  88. package/dist/QueryStreamIndexPrefix.d.ts +2 -2
  89. package/dist/QueryStreamIndexPrefix.d.ts.map +1 -1
  90. package/dist/QueryStreamIndexPrefix.js.map +1 -1
  91. package/dist/QueryStreamIndexRange.d.ts +4 -4
  92. package/dist/QueryStreamIndexRange.d.ts.map +1 -1
  93. package/dist/QueryStreamIndexRange.js.map +1 -1
  94. package/dist/QueryStreamKey.d.ts +2 -2
  95. package/dist/QueryStreamKey.d.ts.map +1 -1
  96. package/dist/QueryStreamKey.js.map +1 -1
  97. package/dist/QueryStreamKeyBounds.d.ts +3 -3
  98. package/dist/QueryStreamKeyBounds.d.ts.map +1 -1
  99. package/dist/QueryStreamKeyBounds.js.map +1 -1
  100. package/dist/QueryStreamKeyLayout.d.ts +1 -1
  101. package/dist/QueryStreamKeyLayout.d.ts.map +1 -1
  102. package/dist/QueryStreamKeyLayout.js.map +1 -1
  103. package/dist/QueryStreamKeyValues.d.ts +1 -1
  104. package/dist/QueryStreamKeyValues.d.ts.map +1 -1
  105. package/dist/QueryStreamKeyValues.js.map +1 -1
  106. package/dist/QueryStreamPagination.d.ts +1 -1
  107. package/dist/QueryStreamPagination.d.ts.map +1 -1
  108. package/dist/QueryStreamPagination.js.map +1 -1
  109. package/dist/RegisteredConvexFunction.d.ts +20 -20
  110. package/dist/RegisteredConvexFunction.d.ts.map +1 -1
  111. package/dist/RegisteredConvexFunction.js.map +1 -1
  112. package/dist/RegisteredFunction.d.ts +26 -26
  113. package/dist/RegisteredFunction.d.ts.map +1 -1
  114. package/dist/RegisteredFunction.js.map +1 -1
  115. package/dist/RegisteredFunctions.d.ts +3 -3
  116. package/dist/RegisteredFunctions.d.ts.map +1 -1
  117. package/dist/RegisteredFunctions.js.map +1 -1
  118. package/dist/RegisteredNodeFunction.d.ts +6 -6
  119. package/dist/RegisteredNodeFunction.d.ts.map +1 -1
  120. package/dist/RegisteredNodeFunction.js.map +1 -1
  121. package/dist/Registry.d.ts +1 -1
  122. package/dist/Registry.d.ts.map +1 -1
  123. package/dist/Registry.js.map +1 -1
  124. package/dist/RegistryItems.js.map +1 -1
  125. package/dist/ResolvedMiddleware.d.ts +2 -2
  126. package/dist/ResolvedMiddleware.d.ts.map +1 -1
  127. package/dist/ResolvedMiddleware.js.map +1 -1
  128. package/dist/Storage.d.ts +6 -6
  129. package/dist/Storage.d.ts.map +1 -1
  130. package/dist/Storage.js.map +1 -1
  131. package/dist/StorageActionWriter.d.ts +1 -1
  132. package/dist/StorageActionWriter.d.ts.map +1 -1
  133. package/dist/StorageActionWriter.js.map +1 -1
  134. package/dist/StorageReader.d.ts +1 -1
  135. package/dist/StorageReader.d.ts.map +1 -1
  136. package/dist/StorageReader.js.map +1 -1
  137. package/dist/StorageWriter.d.ts +1 -1
  138. package/dist/StorageWriter.d.ts.map +1 -1
  139. package/dist/StorageWriter.js.map +1 -1
  140. package/dist/TableInfo.d.ts +2 -2
  141. package/dist/TableInfo.d.ts.map +1 -1
  142. package/dist/TableInfo.js.map +1 -1
  143. package/dist/VectorSearch.d.ts +1 -1
  144. package/dist/VectorSearch.d.ts.map +1 -1
  145. package/dist/VectorSearch.js.map +1 -1
  146. package/dist/index.d.ts +61 -60
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +2 -1
  149. package/dist/internal/AiGatewayDecisionClient.d.ts +1 -1
  150. package/dist/internal/AiGatewayDecisionClient.d.ts.map +1 -1
  151. package/dist/internal/AiGatewayDecisionClient.js.map +1 -1
  152. package/dist/internal/AiGatewayLanguageClient.d.ts +1 -1
  153. package/dist/internal/AiGatewayLanguageClient.d.ts.map +1 -1
  154. package/dist/internal/AiGatewayLanguageClient.js.map +1 -1
  155. package/dist/node.d.ts +1 -1
  156. package/dist/node.d.ts.map +1 -1
  157. package/package.json +2 -2
  158. package/src/ActionCtx.ts +1 -1
  159. package/src/AiGatewayDecisionClient.ts +3 -3
  160. package/src/AiGatewayLanguageClient.ts +3 -3
  161. package/src/Auth.ts +1 -1
  162. package/src/ComponentCtx.ts +1 -1
  163. package/src/ConvexFunctionDefinitions.ts +8 -8
  164. package/src/CronJobs.ts +1 -1
  165. package/src/DataModel.ts +3 -3
  166. package/src/DatabaseReader.ts +4 -4
  167. package/src/DatabaseSchema.ts +1 -1
  168. package/src/DatabaseWriter.ts +6 -6
  169. package/src/Document.ts +4 -4
  170. package/src/FunctionImpl.ts +5 -5
  171. package/src/FunctionRegistryItem.ts +1 -1
  172. package/src/GroupImpl.ts +5 -5
  173. package/src/GroupRegistry.ts +4 -4
  174. package/src/Handler.ts +23 -23
  175. package/src/HttpRouter.ts +17 -17
  176. package/src/MiddlewareImpl.ts +17 -17
  177. package/src/MutationCtx.ts +1 -1
  178. package/src/MutationRunner.ts +1 -1
  179. package/src/MutationTransactionContext.ts +2 -2
  180. package/src/OfficialComponent.ts +151 -0
  181. package/src/OrderedQuery.ts +4 -4
  182. package/src/QueryCtx.ts +1 -1
  183. package/src/QueryInitializer.ts +9 -9
  184. package/src/QueryRunner.ts +2 -2
  185. package/src/QueryStream.ts +15 -15
  186. package/src/QueryStreamCursor.ts +3 -3
  187. package/src/QueryStreamIndexPrefix.ts +2 -2
  188. package/src/QueryStreamIndexRange.ts +4 -4
  189. package/src/QueryStreamKey.ts +2 -2
  190. package/src/QueryStreamKeyBounds.ts +3 -3
  191. package/src/QueryStreamKeyLayout.ts +1 -1
  192. package/src/QueryStreamKeyValues.ts +1 -1
  193. package/src/QueryStreamPagination.ts +2 -2
  194. package/src/RegisteredConvexFunction.ts +21 -21
  195. package/src/RegisteredFunction.ts +18 -18
  196. package/src/RegisteredFunctions.ts +4 -4
  197. package/src/RegisteredNodeFunction.ts +8 -8
  198. package/src/Registry.ts +1 -1
  199. package/src/RegistryItems.ts +2 -2
  200. package/src/ResolvedMiddleware.ts +2 -2
  201. package/src/Storage.ts +3 -3
  202. package/src/StorageActionWriter.ts +1 -1
  203. package/src/StorageReader.ts +1 -1
  204. package/src/StorageWriter.ts +1 -1
  205. package/src/TableInfo.ts +2 -2
  206. package/src/VectorSearch.ts +1 -1
  207. package/src/index.ts +61 -60
  208. package/src/internal/AiGatewayDecisionClient.ts +2 -2
  209. package/src/internal/AiGatewayLanguageClient.ts +2 -2
  210. package/src/node.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import type * as IdScope from "@confect/core/IdScope";
2
2
  import type { GenericActionCtx, GenericDataModel } from "convex/server";
3
3
  import * as Context from "effect/Context";
4
- import type * as ComponentCtx from "./ComponentCtx";
4
+ import type * as ComponentCtx from "./ComponentCtx.js";
5
5
  import * as Layer from "effect/Layer";
6
6
  export type ActionCtxTag<DataModel extends GenericDataModel, Scope extends IdScope.IdScope = IdScope.App> = Context.Service<ActionCtx<DataModel, Scope>, Scope extends IdScope.App ? GenericActionCtx<DataModel> : ComponentCtx.Action<DataModel, Scope>>;
7
7
  export declare const ActionCtx: <DataModel extends GenericDataModel, Scope extends IdScope.IdScope = IdScope.App>() => ActionCtxTag<DataModel, Scope>;
@@ -1 +1 @@
1
- {"version":3,"file":"ActionCtx.d.ts","sourceRoot":"","sources":["../src/ActionCtx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,YAAY,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,MAAM,MAAM,YAAY,CACtB,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,IACzC,OAAO,CAAC,OAAO,CACjB,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,EAC3B,KAAK,SAAS,OAAO,CAAC,GAAG,GACrB,gBAAgB,CAAC,SAAS,CAAC,GAC3B,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAC1C,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,OACxC,YAAY,CAAC,SAAS,EAAE,KAAK,CACY,CAAC;AAE/C,MAAM,MAAM,SAAS,CACnB,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,IACzC,KAAK,SAAS,OAAO,CAAC,GAAG,GACzB,gBAAgB,CAAC,SAAS,CAAC,GAC3B,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAExD,eAAO,MAAM,KAAK,GAChB,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,OAAO,CAAC,OAAO,OAExB,gBAAgB,CAAC,SAAS,CAAC,SACzB,KAAK,2DAUb,CAAC"}
1
+ {"version":3,"file":"ActionCtx.d.ts","sourceRoot":"","sources":["../src/ActionCtx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,YAAY,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,MAAM,MAAM,YAAY,CACtB,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,IACzC,OAAO,CAAC,OAAO,CACjB,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,EAC3B,KAAK,SAAS,OAAO,CAAC,GAAG,GACrB,gBAAgB,CAAC,SAAS,CAAC,GAC3B,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAC1C,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,OACxC,YAAY,CAAC,SAAS,EAAE,KAAK,CACY,CAAC;AAE/C,MAAM,MAAM,SAAS,CACnB,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,IACzC,KAAK,SAAS,OAAO,CAAC,GAAG,GACzB,gBAAgB,CAAC,SAAS,CAAC,GAC3B,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;AAExD,eAAO,MAAM,KAAK,GAChB,SAAS,SAAS,gBAAgB,EAClC,KAAK,SAAS,OAAO,CAAC,OAAO,OAExB,gBAAgB,CAAC,SAAS,CAAC,SACzB,KAAK,2DAUb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionCtx.js","names":[],"sources":["../src/ActionCtx.ts"],"sourcesContent":["import type * as IdScope from \"@confect/core/IdScope\";\nimport type { GenericActionCtx, GenericDataModel } from \"convex/server\";\nimport * as Context from \"effect/Context\";\nimport type * as ComponentCtx from \"./ComponentCtx\";\nimport * as Layer from \"effect/Layer\";\n\nexport type ActionCtxTag<\n DataModel extends GenericDataModel,\n Scope extends IdScope.IdScope = IdScope.App,\n> = Context.Service<\n ActionCtx<DataModel, Scope>,\n Scope extends IdScope.App\n ? GenericActionCtx<DataModel>\n : ComponentCtx.Action<DataModel, Scope>\n>;\n\nexport const ActionCtx = <\n DataModel extends GenericDataModel,\n Scope extends IdScope.IdScope = IdScope.App,\n>(): ActionCtxTag<DataModel, Scope> =>\n Context.Service(\"@confect/server/ActionCtx\");\n\nexport type ActionCtx<\n DataModel extends GenericDataModel,\n Scope extends IdScope.IdScope = IdScope.App,\n> = Scope extends IdScope.App\n ? GenericActionCtx<DataModel>\n : ComponentCtx.Identifier<\"action\", DataModel, Scope>;\n\nexport const layer = <\n DataModel extends GenericDataModel,\n Scope extends IdScope.IdScope,\n>(\n ctx: GenericActionCtx<DataModel>,\n scope: Scope,\n) => {\n const tag = ActionCtx<DataModel, Scope>();\n const { auth: _auth, ...componentCtx } = ctx;\n return Layer.succeed(\n tag,\n (scope === \"\" ? ctx : componentCtx) as unknown as Context.Service.Shape<\n typeof tag\n >,\n );\n};\n"],"mappings":";;;;;;;;AAgBA,MAAa,kBAIX,QAAQ,QAAQ,2BAA2B;AAS7C,MAAa,SAIX,KACA,UACG;CACH,MAAM,MAAM,UAA4B;CACxC,MAAM,EAAE,MAAM,OAAO,GAAG,iBAAiB;CACzC,OAAO,MAAM,QACX,KACC,UAAU,KAAK,MAAM,YAGxB;AACF"}
1
+ {"version":3,"file":"ActionCtx.js","names":[],"sources":["../src/ActionCtx.ts"],"sourcesContent":["import type * as IdScope from \"@confect/core/IdScope\";\nimport type { GenericActionCtx, GenericDataModel } from \"convex/server\";\nimport * as Context from \"effect/Context\";\nimport type * as ComponentCtx from \"./ComponentCtx.js\";\nimport * as Layer from \"effect/Layer\";\n\nexport type ActionCtxTag<\n DataModel extends GenericDataModel,\n Scope extends IdScope.IdScope = IdScope.App,\n> = Context.Service<\n ActionCtx<DataModel, Scope>,\n Scope extends IdScope.App\n ? GenericActionCtx<DataModel>\n : ComponentCtx.Action<DataModel, Scope>\n>;\n\nexport const ActionCtx = <\n DataModel extends GenericDataModel,\n Scope extends IdScope.IdScope = IdScope.App,\n>(): ActionCtxTag<DataModel, Scope> =>\n Context.Service(\"@confect/server/ActionCtx\");\n\nexport type ActionCtx<\n DataModel extends GenericDataModel,\n Scope extends IdScope.IdScope = IdScope.App,\n> = Scope extends IdScope.App\n ? GenericActionCtx<DataModel>\n : ComponentCtx.Identifier<\"action\", DataModel, Scope>;\n\nexport const layer = <\n DataModel extends GenericDataModel,\n Scope extends IdScope.IdScope,\n>(\n ctx: GenericActionCtx<DataModel>,\n scope: Scope,\n) => {\n const tag = ActionCtx<DataModel, Scope>();\n const { auth: _auth, ...componentCtx } = ctx;\n return Layer.succeed(\n tag,\n (scope === \"\" ? ctx : componentCtx) as unknown as Context.Service.Shape<\n typeof tag\n >,\n );\n};\n"],"mappings":";;;;;;;;AAgBA,MAAa,kBAIX,QAAQ,QAAQ,2BAA2B;AAS7C,MAAa,SAIX,KACA,UACG;CACH,MAAM,MAAM,UAA4B;CACxC,MAAM,EAAE,MAAM,OAAO,GAAG,iBAAiB;CACzC,OAAO,MAAM,QACX,KACC,UAAU,KAAK,MAAM,YAGxB;AACF"}
@@ -2,8 +2,8 @@ import * as OpenRouterClient from "@effect/ai-openrouter/OpenRouterClient";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Layer from "effect/Layer";
4
4
  import type * as HttpClient from "effect/http/HttpClient";
5
- import * as AiGatewayServiceToken from "./internal/AiGatewayServiceToken";
6
- export { AiGatewayDisabled, AiGatewayError, AiGatewayUnavailable, } from "./internal/AiGatewayServiceToken";
5
+ import * as AiGatewayServiceToken from "./internal/AiGatewayServiceToken.js";
6
+ export { AiGatewayDisabled, AiGatewayError, AiGatewayUnavailable, } from "./internal/AiGatewayServiceToken.js";
7
7
  /**
8
8
  * The client configured for Convex AI gateway decisions.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AiGatewayDecisionClient.d.ts","sourceRoot":"","sources":["../src/AiGatewayDecisionClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,uBAAuB,0CAAoC,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,CAC9B,gBAAgB,CAAC,OAAO,EACxB,qBAAqB,CAAC,cAAc,EACpC,UAAU,CAAC,UAAU,CAGtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,uBAAuB,EACvB,qBAAqB,CAAC,cAAc,EACpC,UAAU,CAAC,UAAU,CAGtB,CAAC"}
1
+ {"version":3,"file":"AiGatewayDecisionClient.d.ts","sourceRoot":"","sources":["../src/AiGatewayDecisionClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,wCAAwC,CAAC;AAC3E,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,qBAAqB,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,uBAAuB,0CAAoC,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,CAC9B,gBAAgB,CAAC,OAAO,EACxB,qBAAqB,CAAC,cAAc,EACpC,UAAU,CAAC,UAAU,CAGtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,uBAAuB,EACvB,qBAAqB,CAAC,cAAc,EACpC,UAAU,CAAC,UAAU,CAGtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AiGatewayDecisionClient.js","names":["AiGatewayServiceToken.layer"],"sources":["../src/AiGatewayDecisionClient.ts"],"sourcesContent":["import * as OpenRouterClient from \"@effect/ai-openrouter/OpenRouterClient\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport type * as HttpClient from \"effect/http/HttpClient\";\nimport * as InternalAiGatewayDecisionClient from \"./internal/AiGatewayDecisionClient\";\nimport * as AiGatewayServiceToken from \"./internal/AiGatewayServiceToken\";\n\nexport {\n AiGatewayDisabled,\n AiGatewayError,\n AiGatewayUnavailable,\n} from \"./internal/AiGatewayServiceToken\";\n\n/**\n * The client configured for Convex AI gateway decisions.\n */\nexport const AiGatewayDecisionClient = OpenRouterClient.OpenRouterClient;\nexport type AiGatewayDecisionClient = OpenRouterClient.OpenRouterClient;\n\n/**\n * Construct a decision model client using the current Effect HTTP client.\n */\nexport const make: Effect.Effect<\n OpenRouterClient.Service,\n AiGatewayServiceToken.AiGatewayError,\n HttpClient.HttpClient\n> = InternalAiGatewayDecisionClient.make.pipe(\n Effect.provide(AiGatewayServiceToken.layer),\n);\n\n/**\n * Provide the AI gateway decision client using the current Effect HTTP client.\n */\nexport const layer: Layer.Layer<\n AiGatewayDecisionClient,\n AiGatewayServiceToken.AiGatewayError,\n HttpClient.HttpClient\n> = InternalAiGatewayDecisionClient.layer.pipe(\n Layer.provide(AiGatewayServiceToken.layer),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgBA,MAAa,0BAA0B,iBAAiB;;;;AAMxD,MAAa,OAAA,OAI4B,KACvC,OAAO,QAAQA,OAA2B,CAC5C;;;;AAKA,MAAa,QAAA,QAI6B,KACxC,MAAM,QAAQA,OAA2B,CAC3C"}
1
+ {"version":3,"file":"AiGatewayDecisionClient.js","names":["AiGatewayServiceToken.layer"],"sources":["../src/AiGatewayDecisionClient.ts"],"sourcesContent":["import * as OpenRouterClient from \"@effect/ai-openrouter/OpenRouterClient\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport type * as HttpClient from \"effect/http/HttpClient\";\nimport * as InternalAiGatewayDecisionClient from \"./internal/AiGatewayDecisionClient.js\";\nimport * as AiGatewayServiceToken from \"./internal/AiGatewayServiceToken.js\";\n\nexport {\n AiGatewayDisabled,\n AiGatewayError,\n AiGatewayUnavailable,\n} from \"./internal/AiGatewayServiceToken.js\";\n\n/**\n * The client configured for Convex AI gateway decisions.\n */\nexport const AiGatewayDecisionClient = OpenRouterClient.OpenRouterClient;\nexport type AiGatewayDecisionClient = OpenRouterClient.OpenRouterClient;\n\n/**\n * Construct a decision model client using the current Effect HTTP client.\n */\nexport const make: Effect.Effect<\n OpenRouterClient.Service,\n AiGatewayServiceToken.AiGatewayError,\n HttpClient.HttpClient\n> = InternalAiGatewayDecisionClient.make.pipe(\n Effect.provide(AiGatewayServiceToken.layer),\n);\n\n/**\n * Provide the AI gateway decision client using the current Effect HTTP client.\n */\nexport const layer: Layer.Layer<\n AiGatewayDecisionClient,\n AiGatewayServiceToken.AiGatewayError,\n HttpClient.HttpClient\n> = InternalAiGatewayDecisionClient.layer.pipe(\n Layer.provide(AiGatewayServiceToken.layer),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgBA,MAAa,0BAA0B,iBAAiB;;;;AAMxD,MAAa,OAAA,OAI4B,KACvC,OAAO,QAAQA,OAA2B,CAC5C;;;;AAKA,MAAa,QAAA,QAI6B,KACxC,MAAM,QAAQA,OAA2B,CAC3C"}
@@ -2,8 +2,8 @@ import * as OpenAiClient from "@effect/ai-openai-compat/OpenAiClient";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Layer from "effect/Layer";
4
4
  import type * as HttpClient from "effect/http/HttpClient";
5
- import * as AiGatewayServiceToken from "./internal/AiGatewayServiceToken";
6
- export { AiGatewayDisabled, AiGatewayError, AiGatewayUnavailable, } from "./internal/AiGatewayServiceToken";
5
+ import * as AiGatewayServiceToken from "./internal/AiGatewayServiceToken.js";
6
+ export { AiGatewayDisabled, AiGatewayError, AiGatewayUnavailable, } from "./internal/AiGatewayServiceToken.js";
7
7
  /**
8
8
  * The client service configured for Convex AI gateway language models.
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AiGatewayLanguageClient.d.ts","sourceRoot":"","sources":["../src/AiGatewayLanguageClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,qBAAqB,MAAM,kCAAkC,CAAC;AAE1E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,eAAO,MAAM,uBAAuB,kCAA4B,CAAC;AACjE,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,YAAY,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,CAC9B,YAAY,CAAC,OAAO,EACpB,qBAAqB,CAAC,cAAc,EACpC,UAAU,CAAC,UAAU,CAGtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,uBAAuB,EACvB,qBAAqB,CAAC,cAAc,EACpC,UAAU,CAAC,UAAU,CAGtB,CAAC"}
1
+ {"version":3,"file":"AiGatewayLanguageClient.d.ts","sourceRoot":"","sources":["../src/AiGatewayLanguageClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,KAAK,UAAU,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,qBAAqB,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,uBAAuB,kCAA4B,CAAC;AACjE,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAC,YAAY,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,CAC9B,YAAY,CAAC,OAAO,EACpB,qBAAqB,CAAC,cAAc,EACpC,UAAU,CAAC,UAAU,CAGtB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,uBAAuB,EACvB,qBAAqB,CAAC,cAAc,EACpC,UAAU,CAAC,UAAU,CAGtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AiGatewayLanguageClient.js","names":["AiGatewayServiceToken.layer"],"sources":["../src/AiGatewayLanguageClient.ts"],"sourcesContent":["import * as OpenAiClient from \"@effect/ai-openai-compat/OpenAiClient\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport type * as HttpClient from \"effect/http/HttpClient\";\nimport * as InternalAiGatewayLanguageClient from \"./internal/AiGatewayLanguageClient\";\nimport * as AiGatewayServiceToken from \"./internal/AiGatewayServiceToken\";\n\nexport {\n AiGatewayDisabled,\n AiGatewayError,\n AiGatewayUnavailable,\n} from \"./internal/AiGatewayServiceToken\";\n\n/**\n * The client service configured for Convex AI gateway language models.\n */\nexport const AiGatewayLanguageClient = OpenAiClient.OpenAiClient;\nexport type AiGatewayLanguageClient = OpenAiClient.OpenAiClient;\n\n/**\n * Construct a language client using the current Effect HTTP client.\n */\nexport const make: Effect.Effect<\n OpenAiClient.Service,\n AiGatewayServiceToken.AiGatewayError,\n HttpClient.HttpClient\n> = InternalAiGatewayLanguageClient.make.pipe(\n Effect.provide(AiGatewayServiceToken.layer),\n);\n\n/**\n * Provide the AI gateway language model client using the current Effect HTTP\n * client.\n */\nexport const layer: Layer.Layer<\n AiGatewayLanguageClient,\n AiGatewayServiceToken.AiGatewayError,\n HttpClient.HttpClient\n> = InternalAiGatewayLanguageClient.layer.pipe(\n Layer.provide(AiGatewayServiceToken.layer),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgBA,MAAa,0BAA0B,aAAa;;;;AAMpD,MAAa,OAAA,OAI4B,KACvC,OAAO,QAAQA,OAA2B,CAC5C;;;;;AAMA,MAAa,QAAA,QAI6B,KACxC,MAAM,QAAQA,OAA2B,CAC3C"}
1
+ {"version":3,"file":"AiGatewayLanguageClient.js","names":["AiGatewayServiceToken.layer"],"sources":["../src/AiGatewayLanguageClient.ts"],"sourcesContent":["import * as OpenAiClient from \"@effect/ai-openai-compat/OpenAiClient\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport type * as HttpClient from \"effect/http/HttpClient\";\nimport * as InternalAiGatewayLanguageClient from \"./internal/AiGatewayLanguageClient.js\";\nimport * as AiGatewayServiceToken from \"./internal/AiGatewayServiceToken.js\";\n\nexport {\n AiGatewayDisabled,\n AiGatewayError,\n AiGatewayUnavailable,\n} from \"./internal/AiGatewayServiceToken.js\";\n\n/**\n * The client service configured for Convex AI gateway language models.\n */\nexport const AiGatewayLanguageClient = OpenAiClient.OpenAiClient;\nexport type AiGatewayLanguageClient = OpenAiClient.OpenAiClient;\n\n/**\n * Construct a language client using the current Effect HTTP client.\n */\nexport const make: Effect.Effect<\n OpenAiClient.Service,\n AiGatewayServiceToken.AiGatewayError,\n HttpClient.HttpClient\n> = InternalAiGatewayLanguageClient.make.pipe(\n Effect.provide(AiGatewayServiceToken.layer),\n);\n\n/**\n * Provide the AI gateway language model client using the current Effect HTTP\n * client.\n */\nexport const layer: Layer.Layer<\n AiGatewayLanguageClient,\n AiGatewayServiceToken.AiGatewayError,\n HttpClient.HttpClient\n> = InternalAiGatewayLanguageClient.layer.pipe(\n Layer.provide(AiGatewayServiceToken.layer),\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAgBA,MAAa,0BAA0B,aAAa;;;;AAMpD,MAAa,OAAA,OAI4B,KACvC,OAAO,QAAQA,OAA2B,CAC5C;;;;;AAMA,MAAa,QAAA,QAI6B,KACxC,MAAM,QAAQA,OAA2B,CAC3C"}
package/dist/Auth.d.ts CHANGED
@@ -3,7 +3,7 @@ import * as Context from "effect/Context";
3
3
  import * as Effect from "effect/Effect";
4
4
  import * as Layer from "effect/Layer";
5
5
  import * as Schema from "effect/Schema";
6
- import type * as DatabaseSchema from "./DatabaseSchema";
6
+ import type * as DatabaseSchema from "./DatabaseSchema.js";
7
7
  declare const Auth_base: Context.ServiceClass<Auth, "@confect/server/Auth", {
8
8
  getUserIdentity: Effect.Effect<import("convex/server").UserIdentity, NoUserIdentityFoundError, never>;
9
9
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../src/Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;;;;AAgBxD,qBAAa,IAAK,SAAQ,SAEzB;CAAG;AAEJ,eAAO,MAAM,KAAK,SAAU,UAAU,oCAAoC,CAAC;AAE3E,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,cAAc,CAAC,MAAM,IACxD,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;AAEpD,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,cAAc,CAAC,MAAM,UACzD,MAAM,QACR,UAAU,KACf,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAKK,CAAC;;AAEtC,qBAAa,wBAAyB,SAAQ,6BAG7C;IACC,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF"}
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../src/Auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;;;;AAgB3D,qBAAa,IAAK,SAAQ,SAEzB;CAAG;AAEJ,eAAO,MAAM,KAAK,SAAU,UAAU,oCAAoC,CAAC;AAE3E,MAAM,MAAM,SAAS,CAAC,MAAM,SAAS,cAAc,CAAC,MAAM,IACxD,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;AAEpD,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,cAAc,CAAC,MAAM,UACzD,MAAM,QACR,UAAU,KACf,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAKK,CAAC;;AAEtC,qBAAa,wBAAyB,SAAQ,6BAG7C;IACC,IAAa,OAAO,IAAI,MAAM,CAE7B;CACF"}
package/dist/Auth.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Auth.js","names":[],"sources":["../src/Auth.ts"],"sourcesContent":["import type { Auth as ConvexAuth } from \"convex/server\";\nimport * as Context from \"effect/Context\";\nimport { flow } from \"effect/Function\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Option from \"effect/Option\";\nimport * as Schema from \"effect/Schema\";\nimport type * as DatabaseSchema from \"./DatabaseSchema\";\n\nconst make = (auth: ConvexAuth) => ({\n getUserIdentity: Effect.promise(() => auth.getUserIdentity()).pipe(\n Effect.andThen(\n flow(\n Option.fromNullishOr,\n Option.match({\n onNone: () => Effect.fail(new NoUserIdentityFoundError()),\n onSome: Effect.succeed,\n }),\n ),\n ),\n ),\n});\n\nexport class Auth extends Context.Service<Auth, ReturnType<typeof make>>()(\n \"@confect/server/Auth\",\n) {}\n\nexport const layer = (auth: ConvexAuth) => Layer.succeed(Auth, make(auth));\n\nexport type ForTarget<Target extends DatabaseSchema.Target> =\n Target[\"kind\"] extends \"component\" ? never : Auth;\n\nexport const layerForTarget = <Target extends DatabaseSchema.Target>(\n target: Target,\n auth: ConvexAuth,\n): Layer.Layer<ForTarget<Target>> =>\n Match.value(target.kind).pipe(\n Match.when(\"app\", () => layer(auth)),\n Match.when(\"component\", () => Layer.empty),\n Match.exhaustive,\n ) as Layer.Layer<ForTarget<Target>>;\n\nexport class NoUserIdentityFoundError extends Schema.TaggedError<NoUserIdentityFoundError>()(\n \"NoUserIdentityFoundError\",\n {},\n) {\n override get message(): string {\n return \"No user identity found\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAUA,MAAM,QAAQ,UAAsB,EAClC,iBAAiB,OAAO,cAAc,KAAK,gBAAgB,CAAC,CAAC,CAAC,KAC5D,OAAO,QACL,KACE,OAAO,eACP,OAAO,MAAM;CACX,cAAc,OAAO,KAAK,IAAI,yBAAyB,CAAC;CACxD,QAAQ,OAAO;AACjB,CAAC,CACH,CACF,CACF,EACF;AAEA,IAAa,OAAb,cAA0B,QAAQ,QAAuC,CAAC,CACxE,sBACF,CAAC,CAAC,CAAC;AAEH,MAAa,SAAS,SAAqB,MAAM,QAAQ,MAAM,KAAK,IAAI,CAAC;AAKzE,MAAa,kBACX,QACA,SAEA,MAAM,MAAM,OAAO,IAAI,CAAC,CAAC,KACvB,MAAM,KAAK,aAAa,MAAM,IAAI,CAAC,GACnC,MAAM,KAAK,mBAAmB,MAAM,KAAK,GACzC,MAAM,UACR;AAEF,IAAa,2BAAb,cAA8C,OAAO,YAAsC,CAAC,CAC1F,4BACA,CAAC,CACH,CAAC,CAAC;CACA,IAAa,UAAkB;EAC7B,OAAO;CACT;AACF"}
1
+ {"version":3,"file":"Auth.js","names":[],"sources":["../src/Auth.ts"],"sourcesContent":["import type { Auth as ConvexAuth } from \"convex/server\";\nimport * as Context from \"effect/Context\";\nimport { flow } from \"effect/Function\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Option from \"effect/Option\";\nimport * as Schema from \"effect/Schema\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\n\nconst make = (auth: ConvexAuth) => ({\n getUserIdentity: Effect.promise(() => auth.getUserIdentity()).pipe(\n Effect.andThen(\n flow(\n Option.fromNullishOr,\n Option.match({\n onNone: () => Effect.fail(new NoUserIdentityFoundError()),\n onSome: Effect.succeed,\n }),\n ),\n ),\n ),\n});\n\nexport class Auth extends Context.Service<Auth, ReturnType<typeof make>>()(\n \"@confect/server/Auth\",\n) {}\n\nexport const layer = (auth: ConvexAuth) => Layer.succeed(Auth, make(auth));\n\nexport type ForTarget<Target extends DatabaseSchema.Target> =\n Target[\"kind\"] extends \"component\" ? never : Auth;\n\nexport const layerForTarget = <Target extends DatabaseSchema.Target>(\n target: Target,\n auth: ConvexAuth,\n): Layer.Layer<ForTarget<Target>> =>\n Match.value(target.kind).pipe(\n Match.when(\"app\", () => layer(auth)),\n Match.when(\"component\", () => Layer.empty),\n Match.exhaustive,\n ) as Layer.Layer<ForTarget<Target>>;\n\nexport class NoUserIdentityFoundError extends Schema.TaggedError<NoUserIdentityFoundError>()(\n \"NoUserIdentityFoundError\",\n {},\n) {\n override get message(): string {\n return \"No user identity found\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAUA,MAAM,QAAQ,UAAsB,EAClC,iBAAiB,OAAO,cAAc,KAAK,gBAAgB,CAAC,CAAC,CAAC,KAC5D,OAAO,QACL,KACE,OAAO,eACP,OAAO,MAAM;CACX,cAAc,OAAO,KAAK,IAAI,yBAAyB,CAAC;CACxD,QAAQ,OAAO;AACjB,CAAC,CACH,CACF,CACF,EACF;AAEA,IAAa,OAAb,cAA0B,QAAQ,QAAuC,CAAC,CACxE,sBACF,CAAC,CAAC,CAAC;AAEH,MAAa,SAAS,SAAqB,MAAM,QAAQ,MAAM,KAAK,IAAI,CAAC;AAKzE,MAAa,kBACX,QACA,SAEA,MAAM,MAAM,OAAO,IAAI,CAAC,CAAC,KACvB,MAAM,KAAK,aAAa,MAAM,IAAI,CAAC,GACnC,MAAM,KAAK,mBAAmB,MAAM,KAAK,GACzC,MAAM,UACR;AAEF,IAAa,2BAAb,cAA8C,OAAO,YAAsC,CAAC,CAC1F,4BACA,CAAC,CACH,CAAC,CAAC;CACA,IAAa,UAAkB;EAC7B,OAAO;CACT;AACF"}
@@ -1,7 +1,7 @@
1
1
  import type * as IdScope from "@confect/core/IdScope";
2
2
  import type { GenericId, Rebase } from "@confect/core/GenericId";
3
3
  import type { DocumentByName, GenericActionCtx, GenericDataModel, GenericMutationCtx, GenericQueryCtx, QueryInitializer, NamedTableInfo, TableNamesInDataModel, SystemDataModel, WithoutSystemFields, WithOptionalSystemFields, SchedulableFunctionReference, OptionalRestArgs, VectorIndexNames, VectorSearchQuery } from "convex/server";
4
- import type { PatchValue } from "./DatabaseWriter";
4
+ import type { PatchValue } from "./DatabaseWriter.js";
5
5
  /**
6
6
  * Distinguishes raw component services from structurally compatible app ctxs.
7
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ComponentCtx.d.ts","sourceRoot":"","sources":["../src/ComponentCtx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ComponentCtx.d.ts","sourceRoot":"","sources":["../src/ComponentCtx.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type * as Layer from "effect/Layer";
2
2
  import type * as GroupSpec from "@confect/core/GroupSpec";
3
3
  import type * as FunctionSpec from "@confect/core/FunctionSpec";
4
- import type * as DatabaseSchema from "./DatabaseSchema";
5
- import type * as GroupImpl from "./GroupImpl";
6
- import * as RegisteredConvexFunction from "./RegisteredConvexFunction";
7
- import type * as RegisteredFunctions from "./RegisteredFunctions";
4
+ import type * as DatabaseSchema from "./DatabaseSchema.js";
5
+ import type * as GroupImpl from "./GroupImpl.js";
6
+ import * as RegisteredConvexFunction from "./RegisteredConvexFunction.js";
7
+ import type * as RegisteredFunctions from "./RegisteredFunctions.js";
8
8
  export interface Definitions {
9
9
  readonly [name: string]: RegisteredConvexFunction.Definition | Definitions;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexFunctionDefinitions.d.ts","sourceRoot":"","sources":["../src/ConvexFunctionDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAG9C,OAAO,KAAK,wBAAwB,MAAM,4BAA4B,CAAC;AACvE,OAAO,KAAK,KAAK,mBAAmB,MAAM,uBAAuB,CAAC;AAIlE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAC,UAAU,GAAG,WAAW,CAAC;CAC5E;AAED,KAAK,aAAa,CAChB,QAAQ,SAAS,YAAY,CAAC,YAAY,EAC1C,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IACzC,UAAU,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC9C,YAAY,GACZ,GAAG,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;AAErH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAC,YAAY,IAAI;IAC3D,QAAQ,EAAE,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CACvE,wBAAwB,CAAC,UAAU,EACnC;QACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAC1B,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CACxD,CAAC;KACH,CACF;CACF,GAAG;IACF,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAClD;CACF,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,wBAAwB,CAAC,UAAU,GAAG,WAAW,KACvD,KAAK,IAAI,wBAAwB,CAAC,UACL,CAAC;AAWjC,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,eAC9C,WAAW,KACvB,mBAAmB,CAAC,+BAA+B,CAAC,KAAK,CAGK,CAAC;AAElE,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,kBAChD,cAAc,CAAC,YAAY,cAC/B,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KACxD,QAAQ,CAAC,KAAK,CA0BhB,CAAC"}
1
+ {"version":3,"file":"ConvexFunctionDefinitions.d.ts","sourceRoot":"","sources":["../src/ConvexFunctionDefinitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,KAAK,YAAY,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,wBAAwB,MAAM,+BAA+B,CAAC;AAC1E,OAAO,KAAK,KAAK,mBAAmB,MAAM,0BAA0B,CAAC;AAIrE,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,wBAAwB,CAAC,UAAU,GAAG,WAAW,CAAC;CAC5E;AAED,KAAK,aAAa,CAChB,QAAQ,SAAS,YAAY,CAAC,YAAY,EAC1C,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAAC,IACzC,UAAU,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC9C,YAAY,GACZ,GAAG,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC;AAErH,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,SAAS,CAAC,YAAY,IAAI;IAC3D,QAAQ,EAAE,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,OAAO,CACvE,wBAAwB,CAAC,UAAU,EACnC;QACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAC1B,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CACxD,CAAC;KACH,CACF;CACF,GAAG;IACF,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAClE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAClD;CACF,CAAC;AAEF,eAAO,MAAM,YAAY,UAChB,wBAAwB,CAAC,UAAU,GAAG,WAAW,KACvD,KAAK,IAAI,wBAAwB,CAAC,UACL,CAAC;AAWjC,eAAO,MAAM,QAAQ,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,eAC9C,WAAW,KACvB,mBAAmB,CAAC,+BAA+B,CAAC,KAAK,CAGK,CAAC;AAElE,eAAO,MAAM,aAAa,GAAI,KAAK,SAAS,SAAS,CAAC,YAAY,kBAChD,cAAc,CAAC,YAAY,cAC/B,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KACxD,QAAQ,CAAC,KAAK,CA0BhB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConvexFunctionDefinitions.js","names":["RegisteredConvexFunction.register","GroupRegistry.make","FunctionRegistryItem.isFunctionRegistryItem","RegisteredConvexFunction.prepare","ResolvedMiddleware.resolve"],"sources":["../src/ConvexFunctionDefinitions.ts"],"sourcesContent":["import type * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Record from \"effect/Record\";\nimport type * as GroupSpec from \"@confect/core/GroupSpec\";\nimport type * as FunctionSpec from \"@confect/core/FunctionSpec\";\nimport type * as DatabaseSchema from \"./DatabaseSchema\";\nimport type * as GroupImpl from \"./GroupImpl\";\nimport * as GroupRegistry from \"./GroupRegistry\";\nimport * as FunctionRegistryItem from \"./FunctionRegistryItem\";\nimport * as RegisteredConvexFunction from \"./RegisteredConvexFunction\";\nimport type * as RegisteredFunctions from \"./RegisteredFunctions\";\nimport * as ResolvedMiddleware from \"./ResolvedMiddleware\";\nimport { mapLeaves } from \"./internal/utils\";\n\nexport interface Definitions {\n readonly [name: string]: RegisteredConvexFunction.Definition | Definitions;\n}\n\ntype DefinitionTag<\n Function extends FunctionSpec.AnyWithProps,\n Provenance = Function[\"functionProvenance\"],\n> = Provenance extends { readonly _tag: \"Convex\" }\n ? \"Registered\"\n : `${Capitalize<Function[\"functionVisibility\"]>}${Capitalize<Function[\"runtimeAndFunctionType\"][\"functionType\"]>}`;\n\nexport type ForGroup<Group extends GroupSpec.AnyWithProps> = {\n readonly [Name in FunctionSpec.Name<GroupSpec.Functions<Group>>]: Extract<\n RegisteredConvexFunction.Definition,\n {\n readonly _tag: DefinitionTag<\n FunctionSpec.WithName<GroupSpec.Functions<Group>, Name>\n >;\n }\n >;\n} & {\n readonly [Name in GroupSpec.Name<GroupSpec.Groups<Group>>]: ForGroup<\n GroupSpec.WithName<GroupSpec.Groups<Group>, Name>\n >;\n};\n\nexport const isDefinition = (\n value: RegisteredConvexFunction.Definition | Definitions,\n): value is RegisteredConvexFunction.Definition =>\n typeof value._tag === \"string\";\n\nconst registerDefinitions = (\n definitions: Definitions,\n): RegisteredFunctions.AnyWithProps =>\n Record.map(definitions, (value) =>\n isDefinition(value)\n ? RegisteredConvexFunction.register(value)\n : registerDefinitions(value),\n );\n\nexport const register = <Group extends GroupSpec.AnyWithProps>(\n definitions: Definitions,\n): RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group> =>\n registerDefinitions(\n definitions,\n ) as RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group>;\n\nexport const buildForGroup = <Group extends GroupSpec.AnyWithProps>(\n databaseSchema: DatabaseSchema.AnyWithProps,\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n): ForGroup<Group> => {\n const { functionRegistryItems, middlewareRegistryItems } =\n GroupRegistry.make(groupLayer);\n return mapLeaves<\n FunctionRegistryItem.AnyWithProps,\n RegisteredConvexFunction.Definition\n >(\n functionRegistryItems as {\n [key: string]: FunctionRegistryItem.AnyWithProps;\n },\n FunctionRegistryItem.isFunctionRegistryItem,\n (item) =>\n Match.value(item).pipe(\n Match.tag(\"Convex\", ({ handler }) =>\n RegisteredConvexFunction.Definition.Registered({ handler }),\n ),\n Match.tag(\"Confect\", (confect) =>\n RegisteredConvexFunction.prepare(\n databaseSchema,\n confect,\n ResolvedMiddleware.resolve(confect, middlewareRegistryItems),\n ),\n ),\n Match.exhaustive,\n ),\n ) as ForGroup<Group>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAwCA,MAAa,gBACX,UAEA,OAAO,MAAM,SAAS;AAExB,MAAM,uBACJ,gBAEA,OAAO,IAAI,cAAc,UACvB,aAAa,KAAK,IACdA,WAAkC,KAAK,IACvC,oBAAoB,KAAK,CAC/B;AAEF,MAAa,YACX,gBAEA,oBACE,WACF;AAEF,MAAa,iBACX,gBACA,eACoB;CACpB,MAAM,EAAE,uBAAuB,4BAC7BC,KAAmB,UAAU;CAC/B,OAAO,UAIL,uBAGAC,yBACC,SACC,MAAM,MAAM,IAAI,CAAC,CAAC,KAChB,MAAM,IAAI,WAAW,EAAE,cAAA,WACe,WAAW,EAAE,QAAQ,CAAC,CAC5D,GACA,MAAM,IAAI,YAAY,YACpBC,QACE,gBACA,SACAC,QAA2B,SAAS,uBAAuB,CAC7D,CACF,GACA,MAAM,UACR,CACJ;AACF"}
1
+ {"version":3,"file":"ConvexFunctionDefinitions.js","names":["RegisteredConvexFunction.register","GroupRegistry.make","FunctionRegistryItem.isFunctionRegistryItem","RegisteredConvexFunction.prepare","ResolvedMiddleware.resolve"],"sources":["../src/ConvexFunctionDefinitions.ts"],"sourcesContent":["import type * as Layer from \"effect/Layer\";\nimport * as Match from \"effect/Match\";\nimport * as Record from \"effect/Record\";\nimport type * as GroupSpec from \"@confect/core/GroupSpec\";\nimport type * as FunctionSpec from \"@confect/core/FunctionSpec\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as GroupImpl from \"./GroupImpl.js\";\nimport * as GroupRegistry from \"./GroupRegistry.js\";\nimport * as FunctionRegistryItem from \"./FunctionRegistryItem.js\";\nimport * as RegisteredConvexFunction from \"./RegisteredConvexFunction.js\";\nimport type * as RegisteredFunctions from \"./RegisteredFunctions.js\";\nimport * as ResolvedMiddleware from \"./ResolvedMiddleware.js\";\nimport { mapLeaves } from \"./internal/utils.js\";\n\nexport interface Definitions {\n readonly [name: string]: RegisteredConvexFunction.Definition | Definitions;\n}\n\ntype DefinitionTag<\n Function extends FunctionSpec.AnyWithProps,\n Provenance = Function[\"functionProvenance\"],\n> = Provenance extends { readonly _tag: \"Convex\" }\n ? \"Registered\"\n : `${Capitalize<Function[\"functionVisibility\"]>}${Capitalize<Function[\"runtimeAndFunctionType\"][\"functionType\"]>}`;\n\nexport type ForGroup<Group extends GroupSpec.AnyWithProps> = {\n readonly [Name in FunctionSpec.Name<GroupSpec.Functions<Group>>]: Extract<\n RegisteredConvexFunction.Definition,\n {\n readonly _tag: DefinitionTag<\n FunctionSpec.WithName<GroupSpec.Functions<Group>, Name>\n >;\n }\n >;\n} & {\n readonly [Name in GroupSpec.Name<GroupSpec.Groups<Group>>]: ForGroup<\n GroupSpec.WithName<GroupSpec.Groups<Group>, Name>\n >;\n};\n\nexport const isDefinition = (\n value: RegisteredConvexFunction.Definition | Definitions,\n): value is RegisteredConvexFunction.Definition =>\n typeof value._tag === \"string\";\n\nconst registerDefinitions = (\n definitions: Definitions,\n): RegisteredFunctions.AnyWithProps =>\n Record.map(definitions, (value) =>\n isDefinition(value)\n ? RegisteredConvexFunction.register(value)\n : registerDefinitions(value),\n );\n\nexport const register = <Group extends GroupSpec.AnyWithProps>(\n definitions: Definitions,\n): RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group> =>\n registerDefinitions(\n definitions,\n ) as RegisteredFunctions.RegisteredFunctionsForGroupSpec<Group>;\n\nexport const buildForGroup = <Group extends GroupSpec.AnyWithProps>(\n databaseSchema: DatabaseSchema.AnyWithProps,\n groupLayer: Layer.Layer<GroupImpl.GroupImpl<\"Finalized\">>,\n): ForGroup<Group> => {\n const { functionRegistryItems, middlewareRegistryItems } =\n GroupRegistry.make(groupLayer);\n return mapLeaves<\n FunctionRegistryItem.AnyWithProps,\n RegisteredConvexFunction.Definition\n >(\n functionRegistryItems as {\n [key: string]: FunctionRegistryItem.AnyWithProps;\n },\n FunctionRegistryItem.isFunctionRegistryItem,\n (item) =>\n Match.value(item).pipe(\n Match.tag(\"Convex\", ({ handler }) =>\n RegisteredConvexFunction.Definition.Registered({ handler }),\n ),\n Match.tag(\"Confect\", (confect) =>\n RegisteredConvexFunction.prepare(\n databaseSchema,\n confect,\n ResolvedMiddleware.resolve(confect, middlewareRegistryItems),\n ),\n ),\n Match.exhaustive,\n ),\n ) as ForGroup<Group>;\n};\n"],"mappings":";;;;;;;;;;;;;;AAwCA,MAAa,gBACX,UAEA,OAAO,MAAM,SAAS;AAExB,MAAM,uBACJ,gBAEA,OAAO,IAAI,cAAc,UACvB,aAAa,KAAK,IACdA,WAAkC,KAAK,IACvC,oBAAoB,KAAK,CAC/B;AAEF,MAAa,YACX,gBAEA,oBACE,WACF;AAEF,MAAa,iBACX,gBACA,eACoB;CACpB,MAAM,EAAE,uBAAuB,4BAC7BC,KAAmB,UAAU;CAC/B,OAAO,UAIL,uBAGAC,yBACC,SACC,MAAM,MAAM,IAAI,CAAC,CAAC,KAChB,MAAM,IAAI,WAAW,EAAE,cAAA,WACe,WAAW,EAAE,QAAQ,CAAC,CAC5D,GACA,MAAM,IAAI,YAAY,YACpBC,QACE,gBACA,SACAC,QAA2B,SAAS,uBAAuB,CAC7D,CACF,GACA,MAAM,UACR,CACJ;AACF"}
@@ -2,7 +2,7 @@ import type { CronJob as ConvexCronJob } from "convex/server";
2
2
  import { type Crons } from "convex/server";
3
3
  import * as Cron from "effect/Cron";
4
4
  import * as Duration from "effect/Duration";
5
- import type * as CronJob from "./CronJob";
5
+ import type * as CronJob from "./CronJob.js";
6
6
  export declare const TypeId = "~@confect/server/CronJobs";
7
7
  export type TypeId = typeof TypeId;
8
8
  export interface CronJobs {
@@ -1 +1 @@
1
- {"version":3,"file":"CronJobs.d.ts","sourceRoot":"","sources":["../src/CronJobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAA+B,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAGxE,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAM5C,OAAO,KAAK,KAAK,OAAO,MAAM,WAAW,CAAC;AAE1C,eAAO,MAAM,MAAM,8BAA8B,CAAC;AAClD,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC;IAE/B,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;CACtC;AAED,eAAO,MAAM,UAAU,MAAO,OAAO,KAAG,CAAC,IAAI,QACX,CAAC;AAiDnC,eAAO,MAAM,IAAI,QAAO,QAA4C,CAAC;AAErE,eAAO,MAAM,sBAAsB,SAAU,IAAI,CAAC,IAAI,KAAG,MAwCxD,CAAC;AAYF,eAAO,MAAM,gCAAgC,aACjC,QAAQ,CAAC,QAAQ,KAC1B,gBA2BF,CAAC;AAEF,KAAK,gBAAgB,GAAG,OAAO,CAC7B,aAAa,CAAC,UAAU,CAAC,EACzB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CACrB,CAAC"}
1
+ {"version":3,"file":"CronJobs.d.ts","sourceRoot":"","sources":["../src/CronJobs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAA+B,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAGxE,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAM5C,OAAO,KAAK,KAAK,OAAO,MAAM,cAAc,CAAC;AAE7C,eAAO,MAAM,MAAM,8BAA8B,CAAC;AAClD,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC;IAE/B,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;CACtC;AAED,eAAO,MAAM,UAAU,MAAO,OAAO,KAAG,CAAC,IAAI,QACX,CAAC;AAiDnC,eAAO,MAAM,IAAI,QAAO,QAA4C,CAAC;AAErE,eAAO,MAAM,sBAAsB,SAAU,IAAI,CAAC,IAAI,KAAG,MAwCxD,CAAC;AAYF,eAAO,MAAM,gCAAgC,aACjC,QAAQ,CAAC,QAAQ,KAC1B,gBA2BF,CAAC;AAEF,KAAK,gBAAgB,GAAG,OAAO,CAC7B,aAAa,CAAC,UAAU,CAAC,EACzB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CronJobs.js","names":["makeConvexCrons"],"sources":["../src/CronJobs.ts"],"sourcesContent":["import { Ref } from \"@confect/core\";\nimport type { CronJob as ConvexCronJob } from \"convex/server\";\nimport { cronJobs as makeConvexCrons, type Crons } from \"convex/server\";\nimport { pipe } from \"effect/Function\";\nimport * as Array from \"effect/Array\";\nimport * as Cron from \"effect/Cron\";\nimport * as DateTime from \"effect/DateTime\";\nimport * as Duration from \"effect/Duration\";\nimport * as Match from \"effect/Match\";\nimport * as Option from \"effect/Option\";\nimport * as Order from \"effect/Order\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Record from \"effect/Record\";\nimport type * as CronJob from \"./CronJob\";\n\nexport const TypeId = \"~@confect/server/CronJobs\";\nexport type TypeId = typeof TypeId;\n\nexport interface CronJobs {\n readonly [TypeId]: TypeId;\n readonly cronJobs: Record<string, CronJob.CronJob>;\n readonly convexCronJobs: Crons;\n\n add(cron: CronJob.CronJob): CronJobs;\n}\n\nexport const isCronJobs = (u: unknown): u is CronJobs =>\n Predicate.hasProperty(u, TypeId);\n\nconst Proto = {\n [TypeId]: TypeId,\n\n add(this: CronJobs, cronJob: CronJob.CronJob) {\n const newConvexCrons = Object.assign(makeConvexCrons(), {\n crons: { ...this.convexCronJobs.crons },\n });\n\n const functionReference = Ref.getFunctionReference(cronJob.ref);\n const encodedArgs = Ref.encodeArgsSync(cronJob.ref, cronJob.args);\n\n Match.value(cronJob.schedule).pipe(\n Match.when(Cron.isCron, (cron) => {\n newConvexCrons.cron(\n cronJob.identifier,\n cronToConvexCronString(cron),\n functionReference,\n encodedArgs,\n );\n }),\n Match.when(Duration.isDuration, (duration) => {\n newConvexCrons.interval(\n cronJob.identifier,\n durationToConvexIntervalSchedule(duration),\n functionReference,\n encodedArgs,\n );\n }),\n Match.exhaustive,\n );\n\n return makeProto(\n Record.set(this.cronJobs, cronJob.identifier, cronJob),\n newConvexCrons,\n );\n },\n};\n\nconst makeProto = (\n cronJobs: Record<string, CronJob.CronJob>,\n convexCronJobs: Crons,\n): CronJobs =>\n Object.assign(Object.create(Proto), {\n cronJobs,\n convexCronJobs,\n });\n\nexport const make = (): CronJobs => makeProto({}, makeConvexCrons());\n\nexport const cronToConvexCronString = (cron: Cron.Cron): string => {\n pipe(\n cron.tz,\n Option.filter((tz) =>\n pipe(\n tz,\n Match.value,\n Match.tag(\"Offset\", ({ offset }) => offset !== 0),\n Match.tag(\"Named\", ({ id }) => id !== \"UTC\" && id !== \"Etc/UTC\"),\n Match.exhaustive,\n ),\n ),\n Option.map((tz) => {\n throw new Error(\n `Convex cron expressions are always evaluated in UTC, but this cron ` +\n `specifies the time zone \"${DateTime.zoneToString(tz)}\". ` +\n `Either omit the timezone or specify UTC.`,\n );\n }),\n );\n\n const hasNonDefaultSeconds = cron.seconds.size !== 1 || !cron.seconds.has(0);\n if (hasNonDefaultSeconds) {\n throw new Error(\n \"Convex cron expressions do not support a seconds field. \" +\n \"The seconds field must be the default {0}. \" +\n \"Sub-minute scheduling is supported only by interval schedules defined using a Duration.\",\n );\n }\n\n return Array.join(\n [\n setToField(cron.minutes),\n setToField(cron.hours),\n setToField(cron.days),\n setToField(cron.months),\n setToField(cron.weekdays),\n ],\n \" \",\n );\n};\n\nconst setToField = (set: ReadonlySet<number>): string => {\n if (set.size === 0) return \"*\";\n return pipe(\n set,\n Array.sort(Order.Number),\n Array.map((n) => n.toString()),\n Array.join(\",\"),\n );\n};\n\nexport const durationToConvexIntervalSchedule = (\n duration: Duration.Duration,\n): IntervalSchedule => {\n const millis = Duration.toMillis(duration);\n if (millis <= 0) {\n throw new Error(\"Interval must be a positive duration.\");\n }\n\n const oneHourInMillis = Duration.hours(1).pipe(Duration.toMillis);\n const hours = millis / oneHourInMillis;\n if (Number.isInteger(hours)) {\n return { type: \"interval\", hours };\n }\n\n const oneMinuteInMillis = Duration.minutes(1).pipe(Duration.toMillis);\n const minutes = millis / oneMinuteInMillis;\n if (Number.isInteger(minutes)) {\n return { type: \"interval\", minutes };\n }\n\n const oneSecondInMillis = Duration.seconds(1).pipe(Duration.toMillis);\n const seconds = millis / oneSecondInMillis;\n if (Number.isInteger(seconds)) {\n return { type: \"interval\", seconds };\n }\n\n throw new Error(\n \"Interval must be a whole number of seconds, minutes, or hours.\",\n );\n};\n\ntype IntervalSchedule = Extract<\n ConvexCronJob[\"schedule\"],\n { type: \"interval\" }\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAeA,MAAa,SAAS;AAWtB,MAAa,cAAc,MACzB,UAAU,YAAY,GAAG,MAAM;AAEjC,MAAM,QAAQ;EACX,SAAS;CAEV,IAAoB,SAA0B;EAC5C,MAAM,iBAAiB,OAAO,OAAOA,SAAgB,GAAG,EACtD,OAAO,EAAE,GAAG,KAAK,eAAe,MAAM,EACxC,CAAC;EAED,MAAM,oBAAoB,IAAI,qBAAqB,QAAQ,GAAG;EAC9D,MAAM,cAAc,IAAI,eAAe,QAAQ,KAAK,QAAQ,IAAI;EAEhE,MAAM,MAAM,QAAQ,QAAQ,CAAC,CAAC,KAC5B,MAAM,KAAK,KAAK,SAAS,SAAS;GAChC,eAAe,KACb,QAAQ,YACR,uBAAuB,IAAI,GAC3B,mBACA,WACF;EACF,CAAC,GACD,MAAM,KAAK,SAAS,aAAa,aAAa;GAC5C,eAAe,SACb,QAAQ,YACR,iCAAiC,QAAQ,GACzC,mBACA,WACF;EACF,CAAC,GACD,MAAM,UACR;EAEA,OAAO,UACL,OAAO,IAAI,KAAK,UAAU,QAAQ,YAAY,OAAO,GACrD,cACF;CACF;AACF;AAEA,MAAM,aACJ,UACA,mBAEA,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG;CAClC;CACA;AACF,CAAC;AAEH,MAAa,aAAuB,UAAU,CAAC,GAAGA,SAAgB,CAAC;AAEnE,MAAa,0BAA0B,SAA4B;CACjE,KACE,KAAK,IACL,OAAO,QAAQ,OACb,KACE,IACA,MAAM,OACN,MAAM,IAAI,WAAW,EAAE,aAAa,WAAW,CAAC,GAChD,MAAM,IAAI,UAAU,EAAE,SAAS,OAAO,SAAS,OAAO,SAAS,GAC/D,MAAM,UACR,CACF,GACA,OAAO,KAAK,OAAO;EACjB,MAAM,IAAI,MACR,+FAC8B,SAAS,aAAa,EAAE,EAAE,4CAE1D;CACF,CAAC,CACH;CAGA,IAD6B,KAAK,QAAQ,SAAS,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,GAEzE,MAAM,IAAI,MACR,4LAGF;CAGF,OAAO,MAAM,KACX;EACE,WAAW,KAAK,OAAO;EACvB,WAAW,KAAK,KAAK;EACrB,WAAW,KAAK,IAAI;EACpB,WAAW,KAAK,MAAM;EACtB,WAAW,KAAK,QAAQ;CAC1B,GACA,GACF;AACF;AAEA,MAAM,cAAc,QAAqC;CACvD,IAAI,IAAI,SAAS,GAAG,OAAO;CAC3B,OAAO,KACL,KACA,MAAM,KAAK,MAAM,MAAM,GACvB,MAAM,KAAK,MAAM,EAAE,SAAS,CAAC,GAC7B,MAAM,KAAK,GAAG,CAChB;AACF;AAEA,MAAa,oCACX,aACqB;CACrB,MAAM,SAAS,SAAS,SAAS,QAAQ;CACzC,IAAI,UAAU,GACZ,MAAM,IAAI,MAAM,uCAAuC;CAIzD,MAAM,QAAQ,SADU,SAAS,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,QACnB;CACrC,IAAI,OAAO,UAAU,KAAK,GACxB,OAAO;EAAE,MAAM;EAAY;CAAM;CAInC,MAAM,UAAU,SADU,SAAS,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,QACnB;CACzC,IAAI,OAAO,UAAU,OAAO,GAC1B,OAAO;EAAE,MAAM;EAAY;CAAQ;CAIrC,MAAM,UAAU,SADU,SAAS,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,QACnB;CACzC,IAAI,OAAO,UAAU,OAAO,GAC1B,OAAO;EAAE,MAAM;EAAY;CAAQ;CAGrC,MAAM,IAAI,MACR,gEACF;AACF"}
1
+ {"version":3,"file":"CronJobs.js","names":["makeConvexCrons"],"sources":["../src/CronJobs.ts"],"sourcesContent":["import { Ref } from \"@confect/core\";\nimport type { CronJob as ConvexCronJob } from \"convex/server\";\nimport { cronJobs as makeConvexCrons, type Crons } from \"convex/server\";\nimport { pipe } from \"effect/Function\";\nimport * as Array from \"effect/Array\";\nimport * as Cron from \"effect/Cron\";\nimport * as DateTime from \"effect/DateTime\";\nimport * as Duration from \"effect/Duration\";\nimport * as Match from \"effect/Match\";\nimport * as Option from \"effect/Option\";\nimport * as Order from \"effect/Order\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Record from \"effect/Record\";\nimport type * as CronJob from \"./CronJob.js\";\n\nexport const TypeId = \"~@confect/server/CronJobs\";\nexport type TypeId = typeof TypeId;\n\nexport interface CronJobs {\n readonly [TypeId]: TypeId;\n readonly cronJobs: Record<string, CronJob.CronJob>;\n readonly convexCronJobs: Crons;\n\n add(cron: CronJob.CronJob): CronJobs;\n}\n\nexport const isCronJobs = (u: unknown): u is CronJobs =>\n Predicate.hasProperty(u, TypeId);\n\nconst Proto = {\n [TypeId]: TypeId,\n\n add(this: CronJobs, cronJob: CronJob.CronJob) {\n const newConvexCrons = Object.assign(makeConvexCrons(), {\n crons: { ...this.convexCronJobs.crons },\n });\n\n const functionReference = Ref.getFunctionReference(cronJob.ref);\n const encodedArgs = Ref.encodeArgsSync(cronJob.ref, cronJob.args);\n\n Match.value(cronJob.schedule).pipe(\n Match.when(Cron.isCron, (cron) => {\n newConvexCrons.cron(\n cronJob.identifier,\n cronToConvexCronString(cron),\n functionReference,\n encodedArgs,\n );\n }),\n Match.when(Duration.isDuration, (duration) => {\n newConvexCrons.interval(\n cronJob.identifier,\n durationToConvexIntervalSchedule(duration),\n functionReference,\n encodedArgs,\n );\n }),\n Match.exhaustive,\n );\n\n return makeProto(\n Record.set(this.cronJobs, cronJob.identifier, cronJob),\n newConvexCrons,\n );\n },\n};\n\nconst makeProto = (\n cronJobs: Record<string, CronJob.CronJob>,\n convexCronJobs: Crons,\n): CronJobs =>\n Object.assign(Object.create(Proto), {\n cronJobs,\n convexCronJobs,\n });\n\nexport const make = (): CronJobs => makeProto({}, makeConvexCrons());\n\nexport const cronToConvexCronString = (cron: Cron.Cron): string => {\n pipe(\n cron.tz,\n Option.filter((tz) =>\n pipe(\n tz,\n Match.value,\n Match.tag(\"Offset\", ({ offset }) => offset !== 0),\n Match.tag(\"Named\", ({ id }) => id !== \"UTC\" && id !== \"Etc/UTC\"),\n Match.exhaustive,\n ),\n ),\n Option.map((tz) => {\n throw new Error(\n `Convex cron expressions are always evaluated in UTC, but this cron ` +\n `specifies the time zone \"${DateTime.zoneToString(tz)}\". ` +\n `Either omit the timezone or specify UTC.`,\n );\n }),\n );\n\n const hasNonDefaultSeconds = cron.seconds.size !== 1 || !cron.seconds.has(0);\n if (hasNonDefaultSeconds) {\n throw new Error(\n \"Convex cron expressions do not support a seconds field. \" +\n \"The seconds field must be the default {0}. \" +\n \"Sub-minute scheduling is supported only by interval schedules defined using a Duration.\",\n );\n }\n\n return Array.join(\n [\n setToField(cron.minutes),\n setToField(cron.hours),\n setToField(cron.days),\n setToField(cron.months),\n setToField(cron.weekdays),\n ],\n \" \",\n );\n};\n\nconst setToField = (set: ReadonlySet<number>): string => {\n if (set.size === 0) return \"*\";\n return pipe(\n set,\n Array.sort(Order.Number),\n Array.map((n) => n.toString()),\n Array.join(\",\"),\n );\n};\n\nexport const durationToConvexIntervalSchedule = (\n duration: Duration.Duration,\n): IntervalSchedule => {\n const millis = Duration.toMillis(duration);\n if (millis <= 0) {\n throw new Error(\"Interval must be a positive duration.\");\n }\n\n const oneHourInMillis = Duration.hours(1).pipe(Duration.toMillis);\n const hours = millis / oneHourInMillis;\n if (Number.isInteger(hours)) {\n return { type: \"interval\", hours };\n }\n\n const oneMinuteInMillis = Duration.minutes(1).pipe(Duration.toMillis);\n const minutes = millis / oneMinuteInMillis;\n if (Number.isInteger(minutes)) {\n return { type: \"interval\", minutes };\n }\n\n const oneSecondInMillis = Duration.seconds(1).pipe(Duration.toMillis);\n const seconds = millis / oneSecondInMillis;\n if (Number.isInteger(seconds)) {\n return { type: \"interval\", seconds };\n }\n\n throw new Error(\n \"Interval must be a whole number of seconds, minutes, or hours.\",\n );\n};\n\ntype IntervalSchedule = Extract<\n ConvexCronJob[\"schedule\"],\n { type: \"interval\" }\n>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAeA,MAAa,SAAS;AAWtB,MAAa,cAAc,MACzB,UAAU,YAAY,GAAG,MAAM;AAEjC,MAAM,QAAQ;EACX,SAAS;CAEV,IAAoB,SAA0B;EAC5C,MAAM,iBAAiB,OAAO,OAAOA,SAAgB,GAAG,EACtD,OAAO,EAAE,GAAG,KAAK,eAAe,MAAM,EACxC,CAAC;EAED,MAAM,oBAAoB,IAAI,qBAAqB,QAAQ,GAAG;EAC9D,MAAM,cAAc,IAAI,eAAe,QAAQ,KAAK,QAAQ,IAAI;EAEhE,MAAM,MAAM,QAAQ,QAAQ,CAAC,CAAC,KAC5B,MAAM,KAAK,KAAK,SAAS,SAAS;GAChC,eAAe,KACb,QAAQ,YACR,uBAAuB,IAAI,GAC3B,mBACA,WACF;EACF,CAAC,GACD,MAAM,KAAK,SAAS,aAAa,aAAa;GAC5C,eAAe,SACb,QAAQ,YACR,iCAAiC,QAAQ,GACzC,mBACA,WACF;EACF,CAAC,GACD,MAAM,UACR;EAEA,OAAO,UACL,OAAO,IAAI,KAAK,UAAU,QAAQ,YAAY,OAAO,GACrD,cACF;CACF;AACF;AAEA,MAAM,aACJ,UACA,mBAEA,OAAO,OAAO,OAAO,OAAO,KAAK,GAAG;CAClC;CACA;AACF,CAAC;AAEH,MAAa,aAAuB,UAAU,CAAC,GAAGA,SAAgB,CAAC;AAEnE,MAAa,0BAA0B,SAA4B;CACjE,KACE,KAAK,IACL,OAAO,QAAQ,OACb,KACE,IACA,MAAM,OACN,MAAM,IAAI,WAAW,EAAE,aAAa,WAAW,CAAC,GAChD,MAAM,IAAI,UAAU,EAAE,SAAS,OAAO,SAAS,OAAO,SAAS,GAC/D,MAAM,UACR,CACF,GACA,OAAO,KAAK,OAAO;EACjB,MAAM,IAAI,MACR,+FAC8B,SAAS,aAAa,EAAE,EAAE,4CAE1D;CACF,CAAC,CACH;CAGA,IAD6B,KAAK,QAAQ,SAAS,KAAK,CAAC,KAAK,QAAQ,IAAI,CAAC,GAEzE,MAAM,IAAI,MACR,4LAGF;CAGF,OAAO,MAAM,KACX;EACE,WAAW,KAAK,OAAO;EACvB,WAAW,KAAK,KAAK;EACrB,WAAW,KAAK,IAAI;EACpB,WAAW,KAAK,MAAM;EACtB,WAAW,KAAK,QAAQ;CAC1B,GACA,GACF;AACF;AAEA,MAAM,cAAc,QAAqC;CACvD,IAAI,IAAI,SAAS,GAAG,OAAO;CAC3B,OAAO,KACL,KACA,MAAM,KAAK,MAAM,MAAM,GACvB,MAAM,KAAK,MAAM,EAAE,SAAS,CAAC,GAC7B,MAAM,KAAK,GAAG,CAChB;AACF;AAEA,MAAa,oCACX,aACqB;CACrB,MAAM,SAAS,SAAS,SAAS,QAAQ;CACzC,IAAI,UAAU,GACZ,MAAM,IAAI,MAAM,uCAAuC;CAIzD,MAAM,QAAQ,SADU,SAAS,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,QACnB;CACrC,IAAI,OAAO,UAAU,KAAK,GACxB,OAAO;EAAE,MAAM;EAAY;CAAM;CAInC,MAAM,UAAU,SADU,SAAS,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,QACnB;CACzC,IAAI,OAAO,UAAU,OAAO,GAC1B,OAAO;EAAE,MAAM;EAAY;CAAQ;CAIrC,MAAM,UAAU,SADU,SAAS,QAAQ,CAAC,CAAC,CAAC,KAAK,SAAS,QACnB;CACzC,IAAI,OAAO,UAAU,OAAO,GAC1B,OAAO;EAAE,MAAM;EAAY;CAAQ;CAGrC,MAAM,IAAI,MACR,gEACF;AACF"}
@@ -1,6 +1,6 @@
1
- import type * as DatabaseSchema from "./DatabaseSchema";
2
- import type * as Table from "./Table";
3
- import type * as TableInfo from "./TableInfo";
1
+ import type * as DatabaseSchema from "./DatabaseSchema.js";
2
+ import type * as Table from "./Table.js";
3
+ import type * as TableInfo from "./TableInfo.js";
4
4
  import type * as GenericId from "@confect/core/GenericId";
5
5
  export declare const TypeId: "~@confect/server/DataModel";
6
6
  export type TypeId = typeof TypeId;
@@ -1 +1 @@
1
- {"version":3,"file":"DataModel.d.ts","sourceRoot":"","sources":["../src/DataModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,KAAK,SAAS,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,4BAA4B,CAAC;AAC1D,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,MAAM,WAAW,SAAS,CACxB,OAAO,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAE5D,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,YAAa,SAAQ,SAAS,CAC7C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAC7C;CAAG;AAEJ,MAAM,MAAM,UAAU,CAAC,MAAM,SAAS,cAAc,CAAC,YAAY,IAAI,SAAS,CAC5E,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAC9B,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,KAAK,CAAC,YAAY,IAAI,SAAS,CACpE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAC5B,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,UAAU,SAAS,YAAY,IAAI;KACrD,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,iBAAiB,CACvD,UAAU,EACV,UAAU,CACX;CACF,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,UAAU,SAAS,YAAY,IAChD,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAE/C,MAAM,MAAM,UAAU,CAAC,UAAU,SAAS,YAAY,IAAI,KAAK,CAAC,IAAI,CAClE,MAAM,CAAC,UAAU,CAAC,CACnB,GACC,MAAM,CAAC;AAET,MAAM,MAAM,aAAa,CACvB,UAAU,SAAS,YAAY,EAC/B,SAAS,SAAS,UAAU,CAAC,UAAU,CAAC,IACtC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;AAElD,MAAM,MAAM,kBAAkB,CAC5B,UAAU,SAAS,YAAY,EAC/B,SAAS,SAAS,UAAU,CAAC,UAAU,CAAC,IACtC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;AAEvE,MAAM,MAAM,iBAAiB,CAC3B,UAAU,SAAS,YAAY,EAC/B,SAAS,SAAS,UAAU,CAAC,UAAU,CAAC,IACtC,SAAS,CAAC,eAAe,CAC3B,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CACnE,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAC1B,UAAU,SAAS,YAAY,EAC/B,SAAS,SAAS,UAAU,CAAC,UAAU,CAAC,IACtC,SAAS,CAAC,QAAQ,CACpB,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,CACnE,CAAC;AAEF,MAAM,MAAM,cAAc,CACxB,UAAU,SAAS,YAAY,EAC/B,SAAS,SAAS,UAAU,CAAC,UAAU,CAAC,IACtC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAE5C,MAAM,MAAM,EAAE,CACZ,UAAU,SAAS,YAAY,EAC/B,SAAS,SAAS,UAAU,CAAC,UAAU,CAAC,IACtC,SAAS,CAAC,SAAS,CACrB,SAAS,EACT,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAClD,CAAC"}
1
+ {"version":3,"file":"DataModel.d.ts","sourceRoot":"","sources":["../src/DataModel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DataModel.js","names":[],"sources":["../src/DataModel.ts"],"sourcesContent":["import type * as DatabaseSchema from \"./DatabaseSchema\";\nimport type * as Table from \"./Table\";\nimport type * as TableInfo from \"./TableInfo\";\nimport type * as GenericId from \"@confect/core/GenericId\";\n\nexport declare const TypeId: \"~@confect/server/DataModel\";\nexport type TypeId = typeof TypeId;\n\nexport interface DataModel<\n Tables_ extends Readonly<Record<string, Table.AnyWithProps>>,\n> {\n readonly [TypeId]: Readonly<Tables_>;\n}\n\nexport interface Any {\n readonly [TypeId]: unknown;\n}\n\nexport interface AnyWithProps extends DataModel<\n Readonly<Record<string, Table.AnyWithProps>>\n> {}\n\nexport type FromSchema<Schema extends DatabaseSchema.AnyWithProps> = DataModel<\n Schema[DatabaseSchema.TypeId]\n>;\n\nexport type FromTables<Tables_ extends Table.AnyWithProps> = DataModel<\n Table.TablesRecord<Tables_>\n>;\n\nexport type ToConvex<DataModel_ extends AnyWithProps> = {\n [TableName_ in TableNames<DataModel_>]: TableInfoWithName<\n DataModel_,\n TableName_\n >;\n};\n\nexport type Tables<DataModel_ extends AnyWithProps> =\n DataModel_[TypeId][keyof DataModel_[TypeId]];\n\nexport type TableNames<DataModel_ extends AnyWithProps> = Table.Name<\n Tables<DataModel_>\n> &\n string;\n\nexport type TableWithName<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = Table.WithName<Tables<DataModel_>, TableName>;\n\nexport type TableInfoWithName_<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = TableInfo.TableInfo<Table.WithName<Tables<DataModel_>, TableName>>;\n\nexport type TableInfoWithName<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = TableInfo.ConvexTableInfo<\n TableInfo.TableInfo<Table.WithName<Tables<DataModel_>, TableName>>\n>;\n\nexport type DocumentWithName<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = TableInfo.Document<\n TableInfo.TableInfo<Table.WithName<Tables<DataModel_>, TableName>>\n>;\n\nexport type DocumentByName<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = DocumentWithName<DataModel_, TableName>;\n\nexport type Id<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = GenericId.GenericId<\n TableName,\n Table.Scope<TableWithName<DataModel_, TableName>>\n>;\n"],"mappings":""}
1
+ {"version":3,"file":"DataModel.js","names":[],"sources":["../src/DataModel.ts"],"sourcesContent":["import type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as Table from \"./Table.js\";\nimport type * as TableInfo from \"./TableInfo.js\";\nimport type * as GenericId from \"@confect/core/GenericId\";\n\nexport declare const TypeId: \"~@confect/server/DataModel\";\nexport type TypeId = typeof TypeId;\n\nexport interface DataModel<\n Tables_ extends Readonly<Record<string, Table.AnyWithProps>>,\n> {\n readonly [TypeId]: Readonly<Tables_>;\n}\n\nexport interface Any {\n readonly [TypeId]: unknown;\n}\n\nexport interface AnyWithProps extends DataModel<\n Readonly<Record<string, Table.AnyWithProps>>\n> {}\n\nexport type FromSchema<Schema extends DatabaseSchema.AnyWithProps> = DataModel<\n Schema[DatabaseSchema.TypeId]\n>;\n\nexport type FromTables<Tables_ extends Table.AnyWithProps> = DataModel<\n Table.TablesRecord<Tables_>\n>;\n\nexport type ToConvex<DataModel_ extends AnyWithProps> = {\n [TableName_ in TableNames<DataModel_>]: TableInfoWithName<\n DataModel_,\n TableName_\n >;\n};\n\nexport type Tables<DataModel_ extends AnyWithProps> =\n DataModel_[TypeId][keyof DataModel_[TypeId]];\n\nexport type TableNames<DataModel_ extends AnyWithProps> = Table.Name<\n Tables<DataModel_>\n> &\n string;\n\nexport type TableWithName<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = Table.WithName<Tables<DataModel_>, TableName>;\n\nexport type TableInfoWithName_<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = TableInfo.TableInfo<Table.WithName<Tables<DataModel_>, TableName>>;\n\nexport type TableInfoWithName<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = TableInfo.ConvexTableInfo<\n TableInfo.TableInfo<Table.WithName<Tables<DataModel_>, TableName>>\n>;\n\nexport type DocumentWithName<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = TableInfo.Document<\n TableInfo.TableInfo<Table.WithName<Tables<DataModel_>, TableName>>\n>;\n\nexport type DocumentByName<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = DocumentWithName<DataModel_, TableName>;\n\nexport type Id<\n DataModel_ extends AnyWithProps,\n TableName extends TableNames<DataModel_>,\n> = GenericId.GenericId<\n TableName,\n Table.Scope<TableWithName<DataModel_, TableName>>\n>;\n"],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  import type { GenericDatabaseReader } from "convex/server";
2
2
  import * as Context from "effect/Context";
3
3
  import * as Layer from "effect/Layer";
4
- import * as DatabaseSchema from "./DatabaseSchema";
5
- import type * as DataModel from "./DataModel";
6
- import * as QueryInitializer from "./QueryInitializer";
7
- import * as Table from "./Table";
4
+ import * as DatabaseSchema from "./DatabaseSchema.js";
5
+ import type * as DataModel from "./DataModel.js";
6
+ import * as QueryInitializer from "./QueryInitializer.js";
7
+ import * as Table from "./Table.js";
8
8
  type IncludedTables<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = DatabaseSchema.Tables<DatabaseSchema_> | Table.SystemTables<DatabaseSchema.Scope<DatabaseSchema_>>;
9
9
  type IncludedDataModel<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = DataModel.FromTables<IncludedTables<DatabaseSchema_>>;
10
10
  export interface DatabaseReaderService<DatabaseSchema_ extends DatabaseSchema.AnyWithProps, Docs = {}> {
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseReader.d.ts","sourceRoot":"","sources":["../src/DatabaseReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,KAAK,cAAc,CAAC,eAAe,SAAS,cAAc,CAAC,YAAY,IACnE,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,GACtC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AAE9D,KAAK,iBAAiB,CAAC,eAAe,SAAS,cAAc,CAAC,YAAY,IACxE,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;AAExD,MAAM,WAAW,qBAAqB,CACpC,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,IAAI,GAAG,EAAE;IAET,QAAQ,CAAC,KAAK,EAAE,CACd,KAAK,CAAC,SAAS,SAAS,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,EAEnE,SAAS,EAAE,SAAS,KACjB,gBAAgB,CAAC,gBAAgB,CACpC,iBAAiB,CAAC,eAAe,CAAC,EAClC,SAAS,EACT,SAAS,SAAS,MAAM,IAAI,GACxB,IAAI,CAAC,SAAS,CAAC,GACf,SAAS,CAAC,gBAAgB,CACxB,iBAAiB,CAAC,eAAe,CAAC,EAClC,SAAS,CACV,EACL,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAClC,CAAC;CACH;AAED,eAAO,MAAM,IAAI,GAAI,eAAe,SAAS,cAAc,CAAC,YAAY,kBACtD,eAAe,wBACT,qBAAqB,CACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAC1D,KACA,qBAAqB,CAAC,eAAe,CAoCvC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,CAC3B,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,IAAI,GAAG,EAAE,IACP,OAAO,CAAC,OAAO,CACjB,qBAAqB,CAAC,eAAe,CAAC,EACtC,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,CAC7C,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,IAAI,GAAG,EAAE,OACN,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAIP,CAAC;AAEtC,MAAM,MAAM,cAAc,CACxB,eAAe,SAAS,cAAc,CAAC,YAAY,IACjD,qBAAqB,CAAC,eAAe,CAAC,CAAC;AAE3C,eAAO,MAAM,KAAK,GAAI,eAAe,SAAS,cAAc,CAAC,YAAY,kBACvD,eAAe,wBACT,qBAAqB,CACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAC1D,0EAKA,CAAC"}
1
+ {"version":3,"file":"DatabaseReader.d.ts","sourceRoot":"","sources":["../src/DatabaseReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,KAAK,cAAc,CAAC,eAAe,SAAS,cAAc,CAAC,YAAY,IACnE,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,GACtC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;AAE9D,KAAK,iBAAiB,CAAC,eAAe,SAAS,cAAc,CAAC,YAAY,IACxE,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC;AAExD,MAAM,WAAW,qBAAqB,CACpC,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,IAAI,GAAG,EAAE;IAET,QAAQ,CAAC,KAAK,EAAE,CACd,KAAK,CAAC,SAAS,SAAS,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,EAEnE,SAAS,EAAE,SAAS,KACjB,gBAAgB,CAAC,gBAAgB,CACpC,iBAAiB,CAAC,eAAe,CAAC,EAClC,SAAS,EACT,SAAS,SAAS,MAAM,IAAI,GACxB,IAAI,CAAC,SAAS,CAAC,GACf,SAAS,CAAC,gBAAgB,CACxB,iBAAiB,CAAC,eAAe,CAAC,EAClC,SAAS,CACV,EACL,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAClC,CAAC;CACH;AAED,eAAO,MAAM,IAAI,GAAI,eAAe,SAAS,cAAc,CAAC,YAAY,kBACtD,eAAe,wBACT,qBAAqB,CACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAC1D,KACA,qBAAqB,CAAC,eAAe,CAoCvC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,CAC3B,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,IAAI,GAAG,EAAE,IACP,OAAO,CAAC,OAAO,CACjB,qBAAqB,CAAC,eAAe,CAAC,EACtC,qBAAqB,CAAC,eAAe,EAAE,IAAI,CAAC,CAC7C,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,eAAe,SAAS,cAAc,CAAC,YAAY,EACnD,IAAI,GAAG,EAAE,OACN,iBAAiB,CAAC,eAAe,EAAE,IAAI,CAIP,CAAC;AAEtC,MAAM,MAAM,cAAc,CACxB,eAAe,SAAS,cAAc,CAAC,YAAY,IACjD,qBAAqB,CAAC,eAAe,CAAC,CAAC;AAE3C,eAAO,MAAM,KAAK,GAAI,eAAe,SAAS,cAAc,CAAC,YAAY,kBACvD,eAAe,wBACT,qBAAqB,CACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAC1D,0EAKA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseReader.js","names":["Table.systemTablesForScope","DatabaseSchema.tables","QueryInitializer.make"],"sources":["../src/DatabaseReader.ts"],"sourcesContent":["import type { GenericDatabaseReader } from \"convex/server\";\nimport * as Context from \"effect/Context\";\nimport * as Layer from \"effect/Layer\";\nimport type { BaseDatabaseReader } from \"@confect/core/Types\";\nimport * as DatabaseSchema from \"./DatabaseSchema\";\nimport type * as DataModel from \"./DataModel\";\nimport * as QueryInitializer from \"./QueryInitializer\";\nimport * as Table from \"./Table\";\n\ntype IncludedTables<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> =\n | DatabaseSchema.Tables<DatabaseSchema_>\n | Table.SystemTables<DatabaseSchema.Scope<DatabaseSchema_>>;\n\ntype IncludedDataModel<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> =\n DataModel.FromTables<IncludedTables<DatabaseSchema_>>;\n\nexport interface DatabaseReaderService<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> {\n readonly table: <\n const TableName extends Table.Name<IncludedTables<DatabaseSchema_>>,\n >(\n tableName: TableName,\n ) => QueryInitializer.QueryInitializer<\n IncludedDataModel<DatabaseSchema_>,\n TableName,\n TableName extends keyof Docs\n ? Docs[TableName]\n : DataModel.DocumentWithName<\n IncludedDataModel<DatabaseSchema_>,\n TableName\n >,\n DatabaseSchema_[\"target\"][\"kind\"]\n >;\n}\n\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseReader: GenericDatabaseReader<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n): DatabaseReaderService<DatabaseSchema_> => {\n const systemTables = Table.systemTablesForScope(databaseSchema.target.scope);\n return {\n table: <\n const TableName extends Table.Name<IncludedTables<DatabaseSchema_>>,\n >(\n tableName: TableName,\n ) => {\n const isSystem = Object.hasOwn(systemTables, tableName);\n\n const baseDatabaseReader: BaseDatabaseReader<any> = isSystem\n ? {\n get: convexDatabaseReader.system.get.bind(\n convexDatabaseReader.system,\n ),\n query: convexDatabaseReader.system.query.bind(\n convexDatabaseReader.system,\n ),\n }\n : {\n get: convexDatabaseReader.get.bind(convexDatabaseReader),\n query: convexDatabaseReader.query.bind(convexDatabaseReader),\n };\n\n const table = (\n isSystem\n ? (systemTables as Record<string, Table.AnyWithProps>)[tableName]\n : DatabaseSchema.tables(databaseSchema)[tableName]\n ) as Table.WithName<IncludedTables<DatabaseSchema_>, TableName>;\n\n return QueryInitializer.make<IncludedTables<DatabaseSchema_>, TableName>(\n baseDatabaseReader,\n table,\n );\n },\n } as DatabaseReaderService<DatabaseSchema_>;\n};\n\n/**\n * The tag's _Identifier_ (the Effect requirements-channel type) is\n * `Docs`-independent so a helper's `R` channel is the same whether or not a\n * codegen document registry is supplied—this keeps it identical to what\n * `Handler`/runtime provisioning provide. The tag's _Service_ (what `yield*`\n * produces) carries `Docs`, so queries resolve to the named doc interfaces.\n */\nexport type DatabaseReaderTag<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> = Context.Service<\n DatabaseReaderService<DatabaseSchema_>,\n DatabaseReaderService<DatabaseSchema_, Docs>\n>;\n\nexport const DatabaseReader = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n>(): DatabaseReaderTag<DatabaseSchema_, Docs> =>\n Context.Service<\n DatabaseReaderService<DatabaseSchema_>,\n DatabaseReaderService<DatabaseSchema_, Docs>\n >(\"@confect/server/DatabaseReader\");\n\nexport type DatabaseReader<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = DatabaseReaderService<DatabaseSchema_>;\n\nexport const layer = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseReader: GenericDatabaseReader<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n) =>\n Layer.succeed(\n DatabaseReader<DatabaseSchema_>(),\n make(databaseSchema, convexDatabaseReader),\n );\n"],"mappings":";;;;;;;;;;;;AAqCA,MAAa,QACX,gBACA,yBAG2C;CAC3C,MAAM,eAAeA,qBAA2B,eAAe,OAAO,KAAK;CAC3E,OAAO,EACL,QAGE,cACG;EACH,MAAM,WAAW,OAAO,OAAO,cAAc,SAAS;EAEtD,MAAM,qBAA8C,WAChD;GACE,KAAK,qBAAqB,OAAO,IAAI,KACnC,qBAAqB,MACvB;GACA,OAAO,qBAAqB,OAAO,MAAM,KACvC,qBAAqB,MACvB;EACF,IACA;GACE,KAAK,qBAAqB,IAAI,KAAK,oBAAoB;GACvD,OAAO,qBAAqB,MAAM,KAAK,oBAAoB;EAC7D;EAEJ,MAAM,QACJ,WACK,aAAoD,aACrDC,OAAsB,cAAc,CAAC,CAAC;EAG5C,OAAOC,OACL,oBACA,KACF;CACF,EACF;AACF;AAiBA,MAAa,uBAIX,QAAQ,QAGN,gCAAgC;AAMpC,MAAa,SACX,gBACA,yBAIA,MAAM,QACJ,eAAgC,GAChC,KAAK,gBAAgB,oBAAoB,CAC3C"}
1
+ {"version":3,"file":"DatabaseReader.js","names":["Table.systemTablesForScope","DatabaseSchema.tables","QueryInitializer.make"],"sources":["../src/DatabaseReader.ts"],"sourcesContent":["import type { GenericDatabaseReader } from \"convex/server\";\nimport * as Context from \"effect/Context\";\nimport * as Layer from \"effect/Layer\";\nimport type { BaseDatabaseReader } from \"@confect/core/Types\";\nimport * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport * as QueryInitializer from \"./QueryInitializer.js\";\nimport * as Table from \"./Table.js\";\n\ntype IncludedTables<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> =\n | DatabaseSchema.Tables<DatabaseSchema_>\n | Table.SystemTables<DatabaseSchema.Scope<DatabaseSchema_>>;\n\ntype IncludedDataModel<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> =\n DataModel.FromTables<IncludedTables<DatabaseSchema_>>;\n\nexport interface DatabaseReaderService<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> {\n readonly table: <\n const TableName extends Table.Name<IncludedTables<DatabaseSchema_>>,\n >(\n tableName: TableName,\n ) => QueryInitializer.QueryInitializer<\n IncludedDataModel<DatabaseSchema_>,\n TableName,\n TableName extends keyof Docs\n ? Docs[TableName]\n : DataModel.DocumentWithName<\n IncludedDataModel<DatabaseSchema_>,\n TableName\n >,\n DatabaseSchema_[\"target\"][\"kind\"]\n >;\n}\n\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseReader: GenericDatabaseReader<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n): DatabaseReaderService<DatabaseSchema_> => {\n const systemTables = Table.systemTablesForScope(databaseSchema.target.scope);\n return {\n table: <\n const TableName extends Table.Name<IncludedTables<DatabaseSchema_>>,\n >(\n tableName: TableName,\n ) => {\n const isSystem = Object.hasOwn(systemTables, tableName);\n\n const baseDatabaseReader: BaseDatabaseReader<any> = isSystem\n ? {\n get: convexDatabaseReader.system.get.bind(\n convexDatabaseReader.system,\n ),\n query: convexDatabaseReader.system.query.bind(\n convexDatabaseReader.system,\n ),\n }\n : {\n get: convexDatabaseReader.get.bind(convexDatabaseReader),\n query: convexDatabaseReader.query.bind(convexDatabaseReader),\n };\n\n const table = (\n isSystem\n ? (systemTables as Record<string, Table.AnyWithProps>)[tableName]\n : DatabaseSchema.tables(databaseSchema)[tableName]\n ) as Table.WithName<IncludedTables<DatabaseSchema_>, TableName>;\n\n return QueryInitializer.make<IncludedTables<DatabaseSchema_>, TableName>(\n baseDatabaseReader,\n table,\n );\n },\n } as DatabaseReaderService<DatabaseSchema_>;\n};\n\n/**\n * The tag's _Identifier_ (the Effect requirements-channel type) is\n * `Docs`-independent so a helper's `R` channel is the same whether or not a\n * codegen document registry is supplied—this keeps it identical to what\n * `Handler`/runtime provisioning provide. The tag's _Service_ (what `yield*`\n * produces) carries `Docs`, so queries resolve to the named doc interfaces.\n */\nexport type DatabaseReaderTag<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> = Context.Service<\n DatabaseReaderService<DatabaseSchema_>,\n DatabaseReaderService<DatabaseSchema_, Docs>\n>;\n\nexport const DatabaseReader = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n>(): DatabaseReaderTag<DatabaseSchema_, Docs> =>\n Context.Service<\n DatabaseReaderService<DatabaseSchema_>,\n DatabaseReaderService<DatabaseSchema_, Docs>\n >(\"@confect/server/DatabaseReader\");\n\nexport type DatabaseReader<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = DatabaseReaderService<DatabaseSchema_>;\n\nexport const layer = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseReader: GenericDatabaseReader<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n) =>\n Layer.succeed(\n DatabaseReader<DatabaseSchema_>(),\n make(databaseSchema, convexDatabaseReader),\n );\n"],"mappings":";;;;;;;;;;;;AAqCA,MAAa,QACX,gBACA,yBAG2C;CAC3C,MAAM,eAAeA,qBAA2B,eAAe,OAAO,KAAK;CAC3E,OAAO,EACL,QAGE,cACG;EACH,MAAM,WAAW,OAAO,OAAO,cAAc,SAAS;EAEtD,MAAM,qBAA8C,WAChD;GACE,KAAK,qBAAqB,OAAO,IAAI,KACnC,qBAAqB,MACvB;GACA,OAAO,qBAAqB,OAAO,MAAM,KACvC,qBAAqB,MACvB;EACF,IACA;GACE,KAAK,qBAAqB,IAAI,KAAK,oBAAoB;GACvD,OAAO,qBAAqB,MAAM,KAAK,oBAAoB;EAC7D;EAEJ,MAAM,QACJ,WACK,aAAoD,aACrDC,OAAsB,cAAc,CAAC,CAAC;EAG5C,OAAOC,OACL,oBACA,KACF;CACF,EACF;AACF;AAiBA,MAAa,uBAIX,QAAQ,QAGN,gCAAgC;AAMpC,MAAa,SACX,gBACA,yBAIA,MAAM,QACJ,eAAgC,GAChC,KAAK,gBAAgB,oBAAoB,CAC3C"}
@@ -1,5 +1,5 @@
1
1
  import * as IdScope from "@confect/core/IdScope";
2
- import type * as Table from "./Table";
2
+ import type * as Table from "./Table.js";
3
3
  declare const EmptyDatabaseScopeError_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 & {
4
4
  readonly _tag: "EmptyDatabaseScopeError";
5
5
  } & Readonly<A>;
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseSchema.d.ts","sourceRoot":"","sources":["../src/DatabaseSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatabaseSchema.d.ts","sourceRoot":"","sources":["../src/DatabaseSchema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseSchema.js","names":[],"sources":["../src/DatabaseSchema.ts"],"sourcesContent":["import * as IdScope from \"@confect/core/IdScope\";\nimport * as Data from \"effect/Data\";\nimport * as Result from \"effect/Result\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Record from \"effect/Record\";\nimport type * as Table from \"./Table\";\n\nexport class EmptyDatabaseScopeError extends Data.TaggedError(\n \"EmptyDatabaseScopeError\",\n)<{\n readonly databaseScope: IdScope.IdScope;\n}> {\n override get message(): string {\n return \"A component database schema requires a nonempty ID scope.\";\n }\n}\n\nexport class TableBindingMismatchError extends Data.TaggedError(\n \"TableBindingMismatchError\",\n)<{\n readonly bindingName: string;\n readonly tableName: string;\n readonly tableScope: IdScope.IdScope;\n readonly databaseScope: IdScope.IdScope;\n}> {\n override get message(): string {\n return `Table '${this.bindingName}' must be bound to its database schema's name and ID scope.`;\n }\n}\n\nexport const TypeId = \"~@confect/server/DatabaseSchema\";\nexport type TypeId = typeof TypeId;\n\nexport interface AppTarget {\n readonly kind: \"app\";\n readonly scope: IdScope.App;\n}\n\nexport interface ComponentTarget<\n Scope_ extends IdScope.IdScope = IdScope.IdScope,\n> {\n readonly kind: \"component\";\n readonly scope: Scope_;\n}\n\nexport type Target = AppTarget | ComponentTarget;\n\nexport interface Any {\n readonly [TypeId]: unknown;\n}\n\nexport const isDatabaseSchema = (u: unknown): u is Any =>\n Predicate.hasProperty(u, TypeId);\n\n/**\n * A schema definition holding a record of bound `Table`s keyed by table name.\n * Codegen emits a single static `DatabaseSchema.make({ ... })` call; laziness\n * lives entirely on each `Table` (its `Fields` and `Doc` are lazy memoised\n * getters), so this layer is a plain record indirection with no module-loading\n * or async machinery.\n */\nexport interface DatabaseSchema<\n Tables_ extends Readonly<Record<string, Table.AnyWithProps>> = {},\n Target_ extends Target = AppTarget,\n> {\n readonly [TypeId]: Readonly<Tables_>;\n readonly target: Target_;\n}\n\nexport interface AnyWithProps extends DatabaseSchema<\n Readonly<Record<string, Table.AnyWithProps>>,\n Target\n> {}\n\nexport type Scope<Schema extends AnyWithProps> = Schema[\"target\"][\"scope\"];\n\nexport type Tables<DatabaseSchema_ extends AnyWithProps> =\n DatabaseSchema_[TypeId][keyof DatabaseSchema_[TypeId]];\n\n/**\n * The bound table record, without evaluating any table schemas.\n */\nexport const tables = <Schema extends AnyWithProps>(\n self: Schema,\n): Schema[TypeId] => self[TypeId];\n\nexport type TableNames<DatabaseSchema_ extends AnyWithProps> = Table.Name<\n Tables<DatabaseSchema_>\n> &\n string;\n\nexport type TableWithName<\n DatabaseSchema_ extends AnyWithProps,\n TableName extends TableNames<DatabaseSchema_>,\n> = Extract<Tables<DatabaseSchema_>, { readonly tableName: TableName }>;\n\nconst validateBindings = (\n tableRecord: Readonly<Record<string, Table.AnyWithProps>>,\n target: Target,\n): Result.Result<void, EmptyDatabaseScopeError | TableBindingMismatchError> => {\n if (target.kind === \"component\" && target.scope === \"\") {\n return Result.fail(\n new EmptyDatabaseScopeError({ databaseScope: target.scope }),\n );\n }\n for (const [name, table] of Record.toEntries(tableRecord)) {\n if (name !== table.tableName || table.scope !== target.scope) {\n return Result.fail(\n new TableBindingMismatchError({\n bindingName: name,\n tableName: table.tableName,\n tableScope: table.scope,\n databaseScope: target.scope,\n }),\n );\n }\n }\n return Result.succeed(undefined);\n};\n\n/**\n * Construct a database schema from its bound table record. The record's keys\n * must match their tables' names. Table schemas remain lazy; construction only\n * stores the record. The empty case is `make({})`.\n */\nexport const make = <\n const TablesRecord extends Readonly<Record<string, Table.AnyWithProps>>,\n const Target_ extends Target = AppTarget,\n>(\n tableRecord: TablesRecord,\n target?: Target_,\n): DatabaseSchema<TablesRecord, Target_> => {\n const resolvedTarget = target ?? { kind: \"app\", scope: IdScope.app };\n Result.getOrThrow(validateBindings(tableRecord, resolvedTarget));\n return {\n [TypeId]: tableRecord,\n target: resolvedTarget,\n } as DatabaseSchema<TablesRecord, Target_>;\n};\n"],"mappings":";;;;;;;;;;;;;;;AAOA,IAAa,0BAAb,cAA6C,KAAK,YAChD,yBACF,CAAC,CAEE;CACD,IAAa,UAAkB;EAC7B,OAAO;CACT;AACF;AAEA,IAAa,4BAAb,cAA+C,KAAK,YAClD,2BACF,CAAC,CAKE;CACD,IAAa,UAAkB;EAC7B,OAAO,UAAU,KAAK,YAAY;CACpC;AACF;AAEA,MAAa,SAAS;AAqBtB,MAAa,oBAAoB,MAC/B,UAAU,YAAY,GAAG,MAAM;;;;AA8BjC,MAAa,UACX,SACmB,KAAK;AAY1B,MAAM,oBACJ,aACA,WAC6E;CAC7E,IAAI,OAAO,SAAS,eAAe,OAAO,UAAU,IAClD,OAAO,OAAO,KACZ,IAAI,wBAAwB,EAAE,eAAe,OAAO,MAAM,CAAC,CAC7D;CAEF,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,UAAU,WAAW,GACtD,IAAI,SAAS,MAAM,aAAa,MAAM,UAAU,OAAO,OACrD,OAAO,OAAO,KACZ,IAAI,0BAA0B;EAC5B,aAAa;EACb,WAAW,MAAM;EACjB,YAAY,MAAM;EAClB,eAAe,OAAO;CACxB,CAAC,CACH;CAGJ,OAAO,OAAO,QAAQ,KAAA,CAAS;AACjC;;;;;;AAOA,MAAa,QAIX,aACA,WAC0C;CAC1C,MAAM,iBAAiB,UAAU;EAAE,MAAM;EAAO,OAAO,QAAQ;CAAI;CACnE,OAAO,WAAW,iBAAiB,aAAa,cAAc,CAAC;CAC/D,OAAO;GACJ,SAAS;EACV,QAAQ;CACV;AACF"}
1
+ {"version":3,"file":"DatabaseSchema.js","names":[],"sources":["../src/DatabaseSchema.ts"],"sourcesContent":["import * as IdScope from \"@confect/core/IdScope\";\nimport * as Data from \"effect/Data\";\nimport * as Result from \"effect/Result\";\nimport * as Predicate from \"effect/Predicate\";\nimport * as Record from \"effect/Record\";\nimport type * as Table from \"./Table.js\";\n\nexport class EmptyDatabaseScopeError extends Data.TaggedError(\n \"EmptyDatabaseScopeError\",\n)<{\n readonly databaseScope: IdScope.IdScope;\n}> {\n override get message(): string {\n return \"A component database schema requires a nonempty ID scope.\";\n }\n}\n\nexport class TableBindingMismatchError extends Data.TaggedError(\n \"TableBindingMismatchError\",\n)<{\n readonly bindingName: string;\n readonly tableName: string;\n readonly tableScope: IdScope.IdScope;\n readonly databaseScope: IdScope.IdScope;\n}> {\n override get message(): string {\n return `Table '${this.bindingName}' must be bound to its database schema's name and ID scope.`;\n }\n}\n\nexport const TypeId = \"~@confect/server/DatabaseSchema\";\nexport type TypeId = typeof TypeId;\n\nexport interface AppTarget {\n readonly kind: \"app\";\n readonly scope: IdScope.App;\n}\n\nexport interface ComponentTarget<\n Scope_ extends IdScope.IdScope = IdScope.IdScope,\n> {\n readonly kind: \"component\";\n readonly scope: Scope_;\n}\n\nexport type Target = AppTarget | ComponentTarget;\n\nexport interface Any {\n readonly [TypeId]: unknown;\n}\n\nexport const isDatabaseSchema = (u: unknown): u is Any =>\n Predicate.hasProperty(u, TypeId);\n\n/**\n * A schema definition holding a record of bound `Table`s keyed by table name.\n * Codegen emits a single static `DatabaseSchema.make({ ... })` call; laziness\n * lives entirely on each `Table` (its `Fields` and `Doc` are lazy memoised\n * getters), so this layer is a plain record indirection with no module-loading\n * or async machinery.\n */\nexport interface DatabaseSchema<\n Tables_ extends Readonly<Record<string, Table.AnyWithProps>> = {},\n Target_ extends Target = AppTarget,\n> {\n readonly [TypeId]: Readonly<Tables_>;\n readonly target: Target_;\n}\n\nexport interface AnyWithProps extends DatabaseSchema<\n Readonly<Record<string, Table.AnyWithProps>>,\n Target\n> {}\n\nexport type Scope<Schema extends AnyWithProps> = Schema[\"target\"][\"scope\"];\n\nexport type Tables<DatabaseSchema_ extends AnyWithProps> =\n DatabaseSchema_[TypeId][keyof DatabaseSchema_[TypeId]];\n\n/**\n * The bound table record, without evaluating any table schemas.\n */\nexport const tables = <Schema extends AnyWithProps>(\n self: Schema,\n): Schema[TypeId] => self[TypeId];\n\nexport type TableNames<DatabaseSchema_ extends AnyWithProps> = Table.Name<\n Tables<DatabaseSchema_>\n> &\n string;\n\nexport type TableWithName<\n DatabaseSchema_ extends AnyWithProps,\n TableName extends TableNames<DatabaseSchema_>,\n> = Extract<Tables<DatabaseSchema_>, { readonly tableName: TableName }>;\n\nconst validateBindings = (\n tableRecord: Readonly<Record<string, Table.AnyWithProps>>,\n target: Target,\n): Result.Result<void, EmptyDatabaseScopeError | TableBindingMismatchError> => {\n if (target.kind === \"component\" && target.scope === \"\") {\n return Result.fail(\n new EmptyDatabaseScopeError({ databaseScope: target.scope }),\n );\n }\n for (const [name, table] of Record.toEntries(tableRecord)) {\n if (name !== table.tableName || table.scope !== target.scope) {\n return Result.fail(\n new TableBindingMismatchError({\n bindingName: name,\n tableName: table.tableName,\n tableScope: table.scope,\n databaseScope: target.scope,\n }),\n );\n }\n }\n return Result.succeed(undefined);\n};\n\n/**\n * Construct a database schema from its bound table record. The record's keys\n * must match their tables' names. Table schemas remain lazy; construction only\n * stores the record. The empty case is `make({})`.\n */\nexport const make = <\n const TablesRecord extends Readonly<Record<string, Table.AnyWithProps>>,\n const Target_ extends Target = AppTarget,\n>(\n tableRecord: TablesRecord,\n target?: Target_,\n): DatabaseSchema<TablesRecord, Target_> => {\n const resolvedTarget = target ?? { kind: \"app\", scope: IdScope.app };\n Result.getOrThrow(validateBindings(tableRecord, resolvedTarget));\n return {\n [TypeId]: tableRecord,\n target: resolvedTarget,\n } as DatabaseSchema<TablesRecord, Target_>;\n};\n"],"mappings":";;;;;;;;;;;;;;;AAOA,IAAa,0BAAb,cAA6C,KAAK,YAChD,yBACF,CAAC,CAEE;CACD,IAAa,UAAkB;EAC7B,OAAO;CACT;AACF;AAEA,IAAa,4BAAb,cAA+C,KAAK,YAClD,2BACF,CAAC,CAKE;CACD,IAAa,UAAkB;EAC7B,OAAO,UAAU,KAAK,YAAY;CACpC;AACF;AAEA,MAAa,SAAS;AAqBtB,MAAa,oBAAoB,MAC/B,UAAU,YAAY,GAAG,MAAM;;;;AA8BjC,MAAa,UACX,SACmB,KAAK;AAY1B,MAAM,oBACJ,aACA,WAC6E;CAC7E,IAAI,OAAO,SAAS,eAAe,OAAO,UAAU,IAClD,OAAO,OAAO,KACZ,IAAI,wBAAwB,EAAE,eAAe,OAAO,MAAM,CAAC,CAC7D;CAEF,KAAK,MAAM,CAAC,MAAM,UAAU,OAAO,UAAU,WAAW,GACtD,IAAI,SAAS,MAAM,aAAa,MAAM,UAAU,OAAO,OACrD,OAAO,OAAO,KACZ,IAAI,0BAA0B;EAC5B,aAAa;EACb,WAAW,MAAM;EACjB,YAAY,MAAM;EAClB,eAAe,OAAO;CACxB,CAAC,CACH;CAGJ,OAAO,OAAO,QAAQ,KAAA,CAAS;AACjC;;;;;;AAOA,MAAa,QAIX,aACA,WAC0C;CAC1C,MAAM,iBAAiB,UAAU;EAAE,MAAM;EAAO,OAAO,QAAQ;CAAI;CACnE,OAAO,WAAW,iBAAiB,aAAa,cAAc,CAAC;CAC/D,OAAO;GACJ,SAAS;EACV,QAAQ;CACV;AACF"}
@@ -2,11 +2,11 @@ import type { GenericDatabaseWriter } from "convex/server";
2
2
  import * as Context from "effect/Context";
3
3
  import * as Effect from "effect/Effect";
4
4
  import * as Layer from "effect/Layer";
5
- import * as DatabaseSchema from "./DatabaseSchema";
6
- import type * as DataModel from "./DataModel";
7
- import type { DocumentByName as DocumentByName_ } from "./DataModel";
8
- import * as Document from "./Document";
9
- import * as QueryInitializer from "./QueryInitializer";
5
+ import * as DatabaseSchema from "./DatabaseSchema.js";
6
+ import type * as DataModel from "./DataModel.js";
7
+ import type { DocumentByName as DocumentByName_ } from "./DataModel.js";
8
+ import * as Document from "./Document.js";
9
+ import * as QueryInitializer from "./QueryInitializer.js";
10
10
  /**
11
11
  * The argument accepted by `patch`: like `Partial<Doc>` without system fields,
12
12
  * but the fields that are already optional also accept `undefined`, since
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseWriter.d.ts","sourceRoot":"","sources":["../src/DatabaseWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DatabaseWriter.d.ts","sourceRoot":"","sources":["../src/DatabaseWriter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseWriter.js","names":["DatabaseSchema.tables","Document.encode","QueryInitializer.getById"],"sources":["../src/DatabaseWriter.ts"],"sourcesContent":["import type {\n BetterOmit,\n DocumentByName,\n Expand,\n GenericDatabaseWriter,\n WithoutSystemFields,\n} from \"convex/server\";\nimport type { GenericId } from \"convex/values\";\nimport { pipe } from \"effect/Function\";\nimport * as Context from \"effect/Context\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Record from \"effect/Record\";\nimport * as DatabaseSchema from \"./DatabaseSchema\";\nimport type * as DataModel from \"./DataModel\";\nimport type { DocumentByName as DocumentByName_ } from \"./DataModel\";\nimport * as Document from \"./Document\";\nimport * as QueryInitializer from \"./QueryInitializer\";\nimport type * as Table from \"./Table\";\n\n/**\n * The argument accepted by `patch`: like `Partial<Doc>` without system fields,\n * but the fields that are already optional also accept `undefined`, since\n * setting a field to `undefined` unsets it.\n */\nexport type PatchValue<Doc> = {\n [\n K in keyof Doc as K extends \"_id\" | \"_creationTime\" ? never : K\n ]?: undefined extends Doc[K] ? Doc[K] | undefined : Doc[K];\n};\n\nexport interface DatabaseWriterTableAccessor<\n DataModel_ extends DataModel.AnyWithProps,\n TableName extends DataModel.TableNames<DataModel_>,\n Doc = DocumentByName_<DataModel_, TableName>,\n> {\n readonly insert: (\n document: Document.WithoutSystemFields<Doc>,\n ) => Effect.Effect<\n DataModel.Id<DataModel_, TableName>,\n Document.DocumentEncodeError\n >;\n readonly patch: (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<Doc>,\n ) => Effect.Effect<\n void,\n | QueryInitializer.GetByIdFailure\n | Document.DocumentDecodeError\n | Document.DocumentEncodeError\n >;\n readonly replace: (\n id: DataModel.Id<DataModel_, TableName>,\n value: Document.WithoutSystemFields<Doc>,\n ) => Effect.Effect<void, Document.DocumentEncodeError>;\n readonly delete: (\n id: DataModel.Id<DataModel_, TableName>,\n ) => Effect.Effect<void>;\n}\n\n/**\n * The service shape backing the `DatabaseWriter` tag. Named (rather than an\n * inferred anonymous object) so declaration emit prints\n * `DatabaseWriterService<…>` by reference instead of expanding the data model.\n * `Docs` is the optional named document registry (see\n * `DatabaseReaderService`).\n */\nexport interface DatabaseWriterService<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> {\n readonly table: <\n const TableName extends DataModel.TableNames<\n DataModel.FromSchema<DatabaseSchema_>\n >,\n >(\n tableName: TableName,\n ) => DatabaseWriterTableAccessor<\n DataModel.FromSchema<DatabaseSchema_>,\n TableName,\n TableName extends keyof Docs\n ? Docs[TableName]\n : DocumentByName_<DataModel.FromSchema<DatabaseSchema_>, TableName>\n >;\n}\n\n/**\n * The tag's _Identifier_ is `Docs`-independent (see `DatabaseReaderTag`); only\n * the _Service_ carries `Docs` so writer inputs print the named doc\n * interfaces.\n */\nexport type DatabaseWriterTag<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> = Context.Service<\n DatabaseWriterService<DatabaseSchema_>,\n DatabaseWriterService<DatabaseSchema_, Docs>\n>;\n\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n): DatabaseWriterService<DatabaseSchema_> => {\n type DataModel_ = DataModel.FromSchema<DatabaseSchema_>;\n\n const table = <const TableName extends DataModel.TableNames<DataModel_>>(\n tableName: TableName,\n ) => {\n const tableDef = DatabaseSchema.tables(databaseSchema)[tableName];\n\n const insert = Effect.fn(\"DatabaseWriter.insert\")(function* (\n document: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) {\n const encodedDocument = yield* Document.encode(document, tableDef);\n\n const id = yield* Effect.promise(() =>\n convexDatabaseWriter.insert(\n tableName,\n encodedDocument as WithoutSystemFields<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>\n >,\n ),\n );\n\n // The database supplies the ID in this table's execution scope. Its\n // scope brand is erased at the Convex syscall boundary.\n return id as unknown as DataModel.Id<DataModel_, TableName>;\n });\n\n const patch = Effect.fn(\"DatabaseWriter.patch\")(function* (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<\n Document.WithoutSystemFields<DocumentByName_<DataModel_, TableName>>\n >,\n ) {\n const originalDecodedDoc = yield* QueryInitializer.getById<\n Table.AnyWithProps,\n TableName\n >(\n convexDatabaseWriter as any,\n tableDef,\n )(id as unknown as GenericId<TableName>);\n\n const updatedEncodedDoc = yield* pipe(\n patchedValues,\n Record.reduce(originalDecodedDoc, (acc, value, key) =>\n value === undefined\n ? Record.remove(acc, key)\n : Record.set(acc, key, value),\n ),\n Document.encode(tableDef),\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id as unknown as GenericId<TableName>,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const replace = Effect.fn(\"DatabaseWriter.replace\")(function* (\n id: DataModel.Id<DataModel_, TableName>,\n value: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) {\n const updatedEncodedDoc = yield* Document.encode(value, tableDef);\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id as unknown as GenericId<TableName>,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const delete_ = (id: DataModel.Id<DataModel_, TableName>) =>\n Effect.promise(() =>\n convexDatabaseWriter.delete(id as unknown as GenericId<TableName>),\n );\n\n return {\n insert,\n patch,\n replace,\n delete: delete_,\n };\n };\n\n return {\n table,\n } as DatabaseWriterService<DatabaseSchema_>;\n};\n\nexport const DatabaseWriter = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n>(): DatabaseWriterTag<DatabaseSchema_, Docs> =>\n Context.Service<\n DatabaseWriterService<DatabaseSchema_>,\n DatabaseWriterService<DatabaseSchema_, Docs>\n >(\"@confect/server/DatabaseWriter\");\n\nexport type DatabaseWriter<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = DatabaseWriterService<DatabaseSchema_>;\n\nexport const layer = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n) =>\n Layer.succeed(\n DatabaseWriter<DatabaseSchema_>(),\n make(databaseSchema, convexDatabaseWriter),\n );\n"],"mappings":";;;;;;;;;;;;;;;AAmGA,MAAa,QACX,gBACA,yBAG2C;CAG3C,MAAM,SACJ,cACG;EACH,MAAM,WAAWA,OAAsB,cAAc,CAAC,CAAC;EAEvD,MAAM,SAAS,OAAO,GAAG,uBAAuB,CAAC,CAAC,WAChD,UAGA;GACA,MAAM,kBAAkB,OAAOC,OAAgB,UAAU,QAAQ;GAajE,OAAO,OAXW,OAAO,cACvB,qBAAqB,OACnB,WACA,eAGF,CACF;EAKF,CAAC;EAED,MAAM,QAAQ,OAAO,GAAG,sBAAsB,CAAC,CAAC,WAC9C,IACA,eAGA;GACA,MAAM,qBAAqB,OAAOC,QAIhC,sBACA,QACF,CAAC,CAAC,EAAqC;GAEvC,MAAM,oBAAoB,OAAO,KAC/B,eACA,OAAO,OAAO,qBAAqB,KAAK,OAAO,QAC7C,UAAU,KAAA,IACN,OAAO,OAAO,KAAK,GAAG,IACtB,OAAO,IAAI,KAAK,KAAK,KAAK,CAChC,GACAD,OAAgB,QAAQ,CAC1B;GAEA,OAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,iBAMF,CACF;EACF,CAAC;EAED,MAAM,UAAU,OAAO,GAAG,wBAAwB,CAAC,CAAC,WAClD,IACA,OAGA;GACA,MAAM,oBAAoB,OAAOA,OAAgB,OAAO,QAAQ;GAEhE,OAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,iBAMF,CACF;EACF,CAAC;EAED,MAAM,WAAW,OACf,OAAO,cACL,qBAAqB,OAAO,EAAqC,CACnE;EAEF,OAAO;GACL;GACA;GACA;GACA,QAAQ;EACV;CACF;CAEA,OAAO,EACL,MACF;AACF;AAEA,MAAa,uBAIX,QAAQ,QAGN,gCAAgC;AAMpC,MAAa,SACX,gBACA,yBAIA,MAAM,QACJ,eAAgC,GAChC,KAAK,gBAAgB,oBAAoB,CAC3C"}
1
+ {"version":3,"file":"DatabaseWriter.js","names":["DatabaseSchema.tables","Document.encode","QueryInitializer.getById"],"sources":["../src/DatabaseWriter.ts"],"sourcesContent":["import type {\n BetterOmit,\n DocumentByName,\n Expand,\n GenericDatabaseWriter,\n WithoutSystemFields,\n} from \"convex/server\";\nimport type { GenericId } from \"convex/values\";\nimport { pipe } from \"effect/Function\";\nimport * as Context from \"effect/Context\";\nimport * as Effect from \"effect/Effect\";\nimport * as Layer from \"effect/Layer\";\nimport * as Record from \"effect/Record\";\nimport * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport type { DocumentByName as DocumentByName_ } from \"./DataModel.js\";\nimport * as Document from \"./Document.js\";\nimport * as QueryInitializer from \"./QueryInitializer.js\";\nimport type * as Table from \"./Table.js\";\n\n/**\n * The argument accepted by `patch`: like `Partial<Doc>` without system fields,\n * but the fields that are already optional also accept `undefined`, since\n * setting a field to `undefined` unsets it.\n */\nexport type PatchValue<Doc> = {\n [\n K in keyof Doc as K extends \"_id\" | \"_creationTime\" ? never : K\n ]?: undefined extends Doc[K] ? Doc[K] | undefined : Doc[K];\n};\n\nexport interface DatabaseWriterTableAccessor<\n DataModel_ extends DataModel.AnyWithProps,\n TableName extends DataModel.TableNames<DataModel_>,\n Doc = DocumentByName_<DataModel_, TableName>,\n> {\n readonly insert: (\n document: Document.WithoutSystemFields<Doc>,\n ) => Effect.Effect<\n DataModel.Id<DataModel_, TableName>,\n Document.DocumentEncodeError\n >;\n readonly patch: (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<Doc>,\n ) => Effect.Effect<\n void,\n | QueryInitializer.GetByIdFailure\n | Document.DocumentDecodeError\n | Document.DocumentEncodeError\n >;\n readonly replace: (\n id: DataModel.Id<DataModel_, TableName>,\n value: Document.WithoutSystemFields<Doc>,\n ) => Effect.Effect<void, Document.DocumentEncodeError>;\n readonly delete: (\n id: DataModel.Id<DataModel_, TableName>,\n ) => Effect.Effect<void>;\n}\n\n/**\n * The service shape backing the `DatabaseWriter` tag. Named (rather than an\n * inferred anonymous object) so declaration emit prints\n * `DatabaseWriterService<…>` by reference instead of expanding the data model.\n * `Docs` is the optional named document registry (see\n * `DatabaseReaderService`).\n */\nexport interface DatabaseWriterService<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> {\n readonly table: <\n const TableName extends DataModel.TableNames<\n DataModel.FromSchema<DatabaseSchema_>\n >,\n >(\n tableName: TableName,\n ) => DatabaseWriterTableAccessor<\n DataModel.FromSchema<DatabaseSchema_>,\n TableName,\n TableName extends keyof Docs\n ? Docs[TableName]\n : DocumentByName_<DataModel.FromSchema<DatabaseSchema_>, TableName>\n >;\n}\n\n/**\n * The tag's _Identifier_ is `Docs`-independent (see `DatabaseReaderTag`); only\n * the _Service_ carries `Docs` so writer inputs print the named doc\n * interfaces.\n */\nexport type DatabaseWriterTag<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n> = Context.Service<\n DatabaseWriterService<DatabaseSchema_>,\n DatabaseWriterService<DatabaseSchema_, Docs>\n>;\n\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n): DatabaseWriterService<DatabaseSchema_> => {\n type DataModel_ = DataModel.FromSchema<DatabaseSchema_>;\n\n const table = <const TableName extends DataModel.TableNames<DataModel_>>(\n tableName: TableName,\n ) => {\n const tableDef = DatabaseSchema.tables(databaseSchema)[tableName];\n\n const insert = Effect.fn(\"DatabaseWriter.insert\")(function* (\n document: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) {\n const encodedDocument = yield* Document.encode(document, tableDef);\n\n const id = yield* Effect.promise(() =>\n convexDatabaseWriter.insert(\n tableName,\n encodedDocument as WithoutSystemFields<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>\n >,\n ),\n );\n\n // The database supplies the ID in this table's execution scope. Its\n // scope brand is erased at the Convex syscall boundary.\n return id as unknown as DataModel.Id<DataModel_, TableName>;\n });\n\n const patch = Effect.fn(\"DatabaseWriter.patch\")(function* (\n id: DataModel.Id<DataModel_, TableName>,\n patchedValues: PatchValue<\n Document.WithoutSystemFields<DocumentByName_<DataModel_, TableName>>\n >,\n ) {\n const originalDecodedDoc = yield* QueryInitializer.getById<\n Table.AnyWithProps,\n TableName\n >(\n convexDatabaseWriter as any,\n tableDef,\n )(id as unknown as GenericId<TableName>);\n\n const updatedEncodedDoc = yield* pipe(\n patchedValues,\n Record.reduce(originalDecodedDoc, (acc, value, key) =>\n value === undefined\n ? Record.remove(acc, key)\n : Record.set(acc, key, value),\n ),\n Document.encode(tableDef),\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id as unknown as GenericId<TableName>,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const replace = Effect.fn(\"DatabaseWriter.replace\")(function* (\n id: DataModel.Id<DataModel_, TableName>,\n value: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) {\n const updatedEncodedDoc = yield* Document.encode(value, tableDef);\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id as unknown as GenericId<TableName>,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const delete_ = (id: DataModel.Id<DataModel_, TableName>) =>\n Effect.promise(() =>\n convexDatabaseWriter.delete(id as unknown as GenericId<TableName>),\n );\n\n return {\n insert,\n patch,\n replace,\n delete: delete_,\n };\n };\n\n return {\n table,\n } as DatabaseWriterService<DatabaseSchema_>;\n};\n\nexport const DatabaseWriter = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n Docs = {},\n>(): DatabaseWriterTag<DatabaseSchema_, Docs> =>\n Context.Service<\n DatabaseWriterService<DatabaseSchema_>,\n DatabaseWriterService<DatabaseSchema_, Docs>\n >(\"@confect/server/DatabaseWriter\");\n\nexport type DatabaseWriter<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = DatabaseWriterService<DatabaseSchema_>;\n\nexport const layer = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n) =>\n Layer.succeed(\n DatabaseWriter<DatabaseSchema_>(),\n make(databaseSchema, convexDatabaseWriter),\n );\n"],"mappings":";;;;;;;;;;;;;;;AAmGA,MAAa,QACX,gBACA,yBAG2C;CAG3C,MAAM,SACJ,cACG;EACH,MAAM,WAAWA,OAAsB,cAAc,CAAC,CAAC;EAEvD,MAAM,SAAS,OAAO,GAAG,uBAAuB,CAAC,CAAC,WAChD,UAGA;GACA,MAAM,kBAAkB,OAAOC,OAAgB,UAAU,QAAQ;GAajE,OAAO,OAXW,OAAO,cACvB,qBAAqB,OACnB,WACA,eAGF,CACF;EAKF,CAAC;EAED,MAAM,QAAQ,OAAO,GAAG,sBAAsB,CAAC,CAAC,WAC9C,IACA,eAGA;GACA,MAAM,qBAAqB,OAAOC,QAIhC,sBACA,QACF,CAAC,CAAC,EAAqC;GAEvC,MAAM,oBAAoB,OAAO,KAC/B,eACA,OAAO,OAAO,qBAAqB,KAAK,OAAO,QAC7C,UAAU,KAAA,IACN,OAAO,OAAO,KAAK,GAAG,IACtB,OAAO,IAAI,KAAK,KAAK,KAAK,CAChC,GACAD,OAAgB,QAAQ,CAC1B;GAEA,OAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,iBAMF,CACF;EACF,CAAC;EAED,MAAM,UAAU,OAAO,GAAG,wBAAwB,CAAC,CAAC,WAClD,IACA,OAGA;GACA,MAAM,oBAAoB,OAAOA,OAAgB,OAAO,QAAQ;GAEhE,OAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,iBAMF,CACF;EACF,CAAC;EAED,MAAM,WAAW,OACf,OAAO,cACL,qBAAqB,OAAO,EAAqC,CACnE;EAEF,OAAO;GACL;GACA;GACA;GACA,QAAQ;EACV;CACF;CAEA,OAAO,EACL,MACF;AACF;AAEA,MAAa,uBAIX,QAAQ,QAGN,gCAAgC;AAMpC,MAAa,SACX,gBACA,yBAIA,MAAM,QACJ,eAAgC,GAChC,KAAK,gBAAgB,oBAAoB,CAC3C"}
@@ -2,10 +2,10 @@ import type { ReadonlyValue } from "@confect/core/SchemaToValidator";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Schema from "effect/Schema";
4
4
  import type { ReadonlyRecord } from "effect/Record";
5
- import type * as DatabaseSchema from "./DatabaseSchema";
6
- import type * as DataModel from "./DataModel";
7
- import type * as TableInfo from "./TableInfo";
8
- import type * as Table from "./Table";
5
+ import type * as DatabaseSchema from "./DatabaseSchema.js";
6
+ import type * as DataModel from "./DataModel.js";
7
+ import type * as TableInfo from "./TableInfo.js";
8
+ import type * as Table from "./Table.js";
9
9
  export type Document<Schema_ extends DatabaseSchema.AnyWithProps, TableName extends DatabaseSchema.TableNames<Schema_>> = DataModel.DocumentByName<DataModel.FromSchema<Schema_>, TableName>;
10
10
  export type WithoutSystemFields<Doc> = Doc extends unknown ? Omit<Doc, "_creationTime" | "_id"> : never;
11
11
  export type Any = any;
@@ -1 +1 @@
1
- {"version":3,"file":"Document.d.ts","sourceRoot":"","sources":["../src/Document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AAEtC,MAAM,MAAM,QAAQ,CAClB,OAAO,SAAS,cAAc,CAAC,YAAY,EAC3C,SAAS,SAAS,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,IAClD,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AAEvE,MAAM,MAAM,mBAAmB,CAAC,GAAG,IAAI,GAAG,SAAS,OAAO,GACtD,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,KAAK,CAAC,GAClC,KAAK,CAAC;AAEV,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC;AACtB,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE/D,eAAO,MAAM,MAAM,IAChB,MAAM,SAAS,KAAK,CAAC,YAAY,SACzB,MAAM,KACV,CACH,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,KAChD,MAAM,CAAC,MAAM,CAChB,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EACvC,mBAAmB,CACpB,MACA,MAAM,SAAS,KAAK,CAAC,YAAY,QAC1B,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,SAC5C,MAAM,KACV,MAAM,CAAC,MAAM,CAChB,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EACvC,mBAAmB,CACpB,CAuBF,CAAC;AAEF,eAAO,MAAM,MAAM,IAChB,MAAM,SAAS,KAAK,CAAC,YAAY,SACzB,MAAM,KACV,CACH,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAC3C,MAAM,CAAC,MAAM,CAChB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAC1C,mBAAmB,CACpB,MACA,MAAM,SAAS,KAAK,CAAC,YAAY,QAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SACvC,MAAM,KACV,MAAM,CAAC,MAAM,CAChB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAC1C,mBAAmB,CACpB,CAuBF,CAAC;;;;;;AAEF,qBAAa,mBAAoB,SAAQ,wBAOxC;IACC,IAAa,OAAO,IAAI,MAAM,CAM7B;CACF;;;;;;AAED,qBAAa,mBAAoB,SAAQ,wBAOxC;IACC,IAAa,OAAO,IAAI,MAAM,CAM7B;CACF;AAED,eAAO,MAAM,oBAAoB,gCAI9B;IACD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,WAAkE,CAAC"}
1
+ {"version":3,"file":"Document.d.ts","sourceRoot":"","sources":["../src/Document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAErE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,KAAK,cAAc,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,KAAK,SAAS,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAC;AAEzC,MAAM,MAAM,QAAQ,CAClB,OAAO,SAAS,cAAc,CAAC,YAAY,EAC3C,SAAS,SAAS,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,IAClD,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AAEvE,MAAM,MAAM,mBAAmB,CAAC,GAAG,IAAI,GAAG,SAAS,OAAO,GACtD,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,KAAK,CAAC,GAClC,KAAK,CAAC;AAEV,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC;AACtB,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE/D,eAAO,MAAM,MAAM,IAChB,MAAM,SAAS,KAAK,CAAC,YAAY,SACzB,MAAM,KACV,CACH,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,KAChD,MAAM,CAAC,MAAM,CAChB,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EACvC,mBAAmB,CACpB,MACA,MAAM,SAAS,KAAK,CAAC,YAAY,QAC1B,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,SAC5C,MAAM,KACV,MAAM,CAAC,MAAM,CAChB,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,EACvC,mBAAmB,CACpB,CAuBF,CAAC;AAEF,eAAO,MAAM,MAAM,IAChB,MAAM,SAAS,KAAK,CAAC,YAAY,SACzB,MAAM,KACV,CACH,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAC3C,MAAM,CAAC,MAAM,CAChB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAC1C,mBAAmB,CACpB,MACA,MAAM,SAAS,KAAK,CAAC,YAAY,QAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SACvC,MAAM,KACV,MAAM,CAAC,MAAM,CAChB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAC1C,mBAAmB,CACpB,CAuBF,CAAC;;;;;;AAEF,qBAAa,mBAAoB,SAAQ,wBAOxC;IACC,IAAa,OAAO,IAAI,MAAM,CAM7B;CACF;;;;;;AAED,qBAAa,mBAAoB,SAAQ,wBAOxC;IACC,IAAa,OAAO,IAAI,MAAM,CAM7B;CACF;AAED,eAAO,MAAM,oBAAoB,gCAI9B;IACD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,WAAkE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Document.js","names":[],"sources":["../src/Document.ts"],"sourcesContent":["import type { ReadonlyValue } from \"@confect/core/SchemaToValidator\";\nimport { pipe } from \"effect/Function\";\nimport * as Effect from \"effect/Effect\";\nimport * as Function from \"effect/Function\";\nimport * as Schema from \"effect/Schema\";\nimport type { ReadonlyRecord } from \"effect/Record\";\nimport type * as DatabaseSchema from \"./DatabaseSchema\";\nimport type * as DataModel from \"./DataModel\";\nimport type * as TableInfo from \"./TableInfo\";\nimport type * as Table from \"./Table\";\n\nexport type Document<\n Schema_ extends DatabaseSchema.AnyWithProps,\n TableName extends DatabaseSchema.TableNames<Schema_>,\n> = DataModel.DocumentByName<DataModel.FromSchema<Schema_>, TableName>;\n\nexport type WithoutSystemFields<Doc> = Doc extends unknown\n ? Omit<Doc, \"_creationTime\" | \"_id\">\n : never;\n\nexport type Any = any;\nexport type AnyEncoded = ReadonlyRecord<string, ReadonlyValue>;\n\nexport const decode = Function.dual<\n <Table_ extends Table.AnyWithProps>(\n table: Table_,\n ) => (\n self: TableInfo.TableInfo<Table_>[\"convexDocument\"],\n ) => Effect.Effect<\n TableInfo.TableInfo<Table_>[\"document\"],\n DocumentDecodeError\n >,\n <Table_ extends Table.AnyWithProps>(\n self: TableInfo.TableInfo<Table_>[\"convexDocument\"],\n table: Table_,\n ) => Effect.Effect<\n TableInfo.TableInfo<Table_>[\"document\"],\n DocumentDecodeError\n >\n>(\n 2,\n <Table_ extends Table.AnyWithProps>(\n self: TableInfo.TableInfo<Table_>[\"convexDocument\"],\n table: Table_,\n ): Effect.Effect<\n TableInfo.TableInfo<Table_>[\"document\"],\n DocumentDecodeError\n > =>\n pipe(\n self,\n Schema.decodeUnknownEffect(table.Doc),\n Effect.catchIf(Schema.isSchemaError, (schemaError) =>\n Effect.fail(\n new DocumentDecodeError({\n tableName: table.tableName,\n id: self._id,\n parseError: schemaError.message,\n }),\n ),\n ),\n ),\n);\n\nexport const encode = Function.dual<\n <Table_ extends Table.AnyWithProps>(\n table: Table_,\n ) => (\n self: Schema.Schema.Type<Table.Fields<Table_>>,\n ) => Effect.Effect<\n Schema.Codec.Encoded<Table.Fields<Table_>>,\n DocumentEncodeError\n >,\n <Table_ extends Table.AnyWithProps>(\n self: Schema.Schema.Type<Table.Fields<Table_>>,\n table: Table_,\n ) => Effect.Effect<\n Schema.Codec.Encoded<Table.Fields<Table_>>,\n DocumentEncodeError\n >\n>(\n 2,\n <Table_ extends Table.AnyWithProps>(\n self: Schema.Schema.Type<Table.Fields<Table_>>,\n table: Table_,\n ): Effect.Effect<\n Schema.Codec.Encoded<Table.Fields<Table_>>,\n DocumentEncodeError\n > =>\n pipe(\n self,\n Schema.encodeEffect(table.Fields),\n Effect.catchIf(Schema.isSchemaError, (schemaError) =>\n Effect.fail(\n new DocumentEncodeError({\n tableName: table.tableName,\n id: self._id,\n parseError: schemaError.message,\n }),\n ),\n ),\n ),\n);\n\nexport class DocumentDecodeError extends Schema.TaggedError<DocumentDecodeError>()(\n \"DocumentDecodeError\",\n {\n tableName: Schema.String,\n id: Schema.String,\n parseError: Schema.String,\n },\n) {\n override get message(): string {\n return documentErrorMessage({\n id: this.id,\n tableName: this.tableName,\n message: `could not be decoded:\\n\\n${this.parseError}`,\n });\n }\n}\n\nexport class DocumentEncodeError extends Schema.TaggedError<DocumentEncodeError>()(\n \"DocumentEncodeError\",\n {\n tableName: Schema.String,\n id: Schema.String,\n parseError: Schema.String,\n },\n) {\n override get message(): string {\n return documentErrorMessage({\n id: this.id,\n tableName: this.tableName,\n message: `could not be encoded:\\n\\n${this.parseError}`,\n });\n }\n}\n\nexport const documentErrorMessage = ({\n id,\n tableName,\n message,\n}: {\n id: string;\n tableName: string;\n message: string;\n}) => `Document with ID '${id}' in table '${tableName}' ${message}`;\n"],"mappings":";;;;;;;;;;;;;AAuBA,MAAa,SAAS,SAAS,KAiB7B,IAEE,MACA,UAKA,KACE,MACA,OAAO,oBAAoB,MAAM,GAAG,GACpC,OAAO,QAAQ,OAAO,gBAAgB,gBACpC,OAAO,KACL,IAAI,oBAAoB;CACtB,WAAW,MAAM;CACjB,IAAI,KAAK;CACT,YAAY,YAAY;AAC1B,CAAC,CACH,CACF,CACF,CACJ;AAEA,MAAa,SAAS,SAAS,KAiB7B,IAEE,MACA,UAKA,KACE,MACA,OAAO,aAAa,MAAM,MAAM,GAChC,OAAO,QAAQ,OAAO,gBAAgB,gBACpC,OAAO,KACL,IAAI,oBAAoB;CACtB,WAAW,MAAM;CACjB,IAAI,KAAK;CACT,YAAY,YAAY;AAC1B,CAAC,CACH,CACF,CACF,CACJ;AAEA,IAAa,sBAAb,cAAyC,OAAO,YAAiC,CAAC,CAChF,uBACA;CACE,WAAW,OAAO;CAClB,IAAI,OAAO;CACX,YAAY,OAAO;AACrB,CACF,CAAC,CAAC;CACA,IAAa,UAAkB;EAC7B,OAAO,qBAAqB;GAC1B,IAAI,KAAK;GACT,WAAW,KAAK;GAChB,SAAS,4BAA4B,KAAK;EAC5C,CAAC;CACH;AACF;AAEA,IAAa,sBAAb,cAAyC,OAAO,YAAiC,CAAC,CAChF,uBACA;CACE,WAAW,OAAO;CAClB,IAAI,OAAO;CACX,YAAY,OAAO;AACrB,CACF,CAAC,CAAC;CACA,IAAa,UAAkB;EAC7B,OAAO,qBAAqB;GAC1B,IAAI,KAAK;GACT,WAAW,KAAK;GAChB,SAAS,4BAA4B,KAAK;EAC5C,CAAC;CACH;AACF;AAEA,MAAa,wBAAwB,EACnC,IACA,WACA,cAKI,qBAAqB,GAAG,cAAc,UAAU,IAAI"}
1
+ {"version":3,"file":"Document.js","names":[],"sources":["../src/Document.ts"],"sourcesContent":["import type { ReadonlyValue } from \"@confect/core/SchemaToValidator\";\nimport { pipe } from \"effect/Function\";\nimport * as Effect from \"effect/Effect\";\nimport * as Function from \"effect/Function\";\nimport * as Schema from \"effect/Schema\";\nimport type { ReadonlyRecord } from \"effect/Record\";\nimport type * as DatabaseSchema from \"./DatabaseSchema.js\";\nimport type * as DataModel from \"./DataModel.js\";\nimport type * as TableInfo from \"./TableInfo.js\";\nimport type * as Table from \"./Table.js\";\n\nexport type Document<\n Schema_ extends DatabaseSchema.AnyWithProps,\n TableName extends DatabaseSchema.TableNames<Schema_>,\n> = DataModel.DocumentByName<DataModel.FromSchema<Schema_>, TableName>;\n\nexport type WithoutSystemFields<Doc> = Doc extends unknown\n ? Omit<Doc, \"_creationTime\" | \"_id\">\n : never;\n\nexport type Any = any;\nexport type AnyEncoded = ReadonlyRecord<string, ReadonlyValue>;\n\nexport const decode = Function.dual<\n <Table_ extends Table.AnyWithProps>(\n table: Table_,\n ) => (\n self: TableInfo.TableInfo<Table_>[\"convexDocument\"],\n ) => Effect.Effect<\n TableInfo.TableInfo<Table_>[\"document\"],\n DocumentDecodeError\n >,\n <Table_ extends Table.AnyWithProps>(\n self: TableInfo.TableInfo<Table_>[\"convexDocument\"],\n table: Table_,\n ) => Effect.Effect<\n TableInfo.TableInfo<Table_>[\"document\"],\n DocumentDecodeError\n >\n>(\n 2,\n <Table_ extends Table.AnyWithProps>(\n self: TableInfo.TableInfo<Table_>[\"convexDocument\"],\n table: Table_,\n ): Effect.Effect<\n TableInfo.TableInfo<Table_>[\"document\"],\n DocumentDecodeError\n > =>\n pipe(\n self,\n Schema.decodeUnknownEffect(table.Doc),\n Effect.catchIf(Schema.isSchemaError, (schemaError) =>\n Effect.fail(\n new DocumentDecodeError({\n tableName: table.tableName,\n id: self._id,\n parseError: schemaError.message,\n }),\n ),\n ),\n ),\n);\n\nexport const encode = Function.dual<\n <Table_ extends Table.AnyWithProps>(\n table: Table_,\n ) => (\n self: Schema.Schema.Type<Table.Fields<Table_>>,\n ) => Effect.Effect<\n Schema.Codec.Encoded<Table.Fields<Table_>>,\n DocumentEncodeError\n >,\n <Table_ extends Table.AnyWithProps>(\n self: Schema.Schema.Type<Table.Fields<Table_>>,\n table: Table_,\n ) => Effect.Effect<\n Schema.Codec.Encoded<Table.Fields<Table_>>,\n DocumentEncodeError\n >\n>(\n 2,\n <Table_ extends Table.AnyWithProps>(\n self: Schema.Schema.Type<Table.Fields<Table_>>,\n table: Table_,\n ): Effect.Effect<\n Schema.Codec.Encoded<Table.Fields<Table_>>,\n DocumentEncodeError\n > =>\n pipe(\n self,\n Schema.encodeEffect(table.Fields),\n Effect.catchIf(Schema.isSchemaError, (schemaError) =>\n Effect.fail(\n new DocumentEncodeError({\n tableName: table.tableName,\n id: self._id,\n parseError: schemaError.message,\n }),\n ),\n ),\n ),\n);\n\nexport class DocumentDecodeError extends Schema.TaggedError<DocumentDecodeError>()(\n \"DocumentDecodeError\",\n {\n tableName: Schema.String,\n id: Schema.String,\n parseError: Schema.String,\n },\n) {\n override get message(): string {\n return documentErrorMessage({\n id: this.id,\n tableName: this.tableName,\n message: `could not be decoded:\\n\\n${this.parseError}`,\n });\n }\n}\n\nexport class DocumentEncodeError extends Schema.TaggedError<DocumentEncodeError>()(\n \"DocumentEncodeError\",\n {\n tableName: Schema.String,\n id: Schema.String,\n parseError: Schema.String,\n },\n) {\n override get message(): string {\n return documentErrorMessage({\n id: this.id,\n tableName: this.tableName,\n message: `could not be encoded:\\n\\n${this.parseError}`,\n });\n }\n}\n\nexport const documentErrorMessage = ({\n id,\n tableName,\n message,\n}: {\n id: string;\n tableName: string;\n message: string;\n}) => `Document with ID '${id}' in table '${tableName}' ${message}`;\n"],"mappings":";;;;;;;;;;;;;AAuBA,MAAa,SAAS,SAAS,KAiB7B,IAEE,MACA,UAKA,KACE,MACA,OAAO,oBAAoB,MAAM,GAAG,GACpC,OAAO,QAAQ,OAAO,gBAAgB,gBACpC,OAAO,KACL,IAAI,oBAAoB;CACtB,WAAW,MAAM;CACjB,IAAI,KAAK;CACT,YAAY,YAAY;AAC1B,CAAC,CACH,CACF,CACF,CACJ;AAEA,MAAa,SAAS,SAAS,KAiB7B,IAEE,MACA,UAKA,KACE,MACA,OAAO,aAAa,MAAM,MAAM,GAChC,OAAO,QAAQ,OAAO,gBAAgB,gBACpC,OAAO,KACL,IAAI,oBAAoB;CACtB,WAAW,MAAM;CACjB,IAAI,KAAK;CACT,YAAY,YAAY;AAC1B,CAAC,CACH,CACF,CACF,CACJ;AAEA,IAAa,sBAAb,cAAyC,OAAO,YAAiC,CAAC,CAChF,uBACA;CACE,WAAW,OAAO;CAClB,IAAI,OAAO;CACX,YAAY,OAAO;AACrB,CACF,CAAC,CAAC;CACA,IAAa,UAAkB;EAC7B,OAAO,qBAAqB;GAC1B,IAAI,KAAK;GACT,WAAW,KAAK;GAChB,SAAS,4BAA4B,KAAK;EAC5C,CAAC;CACH;AACF;AAEA,IAAa,sBAAb,cAAyC,OAAO,YAAiC,CAAC,CAChF,uBACA;CACE,WAAW,OAAO;CAClB,IAAI,OAAO;CACX,YAAY,OAAO;AACrB,CACF,CAAC,CAAC;CACA,IAAa,UAAkB;EAC7B,OAAO,qBAAqB;GAC1B,IAAI,KAAK;GACT,WAAW,KAAK;GAChB,SAAS,4BAA4B,KAAK;EAC5C,CAAC;CACH;AACF;AAEA,MAAa,wBAAwB,EACnC,IACA,WACA,cAKI,qBAAqB,GAAG,cAAc,UAAU,IAAI"}