@livestore/common 0.3.2-dev.1 → 0.3.2-dev.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 (40) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/devtools/devtools-messages-client-session.d.ts +21 -21
  3. package/dist/devtools/devtools-messages-common.d.ts +6 -6
  4. package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
  5. package/dist/devtools/devtools-messages-leader.d.ts +24 -24
  6. package/dist/schema/EventDef.d.ts +178 -132
  7. package/dist/schema/EventDef.d.ts.map +1 -1
  8. package/dist/schema/EventDef.js +0 -15
  9. package/dist/schema/EventDef.js.map +1 -1
  10. package/dist/schema/schema.d.ts +1 -5
  11. package/dist/schema/schema.d.ts.map +1 -1
  12. package/dist/schema/schema.js +0 -2
  13. package/dist/schema/schema.js.map +1 -1
  14. package/dist/schema/state/sqlite/client-document-def.d.ts +12 -0
  15. package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
  16. package/dist/schema/state/sqlite/client-document-def.js +12 -0
  17. package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
  18. package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +165 -65
  19. package/dist/schema/state/sqlite/mod.d.ts +1 -1
  20. package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
  21. package/dist/schema/state/sqlite/mod.js +0 -2
  22. package/dist/schema/state/sqlite/mod.js.map +1 -1
  23. package/dist/schema/state/sqlite/query-builder/api.d.ts +560 -307
  24. package/dist/schema/state/sqlite/table-def.d.ts +152 -70
  25. package/dist/schema-management/validate-schema.d.ts +1 -1
  26. package/dist/schema-management/validate-schema.d.ts.map +1 -1
  27. package/dist/schema-management/validate-schema.js +1 -1
  28. package/dist/schema-management/validate-schema.js.map +1 -1
  29. package/dist/sql-queries/types.d.ts +133 -37
  30. package/dist/version.d.ts +2 -2
  31. package/dist/version.d.ts.map +1 -1
  32. package/dist/version.js +2 -2
  33. package/dist/version.js.map +1 -1
  34. package/package.json +10 -49
  35. package/src/schema/EventDef.ts +1 -21
  36. package/src/schema/schema.ts +3 -6
  37. package/src/schema/state/sqlite/client-document-def.ts +12 -0
  38. package/src/schema/state/sqlite/mod.ts +1 -3
  39. package/src/schema-management/validate-schema.ts +1 -1
  40. package/src/version.ts +2 -2
@@ -1,84 +1,166 @@
1
- import type { Nullable } from '@livestore/utils';
2
- import type { Schema, Types } from '@livestore/utils/effect';
3
- import { SqliteDsl } from './db-schema/mod.ts';
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">;
6
- export type StateType = 'singleton' | 'dynamic';
7
- export type DefaultSqliteTableDef = SqliteDsl.TableDefinition<string, SqliteDsl.Columns>;
8
- export type DefaultSqliteTableDefConstrained = SqliteDsl.TableDefinition<string, SqliteDsl.ConstraintColumns>;
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
+ >;
9
27
  export declare const TableDefInternalsSymbol: unique symbol;
10
28
  export type TableDefInternalsSymbol = typeof TableDefInternalsSymbol;
11
- export type TableDefBase<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained, TOptions extends TableOptions = TableOptions> = {
12
- sqliteDef: TSqliteDef;
13
- options: TOptions;
14
- rowSchema: SqliteDsl.StructSchemaForColumns<TSqliteDef['columns']>;
15
- insertSchema: SqliteDsl.InsertStructSchemaForColumns<TSqliteDef['columns']>;
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"]>;
16
37
  };
