@livestore/common 0.3.2-dev.13 → 0.3.2-dev.14

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 (97) 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 +1 -1
  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/types.d.ts +1 -1
  13. package/dist/leader-thread/types.d.ts.map +1 -1
  14. package/dist/schema/LiveStoreEvent.d.ts +5 -5
  15. package/dist/schema/LiveStoreEvent.js.map +1 -1
  16. package/dist/schema/state/sqlite/column-annotations.d.ts +34 -0
  17. package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -0
  18. package/dist/schema/state/sqlite/column-annotations.js +50 -0
  19. package/dist/schema/state/sqlite/column-annotations.js.map +1 -0
  20. package/dist/schema/state/sqlite/column-annotations.test.d.ts +2 -0
  21. package/dist/schema/state/sqlite/column-annotations.test.d.ts.map +1 -0
  22. package/dist/schema/state/sqlite/column-annotations.test.js +179 -0
  23. package/dist/schema/state/sqlite/column-annotations.test.js.map +1 -0
  24. package/dist/schema/state/sqlite/column-spec.d.ts +11 -0
  25. package/dist/schema/state/sqlite/column-spec.d.ts.map +1 -0
  26. package/dist/schema/state/sqlite/column-spec.js +39 -0
  27. package/dist/schema/state/sqlite/column-spec.js.map +1 -0
  28. package/dist/schema/state/sqlite/column-spec.test.d.ts +2 -0
  29. package/dist/schema/state/sqlite/column-spec.test.d.ts.map +1 -0
  30. package/dist/schema/state/sqlite/column-spec.test.js +146 -0
  31. package/dist/schema/state/sqlite/column-spec.test.js.map +1 -0
  32. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +1 -0
  33. package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
  34. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +1 -0
  35. package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
  36. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +17 -4
  37. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -1
  38. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +2 -0
  39. package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -1
  40. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
  41. package/dist/schema/state/sqlite/db-schema/dsl/mod.js +1 -0
  42. package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
  43. package/dist/schema/state/sqlite/mod.d.ts +2 -0
  44. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  45. package/dist/schema/state/sqlite/mod.js +2 -0
  46. package/dist/schema/state/sqlite/mod.js.map +1 -1
  47. package/dist/schema/state/sqlite/system-tables.d.ts +464 -46
  48. package/dist/schema/state/sqlite/system-tables.d.ts.map +1 -1
  49. package/dist/schema/state/sqlite/table-def.d.ts +100 -9
  50. package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
  51. package/dist/schema/state/sqlite/table-def.js +227 -5
  52. package/dist/schema/state/sqlite/table-def.js.map +1 -1
  53. package/dist/schema/state/sqlite/table-def.test.d.ts +2 -0
  54. package/dist/schema/state/sqlite/table-def.test.d.ts.map +1 -0
  55. package/dist/schema/state/sqlite/table-def.test.js +625 -0
  56. package/dist/schema/state/sqlite/table-def.test.js.map +1 -0
  57. package/dist/schema-management/migrations.d.ts +0 -1
  58. package/dist/schema-management/migrations.d.ts.map +1 -1
  59. package/dist/schema-management/migrations.js +3 -29
  60. package/dist/schema-management/migrations.js.map +1 -1
  61. package/dist/sqlite-db-helper.d.ts +1 -1
  62. package/dist/sqlite-db-helper.d.ts.map +1 -1
  63. package/dist/sqlite-db-helper.js.map +1 -1
  64. package/dist/sqlite-types.d.ts +4 -4
  65. package/dist/sqlite-types.d.ts.map +1 -1
  66. package/dist/sync/ClientSessionSyncProcessor.d.ts +2 -2
  67. package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
  68. package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
  69. package/dist/util.d.ts +3 -3
  70. package/dist/util.d.ts.map +1 -1
  71. package/dist/util.js.map +1 -1
  72. package/dist/version.d.ts +1 -1
  73. package/dist/version.js +1 -1
  74. package/package.json +4 -4
  75. package/src/ClientSessionLeaderThreadProxy.ts +2 -2
  76. package/src/adapter-types.ts +3 -1
  77. package/src/devtools/devtools-messages-leader.ts +3 -3
  78. package/src/leader-thread/types.ts +1 -1
  79. package/src/schema/LiveStoreEvent.ts +1 -1
  80. package/src/schema/state/sqlite/column-annotations.test.ts +212 -0
  81. package/src/schema/state/sqlite/column-annotations.ts +77 -0
  82. package/src/schema/state/sqlite/column-spec.test.ts +223 -0
  83. package/src/schema/state/sqlite/column-spec.ts +42 -0
  84. package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +2 -0
  85. package/src/schema/state/sqlite/db-schema/dsl/__snapshots__/field-defs.test.ts.snap +15 -0
  86. package/src/schema/state/sqlite/db-schema/dsl/field-defs.ts +20 -2
  87. package/src/schema/state/sqlite/db-schema/dsl/mod.ts +1 -0
  88. package/src/schema/state/sqlite/mod.ts +2 -0
  89. package/src/schema/state/sqlite/table-def.test.ts +783 -0
  90. package/src/schema/state/sqlite/table-def.ts +440 -16
  91. package/src/schema-management/migrations.ts +3 -32
  92. package/src/sqlite-db-helper.ts +1 -1
  93. package/src/sqlite-types.ts +4 -4
  94. package/src/sync/ClientSessionSyncProcessor.ts +5 -2
  95. package/src/util.ts +7 -2
  96. package/src/version.ts +1 -1
  97. package/src/schema-management/migrations.test.ts +0 -65
