@rocicorp/zero 0.12.2025012901 → 0.12.2025013000

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 (113) hide show
  1. package/out/advanced.js +1 -1
  2. package/out/{chunk-VYAI3OU4.js → chunk-UEPZPKPV.js} +125 -171
  3. package/out/{chunk-VYAI3OU4.js.map → chunk-UEPZPKPV.js.map} +4 -4
  4. package/out/{chunk-QAAJZ32T.js → chunk-ZVLXEWWB.js} +71 -11
  5. package/out/chunk-ZVLXEWWB.js.map +7 -0
  6. package/out/otel/src/log-options.d.ts +23 -0
  7. package/out/otel/src/log-options.d.ts.map +1 -0
  8. package/out/otel/src/log-options.js +34 -0
  9. package/out/otel/src/log-options.js.map +1 -0
  10. package/out/otel/src/maybe-time.d.ts +3 -0
  11. package/out/otel/src/maybe-time.d.ts.map +1 -0
  12. package/out/otel/src/maybe-time.js +13 -0
  13. package/out/otel/src/maybe-time.js.map +1 -0
  14. package/out/solid.js +2 -2
  15. package/out/zero-cache/src/auth/write-authorizer.d.ts +1 -1
  16. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  17. package/out/zero-cache/src/auth/write-authorizer.js +3 -1
  18. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  19. package/out/zero-cache/src/config/zero-config.d.ts +17 -13
  20. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  21. package/out/zero-cache/src/config/zero-config.js +1 -19
  22. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  23. package/out/zero-cache/src/server/multi/config.d.ts +8 -0
  24. package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
  25. package/out/zero-cache/src/server/multi/main.d.ts +2 -2
  26. package/out/zero-cache/src/server/multi/main.d.ts.map +1 -1
  27. package/out/zero-cache/src/server/multi/main.js +4 -89
  28. package/out/zero-cache/src/server/multi/main.js.map +1 -1
  29. package/out/zero-cache/src/server/multi/run-worker.d.ts +4 -0
  30. package/out/zero-cache/src/server/multi/run-worker.d.ts.map +1 -0
  31. package/out/zero-cache/src/server/multi/run-worker.js +91 -0
  32. package/out/zero-cache/src/server/multi/run-worker.js.map +1 -0
  33. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  34. package/out/zero-cache/src/server/syncer.js +1 -1
  35. package/out/zero-cache/src/server/syncer.js.map +1 -1
  36. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  37. package/out/zero-cache/src/services/change-source/pg/change-source.js +93 -120
  38. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  39. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +18 -18
  40. package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts.map +1 -1
  41. package/out/zero-cache/src/services/change-source/protocol/current/data.js +5 -2
  42. package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
  43. package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +24 -24
  44. package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +8 -8
  45. package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
  46. package/out/zero-cache/src/services/change-streamer/storer.js +3 -2
  47. package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
  48. package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
  49. package/out/zero-cache/src/services/life-cycle.js +4 -2
  50. package/out/zero-cache/src/services/life-cycle.js.map +1 -1
  51. package/out/zero-cache/src/services/replicator/change-processor.js +7 -3
  52. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  53. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +2 -1
  54. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  55. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +5 -3
  56. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  57. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  58. package/out/zero-cache/src/services/view-syncer/view-syncer.js +26 -2
  59. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  60. package/out/zero-cache/src/types/processes.d.ts +1 -0
  61. package/out/zero-cache/src/types/processes.d.ts.map +1 -1
  62. package/out/zero-cache/src/types/processes.js +5 -1
  63. package/out/zero-cache/src/types/processes.js.map +1 -1
  64. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  65. package/out/zero-cache/src/workers/replicator.js +9 -7
  66. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  67. package/out/zero-client/src/client/custom.d.ts +78 -0
  68. package/out/zero-client/src/client/custom.d.ts.map +1 -0
  69. package/out/zero-client/src/client/options.d.ts +4 -2
  70. package/out/zero-client/src/client/options.d.ts.map +1 -1
  71. package/out/zero-client/src/types/client-state.d.ts +8 -0
  72. package/out/zero-client/src/types/client-state.d.ts.map +1 -0
  73. package/out/zero.js +2 -2
  74. package/out/zql/src/ivm/change.d.ts +4 -4
  75. package/out/zql/src/ivm/change.d.ts.map +1 -1
  76. package/out/zql/src/ivm/change.js +1 -4
  77. package/out/zql/src/ivm/change.js.map +1 -1
  78. package/out/zql/src/ivm/data.d.ts +2 -1
  79. package/out/zql/src/ivm/data.d.ts.map +1 -1
  80. package/out/zql/src/ivm/data.js +7 -0
  81. package/out/zql/src/ivm/data.js.map +1 -1
  82. package/out/zql/src/ivm/exists.d.ts +3 -2
  83. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  84. package/out/zql/src/ivm/exists.js +55 -64
  85. package/out/zql/src/ivm/exists.js.map +1 -1
  86. package/out/zql/src/ivm/filter-push.js +1 -1
  87. package/out/zql/src/ivm/filter-push.js.map +1 -1
  88. package/out/zql/src/ivm/filter.d.ts +2 -3
  89. package/out/zql/src/ivm/filter.d.ts.map +1 -1
  90. package/out/zql/src/ivm/filter.js +12 -7
  91. package/out/zql/src/ivm/filter.js.map +1 -1
  92. package/out/zql/src/ivm/join.d.ts +4 -1
  93. package/out/zql/src/ivm/join.d.ts.map +1 -1
  94. package/out/zql/src/ivm/join.js +32 -25
  95. package/out/zql/src/ivm/join.js.map +1 -1
  96. package/out/zql/src/ivm/skip.d.ts.map +1 -1
  97. package/out/zql/src/ivm/skip.js +1 -2
  98. package/out/zql/src/ivm/skip.js.map +1 -1
  99. package/out/zql/src/ivm/take.d.ts.map +1 -1
  100. package/out/zql/src/ivm/take.js +4 -3
  101. package/out/zql/src/ivm/take.js.map +1 -1
  102. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  103. package/out/zql/src/ivm/view-apply-change.js +4 -10
  104. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  105. package/out/zqlite/src/db.d.ts.map +1 -1
  106. package/out/zqlite/src/db.js +11 -1
  107. package/out/zqlite/src/db.js.map +1 -1
  108. package/out/zqlite/src/table-source.d.ts +3 -1
  109. package/out/zqlite/src/table-source.d.ts.map +1 -1
  110. package/out/zqlite/src/table-source.js +22 -6
  111. package/out/zqlite/src/table-source.js.map +1 -1
  112. package/package.json +2 -1
  113. package/out/chunk-QAAJZ32T.js.map +0 -7
