@livestore/common 0.0.0-snapshot-54e706b7e73bd685653cd43e1e34a02c1d8054a2 → 0.0.0-snapshot-412a36a7e6c9b0e9e237b553fd0522aed285228f.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 (156) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/derived-mutations.d.ts +77 -0
  3. package/dist/derived-mutations.d.ts.map +1 -0
  4. package/dist/derived-mutations.js +54 -0
  5. package/dist/derived-mutations.js.map +1 -0
  6. package/dist/derived-mutations.test.d.ts +2 -0
  7. package/dist/derived-mutations.test.d.ts.map +1 -0
  8. package/dist/derived-mutations.test.js +93 -0
  9. package/dist/derived-mutations.test.js.map +1 -0
  10. package/dist/devtools/devtools-bridge.d.ts +12 -0
  11. package/dist/devtools/devtools-bridge.d.ts.map +1 -0
  12. package/dist/devtools/devtools-bridge.js +2 -0
  13. package/dist/devtools/devtools-bridge.js.map +1 -0
  14. package/dist/devtools/devtools-messages-client-session.d.ts +8 -8
  15. package/dist/devtools/index.d.ts +42 -0
  16. package/dist/devtools/index.d.ts.map +1 -0
  17. package/dist/devtools/index.js +49 -0
  18. package/dist/devtools/index.js.map +1 -0
  19. package/dist/init-singleton-tables.d.ts +4 -0
  20. package/dist/init-singleton-tables.d.ts.map +1 -0
  21. package/dist/init-singleton-tables.js +16 -0
  22. package/dist/init-singleton-tables.js.map +1 -0
  23. package/dist/leader-thread/apply-event.d.ts +16 -0
  24. package/dist/leader-thread/apply-event.d.ts.map +1 -0
  25. package/dist/leader-thread/apply-event.js +103 -0
  26. package/dist/leader-thread/apply-event.js.map +1 -0
  27. package/dist/leader-thread/leader-worker-devtools.d.ts +1 -1
  28. package/dist/mutation.d.ts +14 -0
  29. package/dist/mutation.d.ts.map +1 -0
  30. package/dist/mutation.js +71 -0
  31. package/dist/mutation.js.map +1 -0
  32. package/dist/query-builder/api.d.ts +293 -0
  33. package/dist/query-builder/api.d.ts.map +1 -0
  34. package/dist/query-builder/api.js +6 -0
  35. package/dist/query-builder/api.js.map +1 -0
  36. package/dist/query-builder/astToSql.d.ts +7 -0
  37. package/dist/query-builder/astToSql.d.ts.map +1 -0
  38. package/dist/query-builder/astToSql.js +190 -0
  39. package/dist/query-builder/astToSql.js.map +1 -0
  40. package/dist/query-builder/impl.d.ts +7 -0
  41. package/dist/query-builder/impl.d.ts.map +1 -0
  42. package/dist/query-builder/impl.js +286 -0
  43. package/dist/query-builder/impl.js.map +1 -0
  44. package/dist/query-builder/impl.test.d.ts +87 -0
  45. package/dist/query-builder/impl.test.d.ts.map +1 -0
  46. package/dist/query-builder/impl.test.js +554 -0
  47. package/dist/query-builder/impl.test.js.map +1 -0
  48. package/dist/query-builder/mod.d.ts +17 -0
  49. package/dist/query-builder/mod.d.ts.map +1 -0
  50. package/dist/query-builder/mod.js +17 -0
  51. package/dist/query-builder/mod.js.map +1 -0
  52. package/dist/query-info.d.ts +38 -0
  53. package/dist/query-info.d.ts.map +1 -0
  54. package/dist/query-info.js +7 -0
  55. package/dist/query-info.js.map +1 -0
  56. package/dist/rehydrate-from-eventlog.d.ts +14 -0
  57. package/dist/rehydrate-from-eventlog.d.ts.map +1 -0
  58. package/dist/rehydrate-from-eventlog.js +64 -0
  59. package/dist/rehydrate-from-eventlog.js.map +1 -0
  60. package/dist/rehydrate-from-mutationlog.d.ts +14 -0
  61. package/dist/rehydrate-from-mutationlog.d.ts.map +1 -0
  62. package/dist/rehydrate-from-mutationlog.js +72 -0
  63. package/dist/rehydrate-from-mutationlog.js.map +1 -0
  64. package/dist/schema/EventDef.d.ts +2 -2
  65. package/dist/schema/client-document-def.d.ts +223 -0
  66. package/dist/schema/client-document-def.d.ts.map +1 -0
  67. package/dist/schema/client-document-def.js +170 -0
  68. package/dist/schema/client-document-def.js.map +1 -0
  69. package/dist/schema/client-document-def.test.d.ts +2 -0
  70. package/dist/schema/client-document-def.test.d.ts.map +1 -0
  71. package/dist/schema/client-document-def.test.js +201 -0
  72. package/dist/schema/client-document-def.test.js.map +1 -0
  73. package/dist/schema/db-schema/ast/sqlite.d.ts +69 -0
  74. package/dist/schema/db-schema/ast/sqlite.d.ts.map +1 -0
  75. package/dist/schema/db-schema/ast/sqlite.js +71 -0
  76. package/dist/schema/db-schema/ast/sqlite.js.map +1 -0
  77. package/dist/schema/db-schema/ast/validate.d.ts +3 -0
  78. package/dist/schema/db-schema/ast/validate.d.ts.map +1 -0
  79. package/dist/schema/db-schema/ast/validate.js +12 -0
  80. package/dist/schema/db-schema/ast/validate.js.map +1 -0
  81. package/dist/schema/db-schema/dsl/field-defs.d.ts +90 -0
  82. package/dist/schema/db-schema/dsl/field-defs.d.ts.map +1 -0
  83. package/dist/schema/db-schema/dsl/field-defs.js +87 -0
  84. package/dist/schema/db-schema/dsl/field-defs.js.map +1 -0
  85. package/dist/schema/db-schema/dsl/field-defs.test.d.ts +2 -0
  86. package/dist/schema/db-schema/dsl/field-defs.test.d.ts.map +1 -0
  87. package/dist/schema/db-schema/dsl/field-defs.test.js +29 -0
  88. package/dist/schema/db-schema/dsl/field-defs.test.js.map +1 -0
  89. package/dist/schema/db-schema/dsl/mod.d.ts +90 -0
  90. package/dist/schema/db-schema/dsl/mod.d.ts.map +1 -0
  91. package/dist/schema/db-schema/dsl/mod.js +41 -0
  92. package/dist/schema/db-schema/dsl/mod.js.map +1 -0
  93. package/dist/schema/db-schema/hash.d.ts +2 -0
  94. package/dist/schema/db-schema/hash.d.ts.map +1 -0
  95. package/dist/schema/db-schema/hash.js +14 -0
  96. package/dist/schema/db-schema/hash.js.map +1 -0
  97. package/dist/schema/db-schema/mod.d.ts +3 -0
  98. package/dist/schema/db-schema/mod.d.ts.map +1 -0
  99. package/dist/schema/db-schema/mod.js +3 -0
  100. package/dist/schema/db-schema/mod.js.map +1 -0
  101. package/dist/schema/index.d.ts +62 -0
  102. package/dist/schema/index.d.ts.map +1 -0
  103. package/dist/schema/index.js +67 -0
  104. package/dist/schema/index.js.map +1 -0
  105. package/dist/schema/mutations.d.ts +227 -0
  106. package/dist/schema/mutations.d.ts.map +1 -0
  107. package/dist/schema/mutations.js +68 -0
  108. package/dist/schema/mutations.js.map +1 -0
  109. package/dist/schema/schema-helpers.d.ts +4 -0
  110. package/dist/schema/schema-helpers.d.ts.map +1 -0
  111. package/dist/schema/schema-helpers.js +30 -0
  112. package/dist/schema/schema-helpers.js.map +1 -0
  113. package/dist/schema/sqlite-state.d.ts +12 -0
  114. package/dist/schema/sqlite-state.d.ts.map +1 -0
  115. package/dist/schema/sqlite-state.js +36 -0
  116. package/dist/schema/sqlite-state.js.map +1 -0
  117. package/dist/schema/state/sqlite/query-builder/impl.test.d.ts +3 -3
  118. package/dist/schema/state/sqlite/sqlite-state.d.ts +12 -0
  119. package/dist/schema/state/sqlite/sqlite-state.d.ts.map +1 -0
  120. package/dist/schema/state/sqlite/sqlite-state.js +36 -0
  121. package/dist/schema/state/sqlite/sqlite-state.js.map +1 -0
  122. package/dist/schema/state/sqlite/system-tables.d.ts +2 -2
  123. package/dist/schema/state/state.d.ts +3 -0
  124. package/dist/schema/state/state.d.ts.map +1 -0
  125. package/dist/schema/state/state.js +3 -0
  126. package/dist/schema/state/state.js.map +1 -0
  127. package/dist/schema/state.d.ts +3 -0
  128. package/dist/schema/state.d.ts.map +1 -0
  129. package/dist/schema/state.js +3 -0
  130. package/dist/schema/state.js.map +1 -0
  131. package/dist/schema/system-tables.d.ts +27 -0
  132. package/dist/schema/system-tables.d.ts.map +1 -0
  133. package/dist/schema/system-tables.js +86 -0
  134. package/dist/schema/system-tables.js.map +1 -0
  135. package/dist/schema/table-def.d.ts +84 -0
  136. package/dist/schema/table-def.d.ts.map +1 -0
  137. package/dist/schema/table-def.js +36 -0
  138. package/dist/schema/table-def.js.map +1 -0
  139. package/dist/schema/view.d.ts +3 -0
  140. package/dist/schema/view.d.ts.map +1 -0
  141. package/dist/schema/view.js +3 -0
  142. package/dist/schema/view.js.map +1 -0
  143. package/dist/schema-management/validate-mutation-defs.d.ts +8 -0
  144. package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -0
  145. package/dist/schema-management/validate-mutation-defs.js +39 -0
  146. package/dist/schema-management/validate-mutation-defs.js.map +1 -0
  147. package/dist/sync/next/test/mutation-fixtures.d.ts +73 -0
  148. package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -0
  149. package/dist/sync/next/test/mutation-fixtures.js +161 -0
  150. package/dist/sync/next/test/mutation-fixtures.js.map +1 -0
  151. package/dist/sync/next-mutation-event-id-pair.d.ts +14 -0
  152. package/dist/sync/next-mutation-event-id-pair.d.ts.map +1 -0
  153. package/dist/sync/next-mutation-event-id-pair.js +13 -0
  154. package/dist/sync/next-mutation-event-id-pair.js.map +1 -0
  155. package/dist/sync/syncstate.d.ts +2 -2
  156. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-event.js","sourceRoot":"","sources":["../../src/leader-thread/apply-event.ts"],"names":[],"mappings":"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"}
