@rocicorp/zero 0.24.2025093001 → 0.24.2025100800

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 (55) hide show
  1. package/out/{chunk-QCPDXNFF.js → chunk-ASFIXQH7.js} +2 -4
  2. package/out/chunk-ASFIXQH7.js.map +7 -0
  3. package/out/{chunk-L2ZHMO4E.js → chunk-QROPZW7G.js} +2 -2
  4. package/out/chunk-X7SAVR5O.js +220 -0
  5. package/out/chunk-X7SAVR5O.js.map +7 -0
  6. package/out/react-native.js +5 -208
  7. package/out/react-native.js.map +3 -3
  8. package/out/react.js +1 -1
  9. package/out/replicache/src/sqlite.d.ts +3 -0
  10. package/out/replicache/src/sqlite.d.ts.map +1 -0
  11. package/out/solid.js +2 -2
  12. package/out/sqlite.js +14 -0
  13. package/out/sqlite.js.map +7 -0
  14. package/out/zero/package.json +14 -10
  15. package/out/zero/src/adapters/drizzle.d.ts +2 -0
  16. package/out/zero/src/adapters/drizzle.d.ts.map +1 -0
  17. package/out/zero/src/adapters/drizzle.js +2 -0
  18. package/out/zero/src/adapters/drizzle.js.map +1 -0
  19. package/out/zero/src/adapters/pg.d.ts +2 -0
  20. package/out/zero/src/adapters/pg.d.ts.map +1 -0
  21. package/out/zero/src/adapters/pg.js +2 -0
  22. package/out/zero/src/adapters/pg.js.map +1 -0
  23. package/out/zero/src/sqlite.d.ts +2 -0
  24. package/out/zero/src/sqlite.d.ts.map +1 -0
  25. package/out/zero/src/zero-cache-dev.js +10 -4
  26. package/out/zero/src/zero-cache-dev.js.map +1 -1
  27. package/out/zero-cache/src/scripts/deploy-permissions.js +1 -1
  28. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +1 -1
  29. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +15 -14
  30. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  31. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  32. package/out/zero-server/src/adapters/drizzle.d.ts +64 -0
  33. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -0
  34. package/out/zero-server/src/adapters/drizzle.js +109 -0
  35. package/out/zero-server/src/adapters/drizzle.js.map +1 -0
  36. package/out/zero-server/src/adapters/pg.d.ts +53 -0
  37. package/out/zero-server/src/adapters/pg.d.ts.map +1 -0
  38. package/out/zero-server/src/adapters/pg.js +79 -0
  39. package/out/zero-server/src/adapters/pg.js.map +1 -0
  40. package/out/zero-server/src/adapters/postgresjs.d.ts +41 -12
  41. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  42. package/out/zero-server/src/adapters/postgresjs.js +27 -10
  43. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  44. package/out/zero.js +2 -2
  45. package/package.json +14 -10
  46. package/out/chunk-QCPDXNFF.js.map +0 -7
  47. package/out/zero/src/adapters/drizzle-pg.d.ts +0 -2
  48. package/out/zero/src/adapters/drizzle-pg.d.ts.map +0 -1
  49. package/out/zero/src/adapters/drizzle-pg.js +0 -2
  50. package/out/zero/src/adapters/drizzle-pg.js.map +0 -1
  51. package/out/zero-server/src/adapters/drizzle-pg.d.ts +0 -22
  52. package/out/zero-server/src/adapters/drizzle-pg.d.ts.map +0 -1
  53. package/out/zero-server/src/adapters/drizzle-pg.js +0 -39
  54. package/out/zero-server/src/adapters/drizzle-pg.js.map +0 -1
  55. /package/out/{chunk-L2ZHMO4E.js.map → chunk-QROPZW7G.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rocicorp/zero",
3
- "version": "0.24.2025093001",
3
+ "version": "0.24.2025100800",
4
4
  "description": "Zero is a web framework for serverless web development.",
5
5
  "author": "Rocicorp, Inc.",
6
6
  "repository": {
@@ -47,7 +47,7 @@
47
47
  "@rocicorp/lock": "^1.0.4",
48
48
  "@rocicorp/logger": "^5.4.0",
49
49
  "@rocicorp/resolver": "^1.0.2",
50
- "@rocicorp/zero-sqlite3": "^1.0.8",
50
+ "@rocicorp/zero-sqlite3": "^1.0.9",
51
51
  "@types/basic-auth": "^1.1.8",
52
52
  "basic-auth": "^2.0.1",
53
53
  "chalk": "^5.3.0",
@@ -76,7 +76,6 @@
76
76
  "ws": "^8.18.1"
77
77
  },
78
78
  "devDependencies": {
79
- "@rocicorp/eslint-config": "^0.7.0",
80
79
  "@rocicorp/prettier-config": "^0.3.0",
81
80
  "@vitest/runner": "3.2.4",
82
81
  "esbuild": "^0.25.0",
@@ -114,12 +113,16 @@
114
113
  "default": "./out/zero/src/server.js"
115
114
  },
116
115
  "./server/adapters/postgresjs": {
117
- "types": "./out/zero-server/src/adapters/postgres.d.ts",
116
+ "types": "./out/zero-server/src/adapters/postgresjs.d.ts",
118
117
  "default": "./out/zero/src/adapters/postgresjs.js"
119
118
  },
120
- "./server/adapters/drizzle-pg": {
121
- "types": "./out/zero-server/src/adapters/drizzle-pg.d.ts",
122
- "default": "./out/zero/src/adapters/drizzle-pg.js"
119
+ "./server/adapters/pg": {
120
+ "types": "./out/zero-server/src/adapters/pg.d.ts",
121
+ "default": "./out/zero/src/adapters/pg.js"
122
+ },
123
+ "./server/adapters/drizzle": {
124
+ "types": "./out/zero-server/src/adapters/drizzle.d.ts",
125
+ "default": "./out/zero/src/adapters/drizzle.js"
123
126
  },
124
127
  "./solid": {
125
128
  "types": "./out/zero-solid/src/mod.d.ts",
@@ -140,6 +143,10 @@
140
143
  "./react-native": {
141
144
  "types": "./out/zero-react-native/src/mod.d.ts",
142
145
  "default": "./out/react-native.js"
146
+ },
147
+ "./sqlite": {
148
+ "types": "./out/zero/src/sqlite.d.ts",
149
+ "default": "./out/sqlite.js"
143
150
  }
144
151
  },
145
152
  "bin": {
@@ -158,8 +165,5 @@
158
165
  "out",
159
166
  "!*.tsbuildinfo"
160
167
  ],
161
- "eslintConfig": {
162
- "extends": "../../eslint-config.json"
163
- },
164
168
  "prettier": "@rocicorp/prettier-config"
165
169
  }
@@ -0,0 +1,2 @@
1
+ export { zeroDrizzle, type DrizzleTransaction, type DrizzleDatabase, type DrizzleConnection, } from '../../../zero-server/src/adapters/drizzle.ts';
2
+ //# sourceMappingURL=drizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../../../src/adapters/drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,8CAA8C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { zeroDrizzle, } from "../../../zero-server/src/adapters/drizzle.js";
2
+ //# sourceMappingURL=drizzle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle.js","sourceRoot":"","sources":["../../../../src/adapters/drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,GAIZ,MAAM,8CAA8C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '../../../zero-server/src/adapters/pg.ts';
2
+ //# sourceMappingURL=pg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg.d.ts","sourceRoot":"","sources":["../../../../src/adapters/pg.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "../../../zero-server/src/adapters/pg.js";
2
+ //# sourceMappingURL=pg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pg.js","sourceRoot":"","sources":["../../../../src/adapters/pg.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '../../replicache/src/sqlite.ts';
2
+ //# sourceMappingURL=sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../../src/sqlite.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
@@ -36,8 +36,12 @@ async function main() {
36
36
  lc.error?.('Exiting');
37
37
  process.exit(-1);
38
38
  });
