@confect/server 9.0.0-next.7 → 9.0.0-next.8

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 (159) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/ActionCtx.d.ts +1 -1
  3. package/dist/ActionCtx.js +1 -1
  4. package/dist/ActionCtx.js.map +1 -1
  5. package/dist/ActionRunner.d.ts +6 -4
  6. package/dist/ActionRunner.d.ts.map +1 -1
  7. package/dist/ActionRunner.js +4 -3
  8. package/dist/ActionRunner.js.map +1 -1
  9. package/dist/Auth.d.ts +5 -3
  10. package/dist/Auth.d.ts.map +1 -1
  11. package/dist/Auth.js +5 -1
  12. package/dist/Auth.js.map +1 -1
  13. package/dist/BlobNotFoundError.d.ts +1 -1
  14. package/dist/BlobNotFoundError.d.ts.map +1 -1
  15. package/dist/BlobNotFoundError.js +1 -1
  16. package/dist/BlobNotFoundError.js.map +1 -1
  17. package/dist/ConvexConfigProvider.d.ts +1 -1
  18. package/dist/ConvexConfigProvider.d.ts.map +1 -1
  19. package/dist/ConvexConfigProvider.js +6 -1
  20. package/dist/ConvexConfigProvider.js.map +1 -1
  21. package/dist/CronJob.d.ts +3 -3
  22. package/dist/CronJob.d.ts.map +1 -1
  23. package/dist/CronJob.js +1 -1
  24. package/dist/CronJob.js.map +1 -1
  25. package/dist/CronJobs.d.ts.map +1 -1
  26. package/dist/CronJobs.js +11 -4
  27. package/dist/CronJobs.js.map +1 -1
  28. package/dist/DatabaseReader.d.ts +436 -435
  29. package/dist/DatabaseReader.d.ts.map +1 -1
  30. package/dist/DatabaseReader.js +2 -1
  31. package/dist/DatabaseReader.js.map +1 -1
  32. package/dist/DatabaseSchema.js +1 -1
  33. package/dist/DatabaseSchema.js.map +1 -1
  34. package/dist/DatabaseWriter.d.ts +3 -1
  35. package/dist/DatabaseWriter.d.ts.map +1 -1
  36. package/dist/DatabaseWriter.js +5 -1
  37. package/dist/DatabaseWriter.js.map +1 -1
  38. package/dist/Document.d.ts +2 -1
  39. package/dist/Document.d.ts.map +1 -1
  40. package/dist/Document.js +5 -1
  41. package/dist/Document.js.map +1 -1
  42. package/dist/FunctionImpl.d.ts +2 -1
  43. package/dist/FunctionImpl.d.ts.map +1 -1
  44. package/dist/FunctionImpl.js +4 -1
  45. package/dist/FunctionImpl.js.map +1 -1
  46. package/dist/GroupImpl.d.ts +2 -1
  47. package/dist/GroupImpl.d.ts.map +1 -1
  48. package/dist/GroupImpl.js +9 -1
  49. package/dist/GroupImpl.js.map +1 -1
  50. package/dist/Handler.d.ts +2 -2
  51. package/dist/HttpApi.d.ts +4 -2
  52. package/dist/HttpApi.d.ts.map +1 -1
  53. package/dist/HttpApi.js +7 -2
  54. package/dist/HttpApi.js.map +1 -1
  55. package/dist/MutationCtx.d.ts +1 -1
  56. package/dist/MutationCtx.js +1 -1
  57. package/dist/MutationCtx.js.map +1 -1
  58. package/dist/MutationRunner.d.ts +6 -4
  59. package/dist/MutationRunner.d.ts.map +1 -1
  60. package/dist/MutationRunner.js +4 -3
  61. package/dist/MutationRunner.js.map +1 -1
  62. package/dist/OrderedQuery.d.ts +7 -5
  63. package/dist/OrderedQuery.d.ts.map +1 -1
  64. package/dist/OrderedQuery.js +4 -1
  65. package/dist/OrderedQuery.js.map +1 -1
  66. package/dist/QueryCtx.d.ts +1 -1
  67. package/dist/QueryCtx.js +1 -1
  68. package/dist/QueryCtx.js.map +1 -1
  69. package/dist/QueryInitializer.d.ts +2 -1
  70. package/dist/QueryInitializer.d.ts.map +1 -1
  71. package/dist/QueryInitializer.js +5 -1
  72. package/dist/QueryInitializer.js.map +1 -1
  73. package/dist/QueryRunner.d.ts +6 -4
  74. package/dist/QueryRunner.d.ts.map +1 -1
  75. package/dist/QueryRunner.js +4 -3
  76. package/dist/QueryRunner.js.map +1 -1
  77. package/dist/RegisteredConvexFunction.d.ts +117 -115
  78. package/dist/RegisteredConvexFunction.d.ts.map +1 -1
  79. package/dist/RegisteredConvexFunction.js +6 -1
  80. package/dist/RegisteredConvexFunction.js.map +1 -1
  81. package/dist/RegisteredFunction.d.ts +8 -6
  82. package/dist/RegisteredFunction.d.ts.map +1 -1
  83. package/dist/RegisteredFunction.js +5 -1
  84. package/dist/RegisteredFunction.js.map +1 -1
  85. package/dist/RegisteredFunctions.d.ts.map +1 -1
  86. package/dist/RegisteredFunctions.js +2 -1
  87. package/dist/RegisteredFunctions.js.map +1 -1
  88. package/dist/RegisteredNodeFunction.d.ts.map +1 -1
  89. package/dist/RegisteredNodeFunction.js +3 -2
  90. package/dist/RegisteredNodeFunction.js.map +1 -1
  91. package/dist/RegistryItem.js +1 -1
  92. package/dist/RegistryItem.js.map +1 -1
  93. package/dist/Scheduler.d.ts +12 -8
  94. package/dist/Scheduler.d.ts.map +1 -1
  95. package/dist/Scheduler.js +10 -6
  96. package/dist/Scheduler.js.map +1 -1
  97. package/dist/SchemaToValidator.d.ts +4 -1
  98. package/dist/SchemaToValidator.d.ts.map +1 -1
  99. package/dist/SchemaToValidator.js +13 -1
  100. package/dist/SchemaToValidator.js.map +1 -1
  101. package/dist/StorageActionWriter.d.ts +3 -2
  102. package/dist/StorageActionWriter.d.ts.map +1 -1
  103. package/dist/StorageActionWriter.js +4 -1
  104. package/dist/StorageActionWriter.js.map +1 -1
  105. package/dist/StorageReader.d.ts +3 -2
  106. package/dist/StorageReader.d.ts.map +1 -1
  107. package/dist/StorageReader.js +5 -1
  108. package/dist/StorageReader.js.map +1 -1
  109. package/dist/StorageWriter.d.ts +3 -2
  110. package/dist/StorageWriter.d.ts.map +1 -1
  111. package/dist/StorageWriter.js +4 -1
  112. package/dist/StorageWriter.js.map +1 -1
  113. package/dist/Table.d.ts +19 -19
  114. package/dist/Table.d.ts.map +1 -1
  115. package/dist/Table.js +2 -1
  116. package/dist/Table.js.map +1 -1
  117. package/dist/TableInfo.d.ts +1 -1
  118. package/dist/VectorSearch.d.ts +3 -1
  119. package/dist/VectorSearch.d.ts.map +1 -1
  120. package/dist/VectorSearch.js +3 -1
  121. package/dist/VectorSearch.js.map +1 -1
  122. package/dist/internal/utils.d.ts +3 -2
  123. package/dist/internal/utils.d.ts.map +1 -1
  124. package/dist/internal/utils.js +3 -1
  125. package/dist/internal/utils.js.map +1 -1
  126. package/package.json +2 -2
  127. package/src/ActionCtx.ts +1 -1
  128. package/src/ActionRunner.ts +2 -1
  129. package/src/Auth.ts +5 -1
  130. package/src/BlobNotFoundError.ts +1 -1
  131. package/src/ConvexConfigProvider.ts +6 -8
  132. package/src/CronJob.ts +1 -1
  133. package/src/CronJobs.ts +8 -10
  134. package/src/DatabaseReader.ts +2 -1
  135. package/src/DatabaseSchema.ts +1 -1
  136. package/src/DatabaseWriter.ts +5 -1
  137. package/src/Document.ts +5 -1
  138. package/src/FunctionImpl.ts +4 -1
  139. package/src/GroupImpl.ts +9 -11
  140. package/src/HttpApi.ts +8 -9
  141. package/src/MutationCtx.ts +1 -1
  142. package/src/MutationRunner.ts +2 -1
  143. package/src/OrderedQuery.ts +5 -1
  144. package/src/QueryCtx.ts +1 -1
  145. package/src/QueryInitializer.ts +5 -1
  146. package/src/QueryRunner.ts +2 -1
  147. package/src/RegisteredConvexFunction.ts +6 -1
  148. package/src/RegisteredFunction.ts +5 -1
  149. package/src/RegisteredFunctions.ts +3 -1
  150. package/src/RegisteredNodeFunction.ts +4 -2
  151. package/src/RegistryItem.ts +1 -1
  152. package/src/Scheduler.ts +5 -1
  153. package/src/SchemaToValidator.ts +14 -16
  154. package/src/StorageActionWriter.ts +4 -1
  155. package/src/StorageReader.ts +5 -1
  156. package/src/StorageWriter.ts +4 -1
  157. package/src/Table.ts +2 -1
  158. package/src/VectorSearch.ts +3 -1
  159. package/src/internal/utils.ts +3 -1
