@livestore/common 0.3.0-dev.32 → 0.3.0-dev.34
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 +5 -9
- package/dist/adapter-types.d.ts.map +1 -1
- package/dist/adapter-types.js.map +1 -1
- package/dist/devtools/devtools-messages-client-session.d.ts +22 -21
- package/dist/devtools/devtools-messages-client-session.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-client-session.js +1 -0
- package/dist/devtools/devtools-messages-client-session.js.map +1 -1
- package/dist/devtools/devtools-messages-common.d.ts +6 -6
- package/dist/devtools/devtools-messages-leader.d.ts +25 -25
- package/dist/devtools/devtools-messages-leader.js +1 -1
- package/dist/devtools/devtools-messages-leader.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +4 -4
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +21 -17
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/apply-event.d.ts +4 -4
- package/dist/leader-thread/apply-event.d.ts.map +1 -1
- package/dist/leader-thread/apply-event.js +9 -9
- package/dist/leader-thread/apply-event.js.map +1 -1
- package/dist/leader-thread/eventlog.d.ts.map +1 -1
- package/dist/leader-thread/eventlog.js +11 -15
- package/dist/leader-thread/eventlog.js.map +1 -1
- package/dist/leader-thread/leader-worker-devtools.js +13 -12
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +2 -2
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +11 -18
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/materialize-event.d.ts +16 -0
- package/dist/leader-thread/materialize-event.d.ts.map +1 -0
- package/dist/leader-thread/materialize-event.js +103 -0
- package/dist/leader-thread/materialize-event.js.map +1 -0
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +9 -17
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/types.d.ts +5 -5
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/materializer-helper.d.ts.map +1 -1
- package/dist/materializer-helper.js +1 -1
- package/dist/materializer-helper.js.map +1 -1
- package/dist/query-builder/api.d.ts +4 -4
- package/dist/query-builder/api.d.ts.map +1 -1
- package/dist/query-builder/impl.d.ts +2 -2
- package/dist/query-builder/impl.test.d.ts +5 -5
- package/dist/query-builder/mod.d.ts +2 -2
- package/dist/rehydrate-from-eventlog.d.ts +1 -1
- package/dist/rehydrate-from-eventlog.d.ts.map +1 -1
- package/dist/rehydrate-from-eventlog.js +6 -7
- package/dist/rehydrate-from-eventlog.js.map +1 -1
- package/dist/rematerialize-from-eventlog.d.ts +14 -0
- package/dist/rematerialize-from-eventlog.d.ts.map +1 -0
- package/dist/rematerialize-from-eventlog.js +64 -0
- package/dist/rematerialize-from-eventlog.js.map +1 -0
- package/dist/schema/EventDef.d.ts +1 -1
- package/dist/schema/EventDef.d.ts.map +1 -1
- package/dist/schema/EventId.test.js +1 -1
- package/dist/schema/EventId.test.js.map +1 -1
- package/dist/schema/client-document-def.d.ts +2 -2
- package/dist/schema/db-schema/dsl/mod.d.ts +3 -3
- package/dist/schema/db-schema/mod.d.ts +2 -2
- package/dist/schema/mod.d.ts +4 -4
- package/dist/schema/mod.d.ts.map +1 -1
- package/dist/schema/mod.js +4 -4
- package/dist/schema/mod.js.map +1 -1
- package/dist/schema/schema-helpers.d.ts +1 -1
- package/dist/schema/schema.d.ts +12 -14
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +5 -28
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/state/mod.d.ts +3 -0
- package/dist/schema/state/mod.d.ts.map +1 -0
- package/dist/schema/state/mod.js +3 -0
- package/dist/schema/state/mod.js.map +1 -0
- package/dist/schema/state/sqlite/client-document-def.d.ts +223 -0
- package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -0
- package/dist/schema/state/sqlite/client-document-def.js +170 -0
- package/dist/schema/state/sqlite/client-document-def.js.map +1 -0
- package/dist/schema/state/sqlite/client-document-def.test.d.ts +2 -0
- package/dist/schema/state/sqlite/client-document-def.test.d.ts.map +1 -0
- package/dist/schema/state/sqlite/client-document-def.test.js +201 -0
- package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +69 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +71 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts +3 -0
- package/dist/schema/state/sqlite/db-schema/ast/validate.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/validate.js +12 -0
- package/dist/schema/state/sqlite/db-schema/ast/validate.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts +90 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js +87 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.d.ts +2 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js +29 -0
- package/dist/schema/state/sqlite/db-schema/dsl/field-defs.test.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts +90 -0
- package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js +41 -0
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/hash.d.ts +2 -0
- package/dist/schema/state/sqlite/db-schema/hash.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/hash.js +14 -0
- package/dist/schema/state/sqlite/db-schema/hash.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/mod.d.ts +3 -0
- package/dist/schema/state/sqlite/db-schema/mod.d.ts.map +1 -0
- package/dist/schema/state/sqlite/db-schema/mod.js +3 -0
- package/dist/schema/state/sqlite/db-schema/mod.js.map +1 -0
- package/dist/schema/state/sqlite/mod.d.ts +17 -0
- package/dist/schema/state/sqlite/mod.d.ts.map +1 -0
- package/dist/schema/state/sqlite/mod.js +41 -0
- package/dist/schema/state/sqlite/mod.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/api.d.ts +293 -0
- package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -0
- package/dist/schema/state/sqlite/query-builder/api.js +6 -0
- package/dist/schema/state/sqlite/query-builder/api.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/astToSql.d.ts +7 -0
- package/dist/schema/state/sqlite/query-builder/astToSql.d.ts.map +1 -0
- package/dist/schema/state/sqlite/query-builder/astToSql.js +190 -0
- package/dist/schema/state/sqlite/query-builder/astToSql.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/impl.d.ts +7 -0
- package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -0
- package/dist/schema/state/sqlite/query-builder/impl.js +286 -0
- package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/impl.test.d.ts +87 -0
- package/dist/schema/state/sqlite/query-builder/impl.test.d.ts.map +1 -0
- package/dist/schema/state/sqlite/query-builder/impl.test.js +554 -0
- package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -0
- package/dist/schema/state/sqlite/query-builder/mod.d.ts +17 -0
- package/dist/schema/state/sqlite/query-builder/mod.d.ts.map +1 -0
- package/dist/schema/state/sqlite/query-builder/mod.js +17 -0
- package/dist/schema/state/sqlite/query-builder/mod.js.map +1 -0
- package/dist/schema/state/sqlite/schema-helpers.d.ts +4 -0
- package/dist/schema/state/sqlite/schema-helpers.d.ts.map +1 -0
- package/dist/schema/state/sqlite/schema-helpers.js +30 -0
- package/dist/schema/state/sqlite/schema-helpers.js.map +1 -0
- package/dist/schema/state/sqlite/sqlite-state.d.ts +12 -0
- package/dist/schema/state/sqlite/sqlite-state.d.ts.map +1 -0
- package/dist/schema/state/sqlite/sqlite-state.js +36 -0
- package/dist/schema/state/sqlite/sqlite-state.js.map +1 -0
- package/dist/schema/state/sqlite/system-tables.d.ts +574 -0
- package/dist/schema/state/sqlite/system-tables.d.ts.map +1 -0
- package/dist/schema/state/sqlite/system-tables.js +87 -0
- package/dist/schema/state/sqlite/system-tables.js.map +1 -0
- package/dist/schema/state/sqlite/table-def.d.ts +84 -0
- package/dist/schema/state/sqlite/table-def.d.ts.map +1 -0
- package/dist/schema/state/sqlite/table-def.js +36 -0
- package/dist/schema/state/sqlite/table-def.js.map +1 -0
- package/dist/schema/state/state.d.ts +3 -0
- package/dist/schema/state/state.d.ts.map +1 -0
- package/dist/schema/state/state.js +3 -0
- package/dist/schema/state/state.js.map +1 -0
- package/dist/schema/state.d.ts +3 -0
- package/dist/schema/state.d.ts.map +1 -0
- package/dist/schema/state.js +3 -0
- package/dist/schema/state.js.map +1 -0
- package/dist/schema/system-tables.d.ts +7 -433
- package/dist/schema/system-tables.d.ts.map +1 -1
- package/dist/schema/system-tables.js +1 -1
- package/dist/schema/system-tables.js.map +1 -1
- package/dist/schema/table-def.d.ts +2 -2
- package/dist/schema-management/migrations.d.ts +1 -1
- package/dist/schema-management/migrations.d.ts.map +1 -1
- package/dist/schema-management/migrations.js +14 -12
- package/dist/schema-management/migrations.js.map +1 -1
- package/dist/schema-management/validate-schema.d.ts +8 -0
- package/dist/schema-management/validate-schema.d.ts.map +1 -0
- package/dist/schema-management/validate-schema.js +39 -0
- package/dist/schema-management/validate-schema.js.map +1 -0
- package/dist/sql-queries/sql-queries.d.ts +1 -1
- package/dist/sql-queries/sql-queries.d.ts.map +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts +1 -1
- package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
- package/dist/sql-queries/types.d.ts +1 -1
- package/dist/sql-queries/types.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +3 -3
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +6 -6
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/sync/syncstate.d.ts +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +9 -3
- package/src/adapter-types.ts +4 -10
- package/src/devtools/devtools-messages-client-session.ts +1 -0
- package/src/devtools/devtools-messages-leader.ts +1 -1
- package/src/index.ts +3 -3
- package/src/leader-thread/LeaderSyncProcessor.ts +28 -30
- package/src/leader-thread/eventlog.ts +12 -17
- package/src/leader-thread/leader-worker-devtools.ts +15 -12
- package/src/leader-thread/make-leader-thread-layer.ts +15 -21
- package/src/leader-thread/{apply-event.ts → materialize-event.ts} +22 -28
- package/src/leader-thread/recreate-db.ts +9 -21
- package/src/leader-thread/types.ts +5 -5
- package/src/materializer-helper.ts +1 -1
- package/src/{rehydrate-from-eventlog.ts → rematerialize-from-eventlog.ts} +41 -38
- package/src/schema/EventDef.ts +1 -1
- package/src/schema/EventId.test.ts +1 -1
- package/src/schema/mod.ts +4 -4
- package/src/schema/schema.ts +18 -52
- package/src/schema/state/mod.ts +2 -0
- package/src/schema/{client-document-def.test.ts → state/sqlite/client-document-def.test.ts} +2 -2
- package/src/schema/{client-document-def.ts → state/sqlite/client-document-def.ts} +6 -6
- package/src/schema/{sqlite-state.ts → state/sqlite/mod.ts} +17 -6
- package/src/{query-builder → schema/state/sqlite/query-builder}/api.ts +21 -22
- package/src/{query-builder → schema/state/sqlite/query-builder}/astToSql.ts +3 -3
- package/src/{query-builder → schema/state/sqlite/query-builder}/impl.test.ts +1 -1
- package/src/{query-builder → schema/state/sqlite/query-builder}/impl.ts +3 -4
- package/src/schema/{schema-helpers.ts → state/sqlite/schema-helpers.ts} +1 -1
- package/src/schema/{system-tables.ts → state/sqlite/system-tables.ts} +6 -5
- package/src/schema/{table-def.ts → state/sqlite/table-def.ts} +2 -2
- package/src/schema-management/migrations.ts +17 -15
- package/src/sql-queries/sql-queries.ts +1 -1
- package/src/sql-queries/sql-query-builder.ts +1 -1
- package/src/sql-queries/types.ts +1 -1
- package/src/sync/ClientSessionSyncProcessor.ts +7 -7
- package/src/version.ts +1 -1
- package/src/schema/view.ts +0 -2
- package/tmp/pack.tgz +0 -0
- package/tsconfig.json +0 -12
- /package/src/schema/{db-schema → state/sqlite/db-schema}/ast/sqlite.ts +0 -0
- /package/src/schema/{db-schema → state/sqlite/db-schema}/ast/validate.ts +0 -0
- /package/src/schema/{db-schema → state/sqlite/db-schema}/dsl/__snapshots__/field-defs.test.ts.snap +0 -0
- /package/src/schema/{db-schema → state/sqlite/db-schema}/dsl/field-defs.test.ts +0 -0
- /package/src/schema/{db-schema → state/sqlite/db-schema}/dsl/field-defs.ts +0 -0
- /package/src/schema/{db-schema → state/sqlite/db-schema}/dsl/mod.ts +0 -0
- /package/src/schema/{db-schema → state/sqlite/db-schema}/hash.ts +0 -0
- /package/src/schema/{db-schema → state/sqlite/db-schema}/mod.ts +0 -0
- /package/src/{query-builder → schema/state/sqlite/query-builder}/mod.ts +0 -0
- /package/src/schema-management/{validate-mutation-defs.ts → validate-schema.ts} +0 -0
@@ -26,7 +26,7 @@ export declare const issue: State.SQLite.TableDef<{
|
|
26
26
|
};
|
27
27
|
readonly priority: {
|
28
28
|
columnType: "integer";
|
29
|
-
schema: Schema.Schema<0 |
|
29
|
+
schema: Schema.Schema<0 | 1 | 2 | 3 | 4, 0 | 1 | 2 | 3 | 4, never>;
|
30
30
|
default: import("effect/Option").Some<0>;
|
31
31
|
nullable: false;
|
32
32
|
primaryKey: false;
|
@@ -60,8 +60,8 @@ export declare const issue: State.SQLite.TableDef<{
|
|
60
60
|
primaryKey: false;
|
61
61
|
};
|
62
62
|
};
|
63
|
-
indexes?: ReadonlyArray<import("../schema/db-schema/dsl/mod.js").Index>;
|
64
|
-
ast: import("../schema/db-schema/ast/sqlite.js").Table;
|
63
|
+
indexes?: ReadonlyArray<import("../schema/state/sqlite/db-schema/dsl/mod.js").Index>;
|
64
|
+
ast: import("../schema/state/sqlite/db-schema/ast/sqlite.js").Table;
|
65
65
|
}, {
|
66
66
|
isClientDocumentTable: false;
|
67
67
|
requiredInsertColumnNames: "id" | "created" | "modified";
|
@@ -69,7 +69,7 @@ export declare const issue: State.SQLite.TableDef<{
|
|
69
69
|
readonly id: number;
|
70
70
|
readonly title: string;
|
71
71
|
readonly creator: string;
|
72
|
-
readonly priority: 0 |
|
72
|
+
readonly priority: 0 | 1 | 2 | 3 | 4;
|
73
73
|
readonly created: Date;
|
74
74
|
readonly deleted: Date | null;
|
75
75
|
readonly modified: Date;
|
@@ -78,7 +78,7 @@ export declare const issue: State.SQLite.TableDef<{
|
|
78
78
|
readonly id: number;
|
79
79
|
readonly title: string;
|
80
80
|
readonly creator: string;
|
81
|
-
readonly priority: 0 |
|
81
|
+
readonly priority: 0 | 1 | 2 | 3 | 4;
|
82
82
|
readonly created: number;
|
83
83
|
readonly deleted: number | null;
|
84
84
|
readonly modified: number;
|
@@ -2,7 +2,7 @@ import { Effect } from '@livestore/utils/effect';
|
|
2
2
|
import { type SqliteDb, UnexpectedError } from './adapter-types.js';
|
3
3
|
import type { ApplyEvent } from './leader-thread/mod.js';
|
4
4
|
import type { LiveStoreSchema } from './schema/mod.js';
|
5
|
-
export declare const
|
5
|
+
export declare const rematerializeFromEventlog: ({ dbEventlog, schema, onProgress, applyEvent, }: {
|
6
6
|
dbEventlog: SqliteDb;
|
7
7
|
schema: LiveStoreSchema;
|
8
8
|
onProgress: (_: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rehydrate-from-eventlog.d.ts","sourceRoot":"","sources":["../src/rehydrate-from-eventlog.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAA0B,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAE,KAAK,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"rehydrate-from-eventlog.d.ts","sourceRoot":"","sources":["../src/rehydrate-from-eventlog.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAA0B,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAE,KAAK,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAKhE,eAAO,MAAM,yBAAyB,GAAI,iDAOvC;IACD,UAAU,EAAE,QAAQ,CAAA;IAEpB,MAAM,EAAE,eAAe,CAAA;IACvB,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,UAAU,EAAE,UAAU,CAAA;CACvB,2FA2FE,CAAA"}
|
@@ -1,14 +1,13 @@
|
|
1
1
|
import { memoizeByRef } from '@livestore/utils';
|
2
2
|
import { Chunk, Effect, Option, Schema, Stream } from '@livestore/utils/effect';
|
3
3
|
import { UnexpectedError } from './adapter-types.js';
|
4
|
-
import { EventId,
|
4
|
+
import { EventId, getEventDef, LiveStoreEvent, SystemTables } from './schema/mod.js';
|
5
5
|
import { sql } from './util.js';
|
6
|
-
export const
|
6
|
+
export const rematerializeFromEventlog = ({ dbEventlog,
|
7
7
|
// TODO re-use this db when bringing back the boot in-memory db implementation
|
8
8
|
// db,
|
9
9
|
schema, onProgress, applyEvent, }) => Effect.gen(function* () {
|
10
|
-
const eventsCount = dbEventlog.select(`SELECT COUNT(*) AS count FROM ${EVENTLOG_META_TABLE}`)[0]
|
11
|
-
.count;
|
10
|
+
const eventsCount = dbEventlog.select(`SELECT COUNT(*) AS count FROM ${SystemTables.EVENTLOG_META_TABLE}`)[0].count;
|
12
11
|
const hashEvent = memoizeByRef((event) => Schema.hash(event.schema));
|
13
12
|
const processEvent = (row) => Effect.gen(function* () {
|
14
13
|
const eventDef = getEventDef(schema, row.name);
|
@@ -34,10 +33,10 @@ This likely means the schema has changed in an incompatible way.
|
|
34
33
|
sessionId: row.sessionId,
|
35
34
|
});
|
36
35
|
yield* applyEvent(eventEncoded, { skipEventlog: true });
|
37
|
-
}).pipe(Effect.withSpan(`@livestore/common:
|
36
|
+
}).pipe(Effect.withSpan(`@livestore/common:rematerializeFromEventlog:processEvent`));
|
38
37
|
const CHUNK_SIZE = 100;
|
39
38
|
const stmt = dbEventlog.prepare(sql `\
|
40
|
-
SELECT * FROM ${EVENTLOG_META_TABLE}
|
39
|
+
SELECT * FROM ${SystemTables.EVENTLOG_META_TABLE}
|
41
40
|
WHERE idGlobal > $idGlobal OR (idGlobal = $idGlobal AND idClient > $idClient)
|
42
41
|
ORDER BY idGlobal ASC, idClient ASC
|
43
42
|
LIMIT ${CHUNK_SIZE}
|
@@ -61,5 +60,5 @@ LIMIT ${CHUNK_SIZE}
|
|
61
60
|
processedEvents++;
|
62
61
|
yield* onProgress({ done: processedEvents, total: eventsCount });
|
63
62
|
})), Stream.runDrain);
|
64
|
-
}).pipe(Effect.withPerformanceMeasure('@livestore/common:
|
63
|
+
}).pipe(Effect.withPerformanceMeasure('@livestore/common:rematerializeFromEventlog'), Effect.withSpan('@livestore/common:rematerializeFromEventlog'));
|
65
64
|
//# sourceMappingURL=rehydrate-from-eventlog.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rehydrate-from-eventlog.js","sourceRoot":"","sources":["../src/rehydrate-from-eventlog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAiB,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGnE,OAAO,EAAE,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"rehydrate-from-eventlog.js","sourceRoot":"","sources":["../src/rehydrate-from-eventlog.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { Effect } from '@livestore/utils/effect';
|
2
|
+
import { type SqliteDb, UnexpectedError } from './adapter-types.js';
|
3
|
+
import type { MaterializeEvent } from './leader-thread/mod.js';
|
4
|
+
import type { LiveStoreSchema } from './schema/mod.js';
|
5
|
+
export declare const rematerializeFromEventlog: ({ dbEventlog, schema, onProgress, materializeEvent, }: {
|
6
|
+
dbEventlog: SqliteDb;
|
7
|
+
schema: LiveStoreSchema;
|
8
|
+
onProgress: (_: {
|
9
|
+
done: number;
|
10
|
+
total: number;
|
11
|
+
}) => Effect.Effect<void>;
|
12
|
+
materializeEvent: MaterializeEvent;
|
13
|
+
}) => Effect.Effect<void, UnexpectedError | import("./adapter-types.js").SqliteError, never>;
|
14
|
+
//# sourceMappingURL=rematerialize-from-eventlog.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rematerialize-from-eventlog.d.ts","sourceRoot":"","sources":["../src/rematerialize-from-eventlog.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,MAAM,EAA0B,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAE,KAAK,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAY,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAKhE,eAAO,MAAM,yBAAyB,GAAI,uDAOvC;IACD,UAAU,EAAE,QAAQ,CAAA;IAEpB,MAAM,EAAE,eAAe,CAAA;IACvB,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,gBAAgB,EAAE,gBAAgB,CAAA;CACnC,2FA6FE,CAAA"}
|
@@ -0,0 +1,64 @@
|
|
1
|
+
import { memoizeByRef } from '@livestore/utils';
|
2
|
+
import { Chunk, Effect, Option, Schema, Stream } from '@livestore/utils/effect';
|
3
|
+
import { UnexpectedError } from './adapter-types.js';
|
4
|
+
import { EventId, getEventDef, LiveStoreEvent, SystemTables } from './schema/mod.js';
|
5
|
+
import { sql } from './util.js';
|
6
|
+
export const rematerializeFromEventlog = ({ dbEventlog,
|
7
|
+
// TODO re-use this db when bringing back the boot in-memory db implementation
|
8
|
+
// db,
|
9
|
+
schema, onProgress, materializeEvent, }) => Effect.gen(function* () {
|
10
|
+
const eventsCount = dbEventlog.select(`SELECT COUNT(*) AS count FROM ${SystemTables.EVENTLOG_META_TABLE}`)[0].count;
|
11
|
+
const hashEvent = memoizeByRef((event) => Schema.hash(event.schema));
|
12
|
+
const processEvent = (row) => Effect.gen(function* () {
|
13
|
+
const eventDef = getEventDef(schema, row.name);
|
14
|
+
if (hashEvent(eventDef.eventDef) !== row.schemaHash) {
|
15
|
+
yield* Effect.logWarning(`Schema hash mismatch for event definition ${row.name}. Trying to materialize event anyway.`);
|
16
|
+
}
|
17
|
+
const args = JSON.parse(row.argsJson);
|
18
|
+
// Checking whether the schema has changed in an incompatible way
|
19
|
+
yield* Schema.decodeUnknown(eventDef.eventDef.schema)(args).pipe(Effect.mapError((cause) => UnexpectedError.make({
|
20
|
+
cause,
|
21
|
+
note: `\
|
22
|
+
There was an error during rematerializing from the eventlog while decoding
|
23
|
+
the persisted event args for event definition "${row.name}".
|
24
|
+
This likely means the schema has changed in an incompatible way.
|
25
|
+
`,
|
26
|
+
})));
|
27
|
+
const eventEncoded = LiveStoreEvent.EncodedWithMeta.make({
|
28
|
+
id: { global: row.idGlobal, client: row.idClient },
|
29
|
+
parentId: { global: row.parentIdGlobal, client: row.parentIdClient },
|
30
|
+
name: row.name,
|
31
|
+
args,
|
32
|
+
clientId: row.clientId,
|
33
|
+
sessionId: row.sessionId,
|
34
|
+
});
|
35
|
+
yield* materializeEvent(eventEncoded, { skipEventlog: true });
|
36
|
+
}).pipe(Effect.withSpan(`@livestore/common:rematerializeFromEventlog:processEvent`));
|
37
|
+
const CHUNK_SIZE = 100;
|
38
|
+
const stmt = dbEventlog.prepare(sql `\
|
39
|
+
SELECT * FROM ${SystemTables.EVENTLOG_META_TABLE}
|
40
|
+
WHERE idGlobal > $idGlobal OR (idGlobal = $idGlobal AND idClient > $idClient)
|
41
|
+
ORDER BY idGlobal ASC, idClient ASC
|
42
|
+
LIMIT ${CHUNK_SIZE}
|
43
|
+
`);
|
44
|
+
let processedEvents = 0;
|
45
|
+
yield* Stream.unfoldChunk({ _tag: 'Initial ' }, (item) => {
|
46
|
+
// End stream if no more rows
|
47
|
+
if (Chunk.isChunk(item) && item.length === 0)
|
48
|
+
return Option.none();
|
49
|
+
const lastId = Chunk.isChunk(item)
|
50
|
+
? Chunk.last(item).pipe(Option.map((_) => ({ global: _.idGlobal, client: _.idClient })), Option.getOrElse(() => EventId.ROOT))
|
51
|
+
: EventId.ROOT;
|
52
|
+
const nextItem = Chunk.fromIterable(stmt.select({
|
53
|
+
$idGlobal: lastId?.global,
|
54
|
+
$idClient: lastId?.client,
|
55
|
+
}));
|
56
|
+
const prevItem = Chunk.isChunk(item) ? item : Chunk.empty();
|
57
|
+
return Option.some([prevItem, nextItem]);
|
58
|
+
}).pipe(Stream.bufferChunks({ capacity: 2 }), Stream.tap((row) => Effect.gen(function* () {
|
59
|
+
yield* processEvent(row);
|
60
|
+
processedEvents++;
|
61
|
+
yield* onProgress({ done: processedEvents, total: eventsCount });
|
62
|
+
})), Stream.runDrain);
|
63
|
+
}).pipe(Effect.withPerformanceMeasure('@livestore/common:rematerializeFromEventlog'), Effect.withSpan('@livestore/common:rematerializeFromEventlog'));
|
64
|
+
//# sourceMappingURL=rematerialize-from-eventlog.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"rematerialize-from-eventlog.js","sourceRoot":"","sources":["../src/rematerialize-from-eventlog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAE/E,OAAO,EAAiB,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGnE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEpF,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAE/B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,UAAU;AACV,8EAA8E;AAC9E,MAAM;AACN,MAAM,EACN,UAAU,EACV,gBAAgB,GAOjB,EAAE,EAAE,CACH,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CACnC,iCAAiC,YAAY,CAAC,mBAAmB,EAAE,CACpE,CAAC,CAAC,CAAE,CAAC,KAAK,CAAA;IAEX,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,KAA4B,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAE3F,MAAM,YAAY,GAAG,CAAC,GAAiC,EAAE,EAAE,CACzD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;QAE9C,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC;YACpD,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,6CAA6C,GAAG,CAAC,IAAI,uCAAuC,CAC7F,CAAA;QACH,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAErC,iEAAiE;QACjE,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,eAAe,CAAC,IAAI,CAAC;YACnB,KAAK;YACL,IAAI,EAAE;;iDAE6B,GAAG,CAAC,IAAI;;CAExD;SACY,CAAC,CACH,CACF,CAAA;QAED,MAAM,YAAY,GAAG,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC;YACvD,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE;YAClD,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,cAAc,EAAE;YACpE,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI;YACJ,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAA;QAEF,KAAK,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,0DAA0D,CAAC,CAAC,CAAA;IAEtF,MAAM,UAAU,GAAG,GAAG,CAAA;IAEtB,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAA;gBACvB,YAAY,CAAC,mBAAmB;;;QAGxC,UAAU;CACjB,CAAC,CAAA;IAEE,IAAI,eAAe,GAAG,CAAC,CAAA;IAEvB,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAGvB,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;QAC/B,6BAA6B;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;QAElE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CACnB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,EAC/D,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CACrC;YACH,CAAC,CAAC,OAAO,CAAC,IAAI,CAAA;QAChB,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CACjC,IAAI,CAAC,MAAM,CAA+B;YACxC,SAAS,EAAE,MAAM,EAAE,MAAM;YACzB,SAAS,EAAE,MAAM,EAAE,MAAM;SACG,CAAC,CAChC,CAAA;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;QAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EACpC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,KAAK,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;QAExB,eAAe,EAAE,CAAA;QACjB,KAAK,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;IAClE,CAAC,CAAC,CACH,EACD,MAAM,CAAC,QAAQ,CAChB,CAAA;AACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,sBAAsB,CAAC,6CAA6C,CAAC,EAC5E,MAAM,CAAC,QAAQ,CAAC,6CAA6C,CAAC,CAC/D,CAAA"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import type { SingleOrReadonlyArray } from '@livestore/utils';
|
2
2
|
import { Schema } from '@livestore/utils/effect';
|
3
|
-
import type { QueryBuilder } from '../query-builder/mod.js';
|
4
3
|
import type { BindValues } from '../sql-queries/sql-queries.js';
|
4
|
+
import type { QueryBuilder } from './state/sqlite/query-builder/mod.js';
|
5
5
|
export type EventDefMap = {
|
6
6
|
map: Map<string | 'livestore.RawSql', EventDef.Any>;
|
7
7
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"EventDef.d.ts","sourceRoot":"","sources":["../../src/schema/EventDef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"EventDef.d.ts","sourceRoot":"","sources":["../../src/schema/EventDef.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"EventId.test.js","sourceRoot":"","sources":["../../src/schema/EventId.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"EventId.test.js","sourceRoot":"","sources":["../../src/schema/EventId.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IAC9B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QACpD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QACjF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import type { Option, Types } from '@livestore/utils/effect';
|
2
2
|
import { Schema } from '@livestore/utils/effect';
|
3
3
|
import { SessionIdSymbol } from '../adapter-types.js';
|
4
|
-
import type { QueryBuilder } from '
|
5
|
-
import { SqliteDsl } from './db-schema/mod.
|
4
|
+
import type { QueryBuilder } from './state/sqlite/query-builder/mod.ts';
|
5
|
+
import { SqliteDsl } from './state/sqlite/db-schema/mod.ts';
|
6
6
|
import type { EventDef, Materializer } from './EventDef.js';
|
7
7
|
import type { TableDef, TableDefBase } from './table-def.js';
|
8
8
|
/**
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import type { Nullable } from '@livestore/utils';
|
2
2
|
import type { Option, Types } from '@livestore/utils/effect';
|
3
3
|
import { Schema } from '@livestore/utils/effect';
|
4
|
-
import type * as SqliteAst from '../ast/sqlite.
|
5
|
-
import type { ColumnDefinition } from './field-defs.
|
6
|
-
export * from './field-defs.
|
4
|
+
import type * as SqliteAst from '../ast/sqlite.ts';
|
5
|
+
import type { ColumnDefinition } from './field-defs.ts';
|
6
|
+
export * from './field-defs.ts';
|
7
7
|
export type DbSchema = {
|
8
8
|
[key: string]: TableDefinition<string, Columns>;
|
9
9
|
};
|
@@ -1,3 +1,3 @@
|
|
1
|
-
export * as SqliteDsl from './dsl/mod.
|
2
|
-
export * as SqliteAst from './ast/sqlite.
|
1
|
+
export * as SqliteDsl from './dsl/mod.ts';
|
2
|
+
export * as SqliteAst from './ast/sqlite.ts';
|
3
3
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/schema/mod.d.ts
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
export * from './system-tables.js';
|
2
|
-
export { SqliteAst, SqliteDsl } from './db-schema/mod.js';
|
1
|
+
export * as SystemTables from './state/sqlite/system-tables.js';
|
2
|
+
export { SqliteAst, SqliteDsl } from './state/sqlite/db-schema/mod.js';
|
3
3
|
export * from './EventDef.js';
|
4
|
-
export * from './schema-helpers.js';
|
4
|
+
export * from './state/sqlite/schema-helpers.js';
|
5
5
|
export * from './schema.js';
|
6
|
-
export * as State from './
|
6
|
+
export * as State from './state/mod.js';
|
7
7
|
export * as LiveStoreEvent from './LiveStoreEvent.js';
|
8
8
|
export * as EventId from './EventId.js';
|
9
9
|
export * as Events from './events.js';
|
package/dist/schema/mod.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AACtE,cAAc,eAAe,CAAA;AAC7B,cAAc,kCAAkC,CAAA;AAChD,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
|
package/dist/schema/mod.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
export * from './system-tables.js';
|
2
|
-
export { SqliteAst, SqliteDsl } from './db-schema/mod.js';
|
1
|
+
export * as SystemTables from './state/sqlite/system-tables.js';
|
2
|
+
export { SqliteAst, SqliteDsl } from './state/sqlite/db-schema/mod.js';
|
3
3
|
export * from './EventDef.js';
|
4
|
-
export * from './schema-helpers.js';
|
4
|
+
export * from './state/sqlite/schema-helpers.js';
|
5
5
|
export * from './schema.js';
|
6
|
-
export * as State from './
|
6
|
+
export * as State from './state/mod.js';
|
7
7
|
export * as LiveStoreEvent from './LiveStoreEvent.js';
|
8
8
|
export * as EventId from './EventId.js';
|
9
9
|
export * as Events from './events.js';
|
package/dist/schema/mod.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../src/schema/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AACtE,cAAc,eAAe,CAAA;AAC7B,cAAc,kCAAkC,CAAA;AAChD,cAAc,aAAa,CAAA;AAC3B,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { TableDef, TableDefBase } from '
|
1
|
+
import type { TableDef, TableDefBase } from '../../table-def.js';
|
2
2
|
export declare const getDefaultValuesEncoded: <TTableDef extends TableDef>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
|
3
3
|
export declare const getDefaultValuesDecoded: <TTableDef extends TableDefBase>(tableDef: TTableDef, fallbackValues?: Record<string, any>) => Record<string, any>;
|
4
4
|
//# sourceMappingURL=schema-helpers.d.ts.map
|
package/dist/schema/schema.d.ts
CHANGED
@@ -1,24 +1,25 @@
|
|
1
1
|
import type { MigrationOptions } from '../adapter-types.js';
|
2
|
-
import type { SqliteDsl } from './db-schema/mod.js';
|
3
2
|
import type { EventDef, EventDefRecord, Materializer, RawSqlEvent } from './EventDef.js';
|
4
|
-
import type {
|
3
|
+
import type { SqliteDsl } from './state/sqlite/db-schema/mod.js';
|
4
|
+
import type { TableDef } from './state/sqlite/table-def.js';
|
5
5
|
export declare const LiveStoreSchemaSymbol: unique symbol;
|
6
6
|
export type LiveStoreSchemaSymbol = typeof LiveStoreSchemaSymbol;
|
7
7
|
export type LiveStoreSchema<TDbSchema extends SqliteDsl.DbSchema = SqliteDsl.DbSchema, TEventsDefRecord extends EventDefRecord = EventDefRecord> = {
|
8
|
-
readonly
|
8
|
+
readonly LiveStoreSchemaSymbol: LiveStoreSchemaSymbol;
|
9
9
|
/** Only used on type-level */
|
10
10
|
readonly _DbSchemaType: TDbSchema;
|
11
11
|
/** Only used on type-level */
|
12
12
|
readonly _EventDefMapType: TEventsDefRecord;
|
13
|
-
readonly tables: Map<string, TableDef>;
|
14
|
-
/** Compound hash of all table defs etc */
|
15
|
-
readonly hash: number;
|
16
13
|
readonly state: State;
|
17
14
|
readonly eventsDefsMap: Map<string, EventDef.AnyWithoutFn>;
|
18
|
-
migrationOptions: MigrationOptions;
|
19
15
|
};
|
20
16
|
export type State = {
|
21
|
-
readonly
|
17
|
+
readonly sqlite: {
|
18
|
+
readonly tables: Map<string, TableDef.Any>;
|
19
|
+
readonly migrations: MigrationOptions;
|
20
|
+
/** Compound hash of all table defs etc */
|
21
|
+
readonly hash: number;
|
22
|
+
};
|
22
23
|
readonly materializers: Map<string, Materializer>;
|
23
24
|
};
|
24
25
|
export type InputSchema = {
|
@@ -27,22 +28,19 @@ export type InputSchema = {
|
|
27
28
|
};
|
28
29
|
export declare const makeSchema: <TInputSchema extends InputSchema>(
|
29
30
|
/** Note when using the object-notation for tables/events, the object keys are ignored and not used as table/mutation names */
|
30
|
-
inputSchema: TInputSchema
|
31
|
-
/** "hard-reset" is currently the default strategy */
|
32
|
-
migrations?: MigrationOptions;
|
33
|
-
}) => FromInputSchema.DeriveSchema<TInputSchema>;
|
31
|
+
inputSchema: TInputSchema) => FromInputSchema.DeriveSchema<TInputSchema>;
|
34
32
|
export declare const getEventDef: <TSchema extends LiveStoreSchema>(schema: TSchema, eventName: string) => {
|
35
33
|
eventDef: EventDef.AnyWithoutFn;
|
36
34
|
materializer: Materializer;
|
37
35
|
};
|
38
36
|
export declare namespace FromInputSchema {
|
39
|
-
export type DeriveSchema<TInputSchema extends InputSchema> = LiveStoreSchema<DbSchemaFromInputSchemaTables<TInputSchema['state']['tables']>, EventDefRecordFromInputSchemaEvents<TInputSchema['events']>>;
|
37
|
+
export type DeriveSchema<TInputSchema extends InputSchema> = LiveStoreSchema<DbSchemaFromInputSchemaTables<TInputSchema['state']['sqlite']['tables']>, EventDefRecordFromInputSchemaEvents<TInputSchema['events']>>;
|
40
38
|
/**
|
41
39
|
* In case of ...
|
42
40
|
* - array: we use the table name of each array item (= table definition) as the object key
|
43
41
|
* - object: we discard the keys of the input object and use the table name of each object value (= table definition) as the new object key
|
44
42
|
*/
|
45
|
-
type DbSchemaFromInputSchemaTables<TTables extends InputSchema['state']['tables']> = TTables extends ReadonlyArray<TableDef> ? {
|
43
|
+
type DbSchemaFromInputSchemaTables<TTables extends InputSchema['state']['sqlite']['tables']> = TTables extends ReadonlyArray<TableDef> ? {
|
46
44
|
[K in TTables[number] as K['sqliteDef']['name']]: K['sqliteDef'];
|
47
45
|
} : TTables extends Record<string, TableDef> ? {
|
48
46
|
[K in keyof TTables as TTables[K]['sqliteDef']['name']]: TTables[K]['sqliteDef'];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema/schema.js
CHANGED
@@ -1,28 +1,14 @@
|
|
1
1
|
import { isReadonlyArray, shouldNeverHappen } from '@livestore/utils';
|
2
|
-
import { tableIsClientDocumentTable } from './client-document-def.js';
|
3
|
-
import { SqliteAst } from './db-schema/mod.js';
|
4
2
|
import { rawSqlEvent } from './EventDef.js';
|
5
|
-
import {
|
3
|
+
import { tableIsClientDocumentTable } from './state/sqlite/client-document-def.js';
|
4
|
+
import { stateSystemTables } from './state/sqlite/system-tables.js';
|
6
5
|
export const LiveStoreSchemaSymbol = Symbol.for('livestore.LiveStoreSchema');
|
7
6
|
export const makeSchema = (
|
8
7
|
/** Note when using the object-notation for tables/events, the object keys are ignored and not used as table/mutation names */
|
9
8
|
inputSchema) => {
|
10
|
-
// const inputTables: ReadonlyArray<TableDef> = Array.isArray(inputSchema.tables)
|
11
|
-
// ? inputSchema.tables
|
12
|
-
// : Object.values(inputSchema.tables)
|
13
|
-
// const inputTables = []
|
14
|
-
// const tables = new Map<string, TableDef>()
|
15
|
-
// for (const tableDef of inputTables) {
|
16
|
-
// // TODO validate tables (e.g. index names are unique)
|
17
|
-
// if (tables.has(tableDef.sqliteDef.ast.name)) {
|
18
|
-
// shouldNeverHappen(`Duplicate table name: ${tableDef.sqliteDef.ast.name}. Please use unique names for tables.`)
|
19
|
-
// }
|
20
|
-
// tables.set(tableDef.sqliteDef.ast.name, tableDef)
|
21
|
-
// }
|
22
9
|
const state = inputSchema.state;
|
23
|
-
const tables = inputSchema.state.tables;
|
24
|
-
for (const tableDef of
|
25
|
-
// // @ts-expect-error TODO fix type level issue
|
10
|
+
const tables = inputSchema.state.sqlite.tables;
|
11
|
+
for (const tableDef of stateSystemTables) {
|
26
12
|
tables.set(tableDef.sqliteDef.name, tableDef);
|
27
13
|
}
|
28
14
|
const eventsDefsMap = new Map();
|
@@ -45,21 +31,12 @@ inputSchema) => {
|
|
45
31
|
eventsDefsMap.set(tableDef.set.name, tableDef.set);
|
46
32
|
}
|
47
33
|
}
|
48
|
-
const hash = SqliteAst.hash({
|
49
|
-
_tag: 'dbSchema',
|
50
|
-
tables: [...tables.values()].map((_) => _.sqliteDef.ast),
|
51
|
-
});
|
52
34
|
return {
|
53
|
-
|
35
|
+
LiveStoreSchemaSymbol,
|
54
36
|
_DbSchemaType: Symbol.for('livestore.DbSchemaType'),
|
55
37
|
_EventDefMapType: Symbol.for('livestore.EventDefMapType'),
|
56
|
-
// tables,
|
57
|
-
// events,
|
58
38
|
state,
|
59
|
-
tables: state.tables,
|
60
39
|
eventsDefsMap,
|
61
|
-
migrationOptions: inputSchema.migrations ?? { strategy: 'from-eventlog' },
|
62
|
-
hash,
|
63
40
|
};
|
64
41
|
};
|
65
42
|
export const getEventDef = (schema, eventName) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/schema/schema.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/schema/state/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"mod.js","sourceRoot":"","sources":["../../../src/schema/state/mod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA"}
|