@@ -0,0 +1,78 @@
1
+ import type { DeleteID, InsertValue, Schema, TableSchema, UpdateValue, UpsertValue } from '../mod.ts';
2
+ import type { ClientID } from '../types/client-state.ts';
3
+ /**
4
+ * The shape which a user's custom mutator definitions must conform to.
5
+ */
6
+ export type CustomMutatorDefs<S extends Schema> = {
7
+ readonly [Table in keyof S['tables']]?: {
8
+ readonly [key: string]: CustomMutatorImpl<S>;
9
+ };
10
+ } & {
11
+ [namespace: string]: {
12
+ [key: string]: CustomMutatorImpl<S>;
13
+ };
14
+ };
15
+ export type CustomMutatorImpl<S extends Schema> = (tx: Transaction<S>, ...args: any[]) => void;
16
+ /**
17
+ * The shape exposed on the `Zero.mutate` instance.
18
+ * The signature of a custom mutator takes a `transaction` as its first arg
19
+ * but the user does not provide this arg when calling the mutator.
20
+ *
21
+ * This utility strips the `tx` arg from the user's custom mutator signatures.
22
+ */
23
+ export type MakeCustomMutatorInterfaces<S extends Schema, MD extends CustomMutatorDefs<S>> = {
24
+ readonly [Table in keyof MD]: {
25
+ readonly [P in keyof MD[Table]]: MakeCustomMutatorInterface<S, MD[Table][P]>;
26
+ };
27
+ };
28
+ export type MakeCustomMutatorInterface<S extends Schema, F> = F extends (tx: Transaction<S>, ...args: infer Args) => void ? (...args: Args) => void : never;
29
+ export type TransactionReason = 'optimistic' | 'rebase';
30
+ /**
31
+ * WriteTransactions are used with *mutators* which are registered using
32
+ * {@link ReplicacheOptions.mutators} and allows read and write operations on the
33
+ * database.
34
+ */
35
+ export interface Transaction<S extends Schema> {
36
+ readonly clientID: ClientID;
37
+ /**
38
+ * The ID of the mutation that is being applied.
39
+ */
40
+ readonly mutationID: number;
41
+ /**
42
+ * The reason for the transaction.
43
+ */
44
+ readonly reason: TransactionReason;
45
+ readonly mutate: SchemaCRUD<S>;
46
+ }
47
+ type SchemaCRUD<S extends Schema> = {
48
+ [Table in keyof S['tables']]: TableCRUD<S['tables'][Table]>;
49
+ };
50
+ export type TableCRUD<S extends TableSchema> = {
51
+ /**
52
+ * Writes a row if a row with the same primary key doesn't already exists.
53
+ * Non-primary-key fields that are 'optional' can be omitted or set to
54
+ * `undefined`. Such fields will be assigned the value `null` optimistically
55
+ * and then the default value as defined by the server.
56
+ */
57
+ insert: (value: InsertValue<S>) => void;
58
+ /**
59
+ * Writes a row unconditionally, overwriting any existing row with the same
60
+ * primary key. Non-primary-key fields that are 'optional' can be omitted or
61
+ * set to `undefined`. Such fields will be assigned the value `null`
62
+ * optimistically and then the default value as defined by the server.
63
+ */
64
+ upsert: (value: UpsertValue<S>) => void;
65
+ /**
66
+ * Updates a row with the same primary key. If no such row exists, this
67
+ * function does nothing. All non-primary-key fields can be omitted or set to
68
+ * `undefined`. Such fields will be left unchanged from previous value.
69
+ */
70
+ update: (value: UpdateValue<S>) => void;
71
+ /**
72
+ * Deletes the row with the specified primary key. If no such row exists, this
73
+ * function does nothing.
74
+ */
75
+ delete: (id: DeleteID<S>) => void;
76
+ };
77
+ export {};
78
+ //# sourceMappingURL=custom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/custom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,MAAM,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACZ,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,0BAA0B,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI;IAChD,QAAQ,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;QACtC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC9C;CACF,GAAG;IAGF,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACrC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,CAChD,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAElB,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,IAAI,CAAC;AAEV;;;;;;GAMG;AACH,MAAM,MAAM,2BAA2B,CACrC,CAAC,SAAS,MAAM,EAChB,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,IAC7B;IACF,QAAQ,EAAE,KAAK,IAAI,MAAM,EAAE,GAAG;QAC5B,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,0BAA0B,CACzD,CAAC,EACD,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACb;KACF;CACF,CAAC;AAEF,MAAM,MAAM,0BAA0B,CACpC,CAAC,SAAS,MAAM,EAEhB,CAAC,IACC,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,GAC3D,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,IAAI,GACvB,KAAK,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,QAAQ,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CAChC;AAED,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI;KACjC,KAAK,IAAI,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,WAAW,IAAI;IAC7C;;;;;OAKG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAExC;;;;;OAKG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAExC;;;;OAIG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAExC;;;OAGG;IACH,MAAM,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACnC,CAAC"}
@@ -2,10 +2,11 @@ import type { LogLevel } from '@rocicorp/logger';
2
2
  import type { KVStoreProvider } from '../../../replicache/src/mod.ts';
