@livestore/common 0.3.2-dev.12 → 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
@@ -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,8 +1,8 @@
1
- import type { Nullable } from '@livestore/utils';
2
- import type { Schema, Types } from '@livestore/utils/effect';
1
+ import { type Nullable } from '@livestore/utils';
2
+ import { Schema, SchemaAST, type Types } from '@livestore/utils/effect';
3
3
  import { SqliteDsl } from './db-schema/mod.ts';
4
4
  import type { QueryBuilder } from './query-builder/mod.ts';
5
- 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, any>, json: SqliteDsl.SpecializedColDefFn<"text", true, unknown>, real: SqliteDsl.ColDefFn<"real">, text: SqliteDsl.ColDefFn<"text">;
5
+ 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">;
6
6
  export type StateType = 'singleton' | 'dynamic';
7
7
  export type DefaultSqliteTableDef = SqliteDsl.TableDefinition<string, SqliteDsl.Columns>;
8
8
  export type DefaultSqliteTableDefConstrained = SqliteDsl.TableDefinition<string, SqliteDsl.ConstraintColumns>;
@@ -36,10 +36,87 @@ export type TableOptions = {
36
36
  /** Derived based on whether the table definition has one or more columns (besides the `id` column) */
37
37
  readonly isClientDocumentTable: boolean;
38
38
  };
