@uwdata/mosaic-core 0.18.0 → 0.19.1
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/dist/src/Coordinator.d.ts +16 -4
- package/dist/src/Coordinator.d.ts.map +1 -1
- package/dist/src/Coordinator.js +0 -19
- package/dist/src/Coordinator.js.map +1 -1
- package/dist/src/MosaicClient.d.ts.map +1 -1
- package/dist/src/MosaicClient.js +1 -0
- package/dist/src/MosaicClient.js.map +1 -1
- package/dist/src/QueryConsolidator.js +4 -4
- package/dist/src/QueryConsolidator.js.map +1 -1
- package/dist/src/Selection.d.ts +9 -9
- package/dist/src/Selection.d.ts.map +1 -1
- package/dist/src/Selection.js +9 -6
- package/dist/src/Selection.js.map +1 -1
- package/dist/src/SelectionClause.d.ts +55 -25
- package/dist/src/SelectionClause.d.ts.map +1 -1
- package/dist/src/SelectionClause.js +52 -10
- package/dist/src/SelectionClause.js.map +1 -1
- package/dist/src/connectors/wasm.d.ts +3 -0
- package/dist/src/connectors/wasm.d.ts.map +1 -1
- package/dist/src/connectors/wasm.js +5 -2
- package/dist/src/connectors/wasm.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/make-client.d.ts +2 -4
- package/dist/src/make-client.d.ts.map +1 -1
- package/dist/src/make-client.js +1 -1
- package/dist/src/util/decode-ipc.d.ts +1 -1
- package/dist/src/util/decode-ipc.d.ts.map +1 -1
- package/dist/src/util/decode-ipc.js.map +1 -1
- package/dist/src/util/field-info.js.map +1 -1
- package/package.json +6 -6
- package/src/Coordinator.ts +32 -3
- package/src/MosaicClient.ts +1 -0
- package/src/QueryConsolidator.ts +4 -4
- package/src/Selection.ts +12 -9
- package/src/SelectionClause.ts +147 -65
- package/src/connectors/wasm.ts +9 -4
- package/src/index.ts +3 -1
- package/src/make-client.ts +2 -2
- package/src/util/decode-ipc.ts +4 -1
- package/src/util/field-info.ts +3 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isMosaicClient } from './MosaicClient.js';
|
|
2
|
-
import { and, contains, isBetween, isIn, isNotDistinct, literal, or, prefix, regexp_matches, suffix } from '@uwdata/mosaic-sql';
|
|
2
|
+
import { and, contains, isBetween, isIn, isNotDistinct, literal, or, prefix, regexp_matches, suffix, listHasAny, listHasAll, lower } from '@uwdata/mosaic-sql';
|
|
3
3
|
/**
|
|
4
4
|
* Generate a selection clause for a single selected point value.
|
|
5
5
|
* @param field The table column or expression to select.
|
|
@@ -37,7 +37,7 @@ export function clausePoint(field, value, { source, clients = isMosaicClient(sou
|
|
|
37
37
|
*/
|
|
38
38
|
export function clausePoints(fields, value, { source, clients = isMosaicClient(source) ? new Set([source]) : undefined }) {
|
|
39
39
|
let predicate = null;
|
|
40
|
-
if (value) {
|
|
40
|
+
if (value?.length) {
|
|
41
41
|
const clauses = value.length && fields.length === 1
|
|
42
42
|
? [isIn(fields[0], value.map(v => literal(v[0])))]
|
|
43
43
|
: value.map(v => and(v.map((_, i) => isNotDistinct(fields[i], literal(_)))));
|
|
@@ -104,23 +104,65 @@ export function clauseIntervals(fields, value, { source, clients = isMosaicClien
|
|
|
104
104
|
};
|
|
105
105
|
return { meta, source, clients, value, predicate };
|
|
106
106
|
}
|
|
107
|
+
const identity = (x) => x;
|
|
107
108
|
const MATCH_METHODS = { contains, prefix, suffix, regexp: regexp_matches };
|
|
108
109
|
/**
|
|
109
|
-
* Generate a selection clause for text search matching.
|
|
110
|
-
* @param field The table column or expression to
|
|
110
|
+
* Generate a selection clause for text search matching over a single column.
|
|
111
|
+
* @param field The table column or expression to match.
|
|
111
112
|
* @param value The selected text search query string.
|
|
112
113
|
* @param options Additional clause properties.
|
|
113
114
|
* @param options.source The source component generating this clause.
|
|
114
|
-
* @param options.clients
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
* @param options.
|
|
115
|
+
* @param options.clients Mosaic clients associated with this clause.
|
|
116
|
+
* These clients are not filtered by this clause in cross-filtering contexts.
|
|
117
|
+
* @param options.method The text matching method to use, default `'contains'`.
|
|
118
|
+
* @param options.caseSensitive Flag for case sensitive matching, default `false`.
|
|
118
119
|
* @returns The generated selection clause.
|
|
119
120
|
*/
|
|
120
|
-
export function clauseMatch(field, value, { source, clients = undefined, method = 'contains' }) {
|
|
121
|
+
export function clauseMatch(field, value, { source, clients = undefined, method = 'contains', caseSensitive = false }) {
|
|
121
122
|
const fn = MATCH_METHODS[method];
|
|
122
|
-
const
|
|
123
|
+
const transform = caseSensitive ? identity : lower;
|
|
124
|
+
const predicate = value ? fn(transform(field), transform(literal(value))) : null;
|
|
123
125
|
const meta = { type: 'match', method };
|
|
124
126
|
return { meta, source, clients, value, predicate };
|
|
125
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Generate a selection clause for text search matching over multiple columns.
|
|
130
|
+
* A match will succeed if any field successfully matches.
|
|
131
|
+
* @param fields The table columns or expressions to match.
|
|
132
|
+
* @param value The selected text search query string.
|
|
133
|
+
* @param options Additional clause properties.
|
|
134
|
+
* @param options.source The source component generating this clause.
|
|
135
|
+
* @param options.clients Mosaic clients associated with this clause.
|
|
136
|
+
* These clients are not filtered by this clause in cross-filtering contexts.
|
|
137
|
+
* @param options.method The text matching method to use, default `'contains'`.
|
|
138
|
+
* @param options.caseSensitive Flag for case sensitive matching, default `false`.
|
|
139
|
+
* @returns The generated selection clause.
|
|
140
|
+
*/
|
|
141
|
+
export function clauseMatchAny(fields, value, { source, clients = undefined, method = 'contains', caseSensitive = false }) {
|
|
142
|
+
value = value || null;
|
|
143
|
+
const fn = MATCH_METHODS[method];
|
|
144
|
+
const transform = caseSensitive ? identity : lower;
|
|
145
|
+
const query = transform(literal(value));
|
|
146
|
+
const predicate = value
|
|
147
|
+
? or(fields.flatMap(field => value ? fn(transform(field), query) : []))
|
|
148
|
+
: null;
|
|
149
|
+
const meta = { type: 'match', method };
|
|
150
|
+
return { meta, source, clients, value, predicate };
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Generate a selection clause for a single selected point value in a list.
|
|
154
|
+
* @param field The table column or expression to select, which must be a list.
|
|
155
|
+
* @param value The selected value.
|
|
156
|
+
* @param options Additional clause properties.
|
|
157
|
+
* @param options.source The source component generating this clause.
|
|
158
|
+
* @param options.clients The Mosaic clients associated
|
|
159
|
+
* with this clause. These clients are not filtered by this clause in
|
|
160
|
+
* cross-filtering contexts.
|
|
161
|
+
* @returns The generated selection clause.
|
|
162
|
+
*/
|
|
163
|
+
export function clauseList(field, value, { source, clients = isMosaicClient(source) ? new Set([source]) : undefined, listMatch = 'any' }) {
|
|
164
|
+
const listFn = listMatch === 'all' ? listHasAll : listHasAny;
|
|
165
|
+
const predicate = value !== undefined ? listFn(field, literal(value)) : null;
|
|
166
|
+
return { source, clients, value, predicate };
|
|
167
|
+
}
|
|
126
168
|
//# sourceMappingURL=SelectionClause.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionClause.js","sourceRoot":"","sources":["../../src/SelectionClause.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SelectionClause.js","sourceRoot":"","sources":["../../src/SelectionClause.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ interface DuckDBWASMConnectorOptions extends DuckDBWASMOptions {
|
|
|
12
12
|
duckdb?: duckdb.AsyncDuckDB;
|
|
13
13
|
/** Optional pre-existing DuckDB-WASM connection. */
|
|
14
14
|
connection?: duckdb.AsyncDuckDBConnection;
|
|
15
|
+
/** Optional database config. */
|
|
16
|
+
config?: duckdb.DuckDBConfig;
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* Connect to a DuckDB-WASM instance.
|
|
@@ -27,6 +29,7 @@ export declare class DuckDBWASMConnector implements Connector {
|
|
|
27
29
|
_options: DuckDBWASMOptions;
|
|
28
30
|
_db?: duckdb.AsyncDuckDB;
|
|
29
31
|
_con?: duckdb.AsyncDuckDBConnection;
|
|
32
|
+
_config?: duckdb.DuckDBConfig;
|
|
30
33
|
_loadPromise?: Promise<unknown>;
|
|
31
34
|
/**
|
|
32
35
|
* Create a new DuckDB-WASM connector instance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../src/connectors/wasm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAyB,MAAM,gBAAgB,CAAC;AAC9H,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAG9C,UAAU,iBAAiB;IACzB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,0BAA2B,SAAQ,iBAAiB;IAC5D,oCAAoC;IACpC,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../src/connectors/wasm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAyB,MAAM,gBAAgB,CAAC;AAC9H,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAG9C,UAAU,iBAAiB;IACzB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,UAAU,0BAA2B,SAAQ,iBAAiB;IAC5D,oCAAoC;IACpC,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;IAC1C,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,0BAA+B,GAAG,mBAAmB,CAE3F;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,OAAO,CAAC,IAAI,CAAC,CAAoB;IAC1B,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;;OAGG;gBACS,OAAO,GAAE,0BAA+B;IASpD;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;IAK9C;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAKtD,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IAC/C,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7C,KAAK,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CASzE"}
|
|
@@ -16,17 +16,19 @@ export class DuckDBWASMConnector {
|
|
|
16
16
|
_options;
|
|
17
17
|
_db;
|
|
18
18
|
_con;
|
|
19
|
+
_config;
|
|
19
20
|
_loadPromise;
|
|
20
21
|
/**
|
|
21
22
|
* Create a new DuckDB-WASM connector instance.
|
|
22
23
|
* @param options Connector options.
|
|
23
24
|
*/
|
|
24
25
|
constructor(options = {}) {
|
|
25
|
-
const { ipc, duckdb, connection, ...opts } = options;
|
|
26
|
+
const { ipc, duckdb, connection, config, ...opts } = options;
|
|
26
27
|
this._ipc = ipc;
|
|
27
28
|
this._options = opts;
|
|
28
29
|
this._db = duckdb;
|
|
29
30
|
this._con = connection;
|
|
31
|
+
this._config = config;
|
|
30
32
|
}
|
|
31
33
|
/**
|
|
32
34
|
* Get the backing DuckDB-WASM instance.
|
|
@@ -88,6 +90,7 @@ function connect(c) {
|
|
|
88
90
|
c._loadPromise = (c._db
|
|
89
91
|
? Promise.resolve(c._db)
|
|
90
92
|
: initDatabase(c._options).then(result => c._db = result))
|
|
93
|
+
.then(db => c._config != undefined ? db.open(c._config).then(() => db) : db)
|
|
91
94
|
.then(db => db.connect())
|
|
92
95
|
.then(result => c._con = result);
|
|
93
96
|
}
|
|
@@ -102,7 +105,7 @@ async function initDatabase({ log = false } = {}) {
|
|
|
102
105
|
// Select a bundle based on browser checks
|
|
103
106
|
const bundle = await duckdb.selectBundle(JSDELIVR_BUNDLES);
|
|
104
107
|
const worker_url = URL.createObjectURL(new Blob([`importScripts("${bundle.mainWorker}");`], { type: 'text/javascript' }));
|
|
105
|
-
// Instantiate the
|
|
108
|
+
// Instantiate the asynchronous version of DuckDB-wasm
|
|
106
109
|
const worker = new Worker(worker_url);
|
|
107
110
|
const logger = log ? new duckdb.ConsoleLogger() : new duckdb.VoidLogger();
|
|
108
111
|
const db = new duckdb.AsyncDuckDB(logger, worker);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../src/connectors/wasm.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../src/connectors/wasm.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export { wasmConnector } from './connectors/wasm.js';
|
|
|
10
10
|
export { RestConnector } from './connectors/rest.js';
|
|
11
11
|
export { SocketConnector } from './connectors/socket.js';
|
|
12
12
|
export { DuckDBWASMConnector } from './connectors/wasm.js';
|
|
13
|
-
export { clauseInterval, clauseIntervals, clausePoint, clausePoints, clauseMatch } from './SelectionClause.js';
|
|
13
|
+
export { clauseInterval, clauseIntervals, clauseList, clausePoint, clausePoints, clauseMatch, clauseMatchAny } from './SelectionClause.js';
|
|
14
14
|
export { decodeIPC } from './util/decode-ipc.js';
|
|
15
15
|
export { distinct } from './util/distinct.js';
|
|
16
16
|
export { isArrowTable } from './util/is-arrow-table.js';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,cAAc,YAAY,CAAC;AAE3B,mBAAmB,2BAA2B,CAAC;AAC/C,mBAAmB,gBAAgB,CAAC;AACpC,mBAAmB,sBAAsB,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -11,7 +11,7 @@ export { wasmConnector } from './connectors/wasm.js';
|
|
|
11
11
|
export { RestConnector } from './connectors/rest.js';
|
|
12
12
|
export { SocketConnector } from './connectors/socket.js';
|
|
13
13
|
export { DuckDBWASMConnector } from './connectors/wasm.js';
|
|
14
|
-
export { clauseInterval, clauseIntervals, clausePoint, clausePoints, clauseMatch } from './SelectionClause.js';
|
|
14
|
+
export { clauseInterval, clauseIntervals, clauseList, clausePoint, clausePoints, clauseMatch, clauseMatchAny } from './SelectionClause.js';
|
|
15
15
|
export { decodeIPC } from './util/decode-ipc.js';
|
|
16
16
|
export { distinct } from './util/distinct.js';
|
|
17
17
|
export { isArrowTable } from './util/is-arrow-table.js';
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EACL,cAAc,EACd,eAAe,EACf,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,cAAc,YAAY,CAAC"}
|
|
@@ -27,9 +27,7 @@ export interface MakeClientOptions {
|
|
|
27
27
|
* Make a new client with the given options, and connect the client to the
|
|
28
28
|
* provided coordinator.
|
|
29
29
|
* @param options The options for making the client.
|
|
30
|
-
* @returns The resulting client
|
|
30
|
+
* @returns The resulting client.
|
|
31
31
|
*/
|
|
32
|
-
export declare function makeClient(options: MakeClientOptions): MosaicClient
|
|
33
|
-
destroy: () => void;
|
|
34
|
-
};
|
|
32
|
+
export declare function makeClient(options: MakeClientOptions): MosaicClient;
|
|
35
33
|
//# sourceMappingURL=make-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-client.d.ts","sourceRoot":"","sources":["../../src/make-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGnE,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;wFACoF;IACpF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,WAAW,CAAC;IAC5C,0DAA0D;IAC1D,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,mEAAmE;IACnE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"make-client.d.ts","sourceRoot":"","sources":["../../src/make-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGnE,MAAM,WAAW,iBAAiB;IAChC,8DAA8D;IAC9D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,6FAA6F;IAC7F,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2FAA2F;IAC3F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;wFACoF;IACpF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,WAAW,CAAC;IAC5C,0DAA0D;IAC1D,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,mEAAmE;IACnE,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,YAAY,CAQnE"}
|
package/dist/src/make-client.js
CHANGED
|
@@ -4,7 +4,7 @@ import { coordinator as defaultCoordinator } from './Coordinator.js';
|
|
|
4
4
|
* Make a new client with the given options, and connect the client to the
|
|
5
5
|
* provided coordinator.
|
|
6
6
|
* @param options The options for making the client.
|
|
7
|
-
* @returns The resulting client
|
|
7
|
+
* @returns The resulting client.
|
|
8
8
|
*/
|
|
9
9
|
export function makeClient(options) {
|
|
10
10
|
const { coordinator = defaultCoordinator(), ...clientOptions } = options;
|
|
@@ -8,5 +8,5 @@ import type { ExtractionOptions, Table } from '@uwdata/flechette';
|
|
|
8
8
|
* values to JS Date objects.
|
|
9
9
|
* @returns A table instance.
|
|
10
10
|
*/
|
|
11
|
-
export declare function decodeIPC(data:
|
|
11
|
+
export declare function decodeIPC(data: ArrayBufferLike | Uint8Array, options?: ExtractionOptions): Table;
|
|
12
12
|
//# sourceMappingURL=decode-ipc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-ipc.d.ts","sourceRoot":"","sources":["../../../src/util/decode-ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGlE;;;;;;;;GAQG;AACH,wBAAgB,SAAS,
|
|
1
|
+
{"version":3,"file":"decode-ipc.d.ts","sourceRoot":"","sources":["../../../src/util/decode-ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGlE;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,eAAe,GAAG,UAAU,EAClC,OAAO,GAAE,iBAAqC,GAC7C,KAAK,CAEP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode-ipc.js","sourceRoot":"","sources":["../../../src/util/decode-ipc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,
|
|
1
|
+
{"version":3,"file":"decode-ipc.js","sourceRoot":"","sources":["../../../src/util/decode-ipc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,IAAkC,EAClC,UAA6B,EAAE,OAAO,EAAE,IAAI,EAAE;IAE9C,OAAO,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-info.js","sourceRoot":"","sources":["../../../src/util/field-info.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACpH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKtC,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AACzB,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AACzB,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AACnC,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AAE1D,MAAM,OAAO,GAAsD;IACjE,CAAC,KAAK,CAAC,EAAE,KAAK;IACd,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAC9C,CAAC,GAAG,CAAC,EAAE,GAAG;IACV,CAAC,GAAG,CAAC,EAAE,GAAG;IACV,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACjD,CAAC;AAEF;;;;GAIG;AACH,SAAS,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAoB;IAC3D,OAAO,KAAK;SACT,IAAI,CAAC,KAAK,CAAC;SACX,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAe,EAAE,MAA0B;IAC9E,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACpD,OAAO,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,MAAM,OAAO;aAClB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC1C,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,YAAY,CAAC,EAAe,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAoB;IACrF,qDAAqD;IACrD,6DAA6D;IAC7D,MAAM,CAAC,GAAG,KAAK;SACZ,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SACvB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5E,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CACvB,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"field-info.js","sourceRoot":"","sources":["../../../src/util/field-info.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uwdata/mosaic-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"description": "Scalable and extensible linked data views.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mosaic",
|
|
@@ -32,12 +32,12 @@
|
|
|
32
32
|
"prepublishOnly": "npm run test && npm run lint && tsc --build"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@duckdb/duckdb-wasm": "
|
|
36
|
-
"@uwdata/flechette": "^2.
|
|
37
|
-
"@uwdata/mosaic-sql": "^0.
|
|
35
|
+
"@duckdb/duckdb-wasm": "1.30.0",
|
|
36
|
+
"@uwdata/flechette": "^2.2.3",
|
|
37
|
+
"@uwdata/mosaic-sql": "^0.19.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@uwdata/mosaic-duckdb": "^0.
|
|
40
|
+
"@uwdata/mosaic-duckdb": "^0.19.0"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "64ac2aaeefe9ff469edfeed417414a0a7866863f"
|
|
43
43
|
}
|
package/src/Coordinator.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { type QueryResult } from './util/query-result.js';
|
|
|
9
9
|
import { type MosaicClient } from './MosaicClient.js';
|
|
10
10
|
import { type SelectionClause } from './SelectionClause.js';
|
|
11
11
|
import { MaybeArray } from '@uwdata/mosaic-sql';
|
|
12
|
+
import { Table } from '@uwdata/flechette';
|
|
12
13
|
|
|
13
14
|
interface FilterGroupEntry {
|
|
14
15
|
selection: Selection;
|
|
@@ -166,6 +167,26 @@ export class Coordinator {
|
|
|
166
167
|
* @param options.priority The query priority, defaults to `Priority.Normal`.
|
|
167
168
|
* @returns A query result promise.
|
|
168
169
|
*/
|
|
170
|
+
query(
|
|
171
|
+
query: QueryType,
|
|
172
|
+
options?: {
|
|
173
|
+
type?: 'arrow';
|
|
174
|
+
cache?: boolean;
|
|
175
|
+
persist?: boolean;
|
|
176
|
+
priority?: number;
|
|
177
|
+
[key: string]: unknown;
|
|
178
|
+
}
|
|
179
|
+
): QueryResult<Table>;
|
|
180
|
+
query(
|
|
181
|
+
query: QueryType,
|
|
182
|
+
options?: {
|
|
183
|
+
type?: 'json';
|
|
184
|
+
cache?: boolean;
|
|
185
|
+
persist?: boolean;
|
|
186
|
+
priority?: number;
|
|
187
|
+
[key: string]: unknown;
|
|
188
|
+
}
|
|
189
|
+
): QueryResult<unknown>;
|
|
169
190
|
query(
|
|
170
191
|
query: QueryType,
|
|
171
192
|
options: {
|
|
@@ -175,7 +196,7 @@ export class Coordinator {
|
|
|
175
196
|
priority?: number;
|
|
176
197
|
[key: string]: unknown;
|
|
177
198
|
} = {}
|
|
178
|
-
): QueryResult {
|
|
199
|
+
): QueryResult<any> {
|
|
179
200
|
const {
|
|
180
201
|
type = 'arrow',
|
|
181
202
|
cache = true,
|
|
@@ -195,8 +216,16 @@ export class Coordinator {
|
|
|
195
216
|
*/
|
|
196
217
|
prefetch(
|
|
197
218
|
query: QueryType,
|
|
198
|
-
options
|
|
199
|
-
): QueryResult
|
|
219
|
+
options?: { type?: 'arrow'; [key: string]: unknown }
|
|
220
|
+
): QueryResult<Table>
|
|
221
|
+
prefetch(
|
|
222
|
+
query: QueryType,
|
|
223
|
+
options?: { type?: 'json'; [key: string]: unknown }
|
|
224
|
+
): QueryResult<unknown>
|
|
225
|
+
prefetch(
|
|
226
|
+
query: QueryType,
|
|
227
|
+
options: any = {}
|
|
228
|
+
): QueryResult<any> {
|
|
200
229
|
return this.query(query, { ...options, cache: true, priority: Priority.Low });
|
|
201
230
|
}
|
|
202
231
|
|
package/src/MosaicClient.ts
CHANGED
package/src/QueryConsolidator.ts
CHANGED
|
@@ -103,11 +103,11 @@ function consolidationKey(query: QueryType, cache: Cache): string {
|
|
|
103
103
|
const sql = `${query}`;
|
|
104
104
|
if (isSelectQuery(query) && !cache.get(sql)) {
|
|
105
105
|
if (
|
|
106
|
-
query.
|
|
107
|
-
query.
|
|
106
|
+
query._where.length || query._qualify.length || query._having.length ||
|
|
107
|
+
query._orderby.length || query._distinct
|
|
108
108
|
) {
|
|
109
|
-
//
|
|
110
|
-
// that
|
|
109
|
+
// bail if query includes clauses that may refer to *derived* columns
|
|
110
|
+
// that we can't resolve. also do not consolidate distinct queries
|
|
111
111
|
return sql;
|
|
112
112
|
}
|
|
113
113
|
|
package/src/Selection.ts
CHANGED
|
@@ -257,24 +257,24 @@ export class Selection extends Param<SelectionClauseArray> {
|
|
|
257
257
|
/**
|
|
258
258
|
* Indicates if a selection clause should not be applied to a given client.
|
|
259
259
|
* The return value depends on the selection resolution strategy.
|
|
260
|
-
* @param client The client to test.
|
|
260
|
+
* @param client The client to test. If null or undefined, return false.
|
|
261
261
|
* @param clause The selection clause.
|
|
262
262
|
* @returns True if the client should be skipped, false otherwise.
|
|
263
263
|
*/
|
|
264
|
-
skip(client: MosaicClient, clause: SelectionClause): boolean {
|
|
264
|
+
skip(client: MosaicClient | null | undefined, clause: SelectionClause): boolean {
|
|
265
265
|
return this._resolver.skip(client, clause);
|
|
266
266
|
}
|
|
267
267
|
|
|
268
268
|
/**
|
|
269
269
|
* Return a selection query predicate for the given client.
|
|
270
|
-
* @param client The client whose data may be filtered.
|
|
270
|
+
* @param client The client whose data may be filtered. If null or undefined, return a predicate with all clauses.
|
|
271
271
|
* @param noSkip Disable skipping of active
|
|
272
272
|
* cross-filtered sources. If set true, the source of the active
|
|
273
273
|
* clause in a cross-filtered selection will not be skipped.
|
|
274
274
|
* @returns The query predicate for filtering client data,
|
|
275
275
|
* based on the current state of this selection.
|
|
276
276
|
*/
|
|
277
|
-
predicate(client: MosaicClient, noSkip: boolean = false): ResolvedPredicate {
|
|
277
|
+
predicate(client: MosaicClient | null | undefined = undefined, noSkip: boolean = false): ResolvedPredicate {
|
|
278
278
|
const { clauses } = this;
|
|
279
279
|
const active = noSkip ? null : clauses.active;
|
|
280
280
|
return this._resolver.predicate(clauses, active!, client);
|
|
@@ -330,11 +330,14 @@ export class SelectionResolver {
|
|
|
330
330
|
/**
|
|
331
331
|
* Indicates if a selection clause should not be applied to a given client.
|
|
332
332
|
* The return value depends on the resolution strategy.
|
|
333
|
-
* @param client The
|
|
334
|
-
* @param clause The
|
|
333
|
+
* @param client The client to test. If null or undefined, return false.
|
|
334
|
+
* @param clause The selection clause.
|
|
335
335
|
* @returns True if the client should be skipped, false otherwise.
|
|
336
336
|
*/
|
|
337
|
-
skip(client: MosaicClient, clause: SelectionClause): boolean {
|
|
337
|
+
skip(client: MosaicClient | null | undefined, clause: SelectionClause): boolean {
|
|
338
|
+
if (client == null) {
|
|
339
|
+
return false;
|
|
340
|
+
}
|
|
338
341
|
return Boolean(this.cross && clause?.clients?.has(client));
|
|
339
342
|
}
|
|
340
343
|
|
|
@@ -342,14 +345,14 @@ export class SelectionResolver {
|
|
|
342
345
|
* Return a selection query predicate for the given client.
|
|
343
346
|
* @param clauseList An array of selection clauses.
|
|
344
347
|
* @param active The current active selection clause.
|
|
345
|
-
* @param client The client whose data may be filtered.
|
|
348
|
+
* @param client The client whose data may be filtered. If null or undefined, return all clauses.
|
|
346
349
|
* @returns The query predicate for filtering client data,
|
|
347
350
|
* based on the current state of this selection.
|
|
348
351
|
*/
|
|
349
352
|
predicate(
|
|
350
353
|
clauseList: SelectionClause[],
|
|
351
354
|
active: SelectionClause,
|
|
352
|
-
client: MosaicClient
|
|
355
|
+
client: MosaicClient | null | undefined
|
|
353
356
|
): ResolvedPredicate {
|
|
354
357
|
const { empty, union } = this;
|
|
355
358
|
|