@livestore/common 0.3.2-dev.9 → 0.4.0-dev.1

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 (172) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ClientSessionLeaderThreadProxy.d.ts +2 -2
  3. package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
  4. package/dist/adapter-types.d.ts +4 -4
  5. package/dist/adapter-types.d.ts.map +1 -1
  6. package/dist/debug-info.d.ts +17 -17
  7. package/dist/devtools/devtools-messages-client-session.d.ts +38 -38
  8. package/dist/devtools/devtools-messages-common.d.ts +6 -6
  9. package/dist/devtools/devtools-messages-leader.d.ts +28 -28
  10. package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
  11. package/dist/devtools/devtools-messages-leader.js.map +1 -1
  12. package/dist/leader-thread/LeaderSyncProcessor.js +3 -1
  13. package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
  14. package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
  15. package/dist/leader-thread/make-leader-thread-layer.js +21 -4
  16. package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
  17. package/dist/leader-thread/shutdown-channel.d.ts +2 -2
  18. package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
  19. package/dist/leader-thread/shutdown-channel.js +2 -2
  20. package/dist/leader-thread/shutdown-channel.js.map +1 -1
  21. package/dist/leader-thread/types.d.ts +1 -1
  22. package/dist/leader-thread/types.d.ts.map +1 -1
  23. package/dist/materializer-helper.d.ts +3 -3
  24. package/dist/materializer-helper.d.ts.map +1 -1
  25. package/dist/materializer-helper.js +2 -2
  26. package/dist/materializer-helper.js.map +1 -1
  27. package/dist/rematerialize-from-eventlog.js +1 -1
  28. package/dist/rematerialize-from-eventlog.js.map +1 -1
  29. package/dist/schema/EventDef.d.ts +104 -178
  30. package/dist/schema/EventSequenceNumber.d.ts +5 -0
  31. package/dist/schema/EventSequenceNumber.d.ts.map +1 -1
  32. package/dist/schema/EventSequenceNumber.js +7 -2
  33. package/dist/schema/EventSequenceNumber.js.map +1 -1
  34. package/dist/schema/EventSequenceNumber.test.js +2 -2
  35. package/dist/schema/LiveStoreEvent.d.ts +6 -5
  36. package/dist/schema/LiveStoreEvent.d.ts.map +1 -1
  37. package/dist/schema/LiveStoreEvent.js +5 -0
  38. package/dist/schema/LiveStoreEvent.js.map +1 -1
  39. package/dist/schema/schema.d.ts +3 -0
  40. package/dist/schema/schema.d.ts.map +1 -1
  41. package/dist/schema/schema.js.map +1 -1
  42. package/dist/schema/state/sqlite/client-document-def.d.ts +3 -2
  43. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  44. package/dist/schema/state/sqlite/client-document-def.js +6 -4
  45. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  46. package/dist/schema/state/sqlite/client-document-def.test.js +76 -1
  47. package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
  48. package/dist/schema/state/sqlite/column-annotations.d.ts +34 -0
  49. package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -0
  50. package/dist/schema/state/sqlite/column-annotations.js +50 -0
  51. package/dist/schema/state/sqlite/column-annotations.js.map +1 -0
  52. package/dist/schema/state/sqlite/column-annotations.test.d.ts +2 -0
  53. package/dist/schema/state/sqlite/column-annotations.test.d.ts.map +1 -0
  54. package/dist/schema/state/sqlite/column-annotations.test.js +179 -0
  55. package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -0
  56. package/dist/schema/state/sqlite/column-def.d.ts +15 -0
  57. package/dist/schema/state/sqlite/column-def.d.ts.map +1 -0
  58. package/dist/schema/state/sqlite/column-def.js +242 -0
  59. package/dist/schema/state/sqlite/column-def.js.map +1 -0
  60. package/dist/schema/state/sqlite/column-def.test.d.ts +2 -0
  61. package/dist/schema/state/sqlite/column-def.test.d.ts.map +1 -0
  62. package/dist/schema/state/sqlite/column-def.test.js +529 -0
  63. package/dist/schema/state/sqlite/column-def.test.js.map +1 -0
  64. package/dist/schema/state/sqlite/column-spec.d.ts +11 -0
  65. package/dist/schema/state/sqlite/column-spec.d.ts.map +1 -0
  66. package/dist/schema/state/sqlite/column-spec.js +39 -0
  67. package/dist/schema/state/sqlite/column-spec.js.map +1 -0
  68. package/dist/schema/state/sqlite/column-spec.test.d.ts +2 -0
  69. package/dist/schema/state/sqlite/column-spec.test.d.ts.map +1 -0
  70. package/dist/schema/state/sqlite/column-spec.test.js +146 -0
  71. package/dist/schema/state/sqlite/column-spec.test.js.map +1 -0
  72. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +1 -0
  73. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
  74. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +1 -0
  75. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
  76. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +17 -4
  77. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
  78. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +2 -0
  79. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
  80. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +65 -165
  81. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  82. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +1 -0
  83. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  84. package/dist/schema/state/sqlite/mod.d.ts +2 -0
  85. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  86. package/dist/schema/state/sqlite/mod.js +2 -0
  87. package/dist/schema/state/sqlite/mod.js.map +1 -1
  88. package/dist/schema/state/sqlite/query-builder/api.d.ts +309 -560
  89. package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
  90. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts +1 -0
  91. package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -1
  92. package/dist/schema/state/sqlite/query-builder/astToSql.js +8 -6
  93. package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -1
  94. package/dist/schema/state/sqlite/system-tables.d.ts +464 -46
  95. package/dist/schema/state/sqlite/system-tables.d.ts.map +1 -1
  96. package/dist/schema/state/sqlite/table-def.d.ts +159 -152
  97. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  98. package/dist/schema/state/sqlite/table-def.js +45 -6
  99. package/dist/schema/state/sqlite/table-def.js.map +1 -1
  100. package/dist/schema/state/sqlite/table-def.test.d.ts +2 -0
  101. package/dist/schema/state/sqlite/table-def.test.d.ts.map +1 -0
  102. package/dist/schema/state/sqlite/table-def.test.js +192 -0
  103. package/dist/schema/state/sqlite/table-def.test.js.map +1 -0
  104. package/dist/schema-management/common.d.ts +1 -1
  105. package/dist/schema-management/common.d.ts.map +1 -1
  106. package/dist/schema-management/common.js +11 -2
  107. package/dist/schema-management/common.js.map +1 -1
  108. package/dist/schema-management/migrations.d.ts +0 -1
  109. package/dist/schema-management/migrations.d.ts.map +1 -1
  110. package/dist/schema-management/migrations.js +4 -30
  111. package/dist/schema-management/migrations.js.map +1 -1
  112. package/dist/schema-management/migrations.test.d.ts +2 -0
  113. package/dist/schema-management/migrations.test.d.ts.map +1 -0
  114. package/dist/schema-management/migrations.test.js +52 -0
  115. package/dist/schema-management/migrations.test.js.map +1 -0
  116. package/dist/sql-queries/types.d.ts +37 -133
  117. package/dist/sqlite-db-helper.d.ts +3 -1
  118. package/dist/sqlite-db-helper.d.ts.map +1 -1
  119. package/dist/sqlite-db-helper.js +16 -0
  120. package/dist/sqlite-db-helper.js.map +1 -1
  121. package/dist/sqlite-types.d.ts +4 -4
  122. package/dist/sqlite-types.d.ts.map +1 -1
  123. package/dist/sync/ClientSessionSyncProcessor.d.ts +2 -2
  124. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  125. package/dist/sync/ClientSessionSyncProcessor.js +8 -7
  126. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  127. package/dist/sync/sync.d.ts.map +1 -1
  128. package/dist/sync/sync.js.map +1 -1
  129. package/dist/util.d.ts +3 -3
  130. package/dist/util.d.ts.map +1 -1
  131. package/dist/util.js.map +1 -1
  132. package/dist/version.d.ts +1 -1
  133. package/dist/version.js +1 -1
  134. package/package.json +4 -4
  135. package/src/ClientSessionLeaderThreadProxy.ts +2 -2
  136. package/src/adapter-types.ts +6 -4
  137. package/src/devtools/devtools-messages-leader.ts +3 -3
  138. package/src/leader-thread/LeaderSyncProcessor.ts +3 -1
  139. package/src/leader-thread/make-leader-thread-layer.ts +26 -7
  140. package/src/leader-thread/shutdown-channel.ts +2 -2
  141. package/src/leader-thread/types.ts +1 -1
  142. package/src/materializer-helper.ts +5 -11
  143. package/src/rematerialize-from-eventlog.ts +2 -2
  144. package/src/schema/EventSequenceNumber.test.ts +2 -2
  145. package/src/schema/EventSequenceNumber.ts +8 -2
  146. package/src/schema/LiveStoreEvent.ts +7 -1
  147. package/src/schema/schema.ts +4 -0
  148. package/src/schema/state/sqlite/client-document-def.test.ts +89 -1
  149. package/src/schema/state/sqlite/client-document-def.ts +7 -4
  150. package/src/schema/state/sqlite/column-annotations.test.ts +212 -0
  151. package/src/schema/state/sqlite/column-annotations.ts +77 -0
  152. package/src/schema/state/sqlite/column-def.test.ts +665 -0
  153. package/src/schema/state/sqlite/column-def.ts +290 -0
  154. package/src/schema/state/sqlite/column-spec.test.ts +223 -0
  155. package/src/schema/state/sqlite/column-spec.ts +42 -0
  156. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +2 -0
  157. package/src/schema/state/sqlite/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +15 -0
  158. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +20 -2
  159. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +1 -0
  160. package/src/schema/state/sqlite/mod.ts +2 -0
  161. package/src/schema/state/sqlite/query-builder/api.ts +4 -3
  162. package/src/schema/state/sqlite/query-builder/astToSql.ts +9 -7
  163. package/src/schema/state/sqlite/table-def.test.ts +241 -0
  164. package/src/schema/state/sqlite/table-def.ts +222 -16
  165. package/src/schema-management/common.ts +10 -3
  166. package/src/schema-management/migrations.ts +4 -33
  167. package/src/sqlite-db-helper.ts +19 -1
  168. package/src/sqlite-types.ts +4 -4
  169. package/src/sync/ClientSessionSyncProcessor.ts +13 -8
  170. package/src/sync/sync.ts +2 -0
  171. package/src/util.ts +7 -2
  172. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAQhD,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;IAKxB,sBAAsB;;;;;;;;;;;;;;;;;;;UAGxB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;IAKjC,sBAAsB;;;;;;;;;;;;;;;;;;;UAGxB,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAWpC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAE3E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;IA1C1B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IActB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BsF,CAAA;AAEhH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,YAAkE,CAAA;AAItH,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU1B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAY9B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,iBAAiB,4BAA4B,CAAA;AAG1D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;UAK1B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA5B7B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BiD,CAAA"}