17
- export type TableDef<TSqliteDef extends DefaultSqliteTableDef = DefaultSqliteTableDefConstrained, TOptions extends TableOptions = TableOptions, TSchema = Schema.Schema<SqliteDsl.AnyIfConstained<TSqliteDef['columns'], {
18
- readonly [K in keyof TSqliteDef['columns']]: TSqliteDef['columns'][K]['schema']['Type'];
19
- }>, SqliteDsl.AnyIfConstained<TSqliteDef['columns'], {
20
- readonly [K in keyof TSqliteDef['columns']]: TSqliteDef['columns'][K]['schema']['Encoded'];
21
- }>>> = {
22
- sqliteDef: TSqliteDef;
23
- options: TOptions;
24
- rowSchema: TSchema;
25
- insertSchema: SqliteDsl.InsertStructSchemaForColumns<TSqliteDef['columns']>;
26
- readonly Type: Schema.Schema.Type<TSchema>;
27
- readonly Encoded: Schema.Schema.Encoded<TSchema>;
28
- } & QueryBuilder<ReadonlyArray<Schema.Schema.Type<TSchema>>, TableDefBase<TSqliteDef & {}, TOptions>>;
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
+ >;
29
66
  export type TableOptionsInput = Partial<{
30
- indexes: SqliteDsl.Index[];
67
+ indexes: SqliteDsl.Index[];
31
68
  }>;
32
69
  export declare namespace TableDef {
33
- type Any = TableDef<any, any>;
70
+ type Any = TableDef<any, any>;
34
71
  }
35
72
  export type TableOptions = {
36
- /** Derived based on whether the table definition has one or more columns (besides the `id` column) */
37
- readonly isClientDocumentTable: boolean;
73
+ /** Derived based on whether the table definition has one or more columns (besides the `id` column) */
74
+ readonly isClientDocumentTable: boolean;
38
75
  };
39
- export declare const table: <TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>, const TOptionsInput extends TableOptionsInput = TableOptionsInput>(args: {
40
- name: TName;
41
- columns: TColumns;
42
- } & Partial<TOptionsInput>) => TableDef<SqliteTableDefForInput<TName, TColumns>, WithDefaults<TColumns>>;
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>>;
43
86
  export declare namespace FromTable {
44
- type RowDecoded<TTableDef extends TableDefBase> = Types.Simplify<Nullable<Pick<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowDecodedAll<TTableDef>, NullableColumnNames<TTableDef>>>;
45
- type NullableColumnNames<TTableDef extends TableDefBase> = FromColumns.NullableColumnNames<TTableDef['sqliteDef']['columns']>;
46
- type Columns<TTableDef extends TableDefBase> = {
47
- [K in keyof TTableDef['sqliteDef']['columns']]: TTableDef['sqliteDef']['columns'][K]['columnType'];
48
- };
49
- type RowEncodeNonNullable<TTableDef extends TableDefBase> = {
50
- [K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Encoded<TTableDef['sqliteDef']['columns'][K]['schema']>;
51
- };
52
- type RowEncoded<TTableDef extends TableDefBase> = Types.Simplify<Nullable<Pick<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>> & Omit<RowEncodeNonNullable<TTableDef>, NullableColumnNames<TTableDef>>>;
53
- type RowDecodedAll<TTableDef extends TableDefBase> = {
54
- [K in keyof TTableDef['sqliteDef']['columns']]: Schema.Schema.Type<TTableDef['sqliteDef']['columns'][K]['schema']>;
55
- };
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
+ };
56
112
  }
57
113
  export declare namespace FromColumns {
58
- type RowDecoded<TColumns extends SqliteDsl.Columns> = Types.Simplify<Nullable<Pick<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowDecodedAll<TColumns>, NullableColumnNames<TColumns>>>;
59
- type RowDecodedAll<TColumns extends SqliteDsl.Columns> = {
60
- [K in keyof TColumns]: Schema.Schema.Type<TColumns[K]['schema']>;
61
- };
62
- type RowEncoded<TColumns extends SqliteDsl.Columns> = Types.Simplify<Nullable<Pick<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>> & Omit<RowEncodeNonNullable<TColumns>, NullableColumnNames<TColumns>>>;
63
- type RowEncodeNonNullable<TColumns extends SqliteDsl.Columns> = {
64
- [K in keyof TColumns]: Schema.Schema.Encoded<TColumns[K]['schema']>;
65
- };
66
- type NullableColumnNames<TColumns extends SqliteDsl.Columns> = keyof {
67
- [K in keyof TColumns as TColumns[K]['default'] extends true ? K : never]: {};
68
- };
69
- type RequiredInsertColumnNames<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.RequiredInsertColumnNames<TColumns>;
70
- type InsertRowDecoded<TColumns extends SqliteDsl.Columns> = SqliteDsl.FromColumns.InsertRowDecoded<TColumns>;
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>;
71
139
  }
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>> = {
74
- isClientDocumentTable: false;
75
- requiredInsertColumnNames: SqliteDsl.FromColumns.RequiredInsertColumnNames<ToColumns<TColumns>>;
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
+ >;
76
151
  };