@@ -1,6 +1,9 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
2
  import { decode } from "./Document.js";
3
- import { Chunk, Effect, Stream, identity, pipe } from "effect";
3
+ import { identity, pipe } from "effect/Function";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Chunk from "effect/Chunk";
6
+ import * as Stream from "effect/Stream";
4
7
 
5
8
  //#region src/OrderedQuery.ts
6
9
  var OrderedQuery_exports = /* @__PURE__ */ __exportAll({ make: () => make });
@@ -1 +1 @@
1
- {"version":3,"file":"OrderedQuery.js","names":["Document.decode"],"sources":["../src/OrderedQuery.ts"],"sourcesContent":["import type {\n ExpressionOrValue,\n FilterBuilder,\n OrderedQuery as ConvexOrderedQuery,\n PaginationResult,\n} from \"convex/server\";\nimport { Chunk, Effect, identity, type Option, pipe, Stream } from \"effect\";\nimport * as Document from \"./Document\";\nimport type * as TableInfo from \"./TableInfo\";\n\nexport type OrderedQuery<\n TableInfo_ extends TableInfo.AnyWithProps,\n _TableName extends string,\n> = {\n readonly first: () => Effect.Effect<\n Option.Option<TableInfo_[\"document\"]>,\n Document.DocumentDecodeError\n >;\n readonly take: (\n n: number,\n ) => Effect.Effect<\n ReadonlyArray<TableInfo_[\"document\"]>,\n Document.DocumentDecodeError\n >;\n readonly collect: () => Effect.Effect<\n ReadonlyArray<TableInfo_[\"document\"]>,\n Document.DocumentDecodeError\n >;\n readonly stream: () => Stream.Stream<\n TableInfo_[\"document\"],\n Document.DocumentDecodeError\n >;\n readonly paginate: (\n options: {\n cursor: string | null;\n numItems: number;\n },\n filter?: (\n q: FilterBuilder<TableInfo.ConvexTableInfo<TableInfo_>>,\n ) => ExpressionOrValue<boolean>,\n ) => Effect.Effect<\n PaginationResult<TableInfo_[\"document\"]>,\n Document.DocumentDecodeError\n >;\n};\n\nexport const make = <\n TableInfo_ extends TableInfo.AnyWithProps,\n TableName extends string,\n>(\n query: ConvexOrderedQuery<TableInfo.ConvexTableInfo<TableInfo_>>,\n tableName: TableName,\n tableSchema: TableInfo.TableSchema<TableInfo_>,\n): OrderedQuery<TableInfo_, TableName> => {\n type OrderedQueryFunction<\n FunctionName extends keyof OrderedQuery<TableInfo_, TableName>,\n > = OrderedQuery<TableInfo_, TableName>[FunctionName];\n\n const streamEncoded = Stream.fromAsyncIterable(query, identity).pipe(\n Stream.orDie,\n );\n\n const stream: OrderedQueryFunction<\"stream\"> = () =>\n pipe(\n streamEncoded,\n Stream.mapEffect(Document.decode(tableName, tableSchema)),\n );\n\n const first: OrderedQueryFunction<\"first\"> = () =>\n pipe(stream(), Stream.take(1), Stream.runHead);\n\n const take: OrderedQueryFunction<\"take\"> = (n: number) =>\n pipe(\n stream(),\n Stream.take(n),\n Stream.runCollect,\n Effect.map((chunk) => Chunk.toReadonlyArray(chunk)),\n );\n\n const collect: OrderedQueryFunction<\"collect\"> = () =>\n pipe(stream(), Stream.runCollect, Effect.map(Chunk.toReadonlyArray));\n\n const paginate: OrderedQueryFunction<\"paginate\"> = (options, filter) =>\n Effect.gen(function* () {\n const filteredQuery = filter !== undefined ? query.filter(filter) : query;\n\n const paginationResult = yield* Effect.promise(() =>\n filteredQuery.paginate(options),\n );\n\n const parsedPage = yield* Effect.forEach(\n paginationResult.page,\n Document.decode(tableName, tableSchema),\n );\n\n return {\n page: parsedPage,\n isDone: paginationResult.isDone,\n continueCursor: paginationResult.continueCursor,\n /* v8 ignore start */\n ...(paginationResult.splitCursor\n ? { splitCursor: paginationResult.splitCursor }\n : {}),\n ...(paginationResult.pageStatus\n ? { pageStatus: paginationResult.pageStatus }\n : {}),\n /* v8 ignore stop */\n };\n });\n\n return {\n first,\n take,\n collect,\n paginate,\n stream,\n };\n};\n"],"mappings":";;;;;;AA8CA,MAAa,QAIX,OACA,WACA,gBACwC;CAKxC,MAAM,gBAAgB,OAAO,kBAAkB,OAAO,SAAS,CAAC,KAC9D,OAAO,MACR;CAED,MAAM,eACJ,KACE,eACA,OAAO,UAAUA,OAAgB,WAAW,YAAY,CAAC,CAC1D;CAEH,MAAM,cACJ,KAAK,QAAQ,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,QAAQ;CAEhD,MAAM,QAAsC,MAC1C,KACE,QAAQ,EACR,OAAO,KAAK,EAAE,EACd,OAAO,YACP,OAAO,KAAK,UAAU,MAAM,gBAAgB,MAAM,CAAC,CACpD;CAEH,MAAM,gBACJ,KAAK,QAAQ,EAAE,OAAO,YAAY,OAAO,IAAI,MAAM,gBAAgB,CAAC;CAEtE,MAAM,YAA8C,SAAS,WAC3D,OAAO,IAAI,aAAa;EACtB,MAAM,gBAAgB,WAAW,SAAY,MAAM,OAAO,OAAO,GAAG;EAEpE,MAAM,mBAAmB,OAAO,OAAO,cACrC,cAAc,SAAS,QAAQ,CAChC;AAOD,SAAO;GACL,MANiB,OAAO,OAAO,QAC/B,iBAAiB,MACjBA,OAAgB,WAAW,YAAY,CACxC;GAIC,QAAQ,iBAAiB;GACzB,gBAAgB,iBAAiB;GAEjC,GAAI,iBAAiB,cACjB,EAAE,aAAa,iBAAiB,aAAa,GAC7C,EAAE;GACN,GAAI,iBAAiB,aACjB,EAAE,YAAY,iBAAiB,YAAY,GAC3C,EAAE;GAEP;GACD;AAEJ,QAAO;EACL;EACA;EACA;EACA;EACA;EACD"}
1
+ {"version":3,"file":"OrderedQuery.js","names":["Document.decode"],"sources":["../src/OrderedQuery.ts"],"sourcesContent":["import type {\n ExpressionOrValue,\n FilterBuilder,\n OrderedQuery as ConvexOrderedQuery,\n PaginationResult,\n} from \"convex/server\";\nimport { identity, pipe } from \"effect/Function\";\nimport type { Option } from \"effect\";\nimport * as Chunk from \"effect/Chunk\";\nimport * as Effect from \"effect/Effect\";\nimport * as Stream from \"effect/Stream\";\nimport * as Document from \"./Document\";\nimport type * as TableInfo from \"./TableInfo\";\n\nexport type OrderedQuery<\n TableInfo_ extends TableInfo.AnyWithProps,\n _TableName extends string,\n> = {\n readonly first: () => Effect.Effect<\n Option.Option<TableInfo_[\"document\"]>,\n Document.DocumentDecodeError\n >;\n readonly take: (\n n: number,\n ) => Effect.Effect<\n ReadonlyArray<TableInfo_[\"document\"]>,\n Document.DocumentDecodeError\n >;\n readonly collect: () => Effect.Effect<\n ReadonlyArray<TableInfo_[\"document\"]>,\n Document.DocumentDecodeError\n >;\n readonly stream: () => Stream.Stream<\n TableInfo_[\"document\"],\n Document.DocumentDecodeError\n >;\n readonly paginate: (\n options: {\n cursor: string | null;\n numItems: number;\n },\n filter?: (\n q: FilterBuilder<TableInfo.ConvexTableInfo<TableInfo_>>,\n ) => ExpressionOrValue<boolean>,\n ) => Effect.Effect<\n PaginationResult<TableInfo_[\"document\"]>,\n Document.DocumentDecodeError\n >;\n};\n\nexport const make = <\n TableInfo_ extends TableInfo.AnyWithProps,\n TableName extends string,\n>(\n query: ConvexOrderedQuery<TableInfo.ConvexTableInfo<TableInfo_>>,\n tableName: TableName,\n tableSchema: TableInfo.TableSchema<TableInfo_>,\n): OrderedQuery<TableInfo_, TableName> => {\n type OrderedQueryFunction<\n FunctionName extends keyof OrderedQuery<TableInfo_, TableName>,\n > = OrderedQuery<TableInfo_, TableName>[FunctionName];\n\n const streamEncoded = Stream.fromAsyncIterable(query, identity).pipe(\n Stream.orDie,\n );\n\n const stream: OrderedQueryFunction<\"stream\"> = () =>\n pipe(\n streamEncoded,\n Stream.mapEffect(Document.decode(tableName, tableSchema)),\n );\n\n const first: OrderedQueryFunction<\"first\"> = () =>\n pipe(stream(), Stream.take(1), Stream.runHead);\n\n const take: OrderedQueryFunction<\"take\"> = (n: number) =>\n pipe(\n stream(),\n Stream.take(n),\n Stream.runCollect,\n Effect.map((chunk) => Chunk.toReadonlyArray(chunk)),\n );\n\n const collect: OrderedQueryFunction<\"collect\"> = () =>\n pipe(stream(), Stream.runCollect, Effect.map(Chunk.toReadonlyArray));\n\n const paginate: OrderedQueryFunction<\"paginate\"> = (options, filter) =>\n Effect.gen(function* () {\n const filteredQuery = filter !== undefined ? query.filter(filter) : query;\n\n const paginationResult = yield* Effect.promise(() =>\n filteredQuery.paginate(options),\n );\n\n const parsedPage = yield* Effect.forEach(\n paginationResult.page,\n Document.decode(tableName, tableSchema),\n );\n\n return {\n page: parsedPage,\n isDone: paginationResult.isDone,\n continueCursor: paginationResult.continueCursor,\n /* v8 ignore start */\n ...(paginationResult.splitCursor\n ? { splitCursor: paginationResult.splitCursor }\n : {}),\n ...(paginationResult.pageStatus\n ? { pageStatus: paginationResult.pageStatus }\n : {}),\n /* v8 ignore stop */\n };\n });\n\n return {\n first,\n take,\n collect,\n paginate,\n stream,\n };\n};\n"],"mappings":";;;;;;;;;AAkDA,MAAa,QAIX,OACA,WACA,gBACwC;CAKxC,MAAM,gBAAgB,OAAO,kBAAkB,OAAO,SAAS,CAAC,KAC9D,OAAO,MACR;CAED,MAAM,eACJ,KACE,eACA,OAAO,UAAUA,OAAgB,WAAW,YAAY,CAAC,CAC1D;CAEH,MAAM,cACJ,KAAK,QAAQ,EAAE,OAAO,KAAK,EAAE,EAAE,OAAO,QAAQ;CAEhD,MAAM,QAAsC,MAC1C,KACE,QAAQ,EACR,OAAO,KAAK,EAAE,EACd,OAAO,YACP,OAAO,KAAK,UAAU,MAAM,gBAAgB,MAAM,CAAC,CACpD;CAEH,MAAM,gBACJ,KAAK,QAAQ,EAAE,OAAO,YAAY,OAAO,IAAI,MAAM,gBAAgB,CAAC;CAEtE,MAAM,YAA8C,SAAS,WAC3D,OAAO,IAAI,aAAa;EACtB,MAAM,gBAAgB,WAAW,SAAY,MAAM,OAAO,OAAO,GAAG;EAEpE,MAAM,mBAAmB,OAAO,OAAO,cACrC,cAAc,SAAS,QAAQ,CAChC;AAOD,SAAO;GACL,MANiB,OAAO,OAAO,QAC/B,iBAAiB,MACjBA,OAAgB,WAAW,YAAY,CACxC;GAIC,QAAQ,iBAAiB;GACzB,gBAAgB,iBAAiB;GAEjC,GAAI,iBAAiB,cACjB,EAAE,aAAa,iBAAiB,aAAa,GAC7C,EAAE;GACN,GAAI,iBAAiB,aACjB,EAAE,YAAY,iBAAiB,YAAY,GAC3C,EAAE;GAEP;GACD;AAEJ,QAAO;EACL;EACA;EACA;EACA;EACA;EACD"}
@@ -1,4 +1,4 @@
1
- import { Context } from "effect";
1
+ import * as Context from "effect/Context";
2
2
  import { GenericDataModel, GenericQueryCtx } from "convex/server";