1
+ {"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAQhD,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;IAKxB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;UAGxB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;IAKjC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;UAGxB,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAWpC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAE3E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;IA1C1B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IActB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BsF,CAAA;AAEhH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,YAAkE,CAAA;AAItH,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU1B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAY9B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,iBAAiB,4BAA4B,CAAA;AAG1D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;UAK1B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA5B7B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BiD,CAAA"}
@@ -1,166 +1,173 @@
1
- import type { Schema, Types } from "@livestore/utils/effect";
2
- import type { Nullable } from "../../../../../utils/dist/mod.ts";
3
- import type { SqliteDsl } from "./db-schema/mod.ts";
4
- import type { QueryBuilder } from "./query-builder/mod.ts";
5
- export declare const blob: SqliteDsl.ColDefFn<"blob">,
6
- boolean: SqliteDsl.SpecializedColDefFn<"integer", false, boolean>,
7
- column: <TColumnType extends SqliteDsl.FieldColumnType>(
8
- columnType: TColumnType,
9
- ) => SqliteDsl.ColDefFn<TColumnType>,
10
- datetime: SqliteDsl.SpecializedColDefFn<"text", false, Date>,
11
- integer: SqliteDsl.ColDefFn<"integer">,
12
- isColumnDefinition: (
13
- value: unknown,
14
- ) => value is SqliteDsl.ColumnDefinition<any, any>,
15
- json: SqliteDsl.SpecializedColDefFn<"text", true, unknown>,
16
- real: SqliteDsl.ColDefFn<"real">,
17
- text: SqliteDsl.ColDefFn<"text">;
18
- export type StateType = "singleton" | "dynamic";
19
- export type DefaultSqliteTableDef = SqliteDsl.TableDefinition<
20
- string,
21
- SqliteDsl.Columns
22
- >;
23
- export type DefaultSqliteTableDefConstrained = SqliteDsl.TableDefinition<
24
- string,
25
- SqliteDsl.ConstraintColumns
26
- >;
1
+ import { type Nullable } from '@livestore/utils';
2
+ import { type Schema, type Types } from '@livestore/utils/effect';
3
+ import { getColumnDefForSchema } from './column-def.ts';
4
+ import { SqliteDsl } from './db-schema/mod.ts';
5
+ import type { QueryBuilder } from './query-builder/mod.ts';
6
+ export declare const blob: SqliteDsl.ColDefFn<"blob">, boolean: SqliteDsl.SpecializedColDefFn<"integer", false, boolean>, column: <TColumnType extends SqliteDsl.FieldColumnType>(columnType: TColumnType) => SqliteDsl.ColDefFn<TColumnType>, datetime: SqliteDsl.SpecializedColDefFn<"text", false, Date>, integer: SqliteDsl.ColDefFn<"integer">, isColumnDefinition: (value: unknown) => value is SqliteDsl.ColumnDefinition.Any, json: SqliteDsl.SpecializedColDefFn<"text", true, unknown>, real: SqliteDsl.ColDefFn<"real">, text: SqliteDsl.ColDefFn<"text">;
7
+ export { getColumnDefForSchema };
8
+ export type StateType = 'singleton' | 'dynamic';
9
+ export type DefaultSqliteTableDef = SqliteDsl.TableDefinition<string, SqliteDsl.Columns>;
10
+ export type DefaultSqliteTableDefConstrained = SqliteDsl.TableDefinition<string, SqliteDsl.ConstraintColumns>;
27
11
  export declare const TableDefInternalsSymbol: unique symbol;
