@confect/server 9.0.0-next.0 → 9.0.0-next.10

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 (190) hide show
  1. package/CHANGELOG.md +299 -4
  2. package/dist/ActionCtx.d.ts +4 -11
  3. package/dist/ActionCtx.d.ts.map +1 -1
  4. package/dist/ActionCtx.js +1 -1
  5. package/dist/ActionCtx.js.map +1 -1
  6. package/dist/ActionRunner.d.ts +8 -13
  7. package/dist/ActionRunner.d.ts.map +1 -1
  8. package/dist/ActionRunner.js +4 -3
  9. package/dist/ActionRunner.js.map +1 -1
  10. package/dist/Auth.d.ts +17 -23
  11. package/dist/Auth.d.ts.map +1 -1
  12. package/dist/Auth.js +5 -1
  13. package/dist/Auth.js.map +1 -1
  14. package/dist/BlobNotFoundError.d.ts +6 -12
  15. package/dist/BlobNotFoundError.d.ts.map +1 -1
  16. package/dist/BlobNotFoundError.js +1 -1
  17. package/dist/BlobNotFoundError.js.map +1 -1
  18. package/dist/ConvexConfigProvider.d.ts +2 -9
  19. package/dist/ConvexConfigProvider.d.ts.map +1 -1
  20. package/dist/ConvexConfigProvider.js +6 -1
  21. package/dist/ConvexConfigProvider.js.map +1 -1
  22. package/dist/CronJob.d.ts +12 -19
  23. package/dist/CronJob.d.ts.map +1 -1
  24. package/dist/CronJob.js +1 -1
  25. package/dist/CronJob.js.map +1 -1
  26. package/dist/CronJobs.d.ts +11 -18
  27. package/dist/CronJobs.d.ts.map +1 -1
  28. package/dist/CronJobs.js +11 -4
  29. package/dist/CronJobs.js.map +1 -1
  30. package/dist/DataModel.d.ts +24 -29
  31. package/dist/DataModel.d.ts.map +1 -1
  32. package/dist/DatabaseReader.d.ts +4323 -64
  33. package/dist/DatabaseReader.d.ts.map +1 -1
  34. package/dist/DatabaseReader.js +6 -6
  35. package/dist/DatabaseReader.js.map +1 -1
  36. package/dist/DatabaseSchema.d.ts +38 -130
  37. package/dist/DatabaseSchema.d.ts.map +1 -1
  38. package/dist/DatabaseSchema.js +20 -30
  39. package/dist/DatabaseSchema.js.map +1 -1
  40. package/dist/DatabaseWriter.d.ts +38 -42
  41. package/dist/DatabaseWriter.d.ts.map +1 -1
  42. package/dist/DatabaseWriter.js +8 -5
  43. package/dist/DatabaseWriter.js.map +1 -1
  44. package/dist/Document.d.ts +28 -37
  45. package/dist/Document.d.ts.map +1 -1
  46. package/dist/Document.js +5 -1
  47. package/dist/Document.js.map +1 -1
  48. package/dist/FunctionImpl.d.ts +30 -29
  49. package/dist/FunctionImpl.d.ts.map +1 -1
  50. package/dist/FunctionImpl.js +25 -14
  51. package/dist/FunctionImpl.js.map +1 -1
  52. package/dist/GroupImpl.d.ts +45 -41
  53. package/dist/GroupImpl.d.ts.map +1 -1
  54. package/dist/GroupImpl.js +42 -35
  55. package/dist/GroupImpl.js.map +1 -1
  56. package/dist/Handler.d.ts +34 -40
  57. package/dist/Handler.d.ts.map +1 -1
  58. package/dist/HttpApi.d.ts +21 -25
  59. package/dist/HttpApi.d.ts.map +1 -1
  60. package/dist/HttpApi.js +11 -6
  61. package/dist/HttpApi.js.map +1 -1
  62. package/dist/MutationCtx.d.ts +4 -11
  63. package/dist/MutationCtx.d.ts.map +1 -1
  64. package/dist/MutationCtx.js +1 -1
  65. package/dist/MutationCtx.js.map +1 -1
  66. package/dist/MutationRunner.d.ts +8 -13
  67. package/dist/MutationRunner.d.ts.map +1 -1
  68. package/dist/MutationRunner.js +4 -3
  69. package/dist/MutationRunner.js.map +1 -1
  70. package/dist/OrderedQuery.d.ts +16 -21
  71. package/dist/OrderedQuery.d.ts.map +1 -1
  72. package/dist/OrderedQuery.js +4 -1
  73. package/dist/OrderedQuery.js.map +1 -1
  74. package/dist/QueryCtx.d.ts +4 -11
  75. package/dist/QueryCtx.d.ts.map +1 -1
  76. package/dist/QueryCtx.js +1 -1
  77. package/dist/QueryCtx.js.map +1 -1
  78. package/dist/QueryInitializer.d.ts +34 -39
  79. package/dist/QueryInitializer.d.ts.map +1 -1
  80. package/dist/QueryInitializer.js +5 -1
  81. package/dist/QueryInitializer.js.map +1 -1
  82. package/dist/QueryRunner.d.ts +8 -13
  83. package/dist/QueryRunner.d.ts.map +1 -1
  84. package/dist/QueryRunner.js +4 -3
  85. package/dist/QueryRunner.js.map +1 -1
  86. package/dist/RegisteredConvexFunction.d.ts +1107 -60
  87. package/dist/RegisteredConvexFunction.d.ts.map +1 -1
  88. package/dist/RegisteredConvexFunction.js +14 -9
  89. package/dist/RegisteredConvexFunction.js.map +1 -1
  90. package/dist/RegisteredFunction.d.ts +48 -64
  91. package/dist/RegisteredFunction.d.ts.map +1 -1
  92. package/dist/RegisteredFunction.js +9 -5
  93. package/dist/RegisteredFunction.js.map +1 -1
  94. package/dist/RegisteredFunctions.d.ts +48 -26
  95. package/dist/RegisteredFunctions.d.ts.map +1 -1
  96. package/dist/RegisteredFunctions.js +22 -9
  97. package/dist/RegisteredFunctions.js.map +1 -1
  98. package/dist/RegisteredNodeFunction.d.ts +4 -14
  99. package/dist/RegisteredNodeFunction.d.ts.map +1 -1
  100. package/dist/RegisteredNodeFunction.js +5 -4
  101. package/dist/RegisteredNodeFunction.js.map +1 -1
  102. package/dist/RegistryItem.d.ts +17 -27
  103. package/dist/RegistryItem.d.ts.map +1 -1
  104. package/dist/RegistryItem.js +1 -1
  105. package/dist/RegistryItem.js.map +1 -1
  106. package/dist/Scheduler.d.ts +16 -20
  107. package/dist/Scheduler.d.ts.map +1 -1
  108. package/dist/Scheduler.js +10 -6
  109. package/dist/Scheduler.js.map +1 -1
  110. package/dist/SchemaToValidator.d.ts +71 -64
  111. package/dist/SchemaToValidator.d.ts.map +1 -1
  112. package/dist/SchemaToValidator.js +15 -3
  113. package/dist/SchemaToValidator.js.map +1 -1
  114. package/dist/StorageActionWriter.d.ts +21 -28
  115. package/dist/StorageActionWriter.d.ts.map +1 -1
  116. package/dist/StorageActionWriter.js +4 -1
  117. package/dist/StorageActionWriter.js.map +1 -1
  118. package/dist/StorageReader.d.ts +14 -21
  119. package/dist/StorageReader.d.ts.map +1 -1
  120. package/dist/StorageReader.js +5 -1
  121. package/dist/StorageReader.js.map +1 -1
  122. package/dist/StorageWriter.d.ts +16 -23
  123. package/dist/StorageWriter.d.ts.map +1 -1
  124. package/dist/StorageWriter.js +4 -1
  125. package/dist/StorageWriter.js.map +1 -1
  126. package/dist/Table.d.ts +204 -197
  127. package/dist/Table.d.ts.map +1 -1
  128. package/dist/Table.js +72 -62
  129. package/dist/Table.js.map +1 -1
  130. package/dist/TableInfo.d.ts +35 -41
  131. package/dist/TableInfo.d.ts.map +1 -1
  132. package/dist/VectorSearch.d.ts +30 -35
  133. package/dist/VectorSearch.d.ts.map +1 -1
  134. package/dist/VectorSearch.js +3 -1
  135. package/dist/VectorSearch.js.map +1 -1
  136. package/dist/index.d.ts +35 -36
  137. package/dist/index.d.ts.map +1 -0
  138. package/dist/index.js +4 -5
  139. package/dist/internal/utils.d.ts +9 -11
  140. package/dist/internal/utils.d.ts.map +1 -1
  141. package/dist/internal/utils.js +3 -1
  142. package/dist/internal/utils.js.map +1 -1
  143. package/dist/node.d.ts +2 -2
  144. package/dist/node.d.ts.map +1 -0
  145. package/dist/tsconfig.src.tsbuildinfo +1 -0
  146. package/package.json +50 -59
  147. package/src/ActionCtx.ts +1 -1
  148. package/src/ActionRunner.ts +2 -1
  149. package/src/Auth.ts +5 -1
  150. package/src/BlobNotFoundError.ts +1 -1
  151. package/src/ConvexConfigProvider.ts +6 -8
  152. package/src/CronJob.ts +1 -1
  153. package/src/CronJobs.ts +8 -10
  154. package/src/DatabaseReader.ts +18 -21
  155. package/src/DatabaseSchema.ts +38 -98
  156. package/src/DatabaseWriter.ts +13 -6
  157. package/src/Document.ts +5 -1
  158. package/src/FunctionImpl.ts +36 -44
  159. package/src/GroupImpl.ts +54 -81
  160. package/src/HttpApi.ts +8 -9
  161. package/src/MutationCtx.ts +1 -1
  162. package/src/MutationRunner.ts +2 -1
  163. package/src/OrderedQuery.ts +5 -1
  164. package/src/QueryCtx.ts +1 -1
  165. package/src/QueryInitializer.ts +15 -3
  166. package/src/QueryRunner.ts +2 -1
  167. package/src/RegisteredConvexFunction.ts +11 -7
  168. package/src/RegisteredFunction.ts +5 -1
  169. package/src/RegisteredFunctions.ts +69 -93
  170. package/src/RegisteredNodeFunction.ts +7 -6
  171. package/src/RegistryItem.ts +1 -1
  172. package/src/Scheduler.ts +5 -1
  173. package/src/SchemaToValidator.ts +14 -16
  174. package/src/StorageActionWriter.ts +4 -1
  175. package/src/StorageReader.ts +5 -1
  176. package/src/StorageWriter.ts +4 -1
  177. package/src/Table.ts +253 -132
  178. package/src/VectorSearch.ts +3 -1
  179. package/src/index.ts +0 -1
  180. package/src/internal/utils.ts +3 -1
  181. package/dist/Api.d.ts +0 -30
  182. package/dist/Api.d.ts.map +0 -1
  183. package/dist/Api.js +0 -26
  184. package/dist/Api.js.map +0 -1
  185. package/dist/GroupPath.d.ts +0 -8
  186. package/dist/GroupPath.d.ts.map +0 -1
  187. package/dist/GroupPath.js +0 -10
  188. package/dist/GroupPath.js.map +0 -1
  189. package/src/Api.ts +0 -75
  190. package/src/GroupPath.ts +0 -43
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseReader.d.ts","names":[],"sources":["../src/DatabaseReader.ts"],"mappings":";;;;;;;;;;;;;;;;;;cAQa,IAAA,2BAAgC,YAAA,EAC3C,cAAA,EAAgB,eAAA,EAChB,oBAAA,EAAsB,qBAAA,CACpB,QAAA,CAAmB,UAAA,CAAqB,eAAA;kCAUR,IAAA,CAAU,mBAAA,CAAA,MAAA,CAAA,eAAA,KAAgB,SAAA,EAC7C,SAAA;IAAA;;;;;;;;;;;cAgCJ,cAAA,2BACa,YAAA,OAA2B,OAAA,CAAA,GAAA;kCAlC1B,IAAA,CAAA,mBAAA,CAAA,MAAA,CAAA,eAAA,KAAA,SAAA,EAAA,SAAA;IAAA;;;;;;;;;;;kCAAA,IAAA,CAAA,mBAAA,CAAA,MAAA,CAAA,eAAA,KAAA,SAAA,EAAA,SAAA;IAAA;;;;;;;;;;;KAwCf,cAAA,yBACc,YAAA,IACtB,UAAA,QAAkB,cAAA,CAAe,eAAA;AAAA,cAExB,KAAA,2BAAiC,YAAA,EAC5C,cAAA,EAAgB,eAAA,EAChB,oBAAA,EAAsB,qBAAA,CACpB,QAAA,CAAmB,UAAA,CAAqB,eAAA,QACzC,KAAA,CAAA,KAAA;kCAhDwB,IAAA,CAAA,mBAAA,CAAA,MAAA,CAAA,eAAA,KAAA,SAAA,EAAA,SAAA;IAAA"}
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,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,eAAO,MAAM,IAAI,GAAI,eAAe,SAAS,cAAc,CAAC,YAAY,EACtE,gBAAgB,eAAe,EAC/B,sBAAsB,qBAAqB,CACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAC1D;kBAMe,SAAS,SAAS,KAAK,CAAC,IAAI,6DAAgB,aAC7C,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BzB,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,eAAe,SAAS,cAAc,CAAC,YAAY;kBAjCnC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAAT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqCxB,CAAC;AAEJ,MAAM,MAAM,cAAc,CACxB,eAAe,SAAS,cAAc,CAAC,YAAY,IACjD,UAAU,CAAC,OAAO,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AAErE,eAAO,MAAM,KAAK,GAAI,eAAe,SAAS,cAAc,CAAC,YAAY,EACvE,gBAAgB,eAAe,EAC/B,sBAAsB,qBAAqB,CACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAC1D;kBA/Ce,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAoDxB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
- import { systemTables } from "./Table.js";
3
- import { extendWithSystemTables } from "./DatabaseSchema.js";
4
2
  import { make as make$1 } from "./QueryInitializer.js";