3
3
  import type { MaybePromise } from '../../../shared/src/types.ts';
4
4
  import type { Schema } from '../../../zero-schema/src/mod.ts';
5
+ import type { CustomMutatorDefs } from './custom.ts';
5
6
  /**
6
7
  * Configuration for [[Zero]].
7
8
  */
8
- export interface ZeroOptions<S extends Schema> {
9
+ export interface ZeroOptions<S extends Schema, MD extends CustomMutatorDefs<S> = Record<string, never>> {
9
10
  /**
10
11
  * URL to the zero-cache. This can be a simple hostname, e.g.
11
12
  * - "https://myapp-myteam.zero.ms"
@@ -63,6 +64,7 @@ export interface ZeroOptions<S extends Schema> {
63
64
  * to one another.
64
65
  */
65
66
  schema: S;
67
+ mutators?: MD | undefined;
66
68
  /**
67
69
  * `onOnlineChange` is called when the Zero instance's online status changes.
68
70
  */
@@ -128,7 +130,7 @@ export interface ZeroOptions<S extends Schema> {
128
130
  */
129
131
  maxHeaderLength?: number | undefined;
130
132
  }
131
- export interface ZeroAdvancedOptions<S extends Schema> extends ZeroOptions<S> {
133
+ export interface ZeroAdvancedOptions<S extends Schema, MD extends CustomMutatorDefs<S> = Record<string, never>> extends ZeroOptions<S, MD> {
132
134
  /**
133
135
  * UI rendering libraries will often provide a utility for batching multiple
134
136
  * state updates into a single render. Some examples are React's
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,iCAAiC,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEnC;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EACD,MAAM,GACN,CAAC,CAAC,KAAK,CAAC,EAAE,eAAe,KAAK,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GAC/D,SAAS,CAAC;IAEd;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAEhC;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC;IAEV;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAEzD;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAEpE;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEjD;;;;;;;OAOG;IACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9C;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;IAEtD;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC3E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,gBAAgB,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAExE;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,MAAM,kBAAkB,GAI1B;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAC,GAGxB;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAC,GAG7B;IAAC,IAAI,EAAE,2BAA2B,CAAA;CAAC,CAAC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/client/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,iCAAiC,CAAC;AAC5D,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,MAAM,EAChB,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC;IAEvD;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAEnC;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EACD,MAAM,GACN,CAAC,CAAC,KAAK,CAAC,EAAE,eAAe,KAAK,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,GAC/D,SAAS,CAAC;IAEd;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAEhC;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC;IAEV,QAAQ,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;IAE1B;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAEzD;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAEpE;;;;;;;;;;;;OAYG;IACH,qBAAqB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAEjD;;;;;;;OAOG;IACH,wBAAwB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9C;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;IAEtD;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,MAAM,EAChB,EAAE,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACvD,SAAQ,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC;IAC1B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,gBAAgB,CAAC,EAAE,CAAC,CAAC,gBAAgB,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAExE;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,MAAM,MAAM,kBAAkB,GAI1B;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAC,GAGxB;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAC,GAG7B;IAAC,IAAI,EAAE,2BAA2B,CAAA;CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Mutation } from '../../../zero-protocol/src/mod.ts';
2
+ export type ClientID = string;
3
+ export type ClientState = {
4
+ socket: WebSocket;
5
+ pending: Mutation[];
6
+ clockBehindByMs: number | undefined;
7
+ };
8
+ //# sourceMappingURL=client-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-state.d.ts","sourceRoot":"","sources":["../../../../../zero-client/src/types/client-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAEhE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,SAAS,CAAC;IAMlB,OAAO,EAAE,QAAQ,EAAE,CAAC;IAOpB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,CAAC"}
package/out/zero.js CHANGED
@@ -18,9 +18,9 @@ import {
18
18
  relationships,
19
19
  string,
20
20
  table
21
- } from "./chunk-VYAI3OU4.js";
21
+ } from "./chunk-UEPZPKPV.js";
22
22
  import "./chunk-HARIWJ2J.js";
23
- import "./chunk-QAAJZ32T.js";
23
+ import "./chunk-ZVLXEWWB.js";
24
24
  import "./chunk-424PT5DM.js";
25
25
  export {
26
26
  ANYONE_CAN,
@@ -1,4 +1,3 @@
1
- import type { Row } from '../../../zero-protocol/src/data.ts';
2
1
  import type { Node } from './data.ts';
3
2
  export type Change = AddChange | RemoveChange | ChildChange | EditChange;
4
3
  export type ChangeType = Change['type'];
@@ -17,11 +16,13 @@ export type RemoveChange = {
17
16
  node: Node;
18
17
  };
19
18
  /**
20
- * The node itself is unchanged, but one of its descendants has changed.
19
+ * The node's row is unchanged, but one of its descendants has changed.
20
+ * The node's relationships will reflect the change, `child` specifies the
21
+ * specific descendant change.
21
22
  */
22
23
  export type ChildChange = {
23
24
  type: 'child';
24
- row: Row;
25
+ node: Node;
25
26
  child: {
26
27
  relationshipName: string;
27
28
  change: Change;
@@ -54,5 +55,4 @@ export type EditChange = {
54
55
  node: Node;
55
56
  oldNode: Node;
56
57
  };
57
- export declare function rowForChange(change: Change): Row;
58
58
  //# sourceMappingURL=change.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,oCAAoC,CAAC;AAC5D,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;AACzE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAKxC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,EAAE;QACL,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAGhD"}
1
+ {"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/change.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;AACzE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAKxC;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE;QACL,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,IAAI,CAAC;CACf,CAAC"}
@@ -1,5 +1,2 @@
1
- export function rowForChange(change) {
2
- const { type } = change;
3
- return type === 'child' ? change.row : change.node.row;
4
- }
1
+ export {};
5
2
  //# sourceMappingURL=change.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"change.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/change.ts"],"names":[],"mappings":"AAiEA,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,EAAC,IAAI,EAAC,GAAG,MAAM,CAAC;IACtB,OAAO,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"change.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/change.ts"],"names":[],"mappings":""}
@@ -7,7 +7,7 @@ import type { Stream } from './stream.ts';
7
7
  */
8
8
  export type Node = {
9
9
  row: Row;
10
- relationships: Record<string, Stream<Node>>;
10
+ relationships: Record<string, () => Stream<Node>>;
11
11
  };
12
12
  /**
13
13
  * Compare two values. The values must be of the same type. This function
@@ -38,4 +38,5 @@ export declare function makeComparator(order: Ordering, reverse?: boolean | unde
38
38
  * semantic for your application.
39
39
  */
40
40
  export declare function valuesEqual(a: Value, b: Value): boolean;
41
+ export declare function drainStreams(node: Node): void;
41
42
  //# sourceMappingURL=data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/data.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAChE,OAAO,KAAK,EAAC,GAAG,EAAE,KAAK,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,GAAG,EAAE,GAAG,CAAC;IACT,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CAC7C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAkCxD;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,GAAG,eAAe,CAE5D;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,MAAM,CAAC;AAEtD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAC5B,UAAU,CAaZ;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAMvD"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/data.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,mCAAmC,CAAC;AAChE,OAAO,KAAK,EAAC,GAAG,EAAE,KAAK,EAAC,MAAM,oCAAoC,CAAC;AACnE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,GAAG,EAAE,GAAG,CAAC;IACT,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;CACnD,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAkCxD;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAExD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,GAAG,eAAe,CAE5D;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,KAAK,MAAM,CAAC;AAEtD,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAC5B,UAAU,CAaZ;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,CAMvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,QAMtC"}
@@ -81,4 +81,11 @@ export function valuesEqual(a, b) {
81
81
  }
82
82
  return a === b;
83
83
  }
84
+ export function drainStreams(node) {
85
+ for (const stream of Object.values(node.relationships)) {
86
+ for (const node of stream()) {
87
+ drainStreams(node);
88
+ }
89
+ }
90
+ }
84
91
  //# sourceMappingURL=data.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,gCAAgC,CAAC;AAcxC;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAAC,CAAQ,EAAE,CAAQ;IAC9C,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAE1B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACZ,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;QAC3B,aAAa,CAAC,CAAC,CAAC,CAAC;QACjB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,YAAY,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,YAAY,CAAC,CAAC,CAAC,CAAC;QAChB,yEAAyE;QACzE,gCAAgC;QAChC,8EAA8E;QAC9E,EAAE;QACF,0EAA0E;QAC1E,+BAA+B;QAC/B,EAAE;QACF,qDAAqD;QACrD,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,CAAQ;IACzC,OAAO,CAAC,IAAI,IAAI,CAAC;AACnB,CAAC;AAID,MAAM,UAAU,cAAc,CAC5B,KAAe,EACf,OAA6B;IAE7B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACd,gDAAgD;QAChD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/C,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,CAAQ,EAAE,CAAQ;IAC5C,kCAAkC;IAClC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/data.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { CompoundKey } from '../../../zero-protocol/src/ast.ts';
2
2
  import { type Change } from './change.ts';
3
+ import { type Node } from './data.ts';
3
4
  import { type FetchRequest, type Input, type Operator, type Output, type Storage } from './operator.ts';
4
5
  import type { SourceSchema } from './schema.ts';
5
6
  /**
@@ -12,8 +13,8 @@ export declare class Exists implements Operator {
12
13
  setOutput(output: Output): void;
13
14
  destroy(): void;
14
15
  getSchema(): SourceSchema;
15
- fetch(req: FetchRequest): Generator<import("./data.ts").Node, void, unknown>;
16
- cleanup(req: FetchRequest): Generator<import("./data.ts").Node, void, unknown>;
16
+ fetch(req: FetchRequest): Generator<Node, void, unknown>;
17
+ cleanup(req: FetchRequest): Generator<Node, void, unknown>;
17
18
  push(change: Change): void;
18
19
  }
19
20
  //# sourceMappingURL=exists.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"exists.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/exists.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAe,KAAK,MAAM,EAAC,MAAM,aAAa,CAAC;AAEtD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,OAAO,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAa9C;;;GAGG;AACH,qBAAa,MAAO,YAAW,QAAQ;;gBAWnC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,WAAW,EAC1B,IAAI,EAAE,QAAQ,GAAG,YAAY;IAiB/B,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,YAAY;IAIxB,KAAK,CAAC,GAAG,EAAE,YAAY;IAQvB,OAAO,CAAC,GAAG,EAAE,YAAY;IAS1B,IAAI,CAAC,MAAM,EAAE,MAAM;CA2OpB"}
1
+ {"version":3,"file":"exists.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/exists.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAGL,KAAK,IAAI,EAEV,MAAM,WAAW,CAAC;AACnB,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,OAAO,EACb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAa9C;;;GAGG;AACH,qBAAa,MAAO,YAAW,QAAQ;;gBAWnC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,WAAW,EAC1B,IAAI,EAAE,QAAQ,GAAG,YAAY;IAiB/B,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,YAAY;IAIxB,KAAK,CAAC,GAAG,EAAE,YAAY;IAQvB,OAAO,CAAC,GAAG,EAAE,YAAY;IAW1B,IAAI,CAAC,MAAM,EAAE,MAAM;CAoNpB"}
@@ -1,8 +1,7 @@
1
1
  import { areEqual } from "../../../shared/src/arrays.js";
2
2
  import { assert, unreachable } from "../../../shared/src/asserts.js";
3
- import { must } from "../../../shared/src/must.js";
4
- import { rowForChange } from "./change.js";
5
- import { normalizeUndefined } from "./data.js";
3
+ import {} from "./change.js";
4
+ import { drainStreams, normalizeUndefined, } from "./data.js";
6
5
  import { throwOutput, } from "./operator.js";
7
6
  import { first } from "./stream.js";
8
7
  /**
@@ -39,17 +38,20 @@ export class Exists {
39
38
  }
40
39
  *fetch(req) {
41
40
  for (const node of this.#input.fetch(req)) {
42
- if (this.#filter(node.row)) {
41
+ if (this.#filter(node)) {
43
42
  yield node;
44
43
  }
45
44
  }
46
45
  }
47
46
  *cleanup(req) {
48
47
  for (const node of this.#input.cleanup(req)) {
49
- if (this.#filter(node.row)) {
48
+ if (this.#filter(node)) {
50
49
  yield node;
51
50
  }
52
- this.#delSize(node.row);
51
+ else {
52
+ drainStreams(node);
53
+ }
54
+ this.#delSize(node);
53
55
  }
54
56
  }
55
57
  push(change) {
@@ -62,17 +64,17 @@ export class Exists {
62
64
  return;
63
65
  }
64
66
  case 'remove': {
65
- const size = this.#getSize(change.node.row);
67
+ const size = this.#getSize(change.node);
66
68
  // If size is undefined, this operator has not output
67
69
  // this row before and so it is unnecessary to output a remove for
68
- // it. Which is fortunate, since #fetchSize/#fetchNodeForRow would
70
+ // it. Which is fortunate, since #fetchSize would
69
71
  // not be able to fetch a Node for this change since it is
70
72
  // removed from the source.
71
73
  if (size === undefined) {
72
74
  return;
73
75
  }
74
76
  this.#pushWithFilter(change, size);
75
- this.#delSize(change.node.row);
77
+ this.#delSize(change.node);
76
78
  return;
77
79
  }
78
80
  case 'child':
@@ -88,14 +90,14 @@ export class Exists {
88
90
  }
89
91
  switch (change.child.change.type) {
90
92
  case 'add': {
91
- let size = this.#getSize(change.row);
93
+ let size = this.#getSize(change.node);
92
94
  if (size !== undefined) {
93
95
  size++;
94
- this.#setCachedSize(change.row, size);
95
- this.#setSize(change.row, size);
96
+ this.#setCachedSize(change.node, size);
97
+ this.#setSize(change.node, size);
96
98
  }
97
99
  else {
98
- size = this.#fetchSize(change.row);
100
+ size = this.#fetchSize(change.node);
99
101
  }
100
102
  if (size === 1) {
101
103
  const type = this.#not ? 'remove' : 'add';
@@ -109,7 +111,7 @@ export class Exists {
109
111
  }
110
112
  this.#output.push({
111
113
  type,
112
- node: this.#fetchNodeForRow(change.row),
114
+ node: change.node,
113
115
  });
114
116
  }
115
117
  else {
@@ -118,7 +120,7 @@ export class Exists {
118
120
  return;
119
121
  }
120
122
  case 'remove': {
121
- let size = this.#getSize(change.row);
123
+ let size = this.#getSize(change.node);
122
124
  if (size !== undefined) {
123
125
  // Work around for issue https://bugs.rocicorp.dev/issue/3204
124
126
  // assert(size > 0);
@@ -126,11 +128,11 @@ export class Exists {
126
128
  return;
127
129
  }
128
130
  size--;
129
- this.#setCachedSize(change.row, size);
130
- this.#setSize(change.row, size);
131
+ this.#setCachedSize(change.node, size);
132
+ this.#setSize(change.node, size);
131
133
  }
132
134
  else {
133
- size = this.#fetchSize(change.row);
135
+ size = this.#fetchSize(change.node);
134
136
  }
135
137
  if (size === 0) {
136
138
  const type = this.#not ? 'add' : 'remove';
@@ -143,7 +145,7 @@ export class Exists {
143
145
  }
144
146
  this.#output.push({
145
147
  type,
146
- node: this.#fetchNodeForRow(change.row),
148
+ node: change.node,
147
149
  });
148
150
  }
149
151
  else {
@@ -158,99 +160,88 @@ export class Exists {
158
160
  }
159
161
  }
160
162
  /**
161
- * Returns whether or not the change's row's this.#relationshipName
163
+ * Returns whether or not the node's this.#relationshipName
162
164
  * relationship passes the exist/not exists filter condition.
163
165
  * If the optional `size` is passed it is used.
164
166
  * Otherwise, if there is a stored size for the row it is used.
165
- * Otherwise the size is computed by fetching a node for the row from
166
- * this.#input (this computed size is also stored).
167
+ * Otherwise the size is computed by streaming the node's
168
+ * relationship with this.#relationshipName (this computed size is also
169
+ * stored).
167
170
  */
168
- #filter(row, size) {
169
- const exists = (size ?? this.#getOrFetchSize(row)) > 0;
171
+ #filter(node, size) {
172
+ const exists = (size ?? this.#getOrFetchSize(node)) > 0;
170
173
  return this.#not ? !exists : exists;
171
174
  }
172
175
  /**
173
176
  * Pushes a change if this.#filter is true for its row.
174
177
  */
175
178
  #pushWithFilter(change, size) {
176
- const row = rowForChange(change);
177
- if (this.#filter(row, size)) {
179
+ if (this.#filter(change.node, size)) {
178
180
  this.#output.push(change);
179
181
  }
180
182
  }
181
- #getSize(row) {
182
- return this.#storage.get(this.#makeSizeStorageKey(row));
183
+ #getSize(node) {
184
+ return this.#storage.get(this.#makeSizeStorageKey(node));
183
185
  }
184
- #setSize(row, size) {
185
- this.#storage.set(this.#makeSizeStorageKey(row), size);
186
+ #setSize(node, size) {
187
+ this.#storage.set(this.#makeSizeStorageKey(node), size);
186
188
  }
187
- #setCachedSize(row, size) {
189
+ #setCachedSize(node, size) {
188
190
  if (this.#skipCache) {
189
191
  return;
190
192
  }
191
- this.#storage.set(this.#makeCacheStorageKey(row), size);
193
+ this.#storage.set(this.#makeCacheStorageKey(node), size);
192
194
  }
193
- #getCachedSize(row) {
195
+ #getCachedSize(node) {
194
196
  if (this.#skipCache) {
195
197
  return undefined;
196
198
  }
197
- return this.#storage.get(this.#makeCacheStorageKey(row));
199
+ return this.#storage.get(this.#makeCacheStorageKey(node));
198
200
  }
199
- #delSize(row) {
200
- this.#storage.del(this.#makeSizeStorageKey(row));
201
+ #delSize(node) {
202
+ this.#storage.del(this.#makeSizeStorageKey(node));
201
203
  if (!this.#skipCache) {
202
- const cacheKey = this.#makeCacheStorageKey(row);
204
+ const cacheKey = this.#makeCacheStorageKey(node);
203
205
  if (first(this.#storage.scan({ prefix: `${cacheKey}/` })) === undefined) {
204
206
  this.#storage.del(cacheKey);
205
207
  }
206
208
  }
207
209
  }
208
- #getOrFetchSize(row) {
209
- const size = this.#getSize(row);
210
+ #getOrFetchSize(node) {
211
+ const size = this.#getSize(node);
210
212
  if (size !== undefined) {
211
213
  return size;
212
214
  }
213
- // We fetch this node so we can consume the relationship to
214
- // determine its size (we can't consume the relationship of
215
- // the node we are going to push or return via fetch to
216
- // our output, because the relationships are one time use streams).
217
- return this.#fetchSize(row);
215
+ return this.#fetchSize(node);
218
216
  }
219
- #fetchSize(row) {
220
- const cachedSize = this.#getCachedSize(row);
217
+ #fetchSize(node) {
218
+ const cachedSize = this.#getCachedSize(node);
221
219
  if (cachedSize !== undefined) {
222
- this.#setSize(row, cachedSize);
220
+ this.#setSize(node, cachedSize);
223
221
  return cachedSize;
224
222
  }
225
- const relationship = this.#fetchNodeForRow(row).relationships[this.#relationshipName];
223
+ const relationship = node.relationships[this.#relationshipName];
226
224
  assert(relationship);
227
225
  let size = 0;
228
- for (const _relatedNode of relationship) {
226
+ for (const _relatedNode of relationship()) {
229
227
  size++;
230
228
  }
231
- this.#setCachedSize(row, size);
232
- this.#setSize(row, size);
229
+ this.#setCachedSize(node, size);
230
+ this.#setSize(node, size);
233
231
  return size;
234
232
  }
235
- #fetchNodeForRow(row) {
236
- const fetched = must(first(this.#input.fetch({
237
- start: { row, basis: 'at' },
238
- })));
239
- assert(this.getSchema().compareRows(row, fetched.row) === 0, () => `fetchNodeForRow returned unexpected row, expected ${JSON.stringify(row)}, received ${JSON.stringify(fetched.row)}`);
240
- return fetched;
241
- }
242
- #makeCacheStorageKey(row) {
243
- return `row/${JSON.stringify(this.#getKeyValues(row, this.#parentJoinKey))}`;
233
+ #makeCacheStorageKey(node) {
234
+ return `row/${JSON.stringify(this.#getKeyValues(node, this.#parentJoinKey))}`;
244
235
  }
