on-zero 0.6.11 → 0.6.13

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 (131) hide show
  1. package/dist/cjs/createZeroSQLiteServer.cjs +319 -0
  2. package/dist/cjs/createZeroSQLiteServer.native.js +440 -0
  3. package/dist/cjs/createZeroSQLiteServer.native.js.map +1 -0
  4. package/dist/cjs/createZeroSQLiteServer.test.cjs +429 -0
  5. package/dist/cjs/createZeroSQLiteServer.test.native.js +466 -0
  6. package/dist/cjs/createZeroSQLiteServer.test.native.js.map +1 -0
  7. package/dist/cjs/createZeroServer.cjs +20 -234
  8. package/dist/cjs/createZeroServer.native.js +24 -250
  9. package/dist/cjs/createZeroServer.native.js.map +1 -1
  10. package/dist/cjs/createZeroServer.test.cjs +35 -1
  11. package/dist/cjs/createZeroServer.test.native.js +38 -1
  12. package/dist/cjs/createZeroServer.test.native.js.map +1 -1
  13. package/dist/cjs/createZeroServerCore.cjs +362 -0
  14. package/dist/cjs/createZeroServerCore.native.js +389 -0
  15. package/dist/cjs/createZeroServerCore.native.js.map +1 -0
  16. package/dist/cjs/generate-lite.cjs +1 -0
  17. package/dist/cjs/generate-lite.native.js +1 -0
  18. package/dist/cjs/generate-lite.native.js.map +1 -1
  19. package/dist/cjs/generate-lite.test.cjs +5 -1
  20. package/dist/cjs/generate-lite.test.native.js +5 -1
  21. package/dist/cjs/generate-lite.test.native.js.map +1 -1
  22. package/dist/cjs/generate.cjs +20 -11
  23. package/dist/cjs/generate.native.js +29 -21
  24. package/dist/cjs/generate.native.js.map +1 -1
  25. package/dist/cjs/generate.test.cjs +110 -0
  26. package/dist/cjs/generate.test.native.js +110 -0
  27. package/dist/cjs/generate.test.native.js.map +1 -1
  28. package/dist/cjs/httpPull/transport.test.cjs +44 -0
  29. package/dist/cjs/httpPull/transport.test.native.js +53 -0
  30. package/dist/cjs/httpPull/transport.test.native.js.map +1 -1
  31. package/dist/cjs/httpPullTransport.cjs +4 -1
  32. package/dist/cjs/httpPullTransport.native.js +5 -2
  33. package/dist/cjs/httpPullTransport.native.js.map +1 -1
  34. package/dist/cjs/server.cjs +2 -1
  35. package/dist/cjs/syncHost.cjs +164 -0
  36. package/dist/cjs/syncHost.native.js +371 -0
  37. package/dist/cjs/syncHost.native.js.map +1 -0
  38. package/dist/cjs/syncHost.test.cjs +229 -0
  39. package/dist/cjs/syncHost.test.native.js +278 -0
  40. package/dist/cjs/syncHost.test.native.js.map +1 -0
  41. package/dist/esm/createZeroSQLiteServer.mjs +293 -0
  42. package/dist/esm/createZeroSQLiteServer.mjs.map +1 -0
  43. package/dist/esm/createZeroSQLiteServer.native.js +411 -0
  44. package/dist/esm/createZeroSQLiteServer.native.js.map +1 -0
  45. package/dist/esm/createZeroSQLiteServer.test.mjs +430 -0
  46. package/dist/esm/createZeroSQLiteServer.test.mjs.map +1 -0
  47. package/dist/esm/createZeroSQLiteServer.test.native.js +464 -0
  48. package/dist/esm/createZeroSQLiteServer.test.native.js.map +1 -0
  49. package/dist/esm/createZeroServer.mjs +17 -231
  50. package/dist/esm/createZeroServer.mjs.map +1 -1
  51. package/dist/esm/createZeroServer.native.js +21 -247
  52. package/dist/esm/createZeroServer.native.js.map +1 -1
  53. package/dist/esm/createZeroServer.test.mjs +35 -1
  54. package/dist/esm/createZeroServer.test.mjs.map +1 -1
  55. package/dist/esm/createZeroServer.test.native.js +38 -1
  56. package/dist/esm/createZeroServer.test.native.js.map +1 -1
  57. package/dist/esm/createZeroServerCore.mjs +336 -0
  58. package/dist/esm/createZeroServerCore.mjs.map +1 -0
  59. package/dist/esm/createZeroServerCore.native.js +360 -0
  60. package/dist/esm/createZeroServerCore.native.js.map +1 -0
  61. package/dist/esm/generate-lite.mjs +1 -0
  62. package/dist/esm/generate-lite.mjs.map +1 -1
  63. package/dist/esm/generate-lite.native.js +1 -0
  64. package/dist/esm/generate-lite.native.js.map +1 -1
  65. package/dist/esm/generate-lite.test.mjs +5 -1
  66. package/dist/esm/generate-lite.test.mjs.map +1 -1
  67. package/dist/esm/generate-lite.test.native.js +5 -1
  68. package/dist/esm/generate-lite.test.native.js.map +1 -1
  69. package/dist/esm/generate.mjs +20 -11
  70. package/dist/esm/generate.mjs.map +1 -1
  71. package/dist/esm/generate.native.js +29 -21
  72. package/dist/esm/generate.native.js.map +1 -1
  73. package/dist/esm/generate.test.mjs +87 -1
  74. package/dist/esm/generate.test.mjs.map +1 -1
  75. package/dist/esm/generate.test.native.js +87 -1
  76. package/dist/esm/generate.test.native.js.map +1 -1
  77. package/dist/esm/httpPull/transport.test.mjs +44 -0
  78. package/dist/esm/httpPull/transport.test.mjs.map +1 -1
  79. package/dist/esm/httpPull/transport.test.native.js +53 -0
  80. package/dist/esm/httpPull/transport.test.native.js.map +1 -1
  81. package/dist/esm/httpPullTransport.mjs +4 -1
  82. package/dist/esm/httpPullTransport.mjs.map +1 -1
  83. package/dist/esm/httpPullTransport.native.js +5 -2
  84. package/dist/esm/httpPullTransport.native.js.map +1 -1
  85. package/dist/esm/server.mjs +1 -0
  86. package/dist/esm/server.mjs.map +1 -1
  87. package/dist/esm/syncHost.mjs +138 -0
  88. package/dist/esm/syncHost.mjs.map +1 -0
  89. package/dist/esm/syncHost.native.js +342 -0
  90. package/dist/esm/syncHost.native.js.map +1 -0
  91. package/dist/esm/syncHost.test.mjs +206 -0
  92. package/dist/esm/syncHost.test.mjs.map +1 -0
  93. package/dist/esm/syncHost.test.native.js +252 -0
  94. package/dist/esm/syncHost.test.native.js.map +1 -0
  95. package/package.json +19 -3
  96. package/readme.md +26 -0
  97. package/src/createZeroSQLiteServer.test.ts +461 -0
  98. package/src/createZeroSQLiteServer.ts +523 -0
  99. package/src/createZeroServer.test.ts +39 -1
  100. package/src/createZeroServer.ts +35 -428
  101. package/src/createZeroServerCore.ts +557 -0
  102. package/src/generate-lite.test.ts +4 -0
  103. package/src/generate-lite.ts +1 -0
  104. package/src/generate.test.ts +87 -1
  105. package/src/generate.ts +29 -20
  106. package/src/httpPull/transport.test.ts +47 -0
  107. package/src/httpPullTransport.ts +15 -1
  108. package/src/server.ts +1 -0
  109. package/src/syncHost.test.ts +216 -0
  110. package/src/syncHost.ts +255 -0
  111. package/test-fixtures/server-return-types.ts +50 -0
  112. package/test-fixtures/tsconfig.json +13 -0
  113. package/types/createZeroSQLiteServer.d.ts +37 -0
  114. package/types/createZeroSQLiteServer.d.ts.map +1 -0
  115. package/types/createZeroSQLiteServer.test.d.ts +2 -0
  116. package/types/createZeroSQLiteServer.test.d.ts.map +1 -0
  117. package/types/createZeroServer.d.ts +11 -293
  118. package/types/createZeroServer.d.ts.map +1 -1
  119. package/types/createZeroServerCore.d.ts +310 -0
  120. package/types/createZeroServerCore.d.ts.map +1 -0
  121. package/types/generate-lite.d.ts.map +1 -1
  122. package/types/generate.d.ts +2 -1
  123. package/types/generate.d.ts.map +1 -1
  124. package/types/httpPullTransport.d.ts +2 -0
  125. package/types/httpPullTransport.d.ts.map +1 -1
  126. package/types/server.d.ts +1 -0
  127. package/types/server.d.ts.map +1 -1
  128. package/types/syncHost.d.ts +51 -0
  129. package/types/syncHost.d.ts.map +1 -0
  130. package/types/syncHost.test.d.ts +2 -0
  131. package/types/syncHost.test.d.ts.map +1 -0