39
- const { unknown: zeroCacheArgs } = parseOptionsAdvanced(deployPermissionsOptions, { envNamePrefix: ZERO_ENV_VAR_PREFIX, allowUnknown: true });
40
- const { unknown: deployPermissionsArgs } = parseOptionsAdvanced(zeroOptions, {
39
+ // Parse options for each subprocess to get environment variables
40
+ const { env: deployPermissionsEnv } = parseOptionsAdvanced(deployPermissionsOptions, {
41
+ envNamePrefix: ZERO_ENV_VAR_PREFIX,
42
+ allowUnknown: true,
43
+ });
44
+ const { env: zeroCacheEnv } = parseOptionsAdvanced(zeroOptions, {
41
45
  envNamePrefix: ZERO_ENV_VAR_PREFIX,
42
46
  allowUnknown: true,
43
47
  });
@@ -58,7 +62,8 @@ async function main() {
58
62
  await killProcess(permissionsProcess);
59
63
  permissionsProcess = undefined;
60
64
  lc.info?.(`Running ${deployPermissionsScript}.`);
61
- permissionsProcess = spawn(deployPermissionsScript, deployPermissionsArgs ?? [], {
65
+ permissionsProcess = spawn(deployPermissionsScript, [], {
66
+ env: { ...process.env, ...deployPermissionsEnv },
62
67
  stdio: 'inherit',
63
68
  shell: true,
64
69
  });
@@ -89,8 +94,9 @@ async function main() {
89
94
  ['NODE_ENV']: 'development',
90
95
  // But let the developer override any of these dev defaults.
91
96
  ...process.env,
97
+ ...zeroCacheEnv,
92
98
  };
93
- zeroCacheProcess = spawn(zeroCacheScript, zeroCacheArgs || [], {
99
+ zeroCacheProcess = spawn(zeroCacheScript, [], {
94
100
  env,
95
101
  stdio: 'inherit',
96
102
  shell: true,
@@ -1 +1 @@
1
- {"version":3,"file":"zero-cache-dev.js","sourceRoot":"","sources":["../../../src/zero-cache-dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zero-cache-dev.js","sourceRoot":"","sources":["../../../src/zero-cache-dev.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ async function validatePermissions(db, permissions) {
25
25
  const schema = upstreamSchema(shard);
26
26
  // Check if the shardConfig table has been initialized.
27
27
  const result = await db `
28
- SELECT relname FROM pg_class
28
+ SELECT relname FROM pg_class
29
29
  JOIN pg_namespace ON relnamespace = pg_namespace.oid
30
30
  WHERE nspname = ${schema} AND relname = ${SHARD_CONFIG_TABLE}`;
31
31
  if (result.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/logical-replication/stream.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAKjD,OAAO,EAAC,KAAK,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAO,KAAK,IAAI,EAAE,KAAK,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAK1E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAiBjD,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG;IAAC,GAAG,EAAE,WAAW,CAAA;CAAC,CAAC,CAAC;AAExE,wBAAsB,SAAS,CAC7B,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,MAAM,EACX,8BAA8B,SAA6C,EAC3E,eAAe,SAAoB,GAClC,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;CAAC,CAAC,CA6EhE"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/logical-replication/stream.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAKjD,OAAO,EAAC,KAAK,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAO,KAAK,IAAI,EAAE,KAAK,MAAM,EAAC,MAAM,8BAA8B,CAAC;AAK1E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAIjD,MAAM,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAG;IAAC,GAAG,EAAE,WAAW,CAAA;CAAC,CAAC,CAAC;AAExE,wBAAsB,SAAS,CAC7B,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,MAAM,EACX,8BAA8B,SAA6C,EAC3E,eAAe,SAAoB,GAClC,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;CAAC,CAAC,CA8FhE"}
@@ -10,16 +10,6 @@ import { AutoResetSignal } from "../../../change-streamer/schema/tables.js";
10
10
  import { fromBigInt } from "../lsn.js";
11
11
  import { PgoutputParser } from "./pgoutput-parser.js";
12
12
  const DEFAULT_RETRIES_IF_REPLICATION_SLOT_ACTIVE = 5;
13
- // Postgres will send keepalives every 30 seconds before timing out
14
- // a wal_sender. It is possible that these keepalives are not received
15
- // if there is back-pressure in the replication stream. To keep the
16
- // connection alive anyway, explicitly send keepalives if none have been sent.
17
- //
18
- // Note that although the default wal_sender timeout is 60 seconds
19
- // (https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-WAL-SENDER-TIMEOUT)
20
- // this shorter timeout accounts for Neon, which appears to run its instances with
21
- // a 30 second timeout.
22
- const MANUAL_KEEPALIVE_TIMEOUT = parseInt(process.env.PG_REPLICATION_STREAM_KEEPALIVE_TIMEOUT ?? '20000');
23
13
  export async function subscribe(lc, db, slot, publications, lsn, retriesIfReplicationSlotActive = DEFAULT_RETRIES_IF_REPLICATION_SLOT_ACTIVE, applicationName = 'zero-replicator') {
24
14
  const session = postgres(defu({
25
15
  max: 1,
@@ -36,19 +26,31 @@ export async function subscribe(lc, db, slot, publications, lsn, retriesIfReplic
36
26
  // merge of ParsedOptions and Options here:
37
27
  // https://github.com/porsager/postgres/blob/089214e85c23c90cf142d47fb30bd03f42874984/src/subscribe.js#L13
38
28
  db.options));
29
+ // Postgres will send keepalives before timing out a wal_sender. It is possible that
30
+ // these keepalives are not received if there is back-pressure in the replication
31
+ // stream. To keep the connection alive, explicitly send keepalives if none have been
32
+ // sent within the last 75% of the wal_sender_timeout.
33
+ //
34
+ // https://www.postgresql.org/docs/current/runtime-config-replication.html#GUC-WAL-SENDER-TIMEOUT
35
+ const [{ walSenderTimeoutMs }] = await session `SELECT EXTRACT(EPOCH FROM (setting || unit)::interval) * 1000
36
+ AS "walSenderTimeoutMs" FROM pg_settings
37
+ WHERE name = 'wal_sender_timeout'`.simple();
38
+ const manualKeepaliveTimeout = Math.floor(walSenderTimeoutMs * 0.75);
39
+ lc.info?.(`wal_sender_timeout: ${walSenderTimeoutMs}ms. ` +
40
+ `Ensuring manual keepalives at least every ${manualKeepaliveTimeout}ms`);
39
41
  const [readable, writable] = await startReplicationStream(lc, session, slot, publications, lsn, retriesIfReplicationSlotActive + 1);
40
42
  let lastAckTime = Date.now();
41
43
  function sendAck(lsn) {
42
44
  writable.write(makeAck(lsn));
43
45
  lastAckTime = Date.now();
44
- lc.debug?.(`sent ack: ${lsn}`);
45
46
  }
46
47
  const livenessTimer = setInterval(() => {
47
48
  const now = Date.now();
48
- if (now - lastAckTime > MANUAL_KEEPALIVE_TIMEOUT) {
49
+ if (now - lastAckTime > manualKeepaliveTimeout) {
49
50
  sendAck(0n);
51
+ lc.debug?.(`sent manual keepalive`);
50
52
  }
51
- }, MANUAL_KEEPALIVE_TIMEOUT / 5);
53
+ }, manualKeepaliveTimeout / 5);
52
54
  let destroyed = false;
53
55
  const typeParsers = await getTypeParsers(db);
54
56
  const parser = new PgoutputParser(typeParsers);
@@ -128,7 +130,6 @@ function parseStreamMessage(lc, buffer, parser) {
128
130
  lc.debug?.(`pg keepalive (shouldRespond: true) ${lsn}`);
129
131
  return [lsn, { tag: 'keepalive' }];
130
132
  }
131
- lc.debug?.(`pg keepalive (shouldRespond: false) ${lsn}`);
132
133
  return null;
133
134
  }
134
135
  // https://www.postgresql.org/docs/current/protocol-replication.html#PROTOCOL-REPLICATION-STANDBY-STATUS-UPDATE
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/logical-replication/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/logical-replication/stream.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"zero.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/zero.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zero.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/zero.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { type SQL } from 'drizzle-orm';
2
+ import type { PgDatabase, PgQueryResultHKT, PgTransaction } from 'drizzle-orm/pg-core';
3
+ import type { ExtractTablesWithRelations } from 'drizzle-orm/relations';
4
+ import type { Schema } from '../../../zero-schema/src/builder/schema-builder.ts';
5
+ import type { DBConnection, DBTransaction, Row } from '../../../zql/src/mutate/custom.ts';
6
+ import { ZQLDatabase } from '../zql-database.ts';
7
+ export type DrizzleDatabase<TQueryResult extends PgQueryResultHKT = PgQueryResultHKT, TClient = unknown> = PgDatabase<TQueryResult, Record<string, unknown>> & {
8
+ $client: TClient;
9
+ };
10
+ /**
11
+ * Helper type for the wrapped transaction used by drizzle-orm.
12
+ *
13
+ * @remarks Use with `ServerTransaction` as `ServerTransaction<Schema, DrizzleTransaction<typeof drizzleDb>>`.
14
+ */
15
+ export type DrizzleTransaction<TDbOrSchema extends DrizzleDatabase<TQueryResult, TClient> | Record<string, unknown>, TQueryResult extends PgQueryResultHKT = PgQueryResultHKT, TClient = unknown, TSchema extends Record<string, unknown> = TDbOrSchema extends PgDatabase<TQueryResult, infer TSchema> ? TSchema : TDbOrSchema> = PgTransaction<TQueryResult, TSchema, ExtractTablesWithRelations<TSchema>>;
16
+ export declare class DrizzleConnection<TDrizzle extends DrizzleDatabase<TQueryResult, TClient> & {
17
+ $client: TClient;
18
+ }, TQueryResult extends PgQueryResultHKT = PgQueryResultHKT, TClient = unknown, TTransaction extends DrizzleTransaction<TDrizzle, TQueryResult, TClient> = DrizzleTransaction<TDrizzle, TQueryResult, TClient>> implements DBConnection<TTransaction> {
19
+ #private;
20
+ constructor(drizzle: TDrizzle);
21
+ transaction<T>(fn: (tx: DBTransaction<TTransaction>) => Promise<T>): Promise<T>;
22
+ }
23
+ /**
24
+ * Turn `$1, $2...` placeholders into a Drizzle SQL object with bound params.
25
+ */
26
+ export declare function fromDollarParams(text: string, params: unknown[]): SQL;
27
+ export declare function toIterableRows(result: unknown): Iterable<Row>;
28
+ /**
29
+ * Wrap a `drizzle-orm` database for Zero ZQL.
30
+ *
31
+ * Provides ZQL querying plus access to the underlying drizzle transaction.
32
+ * Use {@link DrizzleTransaction} to type your server mutator transaction.
33
+ *
34
+ * @param schema - Zero schema.
35
+ * @param client - Drizzle database.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * import {Pool} from 'pg';
40
+ * import {drizzle} from 'drizzle-orm/node-postgres';
41
+ * import type {ServerTransaction} from '@rocicorp/zero';
42
+ *
43
+ * const pool = new Pool({connectionString: process.env.ZERO_UPSTREAM_DB!});
44
+ * const drizzleDb = drizzle(pool, {schema: drizzleSchema});
45
+ *
46
+ * const zql = zeroDrizzle(schema, drizzleDb);
47
+ *
48
+ * // Define the server mutator transaction type using the helper
49
+ * type ServerTx = ServerTransaction<Schema, DrizzleTransaction<typeof drizzleDb>>;
50
+ *
51
+ * async function createUser(
52
+ * tx: ServerTx,
53
+ * {id, name}: {id: string; name: string},
54
+ * ) {
55
+ * await tx.dbTransaction.wrappedTransaction
56
+ * .insert(drizzleSchema.user)
57
+ * .values({id, name})
58
+ * }
59
+ * ```
60
+ */
61
+ export declare function zeroDrizzle<S extends Schema, TDrizzle extends PgDatabase<PgQueryResultHKT, Record<string, unknown>> & {
62
+ $client: TClient;
63
+ }, TClient = unknown>(schema: S, client: TDrizzle): ZQLDatabase<S, DrizzleTransaction<TDrizzle, PgQueryResultHKT, unknown, TDrizzle extends PgDatabase<PgQueryResultHKT, infer TSchema extends Record<string, unknown>, ExtractTablesWithRelations<infer TSchema extends Record<string, unknown>>> ? TSchema : TDrizzle>>;
64
+ //# sourceMappingURL=drizzle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle.d.ts","sourceRoot":"","sources":["../../../../../zero-server/src/adapters/drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,GAAG,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAC,0BAA0B,EAAC,MAAM,uBAAuB,CAAC;AACtE,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,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAE/C,MAAM,MAAM,eAAe,CACzB,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,OAAO,GAAG,OAAO,IACf,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG;IACtD,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,CAC5B,WAAW,SACP,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,OAAO,GAAG,OAAO,EACjB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,SAAS,UAAU,CACtE,YAAY,EACZ,MAAM,OAAO,CACd,GACG,OAAO,GACP,WAAW,IACb,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;AAE9E,qBAAa,iBAAiB,CAC5B,QAAQ,SAAS,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG;IACxD,OAAO,EAAE,OAAO,CAAC;CAClB,EACD,YAAY,SAAS,gBAAgB,GAAG,gBAAgB,EACxD,OAAO,GAAG,OAAO,EACjB,YAAY,SAAS,kBAAkB,CACrC,QAAQ,EACR,YAAY,EACZ,OAAO,CACR,GAAG,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CACvD,YAAW,YAAY,CAAC,YAAY,CAAC;;gBAIzB,OAAO,EAAE,QAAQ;IAI7B,WAAW,CAAC,CAAC,EACX,EAAE,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAClD,OAAO,CAAC,CAAC,CAAC;CASd;AA4BD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAiBrE;AASD,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAuB7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,WAAW,CACzB,CAAC,SAAS,MAAM,EAChB,QAAQ,SAAS,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG;IACvE,OAAO,EAAE,OAAO,CAAC;CAClB,EACD,OAAO,GAAG,OAAO,EACjB,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,8HA7JnB,OAAO,mEAAP,OAAO,0DA+JhB"}
@@ -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"}