3
3
 
4
4
  //#region src/QueryCtx.d.ts
package/dist/QueryCtx.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
- import { Context } from "effect";
2
+ import * as Context from "effect/Context";
3
3
 
4
4
  //#region src/QueryCtx.ts
5
5
  var QueryCtx_exports = /* @__PURE__ */ __exportAll({ QueryCtx: () => QueryCtx });
@@ -1 +1 @@
1
- {"version":3,"file":"QueryCtx.js","names":[],"sources":["../src/QueryCtx.ts"],"sourcesContent":["import type { GenericDataModel, GenericQueryCtx } from \"convex/server\";\nimport { Context } from \"effect\";\n\nexport const QueryCtx = <DataModel extends GenericDataModel>() =>\n Context.GenericTag<GenericQueryCtx<DataModel>>(\"@confect/server/QueryCtx\");\n\nexport type QueryCtx<DataModel extends GenericDataModel> = ReturnType<\n typeof QueryCtx<DataModel>\n>[\"Identifier\"];\n"],"mappings":";;;;;AAGA,MAAa,iBACX,QAAQ,WAAuC,2BAA2B"}
1
+ {"version":3,"file":"QueryCtx.js","names":[],"sources":["../src/QueryCtx.ts"],"sourcesContent":["import type { GenericDataModel, GenericQueryCtx } from \"convex/server\";\nimport * as Context from \"effect/Context\";\n\nexport const QueryCtx = <DataModel extends GenericDataModel>() =>\n Context.GenericTag<GenericQueryCtx<DataModel>>(\"@confect/server/QueryCtx\");\n\nexport type QueryCtx<DataModel extends GenericDataModel> = ReturnType<\n typeof QueryCtx<DataModel>\n>[\"Identifier\"];\n"],"mappings":";;;;;AAGA,MAAa,iBACX,QAAQ,WAAuC,2BAA2B"}
@@ -3,8 +3,9 @@ import { DocumentDecodeError } from "./Document.js";
3
3
  import { AnyWithProps as AnyWithProps$1 } from "./TableInfo.js";
4
4
  import { AnyWithProps as AnyWithProps$2, DataModel, FromTables, TableInfoWithName, TableInfoWithName_, TableNames, ToConvex } from "./DataModel.js";
5
5
  import { OrderedQuery as OrderedQuery$1 } from "./OrderedQuery.js";
6
- import { Effect, Schema } from "effect";
7
6
  import { DocumentByInfo, GenericTableInfo, IndexRange, IndexRangeBuilder, Indexes, NamedIndex, NamedSearchIndex, SearchFilter, SearchFilterBuilder, SearchIndexes } from "convex/server";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Schema from "effect/Schema";
8
9
  import { GenericId } from "convex/values";
9
10
  import { BaseDatabaseReader, IndexFieldTypesForEq } from "@confect/core/Types";