5
- import { Array, Context, Layer } from "effect";
3
+ import { systemTables } from "./Table.js";
4
+ import * as Context from "effect/Context";
5
+ import * as Layer from "effect/Layer";
6
6
 
7
7
  //#region src/DatabaseReader.ts
8
8
  var DatabaseReader_exports = /* @__PURE__ */ __exportAll({
@@ -11,16 +11,16 @@ var DatabaseReader_exports = /* @__PURE__ */ __exportAll({
11
11
  make: () => make
12
12
  });
13
13
  const make = (databaseSchema, convexDatabaseReader) => {
14
- const extendedTables = extendWithSystemTables(databaseSchema.tables);
15
14
  return { table: (tableName) => {
16
- const table = Object.values(extendedTables).find((def) => def.name === tableName);
17
- const baseDatabaseReader = Array.some(Object.values(systemTables), (systemTableDef) => systemTableDef.name === tableName) ? {
15
+ const isSystem = Object.hasOwn(systemTables, tableName);
16
+ const baseDatabaseReader = isSystem ? {
18
17
  get: convexDatabaseReader.system.get,
19
18
  query: convexDatabaseReader.system.query
20
19
  } : {
21
20
  get: convexDatabaseReader.get,
22
21
  query: convexDatabaseReader.query
23
22
  };
23
+ const table = isSystem ? systemTables[tableName] : databaseSchema.tables[tableName];
24
24
  return make$1(tableName, baseDatabaseReader, table);
25
25
  } };
26
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseReader.js","names":["DatabaseSchema.extendWithSystemTables","Table.systemTables","QueryInitializer.make"],"sources":["../src/DatabaseReader.ts"],"sourcesContent":["import type { GenericDatabaseReader } from \"convex/server\";\nimport { Array, Context, Layer } from \"effect\";\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\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseReader: GenericDatabaseReader<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n) => {\n type Tables = DatabaseSchema.Tables<DatabaseSchema_>;\n type IncludedTables = DatabaseSchema.IncludeSystemTables<Tables>;\n const extendedTables = DatabaseSchema.extendWithSystemTables(\n databaseSchema.tables as Table.TablesRecord<Tables>,\n );\n\n return {\n table: <const TableName extends Table.Name<IncludedTables>>(\n tableName: TableName,\n ) => {\n const table = Object.values(extendedTables).find(\n (def) => def.name === tableName,\n ) as Table.WithName<IncludedTables, TableName>;\n\n const baseDatabaseReader: BaseDatabaseReader<any> = Array.some(\n Object.values(Table.systemTables),\n (systemTableDef) => systemTableDef.name === tableName,\n )\n ? ({\n get: convexDatabaseReader.system.get,\n query: convexDatabaseReader.system.query,\n } as BaseDatabaseReader<\n DataModel.ToConvex<DataModel.FromTables<Table.SystemTables>>\n >)\n : ({\n get: convexDatabaseReader.get,\n query: convexDatabaseReader.query,\n } as BaseDatabaseReader<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >);\n\n return QueryInitializer.make<IncludedTables, TableName>(\n tableName,\n baseDatabaseReader,\n table,\n );\n },\n };\n};\n\nexport const DatabaseReader = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n>() =>\n Context.GenericTag<ReturnType<typeof make<DatabaseSchema_>>>(\n \"@confect/server/DatabaseReader\",\n );\n\nexport type DatabaseReader<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = ReturnType<typeof DatabaseReader<DatabaseSchema_>>[\"Identifier\"];\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":";;;;;;;;;;;;AAQA,MAAa,QACX,gBACA,yBAGG;CAGH,MAAM,iBAAiBA,uBACrB,eAAe,OAChB;AAED,QAAO,EACL,QACE,cACG;EACH,MAAM,QAAQ,OAAO,OAAO,eAAe,CAAC,MACzC,QAAQ,IAAI,SAAS,UACvB;EAED,MAAM,qBAA8C,MAAM,KACxD,OAAO,OAAOC,aAAmB,GAChC,mBAAmB,eAAe,SAAS,UAC7C,GACI;GACC,KAAK,qBAAqB,OAAO;GACjC,OAAO,qBAAqB,OAAO;GACpC,GAGA;GACC,KAAK,qBAAqB;GAC1B,OAAO,qBAAqB;GAC7B;AAIL,SAAOC,OACL,WACA,oBACA,MACD;IAEJ;;AAGH,MAAa,uBAGX,QAAQ,WACN,iCACD;AAMH,MAAa,SACX,gBACA,yBAIA,MAAM,QACJ,gBAAiC,EACjC,KAAK,gBAAgB,qBAAqB,CAC3C"}
1
+ {"version":3,"file":"DatabaseReader.js","names":["Table.systemTables","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 type * as DatabaseSchema from \"./DatabaseSchema\";\nimport type * as DataModel from \"./DataModel\";\nimport * as QueryInitializer from \"./QueryInitializer\";\nimport * as Table from \"./Table\";\n\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseReader: GenericDatabaseReader<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n) => {\n type Tables = DatabaseSchema.Tables<DatabaseSchema_>;\n type IncludedTables = Tables | Table.SystemTables;\n\n return {\n table: <const TableName extends Table.Name<IncludedTables>>(\n tableName: TableName,\n ) => {\n const isSystem = Object.hasOwn(Table.systemTables, tableName);\n\n const baseDatabaseReader: BaseDatabaseReader<any> = isSystem\n ? {\n get: convexDatabaseReader.system.get,\n query: convexDatabaseReader.system.query,\n }\n : {\n get: convexDatabaseReader.get,\n query: convexDatabaseReader.query,\n };\n\n const table = (\n isSystem\n ? (Table.systemTables as Record<string, Table.AnyWithProps>)[\n tableName\n ]\n : databaseSchema.tables[tableName]\n ) as Table.WithName<IncludedTables, TableName>;\n\n return QueryInitializer.make<IncludedTables, TableName>(\n tableName,\n baseDatabaseReader,\n table,\n );\n },\n };\n};\n\nexport const DatabaseReader = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n>() =>\n Context.GenericTag<ReturnType<typeof make<DatabaseSchema_>>>(\n \"@confect/server/DatabaseReader\",\n );\n\nexport type DatabaseReader<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = ReturnType<typeof DatabaseReader<DatabaseSchema_>>[\"Identifier\"];\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":";;;;;;;;;;;;AASA,MAAa,QACX,gBACA,yBAGG;AAIH,QAAO,EACL,QACE,cACG;EACH,MAAM,WAAW,OAAO,OAAOA,cAAoB,UAAU;EAE7D,MAAM,qBAA8C,WAChD;GACE,KAAK,qBAAqB,OAAO;GACjC,OAAO,qBAAqB,OAAO;GACpC,GACD;GACE,KAAK,qBAAqB;GAC1B,OAAO,qBAAqB;GAC7B;EAEL,MAAM,QACJ,WACKA,aACC,aAEF,eAAe,OAAO;AAG5B,SAAOC,OACL,WACA,oBACA,MACD;IAEJ;;AAGH,MAAa,uBAGX,QAAQ,WACN,iCACD;AAMH,MAAa,SACX,gBACA,yBAIA,MAAM,QACJ,gBAAiC,EACjC,KAAK,gBAAgB,qBAAqB,CAC3C"}
@@ -1,139 +1,47 @@
1
- import { AnyWithProps as AnyWithProps$1, Name, SystemTables, Table, TablesRecord, WithName } from "./Table.js";
2
- import { Expand, GenericSchema, SchemaDefinition } from "convex/server";
3
- import * as convex_values0 from "convex/values";
4
- import * as effect_Schema0 from "effect/Schema";
5
-
6
- //#region src/DatabaseSchema.d.ts
7
- declare namespace DatabaseSchema_d_exports {
8
- export { Any, AnyWithProps, ConvexDatabaseSchemaFromTables, DatabaseSchema, ExtendWithSystemTables, IncludeSystemTables, TableNames, TableWithName, Tables, TypeId, extendWithSystemTables, isDatabaseSchema, make, systemSchema };
1
+ import type * as Table from "./Table";
2
+ export declare const TypeId = "@confect/server/DatabaseSchema";
3
+ export type TypeId = typeof TypeId;
4
+ export interface Any {
5
+ readonly [TypeId]: TypeId;
9
6
  }
10
- declare const TypeId = "@confect/server/DatabaseSchema";
11
- type TypeId = typeof TypeId;
12
- interface Any {
13
- readonly [TypeId]: TypeId;
14
- }
15
- declare const isDatabaseSchema: (u: unknown) => u is Any;
7
+ export declare const isDatabaseSchema: (u: unknown) => u is Any;
16
8
  /**
17
- * A schema definition tracks the schema and its Convex schema definition.
9
+ * A schema definition holding a record of bound `Table`s keyed by table
10
+ * name. Codegen emits a single static `DatabaseSchema.make({ ... })` call;
11
+ * laziness lives entirely on each `Table` (its `Fields`, `Doc`, and
12
+ * `tableDefinition` are lazy memoised getters), so this layer is a plain
13
+ * record indirection with no module-loading or async machinery.
18
14
  */
19
- interface DatabaseSchema<Tables_ extends AnyWithProps$1 = never> {
20
- readonly [TypeId]: TypeId;
21
- readonly tables: TablesRecord<Tables_>;
22
- readonly convexSchemaDefinition: SchemaDefinition<ConvexDatabaseSchemaFromTables<Tables_>, true>;
23
- /**
24
- * Add a table definition to the schema.
25
- */
26
- addTable<TableDef extends AnyWithProps$1>(table: TableDef): DatabaseSchema<Tables_ | TableDef>;
15
+ export interface DatabaseSchema<Tables_ extends Table.AnyWithProps = never> {
16
+ readonly [TypeId]: TypeId;
17
+ readonly tables: {
18
+ readonly [TableName in Table.Name<Tables_>]: Table.WithName<Tables_, TableName>;
19
+ };
27
20
  }
28
- interface AnyWithProps {
29
- readonly [TypeId]: TypeId;
30
- readonly tables: Record<string, AnyWithProps$1>;
31
- readonly convexSchemaDefinition: SchemaDefinition<GenericSchema, true>;
32
- addTable<TableDef extends AnyWithProps$1>(table: TableDef): AnyWithProps;
21
+ export interface AnyWithProps {
22
+ readonly [TypeId]: TypeId;
23
+ readonly tables: Record<string, Table.AnyWithProps>;
33
24
  }
34
- type Tables<DatabaseSchema_ extends AnyWithProps> = DatabaseSchema_ extends DatabaseSchema<infer Tables_> ? Tables_ : never;
35
- type TableNames<DatabaseSchema_ extends AnyWithProps> = Name<Tables<DatabaseSchema_>> & string;
36
- type TableWithName<DatabaseSchema_ extends AnyWithProps, TableName extends TableNames<DatabaseSchema_>> = Extract<Tables<DatabaseSchema_>, {
37
- readonly name: TableName;
25
+ export type Tables<DatabaseSchema_ extends AnyWithProps> = DatabaseSchema_ extends DatabaseSchema<infer Tables_> ? Tables_ : never;
26
+ export type TableNames<DatabaseSchema_ extends AnyWithProps> = Table.Name<Tables<DatabaseSchema_>> & string;
27
+ export type TableWithName<DatabaseSchema_ extends AnyWithProps, TableName extends TableNames<DatabaseSchema_>> = Extract<Tables<DatabaseSchema_>, {
28
+ readonly tableName: TableName;
38
29
  }>;
39
30
  /**
40
- * Create an empty schema definition. Add tables incrementally via `addTable`.
31
+ * Construct a `DatabaseSchema` from a record of bound `Table`s. The empty
32
+ * case is `DatabaseSchema.make({})`. The `Tables_` union is inferred from
33
+ * the value record's values, so codegen-emitted calls of the form
34
+ * `DatabaseSchema.make({ notes, tags, users })` do not need an explicit
35
+ * type argument.
36
+ *
37
+ * Invariant: each record **key must equal its value's `tableName`**. The
38
+ * record is stored verbatim and later read by key (`databaseSchema.tables[
39
+ * tableName]` in `DatabaseReader`/`DatabaseWriter`), so a key that diverges
40
+ * from the bound table's name would make those lookups silently miss. The
41
+ * type signature does not enforce this — codegen upholds it by deriving both
42
+ * the key and the table name from the same filename (and the shorthand
43
+ * `{ notes, tags, users }` form it emits makes them identical by
44
+ * construction). Hand-written calls must preserve it.
41
45
  */
42
- declare const make: () => DatabaseSchema<never>;
43
- type ConvexDatabaseSchemaFromTables<Tables_ extends AnyWithProps$1> = Expand<{ [TableName in Name<Tables_> & string]: WithName<Tables_, TableName>["tableDefinition"] }>;
44
- declare const systemSchema: DatabaseSchema<Table<"_scheduled_functions", effect_Schema0.Struct<{
45
- name: typeof effect_Schema0.String;
46
- args: effect_Schema0.Array$<typeof effect_Schema0.Any>;
47
- scheduledTime: typeof effect_Schema0.Number;
48
- completedTime: effect_Schema0.optionalWith<typeof effect_Schema0.Number, {
49
- exact: true;
50
- }>;
51
- state: effect_Schema0.Union<[effect_Schema0.Struct<{
52
- kind: effect_Schema0.Literal<["pending"]>;
53
- }>, effect_Schema0.Struct<{
54
- kind: effect_Schema0.Literal<["inProgress"]>;
55
- }>, effect_Schema0.Struct<{
56
- kind: effect_Schema0.Literal<["success"]>;
57
- }>, effect_Schema0.Struct<{
58
- kind: effect_Schema0.Literal<["failed"]>;
59
- error: typeof effect_Schema0.String;
60
- }>, effect_Schema0.Struct<{
61
- kind: effect_Schema0.Literal<["canceled"]>;
62
- }>]>;
63
- }>, convex_values0.VObject<{
64
- name: string;
65
- args: any[];
66
- scheduledTime: number;
67
- state: {
68
- kind: "pending";
69
- } | {
70
- kind: "inProgress";
71
- } | {
72
- kind: "success";
73
- } | {
74
- kind: "failed";
75
- error: string;
76
- } | {
77
- kind: "canceled";
78
- };
79
- completedTime?: number;
80
- }, {
81
- name: convex_values0.VString<string, "required">;
82
- args: convex_values0.VArray<any[], convex_values0.VAny<any, "required", string>, "required">;
83
- scheduledTime: convex_values0.VFloat64<number, "required">;
84
- state: convex_values0.VUnion<{
85
- kind: "pending";
86
- } | {
87
- kind: "inProgress";
88
- } | {
89
- kind: "success";
90
- } | {
91
- kind: "failed";
92
- error: string;
93
- } | {
94
- kind: "canceled";
95
- }, [convex_values0.VObject<{
96
- kind: "pending";
97
- }, {
98
- kind: convex_values0.VLiteral<"pending", "required">;
99
- }, "required", "kind">, convex_values0.VObject<{
100
- kind: "inProgress";
101
- }, {
102
- kind: convex_values0.VLiteral<"inProgress", "required">;
103
- }, "required", "kind">, convex_values0.VObject<{
104
- kind: "success";
105
- }, {
106
- kind: convex_values0.VLiteral<"success", "required">;
107
- }, "required", "kind">, convex_values0.VObject<{
108
- kind: "failed";
109
- error: string;
110
- }, {
111
- kind: convex_values0.VLiteral<"failed", "required">;
112
- error: convex_values0.VString<string, "required">;
113
- }, "required", "kind" | "error">, convex_values0.VObject<{
114
- kind: "canceled";
115
- }, {
116
- kind: convex_values0.VLiteral<"canceled", "required">;
117
- }, "required", "kind">], "required", "kind" | "error">;
118
- completedTime: convex_values0.VFloat64<number | undefined, "optional">;
119
- }, "required", "name" | "args" | "scheduledTime" | "completedTime" | "state" | "state.kind" | "state.error">, {}, {}, {}> | Table<"_storage", effect_Schema0.Struct<{
120
- sha256: typeof effect_Schema0.String;
121
- size: typeof effect_Schema0.Number;
122
- contentType: effect_Schema0.optionalWith<typeof effect_Schema0.String, {
123
- exact: true;
124
- }>;
125
- }>, convex_values0.VObject<{
126
- sha256: string;
127
- size: number;
128
- contentType?: string;
129
- }, {
130
- sha256: convex_values0.VString<string, "required">;
131
- size: convex_values0.VFloat64<number, "required">;
132
- contentType: convex_values0.VString<string | undefined, "optional">;
133
- }, "required", "sha256" | "size" | "contentType">, {}, {}, {}>>;
134
- declare const extendWithSystemTables: <Tables_ extends AnyWithProps$1>(tables: TablesRecord<Tables_>) => ExtendWithSystemTables<Tables_>;
135
- type ExtendWithSystemTables<Tables_ extends AnyWithProps$1> = TablesRecord<Tables_ | SystemTables>;
136
- type IncludeSystemTables<Tables_ extends AnyWithProps$1> = Tables_ | SystemTables extends infer T ? T extends AnyWithProps$1 ? T : never : never;
137
- //#endregion
138
- export { Any, AnyWithProps, ConvexDatabaseSchemaFromTables, DatabaseSchema, DatabaseSchema_d_exports, ExtendWithSystemTables, IncludeSystemTables, TableNames, TableWithName, Tables, TypeId, extendWithSystemTables, isDatabaseSchema, make, systemSchema };
46
+ export declare const make: <const TablesRecord extends Record<string, Table.AnyWithProps>>(tables: TablesRecord) => DatabaseSchema<TablesRecord[keyof TablesRecord]>;
139
47
  //# sourceMappingURL=DatabaseSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseSchema.d.ts","names":[],"sources":["../src/DatabaseSchema.ts"],"mappings":";;;;;;;;;cAQa,MAAA;AAAA,KACD,MAAA,UAAgB,MAAA;AAAA,UAEX,GAAA;EAAA,UACL,MAAA,GAAS,MAAA;AAAA;AAAA,cAGR,gBAAA,GAAoB,CAAA,cAAa,CAAA,IAAK,GAAA;;;;UAMlC,cAAA,iBAA+B,cAAA;EAAA,UACpC,MAAA,GAAS,MAAA;EAAA,SACV,MAAA,EAAQ,YAAA,CAAmB,OAAA;EAAA,SAC3B,sBAAA,EAAwB,gBAAA,CAC/B,8BAAA,CAA+B,OAAA;;;;EAOjC,QAAA,kBAA0B,cAAA,EACxB,KAAA,EAAO,QAAA,GACN,cAAA,CAAe,OAAA,GAAU,QAAA;AAAA;AAAA,UAGb,YAAA;EAAA,UACL,MAAA,GAAS,MAAA;EAAA,SACV,MAAA,EAAQ,MAAA,SAAe,cAAA;EAAA,SACvB,sBAAA,EAAwB,gBAAA,CAAiB,aAAA;EAClD,QAAA,kBAA0B,cAAA,EAAoB,KAAA,EAAO,QAAA,GAAW,YAAA;AAAA;AAAA,KAGtD,MAAA,yBAA+B,YAAA,IACzC,eAAA,SAAwB,cAAA,kBAAgC,OAAA;AAAA,KAE9C,UAAA,yBAAmC,YAAA,IAAgB,IAAA,CAC7D,MAAA,CAAO,eAAA;AAAA,KAIG,aAAA,yBACc,YAAA,oBACN,UAAA,CAAW,eAAA,KAC3B,OAAA,CAAQ,MAAA,CAAO,eAAA;EAAA,SAA6B,IAAA,EAAM,SAAA;AAAA;;AA5CtD;;cAqFa,IAAA,QAAW,cAAA;AAAA,KAMZ,8BAAA,iBAA+C,cAAA,IACzD,MAAA,iBACgB,IAAA,CAAW,OAAA,aAAoB,QAAA,CAC3C,OAAA,EACA,SAAA;AAAA,cAMO,YAAA,EAAY,cAAA,CAAA,KAAA,wCAAA,MAAA;eAEM,cAAA,CAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAFN,cAAA,CAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAA,cAAA,CAAA,MAAA;;;;;;;;;;;;;;cAIZ,sBAAA,mBAA0C,cAAA,EACrD,MAAA,EAAQ,YAAA,CAAmB,OAAA,MAC1B,sBAAA,CAAuB,OAAA;AAAA,KAMd,sBAAA,iBAAuC,cAAA,IACjD,YAAA,CAAmB,OAAA,GAAU,YAAA;AAAA,KAEnB,mBAAA,iBAAoC,cAAA,IAC5C,OAAA,GACA,YAAA,mBACA,CAAA,SAAU,cAAA,GACR,CAAA"}
1
+ {"version":3,"file":"DatabaseSchema.d.ts","sourceRoot":"","sources":["../src/DatabaseSchema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,MAAM,mCAAmC,CAAC;AACvD,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,MAAM,WAAW,GAAG;IAClB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,gBAAgB,GAAI,GAAG,OAAO,KAAG,CAAC,IAAI,GACjB,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,OAAO,SAAS,KAAK,CAAC,YAAY,GAAG,KAAK;IACxE,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,EAAE,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CACzD,OAAO,EACP,SAAS,CACV;KACF,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CACrD;AAED,MAAM,MAAM,MAAM,CAAC,eAAe,SAAS,YAAY,IACrD,eAAe,SAAS,cAAc,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,UAAU,CAAC,eAAe,SAAS,YAAY,IAAI,KAAK,CAAC,IAAI,CACvE,MAAM,CAAC,eAAe,CAAC,CACxB,GACC,MAAM,CAAC;AAET,MAAM,MAAM,aAAa,CACvB,eAAe,SAAS,YAAY,EACpC,SAAS,SAAS,UAAU,CAAC,eAAe,CAAC,IAC3C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAExE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,IAAI,GACf,KAAK,CAAC,YAAY,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,EAE7D,QAAQ,YAAY,KACnB,cAAc,CAAC,YAAY,CAAC,MAAM,YAAY,CAAC,CAKhD,CAAC"}
@@ -1,45 +1,35 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
- import { scheduledFunctionsTable, storageTable, systemTables } from "./Table.js";
3
- import { Array, Predicate, Record, pipe } from "effect";
4
- import { defineSchema } from "convex/server";
2
+ import * as Predicate from "effect/Predicate";
5
3
 
6
4
  //#region src/DatabaseSchema.ts
7
5
  var DatabaseSchema_exports = /* @__PURE__ */ __exportAll({
8
6
  TypeId: () => TypeId,
9
- extendWithSystemTables: () => extendWithSystemTables,
10
7
  isDatabaseSchema: () => isDatabaseSchema,
11
- make: () => make,
12
- systemSchema: () => systemSchema
8
+ make: () => make
13
9
  });
14
10
  const TypeId = "@confect/server/DatabaseSchema";
15
11
  const isDatabaseSchema = (u) => Predicate.hasProperty(u, TypeId);
16
- const Proto = {
17
- [TypeId]: TypeId,
18
- addTable(table) {
19
- const newTablesArray = [...Object.values(this.tables), table];
20
- return makeProto({
21
- tables: Record.set(this.tables, table.name, table),
22
- convexSchemaDefinition: pipe(newTablesArray, Array.map(({ name, tableDefinition }) => [name, tableDefinition]), Record.fromEntries, defineSchema)
23
- });
24
- }
25
- };
26
- const makeProto = ({ tables, convexSchemaDefinition }) => Object.assign(Object.create(Proto), {
27
- tables,
28
- convexSchemaDefinition
29
- });
30
12
  /**
31
- * Create an empty schema definition. Add tables incrementally via `addTable`.
13
+ * Construct a `DatabaseSchema` from a record of bound `Table`s. The empty
14
+ * case is `DatabaseSchema.make({})`. The `Tables_` union is inferred from
15
+ * the value record's values, so codegen-emitted calls of the form
16
+ * `DatabaseSchema.make({ notes, tags, users })` do not need an explicit
17
+ * type argument.
18
+ *
19
+ * Invariant: each record **key must equal its value's `tableName`**. The
20
+ * record is stored verbatim and later read by key (`databaseSchema.tables[
21
+ * tableName]` in `DatabaseReader`/`DatabaseWriter`), so a key that diverges
22
+ * from the bound table's name would make those lookups silently miss. The
23
+ * type signature does not enforce this — codegen upholds it by deriving both
24
+ * the key and the table name from the same filename (and the shorthand
25
+ * `{ notes, tags, users }` form it emits makes them identical by
26
+ * construction). Hand-written calls must preserve it.
32
27
  */
33
- const make = () => makeProto({
34
- tables: Record.empty(),
35
- convexSchemaDefinition: defineSchema({})
36
- });
37
- const systemSchema = make().addTable(scheduledFunctionsTable).addTable(storageTable);
38
- const extendWithSystemTables = (tables) => ({
39
- ...tables,
40
- ...systemTables
28
+ const make = (tables) => ({
29
+ [TypeId]: TypeId,
30
+ tables
41
31
  });
42
32
 
43
33
  //#endregion
44
- export { DatabaseSchema_exports, TypeId, extendWithSystemTables, isDatabaseSchema, make, systemSchema };
34
+ export { DatabaseSchema_exports, TypeId, isDatabaseSchema, make };
45
35
  //# sourceMappingURL=DatabaseSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseSchema.js","names":["defineConvexSchema","Table.scheduledFunctionsTable","Table.storageTable","Table.systemTables"],"sources":["../src/DatabaseSchema.ts"],"sourcesContent":["import type { Expand, GenericSchema } from \"convex/server\";\nimport {\n defineSchema as defineConvexSchema,\n type SchemaDefinition,\n} from \"convex/server\";\nimport { Array, pipe, Predicate, Record } from \"effect\";\nimport * as Table from \"./Table\";\n\nexport const TypeId = \"@confect/server/DatabaseSchema\";\nexport type TypeId = typeof TypeId;\n\nexport interface Any {\n readonly [TypeId]: TypeId;\n}\n\nexport const isDatabaseSchema = (u: unknown): u is Any =>\n Predicate.hasProperty(u, TypeId);\n\n/**\n * A schema definition tracks the schema and its Convex schema definition.\n */\nexport interface DatabaseSchema<Tables_ extends Table.AnyWithProps = never> {\n readonly [TypeId]: TypeId;\n readonly tables: Table.TablesRecord<Tables_>;\n readonly convexSchemaDefinition: SchemaDefinition<\n ConvexDatabaseSchemaFromTables<Tables_>,\n true\n >;\n\n /**\n * Add a table definition to the schema.\n */\n addTable<TableDef extends Table.AnyWithProps>(\n table: TableDef,\n ): DatabaseSchema<Tables_ | TableDef>;\n}\n\nexport interface AnyWithProps {\n readonly [TypeId]: TypeId;\n readonly tables: Record<string, Table.AnyWithProps>;\n readonly convexSchemaDefinition: SchemaDefinition<GenericSchema, true>;\n addTable<TableDef extends Table.AnyWithProps>(table: TableDef): AnyWithProps;\n}\n\nexport type Tables<DatabaseSchema_ extends AnyWithProps> =\n DatabaseSchema_ extends DatabaseSchema<infer Tables_> ? Tables_ : never;\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 name: TableName }>;\n\nconst Proto = {\n [TypeId]: TypeId,\n\n addTable<TableDef extends Table.AnyWithProps>(\n this: DatabaseSchema<Table.AnyWithProps>,\n table: TableDef,\n ) {\n const tablesArray = Object.values(this.tables) as Table.AnyWithProps[];\n const newTablesArray = [...tablesArray, table];\n\n return makeProto({\n tables: Record.set(this.tables, table.name, table),\n convexSchemaDefinition: pipe(\n newTablesArray,\n Array.map(\n ({ name, tableDefinition }) => [name, tableDefinition] as const,\n ),\n Record.fromEntries,\n defineConvexSchema,\n ),\n });\n },\n};\n\nconst makeProto = <Tables_ extends Table.AnyWithProps>({\n tables,\n convexSchemaDefinition,\n}: {\n tables: Record.ReadonlyRecord<string, Tables_>;\n convexSchemaDefinition: SchemaDefinition<GenericSchema, true>;\n}): DatabaseSchema<Tables_> =>\n Object.assign(Object.create(Proto), {\n tables,\n convexSchemaDefinition,\n });\n\n/**\n * Create an empty schema definition. Add tables incrementally via `addTable`.\n */\nexport const make = (): DatabaseSchema<never> =>\n makeProto({\n tables: Record.empty(),\n convexSchemaDefinition: defineConvexSchema({}),\n });\n\nexport type ConvexDatabaseSchemaFromTables<Tables_ extends Table.AnyWithProps> =\n Expand<{\n [TableName in Table.Name<Tables_> & string]: Table.WithName<\n Tables_,\n TableName\n >[\"tableDefinition\"];\n }>;\n\n// System tables\n\nexport const systemSchema = make()\n .addTable(Table.scheduledFunctionsTable)\n .addTable(Table.storageTable);\n\nexport const extendWithSystemTables = <Tables_ extends Table.AnyWithProps>(\n tables: Table.TablesRecord<Tables_>,\n): ExtendWithSystemTables<Tables_> =>\n ({\n ...tables,\n ...Table.systemTables,\n }) as ExtendWithSystemTables<Tables_>;\n\nexport type ExtendWithSystemTables<Tables_ extends Table.AnyWithProps> =\n Table.TablesRecord<Tables_ | Table.SystemTables>;\n\nexport type IncludeSystemTables<Tables_ extends Table.AnyWithProps> =\n | Tables_\n | Table.SystemTables extends infer T\n ? T extends Table.AnyWithProps\n ? T\n : never\n : never;\n"],"mappings":";;;;;;;;;;;;;AAQA,MAAa,SAAS;AAOtB,MAAa,oBAAoB,MAC/B,UAAU,YAAY,GAAG,OAAO;AAyClC,MAAM,QAAQ;EACX,SAAS;CAEV,SAEE,OACA;EAEA,MAAM,iBAAiB,CAAC,GADJ,OAAO,OAAO,KAAK,OAAO,EACN,MAAM;AAE9C,SAAO,UAAU;GACf,QAAQ,OAAO,IAAI,KAAK,QAAQ,MAAM,MAAM,MAAM;GAClD,wBAAwB,KACtB,gBACA,MAAM,KACH,EAAE,MAAM,sBAAsB,CAAC,MAAM,gBAAgB,CACvD,EACD,OAAO,aACPA,aACD;GACF,CAAC;;CAEL;AAED,MAAM,aAAiD,EACrD,QACA,6BAKA,OAAO,OAAO,OAAO,OAAO,MAAM,EAAE;CAClC;CACA;CACD,CAAC;;;;AAKJ,MAAa,aACX,UAAU;CACR,QAAQ,OAAO,OAAO;CACtB,wBAAwBA,aAAmB,EAAE,CAAC;CAC/C,CAAC;AAYJ,MAAa,eAAe,MAAM,CAC/B,SAASC,wBAA8B,CACvC,SAASC,aAAmB;AAE/B,MAAa,0BACX,YAEC;CACC,GAAG;CACH,GAAGC;CACJ"}
1
+ {"version":3,"file":"DatabaseSchema.js","names":[],"sources":["../src/DatabaseSchema.ts"],"sourcesContent":["import * as Predicate from \"effect/Predicate\";\nimport type * as Table from \"./Table\";\n\nexport const TypeId = \"@confect/server/DatabaseSchema\";\nexport type TypeId = typeof TypeId;\n\nexport interface Any {\n readonly [TypeId]: TypeId;\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\n * name. Codegen emits a single static `DatabaseSchema.make({ ... })` call;\n * laziness lives entirely on each `Table` (its `Fields`, `Doc`, and\n * `tableDefinition` are lazy memoised getters), so this layer is a plain\n * record indirection with no module-loading or async machinery.\n */\nexport interface DatabaseSchema<Tables_ extends Table.AnyWithProps = never> {\n readonly [TypeId]: TypeId;\n readonly tables: {\n readonly [TableName in Table.Name<Tables_>]: Table.WithName<\n Tables_,\n TableName\n >;\n };\n}\n\nexport interface AnyWithProps {\n readonly [TypeId]: TypeId;\n readonly tables: Record<string, Table.AnyWithProps>;\n}\n\nexport type Tables<DatabaseSchema_ extends AnyWithProps> =\n DatabaseSchema_ extends DatabaseSchema<infer Tables_> ? Tables_ : never;\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\n/**\n * Construct a `DatabaseSchema` from a record of bound `Table`s. The empty\n * case is `DatabaseSchema.make({})`. The `Tables_` union is inferred from\n * the value record's values, so codegen-emitted calls of the form\n * `DatabaseSchema.make({ notes, tags, users })` do not need an explicit\n * type argument.\n *\n * Invariant: each record **key must equal its value's `tableName`**. The\n * record is stored verbatim and later read by key (`databaseSchema.tables[\n * tableName]` in `DatabaseReader`/`DatabaseWriter`), so a key that diverges\n * from the bound table's name would make those lookups silently miss. The\n * type signature does not enforce this codegen upholds it by deriving both\n * the key and the table name from the same filename (and the shorthand\n * `{ notes, tags, users }` form it emits makes them identical by\n * construction). Hand-written calls must preserve it.\n */\nexport const make = <\n const TablesRecord extends Record<string, Table.AnyWithProps>,\n>(\n tables: TablesRecord,\n): DatabaseSchema<TablesRecord[keyof TablesRecord]> => ({\n [TypeId]: TypeId,\n tables: tables as unknown as DatabaseSchema<\n TablesRecord[keyof TablesRecord]\n >[\"tables\"],\n});\n"],"mappings":";;;;;;;;;AAGA,MAAa,SAAS;AAOtB,MAAa,oBAAoB,MAC/B,UAAU,YAAY,GAAG,OAAO;;;;;;;;;;;;;;;;;AAqDlC,MAAa,QAGX,YACsD;EACrD,SAAS;CACF;CAGT"}
@@ -1,47 +1,43 @@
1
- import { AnyWithProps } from "./DatabaseSchema.js";
2
- import { DocumentDecodeError, DocumentEncodeError, WithoutSystemFields as WithoutSystemFields$1 } from "./Document.js";
3
- import { DocumentByName, FromSchema, TableNames, ToConvex } from "./DataModel.js";
4
- import { GetByIdFailure } from "./QueryInitializer.js";
5
- import { Context, Effect, Layer } from "effect";
6
- import { BetterOmit, Expand, GenericDatabaseWriter, WithoutSystemFields } from "convex/server";
7
- import { GenericId } from "convex/values";
8
-
9
- //#region src/DatabaseWriter.d.ts
10
- declare namespace DatabaseWriter_d_exports {
11
- export { DatabaseWriter, layer, make };
12
- }
13
- declare const make: <DatabaseSchema_ extends AnyWithProps>(databaseSchema: DatabaseSchema_, convexDatabaseWriter: GenericDatabaseWriter<ToConvex<FromSchema<DatabaseSchema_>>>) => {
14
- table: <const TableName extends TableNames<FromSchema<DatabaseSchema_>>>(tableName: TableName) => {
15
- insert: (document: WithoutSystemFields$1<DocumentByName<FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<GenericId<TableName>, DocumentEncodeError, never>;
16
- patch: (id: GenericId<TableName>, patchedValues: Partial<WithoutSystemFields<DocumentByName<FromSchema<DatabaseSchema_>, TableName>>>) => Effect.Effect<void, DocumentDecodeError | GetByIdFailure | DocumentEncodeError, never>;
17
- replace: (id: GenericId<TableName>, value: WithoutSystemFields<DocumentByName<FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<void, DocumentEncodeError, never>;
18
- delete: (id: GenericId<TableName>) => Effect.Effect<void, never, never>;
19
- };
1
+ import type { BetterOmit, Expand, GenericDatabaseWriter, WithoutSystemFields } from "convex/server";
2
+ import type { GenericId } from "convex/values";
3
+ import * as Context from "effect/Context";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Layer from "effect/Layer";
6
+ import type * as DatabaseSchema from "./DatabaseSchema";
7
+ import type * as DataModel from "./DataModel";
8
+ import type { DocumentByName as DocumentByName_ } from "./DataModel";
9
+ import * as Document from "./Document";
10
+ import * as QueryInitializer from "./QueryInitializer";
11
+ export declare const make: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(databaseSchema: DatabaseSchema_, convexDatabaseWriter: GenericDatabaseWriter<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>>) => {
12
+ table: <const TableName extends DataModel.TableNames<DataModel.FromSchema<DatabaseSchema_>>>(tableName: TableName) => {
13
+ insert: (document: Document.WithoutSystemFields<DocumentByName_<DataModel.FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<GenericId<TableName>, Document.DocumentEncodeError, never>;
14
+ patch: (id: GenericId<TableName>, patchedValues: Partial<WithoutSystemFields<DocumentByName_<DataModel.FromSchema<DatabaseSchema_>, TableName>>>) => Effect.Effect<void, Document.DocumentDecodeError | Document.DocumentEncodeError | QueryInitializer.GetByIdFailure, never>;
15
+ replace: (id: GenericId<TableName>, value: WithoutSystemFields<DocumentByName_<DataModel.FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<void, Document.DocumentEncodeError, never>;
16
+ delete: (id: GenericId<TableName>) => Effect.Effect<void, never, never>;
17
+ };
20
18
  };
21
- declare const DatabaseWriter: <DatabaseSchema_ extends AnyWithProps>() => Context.Tag<{
22
- table: <const TableName extends TableNames<FromSchema<DatabaseSchema_>>>(tableName: TableName) => {
23
- insert: (document: WithoutSystemFields$1<DocumentByName<FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<GenericId<TableName>, DocumentEncodeError, never>;
24
- patch: (id: GenericId<TableName>, patchedValues: Partial<Expand<BetterOmit<DocumentByName<FromSchema<DatabaseSchema_>, TableName>, "_id" | "_creationTime">>>) => Effect.Effect<void, DocumentDecodeError | GetByIdFailure | DocumentEncodeError, never>;
25
- replace: (id: GenericId<TableName>, value: Expand<BetterOmit<DocumentByName<FromSchema<DatabaseSchema_>, TableName>, "_id" | "_creationTime">>) => Effect.Effect<void, DocumentEncodeError, never>;
26
- delete: (id: GenericId<TableName>) => Effect.Effect<void, never, never>;
27
- };
19
+ export declare const DatabaseWriter: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>() => Context.Tag<{
20
+ table: <const TableName extends DataModel.TableNames<DataModel.FromSchema<DatabaseSchema_>>>(tableName: TableName) => {
21
+ insert: (document: Document.WithoutSystemFields<DataModel.DocumentByName<DataModel.FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<GenericId<TableName>, Document.DocumentEncodeError, never>;
22
+ patch: (id: GenericId<TableName>, patchedValues: Partial<Expand<BetterOmit<DataModel.DocumentByName<DataModel.FromSchema<DatabaseSchema_>, TableName>, "_creationTime" | "_id">>>) => Effect.Effect<void, Document.DocumentDecodeError | Document.DocumentEncodeError | QueryInitializer.GetByIdFailure, never>;
23
+ replace: (id: GenericId<TableName>, value: Expand<BetterOmit<DataModel.DocumentByName<DataModel.FromSchema<DatabaseSchema_>, TableName>, "_creationTime" | "_id">>) => Effect.Effect<void, Document.DocumentEncodeError, never>;
24
+ delete: (id: GenericId<TableName>) => Effect.Effect<void, never, never>;
25
+ };
28
26
  }, {
29
- table: <const TableName extends TableNames<FromSchema<DatabaseSchema_>>>(tableName: TableName) => {
30
- insert: (document: WithoutSystemFields$1<DocumentByName<FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<GenericId<TableName>, DocumentEncodeError, never>;
31
- patch: (id: GenericId<TableName>, patchedValues: Partial<Expand<BetterOmit<DocumentByName<FromSchema<DatabaseSchema_>, TableName>, "_id" | "_creationTime">>>) => Effect.Effect<void, DocumentDecodeError | GetByIdFailure | DocumentEncodeError, never>;
32
- replace: (id: GenericId<TableName>, value: Expand<BetterOmit<DocumentByName<FromSchema<DatabaseSchema_>, TableName>, "_id" | "_creationTime">>) => Effect.Effect<void, DocumentEncodeError, never>;
33
- delete: (id: GenericId<TableName>) => Effect.Effect<void, never, never>;
34
- };
27
+ table: <const TableName extends DataModel.TableNames<DataModel.FromSchema<DatabaseSchema_>>>(tableName: TableName) => {
28
+ insert: (document: Document.WithoutSystemFields<DataModel.DocumentByName<DataModel.FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<GenericId<TableName>, Document.DocumentEncodeError, never>;
29
+ patch: (id: GenericId<TableName>, patchedValues: Partial<Expand<BetterOmit<DataModel.DocumentByName<DataModel.FromSchema<DatabaseSchema_>, TableName>, "_creationTime" | "_id">>>) => Effect.Effect<void, Document.DocumentDecodeError | Document.DocumentEncodeError | QueryInitializer.GetByIdFailure, never>;
30
+ replace: (id: GenericId<TableName>, value: Expand<BetterOmit<DataModel.DocumentByName<DataModel.FromSchema<DatabaseSchema_>, TableName>, "_creationTime" | "_id">>) => Effect.Effect<void, Document.DocumentEncodeError, never>;
31
+ delete: (id: GenericId<TableName>) => Effect.Effect<void, never, never>;
32
+ };
35
33
  }>;
36
- type DatabaseWriter<DatabaseSchema_ extends AnyWithProps> = ReturnType<typeof DatabaseWriter<DatabaseSchema_>>["Identifier"];
37
- declare const layer: <DatabaseSchema_ extends AnyWithProps>(databaseSchema: DatabaseSchema_, convexDatabaseWriter: GenericDatabaseWriter<ToConvex<FromSchema<DatabaseSchema_>>>) => Layer.Layer<{
38
- table: <const TableName extends TableNames<FromSchema<DatabaseSchema_>>>(tableName: TableName) => {
39
- insert: (document: WithoutSystemFields$1<DocumentByName<FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<GenericId<TableName>, DocumentEncodeError, never>;
40
- patch: (id: GenericId<TableName>, patchedValues: Partial<Expand<BetterOmit<DocumentByName<FromSchema<DatabaseSchema_>, TableName>, "_id" | "_creationTime">>>) => Effect.Effect<void, DocumentDecodeError | GetByIdFailure | DocumentEncodeError, never>;
41
- replace: (id: GenericId<TableName>, value: Expand<BetterOmit<DocumentByName<FromSchema<DatabaseSchema_>, TableName>, "_id" | "_creationTime">>) => Effect.Effect<void, DocumentEncodeError, never>;
42
- delete: (id: GenericId<TableName>) => Effect.Effect<void, never, never>;
43
- };
34
+ export type DatabaseWriter<DatabaseSchema_ extends DatabaseSchema.AnyWithProps> = ReturnType<typeof DatabaseWriter<DatabaseSchema_>>["Identifier"];
35
+ export declare const layer: <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(databaseSchema: DatabaseSchema_, convexDatabaseWriter: GenericDatabaseWriter<DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>>) => Layer.Layer<{
36
+ table: <const TableName extends DataModel.TableNames<DataModel.FromSchema<DatabaseSchema_>>>(tableName: TableName) => {
37
+ insert: (document: Document.WithoutSystemFields<DataModel.DocumentByName<DataModel.FromSchema<DatabaseSchema_>, TableName>>) => Effect.Effect<GenericId<TableName>, Document.DocumentEncodeError, never>;
38
+ patch: (id: GenericId<TableName>, patchedValues: Partial<Expand<BetterOmit<DataModel.DocumentByName<DataModel.FromSchema<DatabaseSchema_>, TableName>, "_creationTime" | "_id">>>) => Effect.Effect<void, Document.DocumentDecodeError | Document.DocumentEncodeError | QueryInitializer.GetByIdFailure, never>;
39
+ replace: (id: GenericId<TableName>, value: Expand<BetterOmit<DataModel.DocumentByName<DataModel.FromSchema<DatabaseSchema_>, TableName>, "_creationTime" | "_id">>) => Effect.Effect<void, Document.DocumentEncodeError, never>;
40
+ delete: (id: GenericId<TableName>) => Effect.Effect<void, never, never>;
41
+ };
44
42
  }, never, never>;
45
- //#endregion
46
- export { DatabaseWriter, DatabaseWriter_d_exports, layer, make };
47
43
  //# sourceMappingURL=DatabaseWriter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseWriter.d.ts","names":[],"sources":["../src/DatabaseWriter.ts"],"mappings":";;;;;;;;;;;;cAiBa,IAAA,2BAAgC,YAAA,EAC3C,cAAA,EAAgB,eAAA,EAChB,oBAAA,EAAsB,qBAAA,CACpB,QAAA,CAAmB,UAAA,CAAqB,eAAA;kCAMH,UAAA,CAAoB,UAAA,CAAA,eAAA,IAAY,SAAA,EAC1D,SAAA;uBAQC,qBAAA,CACR,cAAA,CAAe,UAAA,CAAA,eAAA,GAAa,SAAA,OAC7B,MAAA,CAAA,MAAA,CAAA,SAAA,CAAA,SAAA,GAAA,mBAAA;gBAsBG,SAAA,CAAU,SAAA,GAAU,aAAA,EACT,OAAA,CACb,mBAAA,CAAoB,cAAA,CAAe,UAAA,CAAA,eAAA,GAAa,SAAA,QACjD,MAAA,CAAA,MAAA,OAAA,mBAAA,GAAA,cAAA,GAAA,mBAAA;kBAiCG,SAAA,CAAU,SAAA,GAAU,KAAA,EACjB,mBAAA,CAAoB,cAAA,CAAe,UAAA,CAAA,eAAA,GAAa,SAAA,OAAW,MAAA,CAAA,MAAA,OAAA,mBAAA;iBAsB/C,SAAA,CAAU,SAAA,MAAU,MAAA,CAAA,MAAA;EAAA;AAAA;AAAA,cAgBhC,cAAA,2BACa,YAAA,OAA2B,OAAA,CAAA,GAAA;kCA7GrB,UAAA,CAAA,UAAA,CAAA,eAAA,IAAA,SAAA,EAAA,SAAA;;;;;;;kCAAA,UAAA,CAAA,UAAA,CAAA,eAAA,IAAA,SAAA,EAAA,SAAA;;;;;;;KAmHpB,cAAA,yBACc,YAAA,IACtB,UAAA,QAAkB,cAAA,CAAe,eAAA;AAAA,cAExB,KAAA,2BAAiC,YAAA,EAC5C,cAAA,EAAgB,eAAA,EAChB,oBAAA,EAAsB,qBAAA,CACpB,QAAA,CAAmB,UAAA,CAAqB,eAAA,QACzC,KAAA,CAAA,KAAA;kCA3H6B,UAAA,CAAA,UAAA,CAAA,eAAA,IAAA,SAAA,EAAA,SAAA"}
1
+ {"version":3,"file":"DatabaseWriter.d.ts","sourceRoot":"","sources":["../src/DatabaseWriter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,MAAM,EACN,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,KAAK,cAAc,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,KAAK,SAAS,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,gBAAgB,MAAM,oBAAoB,CAAC;AAIvD,eAAO,MAAM,IAAI,GAAI,eAAe,SAAS,cAAc,CAAC,YAAY,EACtE,gBAAgB,eAAe,EAC/B,sBAAsB,qBAAqB,CACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAC1D;kBAIoB,SAAS,SAAS,SAAS,CAAC,UAAU,uCAAY,aAC1D,SAAS;2BAQR,QAAQ,CAAC,mBAAmB,CACpC,eAAe,wCAAa,SAAS,CAAC,CACvC;oBAsBG,SAAS,CAAC,SAAS,CAAC,iBACT,OAAO,CACpB,mBAAmB,CAAC,eAAe,wCAAa,SAAS,CAAC,CAAC,CAC5D;sBAqCG,SAAS,CAAC,SAAS,CAAC,SACjB,mBAAmB,CAAC,eAAe,wCAAa,SAAS,CAAC,CAAC;qBAsB/C,SAAS,CAAC,SAAS,CAAC;;CAc5C,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,eAAe,SAAS,cAAc,CAAC,YAAY;kBAjH9B,SAAS;;;;;;;kBAAT,SAAS;;;;;;EAqH7B,CAAC;AAEJ,MAAM,MAAM,cAAc,CACxB,eAAe,SAAS,cAAc,CAAC,YAAY,IACjD,UAAU,CAAC,OAAO,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AAErE,eAAO,MAAM,KAAK,GAAI,eAAe,SAAS,cAAc,CAAC,YAAY,EACvE,gBAAgB,eAAe,EAC/B,sBAAsB,qBAAqB,CACzC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAC1D;kBA/HoB,SAAS;;;;;;gBAoI7B,CAAC"}
@@ -1,7 +1,11 @@
1
1
  import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
2
  import { encode } from "./Document.js";
3
3
  import { getById } from "./QueryInitializer.js";
4
- import { Context, Effect, Layer, Record, pipe } from "effect";
4
+ import * as Context from "effect/Context";
5
+ import * as Layer from "effect/Layer";
6
+ import { pipe } from "effect/Function";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Record from "effect/Record";
5
9
 
6
10
  //#region src/DatabaseWriter.ts
7
11
  var DatabaseWriter_exports = /* @__PURE__ */ __exportAll({
@@ -10,21 +14,20 @@ var DatabaseWriter_exports = /* @__PURE__ */ __exportAll({
10
14
  make: () => make
11
15
  });
12
16
  const make = (databaseSchema, convexDatabaseWriter) => {
13
- const tables = databaseSchema.tables;
14
17
  const table = (tableName) => {
15
- const tableDef = tables[tableName];
16
- const tableSchema = tableDef.Fields;
18
+ const tableDef = databaseSchema.tables[tableName];
17
19
  const insert = (document) => Effect.gen(function* () {
18
20
  const encodedDocument = yield* encode(document, tableName, tableDef.Fields);
19
21
  return yield* Effect.promise(() => convexDatabaseWriter.insert(tableName, encodedDocument));
20
22
  });
21
23
  const patch = (id, patchedValues) => Effect.gen(function* () {
24
+ const tableSchema = tableDef.Fields;
22
25
  const originalDecodedDoc = yield* getById(tableName, convexDatabaseWriter, tableDef)(id);
23
26
  const updatedEncodedDoc = yield* pipe(patchedValues, Record.reduce(originalDecodedDoc, (acc, value, key) => value === void 0 ? Record.remove(acc, key) : Record.set(acc, key, value)), encode(tableName, tableSchema));
24
27
  yield* Effect.promise(() => convexDatabaseWriter.replace(id, updatedEncodedDoc));
25
28
  });
26
29
  const replace = (id, value) => Effect.gen(function* () {
27
- const updatedEncodedDoc = yield* encode(value, tableName, tableSchema);
30
+ const updatedEncodedDoc = yield* encode(value, tableName, tableDef.Fields);
28
31
  yield* Effect.promise(() => convexDatabaseWriter.replace(id, updatedEncodedDoc));
29
32
  });
30
33
  const delete_ = (id) => Effect.promise(() => convexDatabaseWriter.delete(id));
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseWriter.js","names":["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 { Context, Effect, Layer, pipe, Record } from \"effect\";\nimport type * 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\";\nimport type * as TableInfo from \"./TableInfo\";\n\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n) => {\n type DataModel_ = DataModel.FromSchema<DatabaseSchema_>;\n const tables = databaseSchema.tables as Record<string, Table.AnyWithProps>;\n\n const table = <const TableName extends DataModel.TableNames<DataModel_>>(\n tableName: TableName,\n ) => {\n const tableDef = tables[tableName]!;\n const tableSchema = tableDef.Fields as TableInfo.TableSchema<\n DataModel.TableInfoWithName_<DataModel_, TableName>\n >;\n\n const insert = (\n document: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) =>\n Effect.gen(function* () {\n const encodedDocument = yield* Document.encode(\n document,\n tableName,\n tableDef.Fields,\n );\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 return id;\n });\n\n const patch = (\n id: GenericId<TableName>,\n patchedValues: Partial<\n WithoutSystemFields<DocumentByName_<DataModel_, TableName>>\n >,\n ) =>\n Effect.gen(function* () {\n const originalDecodedDoc = yield* QueryInitializer.getById(\n tableName,\n convexDatabaseWriter as any,\n tableDef,\n )(id);\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(tableName, tableSchema),\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const replace = (\n id: GenericId<TableName>,\n value: WithoutSystemFields<DocumentByName_<DataModel_, TableName>>,\n ) =>\n Effect.gen(function* () {\n const updatedEncodedDoc = yield* Document.encode(\n value,\n tableName,\n tableSchema,\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id,\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: GenericId<TableName>) =>\n Effect.promise(() => convexDatabaseWriter.delete(id));\n\n return {\n insert,\n patch,\n replace,\n delete: delete_,\n };\n };\n\n return {\n table,\n };\n};\n\nexport const DatabaseWriter = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n>() =>\n Context.GenericTag<ReturnType<typeof make<DatabaseSchema_>>>(\n \"@confect/server/DatabaseWriter\",\n );\n\nexport type DatabaseWriter<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = ReturnType<typeof DatabaseWriter<DatabaseSchema_>>[\"Identifier\"];\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":";;;;;;;;;;;AAiBA,MAAa,QACX,gBACA,yBAGG;CAEH,MAAM,SAAS,eAAe;CAE9B,MAAM,SACJ,cACG;EACH,MAAM,WAAW,OAAO;EACxB,MAAM,cAAc,SAAS;EAI7B,MAAM,UACJ,aAIA,OAAO,IAAI,aAAa;GACtB,MAAM,kBAAkB,OAAOA,OAC7B,UACA,WACA,SAAS,OACV;AAWD,UATW,OAAO,OAAO,cACvB,qBAAqB,OACnB,WACA,gBAGD,CACF;IAGD;EAEJ,MAAM,SACJ,IACA,kBAIA,OAAO,IAAI,aAAa;GACtB,MAAM,qBAAqB,OAAOC,QAChC,WACA,sBACA,SACD,CAAC,GAAG;GAEL,MAAM,oBAAoB,OAAO,KAC/B,eACA,OAAO,OAAO,qBAAqB,KAAK,OAAO,QAC7C,UAAU,SACN,OAAO,OAAO,KAAK,IAAI,GACvB,OAAO,IAAI,KAAK,KAAK,MAAM,CAChC,EACDD,OAAgB,WAAW,YAAY,CACxC;AAED,UAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,kBAMD,CACF;IACD;EAEJ,MAAM,WACJ,IACA,UAEA,OAAO,IAAI,aAAa;GACtB,MAAM,oBAAoB,OAAOA,OAC/B,OACA,WACA,YACD;AAED,UAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,kBAMD,CACF;IACD;EAEJ,MAAM,WAAW,OACf,OAAO,cAAc,qBAAqB,OAAO,GAAG,CAAC;AAEvD,SAAO;GACL;GACA;GACA;GACA,QAAQ;GACT;;AAGH,QAAO,EACL,OACD;;AAGH,MAAa,uBAGX,QAAQ,WACN,iCACD;AAMH,MAAa,SACX,gBACA,yBAIA,MAAM,QACJ,gBAAiC,EACjC,KAAK,gBAAgB,qBAAqB,CAC3C"}
1
+ {"version":3,"file":"DatabaseWriter.js","names":["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 type * 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\";\nimport type * as TableInfo from \"./TableInfo\";\n\nexport const make = <DatabaseSchema_ extends DatabaseSchema.AnyWithProps>(\n databaseSchema: DatabaseSchema_,\n convexDatabaseWriter: GenericDatabaseWriter<\n DataModel.ToConvex<DataModel.FromSchema<DatabaseSchema_>>\n >,\n) => {\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[tableName] as Table.WithName<\n DatabaseSchema.Tables<DatabaseSchema_>,\n TableName\n >;\n\n const insert = (\n document: Document.WithoutSystemFields<\n DocumentByName_<DataModel_, TableName>\n >,\n ) =>\n Effect.gen(function* () {\n const encodedDocument = yield* Document.encode(\n document,\n tableName,\n tableDef.Fields,\n );\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 return id;\n });\n\n const patch = (\n id: GenericId<TableName>,\n patchedValues: Partial<\n WithoutSystemFields<DocumentByName_<DataModel_, TableName>>\n >,\n ) =>\n Effect.gen(function* () {\n const tableSchema = tableDef.Fields as TableInfo.TableSchema<\n DataModel.TableInfoWithName_<DataModel_, TableName>\n >;\n\n const originalDecodedDoc = yield* QueryInitializer.getById(\n tableName,\n convexDatabaseWriter as any,\n tableDef,\n )(id);\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(tableName, tableSchema),\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id,\n updatedEncodedDoc as Expand<\n BetterOmit<\n DocumentByName<DataModel.ToConvex<DataModel_>, TableName>,\n \"_creationTime\" | \"_id\"\n >\n >,\n ),\n );\n });\n\n const replace = (\n id: GenericId<TableName>,\n value: WithoutSystemFields<DocumentByName_<DataModel_, TableName>>,\n ) =>\n Effect.gen(function* () {\n const updatedEncodedDoc = yield* Document.encode(\n value,\n tableName,\n tableDef.Fields,\n );\n\n yield* Effect.promise(() =>\n convexDatabaseWriter.replace(\n id,\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: GenericId<TableName>) =>\n Effect.promise(() => convexDatabaseWriter.delete(id));\n\n return {\n insert,\n patch,\n replace,\n delete: delete_,\n };\n };\n\n return {\n table,\n };\n};\n\nexport const DatabaseWriter = <\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n>() =>\n Context.GenericTag<ReturnType<typeof make<DatabaseSchema_>>>(\n \"@confect/server/DatabaseWriter\",\n );\n\nexport type DatabaseWriter<\n DatabaseSchema_ extends DatabaseSchema.AnyWithProps,\n> = ReturnType<typeof DatabaseWriter<DatabaseSchema_>>[\"Identifier\"];\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":";;;;;;;;;;;;;;;AAqBA,MAAa,QACX,gBACA,yBAGG;CAGH,MAAM,SACJ,cACG;EACH,MAAM,WAAW,eAAe,OAAO;EAKvC,MAAM,UACJ,aAIA,OAAO,IAAI,aAAa;GACtB,MAAM,kBAAkB,OAAOA,OAC7B,UACA,WACA,SAAS,OACV;AAWD,UATW,OAAO,OAAO,cACvB,qBAAqB,OACnB,WACA,gBAGD,CACF;IAGD;EAEJ,MAAM,SACJ,IACA,kBAIA,OAAO,IAAI,aAAa;GACtB,MAAM,cAAc,SAAS;GAI7B,MAAM,qBAAqB,OAAOC,QAChC,WACA,sBACA,SACD,CAAC,GAAG;GAEL,MAAM,oBAAoB,OAAO,KAC/B,eACA,OAAO,OAAO,qBAAqB,KAAK,OAAO,QAC7C,UAAU,SACN,OAAO,OAAO,KAAK,IAAI,GACvB,OAAO,IAAI,KAAK,KAAK,MAAM,CAChC,EACDD,OAAgB,WAAW,YAAY,CACxC;AAED,UAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,kBAMD,CACF;IACD;EAEJ,MAAM,WACJ,IACA,UAEA,OAAO,IAAI,aAAa;GACtB,MAAM,oBAAoB,OAAOA,OAC/B,OACA,WACA,SAAS,OACV;AAED,UAAO,OAAO,cACZ,qBAAqB,QACnB,IACA,kBAMD,CACF;IACD;EAEJ,MAAM,WAAW,OACf,OAAO,cAAc,qBAAqB,OAAO,GAAG,CAAC;AAEvD,SAAO;GACL;GACA;GACA;GACA,QAAQ;GACT;;AAGH,QAAO,EACL,OACD;;AAGH,MAAa,uBAGX,QAAQ,WACN,iCACD;AAMH,MAAa,SACX,gBACA,yBAIA,MAAM,QACJ,gBAAiC,EACjC,KAAK,gBAAgB,qBAAqB,CAC3C"}