@rocicorp/zero 0.24.2025100400 → 0.24.2025100801

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.
Files changed (79) hide show
  1. package/out/analyze-query/src/bin-analyze.d.ts.map +1 -1
  2. package/out/analyze-query/src/bin-analyze.js +4 -3
  3. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  4. package/out/analyze-query/src/run-ast.d.ts.map +1 -1
  5. package/out/analyze-query/src/run-ast.js +12 -4
  6. package/out/analyze-query/src/run-ast.js.map +1 -1
  7. package/out/{chunk-DPY6BGZO.js → chunk-IEDJQDZ2.js} +3 -3
  8. package/out/{chunk-YXYKEMHQ.js → chunk-INWZY4XP.js} +8 -3
  9. package/out/chunk-INWZY4XP.js.map +7 -0
  10. package/out/{chunk-SBHBYH27.js → chunk-Y6JQACOR.js} +4 -4
  11. package/out/{chunk-SBHBYH27.js.map → chunk-Y6JQACOR.js.map} +2 -2
  12. package/out/{lazy-inspector-A5VQLZYJ.js → lazy-inspector-T5SHTECY.js} +2 -2
  13. package/out/react.js +2 -2
  14. package/out/solid.js +3 -3
  15. package/out/zero/package.json +10 -6
  16. package/out/zero/src/adapters/drizzle.d.ts +2 -0
  17. package/out/zero/src/adapters/drizzle.d.ts.map +1 -0
  18. package/out/zero/src/adapters/drizzle.js +2 -0
  19. package/out/zero/src/adapters/drizzle.js.map +1 -0
  20. package/out/zero/src/adapters/pg.d.ts +2 -0
  21. package/out/zero/src/adapters/pg.d.ts.map +1 -0
  22. package/out/zero/src/adapters/pg.js +2 -0
  23. package/out/zero/src/adapters/pg.js.map +1 -0
  24. package/out/zero/src/zero-cache-dev.js +10 -4
  25. package/out/zero/src/zero-cache-dev.js.map +1 -1
  26. package/out/zero-cache/src/scripts/deploy-permissions.js +1 -1
  27. package/out/zero-cache/src/services/mutagen/error.d.ts +4 -0
  28. package/out/zero-cache/src/services/mutagen/error.d.ts.map +1 -0
  29. package/out/zero-cache/src/services/mutagen/error.js +8 -0
  30. package/out/zero-cache/src/services/mutagen/error.js.map +1 -0
  31. package/out/zero-cache/src/services/mutagen/mutagen.d.ts +0 -3
  32. package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
  33. package/out/zero-cache/src/services/mutagen/mutagen.js +1 -6
  34. package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
  35. package/out/zero-cache/src/services/mutagen/pusher.d.ts +6 -0
  36. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  37. package/out/zero-protocol/src/analyze-query-result.d.ts +5 -0
  38. package/out/zero-protocol/src/analyze-query-result.d.ts.map +1 -1
  39. package/out/zero-protocol/src/analyze-query-result.js +5 -0
  40. package/out/zero-protocol/src/analyze-query-result.js.map +1 -1
  41. package/out/zero-protocol/src/down.d.ts +3 -0
  42. package/out/zero-protocol/src/down.d.ts.map +1 -1
  43. package/out/zero-protocol/src/inspect-down.d.ts +9 -0
  44. package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
  45. package/out/zero-protocol/src/protocol-version.d.ts +1 -1
  46. package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
  47. package/out/zero-protocol/src/protocol-version.js +2 -1
  48. package/out/zero-protocol/src/protocol-version.js.map +1 -1
  49. package/out/zero-server/src/adapters/drizzle.d.ts +64 -0
  50. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -0
  51. package/out/zero-server/src/adapters/drizzle.js +109 -0
  52. package/out/zero-server/src/adapters/drizzle.js.map +1 -0
  53. package/out/zero-server/src/adapters/pg.d.ts +53 -0
  54. package/out/zero-server/src/adapters/pg.d.ts.map +1 -0
  55. package/out/zero-server/src/adapters/pg.js +79 -0
  56. package/out/zero-server/src/adapters/pg.js.map +1 -0
  57. package/out/zero-server/src/adapters/postgresjs.d.ts +41 -12
  58. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  59. package/out/zero-server/src/adapters/postgresjs.js +27 -10
  60. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  61. package/out/zero-server/src/process-mutations.js +1 -1
  62. package/out/zero-server/src/process-mutations.js.map +1 -1
  63. package/out/zero.js +3 -3
  64. package/out/zqlite/src/table-source.d.ts +1 -1
  65. package/out/zqlite/src/table-source.d.ts.map +1 -1
  66. package/out/zqlite/src/table-source.js +21 -8
  67. package/out/zqlite/src/table-source.js.map +1 -1
  68. package/package.json +10 -6
  69. package/out/chunk-YXYKEMHQ.js.map +0 -7
  70. package/out/zero/src/adapters/drizzle-pg.d.ts +0 -2
  71. package/out/zero/src/adapters/drizzle-pg.d.ts.map +0 -1
  72. package/out/zero/src/adapters/drizzle-pg.js +0 -2
  73. package/out/zero/src/adapters/drizzle-pg.js.map +0 -1
  74. package/out/zero-server/src/adapters/drizzle-pg.d.ts +0 -22
  75. package/out/zero-server/src/adapters/drizzle-pg.d.ts.map +0 -1
  76. package/out/zero-server/src/adapters/drizzle-pg.js +0 -39
  77. package/out/zero-server/src/adapters/drizzle-pg.js.map +0 -1
  78. /package/out/{chunk-DPY6BGZO.js.map → chunk-IEDJQDZ2.js.map} +0 -0
  79. /package/out/{lazy-inspector-A5VQLZYJ.js.map → lazy-inspector-T5SHTECY.js.map} +0 -0