10
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"QueryInitializer.d.ts","names":[],"sources":["../src/QueryInitializer.ts"],"mappings":";;;;;;;;;;;;;;KA6BK,gBAAA,oBACgB,cAAA,oBACD,UAAA,CAAqB,UAAA,4BACd,gBAAA,qBACN,cAAA;EAAA,SAEV,GAAA;IAAA,CAEL,EAAA,EAAI,SAAA,CAAU,SAAA,IACb,MAAA,CAAO,MAAA,CACR,UAAA,cACA,mBAAA,GAA+B,cAAA;IAAA,yBAER,OAAA,CAAQ,gBAAA,GAC/B,SAAA,EAAW,SAAA,KACR,gBAAA,EAAkB,oBAAA,CACnB,QAAA,CAAmB,UAAA,GACnB,SAAA,EACA,OAAA,CAAQ,gBAAA,EAAkB,SAAA,KAE3B,MAAA,CAAO,MAAA,CACR,UAAA,cACA,mBAAA,GAA+B,iBAAA;EAAA;EAAA,SAG1B,KAAA;IAAA,yBACkB,OAAA,CAAQ,gBAAA,GAC/B,SAAA,EAAW,SAAA,EACX,UAAA,IACE,CAAA,EAAG,iBAAA,CACD,UAAA,oBACA,UAAA,CAAW,gBAAA,EAAkB,SAAA,OAE5B,UAAA,EACL,KAAA,oBACC,cAAA,CAA0B,UAAA,EAAY,SAAA;IAAA,yBAChB,OAAA,CAAQ,gBAAA,GAC/B,SAAA,EAAW,SAAA,EACX,KAAA,oBACC,cAAA,CAA0B,UAAA,EAAY,SAAA;EAAA;EAAA,SAElC,MAAA,2BAAiC,aAAA,CAAc,gBAAA,GACtD,SAAA,EAAW,SAAA,EACX,YAAA,GACE,CAAA,EAAG,mBAAA,CACD,cAAA,CAAe,gBAAA,GACf,gBAAA,CAAiB,gBAAA,EAAkB,SAAA,OAElC,YAAA,KACF,cAAA,CAA0B,UAAA,EAAY,SAAA;AAAA;AAAA,cAGhC,IAAA,kBACI,YAAA,oBACG,IAAA,CAAW,MAAA,GAE7B,SAAA,EAAW,SAAA,EACX,oBAAA,EAAsB,kBAAA,CACpB,QAAA,CAAmB,UAAA,CAAqB,MAAA,KAE1C,KAAA,EAAO,QAAA,CAAe,MAAA,EAAQ,SAAA,MAC7B,gBAAA,CACD,SAAA,CAAoB,MAAA,GACpB,SAAA,EACA,iBAAA,CAA4B,SAAA,CAAoB,MAAA,GAAS,SAAA,GACzD,kBAAA,CAA6B,SAAA,CAAoB,MAAA,GAAS,SAAA;AAAA,cAmL/C,OAAA,kBACK,YAAA,oBAAsC,IAAA,CAAW,MAAA,GAC/D,SAAA,EAAW,SAAA,EACX,oBAAA,EAAsB,kBAAA,CACpB,QAAA,CAAmB,UAAA,CAAqB,MAAA,KAE1C,KAAA,EAAO,QAAA,CAAe,MAAA,EAAQ,SAAA,OAE/B,EAAA,EAAI,SAAA,CAAU,SAAA,MAAU,MAAA,CAAA,MAAA,MAAA,cAAA,GAAA,mBAAA;AAAA,cAOrB,mBAAA;;;;;;cAEO,cAAA,SAAuB,mBAAA;EAAA,IAOrB,OAAA,CAAA;AAAA;AAAA,cAOd,sBAAA;;;;;;;cAEY,iBAAA,SAA0B,sBAAA;EAAA,IAQxB,OAAA,CAAA;AAAA"}
1
+ {"version":3,"file":"QueryInitializer.d.ts","names":[],"sources":["../src/QueryInitializer.ts"],"mappings":";;;;;;;;;;;;;;;KAiCK,gBAAA,oBACgB,cAAA,oBACD,UAAA,CAAqB,UAAA,4BACd,gBAAA,qBACN,cAAA;EAAA,SAEV,GAAA;IAAA,CAEL,EAAA,EAAI,SAAA,CAAU,SAAA,IACb,MAAA,CAAO,MAAA,CACR,UAAA,cACA,mBAAA,GAA+B,cAAA;IAAA,yBAER,OAAA,CAAQ,gBAAA,GAC/B,SAAA,EAAW,SAAA,KACR,gBAAA,EAAkB,oBAAA,CACnB,QAAA,CAAmB,UAAA,GACnB,SAAA,EACA,OAAA,CAAQ,gBAAA,EAAkB,SAAA,KAE3B,MAAA,CAAO,MAAA,CACR,UAAA,cACA,mBAAA,GAA+B,iBAAA;EAAA;EAAA,SAG1B,KAAA;IAAA,yBACkB,OAAA,CAAQ,gBAAA,GAC/B,SAAA,EAAW,SAAA,EACX,UAAA,IACE,CAAA,EAAG,iBAAA,CACD,UAAA,oBACA,UAAA,CAAW,gBAAA,EAAkB,SAAA,OAE5B,UAAA,EACL,KAAA,oBACC,cAAA,CAA0B,UAAA,EAAY,SAAA;IAAA,yBAChB,OAAA,CAAQ,gBAAA,GAC/B,SAAA,EAAW,SAAA,EACX,KAAA,oBACC,cAAA,CAA0B,UAAA,EAAY,SAAA;EAAA;EAAA,SAElC,MAAA,2BAAiC,aAAA,CAAc,gBAAA,GACtD,SAAA,EAAW,SAAA,EACX,YAAA,GACE,CAAA,EAAG,mBAAA,CACD,cAAA,CAAe,gBAAA,GACf,gBAAA,CAAiB,gBAAA,EAAkB,SAAA,OAElC,YAAA,KACF,cAAA,CAA0B,UAAA,EAAY,SAAA;AAAA;AAAA,cAGhC,IAAA,kBACI,YAAA,oBACG,IAAA,CAAW,MAAA,GAE7B,SAAA,EAAW,SAAA,EACX,oBAAA,EAAsB,kBAAA,CACpB,QAAA,CAAmB,UAAA,CAAqB,MAAA,KAE1C,KAAA,EAAO,QAAA,CAAe,MAAA,EAAQ,SAAA,MAC7B,gBAAA,CACD,SAAA,CAAoB,MAAA,GACpB,SAAA,EACA,iBAAA,CAA4B,SAAA,CAAoB,MAAA,GAAS,SAAA,GACzD,kBAAA,CAA6B,SAAA,CAAoB,MAAA,GAAS,SAAA;AAAA,cAmL/C,OAAA,kBACK,YAAA,oBAAsC,IAAA,CAAW,MAAA,GAC/D,SAAA,EAAW,SAAA,EACX,oBAAA,EAAsB,kBAAA,CACpB,QAAA,CAAmB,UAAA,CAAqB,MAAA,KAE1C,KAAA,EAAO,QAAA,CAAe,MAAA,EAAQ,SAAA,OAE/B,EAAA,EAAI,SAAA,CAAU,SAAA,MAAU,MAAA,CAAA,MAAA,MAAA,cAAA,GAAA,mBAAA;AAAA,cAOrB,mBAAA;;;;;;cAEO,cAAA,SAAuB,mBAAA;EAAA,IAOrB,OAAA,CAAA;AAAA;AAAA,cAOd,sBAAA;;;;;;;cAEY,iBAAA,SAA0B,sBAAA;EAAA,IAQxB,OAAA,CAAA;AAAA"}
@@ -1,7 +1,11 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
2
  import { decode, documentErrorMessage } from "./Document.js";
3
3
  import { make as make$1 } from "./OrderedQuery.js";
4
- import { Array, Effect, Either, Schema, pipe } from "effect";
4
+ import { pipe } from "effect/Function";
5
+ import * as Effect from "effect/Effect";
6
+ import * as Schema from "effect/Schema";
7
+ import * as Array from "effect/Array";
8
+ import * as Either from "effect/Either";
5
9
 
6
10
  //#region src/QueryInitializer.ts
