@livestore/common 0.3.0-dev.33 → 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 +30 -29
- 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.d.ts +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 +3 -3
- 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/next/test/event-fixtures.d.ts +7 -7
- package/dist/sync/syncstate.d.ts +4 -4
- 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
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"validate-schema.js","sourceRoot":"","sources":["../../src/schema-management/validate-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAKrD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAuB,EAAE,aAA4B,EAAE,EAAE,CACtF,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,gCAAgC;IAChC,MAAM,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAA;IAEhE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,CACrD,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,CAAC,CACxF,CAAA;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,CAAC,IAAI,eAAe,CAAC;YACzB,KAAK,EAAE,iCAAiC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACpG,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAChD,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEvG,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAA;IACnE,CAAC;IAED,yBAAyB;AAC3B,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAA+B,EAC/B,aAA4B,EAC5B,sBAAgD,EAChD,EAAE;IACF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAE/C,IAAI,sBAAsB,KAAK,SAAS,EAAE,CAAC;QACzC,aAAa,CAAC,eAAe,CAAC;YAC5B,UAAU;YACV,SAAS,EAAE,QAAQ,CAAC,IAAI;SACzB,CAAC,CAAA;QAEF,OAAM;IACR,CAAC;IAED,IAAI,UAAU,KAAK,sBAAsB,CAAC,UAAU;QAAE,OAAM;IAE5D,mHAAmH;IACnH,2GAA2G;IAE3G,6CAA6C;IAC7C,iGAAiG;IACjG,IAAI;IAEJ,aAAa,CAAC,eAAe,CAAC;QAC5B,UAAU;QACV,SAAS,EAAE,QAAQ,CAAC,IAAI;KACzB,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sql-queries.d.ts","sourceRoot":"","sources":["../../src/sql-queries/sql-queries.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"sql-queries.d.ts","sourceRoot":"","sources":["../../src/sql-queries/sql-queries.ts"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { SqliteDsl } from '../schema/db-schema/mod.js';
|
1
|
+
import type { SqliteDsl } from '../schema/state/sqlite/db-schema/mod.js';
|
2
2
|
import type { BindValues } from './sql-queries.js';
|
3
3
|
import type * as ClientTypes from './types.js';
|
4
4
|
export type SqlQuery = [stmt: string, bindValues: BindValues, tableName: string];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sql-query-builder.d.ts","sourceRoot":"","sources":["../../src/sql-queries/sql-query-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"sql-query-builder.d.ts","sourceRoot":"","sources":["../../src/sql-queries/sql-query-builder.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { Prettify } from '@livestore/utils';
|
2
2
|
import type { Schema } from '@livestore/utils/effect';
|
3
|
-
import type { SqliteDsl } from '../schema/db-schema/mod.js';
|
3
|
+
import type { SqliteDsl } from '../schema/state/sqlite/db-schema/mod.js';
|
4
4
|
export type DecodedValuesForTableAll<TSchema extends SqliteDsl.DbSchema, TTableName extends keyof TSchema> = {
|
5
5
|
[K in keyof GetColumns<TSchema, TTableName>]: Schema.Schema.Type<GetColumn<TSchema, TTableName, K>['schema']>;
|
6
6
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sql-queries/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sql-queries/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAExE,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,SAAS,MAAM,OAAO,IAAI;KAC1G,CAAC,IAAI,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC9G,CAAA;AAED,MAAM,MAAM,2BAA2B,CACrC,OAAO,SAAS,SAAS,CAAC,QAAQ,EAClC,UAAU,SAAS,MAAM,OAAO,IAC9B,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAExD,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,SAAS,MAAM,OAAO,IAAI,OAAO,CAC/G,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CACzG,GACC,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAE1G,MAAM,MAAM,2BAA2B,CACrC,OAAO,SAAS,SAAS,CAAC,QAAQ,EAClC,UAAU,SAAS,MAAM,OAAO,IAC9B,WAAW,CACb,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CACzG,GACC,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAE1G,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,SAAS,MAAM,OAAO,IAAI,aAAa,CAAC;KACnH,CAAC,IAAI,MAAM,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,oBAAoB,CAC9E,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CACjD;CACF,CAAC,CAAA;AAEF,MAAM,MAAM,oBAAoB,CAAC,QAAQ,IAAI,QAAQ,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,QAAQ,EAAE,CAAA;CAAE,CAAA;AACtH,MAAM,MAAM,OAAO,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAErC,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,EAAE,IAAI,OAGjD,CAAA;AAED,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,SAAS,MAAM,OAAO,IAAI;KAC1G,CAAC,IAAI,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAC9G,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,SAAS,CAAC,QAAQ,EAAE,UAAU,SAAS,MAAM,OAAO,IAAI,OAAO,CAC/G,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CACzG,GACC,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAE1G,MAAM,MAAM,8BAA8B,CACxC,OAAO,SAAS,SAAS,CAAC,QAAQ,EAClC,UAAU,SAAS,MAAM,OAAO,IAC9B,MAAM;KACP,CAAC,IAAI,MAAM,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,IAAI,GACrG,CAAC,GACD,KAAK,GAAG,EAAE;CACf,CAAA;AAED,MAAM,MAAM,UAAU,CACpB,OAAO,SAAS,SAAS,CAAC,QAAQ,EAClC,UAAU,SAAS,MAAM,OAAO,IAC9B,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAA;AAElC,MAAM,MAAM,SAAS,CACnB,OAAO,SAAS,SAAS,CAAC,QAAQ,EAClC,UAAU,SAAS,MAAM,OAAO,EAChC,WAAW,SAAS,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IACtD,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAA;AAE/C,MAAM,MAAM,0BAA0B,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI;KAC1E,CAAC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CACjE,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI,OAAO,CAC/E,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAC7E,GACC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAE9E,MAAM,MAAM,0BAA0B,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI;KAC1E,CAAC,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CACpE,CAAA;AAED,MAAM,MAAM,uBAAuB,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI,OAAO,CAC/E,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAC7E,GACC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAE9E,MAAM,MAAM,qBAAqB,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI,aAAa,CAAC;KACnF,CAAC,IAAI,MAAM,uBAAuB,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9G,CAAC,CAAA;AAEF,MAAM,MAAM,sBAAsB,CAAC,QAAQ,SAAS,SAAS,CAAC,OAAO,IAAI,MAAM;KAC5E,CAAC,IAAI,MAAM,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,OAAO;CACxG,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CAAE,CAAA;AAE/D,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CAAE,CAAA"}
|
@@ -11,16 +11,16 @@ import * as SyncState from './syncstate.js';
|
|
11
11
|
* - If there was a race condition (i.e. the leader and client session have both advacned),
|
12
12
|
* we'll need to rebase the local pending events on top of the leader's head.
|
13
13
|
* - The goal is to never block the UI, so we'll interrupt rebasing if a new events is pushed by the client session.
|
14
|
-
* - We also want to avoid "backwards-jumping" in the UI, so we'll transactionally apply
|
14
|
+
* - We also want to avoid "backwards-jumping" in the UI, so we'll transactionally apply state changes during a rebase.
|
15
15
|
* - We might need to make the rebase behaviour configurable e.g. to let users manually trigger a rebase
|
16
16
|
*
|
17
17
|
* Longer term we should evalutate whether we can unify the ClientSessionSyncProcessor with the LeaderSyncProcessor.
|
18
18
|
*/
|
19
|
-
export declare const makeClientSessionSyncProcessor: ({ schema, clientSession, runtime,
|
19
|
+
export declare const makeClientSessionSyncProcessor: ({ schema, clientSession, runtime, materializeEvent, rollback, refreshTables, span, params, confirmUnsavedChanges, }: {
|
20
20
|
schema: LiveStoreSchema;
|
21
21
|
clientSession: ClientSession;
|
22
22
|
runtime: Runtime.Runtime<Scope.Scope>;
|
23
|
-
|
23
|
+
materializeEvent: (eventDecoded: LiveStoreEvent.PartialAnyDecoded, options: {
|
24
24
|
otelContext: otel.Context;
|
25
25
|
withChangeset: boolean;
|
26
26
|
}) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ClientSessionSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAe,MAAM,EAAsC,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEzE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,
|
1
|
+
{"version":3,"file":"ClientSessionSyncProcessor.d.ts","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAe,MAAM,EAAsC,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAEzE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAe,KAAK,eAAe,EAAgB,MAAM,kBAAkB,CAAA;AAElF,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,8BAA8B,GAAI,qHAU5C;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,aAAa,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACrC,gBAAgB,EAAE,CAChB,YAAY,EAAE,cAAc,CAAC,iBAAiB,EAC9C,OAAO,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,KAC3D;QACH,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QACxB,gBAAgB,EAAE;YAAE,IAAI,EAAE,kBAAkB,CAAC;YAAC,IAAI,EAAE,UAAU,CAAC;YAAC,KAAK,EAAE,GAAG,CAAA;SAAE,GAAG;YAAE,IAAI,EAAE,OAAO,CAAA;SAAE,GAAG;YAAE,IAAI,EAAE,OAAO,CAAA;SAAE,CAAA;KACrH,CAAA;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,KAAK,IAAI,CAAA;IACzC,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAC5C,IAAI,EAAE,IAAI,CAAC,IAAI,CAAA;IACf,MAAM,EAAE;QACN,mBAAmB,EAAE,MAAM,CAAA;KAC5B,CAAA;IACD;;;OAGG;IACH,qBAAqB,EAAE,OAAO,CAAA;CAC/B,KAAG,0BAiQH,CAAA;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,CACJ,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,EACtD,OAAO,EAAE;QAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAA;KAAE,KACnC;QACH,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KACzB,CAAA;IACD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;IACvD,SAAS,EAAE,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;IACzD,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,IAAI,CAAA;QACjB,SAAS,EAAE,MAAM;YACf,WAAW,EAAE,MAAM,CAAA;YACnB,YAAY,EAAE,MAAM,CAAA;SACrB,CAAA;KACF,CAAA;CACF"}
|
@@ -4,7 +4,7 @@ import { BucketQueue, Effect, FiberHandle, Queue, Schema, Stream, Subscribable }
|
|
4
4
|
import * as otel from '@opentelemetry/api';
|
5
5
|
import * as EventId from '../schema/EventId.js';
|
6
6
|
import * as LiveStoreEvent from '../schema/LiveStoreEvent.js';
|
7
|
-
import { getEventDef,
|
7
|
+
import { getEventDef, SystemTables } from '../schema/mod.js';
|
8
8
|
import { sql } from '../util.js';
|
9
9
|
import * as SyncState from './syncstate.js';
|
10
10
|
/**
|
@@ -13,12 +13,12 @@ import * as SyncState from './syncstate.js';
|
|
13
13
|
* - If there was a race condition (i.e. the leader and client session have both advacned),
|
14
14
|
* we'll need to rebase the local pending events on top of the leader's head.
|
15
15
|
* - The goal is to never block the UI, so we'll interrupt rebasing if a new events is pushed by the client session.
|
16
|
-
* - We also want to avoid "backwards-jumping" in the UI, so we'll transactionally apply
|
16
|
+
* - We also want to avoid "backwards-jumping" in the UI, so we'll transactionally apply state changes during a rebase.
|
17
17
|
* - We might need to make the rebase behaviour configurable e.g. to let users manually trigger a rebase
|
18
18
|
*
|
19
19
|
* Longer term we should evalutate whether we can unify the ClientSessionSyncProcessor with the LeaderSyncProcessor.
|
20
20
|
*/
|
21
|
-
export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime,
|
21
|
+
export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime, materializeEvent, rollback, refreshTables, span, params, confirmUnsavedChanges, }) => {
|
22
22
|
const eventSchema = LiveStoreEvent.makeEventDefSchemaMemo(schema);
|
23
23
|
const syncStateRef = {
|
24
24
|
// The initial state is identical to the leader's initial state
|
@@ -70,7 +70,7 @@ export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime,
|
|
70
70
|
for (const event of mergeResult.newEvents) {
|
71
71
|
// TODO avoid encoding and decoding here again
|
72
72
|
const decodedEventDef = Schema.decodeSync(eventSchema)(event);
|
73
|
-
const res =
|
73
|
+
const res = materializeEvent(decodedEventDef, { otelContext, withChangeset: true });
|
74
74
|
for (const table of res.writeTables) {
|
75
75
|
writeTables.add(table);
|
76
76
|
}
|
@@ -106,7 +106,7 @@ export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime,
|
|
106
106
|
}));
|
107
107
|
}).pipe(Effect.forever, Effect.interruptible, Effect.tapCauseLogPretty);
|
108
108
|
yield* FiberHandle.run(leaderPushingFiberHandle, backgroundLeaderPushing);
|
109
|
-
const getMergeCounter = () => clientSession.sqliteDb.select(sql `SELECT mergeCounter FROM ${LEADER_MERGE_COUNTER_TABLE} WHERE id = 0`)[0]?.mergeCounter ?? 0;
|
109
|
+
const getMergeCounter = () => clientSession.sqliteDb.select(sql `SELECT mergeCounter FROM ${SystemTables.LEADER_MERGE_COUNTER_TABLE} WHERE id = 0`)[0]?.mergeCounter ?? 0;
|
110
110
|
// NOTE We need to lazily call `.pull` as we want the cursor to be updated
|
111
111
|
yield* Stream.suspend(() => clientSession.leaderThread.events.pull({
|
112
112
|
cursor: { mergeCounter: getMergeCounter(), eventId: syncStateRef.current.localHead },
|
@@ -171,7 +171,7 @@ export const makeClientSessionSyncProcessor = ({ schema, clientSession, runtime,
|
|
171
171
|
for (const event of mergeResult.newEvents) {
|
172
172
|
// TODO apply changeset if available (will require tracking of write tables as well)
|
173
173
|
const decodedEventDef = Schema.decodeSync(eventSchema)(event);
|
174
|
-
const res =
|
174
|
+
const res = materializeEvent(decodedEventDef, { otelContext, withChangeset: true });
|
175
175
|
for (const table of res.writeTables) {
|
176
176
|
writeTables.add(table);
|
177
177
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ClientSessionSyncProcessor.js","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC/G,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAG1C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAA;AAC/C,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,WAAW,
|
1
|
+
{"version":3,"file":"ClientSessionSyncProcessor.js","sourceRoot":"","sources":["../../src/sync/ClientSessionSyncProcessor.ts"],"names":[],"mappings":"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"}
|
@@ -10,15 +10,15 @@ export declare const facts: {
|
|
10
10
|
};
|
11
11
|
export declare const events: {
|
12
12
|
createTodo: EventDef<"createTodo", {
|
13
|
-
readonly text: string;
|
14
13
|
readonly id: string;
|
15
|
-
}, {
|
16
14
|
readonly text: string;
|
15
|
+
}, {
|
17
16
|
readonly id: string;
|
17
|
+
readonly text: string;
|
18
18
|
}, false>;
|
19
19
|
upsertTodo: EventDef<"upsertTodo", {
|
20
|
-
readonly text?: string | undefined;
|
21
20
|
readonly id: string;
|
21
|
+
readonly text?: string | undefined;
|
22
22
|
}, {
|
23
23
|
readonly id: string;
|
24
24
|
readonly text?: string | undefined;
|
@@ -51,18 +51,18 @@ export declare const events: {
|
|
51
51
|
readonly readonly: boolean;
|
52
52
|
}, false>;
|
53
53
|
setTextTodo: EventDef<"setTextTodo", {
|
54
|
-
readonly text: string;
|
55
54
|
readonly id: string;
|
56
|
-
}, {
|
57
55
|
readonly text: string;
|
56
|
+
}, {
|
58
57
|
readonly id: string;
|
58
|
+
readonly text: string;
|
59
59
|
}, false>;
|
60
60
|
setInputValue: EventDef<"setInputValue", {
|
61
|
-
readonly text: string;
|
62
61
|
readonly id: string;
|
63
|
-
}, {
|
64
62
|
readonly text: string;
|
63
|
+
}, {
|
65
64
|
readonly id: string;
|
65
|
+
readonly text: string;
|
66
66
|
}, false>;
|
67
67
|
};
|
68
68
|
export type PartialEvent = {
|
package/dist/sync/syncstate.d.ts
CHANGED
@@ -26,8 +26,6 @@ declare const SyncState_base: Schema.Class<SyncState, {
|
|
26
26
|
client: Schema.BrandSchema<number & import("effect/Brand").Brand<"ClientEventId">, number, never>;
|
27
27
|
}>;
|
28
28
|
}>, never, {
|
29
|
-
readonly pending: readonly LiveStoreEvent.EncodedWithMeta[];
|
30
|
-
} & {
|
31
29
|
readonly upstreamHead: {
|
32
30
|
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
33
31
|
readonly client: number & import("effect/Brand").Brand<"ClientEventId">;
|
@@ -37,6 +35,8 @@ declare const SyncState_base: Schema.Class<SyncState, {
|
|
37
35
|
readonly global: number & import("effect/Brand").Brand<"GlobalEventId">;
|
38
36
|
readonly client: number & import("effect/Brand").Brand<"ClientEventId">;
|
39
37
|
};
|
38
|
+
} & {
|
39
|
+
readonly pending: readonly LiveStoreEvent.EncodedWithMeta[];
|
40
40
|
}, {}, {}>;
|
41
41
|
/**
|
42
42
|
* SyncState represents the current sync state of a sync node relative to an upstream node.
|
@@ -222,9 +222,9 @@ declare const MergeResultUnexpectedError_base: Schema.Class<MergeResultUnexpecte
|
|
222
222
|
_tag: Schema.Literal<["unexpected-error"]>;
|
223
223
|
cause: typeof UnexpectedError;
|
224
224
|
}>, never, {
|
225
|
-
readonly _tag: "unexpected-error";
|
226
|
-
} & {
|
227
225
|
readonly cause: UnexpectedError;
|
226
|
+
} & {
|
227
|
+
readonly _tag: "unexpected-error";
|
228
228
|
}, {}, {}>;
|
229
229
|
export declare class MergeResultUnexpectedError extends MergeResultUnexpectedError_base {
|
230
230
|
}
|
package/dist/version.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
export declare const liveStoreVersion: "0.3.0-dev.
|
1
|
+
export declare const liveStoreVersion: "0.3.0-dev.34";
|
2
2
|
/**
|
3
3
|
* This version number is incremented whenever the internal storage format changes in a breaking way.
|
4
4
|
* Whenever this version changes, LiveStore will start with fresh database files. Old database files are not deleted.
|
package/dist/version.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
// TODO bring back when Expo and Playwright supports `with` imports
|
2
2
|
// import packageJson from '../package.json' with { type: 'json' }
|
3
3
|
// export const liveStoreVersion = packageJson.version
|
4
|
-
export const liveStoreVersion = '0.3.0-dev.
|
4
|
+
export const liveStoreVersion = '0.3.0-dev.34';
|
5
5
|
/**
|
6
6
|
* This version number is incremented whenever the internal storage format changes in a breaking way.
|
7
7
|
* Whenever this version changes, LiveStore will start with fresh database files. Old database files are not deleted.
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@livestore/common",
|
3
|
-
"version": "0.3.0-dev.
|
3
|
+
"version": "0.3.0-dev.34",
|
4
4
|
"type": "module",
|
5
5
|
"sideEffects": false,
|
6
6
|
"exports": {
|
@@ -54,11 +54,17 @@
|
|
54
54
|
"graphology": "0.26.0-alpha1",
|
55
55
|
"graphology-dag": "0.4.1",
|
56
56
|
"graphology-types": "0.24.8",
|
57
|
-
"@livestore/utils": "0.3.0-dev.
|
57
|
+
"@livestore/utils": "0.3.0-dev.34"
|
58
58
|
},
|
59
59
|
"devDependencies": {
|
60
|
-
"vitest": "^3.1.1"
|
60
|
+
"vitest": "^3.1.1",
|
61
|
+
"@livestore/utils-dev": "0.3.0-dev.34"
|
61
62
|
},
|
63
|
+
"files": [
|
64
|
+
"package.json",
|
65
|
+
"src",
|
66
|
+
"dist"
|
67
|
+
],
|
62
68
|
"publishConfig": {
|
63
69
|
"access": "public"
|
64
70
|
},
|
package/src/adapter-types.ts
CHANGED
@@ -202,10 +202,12 @@ export class SqliteError extends Schema.TaggedError<SqliteError>()('LiveStore.Sq
|
|
202
202
|
// TODO possibly allow a combination of these options
|
203
203
|
// TODO allow a way to stream the migration progress back to the app
|
204
204
|
export type MigrationOptions =
|
205
|
-
| MigrationOptionsFromEventlog
|
206
205
|
| {
|
207
|
-
strategy: '
|
206
|
+
strategy: 'auto'
|
208
207
|
hooks?: Partial<MigrationHooks>
|
208
|
+
logging?: {
|
209
|
+
excludeAffectedRows?: (sqlStmt: string) => boolean
|
210
|
+
}
|
209
211
|
}
|
210
212
|
| {
|
211
213
|
strategy: 'manual'
|
@@ -223,14 +225,6 @@ export type MigrationHooks = {
|
|
223
225
|
|
224
226
|
export type MigrationHook = (db: SqliteDb) => void | Promise<void> | Effect.Effect<void, unknown>
|
225
227
|
|
226
|
-
export interface MigrationOptionsFromEventlog {
|
227
|
-
strategy: 'from-eventlog'
|
228
|
-
hooks?: Partial<MigrationHooks>
|
229
|
-
logging?: {
|
230
|
-
excludeAffectedRows?: (sqlStmt: string) => boolean
|
231
|
-
}
|
232
|
-
}
|
233
|
-
|
234
228
|
export interface ClientSessionDevtoolsChannel
|
235
229
|
extends WebChannel.WebChannel<Devtools.ClientSession.MessageToApp, Devtools.ClientSession.MessageFromApp> {}
|
236
230
|
|
@@ -89,6 +89,7 @@ export class SerializedLiveQuery extends Schema.Struct({
|
|
89
89
|
_tag: Schema.Literal('computed', 'db', 'graphql'),
|
90
90
|
id: Schema.Number,
|
91
91
|
label: Schema.String,
|
92
|
+
hash: Schema.String,
|
92
93
|
runs: Schema.Number,
|
93
94
|
executionTimes: Schema.Array(Schema.Number),
|
94
95
|
lastestResult: Schema.Any,
|
@@ -17,7 +17,7 @@ export class DatabaseFileInfo extends Schema.Struct({
|
|
17
17
|
}) {}
|
18
18
|
|
19
19
|
export class DatabaseFileInfoRes extends LSDReqResMessage('LSD.Leader.DatabaseFileInfoRes', {
|
20
|
-
|
20
|
+
state: DatabaseFileInfo,
|
21
21
|
eventlog: DatabaseFileInfo,
|
22
22
|
}) {}
|
23
23
|
|
package/src/index.ts
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
export * from './schema/system-tables.js'
|
1
|
+
export * from './schema/state/sqlite/system-tables.js'
|
2
2
|
export * from './util.js'
|
3
3
|
export * from './adapter-types.js'
|
4
4
|
export * from './schema-management/migrations.js'
|
5
5
|
export * from './materializer-helper.js'
|
6
|
-
export * from './
|
6
|
+
export * from './rematerialize-from-eventlog.js'
|
7
7
|
export * from './sync/index.js'
|
8
8
|
export * as Devtools from './devtools/mod.js'
|
9
9
|
export * from './debug-info.js'
|
10
10
|
export * from './bounded-collections.js'
|
11
11
|
export * from './version.js'
|
12
|
-
export * from './query-builder/mod.js'
|
12
|
+
export * from './schema/state/sqlite/query-builder/mod.js'
|
13
13
|
export * as SyncState from './sync/syncstate.js'
|
14
14
|
export * from './otel.js'
|
@@ -18,18 +18,12 @@ import type * as otel from '@opentelemetry/api'
|
|
18
18
|
import type { SqliteDb } from '../adapter-types.js'
|
19
19
|
import { UnexpectedError } from '../adapter-types.js'
|
20
20
|
import type { LiveStoreSchema } from '../schema/mod.js'
|
21
|
-
import {
|
22
|
-
EventId,
|
23
|
-
getEventDef,
|
24
|
-
LEADER_MERGE_COUNTER_TABLE,
|
25
|
-
LiveStoreEvent,
|
26
|
-
SESSION_CHANGESET_META_TABLE,
|
27
|
-
} from '../schema/mod.js'
|
21
|
+
import { EventId, getEventDef, LiveStoreEvent, SystemTables } from '../schema/mod.js'
|
28
22
|
import { LeaderAheadError } from '../sync/sync.js'
|
29
23
|
import * as SyncState from '../sync/syncstate.js'
|
30
24
|
import { sql } from '../util.js'
|
31
|
-
import { rollback } from './apply-event.js'
|
32
25
|
import * as Eventlog from './eventlog.js'
|
26
|
+
import { rollback } from './materialize-event.js'
|
33
27
|
import type { InitialBlockingSyncContext, LeaderSyncProcessor } from './types.js'
|
34
28
|
import { LeaderThreadCtx } from './types.js'
|
35
29
|
|
@@ -73,8 +67,8 @@ export const makeLeaderSyncProcessor = ({
|
|
73
67
|
schema,
|
74
68
|
dbEventlogMissing,
|
75
69
|
dbEventlog,
|
76
|
-
|
77
|
-
|
70
|
+
dbState,
|
71
|
+
dbStateMissing,
|
78
72
|
initialBlockingSyncContext,
|
79
73
|
onError,
|
80
74
|
params,
|
@@ -84,9 +78,9 @@ export const makeLeaderSyncProcessor = ({
|
|
84
78
|
/** Only used to know whether we can safely query dbEventlog during setup execution */
|
85
79
|
dbEventlogMissing: boolean
|
86
80
|
dbEventlog: SqliteDb
|
87
|
-
|
88
|
-
/** Only used to know whether we can safely query
|
89
|
-
|
81
|
+
dbState: SqliteDb
|
82
|
+
/** Only used to know whether we can safely query dbState during setup execution */
|
83
|
+
dbStateMissing: boolean
|
90
84
|
initialBlockingSyncContext: InitialBlockingSyncContext
|
91
85
|
onError: 'shutdown' | 'ignore'
|
92
86
|
params: {
|
@@ -128,7 +122,7 @@ export const makeLeaderSyncProcessor = ({
|
|
128
122
|
const currentLocalPushGenerationRef = { current: 0 }
|
129
123
|
|
130
124
|
type MergeCounter = number
|
131
|
-
const mergeCounterRef = { current:
|
125
|
+
const mergeCounterRef = { current: dbStateMissing ? 0 : yield* getMergeCounterFromDb(dbState) }
|
132
126
|
const mergePayloads = new Map<MergeCounter, typeof SyncState.PayloadUpstream.Type>()
|
133
127
|
|
134
128
|
// This context depends on data from `boot`, we should find a better implementation to avoid this ref indirection.
|
@@ -552,14 +546,14 @@ const backgroundApplyLocalPushes = ({
|
|
552
546
|
|
553
547
|
yield* BucketQueue.offerAll(syncBackendPushQueue, filteredBatch)
|
554
548
|
|
555
|
-
yield*
|
549
|
+
yield* materializeEventsBatch({ batchItems: mergeResult.newEvents, deferreds })
|
556
550
|
|
557
551
|
// Allow the backend pulling to start
|
558
552
|
yield* pullLatch.open
|
559
553
|
}
|
560
554
|
})
|
561
555
|
|
562
|
-
type
|
556
|
+
type MaterializeEventsBatch = (_: {
|
563
557
|
batchItems: ReadonlyArray<LiveStoreEvent.EncodedWithMeta>
|
564
558
|
/**
|
565
559
|
* The deferreds are used by the caller to know when the mutation has been processed.
|
@@ -569,9 +563,9 @@ type ApplyEventsBatch = (_: {
|
|
569
563
|
}) => Effect.Effect<void, UnexpectedError, LeaderThreadCtx>
|
570
564
|
|
571
565
|
// TODO how to handle errors gracefully
|
572
|
-
const
|
566
|
+
const materializeEventsBatch: MaterializeEventsBatch = ({ batchItems, deferreds }) =>
|
573
567
|
Effect.gen(function* () {
|
574
|
-
const {
|
568
|
+
const { dbState: db, dbEventlog, materializeEvent } = yield* LeaderThreadCtx
|
575
569
|
|
576
570
|
// NOTE We always start a transaction to ensure consistency between db and eventlog (even for single-item batches)
|
577
571
|
db.execute('BEGIN TRANSACTION', undefined) // Start the transaction
|
@@ -588,7 +582,7 @@ const applyEventsBatch: ApplyEventsBatch = ({ batchItems, deferreds }) =>
|
|
588
582
|
)
|
589
583
|
|
590
584
|
for (let i = 0; i < batchItems.length; i++) {
|
591
|
-
const { sessionChangeset } = yield*
|
585
|
+
const { sessionChangeset } = yield* materializeEvent(batchItems[i]!)
|
592
586
|
batchItems[i]!.meta.sessionChangeset = sessionChangeset
|
593
587
|
|
594
588
|
if (deferreds?.[i] !== undefined) {
|
@@ -601,7 +595,7 @@ const applyEventsBatch: ApplyEventsBatch = ({ batchItems, deferreds }) =>
|
|
601
595
|
}).pipe(
|
602
596
|
Effect.uninterruptible,
|
603
597
|
Effect.scoped,
|
604
|
-
Effect.withSpan('@livestore/common:LeaderSyncProcessor:
|
598
|
+
Effect.withSpan('@livestore/common:LeaderSyncProcessor:materializeEventItems', {
|
605
599
|
attributes: { batchSize: batchItems.length },
|
606
600
|
}),
|
607
601
|
Effect.tapCauseLogPretty,
|
@@ -640,7 +634,7 @@ const backgroundBackendPulling = ({
|
|
640
634
|
advancePushHead: (eventId: EventId.EventId) => void
|
641
635
|
}) =>
|
642
636
|
Effect.gen(function* () {
|
643
|
-
const { syncBackend,
|
637
|
+
const { syncBackend, dbState: db, dbEventlog, schema } = yield* LeaderThreadCtx
|
644
638
|
|
645
639
|
if (syncBackend === undefined) return
|
646
640
|
|
@@ -700,7 +694,11 @@ const backgroundBackendPulling = ({
|
|
700
694
|
yield* restartBackendPushing(globalRebasedPendingEvents)
|
701
695
|
|
702
696
|
if (mergeResult.rollbackEvents.length > 0) {
|
703
|
-
yield* rollback({
|
697
|
+
yield* rollback({
|
698
|
+
dbState: db,
|
699
|
+
dbEventlog,
|
700
|
+
eventIdsToRollback: mergeResult.rollbackEvents.map((_) => _.id),
|
701
|
+
})
|
704
702
|
}
|
705
703
|
|
706
704
|
yield* connectedClientSessionPullQueues.offer({
|
@@ -744,7 +742,7 @@ const backgroundBackendPulling = ({
|
|
744
742
|
|
745
743
|
advancePushHead(mergeResult.newSyncState.localHead)
|
746
744
|
|
747
|
-
yield*
|
745
|
+
yield* materializeEventsBatch({ batchItems: mergeResult.newEvents, deferreds: undefined })
|
748
746
|
|
749
747
|
yield* SubscriptionRef.set(syncStateSref, mergeResult.newSyncState)
|
750
748
|
|
@@ -833,7 +831,7 @@ const backgroundBackendPushing = ({
|
|
833
831
|
const trimChangesetRows = (db: SqliteDb, newHead: EventId.EventId) => {
|
834
832
|
// Since we're using the session changeset rows to query for the current head,
|
835
833
|
// we're keeping at least one row for the current head, and thus are using `<` instead of `<=`
|
836
|
-
db.execute(sql`DELETE FROM ${SESSION_CHANGESET_META_TABLE} WHERE idGlobal < ${newHead.global}`)
|
834
|
+
db.execute(sql`DELETE FROM ${SystemTables.SESSION_CHANGESET_META_TABLE} WHERE idGlobal < ${newHead.global}`)
|
837
835
|
}
|
838
836
|
|
839
837
|
interface PullQueueSet {
|
@@ -894,18 +892,18 @@ const makePullQueueSet = Effect.gen(function* () {
|
|
894
892
|
|
895
893
|
const incrementMergeCounter = (mergeCounterRef: { current: number }) =>
|
896
894
|
Effect.gen(function* () {
|
897
|
-
const {
|
895
|
+
const { dbState } = yield* LeaderThreadCtx
|
898
896
|
mergeCounterRef.current++
|
899
|
-
|
900
|
-
sql`INSERT OR REPLACE INTO ${LEADER_MERGE_COUNTER_TABLE} (id, mergeCounter) VALUES (0, ${mergeCounterRef.current})`,
|
897
|
+
dbState.execute(
|
898
|
+
sql`INSERT OR REPLACE INTO ${SystemTables.LEADER_MERGE_COUNTER_TABLE} (id, mergeCounter) VALUES (0, ${mergeCounterRef.current})`,
|
901
899
|
)
|
902
900
|
return mergeCounterRef.current
|
903
901
|
})
|
904
902
|
|
905
|
-
const getMergeCounterFromDb = (
|
903
|
+
const getMergeCounterFromDb = (dbState: SqliteDb) =>
|
906
904
|
Effect.gen(function* () {
|
907
|
-
const result =
|
908
|
-
sql`SELECT mergeCounter FROM ${LEADER_MERGE_COUNTER_TABLE} WHERE id = 0`,
|
905
|
+
const result = dbState.select<{ mergeCounter: number }>(
|
906
|
+
sql`SELECT mergeCounter FROM ${SystemTables.LEADER_MERGE_COUNTER_TABLE} WHERE id = 0`,
|
909
907
|
)
|
910
908
|
return result[0]?.mergeCounter ?? 0
|
911
909
|
})
|
@@ -7,10 +7,10 @@ import * as LiveStoreEvent from '../schema/LiveStoreEvent.js'
|
|
7
7
|
import {
|
8
8
|
EVENTLOG_META_TABLE,
|
9
9
|
eventlogMetaTable,
|
10
|
+
eventlogSystemTables,
|
10
11
|
sessionChangesetMetaTable,
|
11
12
|
SYNC_STATUS_TABLE,
|
12
|
-
|
13
|
-
} from '../schema/system-tables.js'
|
13
|
+
} from '../schema/state/sqlite/system-tables.js'
|
14
14
|
import { migrateTable } from '../schema-management/migrations.js'
|
15
15
|
import { insertRow, updateRows } from '../sql-queries/sql-queries.js'
|
16
16
|
import type { PreparedBindValues } from '../util.js'
|
@@ -21,19 +21,14 @@ import { LeaderThreadCtx } from './types.js'
|
|
21
21
|
|
22
22
|
export const initEventlogDb = (dbEventlog: SqliteDb) =>
|
23
23
|
Effect.gen(function* () {
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
db: dbEventlog,
|
33
|
-
behaviour: 'create-if-not-exists',
|
34
|
-
tableAst: syncStatusTable.sqliteDef.ast,
|
35
|
-
skipMetaTable: true,
|
36
|
-
})
|
24
|
+
for (const tableDef of eventlogSystemTables) {
|
25
|
+
yield* migrateTable({
|
26
|
+
db: dbEventlog,
|
27
|
+
behaviour: 'create-if-not-exists',
|
28
|
+
tableAst: tableDef.sqliteDef.ast,
|
29
|
+
skipMetaTable: true,
|
30
|
+
})
|
31
|
+
}
|
37
32
|
|
38
33
|
// Create sync status row if it doesn't exist
|
39
34
|
yield* execSql(
|
@@ -50,14 +45,14 @@ export const getEventsSince = (
|
|
50
45
|
since: EventId.EventId,
|
51
46
|
): Effect.Effect<ReadonlyArray<LiveStoreEvent.EncodedWithMeta>, never, LeaderThreadCtx> =>
|
52
47
|
Effect.gen(function* () {
|
53
|
-
const { dbEventlog,
|
48
|
+
const { dbEventlog, dbState } = yield* LeaderThreadCtx
|
54
49
|
|
55
50
|
const query = eventlogMetaTable.where('idGlobal', '>=', since.global).asSql()
|
56
51
|
const pendingEventsRaw = dbEventlog.select(query.query, prepareBindValues(query.bindValues, query.query))
|
57
52
|
const pendingEvents = Schema.decodeUnknownSync(eventlogMetaTable.rowSchema.pipe(Schema.Array))(pendingEventsRaw)
|
58
53
|
|
59
54
|
const sessionChangesetRows = sessionChangesetMetaTable.where('idGlobal', '>=', since.global).asSql()
|
60
|
-
const sessionChangesetRowsRaw =
|
55
|
+
const sessionChangesetRowsRaw = dbState.select(
|
61
56
|
sessionChangesetRows.query,
|
62
57
|
prepareBindValues(sessionChangesetRows.bindValues, sessionChangesetRows.query),
|
63
58
|
)
|