@@ -0,0 +1,109 @@
1
+ import { sql } from 'drizzle-orm';
2
+ import { ZQLDatabase } from "../zql-database.js";
3
+ export class DrizzleConnection {
4
+ #drizzle;
5
+ constructor(drizzle) {
6
+ this.#drizzle = drizzle;
7
+ }
8
+ transaction(fn) {
9
+ return this.#drizzle.transaction(drizzleTx => fn(new DrizzleInternalTransaction(drizzleTx)));
10
+ }
11
+ }
12
+ class DrizzleInternalTransaction {
13
+ wrappedTransaction;
14
+ constructor(drizzleTx) {
15
+ this.wrappedTransaction = drizzleTx;
16
+ }
17
+ async query(sql, params) {
18
+ const stmt = fromDollarParams(sql, params);
19
+ const result = await this.wrappedTransaction.execute(stmt);
20
+ return toIterableRows(result);
21
+ }
22
+ }
23
+ /**
24
+ * Turn `$1, $2...` placeholders into a Drizzle SQL object with bound params.
25
+ */
26
+ export function fromDollarParams(text, params) {
27
+ const re = /\$(\d+)/g;
28
+ const s = sql.empty();
29
+ let last = 0;
30
+ let m;
31
+ while ((m = re.exec(text)) !== null) {
32
+ const idx = Number(m[1]) - 1;
33
+ if (idx < 0 || idx >= params.length) {
34
+ throw new Error(`Missing param for $${m[1]}`);
35
+ }
36
+ if (m.index > last)
37
+ s.append(sql.raw(text.slice(last, m.index)));
38
+ s.append(sql `${params[idx]}`); // parameterized value
39
+ last = m.index + m[0].length;
40
+ }
41
+ if (last < text.length)
42
+ s.append(sql.raw(text.slice(last)));
43
+ return s;
44
+ }
45
+ function isIterable(value) {
46
+ return (value != null &&
47
+ typeof value[Symbol.iterator] === 'function');
48
+ }
49
+ export function toIterableRows(result) {
50
+ if (result === null || result === undefined) {
51
+ return [];
52
+ }
53
+ if (Array.isArray(result)) {
54
+ return result;
55
+ }
56
+ if (isIterable(result)) {
57
+ return result;
58
+ }
59
+ if (typeof result === 'object') {
60
+ const rows = result.rows;
61
+ if (rows === null || rows === undefined) {
62
+ return [];
63
+ }
64
+ if (Array.isArray(rows)) {
65
+ return rows;
66
+ }
67
+ if (isIterable(rows)) {
68
+ return rows;
69
+ }
70
+ }
71
+ throw new TypeError('Drizzle query result is not iterable');
72
+ }
73
+ /**
74
+ * Wrap a `drizzle-orm` database for Zero ZQL.
75
+ *
76
+ * Provides ZQL querying plus access to the underlying drizzle transaction.
77
+ * Use {@link DrizzleTransaction} to type your server mutator transaction.
78
+ *
79
+ * @param schema - Zero schema.
80
+ * @param client - Drizzle database.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * import {Pool} from 'pg';
85
+ * import {drizzle} from 'drizzle-orm/node-postgres';
86
+ * import type {ServerTransaction} from '@rocicorp/zero';
87
+ *
88
+ * const pool = new Pool({connectionString: process.env.ZERO_UPSTREAM_DB!});
89
+ * const drizzleDb = drizzle(pool, {schema: drizzleSchema});
90
+ *
91
+ * const zql = zeroDrizzle(schema, drizzleDb);
92
+ *
93
+ * // Define the server mutator transaction type using the helper
94
+ * type ServerTx = ServerTransaction<Schema, DrizzleTransaction<typeof drizzleDb>>;
95
+ *
96
+ * async function createUser(
97
+ * tx: ServerTx,
98
+ * {id, name}: {id: string; name: string},
99
+ * ) {
100
+ * await tx.dbTransaction.wrappedTransaction
101
+ * .insert(drizzleSchema.user)
102
+ * .values({id, name})
103
+ * }
104
+ * ```
105
+ */
106
+ export function zeroDrizzle(schema, client) {
107
+ return new ZQLDatabase(new DrizzleConnection(client), schema);
108
+ }
109
+ //# sourceMappingURL=drizzle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../../../../zero-server/src/adapters/drizzle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { Schema } from '../../../zero-schema/src/builder/schema-builder.ts';
2
+ import type { DBConnection, DBTransaction, Row } from '../../../zql/src/mutate/custom.ts';
3
+ import { Client, Pool, type PoolClient } from 'pg';
4
+ import { ZQLDatabase } from '../zql-database.ts';
5
+ /**
6
+ * Helper type for the wrapped transaction used by node-postgres.
7
+ *
8
+ * @remarks Use with `ServerTransaction` as `ServerTransaction<Schema, NodePgTransaction>`.
9
+ */
10
+ export type NodePgTransaction = Pool | PoolClient | Client;
11
+ export declare class NodePgConnection implements DBConnection<NodePgTransaction> {
12
+ #private;
13
+ constructor(pool: NodePgTransaction);
14
+ transaction<TRet>(fn: (tx: DBTransaction<NodePgTransaction>) => Promise<TRet>): Promise<TRet>;
15
+ }
16
+ export declare class NodePgTransactionInternal implements DBTransaction<NodePgTransaction> {
17
+ readonly wrappedTransaction: NodePgTransaction;
18
+ constructor(client: NodePgTransaction);
19
+ query(sql: string, params: unknown[]): Promise<Row[]>;
20
+ }
21
+ /**
22
+ * Wrap a `pg` Pool for Zero ZQL.
23
+ *
24
+ * Provides ZQL querying plus access to the underlying node-postgres client.
25
+ * Use {@link NodePgTransaction} to type your server mutator transaction.
26
+ *
27
+ * @param schema - Zero schema.
28
+ * @param pg - `pg` Pool or connection string.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * import {Pool} from 'pg';
33
+ *
34
+ * const pool = new Pool({connectionString: process.env.ZERO_UPSTREAM_DB!});
35
+ * const zql = zeroNodePg(schema, pool);
36
+ *
37
+ * // Define the server mutator transaction type using the helper
38
+ * type ServerTx = ServerTransaction<
39
+ * Schema,
40
+ * NodePgTransaction
41
+ * >;
42
+ *
43
+ * async function createUser(
44
+ * tx: ServerTx,
45
+ * {id, name}: {id: string; name: string},
46
+ * ) {
47
+ * await tx.dbTransaction.wrappedTransaction
48
+ * .query('SELECT * FROM "user" WHERE id = $1', [id]);
49
+ * }
50
+ * ```
51
+ */
52
+ export declare function zeroNodePg<S extends Schema>(schema: S, pg: NodePgTransaction | string): ZQLDatabase<S, NodePgTransaction>;
53
+ //# sourceMappingURL=pg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../../../../zero-server/src/adapters/pg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oDAAoD,CAAC;AAC/E,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,GAAG,EACJ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,KAAK,UAAU,EAAC,MAAM,IAAI,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,CAAC;AAE3D,qBAAa,gBAAiB,YAAW,YAAY,CAAC,iBAAiB,CAAC;;gBAE1D,IAAI,EAAE,iBAAiB;IAI7B,WAAW,CAAC,IAAI,EACpB,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,iBAAiB,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAC1D,OAAO,CAAC,IAAI,CAAC;CAqBjB;AAED,qBAAa,yBACX,YAAW,aAAa,CAAC,iBAAiB,CAAC;IAE3C,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;gBACnC,MAAM,EAAE,iBAAiB;IAI/B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAI5D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EACzC,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,iBAAiB,GAAG,MAAM,qCAM/B"}
@@ -0,0 +1,79 @@
1
+ import { Client, Pool } from 'pg';
2
+ import { ZQLDatabase } from "../zql-database.js";
3
+ export class NodePgConnection {
4
+ #pool;
5
+ constructor(pool) {
6
+ this.#pool = pool;
7
+ }
8
+ async transaction(fn) {
9
+ const client = this.#pool instanceof Pool ? await this.#pool.connect() : this.#pool;
10
+ try {
11
+ await client.query('BEGIN');
12
+ const result = await fn(new NodePgTransactionInternal(client));
13
+ await client.query('COMMIT');
14
+ return result;
15
+ }
16
+ catch (error) {
17
+ try {
18
+ await client.query('ROLLBACK');
19
+ }
20
+ catch {
21
+ // ignore rollback error; original error will be thrown
22
+ }
23
+ throw error;
24
+ }
25
+ finally {
26
+ if (this.#pool instanceof Pool && 'release' in client) {
27
+ client.release();
28
+ }
29
+ }
30
+ }
31
+ }
32
+ export class NodePgTransactionInternal {
33
+ wrappedTransaction;
34
+ constructor(client) {
35
+ this.wrappedTransaction = client;
36
+ }
37
+ async query(sql, params) {
38
+ const res = await this.wrappedTransaction.query(sql, params);
39
+ return res.rows;
40
+ }
41
+ }
42
+ /**
43
+ * Wrap a `pg` Pool for Zero ZQL.
44
+ *
45
+ * Provides ZQL querying plus access to the underlying node-postgres client.
46
+ * Use {@link NodePgTransaction} to type your server mutator transaction.
47
+ *
48
+ * @param schema - Zero schema.
49
+ * @param pg - `pg` Pool or connection string.
50
+ *
51
+ * @example
52
+ * ```ts
53
+ * import {Pool} from 'pg';
54
+ *
55
+ * const pool = new Pool({connectionString: process.env.ZERO_UPSTREAM_DB!});
56
+ * const zql = zeroNodePg(schema, pool);
57
+ *
58
+ * // Define the server mutator transaction type using the helper
59
+ * type ServerTx = ServerTransaction<
60
+ * Schema,
61
+ * NodePgTransaction
62
+ * >;
63
+ *
64
+ * async function createUser(
65
+ * tx: ServerTx,
66
+ * {id, name}: {id: string; name: string},
67
+ * ) {
68
+ * await tx.dbTransaction.wrappedTransaction
69
+ * .query('SELECT * FROM "user" WHERE id = $1', [id]);
70
+ * }
71
+ * ```
72
+ */
73
+ export function zeroNodePg(schema, pg) {
74
+ if (typeof pg === 'string') {
75
+ pg = new Pool({ connectionString: pg });
76
+ }
77
+ return new ZQLDatabase(new NodePgConnection(pg), schema);
78
+ }
79
+ //# sourceMappingURL=pg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../../zero-server/src/adapters/pg.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAkB,MAAM,IAAI,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAS/C,MAAM,OAAO,gBAAgB;IAClB,KAAK,CAAoB;IAClC,YAAY,IAAuB;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,EAA2D;QAE3D,MAAM,MAAM,GACV,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/D,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACP,uDAAuD;YACzD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,KAAK,YAAY,IAAI,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACtD,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,yBAAyB;IAG3B,kBAAkB,CAAoB;IAC/C,YAAY,MAAyB;QACnC,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,MAAiB;QACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,MAAmB,CAAC,CAAC;QAC1E,OAAO,GAAG,CAAC,IAAa,CAAC;IAC3B,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,UAAU,CACxB,MAAS,EACT,EAA8B;IAE9B,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,EAAE,GAAG,IAAI,IAAI,CAAC,EAAC,gBAAgB,EAAE,EAAE,EAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,WAAW,CAAC,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC3D,CAAC"}
@@ -1,25 +1,54 @@
1
1
  import type { Schema } from '../../../zero-schema/src/builder/schema-builder.ts';
