@livestore/common 0.0.58-dev.6 → 0.0.58-dev.7
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.
- package/dist/.tsbuildinfo +1 -1
- package/dist/adapter-types.d.ts +29 -3
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +5 -0
- package/dist/adapter-types.js.map +1 -1
- package/dist/debug-info.d.ts +8 -8
- package/dist/derived-mutations.d.ts +4 -4
- package/dist/derived-mutations.d.ts.map +1 -1
- package/dist/derived-mutations.test.js +1 -0
- package/dist/derived-mutations.test.js.map +1 -1
- package/dist/devtools/devtools-bridge.d.ts +1 -1
- package/dist/devtools/devtools-bridge.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.d.ts +99 -21
- package/dist/devtools/devtools-messages.d.ts.map +1 -1
- package/dist/devtools/devtools-messages.js +13 -4
- package/dist/devtools/devtools-messages.js.map +1 -1
- package/dist/devtools/index.d.ts +1 -0
- package/dist/devtools/index.d.ts.map +1 -1
- package/dist/devtools/index.js +2 -0
- package/dist/devtools/index.js.map +1 -1
- package/dist/rehydrate-from-mutationlog.d.ts.map +1 -1
- package/dist/rehydrate-from-mutationlog.js +11 -5
- package/dist/rehydrate-from-mutationlog.js.map +1 -1
- package/dist/schema/mutations.d.ts +137 -18
- package/dist/schema/mutations.d.ts.map +1 -1
- package/dist/schema/mutations.js +41 -16
- package/dist/schema/mutations.js.map +1 -1
- package/dist/schema/system-tables.d.ts +118 -5
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +22 -8
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/schema-management/migrations.js +1 -1
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/sync/next/compact-events.d.ts +15 -0
- package/dist/sync/next/compact-events.d.ts.map +1 -0
- package/dist/sync/next/compact-events.js +176 -0
- package/dist/sync/next/compact-events.js.map +1 -0
- package/dist/sync/next/facts.d.ts +37 -0
- package/dist/sync/next/facts.d.ts.map +1 -0
- package/dist/sync/next/facts.js +155 -0
- package/dist/sync/next/facts.js.map +1 -0
- package/dist/sync/next/graphology.d.ts +8 -0
- package/dist/sync/next/graphology.d.ts.map +1 -0
- package/dist/sync/next/graphology.js +36 -0
- package/dist/sync/next/graphology.js.map +1 -0
- package/dist/sync/next/graphology_.d.ts +3 -0
- package/dist/sync/next/graphology_.d.ts.map +1 -0
- package/dist/sync/next/graphology_.js +3 -0
- package/dist/sync/next/graphology_.js.map +1 -0
- package/dist/sync/next/history-dag.d.ts +30 -0
- package/dist/sync/next/history-dag.d.ts.map +1 -0
- package/dist/sync/next/history-dag.js +69 -0
- package/dist/sync/next/history-dag.js.map +1 -0
- package/dist/sync/next/mod.d.ts +5 -0
- package/dist/sync/next/mod.d.ts.map +1 -0
- package/dist/sync/next/mod.js +5 -0
- package/dist/sync/next/mod.js.map +1 -0
- package/dist/sync/next/mutation-fixtures.d.ts +73 -0
- package/dist/sync/next/mutation-fixtures.d.ts.map +1 -0
- package/dist/sync/next/mutation-fixtures.js +160 -0
- package/dist/sync/next/mutation-fixtures.js.map +1 -0
- package/dist/sync/next/rebase-events.d.ts +27 -0
- package/dist/sync/next/rebase-events.d.ts.map +1 -0
- package/dist/sync/next/rebase-events.js +41 -0
- package/dist/sync/next/rebase-events.js.map +1 -0
- package/dist/sync/next/test/compact-events.calculator.test.d.ts +2 -0
- package/dist/sync/next/test/compact-events.calculator.test.d.ts.map +1 -0
- package/dist/sync/next/test/compact-events.calculator.test.js +101 -0
- package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -0
- package/dist/sync/next/test/compact-events.test.d.ts +2 -0
- package/dist/sync/next/test/compact-events.test.d.ts.map +1 -0
- package/dist/sync/next/test/compact-events.test.js +201 -0
- package/dist/sync/next/test/compact-events.test.js.map +1 -0
- package/dist/sync/next/test/mod.d.ts +2 -0
- package/dist/sync/next/test/mod.d.ts.map +1 -0
- package/dist/sync/next/test/mod.js +2 -0
- package/dist/sync/next/test/mod.js.map +1 -0
- package/dist/sync/next/test/mutation-fixtures.d.ts +73 -0
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +1 -0
- package/dist/sync/next/test/mutation-fixtures.js +161 -0
- package/dist/sync/next/test/mutation-fixtures.js.map +1 -0
- package/dist/sync/sync.d.ts +5 -4
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/sync.js.map +1 -1
- package/package.json +21 -4
- package/src/adapter-types.ts +27 -3
- package/src/derived-mutations.test.ts +2 -1
- package/src/derived-mutations.ts +5 -5
- package/src/devtools/devtools-bridge.ts +1 -1
- package/src/devtools/devtools-messages.ts +12 -2
- package/src/devtools/index.ts +2 -0
- package/src/rehydrate-from-mutationlog.ts +16 -7
- package/src/schema/mutations.ts +171 -30
- package/src/schema/system-tables.ts +30 -8
- package/src/schema-management/migrations.ts +1 -1
- package/src/sync/next/ambient.d.ts +3 -0
- package/src/sync/next/compact-events.ts +219 -0
- package/src/sync/next/facts.ts +228 -0
- package/src/sync/next/graphology.ts +49 -0
- package/src/sync/next/graphology_.ts +2 -0
- package/src/sync/next/history-dag.ts +109 -0
- package/src/sync/next/mod.ts +4 -0
- package/src/sync/next/rebase-events.ts +97 -0
- package/src/sync/next/test/compact-events.calculator.test.ts +121 -0
- package/src/sync/next/test/compact-events.test.ts +232 -0
- package/src/sync/next/test/mod.ts +1 -0
- package/src/sync/next/test/mutation-fixtures.ts +230 -0
- package/src/sync/sync.ts +10 -4
- package/dist/global-types.d.ts +0 -7
- package/dist/global-types.d.ts.map +0 -1
- package/dist/global-types.js +0 -2
- package/dist/global-types.js.map +0 -1
- package/src/global-types.d.ts +0 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AAEpC,MAAM,KAAW,SAAS,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/devtools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAE5D,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AAEpC,MAAM,KAAW,SAAS,CAyCzB;AAzCD,WAAiB,SAAS;IACxB,MAAa,YAAa,SAAQ,MAAM,CAAC,YAAY,CAAC,4BAA4B,EAAE;QAClF,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB,0BAA0B;QAC1B,QAAQ,EAAE,MAAM,CAAC,OAAO;KACzB,CAAC;KAAG;IAJQ,sBAAY,eAIpB,CAAA;IAEL,MAAa,aAAc,SAAQ,MAAM,CAAC,YAAY,CAAC,6BAA6B,EAAE;QACpF,UAAU,EAAE,MAAM,CAAC,MAAM;KAC1B,CAAC;KAAG;IAFQ,uBAAa,gBAErB,CAAA;IAEL,MAAa,iBAAkB,SAAQ,MAAM,CAAC,YAAY,CAAC,iCAAiC,EAAE;QAC5F,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,SAAS,EAAE,MAAM,CAAC,MAAM;QACxB;;;WAGG;QACH,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,QAAQ,EAAE,MAAM,CAAC,OAAO;QACxB,OAAO,EAAE,MAAM,CAAC,MAAM;KACvB,CAAC;KAAG;IAVQ,2BAAiB,oBAUzB,CAAA;IAEL,MAAa,qBAAsB,SAAQ,MAAM,CAAC,YAAY,CAAC,qCAAqC,EAAE;QACpG,SAAS,EAAE,MAAM,CAAC,MAAM;KACzB,CAAC;KAAG;IAFQ,+BAAqB,wBAE7B,CAAA;IAEL,4GAA4G;IAC5G,8BAA8B;IAC9B,QAAQ;IAER,MAAa,GAAI,SAAQ,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,CAAC;KAAG;IAAlG,aAAG,MAA+F,CAAA;IAElG,8BAAoB,GAAG,CAClC,GAAY,EACgF,EAAE,CAC9F,UAAU,CAAC,gBAAgB,CAAC;QAC1B,WAAW,EAAE,gCAAgC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACnE,YAAY,EAAE,GAAG;QACjB,UAAU,EAAE,GAAG;KAChB,CAAC,CAAA;AACN,CAAC,EAzCgB,SAAS,KAAT,SAAS,QAyCzB"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rehydrate-from-mutationlog.d.ts","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAA0B,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAE,KAAK,+BAA+B,EAAE,KAAK,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpH,OAAO,KAAK,EAAE,eAAe,
|
1
|
+
{"version":3,"file":"rehydrate-from-mutationlog.d.ts","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAA0B,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAE,KAAK,+BAA+B,EAAE,KAAK,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpH,OAAO,KAAK,EAAE,eAAe,EAAkD,MAAM,mBAAmB,CAAA;AAKxG,eAAO,MAAM,wBAAwB,yDAMlC;IACD,KAAK,EAAE,mBAAmB,CAAA;IAC1B,EAAE,EAAE,mBAAmB,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,gBAAgB,EAAE,+BAA+B,CAAA;IACjD,UAAU,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACxE,gDA4GE,CAAA"}
|
@@ -23,7 +23,8 @@ This likely means the schema has changed in an incompatible way.
|
|
23
23
|
`,
|
24
24
|
})));
|
25
25
|
const mutationEventDecoded = {
|
26
|
-
id: row.
|
26
|
+
id: { global: row.idGlobal, local: row.idLocal },
|
27
|
+
parentId: { global: row.parentIdGlobal, local: row.parentIdLocal },
|
27
28
|
mutation: row.mutation,
|
28
29
|
args: argsDecoded,
|
29
30
|
};
|
@@ -44,8 +45,8 @@ This likely means the schema has changed in an incompatible way.
|
|
44
45
|
const CHUNK_SIZE = 100;
|
45
46
|
const stmt = logDb.prepare(sql `\
|
46
47
|
SELECT * FROM ${MUTATION_LOG_META_TABLE}
|
47
|
-
WHERE
|
48
|
-
ORDER BY
|
48
|
+
WHERE idGlobal > COALESCE($idGlobal, '') AND idLocal > COALESCE($idLocal, '')
|
49
|
+
ORDER BY idGlobal ASC, idLocal ASC
|
49
50
|
LIMIT ${CHUNK_SIZE}
|
50
51
|
`);
|
51
52
|
let processedMutations = 0;
|
@@ -53,8 +54,13 @@ LIMIT ${CHUNK_SIZE}
|
|
53
54
|
// End stream if no more rows
|
54
55
|
if (Chunk.isChunk(item) && item.length === 0)
|
55
56
|
return Option.none();
|
56
|
-
const lastId = Chunk.isChunk(item)
|
57
|
-
|
57
|
+
const lastId = Chunk.isChunk(item)
|
58
|
+
? Chunk.last(item).pipe(Option.map((_) => ({ global: _.idGlobal, local: _.idLocal })), Option.getOrUndefined)
|
59
|
+
: undefined;
|
60
|
+
const nextItem = Chunk.fromIterable(stmt.select({
|
61
|
+
$idGlobal: lastId?.global,
|
62
|
+
$idLocal: lastId?.local,
|
63
|
+
}));
|
58
64
|
const prevItem = Chunk.isChunk(item) ? item : Chunk.empty();
|
59
65
|
return Option.some([prevItem, nextItem]);
|
60
66
|
}).pipe(Stream.bufferChunks({ capacity: 2 }), Stream.tap((row) => Effect.gen(function* () {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rehydrate-from-mutationlog.js","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAkE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpH,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAEvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAE/B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,EACvC,KAAK,EACL,EAAE,EACF,MAAM,EACN,gBAAgB,EAChB,UAAU,GAOX,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CACjC,iCAAiC,uBAAuB,EAAE,CAC3D,CAAC,CAAC,CAAE,CAAC,KAAK,CAAA;IAEX,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,QAAyB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;IAE9F,MAAM,eAAe,GAAG,CAAC,GAAuB,EAAE,EAAE,CAClD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,iBAAiB,CAAC,oBAAoB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;QAE/G,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI;YAAE,OAAM;QAEzE,IAAI,YAAY,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC;YACjD,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,qCAAqC,GAAG,CAAC,QAAQ,oCAAoC,CACtF,CAAA;QACH,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CACtG,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,eAAe,CAAC,IAAI,CAAC;YACnB,KAAK;YACL,IAAI,EAAE;;kDAE8B,GAAG,CAAC,QAAQ;;CAE7D;SACY,CAAC,CACH,CACF,CAAA;QAED,MAAM,oBAAoB,GAAG;YAC3B,EAAE,EAAE,GAAG,CAAC,EAAE;
|
1
|
+
{"version":3,"file":"rehydrate-from-mutationlog.js","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { Schema } from '@livestore/utils/effect';
|
2
|
+
import { EventId } from '../adapter-types.js';
|
2
3
|
import type { BindValues } from '../sql-queries/sql-queries.js';
|
3
4
|
import type { LiveStoreSchema } from './index.js';
|
4
5
|
export type MutationDefMap = Map<string | 'livestore.RawSql', MutationDef.Any>;
|
@@ -21,29 +22,70 @@ export type SingleOrReadonlyArray<T> = T | ReadonlyArray<T>;
|
|
21
22
|
export type MutationDef<TName extends string, TFrom, TTo> = {
|
22
23
|
name: TName;
|
23
24
|
schema: Schema.Schema<TTo, TFrom>;
|
24
|
-
sql: MutationDefSqlResult<TTo
|
25
|
+
sql: MutationDefSqlResult<NoInfer<TTo>>;
|
25
26
|
options: {
|
27
|
+
/** Warning: This feature is not fully implemented yet */
|
28
|
+
historyId: string;
|
26
29
|
/**
|
27
30
|
* When set to true, the mutation won't be synced over the network
|
28
31
|
*/
|
29
32
|
localOnly: boolean;
|
33
|
+
/** Warning: This feature is not fully implemented yet */
|
34
|
+
facts: FactsCallback<TTo> | undefined;
|
30
35
|
};
|
31
|
-
/** Helper function to construct mutation event */
|
32
|
-
(args: TTo
|
36
|
+
/** Helper function to construct a partial mutation event */
|
37
|
+
(args: TTo, options?: {
|
38
|
+
id?: number;
|
39
|
+
}): {
|
33
40
|
mutation: TName;
|
34
41
|
args: TTo;
|
35
|
-
id
|
42
|
+
id?: EventId;
|
36
43
|
};
|
37
44
|
};
|
45
|
+
export type FactsCallback<TTo> = (args: TTo, currentFacts: MutationEventFacts) => {
|
46
|
+
modify: {
|
47
|
+
set: Iterable<MutationEventFactInput>;
|
48
|
+
unset: Iterable<MutationEventFactInput>;
|
49
|
+
};
|
50
|
+
require: Iterable<MutationEventFactInput>;
|
51
|
+
};
|
38
52
|
export declare namespace MutationDef {
|
39
53
|
type Any = MutationDef<string, any, any>;
|
40
54
|
}
|
41
|
-
export
|
55
|
+
export type MutationEventKey = string;
|
56
|
+
export type MutationEventFact = string;
|
57
|
+
export type MutationEventFacts = ReadonlyMap<string, any>;
|
58
|
+
export type MutationEventFactsGroup = {
|
59
|
+
modifySet: MutationEventFacts;
|
60
|
+
modifyUnset: MutationEventFacts;
|
61
|
+
/**
|
62
|
+
* Events on independent "dependency" branches are commutative which can facilitate more prioritized syncing
|
63
|
+
*/
|
64
|
+
depRequire: MutationEventFacts;
|
65
|
+
depRead: MutationEventFacts;
|
66
|
+
};
|
67
|
+
export type MutationEventFactsSnapshot = Map<string, any>;
|
68
|
+
export type MutationEventFactInput = string | readonly [string, any];
|
69
|
+
export declare const defineFacts: <TRecord extends Record<string, MutationEventFactInput | ((...args: any[]) => MutationEventFactInput)>>(record: TRecord) => TRecord;
|
70
|
+
export type DefineMutationOptions<TTo> = {
|
71
|
+
historyId?: string;
|
72
|
+
/** Warning: This feature is not fully implemented yet */
|
73
|
+
facts?: (args: TTo, currentFacts: MutationEventFacts) => {
|
74
|
+
modify?: {
|
75
|
+
set?: Iterable<MutationEventFactInput>;
|
76
|
+
unset?: Iterable<MutationEventFactInput>;
|
77
|
+
};
|
78
|
+
/**
|
79
|
+
* Two purposes: constrain history and constrain compaction
|
80
|
+
*/
|
81
|
+
require?: Iterable<MutationEventFactInput>;
|
82
|
+
};
|
42
83
|
/**
|
43
84
|
* When set to true, the mutation won't be synced over the network
|
44
85
|
*/
|
45
86
|
localOnly?: boolean;
|
46
|
-
}
|
87
|
+
};
|
88
|
+
export declare const defineMutation: <TName extends string, TFrom, TTo>(name: TName, schema: Schema.Schema<TTo, TFrom>, sql: MutationDefSqlResult<NoInfer<TTo>>, options?: DefineMutationOptions<TTo>) => MutationDef<TName, TFrom, TTo>;
|
47
89
|
export declare const makeMutationDefRecord: <TInputRecord extends Record<string, MutationDef.Any>>(inputRecord: TInputRecord) => { [K in TInputRecord[keyof TInputRecord]["name"]]: Extract<TInputRecord[keyof TInputRecord], {
|
48
90
|
name: K;
|
49
91
|
}>; };
|
@@ -54,27 +96,42 @@ export declare const rawSqlMutation: MutationDef<"livestore.RawSql", {
|
|
54
96
|
} | undefined;
|
55
97
|
readonly writeTables?: readonly string[] | undefined;
|
56
98
|
}, {
|
57
|
-
readonly sql: string;
|
58
99
|
readonly bindValues?: {
|
59
100
|
readonly [x: string]: any;
|
60
101
|
} | undefined;
|
102
|
+
readonly sql: string;
|
61
103
|
readonly writeTables?: ReadonlySet<string> | undefined;
|
62
104
|
}>;
|
63
105
|
export type RawSqlMutation = typeof rawSqlMutation;
|
64
106
|
export type RawSqlMutationEvent = ReturnType<typeof rawSqlMutation>;
|
107
|
+
export type MutationEventPartial<TMutationsDef extends MutationDef.Any> = {
|
108
|
+
mutation: TMutationsDef['name'];
|
109
|
+
args: Schema.Schema.Type<TMutationsDef['schema']>;
|
110
|
+
};
|
111
|
+
export type MutationEventPartialEncoded<TMutationsDef extends MutationDef.Any> = {
|
112
|
+
mutation: TMutationsDef['name'];
|
113
|
+
args: Schema.Schema.Encoded<TMutationsDef['schema']>;
|
114
|
+
};
|
65
115
|
export type MutationEvent<TMutationsDef extends MutationDef.Any> = {
|
66
116
|
mutation: TMutationsDef['name'];
|
67
117
|
args: Schema.Schema.Type<TMutationsDef['schema']>;
|
68
|
-
id:
|
118
|
+
id: EventId;
|
119
|
+
parentId: EventId;
|
69
120
|
};
|
70
121
|
export type MutationEventEncoded<TMutationsDef extends MutationDef.Any> = {
|
71
122
|
mutation: TMutationsDef['name'];
|
72
123
|
args: Schema.Schema.Encoded<TMutationsDef['schema']>;
|
73
|
-
id:
|
124
|
+
id: EventId;
|
125
|
+
parentId: EventId;
|
74
126
|
};
|
75
127
|
export declare namespace MutationEvent {
|
76
128
|
type Any = MutationEvent<MutationDef.Any>;
|
77
129
|
type AnyEncoded = MutationEventEncoded<MutationDef.Any>;
|
130
|
+
type PartialAny = MutationEventPartial<MutationDef.Any>;
|
131
|
+
type PartialAnyEncoded = MutationEventPartialEncoded<MutationDef.Any>;
|
132
|
+
type PartialForSchema<TSchema extends LiveStoreSchema> = {
|
133
|
+
[K in keyof TSchema['_MutationDefMapType']]: MutationEventPartial<TSchema['_MutationDefMapType'][K]>;
|
134
|
+
}[keyof TSchema['_MutationDefMapType']];
|
78
135
|
type ForSchema<TSchema extends LiveStoreSchema> = {
|
79
136
|
[K in keyof TSchema['_MutationDefMapType']]: MutationEvent<TSchema['_MutationDefMapType'][K]>;
|
80
137
|
}[keyof TSchema['_MutationDefMapType']];
|
@@ -83,25 +140,87 @@ export type MutationEventSchema<TMutationsDefRecord extends MutationDefRecord> =
|
|
83
140
|
[K in keyof TMutationsDefRecord]: {
|
84
141
|
mutation: K;
|
85
142
|
args: Schema.Schema.Type<TMutationsDefRecord[K]['schema']>;
|
86
|
-
id:
|
143
|
+
id: EventId;
|
144
|
+
parentId: EventId;
|
145
|
+
};
|
146
|
+
}[keyof TMutationsDefRecord], {
|
147
|
+
[K in keyof TMutationsDefRecord]: {
|
148
|
+
mutation: K;
|
149
|
+
args: Schema.Schema.Encoded<TMutationsDefRecord[K]['schema']>;
|
150
|
+
id: EventId;
|
151
|
+
parentId: EventId;
|
152
|
+
};
|
153
|
+
}[keyof TMutationsDefRecord]>;
|
154
|
+
export type MutationEventPartialSchema<TMutationsDefRecord extends MutationDefRecord> = Schema.Schema<{
|
155
|
+
[K in keyof TMutationsDefRecord]: {
|
156
|
+
mutation: K;
|
157
|
+
args: Schema.Schema.Type<TMutationsDefRecord[K]['schema']>;
|
87
158
|
};
|
88
159
|
}[keyof TMutationsDefRecord], {
|
89
160
|
[K in keyof TMutationsDefRecord]: {
|
90
161
|
mutation: K;
|
91
162
|
args: Schema.Schema.Encoded<TMutationsDefRecord[K]['schema']>;
|
92
|
-
id: string;
|
93
163
|
};
|
94
164
|
}[keyof TMutationsDefRecord]>;
|
95
165
|
export declare const makeMutationEventSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => MutationEventSchema<TSchema["_MutationDefMapType"]>;
|
166
|
+
export declare const makeMutationEventPartialSchema: <TSchema extends LiveStoreSchema>(schema: TSchema) => MutationEventPartialSchema<TSchema["_MutationDefMapType"]>;
|
96
167
|
export declare const makeMutationEventSchemaMemo: <TSchema extends LiveStoreSchema>(schema: TSchema) => MutationEventSchema<TSchema["_MutationDefMapType"]>;
|
97
|
-
export declare const
|
98
|
-
mutation: typeof Schema.String;
|
99
|
-
args: typeof Schema.Any;
|
100
|
-
id: typeof Schema.String;
|
101
|
-
}>;
|
102
|
-
export declare const mutationEventSchemaEncodedAny: Schema.Struct<{
|
168
|
+
export declare const mutationEventSchemaAny: Schema.Struct<{
|
103
169
|
mutation: typeof Schema.String;
|
104
170
|
args: typeof Schema.Any;
|
105
|
-
id:
|
171
|
+
id: Schema.Struct<{
|
172
|
+
global: typeof Schema.Number;
|
173
|
+
local: typeof Schema.Number;
|
174
|
+
}>;
|
175
|
+
parentId: Schema.Struct<{
|
176
|
+
global: typeof Schema.Number;
|
177
|
+
local: typeof Schema.Number;
|
178
|
+
}>;
|
106
179
|
}>;
|
180
|
+
export declare const mutationEventSchemaDecodedAny: Schema.SchemaClass<{
|
181
|
+
readonly id: {
|
182
|
+
readonly global: number;
|
183
|
+
readonly local: number;
|
184
|
+
};
|
185
|
+
readonly mutation: string;
|
186
|
+
readonly args: any;
|
187
|
+
readonly parentId: {
|
188
|
+
readonly global: number;
|
189
|
+
readonly local: number;
|
190
|
+
};
|
191
|
+
}, {
|
192
|
+
readonly id: {
|
193
|
+
readonly global: number;
|
194
|
+
readonly local: number;
|
195
|
+
};
|
196
|
+
readonly mutation: string;
|
197
|
+
readonly args: any;
|
198
|
+
readonly parentId: {
|
199
|
+
readonly global: number;
|
200
|
+
readonly local: number;
|
201
|
+
};
|
202
|
+
}, never>;
|
203
|
+
export declare const mutationEventSchemaEncodedAny: Schema.SchemaClass<{
|
204
|
+
readonly id: {
|
205
|
+
readonly global: number;
|
206
|
+
readonly local: number;
|
207
|
+
};
|
208
|
+
readonly mutation: string;
|
209
|
+
readonly args: any;
|
210
|
+
readonly parentId: {
|
211
|
+
readonly global: number;
|
212
|
+
readonly local: number;
|
213
|
+
};
|
214
|
+
}, {
|
215
|
+
readonly id: {
|
216
|
+
readonly global: number;
|
217
|
+
readonly local: number;
|
218
|
+
};
|
219
|
+
readonly mutation: string;
|
220
|
+
readonly args: any;
|
221
|
+
readonly parentId: {
|
222
|
+
readonly global: number;
|
223
|
+
readonly local: number;
|
224
|
+
};
|
225
|
+
}, never>;
|
107
226
|
//# sourceMappingURL=mutations.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/mutations.js
CHANGED
@@ -1,14 +1,32 @@
|
|
1
1
|
import { memoizeByRef } from '@livestore/utils';
|
2
|
-
import { cuid } from '@livestore/utils/cuid';
|
3
2
|
import { Schema } from '@livestore/utils/effect';
|
3
|
+
import { EventId } from '../adapter-types.js';
|
4
|
+
export const defineFacts = (record) => record;
|
4
5
|
// TODO possibly also allow for mutation event subsumption behaviour
|
5
6
|
export const defineMutation = (name, schema, sql, options) => {
|
6
|
-
const
|
7
|
-
Object.defineProperty(
|
8
|
-
Object.defineProperty(
|
9
|
-
Object.defineProperty(
|
10
|
-
Object.defineProperty(
|
11
|
-
|
7
|
+
const makePartialEvent = (args, options) => ({ mutation: name, args, ...options });
|
8
|
+
Object.defineProperty(makePartialEvent, 'name', { value: name });
|
9
|
+
Object.defineProperty(makePartialEvent, 'schema', { value: schema });
|
10
|
+
Object.defineProperty(makePartialEvent, 'sql', { value: sql });
|
11
|
+
Object.defineProperty(makePartialEvent, 'options', {
|
12
|
+
value: {
|
13
|
+
historyId: options?.historyId ?? 'main',
|
14
|
+
localOnly: options?.localOnly ?? false,
|
15
|
+
facts: options?.facts
|
16
|
+
? (args, currentFacts) => {
|
17
|
+
const res = options.facts(args, currentFacts);
|
18
|
+
return {
|
19
|
+
modify: {
|
20
|
+
set: res.modify?.set ? new Set(res.modify.set) : new Set(),
|
21
|
+
unset: res.modify?.unset ? new Set(res.modify.unset) : new Set(),
|
22
|
+
},
|
23
|
+
require: res.require ? new Set(res.require) : new Set(),
|
24
|
+
};
|
25
|
+
}
|
26
|
+
: undefined,
|
27
|
+
},
|
28
|
+
});
|
29
|
+
return makePartialEvent;
|
12
30
|
};
|
13
31
|
export const makeMutationDefRecord = (inputRecord) => {
|
14
32
|
const result = {};
|
@@ -26,17 +44,24 @@ export const rawSqlMutation = defineMutation('livestore.RawSql', Schema.Struct({
|
|
26
44
|
export const makeMutationEventSchema = (schema) => Schema.Union(...[...schema.mutations.values()].map((def) => Schema.Struct({
|
27
45
|
mutation: Schema.Literal(def.name),
|
28
46
|
args: def.schema,
|
29
|
-
id:
|
47
|
+
id: EventId,
|
48
|
+
parentId: EventId,
|
30
49
|
}))).annotations({ title: 'MutationEventSchema' });
|
50
|
+
export const makeMutationEventPartialSchema = (schema) => Schema.Union(...[...schema.mutations.values()].map((def) => Schema.Struct({
|
51
|
+
mutation: Schema.Literal(def.name),
|
52
|
+
args: def.schema,
|
53
|
+
}))).annotations({ title: 'MutationEventSchemaPartial' });
|
31
54
|
export const makeMutationEventSchemaMemo = memoizeByRef(makeMutationEventSchema);
|
32
|
-
export const
|
33
|
-
mutation: Schema.String,
|
34
|
-
args: Schema.Any,
|
35
|
-
id: Schema.String,
|
36
|
-
}).annotations({ title: 'MutationEventSchema.DecodedAny' });
|
37
|
-
export const mutationEventSchemaEncodedAny = Schema.Struct({
|
55
|
+
export const mutationEventSchemaAny = Schema.Struct({
|
38
56
|
mutation: Schema.String,
|
39
57
|
args: Schema.Any,
|
40
|
-
id:
|
41
|
-
|
58
|
+
id: EventId,
|
59
|
+
parentId: EventId,
|
60
|
+
}).annotations({ title: 'MutationEventSchema.Any' });
|
61
|
+
export const mutationEventSchemaDecodedAny = Schema.typeSchema(mutationEventSchemaAny).annotations({
|
62
|
+
title: 'MutationEventSchema.DecodedAny',
|
63
|
+
});
|
64
|
+
export const mutationEventSchemaEncodedAny = Schema.encodedSchema(mutationEventSchemaAny).annotations({
|
65
|
+
title: 'MutationEventSchema.EncodedAny',
|
66
|
+
});
|
42
67
|
//# sourceMappingURL=mutations.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../src/schema/mutations.ts"],"names":[],"mappings":"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"}
|
@@ -77,6 +77,48 @@ export declare const schemaMutationsMetaTable: import("./table-def.js").TableDef
|
|
77
77
|
readonly updatedAt: string;
|
78
78
|
}, never>>;
|
79
79
|
export type SchemaMutationsMetaRow = FromTable.RowDecoded<typeof schemaMutationsMetaTable>;
|
80
|
+
/**
|
81
|
+
* Table which stores SQLite changeset blobs which is used for rolling back
|
82
|
+
* read-model state during rebasing.
|
83
|
+
*/
|
84
|
+
export declare const SESSION_CHANGESET_META_TABLE = "__livestore_session_changeset";
|
85
|
+
export declare const sessionChangesetMetaTable: import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_session_changeset", {
|
86
|
+
idGlobal: {
|
87
|
+
columnType: "integer";
|
88
|
+
schema: Schema.Schema<number, number, never>;
|
89
|
+
default: import("effect/Option").None<never>;
|
90
|
+
nullable: false;
|
91
|
+
primaryKey: true;
|
92
|
+
};
|
93
|
+
idLocal: {
|
94
|
+
columnType: "integer";
|
95
|
+
schema: Schema.Schema<number, number, never>;
|
96
|
+
default: import("effect/Option").None<never>;
|
97
|
+
nullable: false;
|
98
|
+
primaryKey: true;
|
99
|
+
};
|
100
|
+
changeset: {
|
101
|
+
columnType: "blob";
|
102
|
+
schema: Schema.Schema<Uint8Array, Uint8Array, never>;
|
103
|
+
default: import("effect/Option").None<never>;
|
104
|
+
nullable: false;
|
105
|
+
primaryKey: false;
|
106
|
+
};
|
107
|
+
}>, false, {
|
108
|
+
isSingleton: false;
|
109
|
+
disableAutomaticIdColumn: true;
|
110
|
+
deriveMutations: never;
|
111
|
+
isSingleColumn: false;
|
112
|
+
}, Schema.Schema<{
|
113
|
+
readonly idGlobal: number;
|
114
|
+
readonly idLocal: number;
|
115
|
+
readonly changeset: Uint8Array;
|
116
|
+
}, {
|
117
|
+
readonly idGlobal: number;
|
118
|
+
readonly idLocal: number;
|
119
|
+
readonly changeset: Uint8Array;
|
120
|
+
}, never>>;
|
121
|
+
export type SessionChangesetMetaRow = FromTable.RowDecoded<typeof sessionChangesetMetaTable>;
|
80
122
|
export declare const systemTables: (import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_schema", {
|
81
123
|
tableName: {
|
82
124
|
columnType: "text";
|
@@ -147,18 +189,74 @@ export declare const systemTables: (import("./table-def.js").TableDef<SqliteDsl.
|
|
147
189
|
readonly mutationName: string;
|
148
190
|
readonly schemaHash: number;
|
149
191
|
readonly updatedAt: string;
|
192
|
+
}, never>> | import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"__livestore_session_changeset", {
|
193
|
+
idGlobal: {
|
194
|
+
columnType: "integer";
|
195
|
+
schema: Schema.Schema<number, number, never>;
|
196
|
+
default: import("effect/Option").None<never>;
|
197
|
+
nullable: false;
|
198
|
+
primaryKey: true;
|
199
|
+
};
|
200
|
+
idLocal: {
|
201
|
+
columnType: "integer";
|
202
|
+
schema: Schema.Schema<number, number, never>;
|
203
|
+
default: import("effect/Option").None<never>;
|
204
|
+
nullable: false;
|
205
|
+
primaryKey: true;
|
206
|
+
};
|
207
|
+
changeset: {
|
208
|
+
columnType: "blob";
|
209
|
+
schema: Schema.Schema<Uint8Array, Uint8Array, never>;
|
210
|
+
default: import("effect/Option").None<never>;
|
211
|
+
nullable: false;
|
212
|
+
primaryKey: false;
|
213
|
+
};
|
214
|
+
}>, false, {
|
215
|
+
isSingleton: false;
|
216
|
+
disableAutomaticIdColumn: true;
|
217
|
+
deriveMutations: never;
|
218
|
+
isSingleColumn: false;
|
219
|
+
}, Schema.Schema<{
|
220
|
+
readonly idGlobal: number;
|
221
|
+
readonly idLocal: number;
|
222
|
+
readonly changeset: Uint8Array;
|
223
|
+
}, {
|
224
|
+
readonly idGlobal: number;
|
225
|
+
readonly idLocal: number;
|
226
|
+
readonly changeset: Uint8Array;
|
150
227
|
}, never>>)[];
|
151
228
|
export declare const SyncStatus: Schema.Literal<["synced", "pending", "error", "localOnly"]>;
|
152
229
|
export type SyncStatus = typeof SyncStatus.Type;
|
153
230
|
export declare const MUTATION_LOG_META_TABLE = "mutation_log";
|
154
231
|
export declare const mutationLogMetaTable: import("./table-def.js").TableDef<SqliteDsl.TableDefinition<"mutation_log", {
|
155
|
-
|
156
|
-
columnType: "
|
157
|
-
schema: Schema.Schema<
|
232
|
+
idGlobal: {
|
233
|
+
columnType: "integer";
|
234
|
+
schema: Schema.Schema<number, number, never>;
|
235
|
+
default: import("effect/Option").None<never>;
|
236
|
+
nullable: false;
|
237
|
+
primaryKey: true;
|
238
|
+
};
|
239
|
+
idLocal: {
|
240
|
+
columnType: "integer";
|
241
|
+
schema: Schema.Schema<number, number, never>;
|
158
242
|
default: import("effect/Option").None<never>;
|
159
243
|
nullable: false;
|
160
244
|
primaryKey: true;
|
161
245
|
};
|
246
|
+
parentIdGlobal: {
|
247
|
+
columnType: "integer";
|
248
|
+
schema: Schema.Schema<number, number, never>;
|
249
|
+
default: import("effect/Option").None<never>;
|
250
|
+
nullable: false;
|
251
|
+
primaryKey: false;
|
252
|
+
};
|
253
|
+
parentIdLocal: {
|
254
|
+
columnType: "integer";
|
255
|
+
schema: Schema.Schema<number, number, never>;
|
256
|
+
default: import("effect/Option").None<never>;
|
257
|
+
nullable: false;
|
258
|
+
primaryKey: false;
|
259
|
+
};
|
162
260
|
mutation: {
|
163
261
|
columnType: "text";
|
164
262
|
schema: Schema.Schema<string, string, never>;
|
@@ -180,6 +278,13 @@ export declare const mutationLogMetaTable: import("./table-def.js").TableDef<Sql
|
|
180
278
|
nullable: false;
|
181
279
|
primaryKey: false;
|
182
280
|
};
|
281
|
+
orderKey: {
|
282
|
+
columnType: "integer";
|
283
|
+
schema: Schema.Schema<number, number, never>;
|
284
|
+
default: import("effect/Option").None<never>;
|
285
|
+
nullable: false;
|
286
|
+
primaryKey: false;
|
287
|
+
};
|
183
288
|
createdAt: {
|
184
289
|
columnType: "text";
|
185
290
|
schema: Schema.Schema<string, string, never>;
|
@@ -207,18 +312,26 @@ export declare const mutationLogMetaTable: import("./table-def.js").TableDef<Sql
|
|
207
312
|
deriveMutations: never;
|
208
313
|
isSingleColumn: false;
|
209
314
|
}, Schema.Schema<{
|
210
|
-
readonly
|
315
|
+
readonly idGlobal: number;
|
316
|
+
readonly idLocal: number;
|
317
|
+
readonly parentIdGlobal: number;
|
318
|
+
readonly parentIdLocal: number;
|
211
319
|
readonly mutation: string;
|
212
320
|
readonly argsJson: any;
|
213
321
|
readonly schemaHash: number;
|
322
|
+
readonly orderKey: number;
|
214
323
|
readonly createdAt: string;
|
215
324
|
readonly syncStatus: "synced" | "pending" | "error" | "localOnly";
|
216
325
|
readonly syncMetadataJson: import("effect/Option").Option<Schema.JsonValue>;
|
217
326
|
}, {
|
218
|
-
readonly
|
327
|
+
readonly idGlobal: number;
|
328
|
+
readonly idLocal: number;
|
329
|
+
readonly parentIdGlobal: number;
|
330
|
+
readonly parentIdLocal: number;
|
219
331
|
readonly mutation: string;
|
220
332
|
readonly argsJson: string;
|
221
333
|
readonly schemaHash: number;
|
334
|
+
readonly orderKey: number;
|
222
335
|
readonly createdAt: string;
|
223
336
|
readonly syncStatus: "synced" | "pending" | "error" | "localOnly";
|
224
337
|
readonly syncMetadataJson: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAiC,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAS3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAExE,eAAO,MAAM,2BAA2B,iCAAiC,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UASpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE1F,eAAO,MAAM,YAAY
|
1
|
+
{"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../src/schema/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAChD,OAAO,EAAiC,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAE3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK/C,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAS3B,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAA;AAExE,eAAO,MAAM,2BAA2B,iCAAiC,CAAA;AAEzE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UASpC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE1F;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAQrC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE5F,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAyE,CAAA;AAIlG,eAAO,MAAM,UAAU,6DAA4D,CAAA;AACnF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;AAE/C,eAAO,MAAM,uBAAuB,iBAAiB,CAAA;AAErD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAkBhC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA"}
|
@@ -16,19 +16,33 @@ export const schemaMutationsMetaTable = table(SCHEMA_MUTATIONS_META_TABLE, {
|
|
16
16
|
/** ISO date format */
|
17
17
|
updatedAt: SqliteDsl.text({ nullable: false }),
|
18
18
|
}, { disableAutomaticIdColumn: true });
|
19
|
-
|
19
|
+
/**
|
20
|
+
* Table which stores SQLite changeset blobs which is used for rolling back
|
21
|
+
* read-model state during rebasing.
|
22
|
+
*/
|
23
|
+
export const SESSION_CHANGESET_META_TABLE = '__livestore_session_changeset';
|
24
|
+
export const sessionChangesetMetaTable = table(SESSION_CHANGESET_META_TABLE, {
|
25
|
+
idGlobal: SqliteDsl.integer({ primaryKey: true }),
|
26
|
+
idLocal: SqliteDsl.integer({ primaryKey: true }),
|
27
|
+
changeset: SqliteDsl.blob({}),
|
28
|
+
}, { disableAutomaticIdColumn: true });
|
29
|
+
export const systemTables = [schemaMetaTable, schemaMutationsMetaTable, sessionChangesetMetaTable];
|
20
30
|
/// Mutation log DB
|
21
31
|
export const SyncStatus = Schema.Literal('synced', 'pending', 'error', 'localOnly');
|
22
32
|
export const MUTATION_LOG_META_TABLE = 'mutation_log';
|
23
33
|
export const mutationLogMetaTable = table(MUTATION_LOG_META_TABLE, {
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
34
|
+
idGlobal: SqliteDsl.integer({ primaryKey: true }),
|
35
|
+
idLocal: SqliteDsl.integer({ primaryKey: true }),
|
36
|
+
parentIdGlobal: SqliteDsl.integer({}),
|
37
|
+
parentIdLocal: SqliteDsl.integer({}),
|
38
|
+
mutation: SqliteDsl.text({}),
|
39
|
+
argsJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Any) }),
|
40
|
+
schemaHash: SqliteDsl.integer({}),
|
41
|
+
/** Local only, used for ordered queries to avoid recursive id traversal */
|
42
|
+
orderKey: SqliteDsl.integer({}),
|
29
43
|
/** ISO date format */
|
30
|
-
createdAt: SqliteDsl.text({
|
44
|
+
createdAt: SqliteDsl.text({}),
|
31
45
|
syncStatus: SqliteDsl.text({ schema: SyncStatus }),
|
32
46
|
syncMetadataJson: SqliteDsl.text({ schema: Schema.parseJson(Schema.Option(Schema.JsonValue)) }),
|
33
|
-
}, { disableAutomaticIdColumn: true });
|
47
|
+
}, { disableAutomaticIdColumn: true, indexes: [{ columns: ['orderKey'], name: 'mutation_log_order_key_idx' }] });
|
34
48
|
//# sourceMappingURL=system-tables.js.map
|