@@ -0,0 +1,464 @@
1
+ import { DatabaseSync } from "node:sqlite";
2
+ import { boolean, createSchema, json, relationships, string, table } from "@rocicorp/zero";
3
+ import { asQueryInternals } from "@rocicorp/zero/bindings";
4
+ import { afterEach, beforeEach, describe, expect, test } from "vitest";
5
+ import { createZeroSQLiteServer } from "./createZeroSQLiteServer.native.js";
6
+ import { zeroHttpFixtureSchema } from "./httpPull/fixtureSchema.native.js";
7
+ var note = table("note").from("note_records").columns({
8
+ id: string().from("note_id"),
9
+ done: boolean(),
10
+ data: json().optional()
11
+ }).primaryKey("id");
12
+ var sqliteTypesSchema = createSchema({
13
+ tables: [note],
14
+ relationships: [],
15
+ enableLegacyQueries: true
16
+ });
17
+ var person = table("person").columns({
18
+ id: string()
19
+ }).primaryKey("id");
20
+ var membership = table("membership").columns({
21
+ personId: string(),
22
+ teamId: string()
23
+ }).primaryKey("personId", "teamId");
24
+ var team = table("team").from("team_records").columns({
25
+ id: string().from("team_id"),
26
+ active: boolean().from("is_active"),
27
+ metadata: json().from("metadata_json")
28
+ }).primaryKey("id");
29
+ var twoHopSchema = createSchema({
30
+ tables: [person, membership, team],
31
+ relationships: [relationships(person, function (param) {
32
+ var {
33
+ many
34
+ } = param;
35
+ return {
36
+ teams: many({
37
+ sourceField: ["id"],
38
+ destSchema: membership,
39
+ destField: ["personId"]
40
+ }, {
41
+ sourceField: ["teamId"],
42
+ destSchema: team,
43
+ destField: ["id"]
44
+ })
45
+ };
46
+ })]
47
+ });
48
+ function pushRequest(id, name, args) {
49
+ return new Request("http://localhost/push?schema=zero_0&appID=zero", {
50
+ method: "POST",
51
+ headers: {
52
+ "content-type": "application/json"
53
+ },
54
+ body: JSON.stringify({
55
+ clientGroupID: "cg1",
56
+ mutations: [{
57
+ type: "custom",
58
+ id,
59
+ clientID: "client-a",
60
+ name,
61
+ args: [args],
62
+ timestamp: 1
63
+ }],
64
+ pushVersion: 1,
65
+ timestamp: 1,
66
+ requestID: "req-" + id
67
+ })
68
+ });
69
+ }
70
+ function cleanupRequest() {
71
+ return new Request("http://localhost/push?schema=zero_0&appID=zero", {
72
+ method: "POST",
73
+ headers: {
74
+ "content-type": "application/json"
75
+ },
76
+ body: JSON.stringify({
77
+ clientGroupID: "cg1",
78
+ mutations: [{
79
+ type: "custom",
80
+ id: 2,
81
+ clientID: "client-a",
82
+ name: "_zero_cleanupResults",
83
+ args: [{
84
+ clientGroupID: "cg1",
85
+ clientID: "client-a",
86
+ upToMutationID: 1
87
+ }],
88
+ timestamp: 1
89
+ }],
90
+ pushVersion: 1,
91
+ timestamp: 1,
92
+ requestID: "cleanup"
93
+ })
94
+ });
95
+ }
96
+ describe("createZeroSQLiteServer", function () {
97
+ var db;
98
+ var retryNextTransaction;
99
+ var transactionProvider;
100
+ beforeEach(function () {
101
+ db = new DatabaseSync(":memory:");
102
+ db.exec(["CREATE TABLE project (id TEXT PRIMARY KEY, ownerId TEXT NOT NULL, name TEXT NOT NULL);", "CREATE TABLE note_records (note_id TEXT PRIMARY KEY, done INTEGER NOT NULL, data TEXT);"].join("\n"));
103
+ retryNextTransaction = false;
104
+ var executor = {
105
+ async exec(sql) {
106
+ var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
107
+ db.prepare(sql).run(...params);
108
+ },
109
+ async query(sql) {
110
+ var params = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
111
+ return db.prepare(sql).all(...params);
112
+ },
113
+ async queryAst(ast, format) {
114
+ var rows;
115
+ if (ast.table === "project") {
116
+ rows = db.prepare("SELECT * FROM project ORDER BY id").all();
117
+ } else if (ast.table === "note") {
118
+ rows = db.prepare("SELECT note_id, done, data FROM note_records ORDER BY note_id").all().map(function (row) {
119
+ return {
120
+ id: row.note_id,
121
+ done: row.done !== 0,
122
+ data: typeof row.data === "string" ? JSON.parse(row.data) : row.data
123
+ };
124
+ });
125
+ } else if (ast.table === "person") {
126
+ rows = [{
127
+ id: "p1",
128
+ teams: [{
129
+ id: "t1",
130
+ active: true,
131
+ metadata: {
132
+ label: "core"
133
+ }
134
+ }]
135
+ }];
136
+ } else {
137
+ throw new Error("unexpected table " + ast.table);
138
+ }
139
+ return format.singular ? rows[0] : rows;
140
+ }
141
+ };
142
+ var run = async function (callback) {
143
+ db.exec("BEGIN");
144
+ try {
145
+ var value = await callback(executor);
146
+ db.exec("COMMIT");
147
+ return value;
148
+ } catch (error) {
149
+ db.exec("ROLLBACK");
150
+ throw error;
151
+ }
152
+ };
153
+ transactionProvider = async function (callback) {
154
+ if (retryNextTransaction) {
155
+ retryNextTransaction = false;
156
+ db.exec("BEGIN");
157
+ await callback(executor);
158
+ db.exec("ROLLBACK");
159
+ }
160
+ return run(callback);
161
+ };
162
+ });
163
+ afterEach(function () {
164
+ db.close();
165
+ });
166
+ test("commits CRUD, the mutation ledger, and one retry-safe async task", async function () {
167
+ var effectRuns = 0;
168
+ var server = createZeroSQLiteServer({
169
+ schema: zeroHttpFixtureSchema,
170
+ models: {
171
+ project: {
172
+ mutate: {
173
+ create: async function (param, value) {
174
+ var {
175
+ tx,
176
+ server: server2
177
+ } = param;
178
+ await tx.mutate.project.insert(value);
179
+ server2 === null || server2 === void 0 ? void 0 : server2.asyncTasks.push(async function () {});
180
+ expect(server2 === null || server2 === void 0 ? void 0 : server2.asyncTasks).toHaveLength(1);
181
+ server2 === null || server2 === void 0 ? void 0 : server2.asyncTasks.splice(0, 1, async function () {});
182
+ server2.asyncTasks[0] = async function () {
183
+ effectRuns++;
184
+ };
185
+ }
186
+ }
187
+ }
188
+ },
189
+ createServerActions: function () {
190
+ return {};
191
+ },
192
+ transactionProvider
193
+ });
194
+ retryNextTransaction = true;
195
+ var result = await server.handleMutationRequest({
196
+ authData: null,
197
+ request: pushRequest(1, "project.create", {
198
+ id: "p1",
199
+ ownerId: "u1",
200
+ name: "first"
201
+ }),
202
+ skipAsyncTasks: true
203
+ });
204
+ expect(result.response.mutations[0].result).toEqual({});
205
+ expect(db.prepare("SELECT * FROM project").all()).toEqual([{
206
+ id: "p1",
207
+ ownerId: "u1",
208
+ name: "first"
209
+ }]);
210
+ expect(db.prepare("SELECT * FROM zero_0_clients").all()).toEqual([{
211
+ clientGroupID: "cg1",
212
+ clientID: "client-a",
213
+ lastMutationID: 1
214
+ }]);
215
+ expect(result.asyncTasks).toHaveLength(1);
216
+ await result.asyncTasks[0]();
217
+ expect(effectRuns).toBe(1);
218
+ });
219
+ test("rolls back row writes and persists an application error with its LMID", async function () {
220
+ var server = createZeroSQLiteServer({
221
+ schema: zeroHttpFixtureSchema,
222
+ models: {
223
+ project: {
224
+ mutate: {
225
+ fail: async function (param, value) {
226
+ var {
227
+ tx
228
+ } = param;
229
+ await tx.mutate.project.insert(value);
230
+ throw new Error("rejected");
231
+ }
232
+ }
233
+ }
234
+ },
235
+ createServerActions: function () {
236
+ return {};
237
+ },
238
+ transactionProvider
239
+ });
240
+ var result = await server.handleMutationRequest({
241
+ authData: null,
242
+ request: pushRequest(1, "project.fail", {
243
+ id: "p1",
244
+ ownerId: "u1",
245
+ name: "first"
246
+ })
247
+ });
248
+ expect(result.response.mutations[0].result).toMatchObject({
249
+ error: "app",
250
+ message: "rejected"
251
+ });
252
+ expect(db.prepare("SELECT * FROM project").all()).toEqual([]);
253
+ expect(db.prepare("SELECT lastMutationID FROM zero_0_clients").get()).toEqual({
254
+ lastMutationID: 1
255
+ });
256
+ var stored = db.prepare("SELECT result FROM zero_0_mutations").get();
257
+ expect(JSON.parse(stored.result)).toMatchObject({
258
+ error: "app",
259
+ message: "rejected"
260
+ });
261
+ });
262
+ test("recovers duplicate results and deletes them through the cleanup mutation", async function () {
263
+ var server = createZeroSQLiteServer({
264
+ schema: zeroHttpFixtureSchema,
265
+ models: {
266
+ project: {
267
+ mutate: {
268
+ create: async function (param, value2) {
269
+ var {
270
+ tx
271
+ } = param;
272
+ await tx.mutate.project.insert(value2);
273
+ }
274
+ }
275
+ }
276
+ },
277
+ createServerActions: function () {
278
+ return {};
279
+ },
280
+ transactionProvider
281
+ });
282
+ var value = {
283
+ id: "p1",
284
+ ownerId: "u1",
285
+ name: "first"
286
+ };
287
+ await server.handleMutationRequest({
288
+ authData: null,
289
+ request: pushRequest(1, "project.create", value)
290
+ });
291
+ var duplicate = await server.handleMutationRequest({
292
+ authData: null,
293
+ request: pushRequest(1, "project.create", value)
294
+ });
295
+ expect(duplicate.response.mutations[0].result).toMatchObject({
296
+ error: "alreadyProcessed"
297
+ });
298
+ expect(db.prepare("SELECT lastMutationID FROM zero_0_clients").get()).toEqual({
299
+ lastMutationID: 1
300
+ });
301
+ expect(db.prepare("SELECT COUNT(*) AS count FROM zero_0_mutations").get()).toEqual({
302
+ count: 1
303
+ });
304
+ await server.handleMutationRequest({
305
+ authData: null,
306
+ request: cleanupRequest()
307
+ });
308
+ expect(db.prepare("SELECT COUNT(*) AS count FROM zero_0_mutations").get()).toEqual({
309
+ count: 0
310
+ });
311
+ });
312
+ test("supports direct CRUD, server names, value codecs, and query AST execution", async function () {
313
+ var server = createZeroSQLiteServer({
314
+ schema: sqliteTypesSchema,
315
+ models: {
316
+ note: {
317
+ mutate: {
318
+ insert: async function (param, value) {
319
+ var {
320
+ tx
321
+ } = param;
322
+ await tx.mutate.note.insert(value);
323
+ },
324
+ upsert: async function (param, value) {
325
+ var {
326
+ tx
327
+ } = param;
328
+ await tx.mutate.note.upsert(value);
329
+ },
330
+ update: async function (param, value) {
331
+ var {
332
+ tx
333
+ } = param;
334
+ await tx.mutate.note.update(value);
335
+ },
336
+ delete: async function (param, value) {
337
+ var {
338
+ tx
339
+ } = param;
340
+ await tx.mutate.note.delete(value);
341
+ }
342
+ }
343
+ }
344
+ },
345
+ createServerActions: function () {
346
+ return {};
347
+ },
348
+ transactionProvider
349
+ });
350
+ await server.mutate.note.insert({
351
+ id: "n1",
352
+ done: false,
353
+ data: {
354
+ label: "first"
355
+ }
356
+ });
357
+ await server.mutate.note.upsert({
358
+ id: "n1",
359
+ done: true,
360
+ data: {
361
+ label: "second"
362
+ }
363
+ });
364
+ await server.mutate.note.update({
365
+ id: "n1",
366
+ done: false
367
+ });
368
+ expect(db.prepare("SELECT * FROM note_records").get()).toEqual({
369
+ note_id: "n1",
370
+ done: 0,
371
+ data: JSON.stringify({
372
+ label: "second"
373
+ })
374
+ });
375
+ await expect(server.query(function (q) {
376
+ return q.note;
377
+ })).resolves.toEqual([{
378
+ id: "n1",
379
+ done: false,
380
+ data: {
381
+ label: "second"
382
+ }
383
+ }]);
384
+ await server.transaction(async function (tx) {
385
+ if (tx.location !== "server") throw new Error("expected server transaction");
386
+ await expect(tx.query.note.one().run()).resolves.toEqual({
387
+ id: "n1",
388
+ done: false,
389
+ data: {
390
+ label: "second"
391
+ }
392
+ });
393
+ await expect(tx.dbTransaction.query("SELECT * FROM note_records", [])).resolves.toEqual([{
394
+ note_id: "n1",
395
+ done: 0,
396
+ data: JSON.stringify({
397
+ label: "second"
398
+ })
399
+ }]);
400
+ });
401
+ await server.mutate.note.delete({
402
+ id: "n1"
403
+ });
404
+ expect(db.prepare("SELECT * FROM note_records").all()).toEqual([]);
405
+ });
406
+ test("decodes destination rows through a hidden two-hop junction", async function () {
407
+ var server = createZeroSQLiteServer({
408
+ schema: twoHopSchema,
409
+ models: {},
410
+ createServerActions: function () {
411
+ return {};
412
+ },
413
+ transactionProvider
414
+ });
415
+ await expect(server.query(function (q) {
416
+ return q.person.related("teams");
417
+ })).resolves.toEqual([{
418
+ id: "p1",
419
+ teams: [{
420
+ id: "t1",
421
+ active: true,
422
+ metadata: {
423
+ label: "core"
424
+ }
425
+ }]
426
+ }]);
427
+ });
428
+ test("accepts a hydrated singular query result from the transaction executor", async function () {
429
+ var hydrated = {
430
+ id: "n1",
431
+ done: false,
432
+ data: {
433
+ label: "already decoded"
434
+ }
435
+ };
436
+ var receivedQueryName;
437
+ var hydratedExecutor = {
438
+ async exec() {},
439
+ async query() {
440
+ return [];
441
+ },
442
+ async queryAst(_ast, _format, queryName) {
443
+ receivedQueryName = queryName;
444
+ return hydrated;
445
+ }
446
+ };
447
+ var hydratedProvider = async function (callback) {
448
+ return callback(hydratedExecutor);
449
+ };
450
+ var server = createZeroSQLiteServer({
451
+ schema: sqliteTypesSchema,
452
+ models: {},
453
+ createServerActions: function () {
454
+ return {};
455
+ },
456
+ transactionProvider: hydratedProvider
457
+ });
458
+ await expect(server.query(function (q) {
459
+ return asQueryInternals(q.note.one()).nameAndArgs("noteByID", ["n1"]);
460
+ })).resolves.toEqual(hydrated);
461
+ expect(receivedQueryName).toBe("noteByID");
462
+ });
463
+ });
464
+ //# sourceMappingURL=createZeroSQLiteServer.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DatabaseSync","boolean","createSchema","json","relationships","string","table","asQueryInternals","afterEach","beforeEach","describe","expect","test","createZeroSQLiteServer","zeroHttpFixtureSchema","note","from","columns","id","done","data","optional","primaryKey","sqliteTypesSchema","tables","enableLegacyQueries","person","membership","personId","teamId","team","active","metadata","twoHopSchema","param","many","teams","sourceField","destSchema","destField","pushRequest","name","args","Request","method","headers","body","JSON","stringify","clientGroupID","mutations","type","clientID","timestamp","pushVersion","requestID","cleanupRequest","upToMutationID","db","retryNextTransaction","transactionProvider","exec","join","executor","sql","params","arguments","length","prepare","run","query","all","queryAst","ast","format","rows","map","row","note_id","parse","label","Error","singular","callback","value","error","close","effectRuns","server","schema","models","project","mutate","create","tx","server2","insert","asyncTasks","push","toHaveLength","splice","createServerActions","result","handleMutationRequest","authData","request","ownerId","skipAsyncTasks","response","toEqual","lastMutationID","toBe","fail","toMatchObject","message","get","stored","value2","duplicate","count","upsert","update","delete","q","resolves","transaction","location","one"],"sources":["../../src/createZeroSQLiteServer.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}