orez 0.5.36 → 0.5.38

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.
@@ -1,40 +1,51 @@
1
1
  import type { Schema } from '@rocicorp/zero';
2
- import type { ApplicationDatabase, MutatorRegistry, NormalizedClaims } from 'orez-sync-executor';
2
+ import type { ApplicationDatabase, ApplicationTransaction, EffectScheduler, MutatorRegistry, NormalizedClaims } from 'orez-sync-executor';
3
3
  export type ZeroHttpSyncDb = {
4
4
  exec(sql: string, params?: readonly unknown[]): void;
5
5
  all(sql: string, params?: readonly unknown[]): Record<string, unknown>[];
6
6
  transaction<Value>(work: () => Value): Value;
7
7
  };
8
- export type ZeroHttpTables = Record<string, {
9
- columns: Record<string, 'string' | 'number' | 'boolean' | 'json' | 'null'>;
10
- primaryKey: string[];
11
- }>;
12
8
  export declare class ZeroHttpRequestError extends Error {
13
9
  readonly status: number;
14
10
  constructor(status: number, message: string);
15
11
  }
16
12
  export type ZeroHttpVisibility = (table: string, userID: string) => {
17
- sql: string;
13
+ where: string;
18
14
  params: readonly unknown[];
19
15
  };
16
+ export type ZeroHttpVisibilityChange = {
17
+ readonly table: string;
18
+ readonly before: Readonly<Record<string, unknown>> | null;
19
+ readonly after: Readonly<Record<string, unknown>> | null;
20
+ };
21
+ export type ZeroHttpVisibilityInvalidation = {
22
+ readonly capture: Readonly<Record<string, readonly string[]>>;
23
+ shouldReset(options: {
24
+ readonly transaction: ApplicationTransaction;
25
+ readonly userID: string;
26
+ readonly changes: readonly ZeroHttpVisibilityChange[];
27
+ }): boolean | Promise<boolean>;
28
+ };
20
29
  export declare function createZeroHttpApplicationDatabase(db: ZeroHttpSyncDb, transaction?: <Value>(work: () => Value | Promise<Value>) => Promise<Value>): ApplicationDatabase;
21
30
  export declare function createZeroHttpSyncServer<S extends Schema>(options: {
22
31
  readonly applicationDatabase: ApplicationDatabase;
23
- readonly db: ZeroHttpSyncDb;
24
32
  readonly schema: S;
25
- readonly tables: ZeroHttpTables;
33
+ readonly tables: readonly string[];
26
34
  readonly mutators: MutatorRegistry<S>;
35
+ readonly effects: EffectScheduler;
27
36
  readonly visible?: ZeroHttpVisibility;
37
+ readonly visibilityInvalidation?: ZeroHttpVisibilityInvalidation;
38
+ readonly initialCookie?: (transaction: ApplicationTransaction) => number | Promise<number>;
28
39
  readonly retainChanges?: number;
29
40
  }): {
30
41
  executor: import("orez-sync-executor").SyncExecutor<S>;
31
42
  ready: () => Promise<void>;
32
- watermark: () => number;
43
+ watermark(): Promise<number>;
33
44
  invalidate(): Promise<void>;
34
45
  handlePull(value: unknown, claims: NormalizedClaims): Promise<unknown>;
35
46
  handlePush(value: unknown, claims: NormalizedClaims): Promise<unknown>;
36
47
  };
37
- export type ZeroHttpSyncServer = ReturnType<typeof createZeroHttpSyncServer>;
48
+ export type ZeroHttpSyncServer<S extends Schema = Schema> = ReturnType<typeof createZeroHttpSyncServer<S>>;
38
49
  export type ZeroHttpOperation = 'pull' | 'push';
