@rocicorp/zero 0.18.2025032102 → 0.18.2025032401

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 (93) hide show
  1. package/out/{zql/src/query → ast-to-zql/src}/ast-to-zql.d.ts +1 -1
  2. package/out/ast-to-zql/src/ast-to-zql.d.ts.map +1 -0
  3. package/out/ast-to-zql/src/ast-to-zql.js +191 -0
  4. package/out/ast-to-zql/src/ast-to-zql.js.map +1 -0
  5. package/out/ast-to-zql/src/bin.d.ts +2 -0
  6. package/out/ast-to-zql/src/bin.d.ts.map +1 -0
  7. package/out/ast-to-zql/src/bin.js +92 -0
  8. package/out/ast-to-zql/src/bin.js.map +1 -0
  9. package/out/{chunk-62LPXRYD.js → chunk-5WXONOGR.js} +154 -46
  10. package/out/{chunk-62LPXRYD.js.map → chunk-5WXONOGR.js.map} +4 -4
  11. package/out/{chunk-KRZMF5WQ.js → chunk-DSUPSGE4.js} +10 -1
  12. package/out/{chunk-KRZMF5WQ.js.map → chunk-DSUPSGE4.js.map} +2 -2
  13. package/out/{inspector-SVHRQAQN.js → inspector-ROITQB3J.js} +164 -171
  14. package/out/inspector-ROITQB3J.js.map +7 -0
  15. package/out/shared/src/arrays.d.ts +2 -0
  16. package/out/shared/src/arrays.d.ts.map +1 -1
  17. package/out/shared/src/arrays.js +22 -0
  18. package/out/shared/src/arrays.js.map +1 -1
  19. package/out/solid.js +2 -2
  20. package/out/z2s/src/compiler.d.ts.map +1 -1
  21. package/out/z2s/src/compiler.js +1 -8
  22. package/out/z2s/src/compiler.js.map +1 -1
  23. package/out/zero/src/ast-to-zql.d.ts +3 -0
  24. package/out/zero/src/ast-to-zql.d.ts.map +1 -0
  25. package/out/zero/src/ast-to-zql.js +3 -0
  26. package/out/zero/src/ast-to-zql.js.map +1 -0
  27. package/out/zero-cache/src/auth/jwt.js +3 -2
  28. package/out/zero-cache/src/auth/jwt.js.map +1 -1
  29. package/out/zero-cache/src/config/zero-config.d.ts +5 -0
  30. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  31. package/out/zero-cache/src/config/zero-config.js +8 -0
  32. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  33. package/out/zero-cache/src/server/multi/config.d.ts +5 -0
  34. package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
  35. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  36. package/out/zero-cache/src/server/syncer.js +1 -1
  37. package/out/zero-cache/src/server/syncer.js.map +1 -1
  38. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +1 -1
  39. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +18 -1
  40. package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
  41. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +1 -1
  42. package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
  43. package/out/zero-cache/src/services/change-streamer/storer.d.ts +1 -1
  44. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  45. package/out/zero-cache/src/services/change-streamer/storer.js +25 -12
  46. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  47. package/out/zero-cache/src/services/mutagen/pusher.d.ts +5 -4
  48. package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
  49. package/out/zero-cache/src/services/mutagen/pusher.js +135 -13
  50. package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
  51. package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +1 -1
  52. package/out/zero-cache/src/services/view-syncer/client-schema.js +6 -1
  53. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  54. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +5 -4
  55. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  56. package/out/zero-cache/src/services/view-syncer/cvr-store.js +9 -7
  57. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  58. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  59. package/out/zero-cache/src/services/view-syncer/cvr.js +16 -7
  60. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  61. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  62. package/out/zero-cache/src/services/view-syncer/view-syncer.js +16 -3
  63. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  64. package/out/zero-cache/src/types/streams.d.ts.map +1 -1
  65. package/out/zero-cache/src/types/streams.js +11 -15
  66. package/out/zero-cache/src/types/streams.js.map +1 -1
  67. package/out/zero-cache/src/workers/connection.d.ts +1 -0
  68. package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
  69. package/out/zero-cache/src/workers/connection.js +16 -5
  70. package/out/zero-cache/src/workers/connection.js.map +1 -1
  71. package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
  72. package/out/zero-cache/src/workers/syncer-ws-message-handler.js +2 -2
  73. package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
  74. package/out/zero-client/src/client/custom.d.ts +13 -3
  75. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  76. package/out/zero-client/src/client/inspector/inspector.d.ts.map +1 -1
  77. package/out/zero-client/src/client/mutation-tracker.d.ts +21 -0
  78. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -0
  79. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  80. package/out/zero-protocol/src/down.d.ts +40 -1
  81. package/out/zero-protocol/src/down.d.ts.map +1 -1
  82. package/out/zero-protocol/src/down.js +2 -1
  83. package/out/zero-protocol/src/down.js.map +1 -1
  84. package/out/zero-protocol/src/protocol-version.d.ts +1 -1
  85. package/out/zero-protocol/src/protocol-version.js +1 -1
  86. package/out/zero-protocol/src/push.d.ts +76 -4
  87. package/out/zero-protocol/src/push.d.ts.map +1 -1
  88. package/out/zero-protocol/src/push.js +17 -2
  89. package/out/zero-protocol/src/push.js.map +1 -1
  90. package/out/zero.js +2 -2
  91. package/package.json +4 -3
  92. package/out/inspector-SVHRQAQN.js.map +0 -7
  93. package/out/zql/src/query/ast-to-zql.d.ts.map +0 -1