245
- #makeSizeStorageKey(row) {
236
+ #makeSizeStorageKey(node) {
246
237
  return `row/${this.#skipCache
247
238
  ? ''
248
- : JSON.stringify(this.#getKeyValues(row, this.#parentJoinKey))}/${JSON.stringify(this.#getKeyValues(row, this.#input.getSchema().primaryKey))}`;
239
+ : JSON.stringify(this.#getKeyValues(node, this.#parentJoinKey))}/${JSON.stringify(this.#getKeyValues(node, this.#input.getSchema().primaryKey))}`;
249
240
  }
250
- #getKeyValues(row, def) {
241
+ #getKeyValues(node, def) {
251
242
  const values = [];
252
243
  for (const key of def) {
253
- values.push(normalizeUndefined(row[key]));
244
+ values.push(normalizeUndefined(node.row[key]));
254
245
  }
255
246
  return values;
256
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"exists.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/exists.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exists.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/exists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAa,MAAM,aAAa,CAAC;AACxC,OAAO,EACL,YAAY,EACZ,kBAAkB,GAGnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,WAAW,GAMZ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAC;AAYlC;;;GAGG;AACH,MAAM,OAAO,MAAM;IACR,MAAM,CAAQ;IACd,iBAAiB,CAAS;IAC1B,QAAQ,CAAgB;IACxB,IAAI,CAAU;IACd,cAAc,CAAc;IAC5B,UAAU,CAAU;IAE7B,OAAO,GAAW,WAAW,CAAC;IAE9B,YACE,KAAY,EACZ,OAAgB,EAChB,gBAAwB,EACxB,aAA0B,EAC1B,IAA6B;QAE7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,gBAAgB,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,OAAwB,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,KAAK,YAAY,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QAEpC,gEAAgE;QAChE,IAAI,CAAC,UAAU,GAAG,QAAQ,CACxB,aAAa,EACb,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU,CACnC,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,MAAc;QACtB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,CAAC,KAAK,CAAC,GAAiB;QACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,CAAC,OAAO,CAAC,GAAiB;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,MAAc;QACjB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,qDAAqD;YACrD,iEAAiE;YACjE,KAAK,KAAK,CAAC;YACX,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxC,qDAAqD;gBACrD,kEAAkE;gBAClE,kDAAkD;gBAClD,0DAA0D;gBAC1D,2BAA2B;gBAC3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,KAAK,OAAO;gBACV,4CAA4C;gBAC5C,2DAA2D;gBAC3D,wDAAwD;gBACxD,uCAAuC;gBACvC,IACE,MAAM,CAAC,KAAK,CAAC,gBAAgB,KAAK,IAAI,CAAC,iBAAiB;oBACxD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;oBACnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO,EACpC,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBACD,QAAQ,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACjC,KAAK,KAAK,CAAC,CAAC,CAAC;wBACX,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;4BACvB,IAAI,EAAE,CAAC;4BACP,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;4BACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACnC,CAAC;6BAAM,CAAC;4BACN,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACtC,CAAC;wBACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;4BACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;4BAC1C,8DAA8D;4BAC9D,8BAA8B;4BAC9B,yCAAyC;4BACzC,0DAA0D;4BAC1D,+CAA+C;4BAC/C,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gCACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC5B,CAAC;4BACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gCAChB,IAAI;gCACJ,IAAI,EAAE,MAAM,CAAC,IAAI;6BAClB,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBACrC,CAAC;wBACD,OAAO;oBACT,CAAC;oBACD,KAAK,QAAQ,CAAC,CAAC,CAAC;wBACd,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;4BACvB,6DAA6D;4BAC7D,oBAAoB;4BACpB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gCACf,OAAO;4BACT,CAAC;4BACD,IAAI,EAAE,CAAC;4BACP,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;4BACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACnC,CAAC;6BAAM,CAAC;4BACN,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACtC,CAAC;wBACD,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;4BACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;4BAC1C,kEAAkE;4BAClE,gCAAgC;4BAChC,yCAAyC;4BACzC,yCAAyC;4BACzC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gCACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;4BAC5B,CAAC;4BACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gCAChB,IAAI;gCACJ,IAAI,EAAE,MAAM,CAAC,IAAI;6BAClB,CAAC,CAAC;wBACL,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;wBACrC,CAAC;wBACD,OAAO;oBACT,CAAC;gBACH,CAAC;gBACD,OAAO;YACT;gBACE,WAAW,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAU,EAAE,IAAa;QAC/B,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc,EAAE,IAAa;QAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,IAAU;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ,CAAC,IAAU,EAAE,IAAY;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,cAAc,CAAC,IAAU,EAAE,IAAY;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,cAAc,CAAC,IAAU;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,QAAQ,CAAC,IAAU;QACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,GAAG,QAAQ,GAAG,EAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,IAAU;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU,CAAC,IAAU;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAChC,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChE,MAAM,CAAC,YAAY,CAAC,CAAC;QACrB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,YAAY,IAAI,YAAY,EAAE,EAAE,CAAC;YAC1C,IAAI,EAAE,CAAC;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB,CAAC,IAAU;QAC7B,OAAO,OAAO,IAAI,CAAC,SAAS,CAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAC9C,EAAE,CAAC;IACN,CAAC;IAED,mBAAmB,CAAC,IAAU;QAC5B,OAAO,OACL,IAAI,CAAC,UAAU;YACb,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAClE,IAAI,IAAI,CAAC,SAAS,CAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAC7D,EAAE,CAAC;IACN,CAAC;IAED,aAAa,CAAC,IAAU,EAAE,GAAgB;QACxC,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -13,7 +13,7 @@ export function filterPush(change, output, predicate) {
13
13
  }