39
- export declare const table: <TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, const TOptionsInput extends TableOptionsInput = TableOptionsInput>(args: {
39
+ /**
40
+ * Creates a SQLite table definition from columns or an Effect Schema.
41
+ *
42
+ * This function supports two main ways to define a table:
43
+ * 1. Using explicit column definitions
44
+ * 2. Using an Effect Schema (either the `name` property needs to be provided or the schema needs to have a title/identifier)
45
+ *
46
+ * ```ts
47
+ * // Using explicit columns
48
+ * const usersTable = State.SQLite.table({
49
+ * name: 'users',
50
+ * columns: {
51
+ * id: State.SQLite.text({ primaryKey: true }),
52
+ * name: State.SQLite.text({ nullable: false }),
53
+ * email: State.SQLite.text({ nullable: false }),
54
+ * age: State.SQLite.integer({ nullable: true }),
55
+ * },
56
+ * })
57
+ * ```
58
+ *
59
+ * ```ts
60
+ * // Using Effect Schema with annotations
61
+ * import { Schema } from '@livestore/utils/effect'
62
+ *
63
+ * const UserSchema = Schema.Struct({
64
+ * id: Schema.Int.pipe(State.SQLite.withPrimaryKey).pipe(State.SQLite.withAutoIncrement),
65
+ * email: Schema.String.pipe(State.SQLite.withUnique),
66
+ * name: Schema.String,
67
+ * active: Schema.Boolean.pipe(State.SQLite.withDefault(true)),
68
+ * createdAt: Schema.optional(Schema.Date),
69
+ * })
70
+ *
71
+ * // Option 1: With explicit name
72
+ * const usersTable = State.SQLite.table({
73
+ * name: 'users',
74
+ * schema: UserSchema,
75
+ * })
76
+ *
77
+ * // Option 2: With name from schema annotation (title or identifier)
78
+ * const AnnotatedUserSchema = UserSchema.annotations({ title: 'users' })
79
+ * const usersTable2 = State.SQLite.table({
80
+ * schema: AnnotatedUserSchema,
81
+ * })
82
+ * ```
83
+ *
84
+ * ```ts
85
+ * // Adding indexes
86
+ * const PostSchema = Schema.Struct({
87
+ * id: Schema.String.pipe(State.SQLite.withPrimaryKey),
88
+ * title: Schema.String,
89
+ * authorId: Schema.String,
90
+ * createdAt: Schema.Date,
91
+ * }).annotations({ identifier: 'posts' })
92
+ *
93
+ * const postsTable = State.SQLite.table({
94
+ * schema: PostSchema,
95
+ * indexes: [
96
+ * { name: 'idx_posts_author', columns: ['authorId'] },
97
+ * { name: 'idx_posts_created', columns: ['createdAt'], isUnique: false },
98
+ * ],
99
+ * })
100
+ * ```
101
+ *
102
+ * @remarks
103
+ * - Primary key columns are automatically non-nullable
104
+ * - Columns with `State.SQLite.withUnique` annotation automatically get unique indexes
105
+ * - The `State.SQLite.withAutoIncrement` annotation only works with integer primary keys
106
+ * - Default values can be literal values or SQL expressions
107
+ * - When using Effect Schema without explicit name, the schema must have a title or identifier annotation
108
+ */
109
+ export declare function table<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any, const TOptionsInput extends TableOptionsInput = TableOptionsInput>(args: {
40
110
  name: TName;
41
111
  columns: TColumns;
42
- } & Partial<TOptionsInput>) => TableDef<SqliteTableDefForInput<TName, TColumns>, WithDefaults<TColumns>>;
112
+ } & Partial<TOptionsInput>): TableDef<SqliteTableDefForInput<TName, TColumns>, WithDefaults<TColumns>>;
113
+ export declare function table<TName extends string, TSchema extends Schema.Schema.AnyNoContext, const TOptionsInput extends TableOptionsInput = TableOptionsInput>(args: {
114
+ name: TName;
115
+ schema: TSchema;
116
+ } & Partial<TOptionsInput>): TableDef<SqliteTableDefForSchemaInput<TName, Schema.Schema.Type<TSchema>, Schema.Schema.Encoded<TSchema>, TSchema>, TableOptions>;
117
+ export declare function table<TSchema extends Schema.Schema.AnyNoContext, const TOptionsInput extends TableOptionsInput = TableOptionsInput>(args: {
118
+ schema: TSchema;
119
+ } & Partial<TOptionsInput>): TableDef<SqliteTableDefForSchemaInput<string, Schema.Schema.Type<TSchema>, Schema.Schema.Encoded<TSchema>, TSchema>, TableOptions>;
43
120
  export declare namespace FromTable {
44
121
  type RowDecoded<TTableDef extends TableDefBase> = Types.Simplify<Nullable<Pick<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>>;
45
122
  type NullableColumnNames<TTableDef extends TableDefBase> = FromColumns.NullableColumnNames<TTableDef['sqliteDef']['columns']>;
@@ -69,16 +146,30 @@ export declare namespace FromColumns {
69
146
  type RequiredInsertColumnNames<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.RequiredInsertColumnNames<TColumns>;
70
147
  type InsertRowDecoded<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.InsertRowDecoded<TColumns>;
71
148
  }
72
- export type SqliteTableDefForInput<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = SqliteDsl.TableDefinition<TName, PrettifyFlat<ToColumns<TColumns>>>;
73
- type WithDefaults<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = {
149
+ export type SqliteTableDefForInput<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any> = SqliteDsl.TableDefinition<TName, PrettifyFlat<ToColumns<TColumns>>>;
150
+ export type SqliteTableDefForSchemaInput<TName extends string, TType, TEncoded, _TSchema = any> = TableDefInput.ForSchema<TName, TType, TEncoded, _TSchema>;
151
+ export type WithDefaults<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any> = {
74
152
  isClientDocumentTable: false;
75
153
  requiredInsertColumnNames: SqliteDsl.FromColumns.RequiredInsertColumnNames<ToColumns<TColumns>>;
76
154
  };
77
155
  export type PrettifyFlat<T> = T extends infer U ? {
78
156
  [K in keyof U]: U[K];
79
157
  } : never;
80
- type ToColumns<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = TColumns extends SqliteDsl.Columns ? TColumns : TColumns extends SqliteDsl.ColumnDefinition<any, any> ? {
158
+ export type ToColumns<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any> = TColumns extends SqliteDsl.Columns ? TColumns : TColumns extends SqliteDsl.ColumnDefinition.Any ? {
81
159
  value: TColumns;
82
160
  } : never;
83
- export {};
161
+ export declare namespace SchemaToColumns {
162
+ type ColumnDefForType<TEncoded, TType> = SqliteDsl.ColumnDefinition<TEncoded, TType>;
163
+ type FromTypes<TType, TEncoded> = TType extends Record<string, any> ? TEncoded extends Record<string, any> ? {
164
+ [K in keyof TType & keyof TEncoded]: ColumnDefForType<TEncoded[K], TType[K]>;
165
+ } : SqliteDsl.Columns : SqliteDsl.Columns;
166
+ }
167
+ export declare namespace TableDefInput {
168
+ type ForColumns<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any> = SqliteDsl.TableDefinition<TName, PrettifyFlat<ToColumns<TColumns>>>;
169
+ type ForSchema<TName extends string, TType, TEncoded, _TSchema = any> = SqliteDsl.TableDefinition<TName, SchemaToColumns.FromTypes<TType, TEncoded>>;
170
+ }
171
+ /**
172
+ * Maps a schema to a SQLite column definition, respecting column annotations.
173
+ */
174
+ export declare const getColumnDefForSchema: (schema: Schema.Schema.AnyNoContext, propertySignature?: SchemaAST.PropertySignature) => SqliteDsl.ColumnDefinition.Any;
84
175
  //# 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,53 @@
1
+ import { shouldNeverHappen } from '@livestore/utils';
2
+ import { Option, Schema, SchemaAST } from '@livestore/utils/effect';
3
+ import { AutoIncrement, ColumnType, Default, PrimaryKeyId, Unique } from "./column-annotations.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;
4
7
  // TODO use to hide table def internals
5
8
  export const TableDefInternalsSymbol = Symbol('TableDefInternals');
6
- export const table = (args) => {
7
- const { name, columns: columnOrColumns, ...options } = args;
8
- const tablePath = name;
9
+ // Implementation
10
+ export function table(args) {
11
+ const { ...options } = args;
12
+ let tableName;
13
+ let columns;
14
+ let additionalIndexes = [];
15
+ if ('columns' in args) {
16
+ tableName = args.name;
17
+ const columnOrColumns = args.columns;
18
+ columns = (SqliteDsl.isColumnDefinition(columnOrColumns) ? { value: columnOrColumns } : columnOrColumns);
19
+ additionalIndexes = [];
20
+ }
21
+ else if ('schema' in args) {
22
+ const result = schemaFieldsToColumns(SchemaAST.getPropertySignatures(args.schema.ast));
23
+ columns = result.columns;
24
+ // We'll set tableName first, then use it for index names
25
+ let tempTableName;
26
+ // If name is provided, use it; otherwise extract from schema annotations
27
+ if ('name' in args) {
28
+ tempTableName = args.name;
29
+ }
30
+ else {
31
+ // Use title or identifier, with preference for title
32
+ 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')));
33
+ }
34
+ tableName = tempTableName;
35
+ // Create unique indexes for columns with unique annotation
36
+ additionalIndexes = (result.uniqueColumns || []).map((columnName) => ({
37
+ name: `idx_${tableName}_${columnName}_unique`,
38
+ columns: [columnName],
39
+ isUnique: true,
40
+ }));
41
+ }
42
+ else {
43
+ return shouldNeverHappen('Either `columns` or `schema` must be provided when calling `table()`');
44
+ }
9
45
  const options_ = {
10
46
  isClientDocumentTable: false,
11
47
  };
12
- const columns = (SqliteDsl.isColumnDefinition(columnOrColumns) ? { value: columnOrColumns } : columnOrColumns);
13
- const sqliteDef = SqliteDsl.table(tablePath, columns, options?.indexes ?? []);
48
+ // Combine user-provided indexes with unique column indexes
49
+ const allIndexes = [...(options?.indexes ?? []), ...additionalIndexes];
50
+ const sqliteDef = SqliteDsl.table(tableName, columns, allIndexes);
14
51
  const rowSchema = SqliteDsl.structSchemaForTable(sqliteDef);
15
52
  const insertSchema = SqliteDsl.insertStructSchemaForTable(sqliteDef);
16
53
  const tableDef = {
@@ -32,5 +69,190 @@ export const table = (args) => {
32
69
  // @ts-expect-error TODO properly type this
33
70
  tableDef[QueryBuilderTypeId] = query[QueryBuilderTypeId];
34
71
  return tableDef;
72
+ }
73
+ /**
74
+ * Checks if a property signature has a specific annotation, checking both
75
+ * the property signature itself and its type AST.
76
+ */
77
+ const hasPropertyAnnotation = (propertySignature, annotationId) => {
78
+ // When using Schema.optional(Schema.String).pipe(withPrimaryKey) in a struct,
79
+ // the annotation ends up on a PropertySignatureDeclaration, not the Union type
80
+ // Check if this is a PropertySignatureDeclaration with annotations
81
+ if ('annotations' in propertySignature && propertySignature.annotations) {
82
+ const annotation = SchemaAST.getAnnotation(annotationId)(propertySignature);
83
+ if (Option.isSome(annotation)) {
84
+ return annotation;
85
+ }
86
+ }
87
+ // Otherwise check the type AST
88
+ return SchemaAST.getAnnotation(annotationId)(propertySignature.type);
89
+ };
90
+ /**
91
+ * Maps schema property signatures to SQLite column definitions.
92
+ * Returns both columns and unique column names for index creation.
93
+ */
94
+ const schemaFieldsToColumns = (propertySignatures) => {
95
+ const columns = {};
96
+ const uniqueColumns = [];
97
+ for (const prop of propertySignatures) {
98
+ if (typeof prop.name === 'string') {
99
+ // Create a schema from the AST
100
+ const fieldSchema = Schema.make(prop.type);
101
+ // Check if property has primary key annotation
102
+ const hasPrimaryKey = hasPropertyAnnotation(prop, PrimaryKeyId).pipe(Option.getOrElse(() => false));
103
+ // Check if property has unique annotation
104
+ const hasUnique = hasPropertyAnnotation(prop, Unique).pipe(Option.getOrElse(() => false));
105
+ columns[prop.name] = schemaFieldToColumn(fieldSchema, prop, hasPrimaryKey);
106
+ if (hasUnique) {
107
+ uniqueColumns.push(prop.name);
108
+ }
109
+ }
110
+ }
111
+ return { columns, uniqueColumns };
112
+ };
113
+ /**
114
+ * Converts a schema field and its property signature to a SQLite column definition.
115
+ */
116
+ const schemaFieldToColumn = (fieldSchema, propertySignature, forceHasPrimaryKey) => {
117
+ // Determine column type based on schema type
118
+ const columnDef = getColumnDefForSchema(fieldSchema, propertySignature);
119
+ // Create a new object with appropriate properties
120
+ const result = {
121
+ columnType: columnDef.columnType,
122
+ schema: columnDef.schema,
123
+ default: columnDef.default,
124
+ nullable: columnDef.nullable,
125
+ primaryKey: columnDef.primaryKey,
126
+ autoIncrement: columnDef.autoIncrement,
127
+ };
128
+ // Set nullable property explicitly
129
+ if (propertySignature.isOptional && !forceHasPrimaryKey && !columnDef.primaryKey) {
130
+ result.nullable = true;
131
+ }
132
+ else if (columnDef.nullable) {
133
+ result.nullable = true;
134
+ }
135
+ else {
136
+ result.nullable = false;
137
+ }
138
+ // Set primaryKey property explicitly
139
+ if (forceHasPrimaryKey || columnDef.primaryKey) {
140
+ result.primaryKey = true;
141
+ }
142
+ else {
143
+ result.primaryKey = false;
144
+ }
145
+ // Only add autoIncrement if it's true
146
+ if (columnDef.autoIncrement) {
147
+ result.autoIncrement = true;
148
+ }
149
+ return result;
150
+ };
151
+ /**
152
+ * Maps a schema to a SQLite column definition, respecting column annotations.
153
+ */
154
+ export const getColumnDefForSchema = (schema, propertySignature) => {
155
+ const ast = schema.ast;
156
+ // Check for annotations
157
+ const hasPrimaryKey = propertySignature
158
+ ? hasPropertyAnnotation(propertySignature, PrimaryKeyId).pipe(Option.getOrElse(() => false))
159
+ : SchemaAST.getAnnotation(PrimaryKeyId)(ast).pipe(Option.getOrElse(() => false));
160
+ const hasAutoIncrement = propertySignature
161
+ ? hasPropertyAnnotation(propertySignature, AutoIncrement).pipe(Option.getOrElse(() => false))
162
+ : SchemaAST.getAnnotation(AutoIncrement)(ast).pipe(Option.getOrElse(() => false));
163
+ const defaultValue = propertySignature
164
+ ? hasPropertyAnnotation(propertySignature, Default)
165
+ : SchemaAST.getAnnotation(Default)(ast);
166
+ /** Adds annotations to a column definition if they are present. */
167
+ const withAnnotationsIfNeeded = (columnDef) => {
168
+ const result = { ...columnDef };
169
+ if (hasPrimaryKey) {
170
+ result.primaryKey = true;
171
+ }
172
+ if (hasAutoIncrement) {
173
+ result.autoIncrement = true;
174
+ }
175
+ if (Option.isSome(defaultValue)) {
176
+ result.default = Option.some(defaultValue.value);
177
+ }
178
+ return result;
179
+ };
180
+ // Check for custom column type annotation
181
+ const columnTypeAnnotation = SchemaAST.getAnnotation(ColumnType)(ast);
182
+ if (Option.isSome(columnTypeAnnotation)) {
183
+ const columnType = columnTypeAnnotation.value;
184
+ let columnDef;
185
+ switch (columnType) {
186
+ case 'text':
187
+ columnDef = SqliteDsl.text();
188
+ break;
189
+ case 'integer':
190
+ columnDef = SqliteDsl.integer();
191
+ break;
192
+ case 'real':
193
+ columnDef = SqliteDsl.real();
194
+ break;
195
+ case 'blob':
196
+ columnDef = SqliteDsl.blob();
197
+ break;
198
+ default:
199
+ return shouldNeverHappen(`Unsupported column type annotation: ${columnType}`);
200
+ }
201
+ return withAnnotationsIfNeeded(columnDef);
202
+ }
203
+ // Check for refinements (e.g., Schema.Int)
204
+ if (SchemaAST.isRefinement(ast)) {
205
+ // Check if this is specifically Schema.Int by looking at the identifier annotation
206
+ const identifier = SchemaAST.getIdentifierAnnotation(ast).pipe(Option.getOrElse(() => ''));
207
+ if (identifier === 'Int') {
208
+ return withAnnotationsIfNeeded(SqliteDsl.integer());
209
+ }
210
+ // For other refinements, check the underlying type
211
+ return getColumnDefForSchema(Schema.make(ast.from), propertySignature);
212
+ }
213
+ // Check for string types
214
+ if (SchemaAST.isStringKeyword(ast)) {
215
+ return withAnnotationsIfNeeded(SqliteDsl.text());
216
+ }
217
+ // Check for number types
218
+ if (SchemaAST.isNumberKeyword(ast)) {
219
+ return withAnnotationsIfNeeded(SqliteDsl.real());
220
+ }
221
+ // Check for boolean types
222
+ if (SchemaAST.isBooleanKeyword(ast)) {
223
+ return withAnnotationsIfNeeded(SqliteDsl.boolean());
224
+ }
225
+ // Check for unions (like optional)
226
+ if (SchemaAST.isUnion(ast)) {
227
+ // For optional schemas, find the non-undefined type and use that
228
+ for (const type of ast.types) {
229
+ if (!SchemaAST.isUndefinedKeyword(type)) {
230
+ // Create a new schema with this type but preserve the primary key annotation
231
+ const innerSchema = Schema.make(type);
232
+ const innerColumnDef = getColumnDefForSchema(innerSchema, propertySignature);
233
+ return withAnnotationsIfNeeded(innerColumnDef);
234
+ }
235
+ }
236
+ }
237
+ // Check for Date types
238
+ if (SchemaAST.isTransformation(ast)) {
239
+ // Try to map the transformation's target type
240
+ return getColumnDefForSchema(Schema.make(ast.to), propertySignature);
241
+ }
242
+ // Check for literal types
243
+ if (SchemaAST.isLiteral(ast)) {
244
+ const value = ast.literal;
245
+ if (typeof value === 'string') {
246
+ return withAnnotationsIfNeeded(SqliteDsl.text());
247
+ }
248
+ else if (typeof value === 'number') {
249
+ return withAnnotationsIfNeeded(SqliteDsl.real());
250
+ }
251
+ else if (typeof value === 'boolean') {
252
+ return withAnnotationsIfNeeded(SqliteDsl.boolean());
253
+ }
254
+ }
255
+ // Default to JSON column for complex types
256
+ return withAnnotationsIfNeeded(SqliteDsl.json({ schema }));
35
257
  };
36
258
  //# 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":""}