39
50
  export type ZeroHttpRoute = {
40
51
  databaseID: string;
@@ -42,7 +53,7 @@ export type ZeroHttpRoute = {
42
53
  };
43
54
  export declare function createZeroHttpMount(options: {
44
55
  readonly pathPrefix: string;
45
- server(databaseID: string): ZeroHttpSyncServer;
56
+ server(databaseID: string): ZeroHttpSyncServer<any>;
46
57
  }): {
47
58
  match(pathname: string): ZeroHttpRoute | null;
48
59
  handle(route: ZeroHttpRoute, body: unknown, claims: NormalizedClaims): Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/zero-http/mount.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,KAAK,EACV,mBAAmB,EAEnB,eAAe,EACf,gBAAgB,EAEjB,MAAM,oBAAoB,CAAA;AAE3B,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI,CAAA;IACpD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxE,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,GAAG,KAAK,CAAA;CAC7C,CAAA;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,CACjC,MAAM,EACN;IACE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,CAAA;IAC1E,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,CACF,CAAA;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAE3C,QAAQ,CAAC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM;CAKlB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,KACX;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,CAAA;AAiBhD,wBAAgB,iCAAiC,CAC/C,EAAE,EAAE,cAAc,EAClB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,KAAK,CAAC,GAC1E,mBAAmB,CAiDrB;AAyCD,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE;IAClE,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAA;IACjD,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;IAClB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAA;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;;;;kBAoMuB,OAAO,CAAC,IAAI,CAAC;sBAaT,OAAO,UAAU,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;sBAgCpD,OAAO,UAAU,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;EAY/E;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE5E,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAA;AAC/C,MAAM,MAAM,aAAa,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,CAAA;AAIhF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAAA;CAC/C;oBAQmB,MAAM,GAAG,aAAa,GAAG,IAAI;kBAS/B,aAAa,QAAQ,OAAO,UAAU,gBAAgB;EAOvE"}
1
+ {"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/zero-http/mount.ts"],"names":[],"mappings":"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"}
@@ -90,79 +90,130 @@ function toZeroValue(type, raw) {
90
90
  return raw;
91
91
  }
92
92
  export function createZeroHttpSyncServer(options) {
93
- const { applicationDatabase, db, mutators, schema, tables } = options;
93
+ const { applicationDatabase, effects, mutators, schema, tables } = options;
94
94
  const retainChanges = options.retainChanges ?? 4096;
95
95
  const schemaConfig = schema;
96
- const tableConfigs = Object.entries(tables).map(([logical, spec]) => {
96
+ const tableConfigs = tables.map((logical) => {
97
97
  const schemaTable = schemaConfig.tables[logical];
98
98
  if (!schemaTable)
99
99
  throw new TypeError(`unknown table: ${logical}`);
100
100
  return {
101
101
  logical,
102
102
  physical: schemaTable.serverName ?? schemaTable.name ?? logical,
103
- columns: Object.fromEntries(Object.entries(spec.columns).map(([column, type]) => {
103
+ columns: Object.fromEntries(Object.entries(schemaTable.columns).map(([column, spec]) => {
104
104
  const schemaColumn = schemaTable.columns[column];
105
105
  if (!schemaColumn)
106
106
  throw new TypeError(`unknown column: ${logical}.${column}`);
107
- return [column, { physical: schemaColumn.serverName ?? column, type }];
107
+ return [
108
+ column,
109
+ { physical: schemaColumn.serverName ?? column, type: spec.type },
110
+ ];
108
111
  })),
109
- primaryKey: spec.primaryKey,
112
+ primaryKey: schemaTable.primaryKey,
110
113
  };
111
114
  });
115
+ const tableByLogical = new Map(tableConfigs.map((table) => [table.logical, table]));
112
116
  const tableByPhysical = new Map(tableConfigs.map((table) => [table.physical, table]));
117
+ for (const [table, columns] of Object.entries(options.visibilityInvalidation?.capture ?? {})) {
118
+ const config = tableByLogical.get(table);
119
+ if (!config)
120
+ throw new TypeError(`visibility invalidation names unknown table: ${table}`);
121
+ for (const column of columns) {
122
+ if (!config.columns[column]) {
123
+ throw new TypeError(`visibility invalidation names unknown column: ${table}.${column}`);
124
+ }
125
+ }
126
+ }
113
127
  const executor = createSyncExecutor({
114
128
  database: applicationDatabase,
115
- effects: {
116
- runBackground(promise) {
117
- return promise;
118
- },
119
- report(error) {
120
- throw error;
121
- },
122
- },
129
+ effects,
123
130
  mutators,
124
131
  schema,
125
132
  });
133
+ // every statement below runs through applicationDatabase, never a raw handle:
134
+ // that is what lets this mount sit on a remote/async application database, and
135
+ // it keeps pull, invalidate and prune on the SAME queue as mutator execution
136
+ // so a push cannot interleave with a pull mid-transaction.
126
137
  const ready = executor
127
138
  .push({ clientGroupID: '__zero_http_mount__', mutations: [], pushVersion: 1 }, { userID: '__zero_http_mount__' })
128
- .then(() => {
129
- db.exec(`CREATE TABLE IF NOT EXISTS _zsync_meta (
139
+ .then(() => applicationDatabase.transaction(async (tx) => {
140
+ await tx.exec(`CREATE TABLE IF NOT EXISTS _zsync_meta (
130
141
  lock INTEGER PRIMARY KEY CHECK (lock = 1),
131
- floor INTEGER NOT NULL
142
+ floor INTEGER NOT NULL,
143
+ initialized INTEGER NOT NULL DEFAULT 0
132
144
  )`);
133
- db.exec(`INSERT INTO _zsync_meta (lock, floor) VALUES (1, 0)
145
+ const metaColumns = await tx.query(`SELECT name FROM pragma_table_info('_zsync_meta')`);
146
+ if (!metaColumns.some((column) => column.name === 'initialized')) {
147
+ await tx.exec('ALTER TABLE _zsync_meta ADD COLUMN initialized INTEGER NOT NULL DEFAULT 0');
148
+ }
149
+ await tx.exec(`INSERT INTO _zsync_meta (lock, floor, initialized) VALUES (1, 0, 0)
134
150
  ON CONFLICT (lock) DO NOTHING`);
151
+ const [meta] = await tx.query('SELECT initialized FROM _zsync_meta WHERE lock = 1');
152
+ if (!meta?.initialized) {
153
+ const requestedCookie = options.initialCookie
154
+ ? await options.initialCookie(tx)
155
+ : 0;
156
+ if (!Number.isSafeInteger(requestedCookie) ||
157
+ requestedCookie < 0 ||
158
+ requestedCookie >= Number.MAX_SAFE_INTEGER) {
159
+ throw new TypeError(`invalid initial cookie: ${requestedCookie}`);
160
+ }
161
+ const baseline = Math.max(await watermarkIn(tx), requestedCookie);
162
+ if (baseline === 0) {
163
+ await tx.exec('UPDATE _zsync_meta SET initialized = 1 WHERE lock = 1');
164
+ }
165
+ else {
166
+ const epoch = baseline + 1;
167
+ await tx.exec(`INSERT INTO _zsync_changes ("watermark", "tableName", "op", "pk")
168
+ VALUES (?, '_zsync_meta', 'marker', NULL)`, [epoch]);
169
+ await tx.exec('UPDATE _zsync_meta SET floor = ?, initialized = 1 WHERE lock = 1', [epoch]);
170
+ }
171
+ }
135
172
  for (const table of tableConfigs) {
136
- const pkObject = (ref) => `json_object(${table.primaryKey
173
+ const capture = [
174
+ ...new Set([
175
+ ...table.primaryKey,
176
+ ...(options.visibilityInvalidation?.capture[table.logical] ?? []),
177
+ ]),
178
+ ];
179
+ const rowObject = (ref) => `json_object(${capture
137
180
  .map((column) => `${quoteLiteral(column)}, ${ref}.${quoteIdentifier(table.columns[column].physical)}`)
138
181
  .join(', ')})`;
139
182
  const trigger = `_zsync_tr_${table.physical}`;
140
183
  const physical = quoteIdentifier(table.physical);
141
184
  const tableName = quoteLiteral(table.physical);
142
- db.exec(`CREATE TRIGGER IF NOT EXISTS ${quoteIdentifier(`${trigger}_i`)}
185
+ for (const suffix of ['i', 'u', 'd']) {
186
+ await tx.exec(`DROP TRIGGER IF EXISTS ${quoteIdentifier(`${trigger}_${suffix}`)}`);
187
+ }
188
+ await tx.exec(`CREATE TRIGGER ${quoteIdentifier(`${trigger}_i`)}
143
189
  AFTER INSERT ON ${physical} BEGIN
144
190
  INSERT INTO _zsync_changes ("tableName", "op", "pk")
145
- VALUES (${tableName}, 'row', ${pkObject('NEW')});
191
+ VALUES (${tableName}, 'row', json_object('before', NULL, 'after', ${rowObject('NEW')}));
146
192
  END`);
147
- db.exec(`CREATE TRIGGER IF NOT EXISTS ${quoteIdentifier(`${trigger}_u`)}
193
+ await tx.exec(`CREATE TRIGGER ${quoteIdentifier(`${trigger}_u`)}
148
194
  AFTER UPDATE ON ${physical} BEGIN
149
195
  INSERT INTO _zsync_changes ("tableName", "op", "pk")
150
- VALUES (${tableName}, 'row', ${pkObject('OLD')});
196
+ VALUES (${tableName}, 'row', json_object('before', ${rowObject('OLD')}, 'after', ${rowObject('NEW')}));
151
197
  INSERT INTO _zsync_changes ("tableName", "op", "pk")
152
- VALUES (${tableName}, 'row', ${pkObject('NEW')});
198
+ VALUES ('_zsync_meta', 'marker', NULL);
153
199
  END`);
154
- db.exec(`CREATE TRIGGER IF NOT EXISTS ${quoteIdentifier(`${trigger}_d`)}
200
+ await tx.exec(`CREATE TRIGGER ${quoteIdentifier(`${trigger}_d`)}
155
201
  AFTER DELETE ON ${physical} BEGIN
156
202
  INSERT INTO _zsync_changes ("tableName", "op", "pk")
157
- VALUES (${tableName}, 'row', ${pkObject('OLD')});
203
+ VALUES (${tableName}, 'row', json_object('before', ${rowObject('OLD')}, 'after', NULL));
158
204
  END`);
159
205
  }
160
- });
161
- const watermark = () => Number(db.all('SELECT COALESCE(MAX("watermark"), 0) AS value FROM _zsync_changes')[0]
162
- .value);
163
- const floor = () => Number(db.all('SELECT floor FROM _zsync_meta')[0].floor);
164
- function claimClient(clientGroupID, clientID, userID) {
165
- db.exec(`INSERT INTO _zsync_clients ("clientGroupID", "clientID", "lastMutationID", "userID")
206
+ }));
207
+ async function watermarkIn(tx) {
208
+ const rows = await tx.query('SELECT COALESCE(MAX("watermark"), 0) AS value FROM _zsync_changes');
209
+ return Number(rows[0].value);
210
+ }
211
+ async function floorIn(tx) {
212
+ const rows = await tx.query('SELECT floor FROM _zsync_meta');
213
+ return Number(rows[0].floor);
214
+ }
215
+ async function claimClient(tx, clientGroupID, clientID, userID) {
216
+ await tx.exec(`INSERT INTO _zsync_clients ("clientGroupID", "clientID", "lastMutationID", "userID")
166
217
  SELECT ?, ?, 0, ?
167
218
  WHERE NOT EXISTS (
168
219
  SELECT 1 FROM _zsync_clients
@@ -170,29 +221,29 @@ export function createZeroHttpSyncServer(options) {
170
221
  )
171
222
  ON CONFLICT ("clientGroupID", "clientID")
172
223
  DO UPDATE SET "userID" = excluded."userID" WHERE "userID" IS NULL`, [clientGroupID, clientID, userID, clientGroupID, userID]);
173
- const owners = db.all(`SELECT DISTINCT "userID" FROM _zsync_clients
224
+ const owners = await tx.query(`SELECT DISTINCT "userID" FROM _zsync_clients
174
225
  WHERE "clientGroupID" = ? AND "userID" IS NOT NULL`, [clientGroupID]);
175
226
  if (owners.some((owner) => owner.userID !== userID)) {
176
227
  throw new ZeroHttpRequestError(403, 'client group belongs to a different user');
177
228
  }
178
229
  }
179
- function prune() {
180
- const cutoff = watermark() - retainChanges;
181
- if (cutoff <= floor())
230
+ async function prune(tx) {
231
+ const cutoff = (await watermarkIn(tx)) - retainChanges;
232
+ if (cutoff <= (await floorIn(tx)))
182
233
  return;
183
- db.exec('DELETE FROM _zsync_changes WHERE "watermark" <= ?', [cutoff]);
184
- db.exec('UPDATE _zsync_meta SET floor = ?', [cutoff]);
234
+ await tx.exec('DELETE FROM _zsync_changes WHERE "watermark" <= ?', [cutoff]);
235
+ await tx.exec('UPDATE _zsync_meta SET floor = ?', [cutoff]);
185
236
  }
186
- function visibleRows(table, userID) {
237
+ async function visibleRows(tx, table, userID) {
187
238
  const filter = options.visible?.(table.logical, userID);
188
239
  return filter
189
- ? db.all(filter.sql, filter.params)
190
- : db.all(`SELECT * FROM ${quoteIdentifier(table.physical)}`);
240
+ ? tx.query(`SELECT * FROM ${quoteIdentifier(table.physical)} WHERE ${filter.where}`, filter.params)
241
+ : tx.query(`SELECT * FROM ${quoteIdentifier(table.physical)}`);
191
242
  }
192
- function snapshot(userID) {
243
+ async function snapshot(tx, userID) {
193
244
  const patch = [{ op: 'clear' }];
194
245
  for (const table of tableConfigs) {
195
- for (const row of visibleRows(table, userID)) {
246
+ for (const row of await visibleRows(tx, table, userID)) {
196
247
  patch.push({
197
248
  op: 'put',
198
249
  tableName: table.physical,
@@ -205,13 +256,47 @@ export function createZeroHttpSyncServer(options) {
205
256
  }
206
257
  return patch;
207
258
  }
208
- function diff(cookie) {
259
+ function loggedChanges(rows) {
260
+ return rows.map((row) => {
261
+ const table = String(row.tableName);
262
+ const config = tableByPhysical.get(table);
263
+ if (!config)
264
+ throw new Error(`unknown change-log table: ${table}`);
265
+ const value = JSON.parse(String(row.pk));
266
+ if (!isRecord(value) ||
267
+ !('before' in value) ||
268
+ !('after' in value) ||
269
+ (value.before !== null && !isRecord(value.before)) ||
270
+ (value.after !== null && !isRecord(value.after))) {
271
+ throw new Error(`invalid change-log row for table: ${table}`);
272
+ }
273
+ return {
274
+ table: config.logical,
275
+ before: value.before,
276
+ after: value.after,
277
+ };
278
+ });
279
+ }
280
+ async function changesSince(tx, cookie) {
281
+ return loggedChanges(await tx.query(`SELECT "tableName", "pk" FROM _zsync_changes
282
+ WHERE "watermark" > ? AND "op" = 'row'
283
+ ORDER BY "watermark"`, [cookie]));
284
+ }
285
+ async function diff(tx, changes, userID) {
209
286
  const touched = new Map();
210
- for (const change of db.all(`SELECT DISTINCT "tableName", "pk" FROM _zsync_changes
211
- WHERE "watermark" > ? AND "op" = 'row'`, [cookie])) {
212
- const table = String(change.tableName);
213
- const pk = JSON.parse(String(change.pk));
214
- touched.set(`${table} ${change.pk}`, { table, pk });
287
+ for (const change of changes) {
288
+ const config = tableByLogical.get(change.table);
289
+ if (!config)
290
+ throw new Error(`unknown change-log table: ${change.table}`);
291
+ for (const row of [change.before, change.after]) {
292
+ if (!row)
293
+ continue;
294
+ const pk = Object.fromEntries(config.primaryKey.map((column) => [column, row[column]]));
295
+ touched.set(`${config.physical} ${JSON.stringify(pk)}`, {
296
+ table: config.physical,
297
+ pk,
298
+ });
299
+ }
215
300
  }
216
301
  const patch = [];
217
302
  for (const { table, pk } of touched.values()) {
@@ -222,7 +307,8 @@ export function createZeroHttpSyncServer(options) {
222
307
  .map((column) => `${quoteIdentifier(config.columns[column].physical)} = ?`)
223
308
  .join(' AND ');
224
309
  const params = config.primaryKey.map((column) => pk[column]);
225
- const row = db.all(`SELECT * FROM ${quoteIdentifier(config.physical)} WHERE ${where}`, params)[0];
310
+ const filter = options.visible?.(config.logical, userID);
311
+ const row = (await tx.query(`SELECT * FROM ${quoteIdentifier(config.physical)} WHERE ${where}${filter ? ` AND (${filter.where})` : ''}`, filter ? [...params, ...filter.params] : params))[0];
226
312
  if (!row) {
227
313
  patch.push({
228
314
  op: 'del',
@@ -249,37 +335,48 @@ export function createZeroHttpSyncServer(options) {
249
335
  return {
250
336
  executor,
251
337
  ready: () => ready,
252
- watermark,
338
+ async watermark() {
339
+ await ready;
340
+ return applicationDatabase.transaction((tx) => watermarkIn(tx));
341
+ },
253
342
  async invalidate() {
254
343
  await ready;
255
- db.transaction(() => {
256
- db.exec(`INSERT INTO _zsync_changes ("tableName", "op", "pk")
344
+ await applicationDatabase.transaction(async (tx) => {
345
+ await tx.exec(`INSERT INTO _zsync_changes ("tableName", "op", "pk")
257
346
  VALUES ('_zsync_meta', 'marker', NULL)`);
258
- db.exec(`UPDATE _zsync_meta SET floor =
347
+ await tx.exec(`UPDATE _zsync_meta SET floor =
259
348
  (SELECT COALESCE(MAX("watermark"), 0) FROM _zsync_changes)`);
260
349
  });
261
350
  },
262
351
  async handlePull(value, claims) {
263
352
  await ready;
264
353
  const body = validatePull(value);
265
- return db.transaction(() => {
266
- claimClient(body.clientGroupID, body.clientID, claims.userID);
267
- prune();
268
- const current = watermark();
354
+ return applicationDatabase.transaction(async (tx) => {
355
+ await claimClient(tx, body.clientGroupID, body.clientID, claims.userID);
356
+ await prune(tx);
357
+ const current = await watermarkIn(tx);
269
358
  if (body.cookie !== null && body.cookie > current) {
270
359
  throw new ZeroHttpRequestError(409, `future cookie ${body.cookie} is ahead of watermark ${current}`);
271
360
  }
272
361
  if (body.cookie === current)
273
362
  return { cookie: current, unchanged: true };
274
- const lmids = Object.fromEntries(db
275
- .all(`SELECT "clientID", "lastMutationID" FROM _zsync_clients
276
- WHERE "clientGroupID" = ?`, [body.clientGroupID])
277
- .map((row) => [String(row.clientID), Number(row.lastMutationID)]));
278
- const canDiff = body.cookie !== null && body.cookie >= floor() && options.visible === undefined;
363
+ const lmids = Object.fromEntries((await tx.query(`SELECT "clientID", "lastMutationID" FROM _zsync_clients
364
+ WHERE "clientGroupID" = ?`, [body.clientGroupID])).map((row) => [String(row.clientID), Number(row.lastMutationID)]));
365
+ const canDiff = body.cookie !== null && body.cookie >= (await floorIn(tx));
366
+ const changes = canDiff ? await changesSince(tx, body.cookie) : [];
367
+ const mustReset = canDiff &&
368
+ options.visibilityInvalidation !== undefined &&
369
+ (await options.visibilityInvalidation.shouldReset({
370
+ transaction: tx,
371
+ userID: claims.userID,
372
+ changes,
373
+ }));
279
374
  return {
280
375
  cookie: current,
281
376
  lastMutationIDChanges: lmids,
282
- rowsPatch: canDiff ? diff(body.cookie) : snapshot(claims.userID),
377
+ rowsPatch: canDiff && !mustReset
378
+ ? await diff(tx, changes, claims.userID)
379
+ : await snapshot(tx, claims.userID),
283
380
  };
284
381
  });
285
382
  },
@@ -288,7 +385,7 @@ export function createZeroHttpSyncServer(options) {
288
385
  const result = await executor.push(value, claims);
289
386
  if ('mutations' in result.pushResponse &&
290
387
  result.pushResponse.mutations.length > 0) {
291
- db.transaction(prune);
388
+ await applicationDatabase.transaction((tx) => prune(tx));
292
389
  }
293
390
  return result;
294
391
  },
@@ -1 +1 @@
1
- {"version":3,"file":"mount.js","sourceRoot":"","sources":["../../src/zero-http/mount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../../src/zero-http/mount.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare function startZeroHttpServer(opts?: {
8
8
  seed?: Seed;
9
9
  }): Promise<{
10
10
  url: string;
11
- version(): number;
11
+ version(): Promise<number>;
12
12
  rows(table: string): Row[];
13
13
  close(): Promise<void>;
14
14
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/zero-http/server.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAGxC,KAAK,IAAI,GAAG;IAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;CAAE,CAAA;AA8F7D,wBAAsB,mBAAmB,CAAC,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC;IACzE,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,IAAI,MAAM,CAAA;IACjB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB,CAAC,CAqGD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/zero-http/server.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAGxC,KAAK,IAAI,GAAG;IAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;CAAE,CAAA;AAyH7D,wBAAsB,mBAAmB,CAAC,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC;IACzE,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1B,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,CAAA;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB,CAAC,CAiHD"}
@@ -17,6 +17,14 @@ const tables = {
17
17
  columns: { id: 'member_id', projectId: 'project_id', userId: 'user_id' },
18
18
  },
19
19
  };
20
+ const effects = {
21
+ runBackground(promise) {
22
+ return promise;
23
+ },
24
+ report(error) {
25
+ throw error;
26
+ },
27
+ };
20
28
  function createDatabase(sqlite) {
21
29
  return {
22
30
  exec(sql, params = []) {
@@ -65,6 +73,20 @@ function createMutators() {
65
73
  throw new MutationApplicationError('forbidden');
66
74
  await tx.mutate.member.insert(value);
67
75
  },
76
+ 'member|touch': async ({ tx, args, ctx }) => {
77
+ const value = args;
78
+ const rows = Array.from(await tx.dbTransaction.query(`SELECT m.project_id AS projectId, m.user_id AS userId
79
+ FROM project_member m
80
+ JOIN project_record p ON p.project_id = m.project_id
81
+ WHERE m.member_id = ? AND p.owner_id = ?`, [value.id, ctx.claims.userID]));
82
+ if (rows.length === 0)
83
+ throw new MutationApplicationError('forbidden');
84
+ await tx.mutate.member.update({
85
+ id: value.id,
86
+ projectId: String(rows[0].projectId),
87
+ userId: String(rows[0].userId),
88
+ });
89
+ },
68
90
  'member|remove': async ({ tx, args, ctx }) => {
69
91
  const value = args;
70
92
  const members = Array.from(await tx.dbTransaction.query('SELECT project_id AS projectId FROM project_member WHERE member_id = ?', [value.id]));
@@ -83,43 +105,54 @@ export async function startZeroHttpServer(opts) {
83
105
  const db = createDatabase(sqlite);
84
106
  const sync = createZeroHttpSyncServer({
85
107
  applicationDatabase: createZeroHttpApplicationDatabase(db),
86
- db,
108
+ effects,
87
109
  schema: zeroHttpFixtureSchema,
88
- tables: {
89
- user: { columns: { id: 'string', name: 'string' }, primaryKey: ['id'] },
90
- project: {
91
- columns: { id: 'string', ownerId: 'string', name: 'string' },
92
- primaryKey: ['id'],
93
- },
94
- member: {
95
- columns: { id: 'string', projectId: 'string', userId: 'string' },
96
- primaryKey: ['id'],
97
- },
98
- },
110
+ tables: ['user', 'project', 'member'],
99
111
  mutators: createMutators(),
100
112
  visible(table, userID) {
101
113
  if (table === 'user') {
102
114
  return {
103
- sql: 'SELECT * FROM user_record WHERE user_id = ?',
115
+ where: 'user_record.user_id = ?',
104
116
  params: [userID],
105
117
  };
106
118
  }
107
119
  if (table === 'project') {
108
120
  return {
109
- sql: `SELECT DISTINCT p.* FROM project_record p
110
- LEFT JOIN project_member m ON m.project_id = p.project_id
111
- WHERE p.owner_id = ? OR m.user_id = ?`,
121
+ where: `project_record.owner_id = ? OR EXISTS (
122
+ SELECT 1 FROM project_member m
123
+ WHERE m.project_id = project_record.project_id AND m.user_id = ?
124
+ )`,
112
125
  params: [userID, userID],
113
126
  };
114
127
  }
115
128
  return {
116
- sql: `SELECT DISTINCT m.* FROM project_member m
117
- JOIN project_record p ON p.project_id = m.project_id
118
- LEFT JOIN project_member viewer ON viewer.project_id = p.project_id
119
- WHERE p.owner_id = ? OR viewer.user_id = ?`,
129
+ where: `EXISTS (
130
+ SELECT 1 FROM project_record p
131
+ WHERE p.project_id = project_member.project_id
132
+ AND (p.owner_id = ? OR EXISTS (
133
+ SELECT 1 FROM project_member viewer
134
+ WHERE viewer.project_id = p.project_id AND viewer.user_id = ?
135
+ ))
136
+ )`,
120
137
  params: [userID, userID],
121
138
  };
122
139
  },
140
+ visibilityInvalidation: {
141
+ capture: { member: ['projectId', 'userId'] },
142
+ shouldReset({ changes, userID }) {
143
+ return changes.some((change) => {
144
+ if (change.table !== 'member')
145
+ return false;
146
+ const before = change.before;
147
+ const after = change.after;
148
+ return ((before?.userId === userID &&
149
+ (after?.userId !== before.userId ||
150
+ after?.projectId !== before.projectId)) ||
151
+ (after?.userId === userID &&
152
+ (before?.userId !== after.userId || before?.projectId !== after.projectId)));
153
+ });
154
+ },
155
+ },
123
156
  });
124
157
  await sync.ready();
125
158
  const server = createServer(async (req, res) => {
@@ -166,7 +199,7 @@ export async function startZeroHttpServer(opts) {
166
199
  const address = server.address();
167
200
  return {
168
201
  url: `http://127.0.0.1:${address.port}`,
169
- version: sync.watermark,
202
+ version: () => sync.watermark(),
170
203
  rows: (table) => rowsForTable(sqlite, table),
171
204
  close: () => new Promise((resolve, reject) => {
172
205
  server.close((error) => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/zero-http/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/zero-http/server.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export declare function startZeroHttpHarness(opts?: {
13
13
  }): Promise<{
14
14
  server: {
15
15
  url: string;
16
- version(): number;
16
+ version(): Promise<number>;
17
17
  rows(table: string): Row[];
18
18
  close(): Promise<void>;
19
19
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orez",
3
- "version": "0.5.36",
3
+ "version": "0.5.38",
4
4
  "description": "PGlite-powered zero-sync development backend. No Docker required.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -129,10 +129,10 @@
129
129
  "@noble/curves": "1.9.7",
130
130
  "@noble/hashes": "1.8.0",
131
131
  "@pgsql/traverse": "17.2.6",
132
- "bedrock-sqlite": "0.5.36",
132
+ "bedrock-sqlite": "0.5.38",
133
133
  "citty": "^0.2.0",
134
- "orez-sync-cf-host": "0.5.36",
135
- "orez-sync-executor": "0.5.36",
134
+ "orez-sync-cf-host": "0.5.38",
135
+ "orez-sync-executor": "0.5.38",
136
136
  "pg-gateway": "0.3.0-beta.4",
137
137
  "pgsql-parser": "^17.9.11",
138
138
  "postgres": "^3.4.5"