@rocicorp/zero 0.17.2025030300 → 0.17.2025030600
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/out/{chunk-BBNRRMOA.js → chunk-XXZWDMNW.js} +64 -44
- package/out/{chunk-BBNRRMOA.js.map → chunk-XXZWDMNW.js.map} +3 -3
- package/out/react.js +19 -11
- package/out/react.js.map +2 -2
- package/out/solid.js +8 -3
- package/out/solid.js.map +2 -2
- package/out/zero-cache/src/auth/read-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.js +0 -1
- package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +22 -5
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +30 -15
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +12 -6
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts +4 -0
- package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js +14 -4
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +7 -7
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +8 -2
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/multi/config.d.ts +11 -7
- package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
- package/out/zero-cache/src/server/multi/config.js +1 -3
- package/out/zero-cache/src/server/multi/config.js.map +1 -1
- package/out/zero-cache/src/server/multi/run-worker.d.ts.map +1 -1
- package/out/zero-cache/src/server/multi/run-worker.js +1 -3
- package/out/zero-cache/src/server/multi/run-worker.js.map +1 -1
- package/out/zero-cache/src/server/replicator.js +1 -1
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +10 -9
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +12 -3
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +33 -8
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/sync-schema.js +9 -0
- package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.js +3 -3
- package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +7 -0
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +29 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +2 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +7 -16
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts +2 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.js +8 -3
- package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +11 -3
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +40 -17
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +2 -2
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +9 -4
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +7 -3
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +11 -5
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +39 -20
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts +2 -1
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +42 -17
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts +4 -4
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js +5 -2
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +2 -11
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +1 -0
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/custom.d.ts +1 -2
- package/out/zero-pg/src/custom.d.ts.map +1 -1
- package/out/zero-pg/src/custom.js.map +1 -1
- package/out/zero-pg/src/mod.d.ts +1 -2
- package/out/zero-pg/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/query.d.ts +3 -4
- package/out/zero-pg/src/query.d.ts.map +1 -1
- package/out/zero-pg/src/query.js +5 -7
- package/out/zero-pg/src/query.js.map +1 -1
- package/out/zero-pg/src/web.d.ts +1 -1
- package/out/zero-pg/src/web.d.ts.map +1 -1
- package/out/zero-pg/src/web.js.map +1 -1
- package/out/zero-protocol/src/close-connection.d.ts +16 -0
- package/out/zero-protocol/src/close-connection.d.ts.map +1 -0
- package/out/zero-protocol/src/close-connection.js +17 -0
- package/out/zero-protocol/src/close-connection.js.map +1 -0
- package/out/zero-protocol/src/up.d.ts +1 -1
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-protocol/src/up.js +2 -1
- package/out/zero-protocol/src/up.js.map +1 -1
- package/out/zero-react/src/use-query.d.ts +11 -2
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-solid/src/use-query.d.ts +4 -1
- package/out/zero-solid/src/use-query.d.ts.map +1 -1
- package/out/zero.js +1 -1
- package/out/zql/src/mutate/custom.d.ts +36 -1
- package/out/zql/src/mutate/custom.d.ts.map +1 -1
- package/out/zql/src/mutate/custom.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +8 -8
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +29 -25
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query-internal.d.ts +2 -2
- package/out/zql/src/query/query-internal.d.ts.map +1 -1
- package/out/zql/src/query/query.d.ts +10 -2
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/query.js +1 -1
- package/out/zql/src/query/query.js.map +1 -1
- package/out/zql/src/query/static-query.d.ts +1 -1
- package/out/zql/src/query/static-query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.js +2 -2
- package/out/zql/src/query/static-query.js.map +1 -1
- package/out/zqlite/src/db.d.ts +3 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +47 -0
- package/out/zqlite/src/db.js.map +1 -1
- package/package.json +2 -2
- package/out/zero-pg/src/db.d.ts +0 -27
- package/out/zero-pg/src/db.d.ts.map +0 -1
- package/out/zero-pg/src/db.js +0 -2
- package/out/zero-pg/src/db.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lite.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/lite.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAE3C,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,CAAC;AAEzE,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAQjC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAoBpE;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"lite.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/lite.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,cAAc,CAAC;AAE3C,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,CAAC;AAEzE,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;AAC9D,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAQjC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAoBpE;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,aAAa,EACpB,YAAY,CAAC,EAAE,gBAAgB,GAC9B,aAAa,EAAE,CAIjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,gBAAgB,GAC9B,aAAa,CAef;AAwBD,wBAAgB,+BAA+B,CAC7C,YAAY,EAAE,cAAc,GAC3B,WAAW,CAEb;AAcD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC;;GAEG;AACH,wBAAgB,cAAc,CAC5B,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACnC,QAAQ,EAAE,OAAO,GAChB,cAAc,CAShB;AAED,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,cAAc,UAG9D;AAED,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,cAAc,WAE9D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,cAAc,GAC7B,SAAS,GAAG,SAAS,CAyDvB"}
|
|
@@ -28,8 +28,8 @@ export function liteRow(row, table) {
|
|
|
28
28
|
liteValue(val, columnType(key, table)),
|
|
29
29
|
]));
|
|
30
30
|
}
|
|
31
|
-
export function liteValues(row, table) {
|
|
32
|
-
return Object.entries(row).map(([col, val]) => liteValue(val, columnType(col, table)));
|
|
31
|
+
export function liteValues(row, table, jsonAsString) {
|
|
32
|
+
return Object.entries(row).map(([col, val]) => liteValue(val, columnType(col, table), jsonAsString));
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Postgres values types that are supported by SQLite are stored as-is.
|
|
@@ -41,13 +41,18 @@ export function liteValues(row, table) {
|
|
|
41
41
|
* Note that this currently does not handle the `bytea[]` type, but that's
|
|
42
42
|
* already a pretty questionable type.
|
|
43
43
|
*/
|
|
44
|
-
export function liteValue(val, pgType) {
|
|
44
|
+
export function liteValue(val, pgType, jsonAsString) {
|
|
45
45
|
if (val instanceof Uint8Array || val === null) {
|
|
46
46
|
return val;
|
|
47
47
|
}
|
|
48
48
|
const valueType = dataTypeToZqlValueType(pgType);
|
|
49
49
|
if (valueType === 'json') {
|
|
50
|
-
|
|
50
|
+
if (jsonAsString && typeof val === 'string') {
|
|
51
|
+
// JSON and JSONB values are already strings if the JSON was not parsed.
|
|
52
|
+
return val;
|
|
53
|
+
}
|
|
54
|
+
// Non-JSON/JSONB values will always appear as objects / arrays.
|
|
55
|
+
return stringify(val);
|
|
51
56
|
}
|
|
52
57
|
const obj = toLiteValue(val);
|
|
53
58
|
return obj && typeof obj === 'object' ? stringify(obj) : obj;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lite.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/lite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gCAAgC,CAAC;AAMtD,OAAO,EAAC,SAAS,EAAiB,MAAM,kBAAkB,CAAC;AAU3D,SAAS,UAAU,CAAC,GAAW,EAAE,KAAoB;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,aAAa,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,GAAa,EAAE,KAAoB;IACzD,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACvD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YACpB,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,GAAyB,CAAC;IACnC,CAAC;IACD,6CAA6C;IAC7C,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;QACtC,GAAG;QACH,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACvC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,GAAa,EACb,KAAoB;
|
|
1
|
+
{"version":3,"file":"lite.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/lite.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,8 +17,12 @@ declare function dateToUTCMidnight(date: string): number;
|
|
|
17
17
|
* https://github.com/brianc/node-pg-types/blob/master/lib/textParsers.js
|
|
18
18
|
*/
|
|
19
19
|
export type PostgresValueType = JSONValue | Uint8Array;
|
|
20
|
-
/**
|
|
21
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Configures types for the Postgres.js client library (`postgres`).
|
|
22
|
+
*
|
|
23
|
+
* @param jsonAsString Keep JSON / JSONB values as strings instead of parsing.
|
|
24
|
+
*/
|
|
25
|
+
export declare const postgresTypeConfig: (jsonAsString?: "json-as-string" | undefined) => {
|
|
22
26
|
types: {
|
|
23
27
|
bigint: postgres.PostgresType<bigint>;
|
|
24
28
|
json: {
|
|
@@ -58,7 +62,7 @@ export type PostgresTransaction = postgres.TransactionSql<{
|
|
|
58
62
|
export declare function pgClient(lc: LogContext, connectionURI: string, options?: postgres.Options<{
|
|
59
63
|
bigint: PostgresType<bigint>;
|
|
60
64
|
json: PostgresType<JSONValue>;
|
|
61
|
-
}
|
|
65
|
+
}>, jsonAsString?: 'json-as-string'): PostgresDB;
|
|
62
66
|
export declare const typeNameByOID: Record<number, string>;
|
|
63
67
|
export {};
|
|
64
68
|
//# sourceMappingURL=pg.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/pg.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,QAAQ,EAAE,EAAc,KAAK,YAAY,EAAC,MAAM,UAAU,CAAC;AAGlE,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAc5D,6EAA6E;AAC7E,wBAAgB,2BAA2B,
|
|
1
|
+
{"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/types/pg.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,QAAQ,EAAE,EAAc,KAAK,YAAY,EAAC,MAAM,UAAU,CAAC;AAGlE,OAAO,EAAa,KAAK,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAc5D,6EAA6E;AAC7E,wBAAgB,2BAA2B,SAwB1C;AAMD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAyB7D;AAED,iBAAS,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAuBhD;AAED,iBAAS,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEvD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,kBACd,gBAAgB,GAAG,SAAS;;;;gBAOlB,MAAM;kBACc,MAAM,EAAE;;;;;gBAMvB,MAAM;kBACP,MAAM,EAAE;;;;;gBAMZ,MAAM;kBACF,MAAM,EAAE;2BAClB,MAAM,GAAG,IAAI;;;;;;2BAUb,MAAM;uBACV,MAAM,GAAG,MAAM;;;CAG9B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC,cAAc,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC,CAAC;AAEH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;IACzB,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;CAC/B,CAAC,EACF,YAAY,CAAC,EAAE,gBAAgB,GAC9B,UAAU,CAiCZ;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKhD,CAAC"}
|
|
@@ -31,6 +31,8 @@ export function registerPostgresTypeParsers() {
|
|
|
31
31
|
// Store dates as the epoch milliseconds at UTC midnight of the date.
|
|
32
32
|
setTypeParser(builtins.DATE, dateToUTCMidnight);
|
|
33
33
|
setTypeParser(builtinsDATEARRAY, val => array.parse(val, dateToUTCMidnight));
|
|
34
|
+
// TODO: Override JSON parsing and replicate as strings to eliminate the
|
|
35
|
+
// parse/serialize overhead.
|
|
34
36
|
}
|
|
35
37
|
const WITH_HH_MM_TIMEZONE = /[+-]\d\d:\d\d$/;
|
|
36
38
|
const WITH_HH_TIMEZONE = /[+-]\d\d$/;
|
|
@@ -92,8 +94,12 @@ function dateToUTCMidnight(date) {
|
|
|
92
94
|
const d = new Date(date);
|
|
93
95
|
return Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());
|
|
94
96
|
}
|
|
95
|
-
/**
|
|
96
|
-
|
|
97
|
+
/**
|
|
98
|
+
* Configures types for the Postgres.js client library (`postgres`).
|
|
99
|
+
*
|
|
100
|
+
* @param jsonAsString Keep JSON / JSONB values as strings instead of parsing.
|
|
101
|
+
*/
|
|
102
|
+
export const postgresTypeConfig = (jsonAsString) => ({
|
|
97
103
|
// Type the type IDs as `number` so that Typescript doesn't complain about
|
|
98
104
|
// referencing external types during type inference.
|
|
99
105
|
types: {
|
|
@@ -102,7 +108,7 @@ export const postgresTypeConfig = () => ({
|
|
|
102
108
|
to: builtins.JSON,
|
|
103
109
|
from: [builtins.JSON, builtins.JSONB],
|
|
104
110
|
serialize: BigIntJSON.stringify,
|
|
105
|
-
parse: BigIntJSON.parse,
|
|
111
|
+
parse: jsonAsString ? (x) => x : BigIntJSON.parse,
|
|
106
112
|
},
|
|
107
113
|
// Timestamps are converted to PreciseDate objects.
|
|
108
114
|
timestamp: {
|
|
@@ -129,7 +135,7 @@ export const postgresTypeConfig = () => ({
|
|
|
129
135
|
},
|
|
130
136
|
},
|
|
131
137
|
});
|
|
132
|
-
export function pgClient(lc, connectionURI, options) {
|
|
138
|
+
export function pgClient(lc, connectionURI, options, jsonAsString) {
|
|
133
139
|
const onnotice = (n) => {
|
|
134
140
|
// https://www.postgresql.org/docs/current/plpgsql-errors-and-messages.html#PLPGSQL-STATEMENTS-RAISE
|
|
135
141
|
switch (n.severity) {
|
|
@@ -153,7 +159,7 @@ export function pgClient(lc, connectionURI, options) {
|
|
|
153
159
|
// Set connections to expire between 5 and 10 minutes to free up state on PG.
|
|
154
160
|
const maxLifetimeSeconds = randInt(5 * 60, 10 * 60);
|
|
155
161
|
return postgres(connectionURI, {
|
|
156
|
-
...postgresTypeConfig(),
|
|
162
|
+
...postgresTypeConfig(jsonAsString),
|
|
157
163
|
onnotice,
|
|
158
164
|
['max_lifetime']: maxLifetimeSeconds,
|
|
159
165
|
['connect_timeout']: 60, // scale-from-zero dbs need more than 30 seconds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/pg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,GAAG,EAAC,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,QAAQ,EAAE,EAAgC,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAC,UAAU,EAAiB,MAAM,kBAAkB,CAAC;AAE5D,MAAM,EACJ,KAAK,EAAE,EAAC,QAAQ,EAAE,aAAa,EAAC,GACjC,GAAG,EAAE,CAAC;AAEP,MAAM,eAAe,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEnE,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAE5E,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,uCAAuC;AAEvE,6EAA6E;AAC7E,MAAM,UAAU,2BAA2B;IACzC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,aAAa,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAElE,oEAAoE;IACpE,2DAA2D;IAC3D,2DAA2D;IAC3D,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAExC,4EAA4E;IAC5E,uDAAuD;IACvD,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,aAAa,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC3C,CAAC;IACD,6EAA6E;IAC7E,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,qEAAqE;IACrE,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAChD,aAAa,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../../zero-cache/src/types/pg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,GAAG,EAAC,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,QAAQ,EAAE,EAAgC,MAAM,UAAU,CAAC;AAClE,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAC,OAAO,EAAC,MAAM,6BAA6B,CAAC;AACpD,OAAO,EAAC,UAAU,EAAiB,MAAM,kBAAkB,CAAC;AAE5D,MAAM,EACJ,KAAK,EAAE,EAAC,QAAQ,EAAE,aAAa,EAAC,GACjC,GAAG,EAAE,CAAC;AAEP,MAAM,eAAe,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;AAEnE,MAAM,gBAAgB,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAE5E,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAE/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,uCAAuC;AAEvE,6EAA6E;AAC7E,MAAM,UAAU,2BAA2B;IACzC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrC,aAAa,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAElE,oEAAoE;IACpE,2DAA2D;IAC3D,2DAA2D;IAC3D,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAExC,4EAA4E;IAC5E,uDAAuD;IACvD,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,aAAa,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;IAC3C,CAAC;IACD,6EAA6E;IAC7E,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,qEAAqE;IACrE,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAChD,aAAa,CAAC,iBAAiB,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAE7E,wEAAwE;IACxE,kCAAkC;AACpC,CAAC;AAED,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAC7C,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAErC,wBAAwB;AACxB,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,sEAAsE;IACtE,kCAAkC;IAClC,IAAI,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC/B,IAAI,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,6DAA6D;YAC7D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,EAAE,IAAI,KAAK,CAAC,CAAC,6DAA6D;QAC5E,CAAC;IACH,CAAC;SAAM,IAAI,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACzC,6DAA6D;QAC7D,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,EAAE,IAAI,GAAG,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,GAAG,QAAU,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,GAAG,QAAU,CAAC,CAAC;QAC5C,OAAO,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,8BAA8B;IAC9D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,SAAS,EAAE,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAY;IACtC,QAAQ,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC,CAAC,wBAAwB;QACtC,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,CAAC;YACD,gDAAgD;YAChD,MAAM,WAAW,GACf,QAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACtC,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QACpD,CAAC;QACD,kGAAkG;QAClG,iBAAiB;QACjB,+CAA+C;QAC/C;YACE,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;gBACxB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;YAC3B,CAAC;IACL,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,OAAO,GAAG,oBAAoB,GAAG,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;AACvE,CAAC;AAcD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,YAA2C,EAC3C,EAAE,CAAC,CAAC;IACJ,0EAA0E;IAC1E,oDAAoD;IACpD,KAAK,EAAE;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI,EAAE;YACJ,EAAE,EAAE,QAAQ,CAAC,IAAc;YAC3B,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAa;YACjD,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK;SAC1D;QACD,mDAAmD;QACnD,SAAS,EAAE;YACT,EAAE,EAAE,QAAQ,CAAC,SAAmB;YAChC,IAAI,EAAE,eAA2B;YACjC,SAAS,EAAE,kBAAkB;YAC7B,KAAK,EAAE,mBAAmB;SAC3B;QACD,qEAAqE;QACrE,IAAI,EAAE;YACJ,EAAE,EAAE,QAAQ,CAAC,IAAc;YAC3B,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAa;YACjC,SAAS,EAAE,CAAC,CAAgB,EAAE,EAAE,CAC9B,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;YACrD,KAAK,EAAE,iBAAiB;SACzB;QACD,oEAAoE;QACpE,2DAA2D;QAC3D,2DAA2D;QAC3D,OAAO,EAAE;YACP,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,sBAAsB;YAC3D,KAAK,EAAE,CAAC,CAAkB,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;SACzC;KACF;CACF,CAAC,CAAC;AAYH,MAAM,UAAU,QAAQ,CACtB,EAAc,EACd,aAAqB,EACrB,OAGE,EACF,YAA+B;IAE/B,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE;QAC7B,oGAAoG;QACpG,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,OAAO,CAAC,WAAW;YACrB,KAAK,OAAO;gBACV,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBACd,OAAO;YACT,KAAK,SAAS,CAAC;YACf,KAAK,WAAW;gBACd,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBACd,OAAO;YACT,KAAK,KAAK,CAAC;YACX,KAAK,MAAM,CAAC;YACZ;gBACE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,MAAM,GAAG,GACP,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC;IAE7E,6EAA6E;IAC7E,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACpD,OAAO,QAAQ,CAAC,aAAa,EAAE;QAC7B,GAAG,kBAAkB,CAAC,YAAY,CAAC;QACnC,QAAQ;QACR,CAAC,cAAc,CAAC,EAAE,kBAAkB;QACpC,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,gDAAgD;QACzE,GAAG,EAAE,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,GAAgB;QACrE,GAAG,OAAO;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAA2B,MAAM,CAAC,WAAW,CACrE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IACvC,GAAG;IACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;CACvD,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,SAAS,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,SAAS,MAAM,IAAI,CAAC;AAQ3B,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,oCAAoC,CAAC;AAEnE,OAAO,EAAC,KAAK,SAAS,EAAC,MAAM,qCAAqC,CAAC;AAMnE,OAAO,EAAiB,KAAK,QAAQ,EAAC,MAAM,kCAAkC,CAAC;AAC/E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AAE5E,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAEhD,MAAM,MAAM,aAAa,GACrB;IACE,IAAI,EAAE,IAAI,CAAC;CACZ,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;CAClB,GACD;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB,GACD;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;CAC5B,CAAC;AAEN,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACtD;AAED;;;;;;;GAOG;AACH,qBAAa,UAAU;;gBAYnB,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,aAAa,EAC5B,EAAE,EAAE,SAAS,EACb,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,MAAM,IAAI;IAqBrB;;;;;;OAMG;IACH,IAAI;IAsBJ,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAoBxC,oBAAoB,CAAC,iBAAiB,EAAE,MAAM;IAgH9C,IAAI,CAAC,IAAI,EAAE,UAAU;IAIrB,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO;CAGjD;AAED,wBAAgB,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,QAEnD;AAED,wBAAgB,SAAS,CACvB,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,SAAS,EACb,SAAS,EAAE,SAAS,EACpB,MAAM,CAAC,EAAE,OAAO,QAMjB"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import WebSocket from 'ws';
|
|
2
|
+
import { assert } from "../../../shared/src/asserts.js";
|
|
2
3
|
import * as valita from "../../../shared/src/valita.js";
|
|
4
|
+
import { closeConnectionMessageSchema, } from "../../../zero-protocol/src/close-connection.js";
|
|
3
5
|
import * as ErrorKind from "../../../zero-protocol/src/error-kind-enum.js";
|
|
4
6
|
import {} from "../../../zero-protocol/src/error.js";
|
|
5
7
|
import { MIN_SERVER_SUPPORTED_SYNC_PROTOCOL, PROTOCOL_VERSION, } from "../../../zero-protocol/src/protocol-version.js";
|
|
6
8
|
import { upstreamSchema } from "../../../zero-protocol/src/up.js";
|
|
7
9
|
import { findErrorForClient, getLogLevel } from "../types/error-for-client.js";
|
|
8
|
-
import { assert } from "../../../shared/src/asserts.js";
|
|
9
10
|
/**
|
|
10
11
|
* Represents a connection between the client and server.
|
|
11
12
|
*
|
|
@@ -106,31 +107,49 @@ export class Connection {
|
|
|
106
107
|
return;
|
|
107
108
|
}
|
|
108
109
|
const result = await this.#messageHandler.handleMessage(msg);
|
|
109
|
-
|
|
110
|
-
case 'fatal':
|
|
111
|
-
this.#closeWithError(result.error);
|
|
112
|
-
break;
|
|
113
|
-
case 'ok':
|
|
114
|
-
break;
|
|
115
|
-
case 'stream': {
|
|
116
|
-
assert(this.#outboundStream === undefined, 'Outbound stream already set for this connection!');
|
|
117
|
-
this.#outboundStream = result.stream;
|
|
118
|
-
void this.#proxyOutbound(result.stream);
|
|
119
|
-
break;
|
|
120
|
-
}
|
|
121
|
-
case 'transient': {
|
|
122
|
-
for (const error of result.errors) {
|
|
123
|
-
this.sendError(error);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
110
|
+
return this.#handleMessageResult(result);
|
|
127
111
|
}
|
|
128
112
|
catch (e) {
|
|
129
113
|
this.#closeWithThrown(e);
|
|
130
114
|
}
|
|
131
115
|
};
|
|
132
|
-
#
|
|
116
|
+
#handleMessageResult(result) {
|
|
117
|
+
switch (result.type) {
|
|
118
|
+
case 'fatal':
|
|
119
|
+
this.#closeWithError(result.error);
|
|
120
|
+
break;
|
|
121
|
+
case 'ok':
|
|
122
|
+
break;
|
|
123
|
+
case 'stream': {
|
|
124
|
+
assert(this.#outboundStream === undefined, 'Outbound stream already set for this connection!');
|
|
125
|
+
this.#outboundStream = result.stream;
|
|
126
|
+
void this.#proxyOutbound(result.stream);
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case 'transient': {
|
|
130
|
+
for (const error of result.errors) {
|
|
131
|
+
this.sendError(error);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
#handleClose = async (e) => {
|
|
133
137
|
const { code, reason, wasClean } = e;
|
|
138
|
+
// Normal closure
|
|
139
|
+
if (code === 1000) {
|
|
140
|
+
let msg;
|
|
141
|
+
try {
|
|
142
|
+
const data = JSON.parse(reason);
|
|
143
|
+
msg = valita.parse(data, closeConnectionMessageSchema);
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
// failed to to parse reason as JSON.
|
|
147
|
+
this.#lc.warn?.(`failed to parse message "${reason}": ${String(e)}`);
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const result = await this.#messageHandler.handleMessage(msg);
|
|
151
|
+
this.#handleMessageResult(result);
|
|
152
|
+
}
|
|
134
153
|
this.close('WebSocket close event', { code, reason, wasClean });
|
|
135
154
|
};
|
|
136
155
|
#handleError = (e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/connection.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AAGxD,OAAO,KAAK,SAAS,MAAM,+CAA+C,CAAC;AAC3E,OAAO,EAAgB,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EACL,kCAAkC,EAClC,gBAAgB,GACjB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EAAC,cAAc,EAAgB,MAAM,kCAAkC,CAAC;AAE/E,OAAO,EAAC,kBAAkB,EAAE,WAAW,EAAC,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import * as v from '../../../shared/src/valita.ts';
|
|
3
3
|
import { Database } from '../../../zqlite/src/db.ts';
|
|
4
|
+
import type { ReplicaOptions } from '../config/zero-config.ts';
|
|
4
5
|
import { Notifier } from '../services/replicator/notifier.ts';
|
|
5
6
|
import type { ReplicaStateNotifier, Replicator } from '../services/replicator/replicator.ts';
|
|
6
7
|
import type { Worker } from '../types/processes.ts';
|
|
7
8
|
export declare const replicaFileModeSchema: v.UnionType<[v.Type<"serving">, v.Type<"serving-copy">, v.Type<"backup">]>;
|
|
8
9
|
export type ReplicaFileMode = v.Infer<typeof replicaFileModeSchema>;
|
|
9
10
|
export declare function replicaFileName(replicaFile: string, mode: ReplicaFileMode): string;
|
|
10
|
-
export declare function setupReplica(lc: LogContext, mode: ReplicaFileMode,
|
|
11
|
+
export declare function setupReplica(lc: LogContext, mode: ReplicaFileMode, replicaOptions: ReplicaOptions): Database;
|
|
11
12
|
export declare function setUpMessageHandlers(lc: LogContext, replicator: Replicator, parent: Worker): void;
|
|
12
13
|
export declare function handleSubscriptionsFrom(lc: LogContext, subscriber: Worker, notifier: ReplicaStateNotifier): void;
|
|
13
14
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/replicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/replicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AACnD,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAC,QAAQ,EAAC,MAAM,oCAAoC,CAAC;AAC5D,OAAO,KAAK,EAEV,oBAAoB,EACpB,UAAU,EACX,MAAM,sCAAsC,CAAC;AAK9C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,eAAO,MAAM,qBAAqB,4EAIjC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,UAEzE;AAqED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,eAAe,EACrB,cAAc,EAAE,cAAc,GAC7B,QAAQ,CAkCV;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,QAGf;AAID,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,oBAAoB,QAc/B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAM5E;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAE1D"}
|
|
@@ -3,18 +3,44 @@ import * as v from "../../../shared/src/valita.js";
|
|
|
3
3
|
import { Database } from "../../../zqlite/src/db.js";
|
|
4
4
|
import { deleteLiteDB } from "../db/delete-lite-db.js";
|
|
5
5
|
import { Notifier } from "../services/replicator/notifier.js";
|
|
6
|
+
import { getAscendingEvents, recordEvent, } from "../services/replicator/schema/replication-state.js";
|
|
6
7
|
export const replicaFileModeSchema = v.union(v.literal('serving'), v.literal('serving-copy'), v.literal('backup'));
|
|
7
8
|
export function replicaFileName(replicaFile, mode) {
|
|
8
9
|
return mode === 'serving-copy' ? `${replicaFile}-serving-copy` : replicaFile;
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
const MILLIS_PER_HOUR = 1000 * 60 * 60;
|
|
12
|
+
const MB = 1024 * 1024;
|
|
13
|
+
function connect(lc, { file, vacuumIntervalHours }, walMode) {
|
|
14
|
+
const replica = new Database(lc, file);
|
|
15
|
+
const start = Date.now();
|
|
16
|
+
// Start by folding any (e.g. restored) WAL(2) files into the main db.
|
|
17
|
+
replica.pragma('journal_mode = delete');
|
|
18
|
+
//eslint-disable-next-line @typescript-eslint/naming-convention
|
|
19
|
+
const [{ page_size: pageSize }] = replica.pragma('page_size');
|
|
20
|
+
//eslint-disable-next-line @typescript-eslint/naming-convention
|
|
21
|
+
const [{ page_count: pageCount }] = replica.pragma('page_count');
|
|
22
|
+
const [{ freelist_count: freelistCount }] = replica.pragma('freelist_count');
|
|
23
|
+
const dbSize = ((pageCount * pageSize) / MB).toFixed(2);
|
|
24
|
+
const freelistSize = ((freelistCount * pageSize) / MB).toFixed(2);
|
|
25
|
+
// TODO: Consider adding a freelist size or ratio based vacuum trigger.
|
|
26
|
+
lc.info?.(`Size of db ${file}: ${dbSize} MB (${freelistSize} MB freeable)`);
|
|
27
|
+
// Check for the VACUUM threshold.
|
|
28
|
+
const events = getAscendingEvents(replica);
|
|
29
|
+
lc.debug?.(`Runtime events for db ${file}`, { events });
|
|
30
|
+
if (vacuumIntervalHours !== undefined) {
|
|
31
|
+
const millisSinceLastEvent = Date.now() - (events.at(-1)?.timestamp.getTime() ?? 0);
|
|
32
|
+
if (millisSinceLastEvent / MILLIS_PER_HOUR > vacuumIntervalHours) {
|
|
33
|
+
lc.info?.(`Performing maintenance VACUUM on ${file}`);
|
|
34
|
+
replica.unsafeMode(true);
|
|
35
|
+
replica.pragma('journal_mode = OFF');
|
|
36
|
+
replica.exec('VACUUM');
|
|
37
|
+
recordEvent(replica, 'vacuum');
|
|
38
|
+
replica.unsafeMode(false);
|
|
39
|
+
lc.info?.(`VACUUM completed (${Date.now() - start} ms)`);
|
|
40
|
+
}
|
|
17
41
|
}
|
|
42
|
+
lc.info?.(`setting ${file} to ${walMode} mode`);
|
|
43
|
+
replica.pragma(`journal_mode = ${walMode}`);
|
|
18
44
|
// Set a busy timeout at litestream's recommended 5 seconds:
|
|
19
45
|
// (https://litestream.io/tips/#busy-timeout).
|
|
20
46
|
//
|
|
@@ -23,17 +49,15 @@ function connect(lc, replicaDbFile, walMode) {
|
|
|
23
49
|
// call the sync workers, which results in occasional `ANALYZE` calls
|
|
24
50
|
// that may contend with each other and with the replicator for the lock.
|
|
25
51
|
replica.pragma('busy_timeout = 5000');
|
|
26
|
-
replica.pragma('synchronous = NORMAL');
|
|
27
|
-
replica.exec('VACUUM');
|
|
28
52
|
replica.pragma('optimize = 0x10002');
|
|
29
|
-
lc.info?.(`
|
|
53
|
+
lc.info?.(`optimized ${file}`);
|
|
30
54
|
return replica;
|
|
31
55
|
}
|
|
32
|
-
export function setupReplica(lc, mode,
|
|
56
|
+
export function setupReplica(lc, mode, replicaOptions) {
|
|
33
57
|
lc.info?.(`setting up ${mode} replica`);
|
|
34
58
|
switch (mode) {
|
|
35
59
|
case 'backup': {
|
|
36
|
-
const replica = connect(lc,
|
|
60
|
+
const replica = connect(lc, replicaOptions, 'wal');
|
|
37
61
|
// https://litestream.io/tips/#disable-autocheckpoints-for-high-write-load-servers
|
|
38
62
|
replica.pragma('wal_autocheckpoint = 0');
|
|
39
63
|
return replica;
|
|
@@ -41,18 +65,19 @@ export function setupReplica(lc, mode, replicaDbFile) {
|
|
|
41
65
|
case 'serving-copy': {
|
|
42
66
|
// In 'serving-copy' mode, the original file is being used for 'backup'
|
|
43
67
|
// mode, so we make a copy for servicing sync requests.
|
|
44
|
-
const
|
|
68
|
+
const { file } = replicaOptions;
|
|
69
|
+
const copyLocation = replicaFileName(file, mode);
|
|
45
70
|
deleteLiteDB(copyLocation);
|
|
46
71
|
const start = Date.now();
|
|
47
|
-
lc.info?.(`copying ${
|
|
48
|
-
const replica =
|
|
72
|
+
lc.info?.(`copying ${file} to ${copyLocation}`);
|
|
73
|
+
const replica = new Database(lc, file);
|
|
49
74
|
replica.prepare(`VACUUM INTO ?`).run(copyLocation);
|
|
50
75
|
replica.close();
|
|
51
76
|
lc.info?.(`finished copy (${Date.now() - start} ms)`);
|
|
52
|
-
return connect(lc, copyLocation, 'wal2');
|
|
77
|
+
return connect(lc, { ...replicaOptions, file: copyLocation }, 'wal2');
|
|
53
78
|
}
|
|
54
79
|
case 'serving':
|
|
55
|
-
return connect(lc,
|
|
80
|
+
return connect(lc, replicaOptions, 'wal2');
|
|
56
81
|
default:
|
|
57
82
|
throw new Error(`Invalid ReplicaMode ${mode}`);
|
|
58
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replicator.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/replicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AACnD,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"replicator.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/replicator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { Mutagen } from '../services/mutagen/mutagen.ts';
|
|
2
|
-
import type { TokenData, ViewSyncer } from '../services/view-syncer/view-syncer.ts';
|
|
3
|
-
import type { HandlerResult, MessageHandler } from './connection.ts';
|
|
4
|
-
import type { Upstream } from '../../../zero-protocol/src/up.ts';
|
|
5
1
|
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import type { Upstream } from '../../../zero-protocol/src/up.ts';
|
|
6
3
|
import type { ConnectParams } from '../services/dispatcher/connect-params.ts';
|
|
4
|
+
import type { Mutagen } from '../services/mutagen/mutagen.ts';
|
|
7
5
|
import type { Pusher } from '../services/mutagen/pusher.ts';
|
|
6
|
+
import type { TokenData, ViewSyncer } from '../services/view-syncer/view-syncer.ts';
|
|
7
|
+
import type { HandlerResult, MessageHandler } from './connection.ts';
|
|
8
8
|
export declare class SyncerWsMessageHandler implements MessageHandler {
|
|
9
9
|
#private;
|
|
10
10
|
constructor(lc: LogContext, connectParams: ConnectParams, tokenData: TokenData | undefined, viewSyncer: ViewSyncer, mutagen: Mutagen, pusher: Pusher | undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncer-ws-message-handler.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/syncer-ws-message-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,
|
|
1
|
+
{"version":3,"file":"syncer-ws-message-handler.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/syncer-ws-message-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AAC5E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,EAEV,SAAS,EACT,UAAU,EACX,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAC,aAAa,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAInE,qBAAa,sBAAuB,YAAW,cAAc;;gBAYzD,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GAAG,SAAS;IA+BtB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;CA+F3D"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { trace } from '@opentelemetry/api';
|
|
2
2
|
import { Lock } from '@rocicorp/lock';
|
|
3
|
-
import { version } from "../../../otel/src/version.js";
|
|
4
|
-
import * as ErrorKind from "../../../zero-protocol/src/error-kind-enum.js";
|
|
5
3
|
import { startAsyncSpan, startSpan } from "../../../otel/src/span.js";
|
|
4
|
+
import { version } from "../../../otel/src/version.js";
|
|
6
5
|
import { unreachable } from "../../../shared/src/asserts.js";
|
|
6
|
+
import * as ErrorKind from "../../../zero-protocol/src/error-kind-enum.js";
|
|
7
7
|
const tracer = trace.getTracer('syncer-ws-server', version);
|
|
8
8
|
export class SyncerWsMessageHandler {
|
|
9
9
|
#viewSyncer;
|
|
@@ -101,6 +101,9 @@ export class SyncerWsMessageHandler {
|
|
|
101
101
|
stream,
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
+
case 'closeConnection':
|
|
105
|
+
await startAsyncSpan(tracer, 'connection.closeConnection', () => viewSyncer.closeConnection(this.#syncContext, msg));
|
|
106
|
+
break;
|
|
104
107
|
default:
|
|
105
108
|
unreachable(msgType);
|
|
106
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncer-ws-message-handler.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/syncer-ws-message-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"syncer-ws-message-handler.js","sourceRoot":"","sources":["../../../../../zero-cache/src/workers/syncer-ws-message-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAGpC,OAAO,EAAC,cAAc,EAAE,SAAS,EAAC,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAC,OAAO,EAAC,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,+CAA+C,CAAC;AAa3E,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AAE5D,MAAM,OAAO,sBAAsB;IACxB,WAAW,CAAa;IACxB,QAAQ,CAAU;IAClB,aAAa,CAAO;IACpB,GAAG,CAAa;IAChB,SAAS,CAAyB;IAClC,cAAc,CAAS;IACvB,YAAY,CAAc;IAC1B,OAAO,CAAqB;IAC5B,MAAM,CAAqB;IAEpC,YACE,EAAc,EACd,aAA4B,EAC5B,SAAgC,EAChC,UAAsB,EACtB,OAAgB,EAChB,MAA0B;QAE1B,MAAM,EACJ,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,eAAe,EACf,aAAa,GACd,GAAG,aAAa,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,IAAI,IAAI,EAAE,CAAC;QAChC,IAAI,CAAC,GAAG,GAAG,EAAE;aACV,WAAW,CAAC,YAAY,CAAC;aACzB,WAAW,CAAC,UAAU,EAAE,QAAQ,CAAC;aACjC,WAAW,CAAC,eAAe,EAAE,aAAa,CAAC;aAC3C,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,OAAO,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG;YAClB,QAAQ;YACR,IAAI;YACJ,UAAU;YACV,eAAe;YACf,aAAa;YACb,SAAS;SACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAa;QAC/B,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACpB,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM;gBACT,EAAE,CAAC,KAAK,EAAE,CAAC,+BAA+B,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,MAAM;gBACT,EAAE,CAAC,KAAK,EAAE,CAAC,+BAA+B,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,OAAO,cAAc,CACnB,MAAM,EACN,iBAAiB,EACjB,KAAK,IAAI,EAAE;oBACT,MAAM,EAAC,aAAa,EAAE,SAAS,EAAE,aAAa,EAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;oBACzD,IAAI,aAAa,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;wBAC1C,OAAO;4BACL,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE;gCACL,IAAI,EAAE,SAAS,CAAC,WAAW;gCAC3B,OAAO,EACL,8BAA8B,aAAa,mBAAmB;oCAC9D,gCAAgC,IAAI,CAAC,cAAc,EAAE;6BACxD;yBACsB,CAAC;oBAC5B,CAAC;oBAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC9C,kDAAkD;wBAClD,+BAA+B;wBAC/B,mEAAmE;wBACnE,OAAO,EAAC,IAAI,EAAE,IAAI,EAAyB,CAAC;oBAC9C,CAAC;oBAED,mEAAmE;oBACnE,yEAAyE;oBACzE,+EAA+E;oBAC/E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;wBACvD,MAAM,MAAM,GAAgB,EAAE,CAAC;wBAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;4BACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CACpD,QAAQ,EACR,IAAI,CAAC,SAAS,EACd,aAAa,CACd,CAAC;4BACF,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gCAC7B,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;4BAC7D,CAAC;wBACH,CAAC;wBACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACtB,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAyB,CAAC;wBAC7D,CAAC;wBACD,OAAO,EAAC,IAAI,EAAE,IAAI,EAAyB,CAAC;oBAC9C,CAAC,CAAC,CAAC;oBACH,OAAO,GAAG,CAAC;gBACb,CAAC,CACF,CAAC;YACJ,CAAC;YACD,KAAK,sBAAsB;gBACzB,MAAM,cAAc,CAAC,MAAM,EAAE,iCAAiC,EAAE,GAAG,EAAE,CACnE,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CACxD,CAAC;gBACF,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,cAAc,CAAC,MAAM,EAAE,0BAA0B,EAAE,GAAG,EAAE,CAC5D,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CACjD,CAAC;gBACF,MAAM;YACR,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,qDAAqD;gBACrD,MAAM,MAAM,GAAG,MAAM,SAAS,CAC5B,MAAM,EACN,2BAA2B,EAC3B,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CACxD,CAAC;gBACF,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,MAAM;iBACP,CAAC;YACJ,CAAC;YACD,KAAK,iBAAiB;gBACpB,MAAM,cAAc,CAAC,MAAM,EAAE,4BAA4B,EAAE,GAAG,EAAE,CAC9D,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CACnD,CAAC;gBACF,MAAM;YAER;gBACE,WAAW,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -3,16 +3,7 @@ import type { ReadonlyJSONValue } from '../../../shared/src/json.ts';
|
|
|
3
3
|
import type { ClientID } from '../types/client-state.ts';
|
|
4
4
|
import type { WriteTransaction } from './replicache-types.ts';
|
|
5
5
|
import type { IVMSourceRepo } from './ivm-source-repo.ts';
|
|
6
|
-
import type { SchemaCRUD, SchemaQuery,
|
|
7
|
-
/**
|
|
8
|
-
* An instance of this is passed to custom mutator implementations and
|
|
9
|
-
* allows reading and writing to the database and IVM at the head
|
|
10
|
-
* at which the mutator is being applied.
|
|
11
|
-
*/
|
|
12
|
-
export interface Transaction<S extends Schema> extends TransactionBase<S> {
|
|
13
|
-
readonly location: 'client';
|
|
14
|
-
readonly reason: 'optimistic' | 'rebase';
|
|
15
|
-
}
|
|
6
|
+
import type { ClientTransaction, SchemaCRUD, SchemaQuery, Transaction } from '../../../zql/src/mutate/custom.ts';
|
|
16
7
|
/**
|
|
17
8
|
* The shape which a user's custom mutator definitions must conform to.
|
|
18
9
|
*/
|
|
@@ -39,7 +30,7 @@ export type MakeCustomMutatorInterfaces<S extends Schema, MD extends CustomMutat
|
|
|
39
30
|
};
|
|
40
31
|
};
|
|
41
32
|
export type MakeCustomMutatorInterface<S extends Schema, F> = F extends (tx: Transaction<S>, ...args: infer Args) => Promise<void> ? (...args: Args) => Promise<void> : never;
|
|
42
|
-
export declare class TransactionImpl implements
|
|
33
|
+
export declare class TransactionImpl implements ClientTransaction<Schema> {
|
|
43
34
|
constructor(repTx: WriteTransaction, schema: Schema, ivmSourceRepo: IVMSourceRepo);
|
|
44
35
|
readonly clientID: ClientID;
|
|
45
36
|
readonly mutationID: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/custom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oDAAoD,CAAC;AAE/E,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAkB,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAIzE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/custom.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oDAAoD,CAAC;AAE/E,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAkB,aAAa,EAAC,MAAM,sBAAsB,CAAC;AAIzE,OAAO,KAAK,EACV,iBAAiB,EAGjB,UAAU,EACV,WAAW,EAEX,WAAW,EAGZ,MAAM,mCAAmC,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI;IAChD,QAAQ,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACtC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC9C;CACF,GAAG;IAGF,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACrC,CAAC;CACH,CAAC;AAGF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,GAAG,GAAG,IAAI,CAC7D,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAGlB,IAAI,EAAE,KAAK,KACR,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB;;;;;;GAMG;AACH,MAAM,MAAM,2BAA2B,CACrC,CAAC,SAAS,MAAM,EAChB,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,IAC7B;IACF,QAAQ,EAAE,KAAK,IAAI,MAAM,EAAE,GAAG;QAC5B,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,0BAA0B,CACzD,CAAC,EACD,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACb;KACF;CACF,CAAC;AAEF,MAAM,MAAM,0BAA0B,CACpC,CAAC,SAAS,MAAM,EAEhB,CAAC,IACC,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GACpE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAChC,KAAK,CAAC;AAEV,qBAAa,eAAgB,YAAW,iBAAiB,CAAC,MAAM,CAAC;gBAE7D,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa;IAsB9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAAC;IACzC,QAAQ,CAAC,QAAQ,YAAY;IAC7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAClC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,WAEb,gBAAgB,QAAQ,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAAC,CAIzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zero.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/zero.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAgB,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAC,KAAK,QAAQ,EAAW,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EACL,cAAc,EAEf,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAC,MAAM,EAAe,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAC,MAAM,EAAe,MAAM,mCAAmC,CAAC;AAE5E,OAAO,KAAK,EACV,aAAa,EACb,QAAQ,EACT,MAAM,qCAAqC,CAAC;AAG7C,OAAO,KAAK,EACV,WAAW,EAEZ,MAAM,kCAAkC,CAAC;AAO1C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"zero.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/zero.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,4 +28,5 @@ export type { CustomMutatorDefs, CustomMutatorImpl } from './client/custom.ts';
|
|
|
28
28
|
export type { DeleteID, InsertValue, UpdateValue, UpsertValue, } from '../../zql/src/mutate/custom.ts';
|
|
29
29
|
export type { ZeroOptions } from './client/options.ts';
|
|
30
30
|
export { Zero } from './client/zero.ts';
|
|
31
|
+
export type { ServerTransaction, Transaction, } from '../../zql/src/mutate/custom.ts';
|
|
31
32
|
//# sourceMappingURL=mod.d.ts.map
|