28
12
  export type TableDefInternalsSymbol = typeof TableDefInternalsSymbol;
29
- export type TableDefBase<
30
- TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained,
31
- TOptions extends TableOptions = TableOptions,
32
- > = {
33
- sqliteDef: TSqliteDef;
34
- options: TOptions;
35
- rowSchema: SqliteDsl.StructSchemaForColumns<TSqliteDef["columns"]>;
36
- insertSchema: SqliteDsl.InsertStructSchemaForColumns<TSqliteDef["columns"]>;
13
+ export type TableDefBase<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained, TOptions extends TableOptions = TableOptions> = {
14
+ sqliteDef: TSqliteDef;
15
+ options: TOptions;
16
+ rowSchema: SqliteDsl.StructSchemaForColumns<TSqliteDef['columns']>;
17
+ insertSchema: SqliteDsl.InsertStructSchemaForColumns<TSqliteDef['columns']>;
37
18
  };
38
- export type TableDef<
39
- TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained,
40
- TOptions extends TableOptions = TableOptions,
41
- TSchema = Schema.Schema<
42
- SqliteDsl.AnyIfConstained<
43
- TSqliteDef["columns"],
44
- {
45
- readonly [K in keyof TSqliteDef["columns"]]: TSqliteDef["columns"][K]["schema"]["Type"];
46
- }
47
- >,
48
- SqliteDsl.AnyIfConstained<
49
- TSqliteDef["columns"],
50
- {
51
- readonly [K in keyof TSqliteDef["columns"]]: TSqliteDef["columns"][K]["schema"]["Encoded"];
52
- }
53
- >
54
- >,
55
- > = {
56
- sqliteDef: TSqliteDef;
57
- options: TOptions;
58
- rowSchema: TSchema;
59
- insertSchema: SqliteDsl.InsertStructSchemaForColumns<TSqliteDef["columns"]>;
60
- readonly Type: Schema.Schema.Type<TSchema>;
61
- readonly Encoded: Schema.Schema.Encoded<TSchema>;
62
- } & QueryBuilder<
63
- ReadonlyArray<Schema.Schema.Type<TSchema>>,
64
- TableDefBase<TSqliteDef & {}, TOptions>
65
- >;
19
+ export type TableDef<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained, TOptions extends TableOptions = TableOptions, TSchema = Schema.Schema<SqliteDsl.AnyIfConstained<TSqliteDef['columns'], {
20
+ readonly [K in keyof TSqliteDef['columns']]: TSqliteDef['columns'][K]['schema']['Type'];
21
+ }>, SqliteDsl.AnyIfConstained<TSqliteDef['columns'], {
22
+ readonly [K in keyof TSqliteDef['columns']]: TSqliteDef['columns'][K]['schema']['Encoded'];
23
+ }>>> = {
24
+ sqliteDef: TSqliteDef;
25
+ options: TOptions;
26
+ rowSchema: TSchema;
27
+ insertSchema: SqliteDsl.InsertStructSchemaForColumns<TSqliteDef['columns']>;
28
+ readonly Type: Schema.Schema.Type<TSchema>;
29
+ readonly Encoded: Schema.Schema.Encoded<TSchema>;
30
+ } & QueryBuilder<ReadonlyArray<Schema.Schema.Type<TSchema>>, TableDefBase<TSqliteDef & {}, TOptions>>;
66
31
  export type TableOptionsInput = Partial<{
67
- indexes: SqliteDsl.Index[];
32
+ indexes: SqliteDsl.Index[];
68
33
  }>;
69
34
  export declare namespace TableDef {
70
- type Any = TableDef<any, any>;
35
+ type Any = TableDef<any, any>;
71
36
  }
72
37
  export type TableOptions = {
73
- /** Derived based on whether the table definition has one or more columns (besides the `id` column) */
74
- readonly isClientDocumentTable: boolean;
38
+ /** Derived based on whether the table definition has one or more columns (besides the `id` column) */
39
+ readonly isClientDocumentTable: boolean;
75
40
  };
76
- export declare const table: <
77
- TName extends string,
78
- TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>,
79
- const TOptionsInput extends TableOptionsInput = TableOptionsInput,
80
- >(
81
- args: {
82
- name: TName;
83
- columns: TColumns;
84
- } & Partial<TOptionsInput>,
85
- ) => TableDef<SqliteTableDefForInput<TName, TColumns>, WithDefaults<TColumns>>;
41
+ /**
42
+ * Creates a SQLite table definition from columns or an Effect Schema.
43
+ *
44
+ * This function supports two main ways to define a table:
45
+ * 1. Using explicit column definitions
46
+ * 2. Using an Effect Schema (either the `name` property needs to be provided or the schema needs to have a title/identifier)
47
+ *
48
+ * ```ts
49
+ * // Using explicit columns
50
+ * const usersTable = State.SQLite.table({
51
+ * name: 'users',
52
+ * columns: {
53
+ * id: State.SQLite.text({ primaryKey: true }),
54
+ * name: State.SQLite.text({ nullable: false }),
55
+ * email: State.SQLite.text({ nullable: false }),
56
+ * age: State.SQLite.integer({ nullable: true }),
57
+ * },
58
+ * })
59
+ * ```
60
+ *
61
+ * ```ts
62
+ * // Using Effect Schema with annotations
63
+ * import { Schema } from '@livestore/utils/effect'
64
+ *
65
+ * const UserSchema = Schema.Struct({
66
+ * id: Schema.Int.pipe(State.SQLite.withPrimaryKey).pipe(State.SQLite.withAutoIncrement),
67
+ * email: Schema.String.pipe(State.SQLite.withUnique),
68
+ * name: Schema.String,
69
+ * active: Schema.Boolean.pipe(State.SQLite.withDefault(true)),
70
+ * createdAt: Schema.optional(Schema.Date),
71
+ * })
72
+ *
73
+ * // Option 1: With explicit name
74
+ * const usersTable = State.SQLite.table({
75
+ * name: 'users',
76
+ * schema: UserSchema,
77
+ * })
78
+ *
79
+ * // Option 2: With name from schema annotation (title or identifier)
80
+ * const AnnotatedUserSchema = UserSchema.annotations({ title: 'users' })
81
+ * const usersTable2 = State.SQLite.table({
82
+ * schema: AnnotatedUserSchema,
83
+ * })
84
+ * ```
85
+ *
86
+ * ```ts
87
+ * // Adding indexes
88
+ * const PostSchema = Schema.Struct({
89
+ * id: Schema.String.pipe(State.SQLite.withPrimaryKey),
90
+ * title: Schema.String,
91
+ * authorId: Schema.String,
92
+ * createdAt: Schema.Date,
93
+ * }).annotations({ identifier: 'posts' })
94
+ *
95
+ * const postsTable = State.SQLite.table({
96
+ * schema: PostSchema,
97
+ * indexes: [
98
+ * { name: 'idx_posts_author', columns: ['authorId'] },
99
+ * { name: 'idx_posts_created', columns: ['createdAt'], isUnique: false },
100
+ * ],
101
+ * })
102
+ * ```
103
+ *
104
+ * @remarks
105
+ * - Primary key columns are automatically non-nullable
106
+ * - Columns with `State.SQLite.withUnique` annotation automatically get unique indexes
107
+ * - The `State.SQLite.withAutoIncrement` annotation only works with integer primary keys
108
+ * - Default values can be literal values or SQL expressions
109
+ * - When using Effect Schema without explicit name, the schema must have a title or identifier annotation
110
+ */
111
+ export declare function table<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any, const TOptionsInput extends TableOptionsInput = TableOptionsInput>(args: {
112
+ name: TName;
113
+ columns: TColumns;
114
+ } & Partial<TOptionsInput>): TableDef<SqliteTableDefForInput<TName, TColumns>, WithDefaults<TColumns>>;
115
+ export declare function table<TName extends string, TSchema extends Schema.Schema.AnyNoContext, const TOptionsInput extends TableOptionsInput = TableOptionsInput>(args: {
116
+ name: TName;
117
+ schema: TSchema;
118
+ } & Partial<TOptionsInput>): TableDef<SqliteTableDefForSchemaInput<TName, Schema.Schema.Type<TSchema>, Schema.Schema.Encoded<TSchema>, TSchema>, TableOptions>;
119
+ export declare function table<TSchema extends Schema.Schema.AnyNoContext, const TOptionsInput extends TableOptionsInput = TableOptionsInput>(args: {
120
+ schema: TSchema;
121
+ } & Partial<TOptionsInput>): TableDef<SqliteTableDefForSchemaInput<string, Schema.Schema.Type<TSchema>, Schema.Schema.Encoded<TSchema>, TSchema>, TableOptions>;
86
122
  export declare namespace FromTable {
87
- type RowDecoded<TTableDef extends TableDefBase> = Types.Simplify<
88
- Nullable<Pick<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>> &
89
- Omit<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>
90
- >;
91
- type NullableColumnNames<TTableDef extends TableDefBase> =
92
- FromColumns.NullableColumnNames<TTableDef["sqliteDef"]["columns"]>;
93
- type Columns<TTableDef extends TableDefBase> = {
94
- [K in keyof TTableDef["sqliteDef"]["columns"]]: TTableDef["sqliteDef"]["columns"][K]["columnType"];
95
- };
96
- type RowEncodeNonNullable<TTableDef extends TableDefBase> = {
97
- [K in keyof TTableDef["sqliteDef"]["columns"]]: Schema.Schema.Encoded<
98
- TTableDef["sqliteDef"]["columns"][K]["schema"]
99
- >;
100
- };
101
- type RowEncoded<TTableDef extends TableDefBase> = Types.Simplify<
102
- Nullable<
103
- Pick<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>
104
- > &
105
- Omit<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>
106
- >;
107
- type RowDecodedAll<TTableDef extends TableDefBase> = {
108
- [K in keyof TTableDef["sqliteDef"]["columns"]]: Schema.Schema.Type<
109
- TTableDef["sqliteDef"]["columns"][K]["schema"]
110
- >;
111
- };
123
+ type RowDecoded<TTableDef extends TableDefBase> = Types.Simplify<Nullable<Pick<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>>;
124
+ type NullableColumnNames<TTableDef extends TableDefBase> = FromColumns.NullableColumnNames<TTableDef['sqliteDef']['columns']>;
125
+ type Columns<TTableDef extends TableDefBase> = {
126
+ [K in keyof TTableDef['sqliteDef']['columns']]: TTableDef['sqliteDef']['columns'][K]['columnType'];
127
+ };
128
+ type RowEncodeNonNullable<TTableDef extends TableDefBase> = {
129
+ [K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Encoded<TTableDef['sqliteDef']['columns'][K]['schema']>;
130
+ };
131
+ type RowEncoded<TTableDef extends TableDefBase> = Types.Simplify<Nullable<Pick<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>>;
132
+ type RowDecodedAll<TTableDef extends TableDefBase> = {
133
+ [K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Type<TTableDef['sqliteDef']['columns'][K]['schema']>;
134
+ };
112
135
  }
113
136
  export declare namespace FromColumns {
114
- type RowDecoded<TColumns extends SqliteDsl.Columns> = Types.Simplify<
115
- Nullable<Pick<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>> &
116
- Omit<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>
117
- >;
118
- type RowDecodedAll<TColumns extends SqliteDsl.Columns> = {
119
- [K in keyof TColumns]: Schema.Schema.Type<TColumns[K]["schema"]>;
120
- };
121
- type RowEncoded<TColumns extends SqliteDsl.Columns> = Types.Simplify<
122
- Nullable<
123
- Pick<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>
124
- > &
125
- Omit<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>
126
- >;
127
- type RowEncodeNonNullable<TColumns extends SqliteDsl.Columns> = {
128
- [K in keyof TColumns]: Schema.Schema.Encoded<TColumns[K]["schema"]>;
129
- };
130
- type NullableColumnNames<TColumns extends SqliteDsl.Columns> = keyof {
131
- [K in keyof TColumns as TColumns[K]["default"] extends true
132
- ? K
133
- : never]: {};
134
- };
135
- type RequiredInsertColumnNames<TColumns extends SqliteDsl.Columns> =
136
- SqliteDsl.FromColumns.RequiredInsertColumnNames<TColumns>;
137
- type InsertRowDecoded<TColumns extends SqliteDsl.Columns> =
138
- SqliteDsl.FromColumns.InsertRowDecoded<TColumns>;
137
+ type RowDecoded<TColumns extends SqliteDsl.Columns> = Types.Simplify<Nullable<Pick<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>>;
138
+ type RowDecodedAll<TColumns extends SqliteDsl.Columns> = {
139
+ [K in keyof TColumns]: Schema.Schema.Type<TColumns[K]['schema']>;
140
+ };
141
+ type RowEncoded<TColumns extends SqliteDsl.Columns> = Types.Simplify<Nullable<Pick<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>>;
142
+ type RowEncodeNonNullable<TColumns extends SqliteDsl.Columns> = {
143
+ [K in keyof TColumns]: Schema.Schema.Encoded<TColumns[K]['schema']>;
144
+ };
145
+ type NullableColumnNames<TColumns extends SqliteDsl.Columns> = keyof {
146
+ [K in keyof TColumns as TColumns[K]['default'] extends true ? K : never]: {};
147
+ };
148
+ type RequiredInsertColumnNames<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.RequiredInsertColumnNames<TColumns>;
149
+ type InsertRowDecoded<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.InsertRowDecoded<TColumns>;
139
150
  }
140
- export type SqliteTableDefForInput<
141
- TName extends string,
142
- TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>,
143
- > = SqliteDsl.TableDefinition<TName, PrettifyFlat<ToColumns<TColumns>>>;
144
- type WithDefaults<
145
- TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>,
146
- > = {
147
- isClientDocumentTable: false;
148
- requiredInsertColumnNames: SqliteDsl.FromColumns.RequiredInsertColumnNames<
149
- ToColumns<TColumns>
150
- >;
151
+ export type SqliteTableDefForInput<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any> = SqliteDsl.TableDefinition<TName, PrettifyFlat<ToColumns<TColumns>>>;
152
+ export type SqliteTableDefForSchemaInput<TName extends string, TType, TEncoded, _TSchema = any> = TableDefInput.ForSchema<TName, TType, TEncoded, _TSchema>;
153
+ export type WithDefaults<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any> = {
154
+ isClientDocumentTable: false;
155
+ requiredInsertColumnNames: SqliteDsl.FromColumns.RequiredInsertColumnNames<ToColumns<TColumns>>;
151
156
  };
152
- export type PrettifyFlat<T> = T extends infer U
153
- ? {
154
- [K in keyof U]: U[K];
155
- }
156
- : never;
157
- type ToColumns<
158
- TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>,
159
- > = TColumns extends SqliteDsl.Columns
160
- ? TColumns
161
- : TColumns extends SqliteDsl.ColumnDefinition<any, any>
162
- ? {
163
- value: TColumns;
164
- }
165
- : never;
166
- //# sourceMappingURL=table-def.d.ts.map
157
+ export type PrettifyFlat<T> = T extends infer U ? {
158
+ [K in keyof U]: U[K];
159
+ } : never;
160
+ export type ToColumns<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any> = TColumns extends SqliteDsl.Columns ? TColumns : TColumns extends SqliteDsl.ColumnDefinition.Any ? {
161
+ value: TColumns;
162
+ } : never;
163
+ export declare namespace SchemaToColumns {
164
+ type ColumnDefForType<TEncoded, TType> = SqliteDsl.ColumnDefinition<TEncoded, TType>;
165
+ type FromTypes<TType, TEncoded> = TType extends Record<string, any> ? TEncoded extends Record<string, any> ? {
166
+ [K in keyof TType & keyof TEncoded]: ColumnDefForType<TEncoded[K], TType[K]>;
167
+ } : SqliteDsl.Columns : SqliteDsl.Columns;
168
+ }
169
+ export declare namespace TableDefInput {
170
+ type ForColumns<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any> = SqliteDsl.TableDefinition<TName, PrettifyFlat<ToColumns<TColumns>>>;
171
+ type ForSchema<TName extends string, TType, TEncoded, _TSchema = any> = SqliteDsl.TableDefinition<TName, SchemaToColumns.FromTypes<TType, TEncoded>>;
172
+ }
173
+ //# sourceMappingURL=table-def.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/table-def.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/table-def.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,55 @@
1
+ import { shouldNeverHappen } from '@livestore/utils';
2
+ import { Option, SchemaAST } from '@livestore/utils/effect';
3
+ import { getColumnDefForSchema, schemaFieldsToColumns } from "./column-def.js";
1
4
  import { SqliteDsl } from "./db-schema/mod.js";
2
5
  import { makeQueryBuilder, QueryBuilderAstSymbol, QueryBuilderTypeId } from "./query-builder/mod.js";
3
6
  export const { blob, boolean, column, datetime, integer, isColumnDefinition, json, real, text } = SqliteDsl;
7
+ // Re-export the column definition function
8
+ export { getColumnDefForSchema };
4
9
  // TODO use to hide table def internals
5
10
  export const TableDefInternalsSymbol = Symbol('TableDefInternals');
6
- export const table = (args) => {
7
- const { name, columns: columnOrColumns, ...options } = args;
8
- const tablePath = name;
11
+ // Implementation
12
+ export function table(args) {
13
+ const { ...options } = args;
14
+ let tableName;
15
+ let columns;
16
+ let additionalIndexes = [];
17
+ if ('columns' in args) {
18
+ tableName = args.name;
19
+ const columnOrColumns = args.columns;
20
+ columns = (SqliteDsl.isColumnDefinition(columnOrColumns) ? { value: columnOrColumns } : columnOrColumns);
21
+ additionalIndexes = [];
22
+ }
23
+ else if ('schema' in args) {
24
+ const result = schemaFieldsToColumns(SchemaAST.getPropertySignatures(args.schema.ast));
25
+ columns = result.columns;
26
+ // We'll set tableName first, then use it for index names
27
+ let tempTableName;
28
+ // If name is provided, use it; otherwise extract from schema annotations
29
+ if ('name' in args) {
30
+ tempTableName = args.name;
31
+ }
32
+ else {
33
+ // Use title or identifier, with preference for title
34
+ tempTableName = SchemaAST.getTitleAnnotation(args.schema.ast).pipe(Option.orElse(() => SchemaAST.getIdentifierAnnotation(args.schema.ast)), Option.getOrElse(() => shouldNeverHappen('When using schema without explicit name, the schema must have a title or identifier annotation')));
35
+ }
36
+ tableName = tempTableName;
37
+ // Create unique indexes for columns with unique annotation
38
+ additionalIndexes = (result.uniqueColumns || []).map((columnName) => ({
39
+ name: `idx_${tableName}_${columnName}_unique`,
40
+ columns: [columnName],
41
+ isUnique: true,
42
+ }));
43
+ }
44
+ else {
45
+ return shouldNeverHappen('Either `columns` or `schema` must be provided when calling `table()`');
46
+ }
9
47
  const options_ = {
10
48
  isClientDocumentTable: false,
11
49
  };
12
- const columns = (SqliteDsl.isColumnDefinition(columnOrColumns) ? { value: columnOrColumns } : columnOrColumns);
13
- const sqliteDef = SqliteDsl.table(tablePath, columns, options?.indexes ?? []);
50
+ // Combine user-provided indexes with unique column indexes
51
+ const allIndexes = [...(options?.indexes ?? []), ...additionalIndexes];
52
+ const sqliteDef = SqliteDsl.table(tableName, columns, allIndexes);
14
53
  const rowSchema = SqliteDsl.structSchemaForTable(sqliteDef);
15
54
  const insertSchema = SqliteDsl.insertStructSchemaForTable(sqliteDef);
16
55
  const tableDef = {
@@ -32,5 +71,5 @@ export const table = (args) => {
32
71
  // @ts-expect-error TODO properly type this
33
72
  tableDef[QueryBuilderTypeId] = query[QueryBuilderTypeId];
34
73
  return tableDef;
35
- };
74
+ }
36
75
  //# sourceMappingURL=table-def.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-def.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/table-def.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAEpG,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,SAAS,CAAA;AAO3G,uCAAuC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAqDlE,MAAM,CAAC,MAAM,KAAK,GAAG,CAKnB,IAG0B,EACiD,EAAE;IAC7E,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAA;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAA;IAEtB,MAAM,QAAQ,GAAiB;QAC7B,qBAAqB,EAAE,KAAK;KAC7B,CAAA;IAED,MAAM,OAAO,GAAG,CACd,SAAS,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,eAAe,CACxE,CAAA;IAEtB,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA;IAE7E,MAAM,SAAS,GAAG,SAAS,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAC3D,MAAM,YAAY,GAAG,SAAS,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAA;IACpE,MAAM,QAAQ,GAAG;QACf,SAAS;QACT,OAAO,EAAE,QAAQ;QACjB,SAAS;QACT,YAAY;KACU,CAAA;IAExB,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IACxC,yBAAyB;IAEzB,6DAA6D;IAC7D,sDAAsD;IACtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,gDAAgD;QAChD,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IAED,2CAA2C;IAC3C,QAAQ,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,qBAAqB,CAAC,CAAA;IAC9D,2CAA2C;IAC3C,QAAQ,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAExD,OAAO,QAAe,CAAA;AACxB,CAAC,CAAA"}
1
+ {"version":3,"file":"table-def.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/table-def.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=table-def.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-def.test.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/table-def.test.ts"],"names":[],"mappings":""}