77
- export type PrettifyFlat<T> = T extends infer U ? {
78
- [K in keyof U]: U[K];
79
- } : never;
80
- type ToColumns<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition<any, any>> = TColumns extends SqliteDsl.Columns ? TColumns : TColumns extends SqliteDsl.ColumnDefinition<any, any> ? {
81
- value: TColumns;
82
- } : never;
83
- export {};
84
- //# sourceMappingURL=table-def.d.ts.map
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
@@ -3,6 +3,6 @@ import { UnexpectedError } from '../adapter-types.ts';
3
3
  import type { EventDef } from '../schema/EventDef.ts';
4
4
  import type { LiveStoreSchema } from '../schema/mod.ts';
5
5
  import type { EventDefInfo, SchemaManager } from './common.ts';
6
- export declare const validateSchema: (schema: LiveStoreSchema, schemaManager: SchemaManager) => Effect.Effect<void, UnexpectedError, never>;
6
+ export declare const validateSchema: (schema: LiveStoreSchema, schemaManager: SchemaManager) => Effect.Effect<undefined, UnexpectedError, never>;
7
7
  export declare const validateEventDef: (eventDef: EventDef.AnyWithoutFn, schemaManager: SchemaManager, registeredEventDefInfo: EventDefInfo | undefined) => void;
8
8
  //# sourceMappingURL=validate-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-schema.d.ts","sourceRoot":"","sources":["../../src/schema-management/validate-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE9D,eAAO,MAAM,cAAc,GAAI,QAAQ,eAAe,EAAE,eAAe,aAAa,gDAsBhF,CAAA;AAEJ,eAAO,MAAM,gBAAgB,GAC3B,UAAU,QAAQ,CAAC,YAAY,EAC/B,eAAe,aAAa,EAC5B,wBAAwB,YAAY,GAAG,SAAS,SA0BjD,CAAA"}