@@ -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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"}
@@ -65,6 +65,45 @@ export declare const downstreamSchema: v.UnionType<[v.TupleType<[v.Type<"connect
65
65
  }, undefined>]>, v.TupleType<[v.Type<"deleteClients">, v.UnionType<[v.ObjectType<Readonly<{
66
66
  clientIDs: v.Optional<readonly string[]>;
67
67
  clientGroupIDs: v.Optional<readonly string[]>;
68
- }>, undefined>]>]>]>;
68
+ }>, undefined>]>]>, v.TupleType<[v.Type<"push-response">, v.UnionType<[v.ObjectType<{
69
+ mutations: v.ArrayType<v.ObjectType<{
70
+ id: v.ObjectType<{
71
+ id: v.Type<number>;
72
+ clientID: v.Type<string>;
73
+ }, undefined>;
74
+ result: v.UnionType<[v.ObjectType<{}, undefined>, v.UnionType<[v.ObjectType<{
75
+ error: v.Type<"app">;
76
+ }, undefined>, v.ObjectType<{
77
+ error: v.Type<"ooo-mutation">;
78
+ }, undefined>]>]>;
79
+ }, undefined>>;
80
+ }, undefined>, v.UnionType<[v.ObjectType<{
81
+ error: v.Type<"unsupported-push-version">;
82
+ mutationIDs: v.Optional<{
83
+ id: number;
84
+ clientID: string;
85
+ }[]>;
86
+ }, undefined>, v.ObjectType<{
87
+ error: v.Type<"unsupported-schema-version">;
88
+ mutationIDs: v.Optional<{
89
+ id: number;
90
+ clientID: string;
91
+ }[]>;
92
+ }, undefined>, v.ObjectType<{
93
+ error: v.Type<"http">;
94
+ status: v.Type<number>;
95
+ details: v.Type<string>;
96
+ mutationIDs: v.Optional<{
97
+ id: number;
98
+ clientID: string;
99
+ }[]>;
100
+ }, undefined>, v.ObjectType<{
101
+ error: v.Type<"zero-pusher">;
102
+ details: v.Type<string>;
103
+ mutationIDs: v.Optional<{
104
+ id: number;
105
+ clientID: string;
106
+ }[]>;
107
+ }, undefined>]>]>]>]>;
69
108
  export type Downstream = v.Infer<typeof downstreamSchema>;
70
109
  //# sourceMappingURL=down.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/down.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAahD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAU5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/down.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAchD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAW5B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -5,6 +5,7 @@ import { errorMessageSchema } from "./error.js";
5
5
  import { pokeEndMessageSchema, pokePartMessageSchema, pokeStartMessageSchema, } from "./poke.js";
6
6
  import { pongMessageSchema } from "./pong.js";
7
7
  import { pullResponseMessageSchema } from "./pull.js";
8
+ import { pushResponseMessageSchema } from "./push.js";
8
9
  import { warmMessageSchema } from "./warm.js";
9
- export const downstreamSchema = v.union(connectedMessageSchema, warmMessageSchema, errorMessageSchema, pongMessageSchema, pokeStartMessageSchema, pokePartMessageSchema, pokeEndMessageSchema, pullResponseMessageSchema, deleteClientsMessageSchema);
10
+ export const downstreamSchema = v.union(connectedMessageSchema, warmMessageSchema, errorMessageSchema, pongMessageSchema, pokeStartMessageSchema, pokePartMessageSchema, pokeEndMessageSchema, pullResponseMessageSchema, deleteClientsMessageSchema, pushResponseMessageSchema);
10
11
  //# sourceMappingURL=down.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"down.js","sourceRoot":"","sources":["../../../../zero-protocol/src/down.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAC,sBAAsB,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAC,yBAAyB,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CACrC,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,CAC3B,CAAC"}