14
14
  break;
15
15
  case 'child':
16
- if (predicate(change.row)) {
16
+ if (predicate(change.node.row)) {
17
17
  output.push(change);
18
18
  }
19
19
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"filter-push.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/filter-push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAG3D,OAAO,EAAC,2BAA2B,EAAC,MAAM,uCAAuC,CAAC;AAGlF,MAAM,UAAU,UAAU,CACxB,MAAc,EACd,MAAc,EACd,SAA+C;IAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ;YACX,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YACD,MAAM;QACR,KAAK,MAAM;YACT,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM;QACR;YACE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"filter-push.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/filter-push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAG3D,OAAO,EAAC,2BAA2B,EAAC,MAAM,uCAAuC,CAAC;AAGlF,MAAM,UAAU,UAAU,CACxB,MAAc,EACd,MAAc,EACd,SAA+C;IAE/C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO;IACT,CAAC;IACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ;YACX,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,CAAC;YACD,MAAM;QACR,KAAK,MAAM;YACT,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM;QACR;YACE,WAAW,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;AACH,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import type { Row } from '../../../zero-protocol/src/data.ts';
2
2
  import type { Change } from './change.ts';
3
- import type { Node } from './data.ts';
4
3
  import { type FetchRequest, type Input, type Operator, type Output } from './operator.ts';
5
4
  import type { SourceSchema } from './schema.ts';
6
5
  /**
@@ -14,8 +13,8 @@ export declare class Filter implements Operator {
14
13
  setOutput(output: Output): void;
15
14
  destroy(): void;
16
15
  getSchema(): SourceSchema;
17
- fetch(req: FetchRequest): Generator<Node, void, unknown>;
18
- cleanup(req: FetchRequest): Generator<Node, void, unknown>;
16
+ fetch(req: FetchRequest): Generator<import("./data.ts").Node, void, unknown>;
17
+ cleanup(req: FetchRequest): Generator<import("./data.ts").Node, void, unknown>;
19
18
  push(change: Change): void;
20
19
  }
21
20
  //# sourceMappingURL=filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,oCAAoC,CAAC;AAC5D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAEpC,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,MAAM,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAG9C;;;;GAIG;AACH,qBAAa,MAAO,YAAW,QAAQ;;gBAMzB,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO;IAM1D,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,YAAY;IAIzB,KAAK,CAAC,GAAG,EAAE,YAAY;IAIvB,OAAO,CAAC,GAAG,EAAE,YAAY;IAYzB,IAAI,CAAC,MAAM,EAAE,MAAM;CAGpB"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../../zql/src/ivm/filter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,oCAAoC,CAAC;AAC5D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAGxC,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,QAAQ,EACb,KAAK,MAAM,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAE9C;;;;GAIG;AACH,qBAAa,MAAO,YAAW,QAAQ;;gBAMzB,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO;IAM1D,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,OAAO,IAAI,IAAI;IAIf,SAAS,IAAI,YAAY;IAIxB,KAAK,CAAC,GAAG,EAAE,YAAY;IAQvB,OAAO,CAAC,GAAG,EAAE,YAAY;IAU1B,IAAI,CAAC,MAAM,EAAE,MAAM;CAGpB"}