1
+ {"version":3,"file":"validate-schema.d.ts","sourceRoot":"","sources":["../../src/schema-management/validate-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE9D,eAAO,MAAM,cAAc,GAAI,QAAQ,eAAe,EAAE,eAAe,aAAa,qDAsBhF,CAAA;AAEJ,eAAO,MAAM,gBAAgB,GAC3B,UAAU,QAAQ,CAAC,YAAY,EAC/B,eAAe,aAAa,EAC5B,wBAAwB,YAAY,GAAG,SAAS,SA0BjD,CAAA"}
@@ -5,7 +5,7 @@ export const validateSchema = (schema, schemaManager) => Effect.gen(function* ()
5
5
  const registeredEventDefInfos = schemaManager.getEventDefInfos();
6
6
  const missingEventDefs = registeredEventDefInfos.filter((registeredEventDefInfo) => !schema.eventsDefsMap.has(registeredEventDefInfo.eventName));
7
7
  if (missingEventDefs.length > 0) {
8
- yield* new UnexpectedError({
8
+ return yield* new UnexpectedError({
9
9
  cause: `Missing mutation definitions: ${missingEventDefs.map((info) => info.eventName).join(', ')}`,
10
10
  });
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validate-schema.js","sourceRoot":"","sources":["../../src/schema-management/validate-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAKrD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAuB,EAAE,aAA4B,EAAE,EAAE,CACtF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,gCAAgC;IAChC,MAAM,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAA;IAEhE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CACrD,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CACxF,CAAA;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC;YACzB,KAAK,EAAE,iCAAiC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACpG,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAChD,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEvG,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAA;IACnE,CAAC;IAED,yBAAyB;AAC3B,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAA+B,EAC/B,aAA4B,EAC5B,sBAAgD,EAChD,EAAE;IACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE/C,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACzC,aAAa,CAAC,eAAe,CAAC;YAC5B,UAAU;YACV,SAAS,EAAE,QAAQ,CAAC,IAAI;SACzB,CAAC,CAAA;QAEF,OAAM;IACR,CAAC;IAED,IAAI,UAAU,KAAK,sBAAsB,CAAC,UAAU;QAAE,OAAM;IAE5D,mHAAmH;IACnH,2GAA2G;IAE3G,6CAA6C;IAC7C,iGAAiG;IACjG,IAAI;IAEJ,aAAa,CAAC,eAAe,CAAC;QAC5B,UAAU;QACV,SAAS,EAAE,QAAQ,CAAC,IAAI;KACzB,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"validate-schema.js","sourceRoot":"","sources":["../../src/schema-management/validate-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAKrD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAuB,EAAE,aAA4B,EAAE,EAAE,CACtF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,gCAAgC;IAChC,MAAM,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAA;IAEhE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CACrD,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CACxF,CAAA;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC;YAChC,KAAK,EAAE,iCAAiC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACpG,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAChD,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEvG,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAA;IACnE,CAAC;IAED,yBAAyB;AAC3B,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAA+B,EAC/B,aAA4B,EAC5B,sBAAgD,EAChD,EAAE;IACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE/C,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACzC,aAAa,CAAC,eAAe,CAAC;YAC5B,UAAU;YACV,SAAS,EAAE,QAAQ,CAAC,IAAI;SACzB,CAAC,CAAA;QAEF,OAAM;IACR,CAAC;IAED,IAAI,UAAU,KAAK,sBAAsB,CAAC,UAAU;QAAE,OAAM;IAE5D,mHAAmH;IACnH,2GAA2G;IAE3G,6CAA6C;IAC7C,iGAAiG;IACjG,IAAI;IAEJ,aAAa,CAAC,eAAe,CAAC;QAC5B,UAAU;QACV,SAAS,EAAE,QAAQ,CAAC,IAAI;KACzB,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,51 +1,147 @@
1
- import type { Prettify } from '@livestore/utils';
2
- import type { Schema } from '@livestore/utils/effect';
3
- import type { SqliteDsl } from '../schema/state/sqlite/db-schema/mod.ts';
4
- export type DecodedValuesForTableAll<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = {
5
- [K in keyof GetColumns<TSchema, TTableName>]: Schema.Schema.Type<GetColumn<TSchema, TTableName, K>['schema']>;
6
- };
7
- export type DecodedValuesForTablePretty<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = Prettify<DecodedValuesForTable<TSchema, TTableName>>;
8
- export type DecodedValuesForTable<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = Partial<Pick<DecodedValuesForTableAll<TSchema, TTableName>, GetNullableColumnNamesForTable<TSchema, TTableName>>> & Omit<DecodedValuesForTableAll<TSchema, TTableName>, GetNullableColumnNamesForTable<TSchema, TTableName>>;
9
- export type DecodedValuesForTableOrNull<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = NullableObj<Pick<DecodedValuesForTableAll<TSchema, TTableName>, GetNullableColumnNamesForTable<TSchema, TTableName>>> & Omit<DecodedValuesForTableAll<TSchema, TTableName>, GetNullableColumnNamesForTable<TSchema, TTableName>>;
10
- export type WhereValuesForTable<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = PartialOrNull<{
11
- [K in keyof DecodedValuesForTableAll<TSchema, TTableName>]: WhereValueForDecoded<DecodedValuesForTableAll<TSchema, TTableName>[K]>;
1
+ import type { Schema } from "@livestore/utils/effect";
2
+ import type { Prettify } from "../../../utils/dist/mod.ts";
3
+ import type { SqliteDsl } from "../schema/state/sqlite/db-schema/mod.ts";
4
+ export type DecodedValuesForTableAll<
5
+ TSchema extends SqliteDsl.DbSchema,
6
+ TTableName extends keyof TSchema,
7
+ > = {
8
+ [K in keyof GetColumns<TSchema, TTableName>]: Schema.Schema.Type<
9
+ GetColumn<TSchema, TTableName, K>["schema"]
10
+ >;
11
+ };
12
+ export type DecodedValuesForTablePretty<
13
+ TSchema extends SqliteDsl.DbSchema,
14
+ TTableName extends keyof TSchema,
15
+ > = Prettify<DecodedValuesForTable<TSchema, TTableName>>;
16
+ export type DecodedValuesForTable<
17
+ TSchema extends SqliteDsl.DbSchema,
18
+ TTableName extends keyof TSchema,
19
+ > = Partial<
20
+ Pick<
21
+ DecodedValuesForTableAll<TSchema, TTableName>,
22
+ GetNullableColumnNamesForTable<TSchema, TTableName>
23
+ >
24
+ > &
25
+ Omit<
26
+ DecodedValuesForTableAll<TSchema, TTableName>,
27
+ GetNullableColumnNamesForTable<TSchema, TTableName>
28
+ >;
29
+ export type DecodedValuesForTableOrNull<
30
+ TSchema extends SqliteDsl.DbSchema,
31
+ TTableName extends keyof TSchema,
32
+ > = NullableObj<
33
+ Pick<
34
+ DecodedValuesForTableAll<TSchema, TTableName>,
35
+ GetNullableColumnNamesForTable<TSchema, TTableName>
36
+ >
37
+ > &
38
+ Omit<
39
+ DecodedValuesForTableAll<TSchema, TTableName>,
40
+ GetNullableColumnNamesForTable<TSchema, TTableName>
41
+ >;
42
+ export type WhereValuesForTable<
43
+ TSchema extends SqliteDsl.DbSchema,
44
+ TTableName extends keyof TSchema,
45
+ > = PartialOrNull<{
46
+ [K in keyof DecodedValuesForTableAll<
47
+ TSchema,
48
+ TTableName
49
+ >]: WhereValueForDecoded<DecodedValuesForTableAll<TSchema, TTableName>[K]>;
12
50
  }>;
13
- export type WhereValueForDecoded<TDecoded> = TDecoded | {
14
- op: WhereOp;
15
- val: TDecoded;
16
- } | {
17
- op: 'in';
18
- val: TDecoded[];
19
- };
20
- export type WhereOp = '>' | '<' | '=';
51
+ export type WhereValueForDecoded<TDecoded> =
52
+ | TDecoded
53
+ | {
54
+ op: WhereOp;
55
+ val: TDecoded;
56
+ }
57
+ | {
58
+ op: "in";
59
+ val: TDecoded[];
60
+ };
61
+ export type WhereOp = ">" | "<" | "=";
21
62
  export declare const isValidWhereOp: (op: string) => op is WhereOp;
22
- export type EncodedValuesForTableAll<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = {
23
- [K in keyof GetColumns<TSchema, TTableName>]: Schema.Schema.Type<GetColumn<TSchema, TTableName, K>['schema']>;
63
+ export type EncodedValuesForTableAll<
64
+ TSchema extends SqliteDsl.DbSchema,
65
+ TTableName extends keyof TSchema,
66
+ > = {
67
+ [K in keyof GetColumns<TSchema, TTableName>]: Schema.Schema.Type<
68
+ GetColumn<TSchema, TTableName, K>["schema"]
69
+ >;
24
70
  };
25
- export type EncodedValuesForTable<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = Partial<Pick<EncodedValuesForTableAll<TSchema, TTableName>, GetNullableColumnNamesForTable<TSchema, TTableName>>> & Omit<EncodedValuesForTableAll<TSchema, TTableName>, GetNullableColumnNamesForTable<TSchema, TTableName>>;
26
- export type GetNullableColumnNamesForTable<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = keyof {
27
- [K in keyof GetColumns<TSchema, TTableName> as GetColumn<TSchema, TTableName, K>['nullable'] extends true ? K : never]: {};
71
+ export type EncodedValuesForTable<
72
+ TSchema extends SqliteDsl.DbSchema,
73
+ TTableName extends keyof TSchema,
74
+ > = Partial<
75
+ Pick<
76
+ EncodedValuesForTableAll<TSchema, TTableName>,
77
+ GetNullableColumnNamesForTable<TSchema, TTableName>
78
+ >
79
+ > &
80
+ Omit<
81
+ EncodedValuesForTableAll<TSchema, TTableName>,
82
+ GetNullableColumnNamesForTable<TSchema, TTableName>
83
+ >;
84
+ export type GetNullableColumnNamesForTable<
85
+ TSchema extends SqliteDsl.DbSchema,
86
+ TTableName extends keyof TSchema,
87
+ > = keyof {
88
+ [K in keyof GetColumns<TSchema, TTableName> as GetColumn<
89
+ TSchema,
90
+ TTableName,
91
+ K
92
+ >["nullable"] extends true
93
+ ? K
94
+ : never]: {};
28
95
  };
29
- export type GetColumns<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = TSchema[TTableName]['columns'];
30
- export type GetColumn<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema, TColumnName extends keyof TSchema[TTableName]['columns']> = TSchema[TTableName]['columns'][TColumnName];
96
+ export type GetColumns<
97
+ TSchema extends SqliteDsl.DbSchema,
98
+ TTableName extends keyof TSchema,
99
+ > = TSchema[TTableName]["columns"];
100
+ export type GetColumn<
101
+ TSchema extends SqliteDsl.DbSchema,
102
+ TTableName extends keyof TSchema,
103
+ TColumnName extends keyof TSchema[TTableName]["columns"],
104
+ > = TSchema[TTableName]["columns"][TColumnName];
31
105
  export type DecodedValuesForColumnsAll<TColumns extends SqliteDsl.Columns> = {
32
- [K in keyof TColumns]: Schema.Schema.Type<TColumns[K]['schema']>;
106
+ [K in keyof TColumns]: Schema.Schema.Type<TColumns[K]["schema"]>;
33
107
  };
34
- export type DecodedValuesForColumns<TColumns extends SqliteDsl.Columns> = Partial<Pick<DecodedValuesForColumnsAll<TColumns>, GetNullableColumnNames<TColumns>>> & Omit<DecodedValuesForColumnsAll<TColumns>, GetNullableColumnNames<TColumns>>;
108
+ export type DecodedValuesForColumns<TColumns extends SqliteDsl.Columns> =
109
+ Partial<
110
+ Pick<DecodedValuesForColumnsAll<TColumns>, GetNullableColumnNames<TColumns>>
111
+ > &
112
+ Omit<
113
+ DecodedValuesForColumnsAll<TColumns>,
114
+ GetNullableColumnNames<TColumns>
115
+ >;
35
116
  export type EncodedValuesForColumnsAll<TColumns extends SqliteDsl.Columns> = {
36
- [K in keyof TColumns]: Schema.Schema.Encoded<TColumns[K]['schema']>;
117
+ [K in keyof TColumns]: Schema.Schema.Encoded<TColumns[K]["schema"]>;
37
118
  };
38
- export type EncodedValuesForColumns<TColumns extends SqliteDsl.Columns> = Partial<Pick<EncodedValuesForColumnsAll<TColumns>, GetNullableColumnNames<TColumns>>> & Omit<EncodedValuesForColumnsAll<TColumns>, GetNullableColumnNames<TColumns>>;
39
- export type WhereValuesForColumns<TColumns extends SqliteDsl.Columns> = PartialOrNull<{
40
- [K in keyof EncodedValuesForColumns<TColumns>]: WhereValueForDecoded<DecodedValuesForColumnsAll<TColumns>[K]>;
41
- }>;
119
+ export type EncodedValuesForColumns<TColumns extends SqliteDsl.Columns> =
120
+ Partial<
121
+ Pick<EncodedValuesForColumnsAll<TColumns>, GetNullableColumnNames<TColumns>>
122
+ > &
123
+ Omit<
124
+ EncodedValuesForColumnsAll<TColumns>,
125
+ GetNullableColumnNames<TColumns>
126
+ >;
127
+ export type WhereValuesForColumns<TColumns extends SqliteDsl.Columns> =
128
+ PartialOrNull<{
129
+ [K in keyof EncodedValuesForColumns<TColumns>]: WhereValueForDecoded<
130
+ DecodedValuesForColumnsAll<TColumns>[K]
131
+ >;
132
+ }>;
42
133
  export type GetNullableColumnNames<TColumns extends SqliteDsl.Columns> = keyof {
43
- [K in keyof TColumns as TColumns[K] extends SqliteDsl.ColumnDefinition<any, true> ? K : never]: unknown;
134
+ [K in keyof TColumns as TColumns[K] extends SqliteDsl.ColumnDefinition<
135
+ any,
136
+ true
137
+ >
138
+ ? K
139
+ : never]: unknown;
44
140
  };
45
141
  export type PartialOrNull<T> = {
46
- [P in keyof T]?: T[P] | null;
142
+ [P in keyof T]?: T[P] | null;
47
143
  };
48
144
  export type NullableObj<T> = {
49
- [P in keyof T]: T[P] | null;
145
+ [P in keyof T]: T[P] | null;
50
146
  };
51
- //# sourceMappingURL=types.d.ts.map
147
+ //# sourceMappingURL=types.d.ts.map
package/dist/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const liveStoreVersion: "0.3.2-dev.1";
1
+ export declare const liveStoreVersion: "0.3.2-dev.10";
2
2
  /**
3
3
  * This version number is incremented whenever the internal storage format changes in a breaking way.
4
4
  * Whenever this version changes, LiveStore will start with fresh database files. Old database files are not deleted.
@@ -6,5 +6,5 @@ export declare const liveStoreVersion: "0.3.2-dev.1";
6
6
  * While LiveStore is in beta, this might happen more frequently.
7
7
  * In the future, LiveStore will provide a migration path for older database files to avoid the impression of data loss.
8
8
  */
9
- export declare const liveStoreStorageFormatVersion = 4;
9
+ export declare const liveStoreStorageFormatVersion = 5;
10
10
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,EAAG,aAAsB,CAAA;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,EAAG,cAAuB,CAAA;AAEvD;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,IAAI,CAAA"}
package/dist/version.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // TODO bring back when Expo and Playwright supports `with` imports
2
2
  // import packageJson from '../package.json' with { type: 'json' }
3
3
  // export const liveStoreVersion = packageJson.version
4
- export const liveStoreVersion = '0.3.2-dev.1';
4
+ export const liveStoreVersion = '0.3.2-dev.10';
5
5
  /**
6
6
  * This version number is incremented whenever the internal storage format changes in a breaking way.
7
7
  * Whenever this version changes, LiveStore will start with fresh database files. Old database files are not deleted.
@@ -9,5 +9,5 @@ export const liveStoreVersion = '0.3.2-dev.1';
9
9
  * While LiveStore is in beta, this might happen more frequently.
10
10
  * In the future, LiveStore will provide a migration path for older database files to avoid the impression of data loss.
11
11
  */
12
- export const liveStoreStorageFormatVersion = 4;
12
+ export const liveStoreStorageFormatVersion = 5;
13
13
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,kEAAkE;AAClE,sDAAsD;AAEtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAsB,CAAA;AAEtD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,kEAAkE;AAClE,sDAAsD;AAEtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAuB,CAAA;AAEvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,66 +1,27 @@
1
1
  {
2
2
  "name": "@livestore/common",
3
- "version": "0.3.2-dev.1",
3
+ "version": "0.3.2-dev.10",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
7
- ".": {
8
- "types": "./dist/index.d.ts",
9
- "bun": "./src/index.ts",
10
- "default": "./dist/index.js"
11
- },
12
- "./sql-queries": {
13
- "types": "./dist/sql-queries/index.d.ts",
14
- "default": "./dist/sql-queries/index.js"
15
- },
16
- "./leader-thread": {
17
- "types": "./dist/leader-thread/mod.d.ts",
18
- "default": "./dist/leader-thread/mod.js"
19
- },
20
- "./schema": {
21
- "types": "./dist/schema/mod.d.ts",
22
- "default": "./dist/schema/mod.js"
23
- },
24
- "./sync/next": {
25
- "types": "./dist/sync/next/mod.d.ts",
26
- "default": "./dist/sync/next/mod.js"
27
- },
28
- "./sync/next/test": {
29
- "types": "./dist/sync/next/test/mod.d.ts",
30
- "default": "./dist/sync/next/test/mod.js"
31
- }
32
- },
33
- "types": "./dist/index.d.ts",
34
- "typesVersions": {
35
- "*": {
36
- "schema": [
37
- "./dist/schema/mod.d.ts"
38
- ],
39
- "sql-queries": [
40
- "./dist/sql-queries/index.d.ts"
41
- ],
42
- "leader-thread": [
43
- "./dist/leader-thread/mod.d.ts"
44
- ],
45
- "sync/next": [
46
- "./dist/sync/next/mod.d.ts"
47
- ],
48
- "sync/next/test": [
49
- "./dist/sync/next/test/mod.d.ts"
50
- ]
51
- }
7
+ ".": "./dist/index.js",
8
+ "./sql-queries": "./dist/sql-queries/index.js",
9
+ "./leader-thread": "./dist/leader-thread/mod.js",
10
+ "./schema": "./dist/schema/mod.js",
11
+ "./sync/next": "./dist/sync/next/mod.js",
12
+ "./sync/next/test": "./dist/sync/next/test/mod.js"
52
13
  },
53
14
  "dependencies": {
54
15
  "@opentelemetry/api": "1.9.0",
55
16
  "graphology": "0.26.0-alpha1",
56
17
  "graphology-dag": "0.4.1",
57
18
  "graphology-types": "0.24.8",
58
- "@livestore/webmesh": "0.3.2-dev.1",
59
- "@livestore/utils": "0.3.2-dev.1"
19
+ "@livestore/utils": "0.3.2-dev.10",
20
+ "@livestore/webmesh": "0.3.2-dev.10"
60
21
  },
61
22
  "devDependencies": {
62
23
  "vitest": "3.2.4",
63
- "@livestore/utils-dev": "0.3.2-dev.1"
24
+ "@livestore/utils-dev": "0.3.2-dev.10"
64
25
  },
65
26
  "files": [
66
27
  "package.json",
@@ -7,10 +7,9 @@ import type { ParamsObject } from '../util.ts'
7
7
  import type { QueryBuilder } from './state/sqlite/query-builder/mod.ts'
8
8
 
9
9
  export type EventDefMap = {
10
- map: Map<string | 'livestore.RawSql', EventDef.Any>
10
+ map: Map<string, EventDef.Any>
11
11
  }
12
12
  export type EventDefRecord = {
13
- 'livestore.RawSql': RawSqlEvent
14
13
  [name: string]: EventDef.Any
15
14
  }
16
15
 
@@ -218,22 +217,3 @@ export const materializers = <TInputRecord extends Record<string, EventDef.AnyWi
218
217
  ) => {
219
218
  return handlers
220
219
  }
221
-
222
- export const rawSqlEvent = defineEvent({
223
- name: 'livestore.RawSql',
224
- schema: Schema.Struct({
225
- sql: Schema.String,
226
- bindValues: Schema.optional(Schema.Record({ key: Schema.String, value: Schema.Any })),
227
- writeTables: Schema.optional(Schema.ReadonlySet(Schema.String)),
228
- }),
229
- clientOnly: true,
230
- derived: true,
231
- })
232
-
233
- export const rawSqlMaterializer = defineMaterializer(rawSqlEvent, ({ sql, bindValues, writeTables }) => ({
234
- sql,
235
- bindValues: bindValues ?? {},
236
- writeTables,
237
- }))
238
-
239
- export type RawSqlEvent = typeof rawSqlEvent