orez-sync-executor 0.15.0 → 0.16.0

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.
@@ -0,0 +1,25 @@
1
+ import type { ApplicationDatabase, ApplicationTransaction, JsonValue, TransactionQueryFormat } from './types.js';
2
+ import type { Schema } from '@rocicorp/zero';
3
+ export type PostgreSQLQueryResult<Row extends Record<string, unknown>> = {
4
+ readonly rows: readonly Row[];
5
+ readonly rowCount?: number | null;
6
+ };
7
+ export type PostgreSQLClient = {
8
+ query<Row extends Record<string, unknown> = Record<string, unknown>>(sql: string, params?: readonly unknown[]): Promise<PostgreSQLQueryResult<Row>>;
9
+ release(): void;
10
+ };
11
+ export type PostgreSQLPool = {
12
+ connect(): Promise<PostgreSQLClient>;
13
+ query<Row extends Record<string, unknown> = Record<string, unknown>>(sql: string, params?: readonly unknown[]): Promise<PostgreSQLQueryResult<Row>>;
14
+ };
15
+ export type PostgreSQLApplicationDatabaseOptions = {
16
+ readonly internalSchema?: string;
17
+ readonly schema?: Schema;
18
+ readonly queryAst?: <Result>(tx: PostgreSQLClient, ast: JsonValue, format: TransactionQueryFormat, queryName?: string) => Promise<Result>;
19
+ };
20
+ export declare function createPostgreSQLApplicationDatabase(pool: PostgreSQLPool, options?: PostgreSQLApplicationDatabaseOptions): ApplicationDatabase;
21
+ export declare function createSQLiteApplicationDatabase(options: {
22
+ transaction<Value>(work: (tx: ApplicationTransaction) => Value | Promise<Value>): Promise<Value>;
23
+ query<Row extends Record<string, unknown> = Record<string, unknown>>(sql: string, params?: readonly unknown[]): Promise<readonly Row[]>;
24
+ }): ApplicationDatabase;
25
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EAEtB,SAAS,EAET,sBAAsB,EACvB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAA8B,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAGxE,MAAM,MAAM,qBAAqB,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACvE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,EAAE,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;IACtC,OAAO,IAAI,IAAI,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACpC,KAAK,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,oCAAoC,GAAG;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EACzB,EAAE,EAAE,gBAAgB,EACpB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,sBAAsB,EAC9B,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,CAAA;CACrB,CAAA;AAED,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,cAAc,EACpB,OAAO,GAAE,oCAAyC,GACjD,mBAAmB,CAsKrB;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACvD,WAAW,CAAC,KAAK,EACf,IAAI,EAAE,CAAC,EAAE,EAAE,sBAAsB,KAAK,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAC3D,OAAO,CAAC,KAAK,CAAC,CAAA;IACjB,KAAK,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjE,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,GAC1B,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,CAAA;CAC3B,GAAG,mBAAmB,CAEtB"}
@@ -0,0 +1,116 @@
1
+ import { executePostgresQuery } from '@rocicorp/zero/server';
2
+ export function createPostgreSQLApplicationDatabase(pool, options = {}) {
3
+ let serverSchema;
4
+ async function introspectServerSchema(client) {
5
+ if (!options.schema) {
6
+ throw new TypeError('PostgreSQL application database requires schema or queryAst for ZQL reads');
7
+ }
8
+ const tables = Object.values(options.schema.tables).map((table) => {
9
+ const serverName = table.serverName ?? table.name;
10
+ const period = serverName.indexOf('.');
11
+ return period < 0
12
+ ? { schema: 'public', table: serverName }
13
+ : {
14
+ schema: serverName.slice(0, period),
15
+ table: serverName.slice(period + 1),
16
+ };
17
+ });
18
+ if (tables.length === 0)
19
+ return {};
20
+ const params = tables.flatMap((table) => [table.schema, table.table]);
21
+ const where = tables
22
+ .map((_, index) => `(c.table_schema = $${index * 2 + 1} AND c.table_name = $${index * 2 + 2})`)
23
+ .join(' OR ');
24
+ const rows = (await client.query(`SELECT
25
+ c.table_schema::text AS schema,
26
+ c.table_name::text AS table,
27
+ c.column_name::text AS column,
28
+ c.data_type::text AS "dataType",
29
+ t.typtype::text AS typtype,
30
+ t.typname::text AS typename,
31
+ CASE WHEN t.typelem <> 0 THEN et.typtype::text ELSE NULL END AS "elemTyptype",
32
+ CASE WHEN t.typelem <> 0 THEN et.typname::text ELSE NULL END AS "elemTypname"
33
+ FROM information_schema.columns c
34
+ JOIN pg_catalog.pg_type t ON c.udt_name = t.typname
35
+ LEFT JOIN pg_catalog.pg_type et ON t.typelem = et.oid
36
+ JOIN pg_catalog.pg_namespace n ON t.typnamespace = n.oid
37
+ WHERE ${where}`, params)).rows;
38
+ const result = {};
39
+ for (const row of rows) {
40
+ const tableName = row.schema === 'public' ? row.table : `${row.schema}.${row.table}`;
41
+ const table = (result[tableName] ??= {});
42
+ const isArray = row.elemTyptype !== null;
43
+ const isEnum = (row.elemTyptype ?? row.typtype) === 'e';
44
+ table[row.column] = {
45
+ type: isArray
46
+ ? (row.elemTypname ?? row.dataType.toLowerCase())
47
+ : isEnum
48
+ ? row.typename
49
+ : row.dataType.toLowerCase(),
50
+ isArray,
51
+ isEnum,
52
+ };
53
+ }
54
+ return result;
55
+ }
56
+ const transactionFor = (client) => ({
57
+ async exec(sql, params = [], _metadata) {
58
+ const result = await client.query(sql, params);
59
+ return { changes: result.rowCount ?? 0 };
60
+ },
61
+ async query(sql, params = []) {
62
+ return (await client.query(sql, params)).rows;
63
+ },
64
+ queryAst(ast, format, queryName) {
65
+ if (!options.queryAst) {
66
+ if (!options.schema) {
67
+ throw new TypeError('PostgreSQL application database requires schema or queryAst for ZQL reads');
68
+ }
69
+ serverSchema ??= introspectServerSchema(client);
70
+ const dbTransaction = {
71
+ wrappedTransaction: client,
72
+ async query(sql, params) {
73
+ return (await client.query(sql, params)).rows;
74
+ },
75
+ runQuery(queryAst, queryFormat, schema, resolvedServerSchema) {
76
+ return executePostgresQuery(this, queryAst, queryFormat, schema, resolvedServerSchema);
77
+ },
78
+ };
79
+ return serverSchema.then((resolved) => executePostgresQuery(dbTransaction, ast, format, options.schema, resolved));
80
+ }
81
+ return options.queryAst(client, ast, format, queryName);
82
+ },
83
+ });
84
+ return {
85
+ dialect: 'postgresql',
86
+ internalSchema: options.internalSchema,
87
+ async transaction(work) {
88
+ const client = await pool.connect();
89
+ try {
90
+ await client.query('BEGIN');
91
+ const result = await work(transactionFor(client));
92
+ await client.query('COMMIT');
93
+ return result;
94
+ }
95
+ catch (error) {
96
+ try {
97
+ await client.query('ROLLBACK');
98
+ }
99
+ catch {
100
+ // preserve the application or commit error that caused the rollback.
101
+ }
102
+ throw error;
103
+ }
104
+ finally {
105
+ client.release();
106
+ }
107
+ },
108
+ async query(sql, params = []) {
109
+ return (await pool.query(sql, params)).rows;
110
+ },
111
+ };
112
+ }
113
+ export function createSQLiteApplicationDatabase(options) {
114
+ return { dialect: 'sqlite', ...options };
115
+ }
116
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"packed-ledger.d.ts","sourceRoot":"","sources":["../src/packed-ledger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACd,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;CACtD,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AA4JD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA6Ff;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrF;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CASf;AA0CD,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,sBAAsB,EAC1B,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,QAAQ,CAAC,EAAE,oBAAoB,EAC/B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAkFf;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,sBAAsB,EAC1B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAOjB"}
1
+ {"version":3,"file":"packed-ledger.d.ts","sourceRoot":"","sources":["../src/packed-ledger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACd,MAAM,YAAY,CAAA;AAEnB,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAA;CACtD,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC5B,CAAA;AA4JD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA0If;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,CAUrF;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CASf;AA0CD,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,sBAAsB,EAC1B,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,QAAQ,CAAC,EAAE,oBAAoB,EAC/B,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,IAAI,CAAC,CAkFf;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,sBAAsB,EAC1B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAOjB"}
@@ -110,41 +110,83 @@ export async function initializePackedLedger(database) {
110
110
  // read only the active segment here: this runs on every executor start,
111
111
  // and scanning every retained payload belongs to the format-1 migration
112
112
  // alone.
113
- const activeRows = await tx.query(`SELECT "payload" AS "payload" FROM "_zsync_log_segments"
114
- ORDER BY "startVersion" DESC LIMIT 1`);
113
+ // captureMode rides along on the row we already read, so the residue check
114
+ // below costs nothing on a settled namespace.
115
+ const activeRows = await tx.query(`SELECT "payload" AS "payload", "captureMode" AS "captureMode"
116
+ FROM "_zsync_log_segments" ORDER BY "startVersion" DESC LIMIT 1`);
115
117
  if (activeRows.length > 0) {
116
- let activePayload;
118
+ const active = activeRows[0];
119
+ let activePayload = null;
117
120
  try {
118
- parsePayload(activeRows[0].payload);
119
- return;
121
+ parsePayload(active.payload);
120
122
  }
121
123
  catch {
122
- activePayload = parseLegacyPayload(activeRows[0].payload);
124
+ activePayload = parseLegacyPayload(active.payload);
123
125
  }
124
- for (const [clientGroupID, clients] of Object.entries(activePayload.lmids)) {
125
- for (const [clientID, mutationID] of Object.entries(clients)) {
126
- await tx.exec(`INSERT INTO "_zsync_clients"
127
- ("clientGroupID", "clientID", "lastMutationID", "userID")
128
- VALUES (?, ?, ?, NULL)
129
- ON CONFLICT ("clientGroupID", "clientID")
130
- DO UPDATE SET "lastMutationID" = excluded."lastMutationID"`, [clientGroupID, clientID, counter(mutationID, 'legacy last mutation id')]);
126
+ if (activePayload) {
127
+ // validate every lmid before writing anything, matching the row-by-row
128
+ // parse this replaces: a value that is not a non-negative integer fails
129
+ // the migration instead of CASTing to a silently wrong number.
130
+ for (const clients of Object.values(activePayload.lmids)) {
131
+ for (const mutationID of Object.values(clients)) {
132
+ counter(mutationID, 'legacy last mutation id');
133
+ }
131
134
  }
135
+ // every retained payload must be a known format before the set-based
136
+ // rewrite below silently skips non-format-1 rows.
137
+ const unknown = await tx.query(`SELECT 1 FROM "_zsync_log_segments"
138
+ WHERE CAST(json_extract("payload", '$.format') AS INTEGER) NOT IN (1, 2)
139
+ LIMIT 1`);
140
+ if (unknown.length > 0) {
141
+ throw new MutationWriteSetError('packed ledger payload has an unknown shape');
142
+ }
143
+ // the whole active lmids map lands in one set-based statement. the
144
+ // row-per-client loop this replaces paid one wire round trip per
145
+ // client, which timed a 12k-client production namespace out of every
146
+ // delegated-push budget; sqlite walks the payload json itself in
147
+ // milliseconds.
148
+ await tx.exec(`INSERT INTO "_zsync_clients"
149
+ ("clientGroupID", "clientID", "lastMutationID", "userID")
150
+ SELECT "grp"."key", "client"."key", CAST("client"."value" AS INTEGER), NULL
151
+ FROM "_zsync_log_segments" "segment",
152
+ json_each("segment"."payload", '$.lmids') "grp",
153
+ json_each("grp"."value") "client"
154
+ WHERE "segment"."startVersion" =
155
+ (SELECT MAX("startVersion") FROM "_zsync_log_segments")
156
+ ON CONFLICT ("clientGroupID", "clientID")
157
+ DO UPDATE SET "lastMutationID" = excluded."lastMutationID"`);
158
+ // one rewrite strips lmids and stamps format 2 across every retained
159
+ // format-1 segment. transactions are carried verbatim: both formats
160
+ // serialize the same {version, changes, reset?} entries, and the
161
+ // parsers ignore unknown fields.
162
+ await tx.exec(`UPDATE "_zsync_log_segments"
163
+ SET "payload" = json_remove(json_set("payload", '$.format', 2), '$.lmids')
164
+ WHERE CAST(json_extract("payload", '$.format') AS INTEGER) = 1`);
132
165
  }
133
- const segments = await tx.query(`SELECT "startVersion" AS "startVersion", "payload" AS "payload"
134
- FROM "_zsync_log_segments" ORDER BY "startVersion"`);
135
- for (const segment of segments) {
136
- const legacy = parseLegacyPayload(segment.payload);
137
- await tx.exec(`UPDATE "_zsync_log_segments" SET "payload" = ? WHERE "startVersion" = ?`, [
138
- JSON.stringify({
139
- format: 2,
140
- transactions: legacy.transactions.map(({ changes, reset, version }) => ({
141
- version,
142
- changes,
143
- ...(reset ? { reset: true } : {}),
144
- })),
145
- }),
146
- counter(segment.startVersion, 'start version'),
147
- ]);
166
+ // a committed captureMode = 1 is orphaned capture state. this column is
167
+ // toggled through plain sql mid-transaction, so a delegated push
168
+ // abandoned before commit or rollback used to leave it set forever: every
169
+ // later push then failed preparePackedLedger with "uncommitted capture
170
+ // state", and the trigger bodies (gated on captureMode = 0) silently
171
+ // dropped the next write's change envelope while still writing its row.
172
+ // the tx journal restores the column on session disposal now, so anything
173
+ // still set at start-up belongs to a namespace wedged before that landed
174
+ // and no live writer owns it.
175
+ //
176
+ // one exception: while a transaction is journaled in flight, the toggle is
177
+ // that transaction's, and its commit or rollback (not this pass) resolves
178
+ // it. `_orez_tx_manifest` rows exist exactly until a transaction commits,
179
+ // so their absence is the proof that no writer is mid-flight; a host that
180
+ // keeps no journal has no such writer either.
181
+ if (counter(active.captureMode, 'capture mode') !== 0) {
182
+ const journaling = await tx.query(`SELECT 1 FROM sqlite_schema
183
+ WHERE type = 'table' AND name = '_orez_tx_manifest'`);
184
+ const inFlight = journaling.length > 0 &&
185
+ (await tx.query(`SELECT 1 FROM "_orez_tx_manifest" LIMIT 1`)).length > 0;
186
+ if (!inFlight) {
187
+ await tx.exec(`UPDATE "_zsync_log_segments" SET "captureMode" = 0
188
+ WHERE "startVersion" = (SELECT MAX("startVersion") FROM "_zsync_log_segments")`);
189
+ }
148
190
  }
149
191
  return;
150
192
  }
@@ -1 +1 @@
1
- {"version":3,"file":"packed-ledger.js","sourceRoot":"","sources":["../src/packed-ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"packed-ledger.js","sourceRoot":"","sources":["../src/packed-ledger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,sBAAsB,EAEtB,iBAAiB,EAElB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAwB,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElE,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,MAAM,EAAE,CAAC,EACT,aAAa,EAAE,sBAAsB,EACrC,QAAQ,SAAK,EACb,UAAU,SAAI,GACb,iBAAiB,CAAC,CAAC,CAAC,CA0CtB"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,sBAAsB,EAEtB,iBAAiB,EAElB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAwB,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAElE,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,MAAM,EAAE,CAAC,EACT,aAAa,EAAE,sBAAsB,EACrC,QAAQ,SAAK,EACb,UAAU,SAAI,GACb,iBAAiB,CAAC,CAAC,CAAC,CAmDtB"}
@@ -4,12 +4,17 @@ import { executeCrud } from './crud.js';
4
4
  export function createServerTransaction(schema, applicationTx, clientID = '', mutationID = 0) {
5
5
  const mutate = {};
6
6
  for (const tableName of Object.keys(schema.tables)) {
7
- mutate[tableName] = {
8
- insert: (value) => executeCrud(applicationTx, schema, tableName, 'insert', value),
9
- upsert: (value) => executeCrud(applicationTx, schema, tableName, 'upsert', value),
10
- update: (value) => executeCrud(applicationTx, schema, tableName, 'update', value),
11
- delete: (value) => executeCrud(applicationTx, schema, tableName, 'delete', value),
12
- };
7
+ Object.defineProperty(mutate, tableName, {
8
+ configurable: true,
9
+ enumerable: true,
10
+ writable: true,
11
+ value: {
12
+ insert: (value) => executeCrud(applicationTx, schema, tableName, 'insert', value),
13
+ upsert: (value) => executeCrud(applicationTx, schema, tableName, 'upsert', value),
14
+ update: (value) => executeCrud(applicationTx, schema, tableName, 'update', value),
15
+ delete: (value) => executeCrud(applicationTx, schema, tableName, 'delete', value),
16
+ },
17
+ });
13
18
  }
14
19
  const dbTransaction = {
15
20
  wrappedTransaction: applicationTx,
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAUvC,MAAM,UAAU,uBAAuB,CACrC,MAAS,EACT,aAAqC,EACrC,QAAQ,GAAG,EAAE,EACb,UAAU,GAAG,CAAC;IAEd,MAAM,MAAM,GAAsE,EAAE,CAAA;IACpF,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,SAAS,CAAC,GAAG;YAClB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;YACjF,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;YACjF,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;YACjF,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;SAClF,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,kBAAkB,EAAE,aAAa;QACjC,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,IAAe;YACtC,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC;QACD,KAAK,CAAC,QAAQ,CACZ,GAAc,EACd,MAA8B;YAE9B,OAAO,aAAa,CAAC,QAAQ,CAAS,GAAG,EAAE,MAAM,CAAC,CAAA;QACpD,CAAC;KACF,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,eAAe;QACvB,QAAQ;QACR,UAAU;QACV,MAAM;QACN,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;QAC5B,aAAa;QACb,KAAK,CAAC,GAAG,CACP,KAA+B;YAE/B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO,aAAa,CAAC,QAAQ,CAC3B,SAAS,CAAC,GAAgB,EAC1B,SAAS,CAAC,MAAM,CACjB,CAAA;QACH,CAAC;KACiC,CAAA;AACtC,CAAC"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAUvC,MAAM,UAAU,uBAAuB,CACrC,MAAS,EACT,aAAqC,EACrC,QAAQ,GAAG,EAAE,EACb,UAAU,GAAG,CAAC;IAEd,MAAM,MAAM,GAAsE,EAAE,CAAA;IACpF,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;YACvC,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE;gBACL,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CACzB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;gBAChE,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CACzB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;gBAChE,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CACzB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;gBAChE,MAAM,EAAE,CAAC,KAAc,EAAE,EAAE,CACzB,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC;aACjE;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,aAAa,GAAG;QACpB,kBAAkB,EAAE,aAAa;QACjC,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,IAAe;YACtC,OAAO,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC;QACD,KAAK,CAAC,QAAQ,CACZ,GAAc,EACd,MAA8B;YAE9B,OAAO,aAAa,CAAC,QAAQ,CAAS,GAAG,EAAE,MAAM,CAAC,CAAA;QACpD,CAAC;KACF,CAAA;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,eAAe;QACvB,QAAQ;QACR,UAAU;QACV,MAAM;QACN,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC;QAC5B,aAAa;QACb,KAAK,CAAC,GAAG,CACP,KAA+B;YAE/B,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;YACzC,OAAO,aAAa,CAAC,QAAQ,CAC3B,SAAS,CAAC,GAAgB,EAC1B,SAAS,CAAC,MAAM,CACjB,CAAA;QACH,CAAC;KACiC,CAAA;AACtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orez-sync-executor",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Internal orez engine package. Do not import directly: consumers use orez-lite (e.g. orez-lite/realtime).",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -35,7 +35,7 @@
35
35
  "@rocicorp/zero": ">=1.7.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@rocicorp/zero": "1.8.0",
38
+ "@rocicorp/zero": "1.9.0",
39
39
  "@types/bun": "1.3.14",
40
40
  "typescript": "5.9.3",
41
41
  "vitest": "3.2.4"