7
11
  var QueryInitializer_exports = /* @__PURE__ */ __exportAll({
@@ -1 +1 @@
1
- {"version":3,"file":"QueryInitializer.js","names":["Document.decode","OrderedQuery.make","Document.documentErrorMessage"],"sources":["../src/QueryInitializer.ts"],"sourcesContent":["import type {\n OrderedQuery as ConvexOrderedQuery,\n QueryInitializer as ConvexQueryInitializer,\n DocumentByInfo,\n GenericTableIndexes,\n GenericTableInfo,\n Indexes,\n IndexRange,\n IndexRangeBuilder,\n NamedIndex,\n NamedSearchIndex,\n NamedTableInfo,\n Query,\n SearchFilter,\n SearchFilterBuilder,\n SearchIndexes,\n} from \"convex/server\";\nimport type { GenericId } from \"convex/values\";\nimport { Array, Effect, Either, pipe, Schema } from \"effect\";\nimport type {\n BaseDatabaseReader,\n IndexFieldTypesForEq,\n} from \"@confect/core/Types\";\nimport type * as DataModel from \"./DataModel\";\nimport * as Document from \"./Document\";\nimport * as OrderedQuery from \"./OrderedQuery\";\nimport type * as Table from \"./Table\";\nimport type * as TableInfo from \"./TableInfo\";\n\ntype QueryInitializer<\n DataModel_ extends DataModel.AnyWithProps,\n TableName extends DataModel.TableNames<DataModel_>,\n _ConvexTableInfo extends GenericTableInfo,\n _TableInfo extends TableInfo.AnyWithProps,\n> = {\n readonly get: {\n (\n id: GenericId<TableName>,\n ): Effect.Effect<\n _TableInfo[\"document\"],\n Document.DocumentDecodeError | GetByIdFailure\n >;\n <IndexName extends keyof Indexes<_ConvexTableInfo>>(\n indexName: IndexName,\n ...indexFieldValues: IndexFieldTypesForEq<\n DataModel.ToConvex<DataModel_>,\n TableName,\n Indexes<_ConvexTableInfo>[IndexName]\n >\n ): Effect.Effect<\n _TableInfo[\"document\"],\n Document.DocumentDecodeError | GetByIndexFailure\n >;\n };\n readonly index: {\n <IndexName extends keyof Indexes<_ConvexTableInfo>>(\n indexName: IndexName,\n indexRange?: (\n q: IndexRangeBuilder<\n _TableInfo[\"convexDocument\"],\n NamedIndex<_ConvexTableInfo, IndexName>\n >,\n ) => IndexRange,\n order?: \"asc\" | \"desc\",\n ): OrderedQuery.OrderedQuery<_TableInfo, TableName>;\n <IndexName extends keyof Indexes<_ConvexTableInfo>>(\n indexName: IndexName,\n order?: \"asc\" | \"desc\",\n ): OrderedQuery.OrderedQuery<_TableInfo, TableName>;\n };\n readonly search: <IndexName extends keyof SearchIndexes<_ConvexTableInfo>>(\n indexName: IndexName,\n searchFilter: (\n q: SearchFilterBuilder<\n DocumentByInfo<_ConvexTableInfo>,\n NamedSearchIndex<_ConvexTableInfo, IndexName>\n >,\n ) => SearchFilter,\n ) => OrderedQuery.OrderedQuery<_TableInfo, TableName>;\n};\n\nexport const make = <\n Tables extends Table.AnyWithProps,\n TableName extends Table.Name<Tables>,\n>(\n tableName: TableName,\n convexDatabaseReader: BaseDatabaseReader<\n DataModel.ToConvex<DataModel.FromTables<Tables>>\n >,\n table: Table.WithName<Tables, TableName>,\n): QueryInitializer<\n DataModel.DataModel<Tables>,\n TableName,\n DataModel.TableInfoWithName<DataModel.DataModel<Tables>, TableName>,\n DataModel.TableInfoWithName_<DataModel.DataModel<Tables>, TableName>\n> => {\n type DataModel_ = DataModel.DataModel<Tables>;\n type ConvexDataModel_ = DataModel.ToConvex<DataModel_>;\n type ThisQueryInitializer = QueryInitializer<\n DataModel_,\n TableName,\n DataModel.TableInfoWithName<DataModel_, TableName>,\n DataModel.TableInfoWithName_<DataModel_, TableName>\n >;\n type QueryInitializerFunction<\n FunctionName extends keyof ThisQueryInitializer,\n > = ThisQueryInitializer[FunctionName];\n\n const getByIndex = <\n IndexName extends keyof Indexes<\n DataModel.TableInfoWithName<DataModel_, TableName>\n >,\n >(\n indexName: IndexName,\n indexFieldValues: IndexFieldTypesForEq<\n DataModel.ToConvex<DataModel_>,\n TableName,\n Indexes<DataModel.TableInfoWithName<DataModel_, TableName>>[IndexName]\n >,\n ): Effect.Effect<\n DataModel.DocumentWithName<DataModel_, TableName>,\n Document.DocumentDecodeError | GetByIndexFailure\n > => {\n const indexFields: GenericTableIndexes[keyof GenericTableIndexes] = (\n table.indexes as GenericTableIndexes\n )[indexName as keyof GenericTableIndexes]!;\n\n return pipe(\n Effect.promise(() =>\n convexDatabaseReader\n .query(tableName)\n .withIndex(indexName, (q) =>\n Array.reduce(\n indexFieldValues,\n q,\n (q_, v, i) => q_.eq(indexFields[i] as any, v as any) as any,\n ),\n )\n .unique(),\n ),\n Effect.andThen(\n Either.fromNullable(\n () =>\n new GetByIndexFailure({\n tableName,\n indexName: indexName as string,\n indexFieldValues: indexFieldValues as string[],\n }),\n ),\n ),\n Effect.andThen(Document.decode(tableName, table.Fields)),\n );\n };\n\n const get: QueryInitializerFunction<\"get\"> = ((\n ...args: Parameters<QueryInitializerFunction<\"get\">>\n ) => {\n if (args.length === 1) {\n const id = args[0] as GenericId<TableName>;\n\n return getById(tableName, convexDatabaseReader, table)(id);\n } else {\n const [indexName, ...indexFieldValues] = args;\n\n return getByIndex(\n indexName as keyof Indexes<\n DataModel.TableInfoWithName<DataModel_, TableName>\n >,\n indexFieldValues,\n );\n }\n }) as QueryInitializerFunction<\"get\">;\n\n const index: QueryInitializerFunction<\"index\"> = <\n IndexName extends keyof Indexes<\n DataModel.TableInfoWithName<DataModel_, TableName>\n >,\n >(\n indexName: IndexName,\n indexRangeOrOrder?:\n | ((\n q: IndexRangeBuilder<\n DataModel.TableInfoWithName_<\n DataModel_,\n TableName\n >[\"convexDocument\"],\n NamedIndex<\n DataModel.TableInfoWithName<DataModel_, TableName>,\n IndexName\n >\n >,\n ) => IndexRange)\n | \"asc\"\n | \"desc\",\n order?: \"asc\" | \"desc\",\n ) => {\n const {\n applyWithIndex,\n applyOrder,\n }: {\n applyWithIndex: (\n queryInitializer: ConvexQueryInitializer<\n NamedTableInfo<ConvexDataModel_, TableName>\n >,\n ) => Query<NamedTableInfo<ConvexDataModel_, TableName>>;\n applyOrder: (\n query: Query<NamedTableInfo<ConvexDataModel_, TableName>>,\n ) => ConvexOrderedQuery<NamedTableInfo<ConvexDataModel_, TableName>>;\n } =\n indexRangeOrOrder === undefined\n ? {\n applyWithIndex: (q) => q.withIndex(indexName),\n applyOrder: (q) => q.order(\"asc\"),\n }\n : typeof indexRangeOrOrder === \"function\"\n ? order === undefined\n ? {\n applyWithIndex: (q) =>\n q.withIndex(indexName, indexRangeOrOrder),\n applyOrder: (q) => q.order(\"asc\"),\n }\n : {\n applyWithIndex: (q) =>\n q.withIndex(indexName, indexRangeOrOrder),\n applyOrder: (q) => q.order(order),\n }\n : {\n applyWithIndex: (q) => q.withIndex(indexName),\n applyOrder: (q) => q.order(indexRangeOrOrder),\n };\n\n const orderedQuery = pipe(\n convexDatabaseReader.query(tableName),\n applyWithIndex,\n applyOrder,\n );\n\n return OrderedQuery.make<\n DataModel.TableInfoWithName_<DataModel_, TableName>,\n TableName\n >(\n orderedQuery,\n tableName,\n table.Fields as TableInfo.TableSchema<\n DataModel.TableInfoWithName_<DataModel_, TableName>\n >,\n );\n };\n\n const search: QueryInitializerFunction<\"search\"> = (\n indexName,\n searchFilter,\n ) =>\n OrderedQuery.make<\n DataModel.TableInfoWithName_<DataModel_, TableName>,\n TableName\n >(\n convexDatabaseReader\n .query(tableName)\n .withSearchIndex(indexName, searchFilter),\n tableName,\n table.Fields as TableInfo.TableSchema<\n DataModel.TableInfoWithName_<DataModel_, TableName>\n >,\n );\n\n return {\n get,\n index,\n search,\n };\n};\n\nexport const getById =\n <Tables extends Table.AnyWithProps, TableName extends Table.Name<Tables>>(\n tableName: TableName,\n convexDatabaseReader: BaseDatabaseReader<\n DataModel.ToConvex<DataModel.FromTables<Tables>>\n >,\n table: Table.WithName<Tables, TableName>,\n ) =>\n (id: GenericId<TableName>) =>\n pipe(\n Effect.promise(() => convexDatabaseReader.get(id)),\n Effect.andThen(\n Either.fromNullable(() => new GetByIdFailure({ tableName, id })),\n ),\n Effect.andThen(Document.decode(tableName, table.Fields)),\n );\n\nexport class GetByIdFailure extends Schema.TaggedError<GetByIdFailure>()(\n \"GetByIdFailure\",\n {\n id: Schema.String,\n tableName: Schema.String,\n },\n) {\n override get message(): string {\n return Document.documentErrorMessage({\n id: this.id,\n tableName: this.tableName,\n message: \"not found\",\n });\n }\n}\n\nexport class GetByIndexFailure extends Schema.TaggedError<GetByIndexFailure>()(\n \"GetByIndexFailure\",\n {\n tableName: Schema.String,\n indexName: Schema.String,\n indexFieldValues: Schema.Array(Schema.String),\n },\n) {\n override get message(): string {\n return `No documents found in table '${this.tableName}' with index '${this.indexName}' and field values '${this.indexFieldValues}'`;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAiFA,MAAa,QAIX,WACA,sBAGA,UAMG;CAaH,MAAM,cAKJ,WACA,qBAQG;EACH,MAAM,cACJ,MAAM,QACN;AAEF,SAAO,KACL,OAAO,cACL,qBACG,MAAM,UAAU,CAChB,UAAU,YAAY,MACrB,MAAM,OACJ,kBACA,IACC,IAAI,GAAG,MAAM,GAAG,GAAG,YAAY,IAAW,EAAS,CACrD,CACF,CACA,QAAQ,CACZ,EACD,OAAO,QACL,OAAO,mBAEH,IAAI,kBAAkB;GACpB;GACW;GACO;GACnB,CAAC,CACL,CACF,EACD,OAAO,QAAQA,OAAgB,WAAW,MAAM,OAAO,CAAC,CACzD;;CAGH,MAAM,QACJ,GAAG,SACA;AACH,MAAI,KAAK,WAAW,GAAG;GACrB,MAAM,KAAK,KAAK;AAEhB,UAAO,QAAQ,WAAW,sBAAsB,MAAM,CAAC,GAAG;SACrD;GACL,MAAM,CAAC,WAAW,GAAG,oBAAoB;AAEzC,UAAO,WACL,WAGA,iBACD;;;CAIL,MAAM,SAKJ,WACA,mBAeA,UACG;EACH,MAAM,EACJ,gBACA,eAWA,sBAAsB,SAClB;GACE,iBAAiB,MAAM,EAAE,UAAU,UAAU;GAC7C,aAAa,MAAM,EAAE,MAAM,MAAM;GAClC,GACD,OAAO,sBAAsB,aAC3B,UAAU,SACR;GACE,iBAAiB,MACf,EAAE,UAAU,WAAW,kBAAkB;GAC3C,aAAa,MAAM,EAAE,MAAM,MAAM;GAClC,GACD;GACE,iBAAiB,MACf,EAAE,UAAU,WAAW,kBAAkB;GAC3C,aAAa,MAAM,EAAE,MAAM,MAAM;GAClC,GACH;GACE,iBAAiB,MAAM,EAAE,UAAU,UAAU;GAC7C,aAAa,MAAM,EAAE,MAAM,kBAAkB;GAC9C;EAET,MAAM,eAAe,KACnB,qBAAqB,MAAM,UAAU,EACrC,gBACA,WACD;AAED,SAAOC,OAIL,cACA,WACA,MAAM,OAGP;;CAGH,MAAM,UACJ,WACA,iBAEAA,OAIE,qBACG,MAAM,UAAU,CAChB,gBAAgB,WAAW,aAAa,EAC3C,WACA,MAAM,OAGP;AAEH,QAAO;EACL;EACA;EACA;EACD;;AAGH,MAAa,WAET,WACA,sBAGA,WAED,OACC,KACE,OAAO,cAAc,qBAAqB,IAAI,GAAG,CAAC,EAClD,OAAO,QACL,OAAO,mBAAmB,IAAI,eAAe;CAAE;CAAW;CAAI,CAAC,CAAC,CACjE,EACD,OAAO,QAAQD,OAAgB,WAAW,MAAM,OAAO,CAAC,CACzD;AAEL,IAAa,iBAAb,cAAoC,OAAO,aAA6B,CACtE,kBACA;CACE,IAAI,OAAO;CACX,WAAW,OAAO;CACnB,CACF,CAAC;CACA,IAAa,UAAkB;AAC7B,SAAOE,qBAA8B;GACnC,IAAI,KAAK;GACT,WAAW,KAAK;GAChB,SAAS;GACV,CAAC;;;AAIN,IAAa,oBAAb,cAAuC,OAAO,aAAgC,CAC5E,qBACA;CACE,WAAW,OAAO;CAClB,WAAW,OAAO;CAClB,kBAAkB,OAAO,MAAM,OAAO,OAAO;CAC9C,CACF,CAAC;CACA,IAAa,UAAkB;AAC7B,SAAO,gCAAgC,KAAK,UAAU,gBAAgB,KAAK,UAAU,sBAAsB,KAAK,iBAAiB"}
1
+ {"version":3,"file":"QueryInitializer.js","names":["Document.decode","OrderedQuery.make","Document.documentErrorMessage"],"sources":["../src/QueryInitializer.ts"],"sourcesContent":["import type {\n OrderedQuery as ConvexOrderedQuery,\n QueryInitializer as ConvexQueryInitializer,\n DocumentByInfo,\n GenericTableIndexes,\n GenericTableInfo,\n Indexes,\n IndexRange,\n IndexRangeBuilder,\n NamedIndex,\n NamedSearchIndex,\n NamedTableInfo,\n Query,\n SearchFilter,\n SearchFilterBuilder,\n SearchIndexes,\n} from \"convex/server\";\nimport type { GenericId } from \"convex/values\";\nimport { pipe } from \"effect/Function\";\nimport * as Array from \"effect/Array\";\nimport * as Effect from \"effect/Effect\";\nimport * as Either from \"effect/Either\";\nimport * as Schema from \"effect/Schema\";\nimport type {\n BaseDatabaseReader,\n IndexFieldTypesForEq,\n} from \"@confect/core/Types\";\nimport type * as DataModel from \"./DataModel\";\nimport * as Document from \"./Document\";\nimport * as OrderedQuery from \"./OrderedQuery\";\nimport type * as Table from \"./Table\";\nimport type * as TableInfo from \"./TableInfo\";\n\ntype QueryInitializer<\n DataModel_ extends DataModel.AnyWithProps,\n TableName extends DataModel.TableNames<DataModel_>,\n _ConvexTableInfo extends GenericTableInfo,\n _TableInfo extends TableInfo.AnyWithProps,\n> = {\n readonly get: {\n (\n id: GenericId<TableName>,\n ): Effect.Effect<\n _TableInfo[\"document\"],\n Document.DocumentDecodeError | GetByIdFailure\n >;\n <IndexName extends keyof Indexes<_ConvexTableInfo>>(\n indexName: IndexName,\n ...indexFieldValues: IndexFieldTypesForEq<\n DataModel.ToConvex<DataModel_>,\n TableName,\n Indexes<_ConvexTableInfo>[IndexName]\n >\n ): Effect.Effect<\n _TableInfo[\"document\"],\n Document.DocumentDecodeError | GetByIndexFailure\n >;\n };\n readonly index: {\n <IndexName extends keyof Indexes<_ConvexTableInfo>>(\n indexName: IndexName,\n indexRange?: (\n q: IndexRangeBuilder<\n _TableInfo[\"convexDocument\"],\n NamedIndex<_ConvexTableInfo, IndexName>\n >,\n ) => IndexRange,\n order?: \"asc\" | \"desc\",\n ): OrderedQuery.OrderedQuery<_TableInfo, TableName>;\n <IndexName extends keyof Indexes<_ConvexTableInfo>>(\n indexName: IndexName,\n order?: \"asc\" | \"desc\",\n ): OrderedQuery.OrderedQuery<_TableInfo, TableName>;\n };\n readonly search: <IndexName extends keyof SearchIndexes<_ConvexTableInfo>>(\n indexName: IndexName,\n searchFilter: (\n q: SearchFilterBuilder<\n DocumentByInfo<_ConvexTableInfo>,\n NamedSearchIndex<_ConvexTableInfo, IndexName>\n >,\n ) => SearchFilter,\n ) => OrderedQuery.OrderedQuery<_TableInfo, TableName>;\n};\n\nexport const make = <\n Tables extends Table.AnyWithProps,\n TableName extends Table.Name<Tables>,\n>(\n tableName: TableName,\n convexDatabaseReader: BaseDatabaseReader<\n DataModel.ToConvex<DataModel.FromTables<Tables>>\n >,\n table: Table.WithName<Tables, TableName>,\n): QueryInitializer<\n DataModel.DataModel<Tables>,\n TableName,\n DataModel.TableInfoWithName<DataModel.DataModel<Tables>, TableName>,\n DataModel.TableInfoWithName_<DataModel.DataModel<Tables>, TableName>\n> => {\n type DataModel_ = DataModel.DataModel<Tables>;\n type ConvexDataModel_ = DataModel.ToConvex<DataModel_>;\n type ThisQueryInitializer = QueryInitializer<\n DataModel_,\n TableName,\n DataModel.TableInfoWithName<DataModel_, TableName>,\n DataModel.TableInfoWithName_<DataModel_, TableName>\n >;\n type QueryInitializerFunction<\n FunctionName extends keyof ThisQueryInitializer,\n > = ThisQueryInitializer[FunctionName];\n\n const getByIndex = <\n IndexName extends keyof Indexes<\n DataModel.TableInfoWithName<DataModel_, TableName>\n >,\n >(\n indexName: IndexName,\n indexFieldValues: IndexFieldTypesForEq<\n DataModel.ToConvex<DataModel_>,\n TableName,\n Indexes<DataModel.TableInfoWithName<DataModel_, TableName>>[IndexName]\n >,\n ): Effect.Effect<\n DataModel.DocumentWithName<DataModel_, TableName>,\n Document.DocumentDecodeError | GetByIndexFailure\n > => {\n const indexFields: GenericTableIndexes[keyof GenericTableIndexes] = (\n table.indexes as GenericTableIndexes\n )[indexName as keyof GenericTableIndexes]!;\n\n return pipe(\n Effect.promise(() =>\n convexDatabaseReader\n .query(tableName)\n .withIndex(indexName, (q) =>\n Array.reduce(\n indexFieldValues,\n q,\n (q_, v, i) => q_.eq(indexFields[i] as any, v as any) as any,\n ),\n )\n .unique(),\n ),\n Effect.andThen(\n Either.fromNullable(\n () =>\n new GetByIndexFailure({\n tableName,\n indexName: indexName as string,\n indexFieldValues: indexFieldValues as string[],\n }),\n ),\n ),\n Effect.andThen(Document.decode(tableName, table.Fields)),\n );\n };\n\n const get: QueryInitializerFunction<\"get\"> = ((\n ...args: Parameters<QueryInitializerFunction<\"get\">>\n ) => {\n if (args.length === 1) {\n const id = args[0] as GenericId<TableName>;\n\n return getById(tableName, convexDatabaseReader, table)(id);\n } else {\n const [indexName, ...indexFieldValues] = args;\n\n return getByIndex(\n indexName as keyof Indexes<\n DataModel.TableInfoWithName<DataModel_, TableName>\n >,\n indexFieldValues,\n );\n }\n }) as QueryInitializerFunction<\"get\">;\n\n const index: QueryInitializerFunction<\"index\"> = <\n IndexName extends keyof Indexes<\n DataModel.TableInfoWithName<DataModel_, TableName>\n >,\n >(\n indexName: IndexName,\n indexRangeOrOrder?:\n | ((\n q: IndexRangeBuilder<\n DataModel.TableInfoWithName_<\n DataModel_,\n TableName\n >[\"convexDocument\"],\n NamedIndex<\n DataModel.TableInfoWithName<DataModel_, TableName>,\n IndexName\n >\n >,\n ) => IndexRange)\n | \"asc\"\n | \"desc\",\n order?: \"asc\" | \"desc\",\n ) => {\n const {\n applyWithIndex,\n applyOrder,\n }: {\n applyWithIndex: (\n queryInitializer: ConvexQueryInitializer<\n NamedTableInfo<ConvexDataModel_, TableName>\n >,\n ) => Query<NamedTableInfo<ConvexDataModel_, TableName>>;\n applyOrder: (\n query: Query<NamedTableInfo<ConvexDataModel_, TableName>>,\n ) => ConvexOrderedQuery<NamedTableInfo<ConvexDataModel_, TableName>>;\n } =\n indexRangeOrOrder === undefined\n ? {\n applyWithIndex: (q) => q.withIndex(indexName),\n applyOrder: (q) => q.order(\"asc\"),\n }\n : typeof indexRangeOrOrder === \"function\"\n ? order === undefined\n ? {\n applyWithIndex: (q) =>\n q.withIndex(indexName, indexRangeOrOrder),\n applyOrder: (q) => q.order(\"asc\"),\n }\n : {\n applyWithIndex: (q) =>\n q.withIndex(indexName, indexRangeOrOrder),\n applyOrder: (q) => q.order(order),\n }\n : {\n applyWithIndex: (q) => q.withIndex(indexName),\n applyOrder: (q) => q.order(indexRangeOrOrder),\n };\n\n const orderedQuery = pipe(\n convexDatabaseReader.query(tableName),\n applyWithIndex,\n applyOrder,\n );\n\n return OrderedQuery.make<\n DataModel.TableInfoWithName_<DataModel_, TableName>,\n TableName\n >(\n orderedQuery,\n tableName,\n table.Fields as TableInfo.TableSchema<\n DataModel.TableInfoWithName_<DataModel_, TableName>\n >,\n );\n };\n\n const search: QueryInitializerFunction<\"search\"> = (\n indexName,\n searchFilter,\n ) =>\n OrderedQuery.make<\n DataModel.TableInfoWithName_<DataModel_, TableName>,\n TableName\n >(\n convexDatabaseReader\n .query(tableName)\n .withSearchIndex(indexName, searchFilter),\n tableName,\n table.Fields as TableInfo.TableSchema<\n DataModel.TableInfoWithName_<DataModel_, TableName>\n >,\n );\n\n return {\n get,\n index,\n search,\n };\n};\n\nexport const getById =\n <Tables extends Table.AnyWithProps, TableName extends Table.Name<Tables>>(\n tableName: TableName,\n convexDatabaseReader: BaseDatabaseReader<\n DataModel.ToConvex<DataModel.FromTables<Tables>>\n >,\n table: Table.WithName<Tables, TableName>,\n ) =>\n (id: GenericId<TableName>) =>\n pipe(\n Effect.promise(() => convexDatabaseReader.get(id)),\n Effect.andThen(\n Either.fromNullable(() => new GetByIdFailure({ tableName, id })),\n ),\n Effect.andThen(Document.decode(tableName, table.Fields)),\n );\n\nexport class GetByIdFailure extends Schema.TaggedError<GetByIdFailure>()(\n \"GetByIdFailure\",\n {\n id: Schema.String,\n tableName: Schema.String,\n },\n) {\n override get message(): string {\n return Document.documentErrorMessage({\n id: this.id,\n tableName: this.tableName,\n message: \"not found\",\n });\n }\n}\n\nexport class GetByIndexFailure extends Schema.TaggedError<GetByIndexFailure>()(\n \"GetByIndexFailure\",\n {\n tableName: Schema.String,\n indexName: Schema.String,\n indexFieldValues: Schema.Array(Schema.String),\n },\n) {\n override get message(): string {\n return `No documents found in table '${this.tableName}' with index '${this.indexName}' and field values '${this.indexFieldValues}'`;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAqFA,MAAa,QAIX,WACA,sBAGA,UAMG;CAaH,MAAM,cAKJ,WACA,qBAQG;EACH,MAAM,cACJ,MAAM,QACN;AAEF,SAAO,KACL,OAAO,cACL,qBACG,MAAM,UAAU,CAChB,UAAU,YAAY,MACrB,MAAM,OACJ,kBACA,IACC,IAAI,GAAG,MAAM,GAAG,GAAG,YAAY,IAAW,EAAS,CACrD,CACF,CACA,QAAQ,CACZ,EACD,OAAO,QACL,OAAO,mBAEH,IAAI,kBAAkB;GACpB;GACW;GACO;GACnB,CAAC,CACL,CACF,EACD,OAAO,QAAQA,OAAgB,WAAW,MAAM,OAAO,CAAC,CACzD;;CAGH,MAAM,QACJ,GAAG,SACA;AACH,MAAI,KAAK,WAAW,GAAG;GACrB,MAAM,KAAK,KAAK;AAEhB,UAAO,QAAQ,WAAW,sBAAsB,MAAM,CAAC,GAAG;SACrD;GACL,MAAM,CAAC,WAAW,GAAG,oBAAoB;AAEzC,UAAO,WACL,WAGA,iBACD;;;CAIL,MAAM,SAKJ,WACA,mBAeA,UACG;EACH,MAAM,EACJ,gBACA,eAWA,sBAAsB,SAClB;GACE,iBAAiB,MAAM,EAAE,UAAU,UAAU;GAC7C,aAAa,MAAM,EAAE,MAAM,MAAM;GAClC,GACD,OAAO,sBAAsB,aAC3B,UAAU,SACR;GACE,iBAAiB,MACf,EAAE,UAAU,WAAW,kBAAkB;GAC3C,aAAa,MAAM,EAAE,MAAM,MAAM;GAClC,GACD;GACE,iBAAiB,MACf,EAAE,UAAU,WAAW,kBAAkB;GAC3C,aAAa,MAAM,EAAE,MAAM,MAAM;GAClC,GACH;GACE,iBAAiB,MAAM,EAAE,UAAU,UAAU;GAC7C,aAAa,MAAM,EAAE,MAAM,kBAAkB;GAC9C;EAET,MAAM,eAAe,KACnB,qBAAqB,MAAM,UAAU,EACrC,gBACA,WACD;AAED,SAAOC,OAIL,cACA,WACA,MAAM,OAGP;;CAGH,MAAM,UACJ,WACA,iBAEAA,OAIE,qBACG,MAAM,UAAU,CAChB,gBAAgB,WAAW,aAAa,EAC3C,WACA,MAAM,OAGP;AAEH,QAAO;EACL;EACA;EACA;EACD;;AAGH,MAAa,WAET,WACA,sBAGA,WAED,OACC,KACE,OAAO,cAAc,qBAAqB,IAAI,GAAG,CAAC,EAClD,OAAO,QACL,OAAO,mBAAmB,IAAI,eAAe;CAAE;CAAW;CAAI,CAAC,CAAC,CACjE,EACD,OAAO,QAAQD,OAAgB,WAAW,MAAM,OAAO,CAAC,CACzD;AAEL,IAAa,iBAAb,cAAoC,OAAO,aAA6B,CACtE,kBACA;CACE,IAAI,OAAO;CACX,WAAW,OAAO;CACnB,CACF,CAAC;CACA,IAAa,UAAkB;AAC7B,SAAOE,qBAA8B;GACnC,IAAI,KAAK;GACT,WAAW,KAAK;GAChB,SAAS;GACV,CAAC;;;AAIN,IAAa,oBAAb,cAAuC,OAAO,aAAgC,CAC5E,qBACA;CACE,WAAW,OAAO;CAClB,WAAW,OAAO;CAClB,kBAAkB,OAAO,MAAM,OAAO,OAAO;CAC9C,CACF,CAAC;CACA,IAAa,UAAkB;AAC7B,SAAO,gCAAgC,KAAK,UAAU,gBAAgB,KAAK,UAAU,sBAAsB,KAAK,iBAAiB"}
@@ -1,14 +1,16 @@
1
- import { Context, Effect, Layer, ParseResult } from "effect";
2
- import * as Ref$1 from "@confect/core/Ref";
1
+ import * as Context from "effect/Context";
2
+ import * as Ref from "@confect/core/Ref";
3
3
  import { GenericQueryCtx } from "convex/server";
4
+ import * as Layer$1 from "effect/Layer";
5
+ import { Effect, ParseResult } from "effect";
4
6
 
5
7
  //#region src/QueryRunner.d.ts
6
8
  declare namespace QueryRunner_d_exports {
7
9
  export { QueryRunner, layer };
8
10
  }
9
- declare const QueryRunner: Context.Tag<(<Query extends Ref$1.AnyQuery>(query: Query, ...args: Ref$1.OptionalArgs<Query>) => Effect.Effect<Ref$1.Returns<Query>, Ref$1.Error<Query> | ParseResult.ParseError>), <Query extends Ref$1.AnyQuery>(query: Query, ...args: Ref$1.OptionalArgs<Query>) => Effect.Effect<Ref$1.Returns<Query>, Ref$1.Error<Query> | ParseResult.ParseError>>;
11
+ declare const QueryRunner: Context.Tag<(<Query extends Ref.AnyQuery>(query: Query, ...args: Ref.OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, Ref.Error<Query> | ParseResult.ParseError>), <Query extends Ref.AnyQuery>(query: Query, ...args: Ref.OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, Ref.Error<Query> | ParseResult.ParseError>>;
10
12
  type QueryRunner = typeof QueryRunner.Identifier;
11
- declare const layer: (runQuery: GenericQueryCtx<any>["runQuery"]) => Layer.Layer<(<Query extends Ref$1.AnyQuery>(query: Query, ...args: Ref$1.OptionalArgs<Query>) => Effect.Effect<Ref$1.Returns<Query>, Ref$1.Error<Query> | ParseResult.ParseError>), never, never>;
13
+ declare const layer: (runQuery: GenericQueryCtx<any>["runQuery"]) => Layer$1.Layer<(<Query extends Ref.AnyQuery>(query: Query, ...args: Ref.OptionalArgs<Query>) => Effect.Effect<Ref.Returns<Query>, Ref.Error<Query> | ParseResult.ParseError>), never, never>;
12
14
  //#endregion
13
15
  export { QueryRunner, QueryRunner_d_exports, layer };
14
16
  //# sourceMappingURL=QueryRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryRunner.d.ts","names":[],"sources":["../src/QueryRunner.ts"],"mappings":";;;;;;;;cAqBa,WAAA,EAAW,OAAA,CAAA,GAAA,iBAdP,KAAA,CAAI,QAAA,EAAQ,KAAA,EAClB,KAAA,KAAK,IAAA,EACH,KAAA,CAAI,YAAA,CAAa,KAAA,MACzB,MAAA,CAAO,MAAA,CACR,KAAA,CAAI,OAAA,CAAQ,KAAA,GACZ,KAAA,CAAI,KAAA,CAAM,KAAA,IAAS,WAAA,CAAY,UAAA,mBALlB,KAAA,CAAI,QAAA,EAAQ,KAAA,EAClB,KAAA,KAAK,IAAA,EACH,KAAA,CAAI,YAAA,CAAa,KAAA,MACzB,MAAA,CAAO,MAAA,CACR,KAAA,CAAI,OAAA,CAAQ,KAAA,GACZ,KAAA,CAAI,KAAA,CAAM,KAAA,IAAS,WAAA,CAAY,UAAA;AAAA,KAYvB,WAAA,UAAqB,WAAA,CAAY,UAAA;AAAA,cAEhC,KAAA,GAAS,QAAA,EAAU,eAAA,sBAAgC,KAAA,CAAA,KAAA,iBAnB/C,KAAA,CAAI,QAAA,EAAQ,KAAA,EAClB,KAAA,KAAK,IAAA,EACH,KAAA,CAAI,YAAA,CAAa,KAAA,MACzB,MAAA,CAAO,MAAA,CACR,KAAA,CAAI,OAAA,CAAQ,KAAA,GACZ,KAAA,CAAI,KAAA,CAAM,KAAA,IAAS,WAAA,CAAY,UAAA"}
1
+ {"version":3,"file":"QueryRunner.d.ts","names":[],"sources":["../src/QueryRunner.ts"],"mappings":";;;;;;;;;;cAsBa,WAAA,EAAW,OAAA,CAAA,GAAA,iBAdP,GAAA,CAAI,QAAA,EAAQ,KAAA,EAClB,KAAA,KAAK,IAAA,EACH,GAAA,CAAI,YAAA,CAAa,KAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,KAAA,GACZ,GAAA,CAAI,KAAA,CAAM,KAAA,IAAS,WAAA,CAAY,UAAA,mBALlB,GAAA,CAAI,QAAA,EAAQ,KAAA,EAClB,KAAA,KAAK,IAAA,EACH,GAAA,CAAI,YAAA,CAAa,KAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,KAAA,GACZ,GAAA,CAAI,KAAA,CAAM,KAAA,IAAS,WAAA,CAAY,UAAA;AAAA,KAYvB,WAAA,UAAqB,WAAA,CAAY,UAAA;AAAA,cAEhC,KAAA,GAAS,QAAA,EAAU,eAAA,sBAAgC,OAAA,CAAA,KAAA,iBAnB/C,GAAA,CAAI,QAAA,EAAQ,KAAA,EAClB,KAAA,KAAK,IAAA,EACH,GAAA,CAAI,YAAA,CAAa,KAAA,MACzB,MAAA,CAAO,MAAA,CACR,GAAA,CAAI,OAAA,CAAQ,KAAA,GACZ,GAAA,CAAI,KAAA,CAAM,KAAA,IAAS,WAAA,CAAY,UAAA"}
@@ -1,14 +1,15 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
- import { Context, Layer } from "effect";
3
- import * as Ref$1 from "@confect/core/Ref";
2
+ import * as Context from "effect/Context";
3
+ import * as Ref from "@confect/core/Ref";
4
4
  import "convex/server";
5
+ import * as Layer from "effect/Layer";
5
6
 
6
7
  //#region src/QueryRunner.ts
7
8
  var QueryRunner_exports = /* @__PURE__ */ __exportAll({
8
9
  QueryRunner: () => QueryRunner,
9
10
  layer: () => layer
10
11
  });
11
- const make = (runQuery) => (query, ...args) => Ref$1.runWithCodec(query, args[0] ?? {}, (functionReference, encodedArgs) => runQuery(functionReference, encodedArgs));
12
+ const make = (runQuery) => (query, ...args) => Ref.runWithCodec(query, args[0] ?? {}, (functionReference, encodedArgs) => runQuery(functionReference, encodedArgs));
12
13
  const QueryRunner = Context.GenericTag("@confect/server/QueryRunner");
13
14
  const layer = (runQuery) => Layer.succeed(QueryRunner, make(runQuery));
14
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"QueryRunner.js","names":["Ref"],"sources":["../src/QueryRunner.ts"],"sourcesContent":["import * as Ref from \"@confect/core/Ref\";\nimport { type GenericQueryCtx } from \"convex/server\";\nimport type { ParseResult, Effect } from \"effect\";\nimport { Context, Layer } from \"effect\";\n\nconst make =\n (runQuery: GenericQueryCtx<any>[\"runQuery\"]) =>\n <Query extends Ref.AnyQuery>(\n query: Query,\n ...args: Ref.OptionalArgs<Query>\n ): Effect.Effect<\n Ref.Returns<Query>,\n Ref.Error<Query> | ParseResult.ParseError\n > =>\n Ref.runWithCodec(\n query,\n (args[0] ?? {}) as Ref.Args<Query>,\n (functionReference, encodedArgs) =>\n runQuery(functionReference, encodedArgs),\n );\n\nexport const QueryRunner = Context.GenericTag<ReturnType<typeof make>>(\n \"@confect/server/QueryRunner\",\n);\nexport type QueryRunner = typeof QueryRunner.Identifier;\n\nexport const layer = (runQuery: GenericQueryCtx<any>[\"runQuery\"]) =>\n Layer.succeed(QueryRunner, make(runQuery));\n"],"mappings":";;;;;;;;;;AAKA,MAAM,QACH,cAEC,OACA,GAAG,SAKHA,MAAI,aACF,OACC,KAAK,MAAM,EAAE,GACb,mBAAmB,gBAClB,SAAS,mBAAmB,YAAY,CAC3C;AAEL,MAAa,cAAc,QAAQ,WACjC,8BACD;AAGD,MAAa,SAAS,aACpB,MAAM,QAAQ,aAAa,KAAK,SAAS,CAAC"}
1
+ {"version":3,"file":"QueryRunner.js","names":[],"sources":["../src/QueryRunner.ts"],"sourcesContent":["import * as Ref from \"@confect/core/Ref\";\nimport { type GenericQueryCtx } from \"convex/server\";\nimport type { ParseResult, Effect } from \"effect\";\nimport * as Context from \"effect/Context\";\nimport * as Layer from \"effect/Layer\";\n\nconst make =\n (runQuery: GenericQueryCtx<any>[\"runQuery\"]) =>\n <Query extends Ref.AnyQuery>(\n query: Query,\n ...args: Ref.OptionalArgs<Query>\n ): Effect.Effect<\n Ref.Returns<Query>,\n Ref.Error<Query> | ParseResult.ParseError\n > =>\n Ref.runWithCodec(\n query,\n (args[0] ?? {}) as Ref.Args<Query>,\n (functionReference, encodedArgs) =>\n runQuery(functionReference, encodedArgs),\n );\n\nexport const QueryRunner = Context.GenericTag<ReturnType<typeof make>>(\n \"@confect/server/QueryRunner\",\n);\nexport type QueryRunner = typeof QueryRunner.Identifier;\n\nexport const layer = (runQuery: GenericQueryCtx<any>[\"runQuery\"]) =>\n Layer.succeed(QueryRunner, make(runQuery));\n"],"mappings":";;;;;;;;;;;AAMA,MAAM,QACH,cAEC,OACA,GAAG,SAKH,IAAI,aACF,OACC,KAAK,MAAM,EAAE,GACb,mBAAmB,gBAClB,SAAS,mBAAmB,YAAY,CAC3C;AAEL,MAAa,cAAc,QAAQ,WACjC,8BACD;AAGD,MAAa,SAAS,aACpB,MAAM,QAAQ,aAAa,KAAK,SAAS,CAAC"}