@livestore/common 0.3.0-dev.27 → 0.3.0-dev.29
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/__tests__/fixture.d.ts +83 -221
- package/dist/__tests__/fixture.d.ts.map +1 -1
- package/dist/__tests__/fixture.js +33 -11
- package/dist/__tests__/fixture.js.map +1 -1
- package/dist/adapter-types.d.ts +22 -15
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js +15 -2
- package/dist/adapter-types.js.map +1 -1
- package/dist/bounded-collections.d.ts +1 -1
- package/dist/bounded-collections.d.ts.map +1 -1
- package/dist/debug-info.d.ts.map +1 -1
- package/dist/debug-info.js +1 -0
- package/dist/debug-info.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +21 -21
- package/dist/devtools/devtools-messages-common.d.ts +6 -6
- package/dist/devtools/devtools-messages-leader.d.ts +45 -45
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-leader.js +11 -11
- package/dist/devtools/devtools-messages-leader.js.map +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +25 -12
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +125 -89
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/{apply-mutation.d.ts → apply-event.d.ts} +7 -7
- package/dist/leader-thread/apply-event.d.ts.map +1 -0
- package/dist/leader-thread/apply-event.js +103 -0
- package/dist/leader-thread/apply-event.js.map +1 -0
- package/dist/leader-thread/eventlog.d.ts +27 -0
- package/dist/leader-thread/eventlog.d.ts.map +1 -0
- package/dist/leader-thread/eventlog.js +123 -0
- package/dist/leader-thread/eventlog.js.map +1 -0
- package/dist/leader-thread/leader-worker-devtools.js +18 -18
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +16 -4
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +23 -16
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/mod.d.ts +1 -1
- package/dist/leader-thread/mod.d.ts.map +1 -1
- package/dist/leader-thread/mod.js +1 -1
- package/dist/leader-thread/mod.js.map +1 -1
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +6 -8
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/types.d.ts +11 -11
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/materializer-helper.d.ts +23 -0
- package/dist/materializer-helper.d.ts.map +1 -0
- package/dist/materializer-helper.js +70 -0
- package/dist/materializer-helper.js.map +1 -0
- package/dist/query-builder/api.d.ts +58 -53
- package/dist/query-builder/api.d.ts.map +1 -1
- package/dist/query-builder/api.js +3 -5
- package/dist/query-builder/api.js.map +1 -1
- package/dist/query-builder/astToSql.d.ts.map +1 -1
- package/dist/query-builder/astToSql.js +59 -37
- package/dist/query-builder/astToSql.js.map +1 -1
- package/dist/query-builder/impl.d.ts +2 -3
- package/dist/query-builder/impl.d.ts.map +1 -1
- package/dist/query-builder/impl.js +48 -46
- package/dist/query-builder/impl.js.map +1 -1
- package/dist/query-builder/impl.test.d.ts +86 -1
- package/dist/query-builder/impl.test.d.ts.map +1 -1
- package/dist/query-builder/impl.test.js +244 -36
- package/dist/query-builder/impl.test.js.map +1 -1
- package/dist/rehydrate-from-eventlog.d.ts +14 -0
- package/dist/rehydrate-from-eventlog.d.ts.map +1 -0
- package/dist/{rehydrate-from-mutationlog.js → rehydrate-from-eventlog.js} +25 -26
- package/dist/rehydrate-from-eventlog.js.map +1 -0
- package/dist/schema/EventDef.d.ts +136 -0
- package/dist/schema/EventDef.d.ts.map +1 -0
- package/dist/schema/EventDef.js +58 -0
- package/dist/schema/EventDef.js.map +1 -0
- package/dist/schema/EventId.d.ts +2 -2
- package/dist/schema/EventId.d.ts.map +1 -1
- package/dist/schema/EventId.js +8 -2
- package/dist/schema/EventId.js.map +1 -1
- package/dist/schema/{MutationEvent.d.ts → LiveStoreEvent.d.ts} +56 -56
- package/dist/schema/LiveStoreEvent.d.ts.map +1 -0
- package/dist/schema/{MutationEvent.js → LiveStoreEvent.js} +25 -25
- package/dist/schema/LiveStoreEvent.js.map +1 -0
- package/dist/schema/client-document-def.d.ts +223 -0
- package/dist/schema/client-document-def.d.ts.map +1 -0
- package/dist/schema/client-document-def.js +170 -0
- package/dist/schema/client-document-def.js.map +1 -0
- package/dist/schema/client-document-def.test.d.ts +2 -0
- package/dist/schema/client-document-def.test.d.ts.map +1 -0
- package/dist/schema/client-document-def.test.js +201 -0
- package/dist/schema/client-document-def.test.js.map +1 -0
- package/dist/schema/db-schema/dsl/mod.d.ts.map +1 -1
- package/dist/schema/events.d.ts +2 -0
- package/dist/schema/events.d.ts.map +1 -0
- package/dist/schema/events.js +2 -0
- package/dist/schema/events.js.map +1 -0
- package/dist/schema/mod.d.ts +4 -3
- package/dist/schema/mod.d.ts.map +1 -1
- package/dist/schema/mod.js +4 -3
- package/dist/schema/mod.js.map +1 -1
- package/dist/schema/schema.d.ts +27 -23
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +45 -43
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/sqlite-state.d.ts +12 -0
- package/dist/schema/sqlite-state.d.ts.map +1 -0
- package/dist/schema/sqlite-state.js +36 -0
- package/dist/schema/sqlite-state.js.map +1 -0
- package/dist/schema/system-tables.d.ts +67 -98
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +62 -48
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/schema/table-def.d.ts +26 -96
- package/dist/schema/table-def.d.ts.map +1 -1
- package/dist/schema/table-def.js +16 -64
- package/dist/schema/table-def.js.map +1 -1
- package/dist/schema/view.d.ts +3 -0
- package/dist/schema/view.d.ts.map +1 -0
- package/dist/schema/view.js +3 -0
- package/dist/schema/view.js.map +1 -0
- package/dist/schema-management/common.d.ts +4 -4
- package/dist/schema-management/common.d.ts.map +1 -1
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +6 -6
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/schema-management/validate-mutation-defs.d.ts +3 -3
- package/dist/schema-management/validate-mutation-defs.d.ts.map +1 -1
- package/dist/schema-management/validate-mutation-defs.js +17 -17
- package/dist/schema-management/validate-mutation-defs.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +7 -7
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +31 -30
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/sync/next/facts.d.ts +19 -19
- package/dist/sync/next/facts.d.ts.map +1 -1
- package/dist/sync/next/facts.js +2 -2
- package/dist/sync/next/facts.js.map +1 -1
- package/dist/sync/next/history-dag-common.d.ts +3 -3
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +1 -1
- package/dist/sync/next/history-dag-common.js.map +1 -1
- package/dist/sync/next/history-dag.js +1 -1
- package/dist/sync/next/history-dag.js.map +1 -1
- package/dist/sync/next/rebase-events.d.ts +7 -7
- package/dist/sync/next/rebase-events.d.ts.map +1 -1
- package/dist/sync/next/rebase-events.js +5 -5
- package/dist/sync/next/rebase-events.js.map +1 -1
- package/dist/sync/next/test/compact-events.calculator.test.js +38 -33
- package/dist/sync/next/test/compact-events.calculator.test.js.map +1 -1
- package/dist/sync/next/test/compact-events.test.js +71 -71
- package/dist/sync/next/test/compact-events.test.js.map +1 -1
- package/dist/sync/next/test/{mutation-fixtures.d.ts → event-fixtures.d.ts} +29 -29
- package/dist/sync/next/test/event-fixtures.d.ts.map +1 -0
- package/dist/sync/next/test/{mutation-fixtures.js → event-fixtures.js} +60 -25
- package/dist/sync/next/test/event-fixtures.js.map +1 -0
- package/dist/sync/next/test/mod.d.ts +1 -1
- package/dist/sync/next/test/mod.d.ts.map +1 -1
- package/dist/sync/next/test/mod.js +1 -1
- package/dist/sync/next/test/mod.js.map +1 -1
- package/dist/sync/sync.d.ts +3 -3
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/syncstate.d.ts +32 -32
- package/dist/sync/syncstate.d.ts.map +1 -1
- package/dist/sync/syncstate.js +31 -25
- package/dist/sync/syncstate.js.map +1 -1
- package/dist/sync/syncstate.test.js +165 -175
- package/dist/sync/syncstate.test.js.map +1 -1
- package/dist/sync/validate-push-payload.d.ts +2 -2
- package/dist/sync/validate-push-payload.d.ts.map +1 -1
- package/dist/sync/validate-push-payload.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/src/__tests__/fixture.ts +36 -15
- package/src/adapter-types.ts +23 -16
- package/src/debug-info.ts +1 -0
- package/src/devtools/devtools-messages-leader.ts +13 -13
- package/src/index.ts +2 -5
- package/src/leader-thread/LeaderSyncProcessor.ts +183 -122
- package/src/leader-thread/{apply-mutation.ts → apply-event.ts} +50 -74
- package/src/leader-thread/eventlog.ts +199 -0
- package/src/leader-thread/leader-worker-devtools.ts +18 -18
- package/src/leader-thread/make-leader-thread-layer.ts +51 -29
- package/src/leader-thread/mod.ts +1 -1
- package/src/leader-thread/recreate-db.ts +6 -9
- package/src/leader-thread/types.ts +12 -12
- package/src/materializer-helper.ts +110 -0
- package/src/query-builder/api.ts +79 -105
- package/src/query-builder/astToSql.ts +68 -39
- package/src/query-builder/impl.test.ts +264 -42
- package/src/query-builder/impl.ts +72 -56
- package/src/{rehydrate-from-mutationlog.ts → rehydrate-from-eventlog.ts} +33 -40
- package/src/schema/EventDef.ts +216 -0
- package/src/schema/EventId.ts +11 -3
- package/src/schema/{MutationEvent.ts → LiveStoreEvent.ts} +68 -69
- package/src/schema/client-document-def.test.ts +239 -0
- package/src/schema/client-document-def.ts +444 -0
- package/src/schema/db-schema/dsl/mod.ts +0 -1
- package/src/schema/events.ts +1 -0
- package/src/schema/mod.ts +4 -3
- package/src/schema/schema.ts +79 -69
- package/src/schema/sqlite-state.ts +62 -0
- package/src/schema/system-tables.ts +42 -53
- package/src/schema/table-def.ts +53 -209
- package/src/schema/view.ts +2 -0
- package/src/schema-management/common.ts +4 -4
- package/src/schema-management/migrations.ts +8 -9
- package/src/schema-management/validate-mutation-defs.ts +22 -24
- package/src/sync/ClientSessionSyncProcessor.ts +37 -36
- package/src/sync/next/facts.ts +31 -32
- package/src/sync/next/history-dag-common.ts +4 -4
- package/src/sync/next/history-dag.ts +1 -1
- package/src/sync/next/rebase-events.ts +13 -13
- package/src/sync/next/test/compact-events.calculator.test.ts +45 -45
- package/src/sync/next/test/compact-events.test.ts +73 -73
- package/src/sync/next/test/event-fixtures.ts +219 -0
- package/src/sync/next/test/mod.ts +1 -1
- package/src/sync/sync.ts +3 -3
- package/src/sync/syncstate.test.ts +168 -179
- package/src/sync/syncstate.ts +48 -38
- package/src/sync/validate-push-payload.ts +2 -2
- package/src/version.ts +1 -1
- package/tmp/pack.tgz +0 -0
- package/tsconfig.json +1 -0
- package/dist/derived-mutations.d.ts +0 -109
- package/dist/derived-mutations.d.ts.map +0 -1
- package/dist/derived-mutations.js +0 -54
- package/dist/derived-mutations.js.map +0 -1
- package/dist/derived-mutations.test.d.ts +0 -2
- package/dist/derived-mutations.test.d.ts.map +0 -1
- package/dist/derived-mutations.test.js +0 -93
- package/dist/derived-mutations.test.js.map +0 -1
- package/dist/init-singleton-tables.d.ts +0 -4
- package/dist/init-singleton-tables.d.ts.map +0 -1
- package/dist/init-singleton-tables.js +0 -16
- package/dist/init-singleton-tables.js.map +0 -1
- package/dist/leader-thread/apply-mutation.d.ts.map +0 -1
- package/dist/leader-thread/apply-mutation.js +0 -122
- package/dist/leader-thread/apply-mutation.js.map +0 -1
- package/dist/leader-thread/mutationlog.d.ts +0 -27
- package/dist/leader-thread/mutationlog.d.ts.map +0 -1
- package/dist/leader-thread/mutationlog.js +0 -124
- package/dist/leader-thread/mutationlog.js.map +0 -1
- package/dist/leader-thread/pull-queue-set.d.ts +0 -7
- package/dist/leader-thread/pull-queue-set.d.ts.map +0 -1
- package/dist/leader-thread/pull-queue-set.js +0 -38
- package/dist/leader-thread/pull-queue-set.js.map +0 -1
- package/dist/mutation.d.ts +0 -20
- package/dist/mutation.d.ts.map +0 -1
- package/dist/mutation.js +0 -68
- package/dist/mutation.js.map +0 -1
- package/dist/query-info.d.ts +0 -41
- package/dist/query-info.d.ts.map +0 -1
- package/dist/query-info.js +0 -7
- package/dist/query-info.js.map +0 -1
- package/dist/rehydrate-from-mutationlog.d.ts +0 -15
- package/dist/rehydrate-from-mutationlog.d.ts.map +0 -1
- package/dist/rehydrate-from-mutationlog.js.map +0 -1
- package/dist/schema/MutationEvent.d.ts.map +0 -1
- package/dist/schema/MutationEvent.js.map +0 -1
- package/dist/schema/mutations.d.ts +0 -115
- package/dist/schema/mutations.d.ts.map +0 -1
- package/dist/schema/mutations.js +0 -42
- package/dist/schema/mutations.js.map +0 -1
- package/dist/sync/next/test/mutation-fixtures.d.ts.map +0 -1
- package/dist/sync/next/test/mutation-fixtures.js.map +0 -1
- package/src/derived-mutations.test.ts +0 -101
- package/src/derived-mutations.ts +0 -170
- package/src/init-singleton-tables.ts +0 -24
- package/src/leader-thread/mutationlog.ts +0 -202
- package/src/mutation.ts +0 -108
- package/src/query-info.ts +0 -83
- package/src/schema/mutations.ts +0 -193
- package/src/sync/next/test/mutation-fixtures.ts +0 -228
@@ -1,122 +0,0 @@
|
|
1
|
-
import { LS_DEV, memoizeByRef, shouldNeverHappen } from '@livestore/utils';
|
2
|
-
import { Effect, ReadonlyArray, Schema } from '@livestore/utils/effect';
|
3
|
-
import { getExecArgsFromMutation } from '../mutation.js';
|
4
|
-
import { EventId, getMutationDef, MUTATION_LOG_META_TABLE, SESSION_CHANGESET_META_TABLE, sessionChangesetMetaTable, } from '../schema/mod.js';
|
5
|
-
import { insertRow } from '../sql-queries/index.js';
|
6
|
-
import { sql } from '../util.js';
|
7
|
-
import { execSql, execSqlPrepared } from './connection.js';
|
8
|
-
import * as Mutationlog from './mutationlog.js';
|
9
|
-
export const makeApplyMutation = ({ schema, dbReadModel: db, dbMutationLog, }) => Effect.gen(function* () {
|
10
|
-
const shouldExcludeMutationFromLog = makeShouldExcludeMutationFromLog(schema);
|
11
|
-
const mutationDefSchemaHashMap = new Map(
|
12
|
-
// TODO Running `Schema.hash` can be a bottleneck for larger schemas. There is an opportunity to run this
|
13
|
-
// at build time and lookup the pre-computed hash at runtime.
|
14
|
-
// Also see https://github.com/Effect-TS/effect/issues/2719
|
15
|
-
[...schema.mutations.map.entries()].map(([k, v]) => [k, Schema.hash(v.schema)]));
|
16
|
-
return (mutationEventEncoded, options) => Effect.gen(function* () {
|
17
|
-
const skipMutationLog = options?.skipMutationLog ?? false;
|
18
|
-
const mutationName = mutationEventEncoded.mutation;
|
19
|
-
const mutationDef = getMutationDef(schema, mutationName);
|
20
|
-
const execArgsArr = getExecArgsFromMutation({
|
21
|
-
mutationDef,
|
22
|
-
mutationEvent: { decoded: undefined, encoded: mutationEventEncoded },
|
23
|
-
});
|
24
|
-
// NOTE we might want to bring this back if we want to debug no-op mutations
|
25
|
-
// const makeExecuteOptions = (statementSql: string, bindValues: any) => ({
|
26
|
-
// onRowsChanged: (rowsChanged: number) => {
|
27
|
-
// if (rowsChanged === 0) {
|
28
|
-
// console.warn(`Mutation "${mutationDef.name}" did not affect any rows:`, statementSql, bindValues)
|
29
|
-
// }
|
30
|
-
// },
|
31
|
-
// })
|
32
|
-
// console.group('[@livestore/common:leader-thread:applyMutation]', { mutationName })
|
33
|
-
const session = db.session();
|
34
|
-
for (const { statementSql, bindValues } of execArgsArr) {
|
35
|
-
// console.debug(mutationName, statementSql, bindValues)
|
36
|
-
// TODO use cached prepared statements instead of exec
|
37
|
-
yield* execSqlPrepared(db, statementSql, bindValues);
|
38
|
-
}
|
39
|
-
const changeset = session.changeset();
|
40
|
-
session.finish();
|
41
|
-
// TODO use prepared statements
|
42
|
-
yield* execSql(db, ...insertRow({
|
43
|
-
tableName: SESSION_CHANGESET_META_TABLE,
|
44
|
-
columns: sessionChangesetMetaTable.sqliteDef.columns,
|
45
|
-
values: {
|
46
|
-
idGlobal: mutationEventEncoded.id.global,
|
47
|
-
idClient: mutationEventEncoded.id.client,
|
48
|
-
// NOTE the changeset will be empty (i.e. null) for no-op mutations
|
49
|
-
changeset: changeset ?? null,
|
50
|
-
debug: LS_DEV ? execArgsArr : null,
|
51
|
-
},
|
52
|
-
}));
|
53
|
-
// console.groupEnd()
|
54
|
-
// write to mutation_log
|
55
|
-
const excludeFromMutationLog = shouldExcludeMutationFromLog(mutationName, mutationEventEncoded);
|
56
|
-
if (skipMutationLog === false && excludeFromMutationLog === false) {
|
57
|
-
const mutationName = mutationEventEncoded.mutation;
|
58
|
-
const mutationDefSchemaHash = mutationDefSchemaHashMap.get(mutationName) ?? shouldNeverHappen(`Unknown mutation: ${mutationName}`);
|
59
|
-
yield* Mutationlog.insertIntoMutationLog(mutationEventEncoded, dbMutationLog, mutationDefSchemaHash, mutationEventEncoded.clientId, mutationEventEncoded.sessionId);
|
60
|
-
}
|
61
|
-
else {
|
62
|
-
// console.debug('[@livestore/common:leader-thread] skipping mutation log write', mutation, statementSql, bindValues)
|
63
|
-
}
|
64
|
-
return {
|
65
|
-
sessionChangeset: changeset
|
66
|
-
? {
|
67
|
-
_tag: 'sessionChangeset',
|
68
|
-
data: changeset,
|
69
|
-
debug: LS_DEV ? execArgsArr : null,
|
70
|
-
}
|
71
|
-
: { _tag: 'no-op' },
|
72
|
-
};
|
73
|
-
}).pipe(Effect.withSpan(`@livestore/common:leader-thread:applyMutation`, {
|
74
|
-
attributes: {
|
75
|
-
mutationName: mutationEventEncoded.mutation,
|
76
|
-
mutationId: mutationEventEncoded.id,
|
77
|
-
'span.label': `${EventId.toString(mutationEventEncoded.id)} ${mutationEventEncoded.mutation}`,
|
78
|
-
},
|
79
|
-
}));
|
80
|
-
});
|
81
|
-
export const rollback = ({ db, dbMutationLog, eventIdsToRollback, }) => Effect.gen(function* () {
|
82
|
-
const rollbackEvents = db
|
83
|
-
.select(sql `SELECT * FROM ${SESSION_CHANGESET_META_TABLE} WHERE (idGlobal, idClient) IN (${eventIdsToRollback.map((id) => `(${id.global}, ${id.client})`).join(', ')})`)
|
84
|
-
.map((_) => ({ id: { global: _.idGlobal, client: _.idClient }, changeset: _.changeset, debug: _.debug }))
|
85
|
-
.toSorted((a, b) => EventId.compare(a.id, b.id));
|
86
|
-
// Apply changesets in reverse order
|
87
|
-
for (let i = rollbackEvents.length - 1; i >= 0; i--) {
|
88
|
-
const { changeset } = rollbackEvents[i];
|
89
|
-
if (changeset !== null) {
|
90
|
-
db.makeChangeset(changeset).invert().apply();
|
91
|
-
}
|
92
|
-
}
|
93
|
-
const eventIdPairChunks = ReadonlyArray.chunksOf(100)(eventIdsToRollback.map((id) => `(${id.global}, ${id.client})`));
|
94
|
-
// Delete the changeset rows
|
95
|
-
for (const eventIdPairChunk of eventIdPairChunks) {
|
96
|
-
db.execute(sql `DELETE FROM ${SESSION_CHANGESET_META_TABLE} WHERE (idGlobal, idClient) IN (${eventIdPairChunk.join(', ')})`);
|
97
|
-
}
|
98
|
-
// Delete the mutation log rows
|
99
|
-
for (const eventIdPairChunk of eventIdPairChunks) {
|
100
|
-
dbMutationLog.execute(sql `DELETE FROM ${MUTATION_LOG_META_TABLE} WHERE (idGlobal, idClient) IN (${eventIdPairChunk.join(', ')})`);
|
101
|
-
}
|
102
|
-
}).pipe(Effect.withSpan('@livestore/common:LeaderSyncProcessor:rollback', {
|
103
|
-
attributes: { count: eventIdsToRollback.length },
|
104
|
-
}));
|
105
|
-
// TODO let's consider removing this "should exclude" mechanism in favour of log compaction etc
|
106
|
-
const makeShouldExcludeMutationFromLog = memoizeByRef((schema) => {
|
107
|
-
const migrationOptions = schema.migrationOptions;
|
108
|
-
const mutationLogExclude = migrationOptions.strategy === 'from-mutation-log'
|
109
|
-
? (migrationOptions.excludeMutations ?? new Set(['livestore.RawSql']))
|
110
|
-
: new Set(['livestore.RawSql']);
|
111
|
-
return (mutationName, mutationEventEncoded) => {
|
112
|
-
if (mutationLogExclude.has(mutationName))
|
113
|
-
return true;
|
114
|
-
const mutationDef = getMutationDef(schema, mutationName);
|
115
|
-
const execArgsArr = getExecArgsFromMutation({
|
116
|
-
mutationDef,
|
117
|
-
mutationEvent: { decoded: undefined, encoded: mutationEventEncoded },
|
118
|
-
});
|
119
|
-
return execArgsArr.some((_) => _.statementSql.includes('__livestore'));
|
120
|
-
};
|
121
|
-
});
|
122
|
-
//# sourceMappingURL=apply-mutation.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"apply-mutation.js","sourceRoot":"","sources":["../../src/leader-thread/apply-mutation.ts"],"names":[],"mappings":"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"}
|
@@ -1,27 +0,0 @@
|
|
1
|
-
import { Effect, Option, Schema } from '@livestore/utils/effect';
|
2
|
-
import type { SqliteDb } from '../adapter-types.js';
|
3
|
-
import * as EventId from '../schema/EventId.js';
|
4
|
-
import * as MutationEvent from '../schema/MutationEvent.js';
|
5
|
-
import { LeaderThreadCtx } from './types.js';
|
6
|
-
export declare const initMutationLogDb: (dbMutationLog: SqliteDb) => Effect.Effect<void, import("../adapter-types.js").SqliteError, never>;
|
7
|
-
/** Exclusive of the "since event" */
|
8
|
-
export declare const getMutationEventsSince: (since: EventId.EventId) => Effect.Effect<ReadonlyArray<MutationEvent.EncodedWithMeta>, never, LeaderThreadCtx>;
|
9
|
-
export declare const getClientHeadFromDb: (dbMutationLog: SqliteDb) => EventId.EventId;
|
10
|
-
export declare const getBackendHeadFromDb: (dbMutationLog: SqliteDb) => EventId.GlobalEventId;
|
11
|
-
export declare const updateBackendHead: (dbMutationLog: SqliteDb, head: EventId.EventId) => void;
|
12
|
-
export declare const insertIntoMutationLog: (mutationEventEncoded: MutationEvent.EncodedWithMeta, dbMutationLog: SqliteDb, mutationDefSchemaHash: number, clientId: string, sessionId: string) => Effect.Effect<void, import("../adapter-types.js").SqliteError, never>;
|
13
|
-
export declare const updateSyncMetadata: (items: ReadonlyArray<MutationEvent.EncodedWithMeta>) => Effect.Effect<void, import("../adapter-types.js").SqliteError, LeaderThreadCtx>;
|
14
|
-
export declare const getSyncBackendCursorInfo: (remoteHead: EventId.GlobalEventId) => Effect.Effect<Option.None<{
|
15
|
-
cursor: {
|
16
|
-
global: EventId.GlobalEventId;
|
17
|
-
client: EventId.ClientEventId;
|
18
|
-
};
|
19
|
-
metadata: Option.Option<Schema.JsonValue>;
|
20
|
-
}> | Option.Some<{
|
21
|
-
cursor: {
|
22
|
-
global: EventId.GlobalEventId;
|
23
|
-
client: EventId.ClientEventId;
|
24
|
-
};
|
25
|
-
metadata: Option.Option<Schema.JsonValue>;
|
26
|
-
}>, never, LeaderThreadCtx>;
|
27
|
-
//# sourceMappingURL=mutationlog.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"mutationlog.d.ts","sourceRoot":"","sources":["../../src/leader-thread/mutationlog.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAc3D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,eAAO,MAAM,iBAAiB,GAAI,eAAe,QAAQ,0EAwBrD,CAAA;AAEJ,qCAAqC;AACrC,eAAO,MAAM,sBAAsB,GACjC,OAAO,OAAO,CAAC,OAAO,KACrB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,eAAe,CAgDjF,CAAA;AAEJ,eAAO,MAAM,mBAAmB,GAAI,eAAe,QAAQ,KAAG,OAAO,CAAC,OAMrE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,eAAe,QAAQ,KAAG,OAAO,CAAC,aAElD,CAAA;AAGrB,eAAO,MAAM,iBAAiB,GAAI,eAAe,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,SACG,CAAA;AAEnF,eAAO,MAAM,qBAAqB,GAChC,sBAAsB,aAAa,CAAC,eAAe,EACnD,eAAe,QAAQ,EACvB,uBAAuB,MAAM,EAC7B,UAAU,MAAM,EAChB,WAAW,MAAM,0EAsCf,CAAA;AAEJ,eAAO,MAAM,kBAAkB,GAAI,OAAO,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,oFAkBlF,CAAA;AAEJ,eAAO,MAAM,wBAAwB,GAAI,YAAY,OAAO,CAAC,aAAa;;;;;;;;;;;;2BAoB0C,CAAA"}
|
@@ -1,124 +0,0 @@
|
|
1
|
-
import { LS_DEV, shouldNeverHappen } from '@livestore/utils';
|
2
|
-
import { Effect, Option, Schema } from '@livestore/utils/effect';
|
3
|
-
import * as EventId from '../schema/EventId.js';
|
4
|
-
import * as MutationEvent from '../schema/MutationEvent.js';
|
5
|
-
import { MUTATION_LOG_META_TABLE, mutationLogMetaTable, sessionChangesetMetaTable, SYNC_STATUS_TABLE, syncStatusTable, } from '../schema/system-tables.js';
|
6
|
-
import { migrateTable } from '../schema-management/migrations.js';
|
7
|
-
import { insertRow, updateRows } from '../sql-queries/sql-queries.js';
|
8
|
-
import { prepareBindValues, sql } from '../util.js';
|
9
|
-
import { execSql } from './connection.js';
|
10
|
-
import { LeaderThreadCtx } from './types.js';
|
11
|
-
export const initMutationLogDb = (dbMutationLog) => Effect.gen(function* () {
|
12
|
-
yield* migrateTable({
|
13
|
-
db: dbMutationLog,
|
14
|
-
behaviour: 'create-if-not-exists',
|
15
|
-
tableAst: mutationLogMetaTable.sqliteDef.ast,
|
16
|
-
skipMetaTable: true,
|
17
|
-
});
|
18
|
-
yield* migrateTable({
|
19
|
-
db: dbMutationLog,
|
20
|
-
behaviour: 'create-if-not-exists',
|
21
|
-
tableAst: syncStatusTable.sqliteDef.ast,
|
22
|
-
skipMetaTable: true,
|
23
|
-
});
|
24
|
-
// Create sync status row if it doesn't exist
|
25
|
-
yield* execSql(dbMutationLog, sql `INSERT INTO ${SYNC_STATUS_TABLE} (head)
|
26
|
-
SELECT ${EventId.ROOT.global}
|
27
|
-
WHERE NOT EXISTS (SELECT 1 FROM ${SYNC_STATUS_TABLE})`, {});
|
28
|
-
});
|
29
|
-
/** Exclusive of the "since event" */
|
30
|
-
export const getMutationEventsSince = (since) => Effect.gen(function* () {
|
31
|
-
const { dbMutationLog, dbReadModel } = yield* LeaderThreadCtx;
|
32
|
-
const query = mutationLogMetaTable.query.where('idGlobal', '>=', since.global).asSql();
|
33
|
-
const pendingMutationEventsRaw = dbMutationLog.select(query.query, prepareBindValues(query.bindValues, query.query));
|
34
|
-
const pendingMutationEvents = Schema.decodeUnknownSync(mutationLogMetaTable.schema.pipe(Schema.Array))(pendingMutationEventsRaw);
|
35
|
-
const sessionChangesetRows = sessionChangesetMetaTable.query.where('idGlobal', '>=', since.global).asSql();
|
36
|
-
const sessionChangesetRowsRaw = dbReadModel.select(sessionChangesetRows.query, prepareBindValues(sessionChangesetRows.bindValues, sessionChangesetRows.query));
|
37
|
-
const sessionChangesetRowsDecoded = Schema.decodeUnknownSync(sessionChangesetMetaTable.schema.pipe(Schema.Array))(sessionChangesetRowsRaw);
|
38
|
-
return pendingMutationEvents
|
39
|
-
.map((mutationLogEvent) => {
|
40
|
-
const sessionChangeset = sessionChangesetRowsDecoded.find((readModelEvent) => readModelEvent.idGlobal === mutationLogEvent.idGlobal &&
|
41
|
-
readModelEvent.idClient === mutationLogEvent.idClient);
|
42
|
-
return MutationEvent.EncodedWithMeta.make({
|
43
|
-
mutation: mutationLogEvent.mutation,
|
44
|
-
args: mutationLogEvent.argsJson,
|
45
|
-
id: { global: mutationLogEvent.idGlobal, client: mutationLogEvent.idClient },
|
46
|
-
parentId: { global: mutationLogEvent.parentIdGlobal, client: mutationLogEvent.parentIdClient },
|
47
|
-
clientId: mutationLogEvent.clientId,
|
48
|
-
sessionId: mutationLogEvent.sessionId,
|
49
|
-
meta: {
|
50
|
-
sessionChangeset: sessionChangeset && sessionChangeset.changeset !== null
|
51
|
-
? {
|
52
|
-
_tag: 'sessionChangeset',
|
53
|
-
data: sessionChangeset.changeset,
|
54
|
-
debug: sessionChangeset.debug,
|
55
|
-
}
|
56
|
-
: { _tag: 'unset' },
|
57
|
-
syncMetadata: mutationLogEvent.syncMetadataJson,
|
58
|
-
},
|
59
|
-
});
|
60
|
-
})
|
61
|
-
.filter((_) => EventId.compare(_.id, since) > 0)
|
62
|
-
.sort((a, b) => EventId.compare(a.id, b.id));
|
63
|
-
});
|
64
|
-
export const getClientHeadFromDb = (dbMutationLog) => {
|
65
|
-
const res = dbMutationLog.select(sql `select idGlobal, idClient from ${MUTATION_LOG_META_TABLE} order by idGlobal DESC, idClient DESC limit 1`)[0];
|
66
|
-
return res ? { global: res.idGlobal, client: res.idClient } : EventId.ROOT;
|
67
|
-
};
|
68
|
-
export const getBackendHeadFromDb = (dbMutationLog) => dbMutationLog.select(sql `select head from ${SYNC_STATUS_TABLE}`)[0]?.head ??
|
69
|
-
EventId.ROOT.global;
|
70
|
-
// TODO use prepared statements
|
71
|
-
export const updateBackendHead = (dbMutationLog, head) => dbMutationLog.execute(sql `UPDATE ${SYNC_STATUS_TABLE} SET head = ${head.global}`);
|
72
|
-
export const insertIntoMutationLog = (mutationEventEncoded, dbMutationLog, mutationDefSchemaHash, clientId, sessionId) => Effect.gen(function* () {
|
73
|
-
// Check history consistency during LS_DEV
|
74
|
-
if (LS_DEV && mutationEventEncoded.parentId.global !== EventId.ROOT.global) {
|
75
|
-
const parentMutationExists = dbMutationLog.select(`SELECT COUNT(*) as count FROM ${MUTATION_LOG_META_TABLE} WHERE idGlobal = ? AND idClient = ?`, [mutationEventEncoded.parentId.global, mutationEventEncoded.parentId.client])[0].count === 1;
|
76
|
-
if (parentMutationExists === false) {
|
77
|
-
shouldNeverHappen(`Parent mutation ${mutationEventEncoded.parentId.global},${mutationEventEncoded.parentId.client} does not exist`);
|
78
|
-
}
|
79
|
-
}
|
80
|
-
// TODO use prepared statements
|
81
|
-
yield* execSql(dbMutationLog, ...insertRow({
|
82
|
-
tableName: MUTATION_LOG_META_TABLE,
|
83
|
-
columns: mutationLogMetaTable.sqliteDef.columns,
|
84
|
-
values: {
|
85
|
-
idGlobal: mutationEventEncoded.id.global,
|
86
|
-
idClient: mutationEventEncoded.id.client,
|
87
|
-
parentIdGlobal: mutationEventEncoded.parentId.global,
|
88
|
-
parentIdClient: mutationEventEncoded.parentId.client,
|
89
|
-
mutation: mutationEventEncoded.mutation,
|
90
|
-
argsJson: mutationEventEncoded.args ?? {},
|
91
|
-
clientId,
|
92
|
-
sessionId,
|
93
|
-
schemaHash: mutationDefSchemaHash,
|
94
|
-
syncMetadataJson: mutationEventEncoded.meta.syncMetadata,
|
95
|
-
},
|
96
|
-
}));
|
97
|
-
});
|
98
|
-
export const updateSyncMetadata = (items) => Effect.gen(function* () {
|
99
|
-
const { dbMutationLog } = yield* LeaderThreadCtx;
|
100
|
-
// TODO try to do this in a single query
|
101
|
-
for (let i = 0; i < items.length; i++) {
|
102
|
-
const mutationEvent = items[i];
|
103
|
-
yield* execSql(dbMutationLog, ...updateRows({
|
104
|
-
tableName: MUTATION_LOG_META_TABLE,
|
105
|
-
columns: mutationLogMetaTable.sqliteDef.columns,
|
106
|
-
where: { idGlobal: mutationEvent.id.global, idClient: mutationEvent.id.client },
|
107
|
-
updateValues: { syncMetadataJson: mutationEvent.meta.syncMetadata },
|
108
|
-
}));
|
109
|
-
}
|
110
|
-
});
|
111
|
-
export const getSyncBackendCursorInfo = (remoteHead) => Effect.gen(function* () {
|
112
|
-
const { dbMutationLog } = yield* LeaderThreadCtx;
|
113
|
-
if (remoteHead === EventId.ROOT.global)
|
114
|
-
return Option.none();
|
115
|
-
const MutationlogQuerySchema = Schema.Struct({
|
116
|
-
syncMetadataJson: Schema.parseJson(Schema.Option(Schema.JsonValue)),
|
117
|
-
}).pipe(Schema.pluck('syncMetadataJson'), Schema.Array, Schema.head);
|
118
|
-
const syncMetadataOption = yield* Effect.sync(() => dbMutationLog.select(sql `SELECT syncMetadataJson FROM ${MUTATION_LOG_META_TABLE} WHERE idGlobal = ${remoteHead} ORDER BY idClient ASC LIMIT 1`)).pipe(Effect.andThen(Schema.decode(MutationlogQuerySchema)), Effect.map(Option.flatten), Effect.orDie);
|
119
|
-
return Option.some({
|
120
|
-
cursor: { global: remoteHead, client: EventId.clientDefault },
|
121
|
-
metadata: syncMetadataOption,
|
122
|
-
});
|
123
|
-
}).pipe(Effect.withSpan('@livestore/common:mutationlog:getSyncBackendCursorInfo', { attributes: { remoteHead } }));
|
124
|
-
//# sourceMappingURL=mutationlog.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"mutationlog.js","sourceRoot":"","sources":["../../src/leader-thread/mutationlog.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +0,0 @@
|
|
1
|
-
import { Effect, Queue } from '@livestore/utils/effect';
|
2
|
-
import { LeaderThreadCtx, type PullQueueItem } from './types.js';
|
3
|
-
export declare const makePullQueueSet: Effect.Effect<{
|
4
|
-
makeQueue: (since: import("../schema/EventId.js").EventId) => Effect.Effect<Queue.Queue<PullQueueItem>, import("../adapter-types.js").UnexpectedError, import("effect/Scope").Scope | LeaderThreadCtx>;
|
5
|
-
offer: (item: PullQueueItem) => Effect.Effect<void, import("../adapter-types.js").UnexpectedError>;
|
6
|
-
}, never, import("effect/Scope").Scope>;
|
7
|
-
//# sourceMappingURL=pull-queue-set.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"pull-queue-set.d.ts","sourceRoot":"","sources":["../../src/leader-thread/pull-queue-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAGvD,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAqB,MAAM,YAAY,CAAA;AAEnF,eAAO,MAAM,gBAAgB;kEAoDw2H,OAAQ,MAAM,CAAC,MAAM,KAAK;oCAAkG,OAAQ,MAAM;uCAD7gI,CAAA"}
|
@@ -1,38 +0,0 @@
|
|
1
|
-
import { Effect, Queue } from '@livestore/utils/effect';
|
2
|
-
import { getMutationEventsSince } from './mutationlog.js';
|
3
|
-
export const makePullQueueSet = Effect.gen(function* () {
|
4
|
-
const set = new Set();
|
5
|
-
yield* Effect.addFinalizer(() => Effect.gen(function* () {
|
6
|
-
for (const queue of set) {
|
7
|
-
yield* Queue.shutdown(queue);
|
8
|
-
}
|
9
|
-
set.clear();
|
10
|
-
}));
|
11
|
-
const makeQueue = (since) => Effect.gen(function* () {
|
12
|
-
const queue = yield* Queue.unbounded().pipe(Effect.acquireRelease(Queue.shutdown));
|
13
|
-
yield* Effect.addFinalizer(() => Effect.sync(() => set.delete(queue)));
|
14
|
-
const newEvents = yield* getMutationEventsSince(since);
|
15
|
-
yield* Effect.log(`[@livestore/common:pull-queue-set] making queue for since ${since}`, newEvents);
|
16
|
-
yield* Effect.addFinalizerLog(`[@livestore/common:pull-queue-set] shutting down queue for since ${since}`);
|
17
|
-
if (newEvents.length > 0) {
|
18
|
-
yield* queue.offer({ payload: { _tag: 'upstream-advance', newEvents }, remaining: 0 });
|
19
|
-
}
|
20
|
-
set.add(queue);
|
21
|
-
return queue;
|
22
|
-
});
|
23
|
-
const offer = (item) => Effect.gen(function* () {
|
24
|
-
// Short-circuit if the payload is an empty upstream advance
|
25
|
-
if (item.payload._tag === 'upstream-advance' && item.payload.newEvents.length === 0) {
|
26
|
-
return;
|
27
|
-
}
|
28
|
-
console.log('[@livestore/common:pull-queue-set] offering item', item);
|
29
|
-
for (const queue of set) {
|
30
|
-
yield* Queue.offer(queue, item);
|
31
|
-
}
|
32
|
-
});
|
33
|
-
return {
|
34
|
-
makeQueue,
|
35
|
-
offer,
|
36
|
-
};
|
37
|
-
});
|
38
|
-
//# sourceMappingURL=pull-queue-set.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"pull-queue-set.js","sourceRoot":"","sources":["../../src/leader-thread/pull-queue-set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAGzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClD,MAAM,GAAG,GAAG,IAAI,GAAG,EAA8B,CAAA;IAEjD,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9B,CAAC;QAED,GAAG,CAAC,KAAK,EAAE,CAAA;IACb,CAAC,CAAC,CACH,CAAA;IAED,MAAM,SAAS,GAA8B,CAAC,KAAK,EAAE,EAAE,CACrD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,SAAS,EAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QAEjG,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEtE,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAA;QAEtD,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,6DAA6D,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;QAClG,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,oEAAoE,KAAK,EAAE,CAAC,CAAA;QAE1G,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAA;QACxF,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAEd,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEJ,MAAM,KAAK,GAA0B,CAAC,IAAI,EAAE,EAAE,CAC5C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,4DAA4D;QAC5D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,kBAAkB,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpF,OAAM;QACR,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,IAAI,CAAC,CAAA;QAErE,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,OAAO;QACL,SAAS;QACT,KAAK;KACN,CAAA;AACH,CAAC,CAAC,CAAA"}
|
package/dist/mutation.d.ts
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
import type * as MutationEvent from './schema/MutationEvent.js';
|
2
|
-
import type { MutationDef } from './schema/mutations.js';
|
3
|
-
import type { PreparedBindValues } from './util.js';
|
4
|
-
export declare const getExecArgsFromMutation: ({ mutationDef, mutationEvent, }: {
|
5
|
-
mutationDef: MutationDef.Any;
|
6
|
-
/** Both encoded and decoded mutation events are supported to reduce the number of times we need to decode/encode */
|
7
|
-
mutationEvent: {
|
8
|
-
decoded: MutationEvent.AnyDecoded | MutationEvent.PartialAnyDecoded;
|
9
|
-
encoded: undefined;
|
10
|
-
} | {
|
11
|
-
decoded: undefined;
|
12
|
-
encoded: MutationEvent.AnyEncoded | MutationEvent.PartialAnyEncoded;
|
13
|
-
};
|
14
|
-
}) => ReadonlyArray<{
|
15
|
-
statementSql: string;
|
16
|
-
bindValues: PreparedBindValues;
|
17
|
-
writeTables: ReadonlySet<string> | undefined;
|
18
|
-
}>;
|
19
|
-
export declare const replaceSessionIdSymbol: (bindValues: Record<string, unknown> | ReadonlyArray<unknown>, sessionId: string) => void;
|
20
|
-
//# sourceMappingURL=mutation.d.ts.map
|
package/dist/mutation.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"mutation.d.ts","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,aAAa,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAyB,MAAM,uBAAuB,CAAA;AAE/E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAGnD,eAAO,MAAM,uBAAuB,GAAI,iCAGrC;IACD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAA;IAC5B,oHAAoH;IACpH,aAAa,EACT;QACE,OAAO,EAAE,aAAa,CAAC,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAA;QACnE,OAAO,EAAE,SAAS,CAAA;KACnB,GACD;QACE,OAAO,EAAE,SAAS,CAAA;QAClB,OAAO,EAAE,aAAa,CAAC,UAAU,GAAG,aAAa,CAAC,iBAAiB,CAAA;KACpE,CAAA;CACN,KAAG,aAAa,CAAC;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,kBAAkB,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CAC7C,CAgDA,CAAA;AAID,eAAO,MAAM,sBAAsB,GACjC,YAAY,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAC5D,WAAW,MAAM,SAGlB,CAAA"}
|
package/dist/mutation.js
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
import { Schema } from '@livestore/utils/effect';
|
2
|
-
import { SessionIdSymbol } from './adapter-types.js';
|
3
|
-
import { isQueryBuilder } from './query-builder/api.js';
|
4
|
-
import { prepareBindValues } from './util.js';
|
5
|
-
export const getExecArgsFromMutation = ({ mutationDef, mutationEvent, }) => {
|
6
|
-
let statementRes;
|
7
|
-
switch (typeof mutationDef.sql) {
|
8
|
-
case 'function': {
|
9
|
-
const mutationArgsDecoded = mutationEvent.decoded?.args ?? Schema.decodeUnknownSync(mutationDef.schema)(mutationEvent.encoded.args);
|
10
|
-
const res = mutationDef.sql(mutationArgsDecoded, {
|
11
|
-
clientOnly: mutationDef.options.clientOnly,
|
12
|
-
// TODO properly implement this
|
13
|
-
currentFacts: new Map(),
|
14
|
-
});
|
15
|
-
statementRes = (Array.isArray(res) ? res : [res]).map((_) => {
|
16
|
-
if (isQueryBuilder(_)) {
|
17
|
-
const { query, bindValues } = _.asSql();
|
18
|
-
return { sql: query, bindValues: bindValues };
|
19
|
-
}
|
20
|
-
return _;
|
21
|
-
});
|
22
|
-
break;
|
23
|
-
}
|
24
|
-
case 'string': {
|
25
|
-
statementRes = [mutationDef.sql];
|
26
|
-
break;
|
27
|
-
}
|
28
|
-
default: {
|
29
|
-
statementRes = mutationDef.sql;
|
30
|
-
break;
|
31
|
-
}
|
32
|
-
}
|
33
|
-
return statementRes.map((statementRes) => {
|
34
|
-
const statementSql = typeof statementRes === 'string' ? statementRes : statementRes.sql;
|
35
|
-
const mutationArgsEncoded = mutationEvent.encoded?.args ?? Schema.encodeUnknownSync(mutationDef.schema)(mutationEvent.decoded.args);
|
36
|
-
const bindValues = typeof statementRes === 'string' ? mutationArgsEncoded : statementRes.bindValues;
|
37
|
-
const writeTables = typeof statementRes === 'string' ? undefined : statementRes.writeTables;
|
38
|
-
return { statementSql, bindValues: prepareBindValues(bindValues ?? {}, statementSql), writeTables };
|
39
|
-
});
|
40
|
-
};
|
41
|
-
// NOTE we should explore whether there is a more elegant solution
|
42
|
-
// e.g. by leveraging the schema to replace the sessionIdSymbol
|
43
|
-
export const replaceSessionIdSymbol = (bindValues, sessionId) => {
|
44
|
-
deepReplaceValue(bindValues, SessionIdSymbol, sessionId);
|
45
|
-
};
|
46
|
-
const deepReplaceValue = (input, searchValue, replaceValue) => {
|
47
|
-
if (Array.isArray(input)) {
|
48
|
-
for (const i in input) {
|
49
|
-
if (input[i] === searchValue) {
|
50
|
-
input[i] = replaceValue;
|
51
|
-
}
|
52
|
-
else {
|
53
|
-
deepReplaceValue(input[i], searchValue, replaceValue);
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}
|
57
|
-
else if (typeof input === 'object' && input !== null) {
|
58
|
-
for (const key in input) {
|
59
|
-
if (input[key] === searchValue) {
|
60
|
-
input[key] = replaceValue;
|
61
|
-
}
|
62
|
-
else {
|
63
|
-
deepReplaceValue(input[key], searchValue, replaceValue);
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
};
|
68
|
-
//# sourceMappingURL=mutation.js.map
|
package/dist/mutation.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"mutation.js","sourceRoot":"","sources":["../src/mutation.ts"],"names":[],"mappings":"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"}
|
package/dist/query-info.d.ts
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
import type { SessionIdSymbol } from './adapter-types.js';
|
2
|
-
import type { DbSchema } from './schema/mod.js';
|
3
|
-
/**
|
4
|
-
* Semantic information about a query with supported cases being:
|
5
|
-
* - a whole row
|
6
|
-
* - a single column value
|
7
|
-
* - a sub value in a JSON column
|
8
|
-
*
|
9
|
-
* This information is currently only used for derived mutations.
|
10
|
-
*/
|
11
|
-
export type QueryInfo = QueryInfo.None | QueryInfo.Row | QueryInfo.Col | QueryInfo.ColJsonValue | QueryInfo.Write;
|
12
|
-
export declare namespace QueryInfo {
|
13
|
-
type None = {
|
14
|
-
_tag: 'None';
|
15
|
-
};
|
16
|
-
type Row = {
|
17
|
-
_tag: 'Row';
|
18
|
-
table: DbSchema.TableDefBase;
|
19
|
-
id: string | SessionIdSymbol | number;
|
20
|
-
};
|
21
|
-
type Col = {
|
22
|
-
_tag: 'Col';
|
23
|
-
table: DbSchema.TableDefBase;
|
24
|
-
id: string | SessionIdSymbol | number;
|
25
|
-
column: string;
|
26
|
-
};
|
27
|
-
type ColJsonValue = {
|
28
|
-
_tag: 'ColJsonValue';
|
29
|
-
table: DbSchema.TableDefBase;
|
30
|
-
id: string | SessionIdSymbol | number;
|
31
|
-
column: string;
|
32
|
-
/**
|
33
|
-
* example: `$.tabs[3].items[2]` (`$` referring to the column value)
|
34
|
-
*/
|
35
|
-
jsonPath: string;
|
36
|
-
};
|
37
|
-
type Write = {
|
38
|
-
_tag: 'Write';
|
39
|
-
};
|
40
|
-
}
|
41
|
-
//# sourceMappingURL=query-info.d.ts.map
|
package/dist/query-info.d.ts.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"query-info.d.ts","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,GAAG,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAA;AAOjH,yBAAiB,SAAS,CAAC;IACzB,KAAY,IAAI,GAAG;QACjB,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IAED,KAAY,GAAG,GAAG;QAChB,IAAI,EAAE,KAAK,CAAA;QACX,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAA;QAC5B,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,MAAM,CAAA;KACtC,CAAA;IAED,KAAY,GAAG,GAAG;QAChB,IAAI,EAAE,KAAK,CAAA;QACX,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAA;QAC5B,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,MAAM,CAAA;QACrC,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IAED,KAAY,YAAY,GAAG;QACzB,IAAI,EAAE,cAAc,CAAA;QACpB,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAA;QAC5B,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,MAAM,CAAA;QACrC,MAAM,EAAE,MAAM,CAAA;QACd;;WAEG;QACH,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IAGD,KAAY,KAAK,GAAG;QAClB,IAAI,EAAE,OAAO,CAAA;KACd,CAAA;CA0BF"}
|
package/dist/query-info.js
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
export {};
|
2
|
-
// type GetJsonColumn<TTableDef extends DbSchema.TableDefBase> = keyof {
|
3
|
-
// [ColName in keyof TTableDef['sqliteDef']['columns'] as TTableDef['sqliteDef']['columns'][ColName]['columnType'] extends 'text'
|
4
|
-
// ? ColName
|
5
|
-
// : never]: {}
|
6
|
-
// }
|
7
|
-
//# sourceMappingURL=query-info.js.map
|
package/dist/query-info.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"query-info.js","sourceRoot":"","sources":["../src/query-info.ts"],"names":[],"mappings":";AA8EA,wEAAwE;AACxE,mIAAmI;AACnI,gBAAgB;AAChB,mBAAmB;AACnB,IAAI"}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import { Effect } from '@livestore/utils/effect';
|
2
|
-
import { type MigrationOptionsFromMutationLog, type SqliteDb, UnexpectedError } from './adapter-types.js';
|
3
|
-
import type { ApplyMutation } from './leader-thread/mod.js';
|
4
|
-
import type { LiveStoreSchema } from './schema/mod.js';
|
5
|
-
export declare const rehydrateFromMutationLog: ({ dbMutationLog, schema, migrationOptions, onProgress, applyMutation, }: {
|
6
|
-
dbMutationLog: SqliteDb;
|
7
|
-
schema: LiveStoreSchema;
|
8
|
-
migrationOptions: MigrationOptionsFromMutationLog;
|
9
|
-
onProgress: (_: {
|
10
|
-
done: number;
|
11
|
-
total: number;
|
12
|
-
}) => Effect.Effect<void>;
|
13
|
-
applyMutation: ApplyMutation;
|
14
|
-
}) => Effect.Effect<void, UnexpectedError | import("./adapter-types.js").SqliteError, never>;
|
15
|
-
//# sourceMappingURL=rehydrate-from-mutationlog.d.ts.map
|
@@ -1 +0,0 @@
|
|
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,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAmC,MAAM,iBAAiB,CAAA;AAKvF,eAAO,MAAM,wBAAwB,GAAI,yEAQtC;IACD,aAAa,EAAE,QAAQ,CAAA;IAEvB,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;IACvE,aAAa,EAAE,aAAa,CAAA;CAC7B,2FA+FE,CAAA"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"rehydrate-from-mutationlog.js","sourceRoot":"","sources":["../src/rehydrate-from-mutationlog.ts"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"MutationEvent.d.ts","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"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"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"MutationEvent.js","sourceRoot":"","sources":["../../src/schema/MutationEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAiCvC,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,IAAI,EAAE,MAAM,CAAC,GAAG;IAChB,EAAE,EAAE,OAAO,CAAC,OAAO;IACnB,QAAQ,EAAE,OAAO,CAAC,OAAO;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM;CACzB,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAA;AAGrD,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,IAAI,EAAE,MAAM,CAAC,GAAG;IAChB,EAAE,EAAE,OAAO,CAAC,OAAO;IACnB,QAAQ,EAAE,OAAO,CAAC,OAAO;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM;CACzB,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAA;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,IAAI,EAAE,MAAM,CAAC,GAAG;IAChB,EAAE,EAAE,OAAO,CAAC,aAAa;IACzB,QAAQ,EAAE,OAAO,CAAC,aAAa;IAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM;CACzB,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC,CAAA;AAM3D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,IAAI,EAAE,MAAM,CAAC,GAAG;CACjB,CAAC,CAAA;AAUF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,aAA6C,EACT,EAAE,CAAC,IAAI,IAAI,aAAa,KAAK,KAAK,IAAI,UAAU,IAAI,aAAa,KAAK,KAAK,CAAA;AAwCjH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,MAAe,EACuC,EAAE,CACxD,MAAM,CAAC,KAAK,CACV,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChD,MAAM,CAAC,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC,IAAI,EAAE,GAAG,CAAC,MAAM;IAChB,EAAE,EAAE,OAAO,CAAC,OAAO;IACnB,QAAQ,EAAE,OAAO,CAAC,OAAO;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM;CACzB,CAAC,CACH,CACF,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAQ,CAAA;AAElD,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,MAAe,EAC6C,EAAE,CAC9D,MAAM,CAAC,KAAK,CACV,GAAG,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAChD,MAAM,CAAC,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAClC,IAAI,EAAE,GAAG,CAAC,MAAM;CACjB,CAAC,CACH,CACF,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAQ,CAAA;AAEzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAEhF,kFAAkF;AAClF,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,KAAK,CAAkB,+BAA+B,CAAC,CAAC;IAClG,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,IAAI,EAAE,MAAM,CAAC,GAAG;IAChB,uCAAuC;IACvC,EAAE,EAAE,OAAO,CAAC,OAAO;IACnB,QAAQ,EAAE,OAAO,CAAC,OAAO;IACzB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM;IACxB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAC5B,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE;YACtC,IAAI,EAAE,MAAM,CAAC,UAAU;YACvB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;SACxC,CAAC,EACF,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,EAChC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CACjC;QACD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;KAC9C,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,YAAY,CAAC;QAClB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAClG,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;KAChG,CAAC,CACH;CACF,CAAC;IACA,MAAM,GAAG,GAAQ,EAAE;QACjB,kCAAkC;QAClC,iDAAiD;QACjD,kDAAkD;QAClD,OAAO;YACL,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YACvE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAA;IACH,CAAC,CAAA;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,GAAG,CAAC,QAAyB,EAAE,QAAiB,EAAE,EAAE,CACxD,IAAI,eAAe,CAAC;QAClB,GAAG,IAAI;QACP,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;KACxC,CAAC,CAAA;IAEJ,MAAM,CAAC,UAAU,GAAG,CAAC,aAA+B,EAAE,YAA6C,EAAE,EAAE,CACrG,IAAI,eAAe,CAAC;QAClB,GAAG,aAAa;QAChB,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE;QAC/D,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE;QAC3E,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,YAAY,EAAE;KACrE,CAAC,CAAA;IAEJ,QAAQ,GAAG,GAAqB,EAAE,CAAC,CAAC;QAClC,GAAG,IAAI;QACP,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM;QAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;KAC/B,CAAC,CAAA;;AAGJ,iDAAiD;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAa,EAAE,CAAa,EAAE,EAAE,CAC7D,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM;IAC3B,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM;IAC3B,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;IACzB,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;IACzB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS;IAC3B,gCAAgC;IAChC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA"}
|