@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.
- package/out/advanced.js +1 -1
- package/out/{chunk-VYAI3OU4.js → chunk-UEPZPKPV.js} +125 -171
- package/out/{chunk-VYAI3OU4.js.map → chunk-UEPZPKPV.js.map} +4 -4
- package/out/{chunk-QAAJZ32T.js → chunk-ZVLXEWWB.js} +71 -11
- package/out/chunk-ZVLXEWWB.js.map +7 -0
- package/out/otel/src/log-options.d.ts +23 -0
- package/out/otel/src/log-options.d.ts.map +1 -0
- package/out/otel/src/log-options.js +34 -0
- package/out/otel/src/log-options.js.map +1 -0
- package/out/otel/src/maybe-time.d.ts +3 -0
- package/out/otel/src/maybe-time.d.ts.map +1 -0
- package/out/otel/src/maybe-time.js +13 -0
- package/out/otel/src/maybe-time.js.map +1 -0
- package/out/solid.js +2 -2
- package/out/zero-cache/src/auth/write-authorizer.d.ts +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +3 -1
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +17 -13
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +1 -19
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/server/multi/config.d.ts +8 -0
- package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
- package/out/zero-cache/src/server/multi/main.d.ts +2 -2
- package/out/zero-cache/src/server/multi/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/multi/main.js +4 -89
- package/out/zero-cache/src/server/multi/main.js.map +1 -1
- package/out/zero-cache/src/server/multi/run-worker.d.ts +4 -0
- package/out/zero-cache/src/server/multi/run-worker.d.ts.map +1 -0
- package/out/zero-cache/src/server/multi/run-worker.js +91 -0
- package/out/zero-cache/src/server/multi/run-worker.js.map +1 -0
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +1 -1
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +93 -120
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +18 -18
- package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.js +5 -2
- package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +24 -24
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +8 -8
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +3 -2
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
- package/out/zero-cache/src/services/life-cycle.js +4 -2
- package/out/zero-cache/src/services/life-cycle.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +7 -3
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +5 -3
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +26 -2
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/processes.d.ts +1 -0
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js +5 -1
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +9 -7
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +78 -0
- package/out/zero-client/src/client/custom.d.ts.map +1 -0
- package/out/zero-client/src/client/options.d.ts +4 -2
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/types/client-state.d.ts +8 -0
- package/out/zero-client/src/types/client-state.d.ts.map +1 -0
- package/out/zero.js +2 -2
- package/out/zql/src/ivm/change.d.ts +4 -4
- package/out/zql/src/ivm/change.d.ts.map +1 -1
- package/out/zql/src/ivm/change.js +1 -4
- package/out/zql/src/ivm/change.js.map +1 -1
- package/out/zql/src/ivm/data.d.ts +2 -1
- package/out/zql/src/ivm/data.d.ts.map +1 -1
- package/out/zql/src/ivm/data.js +7 -0
- package/out/zql/src/ivm/data.js.map +1 -1
- package/out/zql/src/ivm/exists.d.ts +3 -2
- package/out/zql/src/ivm/exists.d.ts.map +1 -1
- package/out/zql/src/ivm/exists.js +55 -64
- package/out/zql/src/ivm/exists.js.map +1 -1
- package/out/zql/src/ivm/filter-push.js +1 -1
- package/out/zql/src/ivm/filter-push.js.map +1 -1
- package/out/zql/src/ivm/filter.d.ts +2 -3
- package/out/zql/src/ivm/filter.d.ts.map +1 -1
- package/out/zql/src/ivm/filter.js +12 -7
- package/out/zql/src/ivm/filter.js.map +1 -1
- package/out/zql/src/ivm/join.d.ts +4 -1
- package/out/zql/src/ivm/join.d.ts.map +1 -1
- package/out/zql/src/ivm/join.js +32 -25
- package/out/zql/src/ivm/join.js.map +1 -1
- package/out/zql/src/ivm/skip.d.ts.map +1 -1
- package/out/zql/src/ivm/skip.js +1 -2
- package/out/zql/src/ivm/skip.js.map +1 -1
- package/out/zql/src/ivm/take.d.ts.map +1 -1
- package/out/zql/src/ivm/take.js +4 -3
- package/out/zql/src/ivm/take.js.map +1 -1
- package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
- package/out/zql/src/ivm/view-apply-change.js +4 -10
- package/out/zql/src/ivm/view-apply-change.js.map +1 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +11 -1
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +3 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +22 -6
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +2 -1
- 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;
|
|
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 @@
|
|
|
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-
|
|
21
|
+
} from "./chunk-UEPZPKPV.js";
|
|
22
22
|
import "./chunk-HARIWJ2J.js";
|
|
23
|
-
import "./chunk-
|
|
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
|
|
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
|
-
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/change.ts"],"names":[],"mappings":"
|
|
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;
|
|
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"}
|
package/out/zql/src/ivm/data.js
CHANGED
|
@@ -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<
|
|
16
|
-
cleanup(req: FetchRequest): Generator<
|
|
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":"
|
|
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 {
|
|
4
|
-
import {
|
|
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
|
|
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
|
|
48
|
+
if (this.#filter(node)) {
|
|
50
49
|
yield node;
|
|
51
50
|
}
|
|
52
|
-
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
93
|
+
let size = this.#getSize(change.node);
|
|
92
94
|
if (size !== undefined) {
|
|
93
95
|
size++;
|
|
94
|
-
this.#setCachedSize(change.
|
|
95
|
-
this.#setSize(change.
|
|
96
|
+
this.#setCachedSize(change.node, size);
|
|
97
|
+
this.#setSize(change.node, size);
|
|
96
98
|
}
|
|
97
99
|
else {
|
|
98
|
-
size = this.#fetchSize(change.
|
|
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:
|
|
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.
|
|
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.
|
|
130
|
-
this.#setSize(change.
|
|
131
|
+
this.#setCachedSize(change.node, size);
|
|
132
|
+
this.#setSize(change.node, size);
|
|
131
133
|
}
|
|
132
134
|
else {
|
|
133
|
-
size = this.#fetchSize(change.
|
|
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:
|
|
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
|
|
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
|
|
166
|
-
* this.#
|
|
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(
|
|
169
|
-
const exists = (size ?? this.#getOrFetchSize(
|
|
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
|
-
|
|
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(
|
|
182
|
-
return this.#storage.get(this.#makeSizeStorageKey(
|
|
183
|
+
#getSize(node) {
|
|
184
|
+
return this.#storage.get(this.#makeSizeStorageKey(node));
|
|
183
185
|
}
|
|
184
|
-
#setSize(
|
|
185
|
-
this.#storage.set(this.#makeSizeStorageKey(
|
|
186
|
+
#setSize(node, size) {
|
|
187
|
+
this.#storage.set(this.#makeSizeStorageKey(node), size);
|
|
186
188
|
}
|
|
187
|
-
#setCachedSize(
|
|
189
|
+
#setCachedSize(node, size) {
|
|
188
190
|
if (this.#skipCache) {
|
|
189
191
|
return;
|
|
190
192
|
}
|
|
191
|
-
this.#storage.set(this.#makeCacheStorageKey(
|
|
193
|
+
this.#storage.set(this.#makeCacheStorageKey(node), size);
|
|
192
194
|
}
|
|
193
|
-
#getCachedSize(
|
|
195
|
+
#getCachedSize(node) {
|
|
194
196
|
if (this.#skipCache) {
|
|
195
197
|
return undefined;
|
|
196
198
|
}
|
|
197
|
-
return this.#storage.get(this.#makeCacheStorageKey(
|
|
199
|
+
return this.#storage.get(this.#makeCacheStorageKey(node));
|
|
198
200
|
}
|
|
199
|
-
#delSize(
|
|
200
|
-
this.#storage.del(this.#makeSizeStorageKey(
|
|
201
|
+
#delSize(node) {
|
|
202
|
+
this.#storage.del(this.#makeSizeStorageKey(node));
|
|
201
203
|
if (!this.#skipCache) {
|
|
202
|
-
const cacheKey = this.#makeCacheStorageKey(
|
|
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(
|
|
209
|
-
const size = this.#getSize(
|
|
210
|
+
#getOrFetchSize(node) {
|
|
211
|
+
const size = this.#getSize(node);
|
|
210
212
|
if (size !== undefined) {
|
|
211
213
|
return size;
|
|
212
214
|
}
|
|
213
|
-
|
|
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(
|
|
220
|
-
const cachedSize = this.#getCachedSize(
|
|
217
|
+
#fetchSize(node) {
|
|
218
|
+
const cachedSize = this.#getCachedSize(node);
|
|
221
219
|
if (cachedSize !== undefined) {
|
|
222
|
-
this.#setSize(
|
|
220
|
+
this.#setSize(node, cachedSize);
|
|
223
221
|
return cachedSize;
|
|
224
222
|
}
|
|
225
|
-
const relationship =
|
|
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(
|
|
232
|
-
this.#setSize(
|
|
229
|
+
this.#setCachedSize(node, size);
|
|
230
|
+
this.#setSize(node, size);
|
|
233
231
|
return size;
|
|
234
232
|
}
|
|
235
|
-
#
|
|
236
|
-
|
|
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(
|
|
236
|
+
#makeSizeStorageKey(node) {
|
|
246
237
|
return `row/${this.#skipCache
|
|
247
238
|
? ''
|
|
248
|
-
: JSON.stringify(this.#getKeyValues(
|
|
239
|
+
: JSON.stringify(this.#getKeyValues(node, this.#parentJoinKey))}/${JSON.stringify(this.#getKeyValues(node, this.#input.getSchema().primaryKey))}`;
|
|
249
240
|
}
|
|
250
|
-
#getKeyValues(
|
|
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":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"exists.js","sourceRoot":"","sources":["../../../../../zql/src/ivm/exists.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;
|
|
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"}
|