1
+ {"version":3,"file":"down.js","sourceRoot":"","sources":["../../../../zero-protocol/src/down.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAC;AAChD,OAAO,EAAC,sBAAsB,EAAC,MAAM,cAAc,CAAC;AACpD,OAAO,EAAC,0BAA0B,EAAC,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAC,yBAAyB,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EAAC,yBAAyB,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,WAAW,CAAC;AAE5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CACrC,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,CAC1B,CAAC"}
@@ -10,7 +10,7 @@
10
10
  * release. The server (`zero-cache`) must be deployed before clients start
11
11
  * running the new code.
12
12
  */
13
- export declare const PROTOCOL_VERSION = 8;
13
+ export declare const PROTOCOL_VERSION = 9;
14
14
  /**
15
15
  * The minimum server-supported sync protocol version (i.e. the version
16
16
  * declared in the "/sync/v{#}/connect" URL). The contract for
@@ -16,7 +16,7 @@ import { assert } from "../../shared/src/asserts.js";
16
16
  // -- Version 6 makes `pokeStart.cookie` optional. (0.16)
17
17
  // -- Version 7 introduces the initConnection.clientSchema field. (0.17)
18
18
  // -- Version 8 drops support for Version 5 (0.18).
19
- export const PROTOCOL_VERSION = 8;
19
+ export const PROTOCOL_VERSION = 9;
20
20
  /**
21
21
  * The minimum server-supported sync protocol version (i.e. the version
22
22
  * declared in the "/sync/v{#}/connect" URL). The contract for
@@ -252,10 +252,14 @@ declare const mutationIDSchema: v.ObjectType<{
252
252
  declare const mutationOkSchema: v.ObjectType<{}, undefined>;
253
253
  declare const mutationErrorSchema: v.UnionType<[v.ObjectType<{
254
254
  error: v.Type<"app">;
255
- details: v.Type<string>;
256
255
  }, undefined>, v.ObjectType<{
257
256
  error: v.Type<"ooo-mutation">;
258
257
  }, undefined>]>;
258
+ declare const mutationResultSchema: v.UnionType<[v.ObjectType<{}, undefined>, v.UnionType<[v.ObjectType<{
259
+ error: v.Type<"app">;
260
+ }, undefined>, v.ObjectType<{
261
+ error: v.Type<"ooo-mutation">;
262
+ }, undefined>]>]>;
259
263
  declare const mutationResponseSchema: v.ObjectType<{
260
264
  id: v.ObjectType<{
261
265
  id: v.Type<number>;
@@ -263,7 +267,6 @@ declare const mutationResponseSchema: v.ObjectType<{
263
267
  }, undefined>;
264
268
  result: v.UnionType<[v.ObjectType<{}, undefined>, v.UnionType<[v.ObjectType<{
265
269
  error: v.Type<"app">;
266
- details: v.Type<string>;
267
270
  }, undefined>, v.ObjectType<{
268
271
  error: v.Type<"ooo-mutation">;
269
272
  }, undefined>]>]>;
@@ -276,7 +279,6 @@ declare const pushOkSchema: v.ObjectType<{
276
279
  }, undefined>;
277
280
  result: v.UnionType<[v.ObjectType<{}, undefined>, v.UnionType<[v.ObjectType<{
278
281
  error: v.Type<"app">;
279
- details: v.Type<string>;
280
282
  }, undefined>, v.ObjectType<{
281
283
  error: v.Type<"ooo-mutation">;
282
284
  }, undefined>]>]>;
@@ -294,6 +296,21 @@ declare const pushErrorSchema: v.UnionType<[v.ObjectType<{
294
296
  id: number;
295
297
  clientID: string;
296
298
  }[]>;
299
+ }, undefined>, v.ObjectType<{
300
+ error: v.Type<"http">;
301
+ status: v.Type<number>;
302
+ details: v.Type<string>;
303
+ mutationIDs: v.Optional<{
304
+ id: number;
305
+ clientID: string;
306
+ }[]>;
307
+ }, undefined>, v.ObjectType<{
308
+ error: v.Type<"zero-pusher">;
309
+ details: v.Type<string>;
310
+ mutationIDs: v.Optional<{
311
+ id: number;
312
+ clientID: string;
313
+ }[]>;
297
314
  }, undefined>]>;
298
315
  export declare const pushResponseSchema: v.UnionType<[v.ObjectType<{
299
316
  mutations: v.ArrayType<v.ObjectType<{
@@ -303,7 +320,6 @@ export declare const pushResponseSchema: v.UnionType<[v.ObjectType<{
303
320
  }, undefined>;
304
321
  result: v.UnionType<[v.ObjectType<{}, undefined>, v.UnionType<[v.ObjectType<{
305
322
  error: v.Type<"app">;
306
- details: v.Type<string>;
307
323
  }, undefined>, v.ObjectType<{
308
324
  error: v.Type<"ooo-mutation">;
309
325
  }, undefined>]>]>;
@@ -320,7 +336,62 @@ export declare const pushResponseSchema: v.UnionType<[v.ObjectType<{
320
336
  id: number;
321
337
  clientID: string;
322
338
  }[]>;
339
+ }, undefined>, v.ObjectType<{
340
+ error: v.Type<"http">;
341
+ status: v.Type<number>;
342
+ details: v.Type<string>;
343
+ mutationIDs: v.Optional<{
344
+ id: number;
345
+ clientID: string;
346
+ }[]>;
347
+ }, undefined>, v.ObjectType<{
348
+ error: v.Type<"zero-pusher">;
349
+ details: v.Type<string>;
350
+ mutationIDs: v.Optional<{
351
+ id: number;
352
+ clientID: string;
353
+ }[]>;
323
354
  }, undefined>]>]>;
355
+ export declare const pushResponseMessageSchema: v.TupleType<[v.Type<"push-response">, v.UnionType<[v.ObjectType<{
356
+ mutations: v.ArrayType<v.ObjectType<{
357
+ id: v.ObjectType<{
358
+ id: v.Type<number>;
359
+ clientID: v.Type<string>;
360
+ }, undefined>;
361
+ result: v.UnionType<[v.ObjectType<{}, undefined>, v.UnionType<[v.ObjectType<{
362
+ error: v.Type<"app">;
363
+ }, undefined>, v.ObjectType<{
364
+ error: v.Type<"ooo-mutation">;
365
+ }, undefined>]>]>;
366
+ }, undefined>>;
367
+ }, undefined>, v.UnionType<[v.ObjectType<{
368
+ error: v.Type<"unsupported-push-version">;
369
+ mutationIDs: v.Optional<{
370
+ id: number;
371
+ clientID: string;
372
+ }[]>;
373
+ }, undefined>, v.ObjectType<{
374
+ error: v.Type<"unsupported-schema-version">;
375
+ mutationIDs: v.Optional<{
376
+ id: number;
377
+ clientID: string;
378
+ }[]>;
379
+ }, undefined>, v.ObjectType<{
380
+ error: v.Type<"http">;
381
+ status: v.Type<number>;
382
+ details: v.Type<string>;
383
+ mutationIDs: v.Optional<{
384
+ id: number;
385
+ clientID: string;
386
+ }[]>;
387
+ }, undefined>, v.ObjectType<{
388
+ error: v.Type<"zero-pusher">;
389
+ details: v.Type<string>;
390
+ mutationIDs: v.Optional<{
391
+ id: number;
392
+ clientID: string;
393
+ }[]>;
394
+ }, undefined>]>]>]>;
324
395
  export type InsertOp = v.Infer<typeof insertOpSchema>;
325
396
  export type UpsertOp = v.Infer<typeof upsertOpSchema>;
326
397
  export type UpdateOp = v.Infer<typeof updateOpSchema>;
@@ -340,6 +411,7 @@ export type MutationError = v.Infer<typeof mutationErrorSchema>;
340
411
  export type PushError = v.Infer<typeof pushErrorSchema>;
341
412
  export type PushOk = v.Infer<typeof pushOkSchema>;
342
413
  export type MutationID = v.Infer<typeof mutationIDSchema>;
414
+ export type MutationResult = v.Infer<typeof mutationResultSchema>;
343
415
  export declare function mapCRUD(arg: CRUDMutationArg, map: NameMapper): CRUDMutationArg;
344
416
  export {};
345
417
  //# sourceMappingURL=push.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/push.ts"],"names":[],"mappings":"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"}
@@ -83,7 +83,7 @@ const mutationIDSchema = v.object({
83
83
  });
84
84
  const appErrorSchema = v.object({
85
85
  error: v.literal('app'),
86
- details: v.string(),
86
+ // the user can add any additional fields in their API server
87
87
  });
88
88
  const zeroErrorSchema = v.object({
89
89
  error: v.literal('ooo-mutation'),
@@ -112,8 +112,23 @@ const unsupportedSchemaVersionSchema = v.object({
112
112
  // were not processed by the server.
113
113
  mutationIDs: v.array(mutationIDSchema).optional(),
114
114
  });
115
- const pushErrorSchema = v.union(unsupportedPushVersionSchema, unsupportedSchemaVersionSchema);
115
+ const httpErrorSchema = v.object({
116
+ error: v.literal('http'),
117
+ status: v.number(),
118
+ details: v.string(),
119
+ mutationIDs: v.array(mutationIDSchema).optional(),
120
+ });
121
+ const zeroPusherErrorSchema = v.object({
122
+ error: v.literal('zero-pusher'),
123
+ details: v.string(),
124
+ mutationIDs: v.array(mutationIDSchema).optional(),
125
+ });
126
+ const pushErrorSchema = v.union(unsupportedPushVersionSchema, unsupportedSchemaVersionSchema, httpErrorSchema, zeroPusherErrorSchema);
116
127
  export const pushResponseSchema = v.union(pushOkSchema, pushErrorSchema);
128
+ export const pushResponseMessageSchema = v.tuple([
129
+ v.literal('push-response'),
130
+ pushResponseSchema,
131
+ ]);
117
132
  export function mapCRUD(arg, map) {
118
133
  return {
119
134
  ops: arg.ops.map(({ op, tableName, primaryKey, value }) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../zero-protocol/src/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../zero-protocol/src/push.ts"],"names":[],"mappings":"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"}
package/out/zero.js CHANGED
@@ -19,8 +19,8 @@ import {
19
19
  relationships,
20
20
  string,
21
21
  table
22
- } from "./chunk-62LPXRYD.js";
23
- import "./chunk-KRZMF5WQ.js";
22
+ } from "./chunk-5WXONOGR.js";
23
+ import "./chunk-DSUPSGE4.js";
24
24
  import {
25
25
  DEFAULT_TTL
26
26
  } from "./chunk-2B2QE5AT.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rocicorp/zero",
3
- "version": "0.18.2025032102",
3
+ "version": "0.18.2025032401",
4
4
  "description": "Zero is a web framework for serverless web development.",
5
5
  "author": "Rocicorp, Inc.",
6
6
  "repository": {
@@ -16,7 +16,7 @@
16
16
  "scripts": {
17
17
  "build": "rm -rf out && npm run build-server && npm run build-client",
18
18
  "build-client": "tsc -p tsconfig.client.json && tsc-alias -p tsconfig.client.json && npx tsx tool/build.js",
19
- "build-server": "tsc -p tsconfig.server.json && tsc-alias -p tsconfig.server.json && chmod +x out/zero/src/cli.js out/zero/src/build-schema.js out/zero/src/deploy-permissions.js out/zero/src/zero-cache-dev.js",
19
+ "build-server": "tsc -p tsconfig.server.json && tsc-alias -p tsconfig.server.json && chmod +x out/zero/src/cli.js out/zero/src/build-schema.js out/zero/src/deploy-permissions.js out/zero/src/zero-cache-dev.js out/zero/src/ast-to-zql.js",
20
20
  "check-types": "tsc",
21
21
  "check-types:watch": "tsc --watch",
22
22
  "format": "prettier --write .",
@@ -111,7 +111,8 @@
111
111
  "zero-build-schema": "./out/zero/src/build-schema.js",
112
112
  "zero-cache": "./out/zero/src/cli.js",
113
113
  "zero-cache-dev": "./out/zero/src/zero-cache-dev.js",
114
- "zero-deploy-permissions": "./out/zero/src/deploy-permissions.js"
114
+ "zero-deploy-permissions": "./out/zero/src/deploy-permissions.js",
115
+ "ast-to-zql": "./out/zero/src/ast-to-zql.js"
115
116
  },
116
117
  "engines": {
117
118
  "node": ">=20"
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../z2s/src/sql.ts", "../../z2s/src/compiler.ts", "../../zql/src/query/ast-to-zql.ts", "../../zero-client/src/client/inspector/inspector.ts"],
4
- "sourcesContent": ["import type {SQLQuery, FormatConfig} from '@databases/sql';\nimport baseSql from '@databases/sql';\nimport {\n escapePostgresIdentifier,\n escapeSQLiteIdentifier,\n} from '@databases/escape-identifier';\n\nconst pgFormat: FormatConfig = {\n escapeIdentifier: str => escapePostgresIdentifier(str),\n formatValue: (value, index) => ({placeholder: `$${index + 1}`, value}),\n};\n\nconst sqliteFormat: FormatConfig = {\n escapeIdentifier: str => escapeSQLiteIdentifier(str),\n formatValue: value => ({placeholder: '?', value}),\n};\n\nexport function formatPg(sql: SQLQuery) {\n return sql.format(pgFormat);\n}\n\nexport function formatSqlite(sql: SQLQuery) {\n return sql.format(sqliteFormat);\n}\n\nexport const sql = baseSql.default;\n", "import {assert} from '../../shared/src/asserts.ts';\nimport {must} from '../../shared/src/must.ts';\nimport type {\n CorrelatedSubqueryCondition,\n Correlation,\n Ordering,\n ValuePosition,\n} from '../../zero-protocol/src/ast.ts';\nimport {\n type AST,\n type Condition,\n type CorrelatedSubquery,\n type SimpleCondition,\n} from '../../zero-protocol/src/ast.ts';\nimport {clientToServer, NameMapper} from '../../zero-schema/src/name-mapper.ts';\nimport type {TableSchema} from '../../zero-schema/src/table-schema.ts';\nimport type {Format} from '../../zql/src/ivm/view.ts';\nimport {sql} from './sql.ts';\nimport type {SQLQuery} from '@databases/sql';\n\ntype Tables = Record<string, TableSchema>;\n\n/**\n * Compiles to the Postgres dialect of SQL\n * - IS, IS NOT can only compare against `NULL`, `TRUE`, `FALSE` so use\n * `IS DISTINCT FROM` and `IS NOT DISTINCT FROM` instead\n * - IN is changed to ANY to allow binding array literals\n * - subqueries are aggregated using PG's `array_agg` and `row_to_json` functions\n */\nexport function compile(ast: AST, tables: Tables, format?: Format | undefined) {\n const compiler = new Compiler(tables);\n return compiler.compile(ast, format);\n}\n\nexport class Compiler {\n readonly #tables: Tables;\n readonly #nameMapper: NameMapper;\n\n constructor(tables: Tables) {\n this.#tables = tables;\n this.#nameMapper = clientToServer(tables);\n }\n\n compile(ast: AST, format?: Format | undefined) {\n return this.select(ast, format, undefined);\n }\n\n select(\n ast: AST,\n // Is this a singular or plural query?\n format: Format | undefined,\n // If a select is being used as a subquery, this is the correlation to the parent query\n correlation: SQLQuery | undefined,\n ) {\n const selectionSet = this.related(ast.related ?? [], format, ast.table);\n const table = this.#tables[ast.table];\n for (const column of Object.keys(table.columns)) {\n selectionSet.push(\n sql`${sql.ident(ast.table)}.${this.#mapColumn(ast.table, column)}`,\n );\n }\n return sql`SELECT ${sql.join(selectionSet, ',')} FROM ${this.#mapTable(\n ast.table,\n )} ${ast.where ? sql`WHERE ${this.where(ast.where, ast.table)}` : sql``} ${\n correlation\n ? sql`${ast.where ? sql`AND` : sql`WHERE`} (${correlation})`\n : sql``\n } ${this.orderBy(ast.orderBy, ast.table)} ${\n format?.singular ? this.limit(1) : this.limit(ast.limit)\n }`;\n }\n\n orderBy(orderBy: Ordering | undefined, table: string): SQLQuery {\n if (!orderBy) {\n return sql``;\n }\n return sql`ORDER BY ${sql.join(\n orderBy.map(([col, dir]) =>\n dir === 'asc'\n ? // Oh postgres. The table must be referred to be client name but the column by server name.\n // E.g., `SELECT server_col as client_col FROM server_table as client_table ORDER BY client_Table.server_col`\n sql`${sql.ident(table)}.${this.#mapColumnNoAlias(table, col)} ASC`\n : sql`${sql.ident(table)}.${this.#mapColumnNoAlias(table, col)} DESC`,\n ),\n ', ',\n )}`;\n }\n\n limit(limit: number | undefined): SQLQuery {\n if (!limit) {\n return sql``;\n }\n return sql`LIMIT ${sql.value(limit)}`;\n }\n\n related(\n relationships: readonly CorrelatedSubquery[],\n format: Format | undefined,\n parentTable: string,\n ): SQLQuery[] {\n return relationships.map(relationship =>\n this.relationshipSubquery(\n relationship,\n format?.relationships[must(relationship.subquery.alias)],\n parentTable,\n ),\n );\n }\n\n relationshipSubquery(\n relationship: CorrelatedSubquery,\n format: Format | undefined,\n parentTable: string,\n ) {\n if (relationship.hidden) {\n const [join, lastAlias, lastLimit, lastTable] =\n this.makeJunctionJoin(relationship);\n const lastClientColumns = Object.keys(this.#tables[lastTable].columns);\n /**\n * This aggregates the relationship subquery into an array of objects.\n * This looks roughly like:\n *\n * SELECT COALESCE(array_agg(row_to_json(\"inner_table\")) , ARRAY[]::json[]) FROM\n * (SELECT inner.col as client_col, inner.col2 as client_col2 FROM table) inner_table;\n */\n return sql`(\n SELECT ${\n format?.singular ? sql`` : sql`COALESCE(array_agg`\n }(row_to_json(${sql.ident(`inner_${relationship.subquery.alias}`)})) ${\n format?.singular ? sql`` : sql`, ARRAY[]::json[])`\n } FROM (SELECT ${sql.join(\n lastClientColumns.map(\n c => sql`${sql.ident(lastAlias)}.${this.#mapColumn(lastTable, c)}`,\n ),\n ',',\n )} FROM ${join} WHERE (${this.correlate(\n parentTable,\n parentTable,\n relationship.correlation.parentField,\n relationship.subquery.table,\n relationship.subquery.table,\n relationship.correlation.childField,\n )}) ${\n relationship.subquery.where\n ? sql`AND ${this.where(\n relationship.subquery.where,\n relationship.subquery.table,\n )}`\n : sql``\n } ${this.orderBy(\n relationship.subquery.orderBy,\n relationship.subquery.table,\n )} ${\n format?.singular ? this.limit(1) : this.limit(lastLimit)\n } ) ${sql.ident(`inner_${relationship.subquery.alias}`)}\n ) as ${sql.ident(relationship.subquery.alias)}`;\n }\n return sql`(\n SELECT ${\n format?.singular ? sql`` : sql`COALESCE(array_agg`\n }(row_to_json(${sql.ident(`inner_${relationship.subquery.alias}`)})) ${\n format?.singular ? sql`` : sql`, ARRAY[]::json[])`\n } FROM (${this.select(\n relationship.subquery,\n format,\n this.correlate(\n parentTable,\n parentTable,\n relationship.correlation.parentField,\n relationship.subquery.table,\n relationship.subquery.table,\n relationship.correlation.childField,\n ),\n )}) ${sql.ident(`inner_${relationship.subquery.alias}`)}\n ) as ${sql.ident(relationship.subquery.alias)}`;\n }\n\n pullTablesForJunction(\n relationship: CorrelatedSubquery,\n tables: [string, Correlation, number | undefined][] = [],\n ) {\n tables.push([\n relationship.subquery.table,\n relationship.correlation,\n relationship.subquery.limit,\n ]);\n assert(\n relationship.subquery.related?.length || 0 <= 1,\n 'Too many related tables for a junction edge',\n );\n for (const subRelationship of relationship.subquery.related ?? []) {\n this.pullTablesForJunction(subRelationship, tables);\n }\n return tables;\n }\n\n makeJunctionJoin(\n relationship: CorrelatedSubquery,\n ): [\n join: SQLQuery,\n lastAlis: string,\n lastLimit: number | undefined,\n lastTable: string,\n ] {\n const participatingTables = this.pullTablesForJunction(relationship);\n const joins: SQLQuery[] = [];\n\n function alias(index: number) {\n if (index === 0) {\n return participatingTables[0][0];\n }\n return `table_${index}`;\n }\n\n for (const [table, _correlation] of participatingTables) {\n if (joins.length === 0) {\n joins.push(this.#mapTable(table));\n continue;\n }\n joins.push(\n sql` JOIN ${this.#mapTableNoAlias(table)} as ${sql.ident(\n alias(joins.length),\n )} ON ${this.correlate(\n participatingTables[joins.length - 1][0],\n alias(joins.length - 1),\n participatingTables[joins.length][1].parentField,\n participatingTables[joins.length][0],\n alias(joins.length),\n participatingTables[joins.length][1].childField,\n )}`,\n );\n }\n\n return [\n sql.join(joins, ''),\n alias(joins.length - 1),\n participatingTables[participatingTables.length - 1][2],\n participatingTables[participatingTables.length - 1][0],\n ] as const;\n }\n\n where(condition: Condition | undefined, table: string): SQLQuery {\n if (!condition) {\n return sql``;\n }\n\n switch (condition.type) {\n case 'and':\n return sql`(${sql.join(\n condition.conditions.map(c => this.where(c, table)),\n ' AND ',\n )})`;\n case 'or':\n return sql`(${sql.join(\n condition.conditions.map(c => this.where(c, table)),\n ' OR ',\n )})`;\n case 'correlatedSubquery':\n return this.exists(condition, table);\n case 'simple':\n return this.simple(condition, table);\n }\n }\n\n simple(condition: SimpleCondition, table: string): SQLQuery {\n switch (condition.op) {\n case '!=':\n case '<':\n case '<=':\n case '=':\n case '>':\n case '>=':\n case 'ILIKE':\n case 'LIKE':\n case 'NOT ILIKE':\n case 'NOT LIKE':\n return sql`${this.valuePosition(\n condition.left,\n table,\n )} ${sql.__dangerous__rawValue(condition.op)} ${this.valuePosition(\n condition.right,\n table,\n )}`;\n case 'NOT IN':\n case 'IN':\n return this.any(condition, table);\n case 'IS':\n case 'IS NOT':\n return this.distinctFrom(condition, table);\n }\n }\n\n distinctFrom(condition: SimpleCondition, table: string): SQLQuery {\n return sql`${this.valuePosition(condition.left, table)} ${\n condition.op === 'IS' ? sql`IS NOT DISTINCT FROM` : sql`IS DISTINCT FROM`\n } ${this.valuePosition(condition.right, table)}`;\n }\n\n any(condition: SimpleCondition, table: string): SQLQuery {\n return sql`${this.valuePosition(condition.left, table)} ${\n condition.op === 'IN' ? sql`= ANY` : sql`!= ANY`\n } (${this.valuePosition(condition.right, table)})`;\n }\n\n valuePosition(value: ValuePosition, table: string): SQLQuery {\n switch (value.type) {\n case 'column':\n return this.#mapColumnNoAlias(table, value.name);\n case 'literal':\n return sql.value(value.value);\n case 'static':\n throw new Error(\n 'Static parameters must be bound to a value before compiling to SQL',\n );\n }\n }\n\n exists(\n condition: CorrelatedSubqueryCondition,\n parentTable: string,\n ): SQLQuery {\n switch (condition.op) {\n case 'EXISTS':\n return sql`EXISTS (${this.select(\n condition.related.subquery,\n undefined,\n this.correlate(\n parentTable,\n parentTable,\n condition.related.correlation.parentField,\n condition.related.subquery.table,\n condition.related.subquery.table,\n condition.related.correlation.childField,\n ),\n )})`;\n case 'NOT EXISTS':\n return sql`NOT EXISTS (${this.select(\n condition.related.subquery,\n undefined,\n undefined,\n )})`;\n }\n }\n\n correlate(\n // The table being correlated could be aliased to some other name\n // in the case of a junction. Hence we pass `xTableAlias`. The original\n // name of the table is required so we can look up the server names of the columns\n // to be used in the correlation.\n parentTable: string,\n parentTableAlias: string,\n parentColumns: readonly string[],\n childTable: string,\n childTableAlias: string,\n childColumns: readonly string[],\n ) {\n return sql.join(\n zip(parentColumns, childColumns).map(\n ([parentColumn, childColumn]) =>\n sql`${sql.ident(parentTableAlias)}.${this.#mapColumnNoAlias(\n parentTable,\n parentColumn,\n )} = ${sql.ident(childTableAlias)}.${this.#mapColumnNoAlias(\n childTable,\n childColumn,\n )}`,\n ),\n ' AND ',\n );\n }\n\n #mapColumn(table: string, column: string) {\n const mapped = this.#nameMapper.columnName(table, column);\n if (mapped === column) {\n return sql.ident(column);\n }\n\n return sql`${sql.ident(mapped)} as ${sql.ident(column)}`;\n }\n\n #mapColumnNoAlias(table: string, column: string) {\n const mapped = this.#nameMapper.columnName(table, column);\n return sql.ident(mapped);\n }\n\n #mapTable(table: string) {\n const mapped = this.#nameMapper.tableName(table);\n if (mapped === table) {\n return sql.ident(table);\n }\n\n return sql`${sql.ident(mapped)} as ${sql.ident(table)}`;\n }\n\n #mapTableNoAlias(table: string) {\n const mapped = this.#nameMapper.tableName(table);\n return sql.ident(mapped);\n }\n}\n\nfunction zip<T>(a1: readonly T[], a2: readonly T[]): [T, T][] {\n assert(a1.length === a2.length);\n const result: [T, T][] = [];\n for (let i = 0; i < a1.length; i++) {\n result.push([a1[i], a2[i]]);\n }\n return result;\n}\n", "import {unreachable} from '../../../shared/src/asserts.ts';\nimport {must} from '../../../shared/src/must.ts';\nimport type {\n AST,\n Condition,\n Conjunction,\n CorrelatedSubquery,\n CorrelatedSubqueryCondition,\n Disjunction,\n LiteralReference,\n Ordering,\n Parameter,\n SimpleCondition,\n ValuePosition,\n} from '../../../zero-protocol/src/ast.ts';\nimport {SUBQ_PREFIX} from './query-impl.ts';\n\n/**\n * Converts an AST to the equivalent query builder code.\n * This is useful for debugging and understanding queries.\n *\n * @example\n * ```\n * const ast = query.issue.where('id', '=', 123)[astForTestingSymbol];\n * console.log(astToZQL(ast)); // outputs: .where('id', '=', 123)\n * ```\n */\nexport function astToZQL(ast: AST): string {\n let code = '';\n\n // Handle where conditions\n if (ast.where) {\n code += transformCondition(ast.where, '.where', new Set());\n }\n\n // Handle related subqueries\n if (ast.related && ast.related.length > 0) {\n for (const related of ast.related) {\n if (!related.hidden) {\n code += transformRelated(related);\n }\n }\n }\n\n // Handle orderBy\n if (ast.orderBy && ast.orderBy.length > 0) {\n code += transformOrder(ast.orderBy);\n }\n\n // Handle limit\n if (ast.limit !== undefined) {\n code += `.limit(${ast.limit})`;\n }\n\n // Handle start\n if (ast.start) {\n const {row, exclusive} = ast.start;\n code += `.start(${JSON.stringify(row)}${\n exclusive ? '' : ', { inclusive: true }'\n })`;\n }\n\n return code;\n}\n\ntype Args = Set<string>;\n\ntype Prefix = '.where' | 'cmp';\n\nfunction transformCondition(\n condition: Condition,\n prefix: Prefix,\n args: Args,\n): string {\n switch (condition.type) {\n case 'simple':\n return transformSimpleCondition(condition, prefix);\n case 'and':\n case 'or':\n return transformLogicalCondition(condition, prefix, args);\n case 'correlatedSubquery':\n return transformExistsCondition(condition, prefix, args);\n default:\n unreachable(condition);\n }\n}\n\nfunction transformSimpleCondition(\n condition: SimpleCondition,\n prefix: Prefix,\n): string {\n const {left, op, right} = condition;\n\n const leftCode = transformValuePosition(left);\n const rightCode = transformValuePosition(right);\n\n // Handle the shorthand form for equals\n if (op === '=') {\n return `${prefix}(${leftCode}, ${rightCode})`;\n }\n\n return `${prefix}(${leftCode}, '${op}', ${rightCode})`;\n}\n\nfunction transformLogicalCondition(\n condition: Conjunction | Disjunction,\n prefix: Prefix,\n args: Args,\n): string {\n const {type, conditions} = condition;\n\n // For single condition, no need for logical operator\n if (conditions.length === 1) {\n return transformCondition(conditions[0], prefix, args);\n }\n\n // Generate multiple where calls for top-level AND conditions\n if (type === 'and') {\n const parts = conditions.map(c => transformCondition(c, prefix, args));\n // Simply concatenate the where conditions\n if (prefix === '.where') {\n return parts.join('');\n }\n args.add('and');\n return 'and(' + parts.join(', ') + ')';\n }\n\n args = new Set<string>();\n\n // Handle nested conditions with a callback for OR conditions and nested ANDs/ORs\n const conditionsCode = conditions\n .map(c => transformCondition(c, 'cmp', args))\n .join(', ');\n\n args.add('cmp');\n args.add(type);\n const argsCode = [...args].sort().join(', ');\n\n return `.where(({${argsCode}}) => ${type}(${conditionsCode}))`;\n}\n\nfunction transformExistsCondition(\n condition: CorrelatedSubqueryCondition,\n prefix: '.where' | 'cmp',\n args: Set<string>,\n): string {\n const {related, op} = condition;\n const relationship = extractRelationshipName(related);\n\n // Check if subquery has additional properties\n const hasSubQueryProps =\n related.subquery.where ||\n (related.subquery.related && related.subquery.related.length > 0) ||\n related.subquery.orderBy ||\n related.subquery.limit;\n\n if (op === 'EXISTS') {\n if (!hasSubQueryProps) {\n if (prefix === '.where') {\n return `.whereExists('${relationship}')`;\n }\n args.add('exists');\n return `exists('${relationship}')`;\n }\n\n if (prefix === '.where') {\n return `.whereExists('${relationship}', q => q${astToZQL(\n related.subquery,\n )}))`;\n }\n prefix satisfies 'cmp';\n args.add('exists');\n return `exists('${relationship}', q => q${astToZQL(related.subquery)})`;\n }\n\n op satisfies 'NOT EXISTS';\n\n if (hasSubQueryProps) {\n if (prefix === '.where') {\n return `.where(({exists, not}) => not(exists('${relationship}', q => q${astToZQL(\n related.subquery,\n )})))`;\n }\n prefix satisfies 'cmp';\n args.add('not');\n args.add('exists');\n return `not(exists('${relationship}', q => q${astToZQL(\n related.subquery,\n )}))`;\n }\n\n if (prefix === '.where') {\n return `.where(({exists, not}) => not(exists('${relationship}')))`;\n }\n args.add('not');\n args.add('exists');\n\n return `not(exists('${relationship}')))`;\n}\n\nfunction extractRelationshipName(related: CorrelatedSubquery): string {\n const alias = must(related.subquery.alias);\n return alias.startsWith(SUBQ_PREFIX)\n ? alias.substring(SUBQ_PREFIX.length)\n : alias;\n}\n\nfunction transformRelated(related: CorrelatedSubquery): string {\n const {alias} = related.subquery;\n if (!alias) return '';\n\n const relationship = alias;\n let code = `.related('${relationship}'`;\n\n // If the subquery has additional filters or configurations\n if (\n related.subquery.where ||\n (related.subquery.related && related.subquery.related.length > 0) ||\n related.subquery.orderBy ||\n related.subquery.limit\n ) {\n code += ', q => q' + astToZQL(related.subquery);\n }\n\n code += ')';\n return code;\n}\n\nfunction transformOrder(orderBy: Ordering): string {\n let code = '';\n for (const [field, direction] of orderBy) {\n code += `.orderBy('${field}', '${direction}')`;\n }\n return code;\n}\n\nfunction transformValuePosition(value: ValuePosition): string {\n switch (value.type) {\n case 'literal':\n return transformLiteral(value);\n case 'column':\n return `'${value.name}'`;\n case 'static':\n return transformParameter(value);\n default:\n unreachable(value);\n }\n}\n\nfunction transformLiteral(literal: LiteralReference): string {\n if (literal.value === null) {\n return 'null';\n }\n if (Array.isArray(literal.value)) {\n return JSON.stringify(literal.value);\n }\n if (typeof literal.value === 'string') {\n return `'${literal.value.replace(/'/g, \"\\\\'\")}'`;\n }\n return String(literal.value);\n}\n\nfunction transformParameter(param: Parameter): string {\n const fieldStr = Array.isArray(param.field)\n ? `[${param.field.map(f => `'${f}'`).join(', ')}]`\n : `'${param.field}'`;\n\n return `authParam(${fieldStr})`;\n}\n", "import type {BTreeRead} from '../../../../replicache/src/btree/read.ts';\nimport {type Read} from '../../../../replicache/src/dag/store.ts';\nimport {readFromHash} from '../../../../replicache/src/db/read.ts';\nimport * as FormatVersion from '../../../../replicache/src/format-version-enum.ts';\nimport {\n getClientGroup,\n getClientGroups,\n} from '../../../../replicache/src/persist/client-groups.ts';\nimport {\n getClient,\n getClients,\n type ClientMap,\n} from '../../../../replicache/src/persist/clients.ts';\nimport type {ReplicacheImpl} from '../../../../replicache/src/replicache-impl.ts';\nimport {withRead} from '../../../../replicache/src/with-transactions.ts';\nimport {assert} from '../../../../shared/src/asserts.ts';\nimport type {ReadonlyJSONValue} from '../../../../shared/src/json.ts';\nimport * as valita from '../../../../shared/src/valita.ts';\nimport {compile} from '../../../../z2s/src/compiler.ts';\nimport {formatPg} from '../../../../z2s/src/sql.ts';\nimport {astSchema, type AST} from '../../../../zero-protocol/src/ast.ts';\nimport type {Row} from '../../../../zero-protocol/src/data.ts';\nimport type {Schema} from '../../../../zero-schema/src/builder/schema-builder.ts';\nimport type {Format} from '../../../../zql/src/ivm/view.ts';\nimport {astToZQL} from '../../../../zql/src/query/ast-to-zql.ts';\nimport {\n desiredQueriesPrefixForClient,\n ENTITIES_KEY_PREFIX,\n toGotQueriesKey,\n} from '../keys.ts';\nimport type {MutatorDefs} from '../replicache-types.ts';\nimport type {\n ClientGroup as ClientGroupInterface,\n Client as ClientInterface,\n Inspector as InspectorInterface,\n Query as QueryInterface,\n} from './types.ts';\n\ntype Rep = ReplicacheImpl<MutatorDefs>;\n\nexport async function newInspector(\n rep: Rep,\n schema: Schema,\n): Promise<InspectorInterface> {\n const clientGroupID = await rep.clientGroupID;\n return new Inspector(rep, schema, rep.clientID, clientGroupID);\n}\n\nclass Inspector implements InspectorInterface {\n readonly #rep: Rep;\n readonly client: Client;\n readonly clientGroup: ClientGroup;\n readonly #schema: Schema;\n\n constructor(\n rep: ReplicacheImpl,\n schema: Schema,\n clientID: string,\n clientGroupID: string,\n ) {\n this.#rep = rep;\n this.#schema = schema;\n this.client = new Client(rep, schema, clientID, clientGroupID);\n this.clientGroup = this.client.clientGroup;\n }\n\n clients(): Promise<ClientInterface[]> {\n return withDagRead(this.#rep, dagRead =>\n clients(this.#rep, this.#schema, dagRead),\n );\n }\n\n clientsWithQueries(): Promise<ClientInterface[]> {\n return withDagRead(this.#rep, dagRead =>\n clientsWithQueries(this.#rep, this.#schema, dagRead),\n );\n }\n\n clientGroups(): Promise<ClientGroup[]> {\n return withDagRead(this.#rep, async dagRead => {\n const clientGroups = await getClientGroups(dagRead);\n return [...clientGroups.keys()].map(\n clientGroupID =>\n new ClientGroup(this.#rep, this.#schema, clientGroupID),\n );\n });\n }\n}\n\nclass Client implements ClientInterface {\n readonly #rep: Rep;\n readonly id: string;\n readonly clientGroup: ClientGroup;\n readonly #schema: Schema;\n\n constructor(rep: Rep, schema: Schema, id: string, clientGroupID: string) {\n this.#rep = rep;\n this.#schema = schema;\n this.id = id;\n this.clientGroup = new ClientGroup(rep, schema, clientGroupID);\n }\n\n queries(): Promise<QueryInterface[]> {\n return withDagRead(this.#rep, async dagRead => {\n const prefix = desiredQueriesPrefixForClient(this.id);\n const tree = await getBTree(dagRead, this.id);\n const qs: QueryInterface[] = [];\n for await (const [key, value] of tree.scan(prefix)) {\n if (!key.startsWith(prefix)) {\n break;\n }\n\n const hash = key.substring(prefix.length);\n const got = await tree.has(toGotQueriesKey(hash));\n const q = new Query(\n hash,\n valita.parse(value, astSchema),\n got,\n this.#schema,\n );\n qs.push(q);\n }\n return qs;\n });\n }\n\n map(): Promise<Map<string, ReadonlyJSONValue>> {\n return withDagRead(this.#rep, async dagRead => {\n const tree = await getBTree(dagRead, this.id);\n const map = new Map<string, ReadonlyJSONValue>();\n for await (const [key, value] of tree.scan('')) {\n map.set(key, value);\n }\n return map;\n });\n }\n\n rows(tableName: string): Promise<Row[]> {\n return withDagRead(this.#rep, async dagRead => {\n const prefix = ENTITIES_KEY_PREFIX + tableName;\n const tree = await getBTree(dagRead, this.id);\n const rows: Row[] = [];\n for await (const [key, value] of tree.scan(prefix)) {\n if (!key.startsWith(prefix)) {\n break;\n }\n rows.push(value as Row);\n }\n return rows;\n });\n }\n}\n\nclass ClientGroup implements ClientGroupInterface {\n readonly #rep: Rep;\n readonly id: string;\n readonly #schema: Schema;\n\n constructor(rep: Rep, schema: Schema, id: string) {\n this.#rep = rep;\n this.#schema = schema;\n this.id = id;\n }\n\n clients(): Promise<ClientInterface[]> {\n return withDagRead(this.#rep, dagRead =>\n clients(\n this.#rep,\n this.#schema,\n dagRead,\n ([_, v]) => v.clientGroupID === this.id,\n ),\n );\n }\n\n clientsWithQueries(): Promise<ClientInterface[]> {\n return withDagRead(this.#rep, dagRead =>\n clientsWithQueries(\n this.#rep,\n this.#schema,\n dagRead,\n ([_, v]) => v.clientGroupID === this.id,\n ),\n );\n }\n\n queries(): Promise<QueryInterface[]> {\n return withDagRead(this.#rep, async dagRead => {\n const cs = await clients(\n this.#rep,\n this.#schema,\n dagRead,\n ([_, v]) => v.clientGroupID === this.id,\n );\n const qs: Map<string, QueryInterface> = new Map();\n await Promise.all(\n cs.map(async client => {\n const clientQueries = await client.queries();\n clientQueries.forEach(q => qs.set(q.id, q));\n }),\n );\n return [...qs.values()];\n });\n }\n}\n\nasync function withDagRead<T>(\n rep: Rep,\n f: (dagRead: Read) => Promise<T>,\n): Promise<T> {\n await rep.refresh();\n await rep.persist();\n return withRead(rep.perdag, f);\n}\n\nasync function getBTree(dagRead: Read, clientID: string): Promise<BTreeRead> {\n const client = await getClient(clientID, dagRead);\n assert(client, `Client not found: ${clientID}`);\n const {clientGroupID} = client;\n const clientGroup = await getClientGroup(clientGroupID, dagRead);\n assert(clientGroup, `Client group not found: ${clientGroupID}`);\n const dbRead = await readFromHash(\n clientGroup.headHash,\n dagRead,\n FormatVersion.Latest,\n );\n return dbRead.map;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype MapEntry<T extends ReadonlyMap<any, any>> =\n T extends ReadonlyMap<infer K, infer V> ? readonly [K, V] : never;\n\nasync function clients(\n rep: Rep,\n schema: Schema,\n dagRead: Read,\n predicate: (entry: MapEntry<ClientMap>) => boolean = () => true,\n): Promise<ClientInterface[]> {\n const clients = await getClients(dagRead);\n return [...clients.entries()]\n .filter(predicate)\n .map(\n ([clientID, {clientGroupID}]) =>\n new Client(rep, schema, clientID, clientGroupID),\n );\n}\n\nasync function clientsWithQueries(\n rep: Rep,\n schema: Schema,\n dagRead: Read,\n predicate: (entry: MapEntry<ClientMap>) => boolean = () => true,\n): Promise<ClientInterface[]> {\n const allClients = await clients(rep, schema, dagRead, predicate);\n const clientsWithQueries: ClientInterface[] = [];\n await Promise.all(\n allClients.map(async client => {\n const queries = await client.queries();\n if (queries.length > 0) {\n clientsWithQueries.push(client);\n }\n }),\n );\n return clientsWithQueries;\n}\n\nclass Query implements QueryInterface {\n readonly id: string;\n readonly ast: AST;\n readonly got: boolean;\n #schema: Schema;\n\n constructor(id: string, ast: AST, got: boolean, schema: Schema) {\n this.id = id;\n this.ast = ast;\n this.got = got;\n this.#schema = schema;\n }\n\n get sql(): string {\n const format: Format = {\n singular: false,\n relationships: {},\n };\n const sqlQuery = formatPg(compile(this.ast, this.#schema.tables, format));\n return sqlQuery.text;\n }\n\n get zql(): string {\n return this.ast.table + astToZQL(this.ast);\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["sql", "clients", "clientsWithQueries"]
7
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ast-to-zql.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/ast-to-zql.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,GAAG,EAWJ,MAAM,mCAAmC,CAAC;AAG3C;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,CAoCzC"}