@@ -2,5 +2,5 @@ import { Effect } from '@livestore/utils/effect';
2
2
  import { UnexpectedError } from '../index.js';
3
3
  import type { DevtoolsOptions } from './types.js';
4
4
  import { LeaderThreadCtx } from './types.js';
5
- export declare const bootDevtools: (options: DevtoolsOptions) => Effect.Effect<void, UnexpectedError, import("effect/Scope").Scope | LeaderThreadCtx | import("@effect/platform/HttpClient").HttpClient>;
5
+ export declare const bootDevtools: (options: DevtoolsOptions) => Effect.Effect<void, UnexpectedError, LeaderThreadCtx | import("effect/Scope").Scope | import("@effect/platform/HttpClient").HttpClient>;
6
6
  //# sourceMappingURL=leader-worker-devtools.d.ts.map
@@ -0,0 +1,14 @@
1
+ import type { LiveStoreSchema } from './schema/index.js';
2
+ import type { MutationDef, MutationEvent } from './schema/mutations.js';
3
+ import type { PreparedBindValues } from './util.js';
4
+ export declare const getExecArgsFromMutation: ({ mutationDef, mutationEventDecoded, }: {
5
+ mutationDef: MutationDef.Any;
6
+ mutationEventDecoded: MutationEvent.Any;
7
+ }) => ReadonlyArray<{
8
+ statementSql: string;
9
+ bindValues: PreparedBindValues;
10
+ writeTables: ReadonlySet<string> | undefined;
11
+ }>;
12
+ export declare const makeShouldExcludeMutationFromLog: (schema: LiveStoreSchema) => (mutationName: string, mutationEventDecoded: MutationEvent.Any) => boolean;
13
+ export declare const replaceSessionIdSymbol: (bindValues: Record<string, unknown> | ReadonlyArray<unknown>, sessionId: string) => void;
14
+ //# sourceMappingURL=mutation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGnD,eAAO,MAAM,uBAAuB,GAAI,wCAGrC;IACD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAA;IAC5B,oBAAoB,EAAE,aAAa,CAAC,GAAG,CAAA;CACxC,KAAG,aAAa,CAAC;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,kBAAkB,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CAC7C,CAiCA,CAAA;AAED,eAAO,MAAM,gCAAgC,WAAyB,eAAe,oBAO7D,MAAM,wBAAwB,aAAa,CAAC,GAAG,KAAG,OAQxE,CAAA;AAIF,eAAO,MAAM,sBAAsB,GACjC,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAC5D,WAAW,MAAM,SAGlB,CAAA"}
@@ -0,0 +1,71 @@
1
+ import { memoizeByRef, shouldNeverHappen } from '@livestore/utils';
2
+ import { Schema } from '@livestore/utils/effect';
3
+ import { SessionIdSymbol } from './adapter-types.js';
4
+ import { prepareBindValues } from './util.js';
5
+ export const getExecArgsFromMutation = ({ mutationDef, mutationEventDecoded, }) => {
6
+ let statementRes;
7
+ switch (typeof mutationDef.sql) {
8
+ case 'function': {
9
+ const res = mutationDef.sql(mutationEventDecoded.args);
10
+ statementRes = Array.isArray(res) ? res : [res];
11
+ break;
12
+ }
13
+ case 'string': {
14
+ statementRes = [mutationDef.sql];
15
+ break;
16
+ }
17
+ default: {
18
+ statementRes = mutationDef.sql;
19
+ break;
20
+ }
21
+ }
22
+ return statementRes.map((statementRes) => {
23
+ const statementSql = typeof statementRes === 'string' ? statementRes : statementRes.sql;
24
+ const bindValues = typeof statementRes === 'string'
25
+ ? Schema.encodeUnknownSync(mutationDef.schema)(mutationEventDecoded.args)
26
+ : statementRes.bindValues;
27
+ const writeTables = typeof statementRes === 'string' ? undefined : statementRes.writeTables;
28
+ return { statementSql, bindValues: prepareBindValues(bindValues ?? {}, statementSql), writeTables };
29
+ });
30
+ };
31
+ export const makeShouldExcludeMutationFromLog = memoizeByRef((schema) => {
32
+ const migrationOptions = schema.migrationOptions;
33
+ const mutationLogExclude = migrationOptions.strategy === 'from-mutation-log'
34
+ ? (migrationOptions.excludeMutations ?? new Set(['livestore.RawSql']))
35
+ : new Set(['livestore.RawSql']);
36
+ return (mutationName, mutationEventDecoded) => {
37
+ if (mutationLogExclude.has(mutationName))
38
+ return true;
39
+ const mutationDef = schema.mutations.get(mutationName) ?? shouldNeverHappen(`Unknown mutation: ${mutationName}`);
40
+ const execArgsArr = getExecArgsFromMutation({ mutationDef, mutationEventDecoded });
41
+ return execArgsArr.some((_) => _.statementSql.includes('__livestore'));
42
+ };
43
+ });
44
+ // NOTE we should explore whether there is a more elegant solution
45
+ // e.g. by leveraging the schema to replace the sessionIdSymbol
46
+ export const replaceSessionIdSymbol = (bindValues, sessionId) => {
47
+ deepReplaceValue(bindValues, SessionIdSymbol, sessionId);
48
+ };
49
+ const deepReplaceValue = (input, searchValue, replaceValue) => {
50
+ if (Array.isArray(input)) {
51
+ for (const i in input) {
52
+ if (input[i] === searchValue) {
53
+ input[i] = replaceValue;
54
+ }
55
+ else {
56
+ deepReplaceValue(input[i], searchValue, replaceValue);
57
+ }
58
+ }
59
+ }
60
+ else if (typeof input === 'object' && input !== null) {
61
+ for (const key in input) {
62
+ if (input[key] === searchValue) {
63
+ input[key] = replaceValue;
64
+ }
65
+ else {
66
+ deepReplaceValue(input[key], searchValue, replaceValue);
67
+ }
68
+ }
69
+ }
70
+ };
71
+ //# sourceMappingURL=mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation.js","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,293 @@
1
+ import type { GetValForKey, SingleOrReadonlyArray } from '@livestore/utils';
2
+ import { type Option, type Schema } from '@livestore/utils/effect';
3
+ import type { SessionIdSymbol } from '../../../../adapter-types.js';
4
+ import type { SqlValue } from '../../../../util.js';
5
+ import type { State } from '../../../mod.js';
6
+ import type { SqliteDsl } from '../db-schema/mod.js';
7
+ import type { ClientDocumentTableDef } from '../schema/client-document-def.js';
8
+ export type QueryBuilderAst = QueryBuilderAst.SelectQuery | QueryBuilderAst.CountQuery | QueryBuilderAst.RowQuery | QueryBuilderAst.InsertQuery | QueryBuilderAst.UpdateQuery | QueryBuilderAst.DeleteQuery;
9
+ export declare namespace QueryBuilderAst {
10
+ interface SelectQuery {
11
+ readonly _tag: 'SelectQuery';
12
+ readonly columns: string[];
13
+ readonly pickFirst: false | {
14
+ fallback: () => any;
15
+ } | 'no-fallback';
16
+ readonly select: {
17
+ columns: ReadonlyArray<string>;
18
+ };
19
+ readonly orderBy: ReadonlyArray<OrderBy>;
20
+ readonly offset: Option.Option<number>;
21
+ readonly limit: Option.Option<number>;
22
+ readonly tableDef: State.SQLite.TableDefBase;
23
+ readonly where: ReadonlyArray<QueryBuilderAst.Where>;
24
+ readonly resultSchemaSingle: Schema.Schema<any>;
25
+ }
26
+ interface CountQuery {
27
+ readonly _tag: 'CountQuery';
28
+ readonly tableDef: State.SQLite.TableDefBase;
29
+ readonly where: ReadonlyArray<QueryBuilderAst.Where>;
30
+ readonly resultSchema: Schema.Schema<number, ReadonlyArray<{
31
+ count: number;
32
+ }>>;
33
+ }
34
+ interface RowQuery {
35
+ readonly _tag: 'RowQuery';
36
+ readonly tableDef: State.SQLite.ClientDocumentTableDef.Any;
37
+ readonly id: string | SessionIdSymbol;
38
+ readonly explicitDefaultValues: Record<string, unknown>;
39
+ }
40
+ interface InsertQuery {
41
+ readonly _tag: 'InsertQuery';
42
+ readonly tableDef: State.SQLite.TableDefBase;
43
+ readonly values: Record<string, unknown>;
44
+ readonly onConflict: OnConflict | undefined;
45
+ readonly returning: string[] | undefined;
46
+ readonly resultSchema: Schema.Schema<any>;
47
+ }
48
+ interface OnConflict {
49
+ /** Conflicting column name */
50
+ readonly targets: string[];
51
+ readonly action: {
52
+ readonly _tag: 'ignore';
53
+ } | {
54
+ readonly _tag: 'replace';
55
+ } | {
56
+ readonly _tag: 'update';
57
+ readonly update: Record<string, unknown>;
58
+ };
59
+ }
60
+ interface UpdateQuery {
61
+ readonly _tag: 'UpdateQuery';
62
+ readonly tableDef: State.SQLite.TableDefBase;
63
+ readonly values: Record<string, unknown>;
64
+ readonly where: ReadonlyArray<QueryBuilderAst.Where>;
65
+ readonly returning: string[] | undefined;
66
+ readonly resultSchema: Schema.Schema<any>;
67
+ }
68
+ interface DeleteQuery {
69
+ readonly _tag: 'DeleteQuery';
70
+ readonly tableDef: State.SQLite.TableDefBase;
71
+ readonly where: ReadonlyArray<QueryBuilderAst.Where>;
72
+ readonly returning: string[] | undefined;
73
+ readonly resultSchema: Schema.Schema<any>;
74
+ }
75
+ type WriteQuery = InsertQuery | UpdateQuery | DeleteQuery;
76
+ interface Where {
77
+ readonly col: string;
78
+ readonly op: QueryBuilder.WhereOps;
79
+ readonly value: unknown;
80
+ }
81
+ interface OrderBy {
82
+ readonly col: string;
83
+ readonly direction: 'asc' | 'desc';
84
+ }
85
+ }
86
+ export declare const QueryBuilderAstSymbol: unique symbol;
87
+ export type QueryBuilderAstSymbol = typeof QueryBuilderAstSymbol;
88
+ export declare const QueryBuilderResultSymbol: unique symbol;
89
+ export type QueryBuilderResultSymbol = typeof QueryBuilderResultSymbol;
90
+ export declare const QueryBuilderTypeId: unique symbol;
91
+ export type QueryBuilderTypeId = typeof QueryBuilderTypeId;
92
+ export declare const isQueryBuilder: (value: unknown) => value is QueryBuilder<any, any, any>;
93
+ export type QueryBuilder<TResult, TTableDef extends State.SQLite.TableDefBase,
94
+ /** Used to gradually remove features from the API based on the query context */
95
+ TWithout extends QueryBuilder.ApiFeature = never> = {
96
+ readonly [QueryBuilderTypeId]: QueryBuilderTypeId;
97
+ readonly [QueryBuilderAstSymbol]: QueryBuilderAst;
98
+ readonly ['ResultType']: TResult;
99
+ readonly asSql: () => {
100
+ query: string;
101
+ bindValues: SqlValue[];
102
+ };
103
+ readonly toString: () => string;
104
+ } & Omit<QueryBuilder.ApiFull<TResult, TTableDef, TWithout>, TWithout>;
105
+ export declare namespace QueryBuilder {
106
+ type Any = QueryBuilder<any, any, any>;
107
+ type WhereOps = WhereOps.Equality | WhereOps.Order | WhereOps.Like | WhereOps.In;
108
+ namespace WhereOps {
109
+ type Equality = '=' | '!=';
110
+ type Order = '<' | '>' | '<=' | '>=';
111
+ type Like = 'LIKE' | 'NOT LIKE' | 'ILIKE' | 'NOT ILIKE';
112
+ type In = 'IN' | 'NOT IN';
113
+ type SingleValue = Equality | Order | Like;
114
+ type MultiValue = In;
115
+ }
116
+ type ApiFeature = 'select' | 'where' | 'count' | 'orderBy' | 'offset' | 'limit' | 'first' | 'row' | 'insert' | 'update' | 'delete' | 'returning' | 'onConflict';
117
+ type WhereParams<TTableDef extends State.SQLite.TableDefBase> = Partial<{
118
+ [K in keyof TTableDef['sqliteDef']['columns']]: TTableDef['sqliteDef']['columns'][K]['schema']['Type'] | {
119
+ op: QueryBuilder.WhereOps.SingleValue;
120
+ value: TTableDef['sqliteDef']['columns'][K]['schema']['Type'];
121
+ } | {
122
+ op: QueryBuilder.WhereOps.MultiValue;
123
+ value: ReadonlyArray<TTableDef['sqliteDef']['columns'][K]['schema']['Type']>;
124
+ } | undefined;
125
+ }>;
126
+ type OrderByParams<TTableDef extends State.SQLite.TableDefBase> = ReadonlyArray<{
127
+ col: keyof TTableDef['sqliteDef']['columns'] & string;
128
+ direction: 'asc' | 'desc';
129
+ }>;
130
+ type ApiFull<TResult, TTableDef extends State.SQLite.TableDefBase, TWithout extends ApiFeature> = {
131
+ /**
132
+ * `SELECT *` is the default
133
+ *
134
+ * Example:
135
+ * ```ts
136
+ * db.todos.select('id', 'text', 'completed')
137
+ * db.todos.select('id')
138
+ * ```
139
+ */
140
+ readonly select: {
141
+ /** Selects and plucks a single column */
142
+ <TColumn extends keyof TTableDef['sqliteDef']['columns'] & string>(pluckColumn: TColumn): QueryBuilder<ReadonlyArray<TTableDef['sqliteDef']['columns'][TColumn]['schema']['Type']>, TTableDef, TWithout | 'row' | 'select' | 'returning' | 'onConflict'>;
143
+ /** Select multiple columns */
144
+ <TColumns extends keyof TTableDef['sqliteDef']['columns'] & string>(...columns: TColumns[]): QueryBuilder<ReadonlyArray<{
145
+ readonly [K in TColumns]: TTableDef['sqliteDef']['columns'][K]['schema']['Type'];
146
+ }>, TTableDef, TWithout | 'row' | 'select' | 'count' | 'returning' | 'onConflict'>;
147
+ };
148
+ /**
149
+ * Notes:
150
+ * - All where clauses are `AND`ed together by default.
151
+ * - `null` values only support `=` and `!=` which is translated to `IS NULL` and `IS NOT NULL`.
152
+ *
153
+ * Example:
154
+ * ```ts
155
+ * db.todos.where('completed', true)
156
+ * db.todos.where('completed', '!=', true)
157
+ * db.todos.where({ completed: true })
158
+ * db.todos.where({ completed: { op: '!=', value: true } })
159
+ * ```
160
+ *
161
+ * TODO: Also support `OR`
162
+ */
163
+ readonly where: {
164
+ (params: QueryBuilder.WhereParams<TTableDef>): QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'select'>;
165
+ <TColName extends keyof TTableDef['sqliteDef']['columns']>(col: TColName, value: TTableDef['sqliteDef']['columns'][TColName]['schema']['Type']): QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'select'>;
166
+ <TColName extends keyof TTableDef['sqliteDef']['columns']>(col: TColName, op: QueryBuilder.WhereOps, value: TTableDef['sqliteDef']['columns'][TColName]['schema']['Type']): QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'select'>;
167
+ };
168
+ /**
169
+ * Example:
170
+ * ```ts
171
+ * db.todos.count()
172
+ * db.todos.count().where('completed', true)
173
+ * ```
174
+ */
175
+ readonly count: () => QueryBuilder<number, TTableDef, TWithout | 'row' | 'count' | 'select' | 'orderBy' | 'first' | 'offset' | 'limit' | 'returning' | 'onConflict'>;
176
+ /**
177
+ * Example:
178
+ * ```ts
179
+ * db.todos.orderBy('createdAt', 'desc')
180
+ * ```
181
+ */
182
+ readonly orderBy: {
183
+ <TColName extends keyof TTableDef['sqliteDef']['columns'] & string>(col: TColName, direction: 'asc' | 'desc'): QueryBuilder<TResult, TTableDef, TWithout | 'returning' | 'onConflict'>;
184
+ <TParams extends QueryBuilder.OrderByParams<TTableDef>>(params: TParams): QueryBuilder<TResult, TTableDef, TWithout | 'returning' | 'onConflict'>;
185
+ };
186
+ /**
187
+ * Example:
188
+ * ```ts
189
+ * db.todos.offset(10)
190
+ * ```
191
+ */
192
+ readonly offset: (offset: number) => QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'offset' | 'orderBy' | 'returning' | 'onConflict'>;
193
+ /**
194
+ * Example:
195
+ * ```ts
196
+ * db.todos.limit(10)
197
+ * ```
198
+ */
199
+ readonly limit: (limit: number) => QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'limit' | 'offset' | 'first' | 'orderBy' | 'returning' | 'onConflict'>;
200
+ /**
201
+ * Example:
202
+ * ```ts
203
+ * db.todos.first()
204
+ * db.todos.where('id', '123').first()
205
+ * ```
206
+ *
207
+ * Query will fail if no rows are returned and no fallback is provided.
208
+ */
209
+ readonly first: <TFallback = never>(options?: {
210
+ fallback?: () => TFallback | GetSingle<TResult>;
211
+ }) => QueryBuilder<TFallback | GetSingle<TResult>, TTableDef, TWithout | 'row' | 'first' | 'orderBy' | 'select' | 'limit' | 'offset' | 'where' | 'returning' | 'onConflict'>;
212
+ /**
213
+ * Insert a new row into the table
214
+ *
215
+ * Example:
216
+ * ```ts
217
+ * db.todos.insert({ id: '123', text: 'Buy milk', status: 'active' })
218
+ * ```
219
+ */
220
+ readonly insert: (values: TTableDef['insertSchema']['Type']) => QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'select' | 'count' | 'orderBy' | 'first' | 'offset' | 'limit' | 'where'>;
221
+ /**
222
+ * Example: If the row already exists, it will be ignored.
223
+ * ```ts
224
+ * db.todos.insert({ id: '123', text: 'Buy milk', status: 'active' }).onConflict('id', 'ignore')
225
+ * ```
226
+ *
227
+ * Example: If the row already exists, it will be replaced.
228
+ * ```ts
229
+ * db.todos.insert({ id: '123', text: 'Buy milk', status: 'active' }).onConflict('id', 'replace')
230
+ * ```
231
+ *
232
+ * Example: If the row already exists, it will be updated.
233
+ * ```ts
234
+ * db.todos.insert({ id: '123', text: 'Buy milk', status: 'active' }).onConflict('id', 'update', { text: 'Buy soy milk' })
235
+ * ```
236
+ *
237
+ * NOTE This API doesn't yet support composite primary keys.
238
+ */
239
+ readonly onConflict: {
240
+ <TTarget extends SingleOrReadonlyArray<keyof TTableDef['sqliteDef']['columns']>>(target: TTarget, action: 'ignore' | 'replace'): QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'select' | 'count' | 'orderBy' | 'first' | 'offset' | 'limit' | 'where'>;
241
+ <TTarget extends SingleOrReadonlyArray<keyof TTableDef['sqliteDef']['columns']>>(target: TTarget, action: 'update', updateValues: Partial<TTableDef['rowSchema']['Type']>): QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'select' | 'count' | 'orderBy' | 'first' | 'offset' | 'limit' | 'where'>;
242
+ };
243
+ /**
244
+ * Similar to the `.select` API but for write queries (insert, update, delete).
245
+ *
246
+ * Example:
247
+ * ```ts
248
+ * db.todos.insert({ id: '123', text: 'Buy milk', status: 'active' }).returning('id')
249
+ * ```
250
+ */
251
+ readonly returning: <TColumns extends keyof TTableDef['sqliteDef']['columns'] & string>(...columns: TColumns[]) => QueryBuilder<ReadonlyArray<{
252
+ readonly [K in TColumns]: TTableDef['sqliteDef']['columns'][K]['schema']['Type'];
253
+ }>, TTableDef>;
254
+ /**
255
+ * Update rows in the table that match the where clause
256
+ *
257
+ * Example:
258
+ * ```ts
259
+ * db.todos.update({ status: 'completed' }).where({ id: '123' })
260
+ * ```
261
+ */
262
+ readonly update: (values: Partial<TTableDef['rowSchema']['Type']>) => QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'select' | 'count' | 'orderBy' | 'first' | 'offset' | 'limit' | 'onConflict'>;
263
+ /**
264
+ * Delete rows from the table that match the where clause
265
+ *
266
+ * Example:
267
+ * ```ts
268
+ * db.todos.delete().where({ status: 'completed' })
269
+ * ```
270
+ *
271
+ * Note that it's generally recommended to do soft-deletes for synced apps.
272
+ */
273
+ readonly delete: () => QueryBuilder<TResult, TTableDef, TWithout | 'row' | 'select' | 'count' | 'orderBy' | 'first' | 'offset' | 'limit' | 'onConflict'>;
274
+ };
275
+ }
276
+ export declare namespace RowQuery {
277
+ type GetOrCreateOptions<TTableDef extends ClientDocumentTableDef.TraitAny> = {
278
+ default: Partial<TTableDef['Value']>;
279
+ };
280
+ type RequiredColumnsOptions<TTableDef extends State.SQLite.TableDefBase> = {
281
+ /**
282
+ * Values to be inserted into the row if it doesn't exist yet
283
+ */
284
+ explicitDefaultValues: Pick<SqliteDsl.FromColumns.RowDecodedAll<TTableDef['sqliteDef']['columns']>, SqliteDsl.FromColumns.RequiredInsertColumnNames<Omit<TTableDef['sqliteDef']['columns'], 'id'>>>;
285
+ };
286
+ type Result<TTableDef extends State.SQLite.TableDefBase> = SqliteDsl.FromColumns.RowDecoded<TTableDef['sqliteDef']['columns']>;
287
+ type DocumentResult<TTableDef extends ClientDocumentTableDef.Any> = GetValForKey<SqliteDsl.FromColumns.RowDecoded<TTableDef['sqliteDef']['columns']>, 'value'>;
288
+ type ResultEncoded<TTableDef extends State.SQLite.TableDefBase> = TTableDef['options']['isClientDocumentTable'] extends true ? GetValForKey<SqliteDsl.FromColumns.RowEncoded<TTableDef['sqliteDef']['columns']>, 'value'> : SqliteDsl.FromColumns.RowEncoded<TTableDef['sqliteDef']['columns']>;
289
+ type GetIdColumnType<TTableDef extends State.SQLite.TableDefBase> = TTableDef['sqliteDef']['columns']['id']['schema']['Type'];
290
+ }
291
+ type GetSingle<T> = T extends ReadonlyArray<infer U> ? U : never;
292
+ export {};
293
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/query-builder/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Predicate } from '@livestore/utils/effect';
2
+ export const QueryBuilderAstSymbol = Symbol.for('QueryBuilderAst');
3
+ export const QueryBuilderResultSymbol = Symbol.for('QueryBuilderResult');
4
+ export const QueryBuilderTypeId = Symbol.for('QueryBuilder');
5
+ export const isQueryBuilder = (value) => Predicate.hasProperty(value, QueryBuilderTypeId);
6
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/query-builder/api.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,SAAS,EAAe,MAAM,yBAAyB,CAAA;AAkG7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAGlE,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;AAGxE,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAG5D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAc,EAAwC,EAAE,CACrF,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { SqlValue } from '../util.js';
2
+ import type { QueryBuilderAst } from './api.js';
3
+ export declare const astToSql: (ast: QueryBuilderAst) => {
4
+ query: string;
5
+ bindValues: SqlValue[];
6
+ };
7
+ //# sourceMappingURL=astToSql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"astToSql.d.ts","sourceRoot":"","sources":["../../src/query-builder/astToSql.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AA6D/C,eAAO,MAAM,QAAQ,GAAI,KAAK,eAAe,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,QAAQ,EAAE,CAAA;CAoKtF,CAAA"}