2
- import type { DBConnection, DBTransaction } from '../../../zql/src/mutate/custom.ts';
2
+ import type { DBConnection, DBTransaction, Row } from '../../../zql/src/mutate/custom.ts';
3
3
  import postgres from 'postgres';
4
4
  import { ZQLDatabase } from '../zql-database.ts';
5
- export declare class PostgresJSConnection<T extends Record<string, unknown>> implements DBConnection<postgres.TransactionSql<T>> {
5
+ /**
6
+ * Helper type for the wrapped transaction used by postgres.js.
7
+ *
8
+ * @typeParam T - The row-shape context bound to the postgres.js client.
9
+ * @remarks Use with `ServerTransaction` as `ServerTransaction<Schema, PostgresJsTransaction>`.
10
+ */
11
+ export type PostgresJsTransaction<T extends Record<string, unknown> = Record<string, unknown>> = postgres.TransactionSql<T>;
12
+ export declare class PostgresJSConnection<T extends Record<string, unknown>> implements DBConnection<PostgresJsTransaction<T>> {
6
13
  #private;
7
14
  constructor(pg: postgres.Sql<T>);
8
- transaction<TRet>(fn: (tx: DBTransaction<postgres.TransactionSql<T>>) => Promise<TRet>): Promise<TRet>;
15
+ transaction<TRet>(fn: (tx: DBTransaction<PostgresJsTransaction<T>>) => Promise<TRet>): Promise<TRet>;
16
+ }
17
+ export declare class PostgresJsTransactionInternal<T extends Record<string, unknown>> implements DBTransaction<PostgresJsTransaction<T>> {
18
+ readonly wrappedTransaction: PostgresJsTransaction<T>;
19
+ constructor(pgTx: PostgresJsTransaction<T>);
20
+ query(sql: string, params: unknown[]): Promise<Row[]>;
9
21
  }
10
22
  /**
11
- * Example usage:
23
+ * Wrap a `postgres` client for Zero ZQL.
24
+ *
25
+ * Provides ZQL querying plus access to the underlying postgres.js transaction.
26
+ * Use {@link PostgresJsTransaction} to type your server mutator transaction.
27
+ *
28
+ * @param schema - Zero schema.
29
+ * @param pg - `postgres` client or connection string.
30
+ *
31
+ * @example
12
32
  * ```ts
13
33
  * import postgres from 'postgres';
14
- * const processor = new PushProcessor(
15
- * zeroPostgresJS(schema, postgres(process.env.ZERO_UPSTREAM_DB as string)),
16
- * );
17
34
  *
18
- * // within your custom mutators you can do:
19
- * const tx = tx.wrappedTransaction();
20
- * // to get ahold of the underlying postgres.js transaction
21
- * // and then drop down to raw SQL if needed.
35
+ * const sql = postgres(process.env.ZERO_UPSTREAM_DB!);
36
+ * const zql = zeroPostgresJS(schema, sql);
37
+ *
38
+ * // Define the server mutator transaction type using the helper
39
+ * type ServerTx = ServerTransaction<
40
+ * Schema,
41
+ * PostgresJsTransaction
42
+ * >;
43
+ *
44
+ * async function createUser(
45
+ * tx: ServerTx,
46
+ * {id, name}: {id: string; name: string},
47
+ * ) {
48
+ * await tx.dbTransaction.wrappedTransaction
49
+ * .unsafe('INSERT INTO "user" (id, name) VALUES ($1, $2)', [id, name]);
50
+ * }
22
51
  * ```
23
52
  */
24
- export declare function zeroPostgresJS<S extends Schema, T extends Record<string, unknown> = Record<string, unknown>>(schema: S, pg: postgres.Sql<T> | string): ZQLDatabase<S, postgres.TransactionSql<T>>;
53
+ export declare function zeroPostgresJS<S extends Schema, T extends Record<string, unknown> = Record<string, unknown>>(schema: S, pg: postgres.Sql<T> | string): ZQLDatabase<S, PostgresJsTransaction<T>>;
25
54
  //# sourceMappingURL=postgresjs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"postgresjs.d.ts","sourceRoot":"","sources":["../../../../../zero-server/src/adapters/postgresjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oDAAoD,CAAC;AAC/E,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAEd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAE/C,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACjE,YAAW,YAAY,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;;gBAGvC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAI/B,WAAW,CAAC,IAAI,EACd,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GACnE,OAAO,CAAC,IAAI,CAAC;CAGjB;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,8CAKxC"}
1
+ {"version":3,"file":"postgresjs.d.ts","sourceRoot":"","sources":["../../../../../zero-server/src/adapters/postgresjs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oDAAoD,CAAC;AAC/E,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,GAAG,EACJ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,CAC/B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACzD,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAE/B,qBAAa,oBAAoB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACjE,YAAW,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;;gBAGrC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAI/B,WAAW,CAAC,IAAI,EACd,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GACjE,OAAO,CAAC,IAAI,CAAC;CAKjB;AAED,qBAAa,6BAA6B,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC1E,YAAW,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAElD,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAI1C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;CAGtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,cAAc,CAC5B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,4CAKxC"}
@@ -6,10 +6,10 @@ export class PostgresJSConnection {
6
6
  this.#pg = pg;
7
7
  }
8
8
  transaction(fn) {
9
- return this.#pg.begin(pgTx => fn(new Transaction(pgTx)));
9
+ return this.#pg.begin(pgTx => fn(new PostgresJsTransactionInternal(pgTx)));
10
10
  }
11
11
  }
12
- class Transaction {
12
+ export class PostgresJsTransactionInternal {
13
13
  wrappedTransaction;
14
14
  constructor(pgTx) {
15
15
  this.wrappedTransaction = pgTx;
@@ -19,17 +19,34 @@ class Transaction {
19
19
  }
20
20
  }
21
21
  /**
22
- * Example usage:
22
+ * Wrap a `postgres` client for Zero ZQL.
23
+ *
24
+ * Provides ZQL querying plus access to the underlying postgres.js transaction.
25
+ * Use {@link PostgresJsTransaction} to type your server mutator transaction.
26
+ *
27
+ * @param schema - Zero schema.
28
+ * @param pg - `postgres` client or connection string.
29
+ *
30
+ * @example
23
31
  * ```ts
24
32
  * import postgres from 'postgres';
25
- * const processor = new PushProcessor(
26
- * zeroPostgresJS(schema, postgres(process.env.ZERO_UPSTREAM_DB as string)),
27
- * );
28
33
  *
29
- * // within your custom mutators you can do:
30
- * const tx = tx.wrappedTransaction();
31
- * // to get ahold of the underlying postgres.js transaction
32
- * // and then drop down to raw SQL if needed.
34
+ * const sql = postgres(process.env.ZERO_UPSTREAM_DB!);
35
+ * const zql = zeroPostgresJS(schema, sql);
36
+ *
37
+ * // Define the server mutator transaction type using the helper
38
+ * type ServerTx = ServerTransaction<
39
+ * Schema,
40
+ * PostgresJsTransaction
41
+ * >;
42
+ *
43
+ * async function createUser(
44
+ * tx: ServerTx,
45
+ * {id, name}: {id: string; name: string},
46
+ * ) {
47
+ * await tx.dbTransaction.wrappedTransaction
48
+ * .unsafe('INSERT INTO "user" (id, name) VALUES ($1, $2)', [id, name]);
49
+ * }
33
50
  * ```
34
51
  */
35
52
  export function zeroPostgresJS(schema, pg) {
@@ -1 +1 @@
1
- {"version":3,"file":"postgresjs.js","sourceRoot":"","sources":["../../../../../zero-server/src/adapters/postgresjs.ts"],"names":[],"mappings":"AAOA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAE/C,MAAM,OAAO,oBAAoB;IAGtB,GAAG,CAAkB;IAC9B,YAAY,EAAmB;QAC7B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,WAAW,CACT,EAAoE;QAEpE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAkB,CAAC;IAC5E,CAAC;CACF;AAED,MAAM,WAAW;IAGN,kBAAkB,CAA6B;IACxD,YAAY,IAAgC;QAC1C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,MAAiB;QAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAqB,CAAC,CAAC;IACpE,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAG5B,MAAS,EAAE,EAA4B;IACvC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAoB,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,WAAW,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"postgresjs.js","sourceRoot":"","sources":["../../../../../zero-server/src/adapters/postgresjs.ts"],"names":[],"mappings":"AAOA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAY/C,MAAM,OAAO,oBAAoB;IAGtB,GAAG,CAAkB;IAC9B,YAAY,EAAmB;QAC7B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,WAAW,CACT,EAAkE;QAElE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAC3B,EAAE,CAAC,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAC3B,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,6BAA6B;IAG/B,kBAAkB,CAA2B;IACtD,YAAY,IAA8B;QACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,MAAiB;QAClC,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAqB,CAAC,CAAC;IACpE,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,cAAc,CAG5B,MAAS,EAAE,EAA4B;IACvC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAoB,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,WAAW,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { pushBodySchema, pushParamsSchema, } from "../../zero-protocol/src/push.js";
2
2
  import * as v from "../../shared/src/valita.js";
3
- import { MutationAlreadyProcessedError } from "../../zero-cache/src/services/mutagen/mutagen.js";
3
+ import { MutationAlreadyProcessedError } from "../../zero-cache/src/services/mutagen/error.js";
4
4
  import { createLogContext } from "./logging.js";
5
5
  import { assert } from "../../shared/src/asserts.js";
6
6
  export async function handleMutationRequest(cb, queryOrQueryString, body, logLevel) {
@@ -1 +1 @@
1
- {"version":3,"file":"process-mutations.js","sourceRoot":"","sources":["../../../../zero-server/src/process-mutations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-mutations.js","sourceRoot":"","sources":["../../../../zero-server/src/process-mutations.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,gBAAgB,GAMjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAC,6BAA6B,EAAC,MAAM,gDAAgD,CAAC;AAC7F,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAC,MAAM,EAAC,MAAM,6BAA6B,CAAC;AAsEnD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAG8B,EAC9B,kBAAsE,EACtE,IAAmC,EACnC,QAA+B;IAE/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,kBAAkB,YAAY,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtE,QAAQ,GAAG,IAAgB,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,MAAM,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,WAAqD,CAAC;IAC1D,IAAI,kBAAkB,YAAY,OAAO,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC5C,WAAW,GAAG,GAAG,CAAC,YAAY,CAAC;QAE/B,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,kBAAkB,CAAC;IACnC,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC1C,IAAI,WAAW,YAAY,eAAe,EAAE,CAAC;QAC3C,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;IAE1E,IAAI,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,KAAK,EAAE,wBAAwB;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAE9D,MAAM,SAAS,GAAuB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,0BAA0B,CAAC,CAAC;QAExD,MAAM,GAAG,GAAG,MAAM,EAAE,CAClB,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,EAAE,OAAO,CAAC,EACpE,CAAC,CACF,CAAC;QACF,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEpB,2DAA2D;QAC3D,oFAAoF;QACpF,4CAA4C;QAC5C,IAAI,OAAO,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YAChE,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,SAAS;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU;IACL,IAAI,CAAW;IACf,OAAO,CAAS;IAChB,GAAG,CAAa;IAEzB,YAAY,GAAa,EAAE,MAAc,EAAE,QAAkB;QAC3D,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACrE,CAAC;IAED,QAAQ,GAAG,KAAK,EACd,UAAa,EACb,QAAwB,EACxB,EAAyB,EACE,EAAE;QAC7B,IAAI,WAAW,GAAY,SAAS,CAAC;QACrC,SAAS,CAAC;YACR,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAClC,UAAU,EACV,QAAQ,EACR,EAAE,EACF,WAAW,CACZ,CAAC;gBACF,6CAA6C;gBAC7C,wDAAwD;gBACxD,eAAe;gBACf,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CACb,YAAY,QAAQ,CAAC,EAAE,eAAe,QAAQ,CAAC,QAAQ,gCAAgC,WAAW,EAAE,CACrG,CAAC;oBACF,OAAO,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACrD,CAAC;gBAED,OAAO,GAAG,CAAC;YACb,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,kBAAkB,EAAE,CAAC;oBACpC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;oBACpB,OAAO;wBACL,EAAE,EAAE;4BACF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;4BAC3B,EAAE,EAAE,QAAQ,CAAC,EAAE;yBAChB;wBACD,MAAM,EAAE;4BACN,KAAK,EAAE,aAAa;4BACpB,OAAO,EAAE,CAAC,CAAC,OAAO;yBACnB;qBACF,CAAC;gBACJ,CAAC;gBAED,IAAI,CAAC,YAAY,6BAA6B,EAAE,CAAC;oBAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACnB,OAAO;wBACL,EAAE,EAAE;4BACF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;4BAC3B,EAAE,EAAE,QAAQ,CAAC,EAAE;yBAChB;wBACD,MAAM,EAAE;4BACN,KAAK,EAAE,kBAAkB;4BACzB,OAAO,EAAE,CAAC,CAAC,OAAO;yBACnB;qBACF,CAAC;gBACJ,CAAC;gBAED,iDAAiD;gBACjD,qDAAqD;gBACrD,2DAA2D;gBAC3D,gBAAgB;gBAChB,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAM,CAAC,CAAC;gBACV,CAAC;gBAED,WAAW,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CACd,wCAAwC,QAAQ,CAAC,EAAE,eAAe,QAAQ,CAAC,QAAQ,EAAE,EACrF,CAAC,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,aAAa,CACX,UAAa,EACb,QAAwB,EACxB,EAAyB,EACzB,WAAoB;QAEpB,OAAO,UAAU,CAAC,WAAW,CAC3B,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE;YAC/B,MAAM,IAAI,CAAC,gCAAgC,CACzC,gBAAgB,EAChB,QAAQ,CAAC,QAAQ,EACjB,QAAQ,CAAC,EAAE,CACZ,CAAC;YAEF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBAC7D,MAAM,gBAAgB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;YAED,OAAO;gBACL,EAAE,EAAE;oBACF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,EAAE,EAAE,QAAQ,CAAC,EAAE;iBAChB;gBACD,MAAM,EAAE,EAAE;aACX,CAAC;QACJ,CAAC,EACD;YACE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YACnC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;YACtC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,EAAE,QAAQ,CAAC,EAAE;SACxB,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gCAAgC,CACpC,gBAA0C,EAC1C,QAAgB,EAChB,kBAA0B;QAE1B,MAAM,EAAC,cAAc,EAAC,GAAG,MAAM,gBAAgB,CAAC,sBAAsB,EAAE,CAAC;QAEzE,IAAI,kBAAkB,GAAG,cAAc,EAAE,CAAC;YACxC,MAAM,IAAI,6BAA6B,CACrC,QAAQ,EACR,kBAAkB,EAClB,cAAc,CACf,CAAC;QACJ,CAAC;aAAM,IAAI,kBAAkB,GAAG,cAAc,EAAE,CAAC;YAC/C,MAAM,IAAI,kBAAkB,CAC1B,QAAQ,EACR,kBAAkB,EAClB,cAAc,CACf,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YACE,QAAgB,EAChB,kBAA0B,EAC1B,cAA+B;QAE/B,KAAK,CACH,UAAU,QAAQ,qBAAqB,kBAAkB,iBAAiB,cAAc,EAAE,CAC3F,CAAC;IACJ,CAAC;CACF;AAED,SAAS,oBAAoB,CAAC,CAAW,EAAE,CAAU;IACnD,OAAO;QACL,EAAE,EAAE;YACF,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,EAAE,EAAE,CAAC,CAAC,EAAE;SACT;QACD,MAAM,EAAE;YACN,KAAK,EAAE,KAAK;YACZ,OAAO,EACL,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC;SACvE;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW;AACzB,8DAA8D;AAC9D,QAAgC,EAChC,IAAY;IAGZ,IAAI,IAAc,CAAC;IACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,8DAA8D;IAC9D,IAAI,OAAY,CAAC;IACjB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CACJ,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,EACpD,kCAAkC,IAAI,EAAE,CACzC,CAAC;QACF,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,OAAO,OAAO,KAAK,UAAU,EAAE,GAAG,EAAE,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;IAC9E,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/out/zero.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  syncedQuery,
10
10
  syncedQueryWithContext,
11
11
  withValidation
12
- } from "./chunk-DPY6BGZO.js";
12
+ } from "./chunk-IEDJQDZ2.js";
13
13
  import {
14
14
  IDBNotFoundError,
15
15
  TransactionClosedError,
@@ -29,11 +29,11 @@ import {
29
29
  transformRequestMessageSchema,
30
30
  transformResponseMessageSchema,
31
31
  update_needed_reason_type_enum_exports
32
- } from "./chunk-SBHBYH27.js";
32
+ } from "./chunk-Y6JQACOR.js";
33
33
  import "./chunk-ASRS2LFV.js";
34
34
  import {
35
35
  applyChange
36
- } from "./chunk-YXYKEMHQ.js";
36
+ } from "./chunk-INWZY4XP.js";
37
37
  import "./chunk-SGW2EIVJ.js";
38
38
  import "./chunk-424PT5DM.js";
39
39
  export {
@@ -57,7 +57,7 @@ export declare class TableSource implements Source {
57
57
  export declare function filtersToSQL(filters: NoSubqueryCondition): SQLQuery;
58
58
  export declare function toSQLiteTypes(columns: readonly string[], row: Row, columnTypes: Record<string, SchemaValue>): readonly unknown[];
59
59
  export declare function toSQLiteTypeName(type: ValueType): "INTEGER" | "REAL" | "TEXT" | "NULL";
60
- export declare function fromSQLiteTypes(valueTypes: Record<string, SchemaValue>, row: Row): Row;
60
+ export declare function fromSQLiteTypes(valueTypes: Record<string, SchemaValue>, row: Row, tableName?: string): Row;
61
61
  export declare class UnsupportedValueError extends Error {
62
62
  }
63
63
  //# sourceMappingURL=table-source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-source.d.ts","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAM7D,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EAGT,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAC,GAAG,EAAQ,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAWzC,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,eAAe,EACf,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,QAAQ,EAAY,MAAM,SAAS,CAAC;AAG5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAa3E;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,MAAM;;gBActC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAgB5C,IAAI,KAAK,WAER;IAED;;;OAGG;IACH,KAAK,CAAC,EAAE,EAAE,QAAQ;IA4FlB,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,EAC/B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,EACvC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS;IAsCnC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAsF1B,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI;IAMjD,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe;IA6G/C;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS;CAuFrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,QAAQ,CAmBnE;AA6KD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACvC,SAAS,OAAO,EAAE,CAEpB;AAeD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,wCAa/C;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,GAAG,EAAE,GAAG,GACP,GAAG,CAcL;AA0BD,qBAAa,qBAAsB,SAAQ,KAAK;CAAG"}
1
+ {"version":3,"file":"table-source.d.ts","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,+BAA+B,CAAC;AAM7D,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EAGT,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAC,GAAG,EAAQ,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACV,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,iCAAiC,CAAC;AAWzC,OAAO,KAAK,EACV,MAAM,EACN,YAAY,EACZ,eAAe,EACf,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAC,QAAQ,EAAY,MAAM,SAAS,CAAC;AAG5C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAa3E;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,MAAM;;gBActC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAgB5C,IAAI,KAAK,WAER;IAED;;;OAGG;IACH,KAAK,CAAC,EAAE,EAAE,QAAQ;IA4FlB,OAAO,CACL,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,EAC/B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,EACvC,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS;IAsCnC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAsF1B,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,GAAG,IAAI;IAMjD,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe;IA6G/C;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,SAAS;CAuFrC;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,QAAQ,CAmBnE;AA6KD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GACvC,SAAS,OAAO,EAAE,CAEpB;AAeD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,wCAa/C;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACvC,GAAG,EAAE,GAAG,EACR,SAAS,CAAC,EAAE,MAAM,GACjB,GAAG,CAeL;AA2CD,qBAAa,qBAAsB,SAAQ,KAAK;CAAG"}
@@ -160,7 +160,7 @@ export class TableSource {
160
160
  if (result.done) {
161
161
  break;
162
162
  }
163
- const row = fromSQLiteTypes(valueTypes, result.value);
163
+ const row = fromSQLiteTypes(valueTypes, result.value, this.#table);
164
164
  debug?.rowVended(this.#table, query, row);
165
165
  yield row;
166
166
  } while (!result.done);
@@ -250,7 +250,7 @@ export class TableSource {
250
250
  const stmt = this.#getRowStmt(keyCols);
251
251
  const row = this.#stmts.cache.use(stmt, cached => cached.statement.safeIntegers(true).get(keyVals));
252
252
  if (row) {
253
- return fromSQLiteTypes(this.#columns, row);
253
+ return fromSQLiteTypes(this.#columns, row, this.#table);
254
254
  }
255
255
  return row;
256
256
  }
@@ -466,18 +466,21 @@ export function toSQLiteTypeName(type) {
466
466
  return 'TEXT';
467
467
  }
468
468
  }
469
- export function fromSQLiteTypes(valueTypes, row) {
469
+ export function fromSQLiteTypes(valueTypes, row, tableName) {
470
470
  const newRow = {};
471
471
  for (const key of Object.keys(row)) {
472
472
  const valueType = valueTypes[key];
473
473
  if (valueType === undefined) {
474
- throw new Error(`Invalid column "${key}". Synced columns include ${Object.keys(valueTypes).sort()}`);
474
+ const columnList = Object.keys(valueTypes).sort().join(', ');
475
+ throw new Error(tableName
476
+ ? `Invalid column "${key}" for table "${tableName}". Synced columns include ${columnList}`
477
+ : `Invalid column "${key}". Synced columns include ${columnList}`);
475
478
  }
476
- newRow[key] = fromSQLiteType(valueType.type, row[key], key);
479
+ newRow[key] = fromSQLiteType(valueType.type, row[key], key, tableName);
477
480
  }
478
481
  return newRow;
479
482
  }
480
- function fromSQLiteType(valueType, v, column) {
483
+ function fromSQLiteType(valueType, v, column, tableName) {
481
484
  if (v === null) {
482
485
  return null;
483
486
  }
@@ -489,13 +492,23 @@ function fromSQLiteType(valueType, v, column) {
489
492
  case 'null':
490
493
  if (typeof v === 'bigint') {
491
494
  if (v > Number.MAX_SAFE_INTEGER || v < Number.MIN_SAFE_INTEGER) {
492
- throw new UnsupportedValueError(`value ${v} (in column ${column}) is outside of supported bounds`);
495
+ throw new UnsupportedValueError(tableName
496
+ ? `value ${v} (in ${tableName}.${column}) is outside of supported bounds`
497
+ : `value ${v} (in column ${column}) is outside of supported bounds`);
493
498
  }
494
499
  return Number(v);
495
500
  }
496
501
  return v;
497
502
  case 'json':
498
- return JSON.parse(v);
503
+ try {
504
+ return JSON.parse(v);
505
+ }
506
+ catch (error) {
507
+ const errorMessage = error instanceof Error ? error.message : String(error);
508
+ throw new UnsupportedValueError(tableName
509
+ ? `Failed to parse JSON for ${tableName}.${column}: ${errorMessage}`
510
+ : `Failed to parse JSON for column "${column}": ${errorMessage}`);
511
+ }
499
512
  }
500
513
  }
501
514
  export class UnsupportedValueError extends Error {