@@ -9,9 +9,15 @@ export type ColumnDefinition<TEncoded, TDecoded> = {
9
9
  readonly nullable: boolean
10
10
  /** @default false */
11
11
  readonly primaryKey: boolean
12
+ /** @default false */
13
+ readonly autoIncrement: boolean
14
+ }
15
+
16
+ export declare namespace ColumnDefinition {
17
+ export type Any = ColumnDefinition<any, any>
12
18
  }
13
19
 
14
- export const isColumnDefinition = (value: unknown): value is ColumnDefinition<any, any> => {
20
+ export const isColumnDefinition = (value: unknown): value is ColumnDefinition.Any => {
15
21
  const validColumnTypes = ['text', 'integer', 'real', 'blob'] as const
16
22
  return (
17
23
  typeof value === 'object' &&
@@ -26,6 +32,7 @@ export type ColumnDefinitionInput = {
26
32
  readonly default?: unknown | NoDefault
27
33
  readonly nullable?: boolean
28
34
  readonly primaryKey?: boolean
35
+ readonly autoIncrement?: boolean
29
36
  }
30
37
 
31
38
  export const NoDefault = Symbol.for('NoDefault')
@@ -46,6 +53,7 @@ export type ColDefFn<TColumnType extends FieldColumnType> = {
46
53
  default: Option.None<never>
47
54
  nullable: false
48
55
  primaryKey: false
56
+ autoIncrement: false
49
57
  }
50
58
  <
51
59
  TEncoded extends DefaultEncodedForColumnType<TColumnType>,
@@ -53,11 +61,13 @@ export type ColDefFn<TColumnType extends FieldColumnType> = {
53
61
  const TNullable extends boolean = false,
54
62
  const TDefault extends TDecoded | SqlDefaultValue | NoDefault | (TNullable extends true ? null : never) = NoDefault,
55
63
  const TPrimaryKey extends boolean = false,
64
+ const TAutoIncrement extends boolean = false,
56
65
  >(args: {
57
66
  schema?: Schema.Schema<TDecoded, TEncoded>
58
67
  default?: TDefault
59
68
  nullable?: TNullable
60
69
  primaryKey?: TPrimaryKey
70
+ autoIncrement?: TAutoIncrement
61
71
  }): {
62
72
  columnType: TColumnType
63
73
  schema: TNullable extends true
@@ -66,6 +76,7 @@ export type ColDefFn<TColumnType extends FieldColumnType> = {
66
76
  default: TDefault extends NoDefault ? Option.None<never> : Option.Some<NoInfer<TDefault>>
67
77
  nullable: NoInfer<TNullable>
68
78
  primaryKey: NoInfer<TPrimaryKey>
79
+ autoIncrement: NoInfer<TAutoIncrement>
69
80
  }
70
81
  }
71
82
 
@@ -83,6 +94,7 @@ const makeColDef =
83
94
  default: default_,
84
95
  nullable,
85
96
  primaryKey: def?.primaryKey ?? false,
97
+ autoIncrement: def?.autoIncrement ?? false,
86
98
  } as any
87
99
  }
88
100
 
@@ -115,12 +127,14 @@ export type SpecializedColDefFn<
115
127
  default: Option.None<never>
116
128
  nullable: false
117
129
  primaryKey: false
130
+ autoIncrement: false
118
131
  }
119
132
  <
120
133
  TDecoded = TBaseDecoded,
121
134
  const TNullable extends boolean = false,
122
135
  const TDefault extends TDecoded | NoDefault | (TNullable extends true ? null : never) = NoDefault,
123
136
  const TPrimaryKey extends boolean = false,
137
+ const TAutoIncrement extends boolean = false,
124
138
  >(
125
139
  args: TAllowsCustomSchema extends true
126
140
  ? {
@@ -128,11 +142,13 @@ export type SpecializedColDefFn<
128
142
  default?: TDefault
129
143
  nullable?: TNullable
130
144
  primaryKey?: TPrimaryKey
145
+ autoIncrement?: TAutoIncrement
131
146
  }
132
147
  : {
133
148
  default?: TDefault
134
149
  nullable?: TNullable
135
150
  primaryKey?: TPrimaryKey
151
+ autoIncrement?: TAutoIncrement
136
152
  },
137
153
  ): {
138
154
  columnType: TColumnType
@@ -142,6 +158,7 @@ export type SpecializedColDefFn<
142
158
  default: TDefault extends NoDefault ? Option.None<never> : Option.Some<TDefault>
143
159
  nullable: NoInfer<TNullable>
144
160
  primaryKey: NoInfer<TPrimaryKey>
161
+ autoIncrement: NoInfer<TAutoIncrement>
145
162
  }
146
163
  }
