@livestore/common 0.4.0-dev.0 → 0.4.0-dev.10
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/ClientSessionLeaderThreadProxy.d.ts +7 -2
- package/dist/ClientSessionLeaderThreadProxy.d.ts.map +1 -1
- package/dist/ClientSessionLeaderThreadProxy.js.map +1 -1
- package/dist/adapter-types.d.ts +9 -3
- 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 +21 -21
- package/dist/devtools/devtools-messages-common.d.ts +7 -14
- package/dist/devtools/devtools-messages-common.d.ts.map +1 -1
- package/dist/devtools/devtools-messages-common.js +1 -6
- package/dist/devtools/devtools-messages-common.js.map +1 -1
- package/dist/devtools/devtools-messages-leader.d.ts +27 -25
- package/dist/devtools/devtools-messages-leader.d.ts.map +1 -1
- package/dist/errors.d.ts +47 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +22 -3
- package/dist/errors.js.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.d.ts +7 -3
- package/dist/leader-thread/LeaderSyncProcessor.d.ts.map +1 -1
- package/dist/leader-thread/LeaderSyncProcessor.js +122 -49
- package/dist/leader-thread/LeaderSyncProcessor.js.map +1 -1
- package/dist/leader-thread/eventlog.d.ts +4 -10
- package/dist/leader-thread/eventlog.d.ts.map +1 -1
- package/dist/leader-thread/eventlog.js +4 -6
- 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 +6 -2
- package/dist/leader-thread/leader-worker-devtools.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.d.ts +1 -2
- package/dist/leader-thread/make-leader-thread-layer.d.ts.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.js +68 -19
- package/dist/leader-thread/make-leader-thread-layer.js.map +1 -1
- package/dist/leader-thread/make-leader-thread-layer.test.d.ts +2 -0
- package/dist/leader-thread/make-leader-thread-layer.test.d.ts.map +1 -0
- package/dist/leader-thread/make-leader-thread-layer.test.js +32 -0
- package/dist/leader-thread/make-leader-thread-layer.test.js.map +1 -0
- package/dist/leader-thread/materialize-event.d.ts +2 -2
- package/dist/leader-thread/materialize-event.d.ts.map +1 -1
- package/dist/leader-thread/materialize-event.js +23 -9
- package/dist/leader-thread/materialize-event.js.map +1 -1
- package/dist/leader-thread/recreate-db.d.ts +2 -3
- package/dist/leader-thread/recreate-db.d.ts.map +1 -1
- package/dist/leader-thread/recreate-db.js +1 -1
- package/dist/leader-thread/recreate-db.js.map +1 -1
- package/dist/leader-thread/shutdown-channel.d.ts +2 -2
- package/dist/leader-thread/shutdown-channel.d.ts.map +1 -1
- package/dist/leader-thread/shutdown-channel.js +2 -2
- package/dist/leader-thread/shutdown-channel.js.map +1 -1
- package/dist/leader-thread/types.d.ts +7 -5
- package/dist/leader-thread/types.d.ts.map +1 -1
- package/dist/leader-thread/types.js.map +1 -1
- package/dist/materializer-helper.d.ts +1 -1
- package/dist/materializer-helper.d.ts.map +1 -1
- package/dist/materializer-helper.js +20 -4
- package/dist/materializer-helper.js.map +1 -1
- package/dist/rematerialize-from-eventlog.d.ts +1 -1
- package/dist/rematerialize-from-eventlog.d.ts.map +1 -1
- package/dist/rematerialize-from-eventlog.js +25 -16
- package/dist/rematerialize-from-eventlog.js.map +1 -1
- package/dist/schema/EventDef.d.ts +3 -0
- package/dist/schema/EventDef.d.ts.map +1 -1
- package/dist/schema/EventDef.js.map +1 -1
- package/dist/schema/LiveStoreEvent.d.ts +1 -1
- package/dist/schema/LiveStoreEvent.d.ts.map +1 -1
- package/dist/schema/LiveStoreEvent.js +1 -2
- package/dist/schema/LiveStoreEvent.js.map +1 -1
- package/dist/schema/mod.d.ts +2 -0
- package/dist/schema/mod.d.ts.map +1 -1
- package/dist/schema/mod.js +1 -0
- package/dist/schema/mod.js.map +1 -1
- package/dist/schema/schema.d.ts +15 -0
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +26 -1
- package/dist/schema/schema.js.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.d.ts +35 -5
- package/dist/schema/state/sqlite/client-document-def.d.ts.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.js +95 -4
- package/dist/schema/state/sqlite/client-document-def.js.map +1 -1
- package/dist/schema/state/sqlite/client-document-def.test.js +16 -0
- package/dist/schema/state/sqlite/client-document-def.test.js.map +1 -1
- package/dist/schema/state/sqlite/column-annotations.d.ts.map +1 -1
- package/dist/schema/state/sqlite/column-annotations.js +14 -6
- package/dist/schema/state/sqlite/column-annotations.js.map +1 -1
- package/dist/schema/state/sqlite/column-def.d.ts +19 -0
- package/dist/schema/state/sqlite/column-def.d.ts.map +1 -0
- package/dist/schema/state/sqlite/column-def.js +179 -0
- package/dist/schema/state/sqlite/column-def.js.map +1 -0
- package/dist/schema/state/sqlite/column-def.test.d.ts +2 -0
- package/dist/schema/state/sqlite/column-def.test.d.ts.map +1 -0
- package/dist/schema/state/sqlite/column-def.test.js +572 -0
- package/dist/schema/state/sqlite/column-def.test.js.map +1 -0
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts +2 -1
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.d.ts.map +1 -1
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js +23 -6
- package/dist/schema/state/sqlite/db-schema/ast/sqlite.js.map +1 -1
- package/dist/schema/state/sqlite/db-schema/dsl/mod.d.ts.map +1 -1
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js +2 -1
- package/dist/schema/state/sqlite/db-schema/dsl/mod.js.map +1 -1
- package/dist/schema/state/sqlite/mod.d.ts +1 -1
- package/dist/schema/state/sqlite/mod.d.ts.map +1 -1
- package/dist/schema/state/sqlite/mod.js +1 -1
- package/dist/schema/state/sqlite/mod.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/api.d.ts +5 -2
- package/dist/schema/state/sqlite/query-builder/api.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.d.ts.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.js +6 -2
- package/dist/schema/state/sqlite/query-builder/impl.js.map +1 -1
- package/dist/schema/state/sqlite/query-builder/impl.test.js +137 -2
- package/dist/schema/state/sqlite/query-builder/impl.test.js.map +1 -1
- package/dist/schema/state/sqlite/system-tables.d.ts +42 -6
- package/dist/schema/state/sqlite/system-tables.d.ts.map +1 -1
- package/dist/schema/state/sqlite/system-tables.js +2 -0
- package/dist/schema/state/sqlite/system-tables.js.map +1 -1
- package/dist/schema/state/sqlite/table-def.d.ts +6 -8
- package/dist/schema/state/sqlite/table-def.d.ts.map +1 -1
- package/dist/schema/state/sqlite/table-def.js +4 -211
- package/dist/schema/state/sqlite/table-def.js.map +1 -1
- package/dist/schema/state/sqlite/table-def.test.js +59 -453
- package/dist/schema/state/sqlite/table-def.test.js.map +1 -1
- package/dist/schema/unknown-events.d.ts +47 -0
- package/dist/schema/unknown-events.d.ts.map +1 -0
- package/dist/schema/unknown-events.js +69 -0
- package/dist/schema/unknown-events.js.map +1 -0
- package/dist/sql-queries/sql-query-builder.d.ts.map +1 -1
- package/dist/sql-queries/sql-query-builder.js +2 -1
- package/dist/sql-queries/sql-query-builder.js.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.d.ts +9 -11
- package/dist/sync/ClientSessionSyncProcessor.d.ts.map +1 -1
- package/dist/sync/ClientSessionSyncProcessor.js +35 -33
- package/dist/sync/ClientSessionSyncProcessor.js.map +1 -1
- package/dist/sync/errors.d.ts +61 -0
- package/dist/sync/errors.d.ts.map +1 -0
- package/dist/sync/errors.js +36 -0
- package/dist/sync/errors.js.map +1 -0
- package/dist/sync/index.d.ts +3 -0
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +3 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/mock-sync-backend.d.ts +23 -0
- package/dist/sync/mock-sync-backend.d.ts.map +1 -0
- package/dist/sync/mock-sync-backend.js +114 -0
- package/dist/sync/mock-sync-backend.js.map +1 -0
- package/dist/sync/next/compact-events.d.ts.map +1 -1
- package/dist/sync/next/compact-events.js +4 -5
- package/dist/sync/next/compact-events.js.map +1 -1
- package/dist/sync/next/facts.d.ts.map +1 -1
- package/dist/sync/next/facts.js +1 -2
- package/dist/sync/next/facts.js.map +1 -1
- package/dist/sync/next/history-dag-common.d.ts +50 -11
- package/dist/sync/next/history-dag-common.d.ts.map +1 -1
- package/dist/sync/next/history-dag-common.js +193 -4
- package/dist/sync/next/history-dag-common.js.map +1 -1
- package/dist/sync/next/history-dag.d.ts.map +1 -1
- package/dist/sync/next/history-dag.js +3 -1
- package/dist/sync/next/history-dag.js.map +1 -1
- package/dist/sync/sync-backend-kv.d.ts +7 -0
- package/dist/sync/sync-backend-kv.d.ts.map +1 -0
- package/dist/sync/sync-backend-kv.js +18 -0
- package/dist/sync/sync-backend-kv.js.map +1 -0
- package/dist/sync/sync-backend.d.ts +105 -0
- package/dist/sync/sync-backend.d.ts.map +1 -0
- package/dist/sync/sync-backend.js +61 -0
- package/dist/sync/sync-backend.js.map +1 -0
- package/dist/sync/sync.d.ts +6 -84
- package/dist/sync/sync.d.ts.map +1 -1
- package/dist/sync/sync.js +2 -27
- package/dist/sync/sync.js.map +1 -1
- package/dist/sync/transport-chunking.d.ts +36 -0
- package/dist/sync/transport-chunking.d.ts.map +1 -0
- package/dist/sync/transport-chunking.js +56 -0
- package/dist/sync/transport-chunking.js.map +1 -0
- package/dist/sync/validate-push-payload.d.ts +1 -1
- package/dist/sync/validate-push-payload.d.ts.map +1 -1
- package/dist/sync/validate-push-payload.js +6 -6
- package/dist/sync/validate-push-payload.js.map +1 -1
- package/dist/testing/event-factory.d.ts +68 -0
- package/dist/testing/event-factory.d.ts.map +1 -0
- package/dist/testing/event-factory.js +80 -0
- package/dist/testing/event-factory.js.map +1 -0
- package/dist/testing/mod.d.ts +2 -0
- package/dist/testing/mod.d.ts.map +1 -0
- package/dist/testing/mod.js +2 -0
- package/dist/testing/mod.js.map +1 -0
- package/dist/version.d.ts +2 -2
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +2 -2
- package/dist/version.js.map +1 -1
- package/package.json +7 -8
- package/src/ClientSessionLeaderThreadProxy.ts +7 -2
- package/src/adapter-types.ts +13 -3
- package/src/devtools/devtools-messages-common.ts +1 -8
- package/src/errors.ts +33 -4
- package/src/leader-thread/LeaderSyncProcessor.ts +179 -57
- package/src/leader-thread/eventlog.ts +10 -6
- package/src/leader-thread/leader-worker-devtools.ts +6 -2
- package/src/leader-thread/make-leader-thread-layer.test.ts +44 -0
- package/src/leader-thread/make-leader-thread-layer.ts +137 -26
- package/src/leader-thread/materialize-event.ts +34 -9
- package/src/leader-thread/recreate-db.ts +11 -3
- package/src/leader-thread/shutdown-channel.ts +16 -2
- package/src/leader-thread/types.ts +7 -5
- package/src/materializer-helper.ts +22 -5
- package/src/rematerialize-from-eventlog.ts +33 -23
- package/src/schema/EventDef.ts +3 -0
- package/src/schema/LiveStoreEvent.ts +1 -2
- package/src/schema/mod.ts +2 -0
- package/src/schema/schema.ts +37 -1
- package/src/schema/state/sqlite/client-document-def.test.ts +17 -0
- package/src/schema/state/sqlite/client-document-def.ts +117 -5
- package/src/schema/state/sqlite/column-annotations.ts +16 -6
- package/src/schema/state/sqlite/column-def.test.ts +722 -0
- package/src/schema/state/sqlite/column-def.ts +215 -0
- package/src/schema/state/sqlite/db-schema/ast/sqlite.ts +26 -6
- package/src/schema/state/sqlite/db-schema/dsl/mod.ts +2 -1
- package/src/schema/state/sqlite/mod.ts +1 -0
- package/src/schema/state/sqlite/query-builder/api.ts +7 -2
- package/src/schema/state/sqlite/query-builder/impl.test.ts +187 -6
- package/src/schema/state/sqlite/query-builder/impl.ts +8 -2
- package/src/schema/state/sqlite/system-tables.ts +2 -0
- package/src/schema/state/sqlite/table-def.test.ts +74 -569
- package/src/schema/state/sqlite/table-def.ts +13 -262
- package/src/schema/unknown-events.ts +131 -0
- package/src/sql-queries/sql-query-builder.ts +2 -1
- package/src/sync/ClientSessionSyncProcessor.ts +55 -49
- package/src/sync/errors.ts +38 -0
- package/src/sync/index.ts +3 -0
- package/src/sync/mock-sync-backend.ts +184 -0
- package/src/sync/next/compact-events.ts +4 -5
- package/src/sync/next/facts.ts +1 -3
- package/src/sync/next/history-dag-common.ts +272 -21
- package/src/sync/next/history-dag.ts +3 -1
- package/src/sync/sync-backend-kv.ts +22 -0
- package/src/sync/sync-backend.ts +185 -0
- package/src/sync/sync.ts +6 -89
- package/src/sync/transport-chunking.ts +90 -0
- package/src/sync/validate-push-payload.ts +6 -7
- package/src/testing/event-factory.ts +133 -0
- package/src/testing/mod.ts +1 -0
- package/src/version.ts +2 -2
- package/dist/schema-management/migrations.test.d.ts +0 -2
- package/dist/schema-management/migrations.test.d.ts.map +0 -1
- package/dist/schema-management/migrations.test.js +0 -52
- package/dist/schema-management/migrations.test.js.map +0 -1
- package/dist/sync/next/graphology.d.ts +0 -8
- package/dist/sync/next/graphology.d.ts.map +0 -1
- package/dist/sync/next/graphology.js +0 -30
- package/dist/sync/next/graphology.js.map +0 -1
- package/dist/sync/next/graphology_.d.ts +0 -3
- package/dist/sync/next/graphology_.d.ts.map +0 -1
- package/dist/sync/next/graphology_.js +0 -3
- package/dist/sync/next/graphology_.js.map +0 -1
- package/src/sync/next/ambient.d.ts +0 -3
- package/src/sync/next/graphology.ts +0 -41
- package/src/sync/next/graphology_.ts +0 -2
@@ -535,7 +535,7 @@ export declare const eventlogMetaTable: import("./table-def.ts").TableDef<import
|
|
535
535
|
};
|
536
536
|
readonly syncMetadataJson: {
|
537
537
|
columnType: "text";
|
538
|
-
schema: Schema.Schema<import("effect/Option").
|
538
|
+
schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
|
539
539
|
default: import("effect/Option").None<never>;
|
540
540
|
nullable: false;
|
541
541
|
primaryKey: false;
|
@@ -633,7 +633,7 @@ export declare const eventlogMetaTable: import("./table-def.ts").TableDef<import
|
|
633
633
|
};
|
634
634
|
readonly syncMetadataJson: {
|
635
635
|
columnType: "text";
|
636
|
-
schema: Schema.Schema<import("effect/Option").
|
636
|
+
schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
|
637
637
|
default: import("effect/Option").None<never>;
|
638
638
|
nullable: false;
|
639
639
|
primaryKey: false;
|
@@ -651,7 +651,7 @@ export declare const eventlogMetaTable: import("./table-def.ts").TableDef<import
|
|
651
651
|
readonly clientId: string;
|
652
652
|
readonly sessionId: string;
|
653
653
|
readonly schemaHash: number;
|
654
|
-
readonly syncMetadataJson: import("effect/Option").
|
654
|
+
readonly syncMetadataJson: import("effect/Option").Option<Schema.JsonValue>;
|
655
655
|
}, {
|
656
656
|
readonly seqNumGlobal: number;
|
657
657
|
readonly seqNumClient: number;
|
@@ -677,6 +677,14 @@ export declare const syncStatusTable: import("./table-def.ts").TableDef<import("
|
|
677
677
|
primaryKey: true;
|
678
678
|
autoIncrement: false;
|
679
679
|
};
|
680
|
+
readonly backendId: {
|
681
|
+
columnType: "text";
|
682
|
+
schema: Schema.Schema<string | null, string | null, never>;
|
683
|
+
default: import("effect/Option").None<never>;
|
684
|
+
nullable: true;
|
685
|
+
primaryKey: false;
|
686
|
+
autoIncrement: false;
|
687
|
+
};
|
680
688
|
}>, import("./table-def.ts").WithDefaults<{
|
681
689
|
readonly head: {
|
682
690
|
columnType: "integer";
|
@@ -686,10 +694,20 @@ export declare const syncStatusTable: import("./table-def.ts").TableDef<import("
|
|
686
694
|
primaryKey: true;
|
687
695
|
autoIncrement: false;
|
688
696
|
};
|
697
|
+
readonly backendId: {
|
698
|
+
columnType: "text";
|
699
|
+
schema: Schema.Schema<string | null, string | null, never>;
|
700
|
+
default: import("effect/Option").None<never>;
|
701
|
+
nullable: true;
|
702
|
+
primaryKey: false;
|
703
|
+
autoIncrement: false;
|
704
|
+
};
|
689
705
|
}>, Schema.Schema<{
|
690
706
|
readonly head: number;
|
707
|
+
readonly backendId: string | null;
|
691
708
|
}, {
|
692
709
|
readonly head: number;
|
710
|
+
readonly backendId: string | null;
|
693
711
|
}, never>>;
|
694
712
|
export type SyncStatusRow = typeof syncStatusTable.Type;
|
695
713
|
export declare const eventlogSystemTables: readonly [import("./table-def.ts").TableDef<import("./table-def.ts").SqliteTableDefForInput<"eventlog", {
|
@@ -784,7 +802,7 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
|
|
784
802
|
};
|
785
803
|
readonly syncMetadataJson: {
|
786
804
|
columnType: "text";
|
787
|
-
schema: Schema.Schema<import("effect/Option").
|
805
|
+
schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
|
788
806
|
default: import("effect/Option").None<never>;
|
789
807
|
nullable: false;
|
790
808
|
primaryKey: false;
|
@@ -882,7 +900,7 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
|
|
882
900
|
};
|
883
901
|
readonly syncMetadataJson: {
|
884
902
|
columnType: "text";
|
885
|
-
schema: Schema.Schema<import("effect/Option").
|
903
|
+
schema: Schema.Schema<import("effect/Option").Option<Schema.JsonValue>, string, never>;
|
886
904
|
default: import("effect/Option").None<never>;
|
887
905
|
nullable: false;
|
888
906
|
primaryKey: false;
|
@@ -900,7 +918,7 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
|
|
900
918
|
readonly clientId: string;
|
901
919
|
readonly sessionId: string;
|
902
920
|
readonly schemaHash: number;
|
903
|
-
readonly syncMetadataJson: import("effect/Option").
|
921
|
+
readonly syncMetadataJson: import("effect/Option").Option<Schema.JsonValue>;
|
904
922
|
}, {
|
905
923
|
readonly seqNumGlobal: number;
|
906
924
|
readonly seqNumClient: number;
|
@@ -923,6 +941,14 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
|
|
923
941
|
primaryKey: true;
|
924
942
|
autoIncrement: false;
|
925
943
|
};
|
944
|
+
readonly backendId: {
|
945
|
+
columnType: "text";
|
946
|
+
schema: Schema.Schema<string | null, string | null, never>;
|
947
|
+
default: import("effect/Option").None<never>;
|
948
|
+
nullable: true;
|
949
|
+
primaryKey: false;
|
950
|
+
autoIncrement: false;
|
951
|
+
};
|
926
952
|
}>, import("./table-def.ts").WithDefaults<{
|
927
953
|
readonly head: {
|
928
954
|
columnType: "integer";
|
@@ -932,9 +958,19 @@ export declare const eventlogSystemTables: readonly [import("./table-def.ts").Ta
|
|
932
958
|
primaryKey: true;
|
933
959
|
autoIncrement: false;
|
934
960
|
};
|
961
|
+
readonly backendId: {
|
962
|
+
columnType: "text";
|
963
|
+
schema: Schema.Schema<string | null, string | null, never>;
|
964
|
+
default: import("effect/Option").None<never>;
|
965
|
+
nullable: true;
|
966
|
+
primaryKey: false;
|
967
|
+
autoIncrement: false;
|
968
|
+
};
|
935
969
|
}>, Schema.Schema<{
|
936
970
|
readonly head: number;
|
971
|
+
readonly backendId: string | null;
|
937
972
|
}, {
|
938
973
|
readonly head: number;
|
974
|
+
readonly backendId: string | null;
|
939
975
|
}, never>>];
|
940
976
|
//# sourceMappingURL=system-tables.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAQhD,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;IAKxB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;UAGxB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;IAKjC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;UAGxB,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAWpC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAE3E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;IA1C1B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IActB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BsF,CAAA;AAEhH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,YAAkE,CAAA;AAItH,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU1B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAY9B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,iBAAiB,4BAA4B,CAAA;AAG1D,eAAO,MAAM,eAAe
|
1
|
+
{"version":3,"file":"system-tables.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAQhD,eAAO,MAAM,iBAAiB,uBAAuB,CAAA;AAErD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;IAKxB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;UAGxB,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;IAKjC,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;UAGxB,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,4BAA4B,kCAAkC,CAAA;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAWpC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAE3E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;IA1C1B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IActB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;IAAtB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA4BsF,CAAA;AAEhH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,YAAkE,CAAA;AAItH,eAAO,MAAM,mBAAmB,aAAa,CAAA;AAE7C,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAU1B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAY9B,CAAA;AAEF,MAAM,MAAM,eAAe,GAAG,OAAO,iBAAiB,CAAC,IAAI,CAAA;AAE3D,eAAO,MAAM,iBAAiB,4BAA4B,CAAA;AAG1D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAO1B,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEvD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA9B7B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAA5B,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WA8BiD,CAAA"}
|
@@ -73,6 +73,8 @@ export const syncStatusTable = table({
|
|
73
73
|
name: SYNC_STATUS_TABLE,
|
74
74
|
columns: {
|
75
75
|
head: SqliteDsl.integer({ primaryKey: true }),
|
76
|
+
// Null means the sync backend is not yet connected and we haven't yet seen a backend ID
|
77
|
+
backendId: SqliteDsl.text({ nullable: true }),
|
76
78
|
},
|
77
79
|
});
|
78
80
|
export const eventlogSystemTables = [eventlogMetaTable, syncStatusTable];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/system-tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,OAAO,KAAK,mBAAmB,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,YAAY;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAG,oBAAoB,CAAA;AAErD,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;IACnC,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE;QACP,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC/C,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAClD,sBAAsB;QACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;KAC/C;CACF,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,4BAA4B,GAAG,+BAA+B,CAAA;AAE3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;IAC5C,IAAI,EAAE,4BAA4B;IAClC,OAAO,EAAE;QACP,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC/C,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAClD,sBAAsB;QACtB,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;KAC/C;CACF,CAAC,CAAA;AAIF;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,+BAA+B,CAAA;AAE3E,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;IAC7C,IAAI,EAAE,4BAA4B;IAClC,OAAO,EAAE;QACP,8BAA8B;QAC9B,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,CAAC;QAC1F,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,CAAC;QAC1F,sBAAsB,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7C,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KAC1C;IACD,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;CAC3F,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,eAAe,EAAE,wBAAwB,EAAE,yBAAyB,CAAU,CAAA;AAEhH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;AAEtH,eAAe;AAEf,MAAM,CAAC,MAAM,mBAAmB,GAAG,UAAU,CAAA;AAE7C,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;IACrC,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE;QACP,2EAA2E;QAC3E,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,CAAC;QAC5G,YAAY,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,CAAC;QAC5G,sBAAsB,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC/D,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,CAAC;QAChG,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,yBAAyB,EAAE,CAAC;QAChG,4BAA4B,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,4BAA4B;QAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;KAChG;IACD,OAAO,EAAE;QACP,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE;QAChE,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,wBAAwB,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE;KACrG;CACF,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,iBAAiB,GAAG,yBAAyB,CAAA;AAE1D,yEAAyE;AACzE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;IACnC,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE;QACP,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;KAC9C;CACF,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAU,CAAA"}
|
1
|
+
{"version":3,"file":"system-tables.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/system-tables.ts"],"names":[],"mappings":"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"}
|
@@ -1,8 +1,10 @@
|
|
1
1
|
import { type Nullable } from '@livestore/utils';
|
2
|
-
import { Schema,
|
2
|
+
import { Schema, type Types } from '@livestore/utils/effect';
|
3
|
+
import { getColumnDefForSchema } from './column-def.ts';
|
3
4
|
import { SqliteDsl } from './db-schema/mod.ts';
|
4
5
|
import type { QueryBuilder } from './query-builder/mod.ts';
|
5
6
|
export declare const blob: SqliteDsl.ColDefFn<"blob">, boolean: SqliteDsl.SpecializedColDefFn<"integer", false, boolean>, column: <TColumnType extends SqliteDsl.FieldColumnType>(columnType: TColumnType) => SqliteDsl.ColDefFn<TColumnType>, datetime: SqliteDsl.SpecializedColDefFn<"text", false, Date>, integer: SqliteDsl.ColDefFn<"integer">, isColumnDefinition: (value: unknown) => value is SqliteDsl.ColumnDefinition.Any, json: SqliteDsl.SpecializedColDefFn<"text", true, unknown>, real: SqliteDsl.ColDefFn<"real">, text: SqliteDsl.ColDefFn<"text">;
|
7
|
+
export { getColumnDefForSchema };
|
6
8
|
export type StateType = 'singleton' | 'dynamic';
|
7
9
|
export type DefaultSqliteTableDef = SqliteDsl.TableDefinition<string, SqliteDsl.Columns>;
|
8
10
|
export type DefaultSqliteTableDefConstrained = SqliteDsl.TableDefinition<string, SqliteDsl.ConstraintColumns>;
|
@@ -160,16 +162,12 @@ export type ToColumns<TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefin
|
|
160
162
|
} : never;
|
161
163
|
export declare namespace SchemaToColumns {
|
162
164
|
type ColumnDefForType<TEncoded, TType> = SqliteDsl.ColumnDefinition<TEncoded, TType>;
|
163
|
-
type FromTypes<TType, TEncoded> =
|
164
|
-
[K in keyof TType
|
165
|
-
} : SqliteDsl.Columns
|
165
|
+
type FromTypes<TType, TEncoded> = TEncoded extends Record<string, any> ? {
|
166
|
+
[K in keyof TEncoded]-?: ColumnDefForType<TEncoded[K], TType extends Record<string, any> ? (K extends keyof TType ? TType[K] : TEncoded[K]) : TEncoded[K]>;
|
167
|
+
} : SqliteDsl.Columns;
|
166
168
|
}
|
167
169
|
export declare namespace TableDefInput {
|
168
170
|
type ForColumns<TName extends string, TColumns extends SqliteDsl.Columns | SqliteDsl.ColumnDefinition.Any> = SqliteDsl.TableDefinition<TName, PrettifyFlat<ToColumns<TColumns>>>;
|
169
171
|
type ForSchema<TName extends string, TType, TEncoded, _TSchema = any> = SqliteDsl.TableDefinition<TName, SchemaToColumns.FromTypes<TType, TEncoded>>;
|
170
172
|
}
|
171
|
-
/**
|
172
|
-
* Maps a schema to a SQLite column definition, respecting column annotations.
|
173
|
-
*/
|
174
|
-
export declare const getColumnDefForSchema: (schema: Schema.Schema.AnyNoContext, propertySignature?: SchemaAST.PropertySignature) => SqliteDsl.ColumnDefinition.Any;
|
175
173
|
//# sourceMappingURL=table-def.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/table-def.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,
|
1
|
+
{"version":3,"file":"table-def.d.ts","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/table-def.ts"],"names":[],"mappings":"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"}
|
@@ -1,9 +1,11 @@
|
|
1
1
|
import { shouldNeverHappen } from '@livestore/utils';
|
2
2
|
import { Option, Schema, SchemaAST } from '@livestore/utils/effect';
|
3
|
-
import {
|
3
|
+
import { getColumnDefForSchema, schemaFieldsToColumns } from "./column-def.js";
|
4
4
|
import { SqliteDsl } from "./db-schema/mod.js";
|
5
5
|
import { makeQueryBuilder, QueryBuilderAstSymbol, QueryBuilderTypeId } from "./query-builder/mod.js";
|
6
6
|
export const { blob, boolean, column, datetime, integer, isColumnDefinition, json, real, text } = SqliteDsl;
|
7
|
+
// Re-export the column definition function
|
8
|
+
export { getColumnDefForSchema };
|
7
9
|
// TODO use to hide table def internals
|
8
10
|
export const TableDefInternalsSymbol = Symbol('TableDefInternals');
|
9
11
|
// Implementation
|
@@ -19,7 +21,7 @@ export function table(args) {
|
|
19
21
|
additionalIndexes = [];
|
20
22
|
}
|
21
23
|
else if ('schema' in args) {
|
22
|
-
const result = schemaFieldsToColumns(
|
24
|
+
const result = schemaFieldsToColumns(Schema.getResolvedPropertySignatures(args.schema));
|
23
25
|
columns = result.columns;
|
24
26
|
// We'll set tableName first, then use it for index names
|
25
27
|
let tempTableName;
|
@@ -70,213 +72,4 @@ export function table(args) {
|
|
70
72
|
tableDef[QueryBuilderTypeId] = query[QueryBuilderTypeId];
|
71
73
|
return tableDef;
|
72
74
|
}
|
73
|
-
/**
|
74
|
-
* Checks if a property signature has a specific annotation, checking both
|
75
|
-
* the property signature itself and its type AST.
|
76
|
-
*/
|
77
|
-
const hasPropertyAnnotation = (propertySignature, annotationId) => {
|
78
|
-
// When using Schema.optional(Schema.String).pipe(withPrimaryKey) in a struct,
|
79
|
-
// the annotation ends up on a PropertySignatureDeclaration, not the Union type
|
80
|
-
// Check if this is a PropertySignatureDeclaration with annotations
|
81
|
-
if ('annotations' in propertySignature && propertySignature.annotations) {
|
82
|
-
const annotation = SchemaAST.getAnnotation(annotationId)(propertySignature);
|
83
|
-
if (Option.isSome(annotation)) {
|
84
|
-
return annotation;
|
85
|
-
}
|
86
|
-
}
|
87
|
-
// Otherwise check the type AST
|
88
|
-
return SchemaAST.getAnnotation(annotationId)(propertySignature.type);
|
89
|
-
};
|
90
|
-
/**
|
91
|
-
* Maps schema property signatures to SQLite column definitions.
|
92
|
-
* Returns both columns and unique column names for index creation.
|
93
|
-
*/
|
94
|
-
const schemaFieldsToColumns = (propertySignatures) => {
|
95
|
-
const columns = {};
|
96
|
-
const uniqueColumns = [];
|
97
|
-
for (const prop of propertySignatures) {
|
98
|
-
if (typeof prop.name === 'string') {
|
99
|
-
// Create a schema from the AST
|
100
|
-
const fieldSchema = Schema.make(prop.type);
|
101
|
-
// Check if property has primary key annotation
|
102
|
-
const hasPrimaryKey = hasPropertyAnnotation(prop, PrimaryKeyId).pipe(Option.getOrElse(() => false));
|
103
|
-
// Check if property has unique annotation
|
104
|
-
const hasUnique = hasPropertyAnnotation(prop, Unique).pipe(Option.getOrElse(() => false));
|
105
|
-
columns[prop.name] = schemaFieldToColumn(fieldSchema, prop, hasPrimaryKey);
|
106
|
-
if (hasUnique) {
|
107
|
-
uniqueColumns.push(prop.name);
|
108
|
-
}
|
109
|
-
}
|
110
|
-
}
|
111
|
-
return { columns, uniqueColumns };
|
112
|
-
};
|
113
|
-
/**
|
114
|
-
* Converts a schema field and its property signature to a SQLite column definition.
|
115
|
-
*/
|
116
|
-
const schemaFieldToColumn = (fieldSchema, propertySignature, forceHasPrimaryKey) => {
|
117
|
-
// Determine column type based on schema type
|
118
|
-
const columnDef = getColumnDefForSchema(fieldSchema, propertySignature);
|
119
|
-
// Create a new object with appropriate properties
|
120
|
-
const result = {
|
121
|
-
columnType: columnDef.columnType,
|
122
|
-
schema: columnDef.schema,
|
123
|
-
default: columnDef.default,
|
124
|
-
nullable: columnDef.nullable,
|
125
|
-
primaryKey: columnDef.primaryKey,
|
126
|
-
autoIncrement: columnDef.autoIncrement,
|
127
|
-
};
|
128
|
-
// Set primaryKey property explicitly
|
129
|
-
if (forceHasPrimaryKey || columnDef.primaryKey) {
|
130
|
-
result.primaryKey = true;
|
131
|
-
}
|
132
|
-
else {
|
133
|
-
result.primaryKey = false;
|
134
|
-
}
|
135
|
-
// Check for invalid primary key + nullable combination
|
136
|
-
if (result.primaryKey && (propertySignature.isOptional || columnDef.nullable)) {
|
137
|
-
return shouldNeverHappen(`Primary key columns cannot be nullable. Found nullable primary key for column. ` +
|
138
|
-
`Either remove the primary key annotation or use a non-nullable schema.`);
|
139
|
-
}
|
140
|
-
// Set nullable property explicitly
|
141
|
-
if (propertySignature.isOptional) {
|
142
|
-
result.nullable = true;
|
143
|
-
}
|
144
|
-
else if (columnDef.nullable) {
|
145
|
-
result.nullable = true;
|
146
|
-
}
|
147
|
-
else {
|
148
|
-
result.nullable = false;
|
149
|
-
}
|
150
|
-
// Only add autoIncrement if it's true
|
151
|
-
if (columnDef.autoIncrement) {
|
152
|
-
result.autoIncrement = true;
|
153
|
-
}
|
154
|
-
return result;
|
155
|
-
};
|
156
|
-
/**
|
157
|
-
* Maps a schema to a SQLite column definition, respecting column annotations.
|
158
|
-
*/
|
159
|
-
export const getColumnDefForSchema = (schema, propertySignature) => {
|
160
|
-
const ast = schema.ast;
|
161
|
-
// Check for annotations
|
162
|
-
const hasPrimaryKey = propertySignature
|
163
|
-
? hasPropertyAnnotation(propertySignature, PrimaryKeyId).pipe(Option.getOrElse(() => false))
|
164
|
-
: SchemaAST.getAnnotation(PrimaryKeyId)(ast).pipe(Option.getOrElse(() => false));
|
165
|
-
const hasAutoIncrement = propertySignature
|
166
|
-
? hasPropertyAnnotation(propertySignature, AutoIncrement).pipe(Option.getOrElse(() => false))
|
167
|
-
: SchemaAST.getAnnotation(AutoIncrement)(ast).pipe(Option.getOrElse(() => false));
|
168
|
-
const defaultValue = propertySignature
|
169
|
-
? hasPropertyAnnotation(propertySignature, Default)
|
170
|
-
: SchemaAST.getAnnotation(Default)(ast);
|
171
|
-
/** Adds annotations to a column definition if they are present. */
|
172
|
-
const withAnnotationsIfNeeded = (columnDef) => {
|
173
|
-
const result = { ...columnDef };
|
174
|
-
if (hasPrimaryKey) {
|
175
|
-
result.primaryKey = true;
|
176
|
-
}
|
177
|
-
if (hasAutoIncrement) {
|
178
|
-
result.autoIncrement = true;
|
179
|
-
}
|
180
|
-
if (Option.isSome(defaultValue)) {
|
181
|
-
result.default = Option.some(defaultValue.value);
|
182
|
-
}
|
183
|
-
return result;
|
184
|
-
};
|
185
|
-
// Check for custom column type annotation
|
186
|
-
const columnTypeAnnotation = SchemaAST.getAnnotation(ColumnType)(ast);
|
187
|
-
if (Option.isSome(columnTypeAnnotation)) {
|
188
|
-
const columnType = columnTypeAnnotation.value;
|
189
|
-
let columnDef;
|
190
|
-
switch (columnType) {
|
191
|
-
case 'text':
|
192
|
-
columnDef = SqliteDsl.text();
|
193
|
-
break;
|
194
|
-
case 'integer':
|
195
|
-
columnDef = SqliteDsl.integer();
|
196
|
-
break;
|
197
|
-
case 'real':
|
198
|
-
columnDef = SqliteDsl.real();
|
199
|
-
break;
|
200
|
-
case 'blob':
|
201
|
-
columnDef = SqliteDsl.blob();
|
202
|
-
break;
|
203
|
-
default:
|
204
|
-
return shouldNeverHappen(`Unsupported column type annotation: ${columnType}`);
|
205
|
-
}
|
206
|
-
return withAnnotationsIfNeeded(columnDef);
|
207
|
-
}
|
208
|
-
// Check for refinements (e.g., Schema.Int)
|
209
|
-
if (SchemaAST.isRefinement(ast)) {
|
210
|
-
// Check if this is specifically Schema.Int by looking at the identifier annotation
|
211
|
-
const identifier = SchemaAST.getIdentifierAnnotation(ast).pipe(Option.getOrElse(() => ''));
|
212
|
-
if (identifier === 'Int') {
|
213
|
-
return withAnnotationsIfNeeded(SqliteDsl.integer());
|
214
|
-
}
|
215
|
-
// For other refinements, check the underlying type
|
216
|
-
return getColumnDefForSchema(Schema.make(ast.from), propertySignature);
|
217
|
-
}
|
218
|
-
// Check for string types
|
219
|
-
if (SchemaAST.isStringKeyword(ast)) {
|
220
|
-
return withAnnotationsIfNeeded(SqliteDsl.text());
|
221
|
-
}
|
222
|
-
// Check for number types
|
223
|
-
if (SchemaAST.isNumberKeyword(ast)) {
|
224
|
-
return withAnnotationsIfNeeded(SqliteDsl.real());
|
225
|
-
}
|
226
|
-
// Check for boolean types
|
227
|
-
if (SchemaAST.isBooleanKeyword(ast)) {
|
228
|
-
return withAnnotationsIfNeeded(SqliteDsl.boolean());
|
229
|
-
}
|
230
|
-
// Check for unions (like optional or nullable)
|
231
|
-
if (SchemaAST.isUnion(ast)) {
|
232
|
-
// Check if this union contains null or undefined (making it nullable/optional)
|
233
|
-
let hasNull = false;
|
234
|
-
let hasUndefined = false;
|
235
|
-
let nonNullableType;
|
236
|
-
for (const type of ast.types) {
|
237
|
-
if (SchemaAST.isUndefinedKeyword(type)) {
|
238
|
-
hasUndefined = true;
|
239
|
-
}
|
240
|
-
else if (SchemaAST.isLiteral(type) && type.literal === null) {
|
241
|
-
hasNull = true;
|
242
|
-
}
|
243
|
-
else {
|
244
|
-
nonNullableType = type;
|
245
|
-
}
|
246
|
-
}
|
247
|
-
// If we found a non-nullable type, use it for the column definition
|
248
|
-
if (nonNullableType) {
|
249
|
-
const innerSchema = Schema.make(nonNullableType);
|
250
|
-
const innerColumnDef = getColumnDefForSchema(innerSchema, propertySignature);
|
251
|
-
// If the union contains null or undefined, mark as nullable
|
252
|
-
if (hasNull || hasUndefined) {
|
253
|
-
return withAnnotationsIfNeeded({
|
254
|
-
...innerColumnDef,
|
255
|
-
nullable: true,
|
256
|
-
});
|
257
|
-
}
|
258
|
-
return withAnnotationsIfNeeded(innerColumnDef);
|
259
|
-
}
|
260
|
-
}
|
261
|
-
// Check for Date types
|
262
|
-
if (SchemaAST.isTransformation(ast)) {
|
263
|
-
// Try to map the transformation's target type
|
264
|
-
return getColumnDefForSchema(Schema.make(ast.to), propertySignature);
|
265
|
-
}
|
266
|
-
// Check for literal types
|
267
|
-
if (SchemaAST.isLiteral(ast)) {
|
268
|
-
const value = ast.literal;
|
269
|
-
if (typeof value === 'string') {
|
270
|
-
return withAnnotationsIfNeeded(SqliteDsl.text());
|
271
|
-
}
|
272
|
-
else if (typeof value === 'number') {
|
273
|
-
return withAnnotationsIfNeeded(SqliteDsl.real());
|
274
|
-
}
|
275
|
-
else if (typeof value === 'boolean') {
|
276
|
-
return withAnnotationsIfNeeded(SqliteDsl.boolean());
|
277
|
-
}
|
278
|
-
}
|
279
|
-
// Default to JSON column for complex types
|
280
|
-
return withAnnotationsIfNeeded(SqliteDsl.json({ schema }));
|
281
|
-
};
|
282
75
|
//# sourceMappingURL=table-def.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"table-def.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/table-def.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,iBAAiB,
|
1
|
+
{"version":3,"file":"table-def.js","sourceRoot":"","sources":["../../../../src/schema/state/sqlite/table-def.ts"],"names":[],"mappings":"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"}
|