147
164
 
@@ -176,6 +193,7 @@ const makeSpecializedColDef: MakeSpecializedColDefFn = (columnType, opts) => (de
176
193
  default: default_,
177
194
  nullable,
178
195
  primaryKey: def?.primaryKey ?? false,
196
+ autoIncrement: def?.autoIncrement ?? false,
179
197
  } as any
180
198
  }
181
199
 
@@ -214,7 +232,7 @@ export type DefaultEncodedForColumnType<TColumnType extends FieldColumnType> = T
214
232
  : TColumnType extends 'real'
215
233
  ? number
216
234
  : TColumnType extends 'blob'
217
- ? Uint8Array
235
+ ? Uint8Array<ArrayBuffer>
218
236
  : never
219
237
 
220
238
  export const defaultSchemaForColumnType = <TColumnType extends FieldColumnType>(
@@ -92,6 +92,7 @@ const columsToAst = (columns: Columns): ReadonlyArray<SqliteAst.Column> => {
92
92
  default: column.default as any,
93
93
  nullable: column.nullable ?? false,
94
94
  primaryKey: column.primaryKey ?? false,
95
+ autoIncrement: column.autoIncrement ?? false,
95
96
  type: { _tag: column.columnType },
96
97
  } satisfies SqliteAst.Column
97
98
  })
@@ -16,6 +16,8 @@ export {
16
16
  clientDocument,
17
17
  tableIsClientDocumentTable,
18
18
  } from './client-document-def.ts'
19
+ export * from './column-annotations.ts'
20
+ export * from './column-spec.ts'
19
21
  export * from './table-def.ts'
20
22
 
21
23
  export const makeState = <TStateInput extends InputState>(inputSchema: TStateInput): InternalState => {