@rocicorp/zero 0.20.2025051501 → 0.20.2025051600
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/{chunk-A64L6YZK.js → chunk-DN6AE4Z6.js} +5 -5
- package/out/{chunk-P3G5C3ZW.js → chunk-IKN2MNWU.js} +2 -2
- package/out/{chunk-ILWAR46C.js → chunk-MIYN75UK.js} +203 -274
- package/out/chunk-MIYN75UK.js.map +7 -0
- package/out/{inspector-B2ZMZ35Y.js → inspector-2QLL7CGJ.js} +3 -3
- package/out/otel/src/log-options.d.ts +0 -12
- package/out/otel/src/log-options.d.ts.map +1 -1
- package/out/otel/src/log-options.js +0 -21
- package/out/otel/src/log-options.js.map +1 -1
- package/out/react.js +1 -1
- package/out/solid.js +3 -3
- package/out/zero/src/zero-cache-dev.js +5 -1
- package/out/zero/src/zero-cache-dev.js.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.js +2 -2
- package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +2 -2
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +8 -24
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +11 -3
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/scripts/permissions.d.ts +0 -12
- package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
- package/out/zero-cache/src/server/logging.d.ts.map +1 -1
- package/out/zero-cache/src/server/logging.js +2 -2
- package/out/zero-cache/src/server/logging.js.map +1 -1
- package/out/zero-cache/src/server/otel-log-sink.d.ts +1 -2
- package/out/zero-cache/src/server/otel-log-sink.d.ts.map +1 -1
- package/out/zero-cache/src/server/otel-log-sink.js +4 -5
- package/out/zero-cache/src/server/otel-log-sink.js.map +1 -1
- package/out/zero-cache/src/server/otel-start.d.ts +1 -6
- package/out/zero-cache/src/server/otel-start.d.ts.map +1 -1
- package/out/zero-cache/src/server/otel-start.js +54 -45
- package/out/zero-cache/src/server/otel-start.js.map +1 -1
- package/out/zero-cache/src/server/syncer.js +2 -2
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +61 -56
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +5 -4
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +6 -5
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +8 -8
- package/out/zero-cache/src/services/view-syncer/schema/types.js +2 -2
- package/out/zero-cache/src/services/view-syncer/schema/types.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 +5 -5
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +2 -3
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +2 -3
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero.js +3 -3
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +19 -38
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/builder/filter.d.ts.map +1 -1
- package/out/zql/src/builder/filter.js +12 -30
- package/out/zql/src/builder/filter.js.map +1 -1
- package/out/zql/src/query/expression.d.ts +2 -1
- package/out/zql/src/query/expression.d.ts.map +1 -1
- package/out/zql/src/query/expression.js +19 -0
- package/out/zql/src/query/expression.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +2 -3
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/package.json +2 -1
- package/out/chunk-ILWAR46C.js.map +0 -7
- package/out/otel/src/noop-metric-exporter.d.ts +0 -8
- package/out/otel/src/noop-metric-exporter.d.ts.map +0 -1
- package/out/otel/src/noop-metric-exporter.js +0 -11
- package/out/otel/src/noop-metric-exporter.js.map +0 -1
- package/out/otel/src/noop-span-exporter.d.ts +0 -8
- package/out/otel/src/noop-span-exporter.d.ts.map +0 -1
- package/out/otel/src/noop-span-exporter.js +0 -14
- package/out/otel/src/noop-span-exporter.js.map +0 -1
- package/out/zero-cache/src/db/pg-copy.d.ts +0 -26
- package/out/zero-cache/src/db/pg-copy.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-copy.js +0 -115
- package/out/zero-cache/src/db/pg-copy.js.map +0 -1
- package/out/zql/src/query/dnf.d.ts +0 -10
- package/out/zql/src/query/dnf.d.ts.map +0 -1
- package/out/zql/src/query/dnf.js +0 -57
- package/out/zql/src/query/dnf.js.map +0 -1
- /package/out/{chunk-A64L6YZK.js.map → chunk-DN6AE4Z6.js.map} +0 -0
- /package/out/{chunk-P3G5C3ZW.js.map → chunk-IKN2MNWU.js.map} +0 -0
- /package/out/{inspector-B2ZMZ35Y.js.map → inspector-2QLL7CGJ.js.map} +0 -0
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type PushMetricExporter, type ResourceMetrics } from '@opentelemetry/sdk-metrics';
|
|
2
|
-
import type { ExportResult } from '@opentelemetry/core';
|
|
3
|
-
export declare class NoopMetricExporter implements PushMetricExporter {
|
|
4
|
-
export(_metrics: ResourceMetrics, _resultCallback: (result: ExportResult) => void): void;
|
|
5
|
-
forceFlush(): Promise<void>;
|
|
6
|
-
shutdown(): Promise<void>;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=noop-metric-exporter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noop-metric-exporter.d.ts","sourceRoot":"","sources":["../../../../otel/src/noop-metric-exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEtD,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,MAAM,CACJ,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC9C,IAAI;IAEP,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAG1B"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import {} from '@opentelemetry/sdk-metrics';
|
|
2
|
-
export class NoopMetricExporter {
|
|
3
|
-
export(_metrics, _resultCallback) { }
|
|
4
|
-
forceFlush() {
|
|
5
|
-
return Promise.resolve();
|
|
6
|
-
}
|
|
7
|
-
shutdown() {
|
|
8
|
-
return Promise.resolve();
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=noop-metric-exporter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noop-metric-exporter.js","sourceRoot":"","sources":["../../../../otel/src/noop-metric-exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,MAAM,4BAA4B,CAAC;AAGpC,MAAM,OAAO,kBAAkB;IAC7B,MAAM,CACJ,QAAyB,EACzB,eAA+C,IACxC,CAAC;IAEV,UAAU;QACR,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { type ExportResult } from '@opentelemetry/core';
|
|
2
|
-
import { type SpanExporter, type ReadableSpan } from '@opentelemetry/sdk-trace-node';
|
|
3
|
-
export declare class NoopSpanExporter implements SpanExporter {
|
|
4
|
-
export(_spans: ReadableSpan[], resultCallback: (result: ExportResult) => void): void;
|
|
5
|
-
forceFlush(): Promise<void>;
|
|
6
|
-
shutdown(): Promise<void>;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=noop-span-exporter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noop-span-exporter.d.ts","sourceRoot":"","sources":["../../../../otel/src/noop-span-exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,+BAA+B,CAAC;AAEvC,qBAAa,gBAAiB,YAAW,YAAY;IACnD,MAAM,CACJ,MAAM,EAAE,YAAY,EAAE,EACtB,cAAc,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7C,IAAI;IAIP,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAG1B"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { ExportResultCode } from '@opentelemetry/core';
|
|
2
|
-
import {} from '@opentelemetry/sdk-trace-node';
|
|
3
|
-
export class NoopSpanExporter {
|
|
4
|
-
export(_spans, resultCallback) {
|
|
5
|
-
resultCallback({ code: ExportResultCode.SUCCESS });
|
|
6
|
-
}
|
|
7
|
-
forceFlush() {
|
|
8
|
-
return Promise.resolve();
|
|
9
|
-
}
|
|
10
|
-
shutdown() {
|
|
11
|
-
return Promise.resolve();
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=noop-span-exporter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noop-span-exporter.js","sourceRoot":"","sources":["../../../../otel/src/noop-span-exporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAoB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAGN,MAAM,+BAA+B,CAAC;AAEvC,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CACJ,MAAsB,EACtB,cAA8C;QAE9C,cAAc,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAC,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACR,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ;QACN,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Transform } from 'node:stream';
|
|
2
|
-
import type { PostgresDB } from '../types/pg.ts';
|
|
3
|
-
/**
|
|
4
|
-
* A stream Transform that parses a Postgres `COPY ... TO` text stream
|
|
5
|
-
* into arrays of string / null values.
|
|
6
|
-
*/
|
|
7
|
-
export declare class TextTransform extends Transform {
|
|
8
|
-
#private;
|
|
9
|
-
constructor();
|
|
10
|
-
_transform(chunk: Buffer, encoding: BufferEncoding, callback: (e?: Error) => void): void;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* A stream Transform that transforms the array of strings outputted by
|
|
14
|
-
* the {@link TextTransform} and parses them to their Javascript values
|
|
15
|
-
* as directed by the supplied list of column types.
|
|
16
|
-
*/
|
|
17
|
-
export declare class RowTransform extends Transform {
|
|
18
|
-
#private;
|
|
19
|
-
static create(db: PostgresDB, columns: {
|
|
20
|
-
typeOID: number;
|
|
21
|
-
dataType?: string;
|
|
22
|
-
}[]): Promise<RowTransform>;
|
|
23
|
-
private constructor();
|
|
24
|
-
_transform(row: string[], _encoding: string, callback: (e?: Error) => void): void;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=pg-copy.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pg-copy.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/db/pg-copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAG/C;;;GAGG;AACH,qBAAa,aAAc,SAAQ,SAAS;;;IAU1C,UAAU,CACR,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI;CA+DhC;AAgBD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,SAAS;;WAC5B,MAAM,CACjB,EAAE,EAAE,UAAU,EACd,OAAO,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAC,EAAE;IAWjD,OAAO;IAMP,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI;CAkB3E"}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { Transform } from 'node:stream';
|
|
2
|
-
import { assert, assertArray } from "../../../shared/src/asserts.js";
|
|
3
|
-
import { getTypeParsers } from "./pg-type-parser.js";
|
|
4
|
-
/**
|
|
5
|
-
* A stream Transform that parses a Postgres `COPY ... TO` text stream
|
|
6
|
-
* into arrays of string / null values.
|
|
7
|
-
*/
|
|
8
|
-
export class TextTransform extends Transform {
|
|
9
|
-
#currRow = [];
|
|
10
|
-
#currCol = '';
|
|
11
|
-
#escaped = false;
|
|
12
|
-
constructor() {
|
|
13
|
-
super({ objectMode: true });
|
|
14
|
-
}
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
16
|
-
_transform(chunk, encoding, callback) {
|
|
17
|
-
try {
|
|
18
|
-
const text = chunk.toString(encoding);
|
|
19
|
-
let l = 0;
|
|
20
|
-
let r = 0;
|
|
21
|
-
for (; r < text.length; r++) {
|
|
22
|
-
const ch = text.charCodeAt(r);
|
|
23
|
-
if (this.#escaped) {
|
|
24
|
-
const escapedChar = ESCAPED_CHARACTERS[ch];
|
|
25
|
-
if (escapedChar === undefined) {
|
|
26
|
-
throw new Error(`Unexpected escape character \\${String.fromCharCode(ch)}`);
|
|
27
|
-
}
|
|
28
|
-
this.#currCol += escapedChar;
|
|
29
|
-
l = r + 1;
|
|
30
|
-
this.#escaped = false;
|
|
31
|
-
continue;
|
|
32
|
-
}
|
|
33
|
-
switch (ch) {
|
|
34
|
-
case 0x5c: // '\'
|
|
35
|
-
// flush segment
|
|
36
|
-
l < r && (this.#currCol += text.substring(l, r));
|
|
37
|
-
l = r + 1;
|
|
38
|
-
this.#escaped = true;
|
|
39
|
-
break;
|
|
40
|
-
case 0x09: // '\t'
|
|
41
|
-
case 0x0a: // '\n'
|
|
42
|
-
// flush segment
|
|
43
|
-
l < r && (this.#currCol += text.substring(l, r));
|
|
44
|
-
l = r + 1;
|
|
45
|
-
// Column is done in both cases.
|
|
46
|
-
this.#currRow.push(
|
|
47
|
-
// The lone NULL byte signifies that the column value is `null`.
|
|
48
|
-
// (Postgres does not permit NULL bytes in TEXT values).
|
|
49
|
-
//
|
|
50
|
-
// Note that although NULL bytes can appear in JSON strings,
|
|
51
|
-
// those will always be represented within double-quotes,
|
|
52
|
-
// and thus never as a lone NULL byte.
|
|
53
|
-
this.#currCol === NULL_BYTE ? null : this.#currCol);
|
|
54
|
-
this.#currCol = '';
|
|
55
|
-
if (ch === 0x0a /* \n */) {
|
|
56
|
-
// Row is also done on \n
|
|
57
|
-
this.push(this.#currRow);
|
|
58
|
-
this.#currRow = [];
|
|
59
|
-
}
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
// flush segment
|
|
64
|
-
l < r && (this.#currCol += text.substring(l, r));
|
|
65
|
-
callback();
|
|
66
|
-
}
|
|
67
|
-
catch (e) {
|
|
68
|
-
callback(e instanceof Error ? e : new Error(String(e)));
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
const NULL_BYTE = '\u0000';
|
|
73
|
-
// escaped characters used in https://www.postgresql.org/docs/current/sql-copy.html
|
|
74
|
-
const ESCAPED_CHARACTERS = {
|
|
75
|
-
0x4e: NULL_BYTE, // \N signifies the NULL character.
|
|
76
|
-
0x5c: '\\',
|
|
77
|
-
0x62: '\b',
|
|
78
|
-
0x66: '\f',
|
|
79
|
-
0x6e: '\n',
|
|
80
|
-
0x72: '\r',
|
|
81
|
-
0x74: '\t',
|
|
82
|
-
0x76: '\v',
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* A stream Transform that transforms the array of strings outputted by
|
|
86
|
-
* the {@link TextTransform} and parses them to their Javascript values
|
|
87
|
-
* as directed by the supplied list of column types.
|
|
88
|
-
*/
|
|
89
|
-
export class RowTransform extends Transform {
|
|
90
|
-
static async create(db, columns) {
|
|
91
|
-
const typeParsers = await getTypeParsers(db);
|
|
92
|
-
const columnParsers = columns.map(c => typeParsers.getTypeParser(c.typeOID));
|
|
93
|
-
return new RowTransform(columnParsers);
|
|
94
|
-
}
|
|
95
|
-
#columnParsers;
|
|
96
|
-
constructor(columnParsers) {
|
|
97
|
-
super({ objectMode: true });
|
|
98
|
-
this.#columnParsers = columnParsers;
|
|
99
|
-
}
|
|
100
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
101
|
-
_transform(row, _encoding, callback) {
|
|
102
|
-
try {
|
|
103
|
-
// sanity check that this is preceded by a TextTransform in the pipeline
|
|
104
|
-
assertArray(row);
|
|
105
|
-
assert(row.length === this.#columnParsers.length, `Expected row to have ${this.#columnParsers.length} values but found ${row.length}`);
|
|
106
|
-
const parsed = row.map((val, pos) => val === null ? null : this.#columnParsers[pos](val));
|
|
107
|
-
this.push(parsed);
|
|
108
|
-
callback();
|
|
109
|
-
}
|
|
110
|
-
catch (e) {
|
|
111
|
-
callback(e instanceof Error ? e : new Error(String(e)));
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=pg-copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pg-copy.js","sourceRoot":"","sources":["../../../../../zero-cache/src/db/pg-copy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Condition } from '../../../zero-protocol/src/ast.ts';
|
|
2
|
-
/**
|
|
3
|
-
* DNF (Disjunctive Normal Form) is a way to represent a boolean expression as a
|
|
4
|
-
* series of `or` conditions where each `or` condition is a series of `and`
|
|
5
|
-
* conditions. The `and` conditions are the terms (SimpleCondition) of the
|
|
6
|
-
* expression.
|
|
7
|
-
*/
|
|
8
|
-
export declare function dnf(condition: Condition): Condition;
|
|
9
|
-
export declare function unwrap(c: Condition): Condition;
|
|
10
|
-
//# sourceMappingURL=dnf.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dnf.d.ts","sourceRoot":"","sources":["../../../../../zql/src/query/dnf.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAc,MAAM,mCAAmC,CAAC;AAG9E;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAEnD;AA+CD,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,GAAG,SAAS,CAQ9C"}
|
package/out/zql/src/query/dnf.js
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { unreachable } from "../../../shared/src/asserts.js";
|
|
2
|
-
import { flatten, TRUE } from "./expression.js";
|
|
3
|
-
/**
|
|
4
|
-
* DNF (Disjunctive Normal Form) is a way to represent a boolean expression as a
|
|
5
|
-
* series of `or` conditions where each `or` condition is a series of `and`
|
|
6
|
-
* conditions. The `and` conditions are the terms (SimpleCondition) of the
|
|
7
|
-
* expression.
|
|
8
|
-
*/
|
|
9
|
-
export function dnf(condition) {
|
|
10
|
-
return unwrap(dnfInner(condition));
|
|
11
|
-
}
|
|
12
|
-
function dnfInner(condition) {
|
|
13
|
-
switch (condition.type) {
|
|
14
|
-
case 'simple':
|
|
15
|
-
case 'correlatedSubquery':
|
|
16
|
-
return { type: 'or', conditions: [condition] };
|
|
17
|
-
case 'and':
|
|
18
|
-
return distributeAnd(condition.conditions.map(dnfInner));
|
|
19
|
-
case 'or':
|
|
20
|
-
return {
|
|
21
|
-
type: 'or',
|
|
22
|
-
conditions: flatten('or', condition.conditions.map(dnfInner).flatMap(c => c.conditions)),
|
|
23
|
-
};
|
|
24
|
-
default:
|
|
25
|
-
unreachable(condition);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function distributeAnd(conditions) {
|
|
29
|
-
if (conditions.length === 0) {
|
|
30
|
-
return { type: 'or', conditions: [TRUE] };
|
|
31
|
-
}
|
|
32
|
-
return conditions.reduce((acc, orCondition) => {
|
|
33
|
-
const newConditions = [];
|
|
34
|
-
for (const accCondition of acc.conditions) {
|
|
35
|
-
for (const orSubCondition of orCondition.conditions) {
|
|
36
|
-
newConditions.push({
|
|
37
|
-
type: 'and',
|
|
38
|
-
conditions: [accCondition, orSubCondition],
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
type: 'or',
|
|
44
|
-
conditions: flatten('or', newConditions),
|
|
45
|
-
};
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
export function unwrap(c) {
|
|
49
|
-
if (c.type === 'simple' || c.type === 'correlatedSubquery') {
|
|
50
|
-
return c;
|
|
51
|
-
}
|
|
52
|
-
if (c.conditions.length === 1) {
|
|
53
|
-
return unwrap(c.conditions[0]);
|
|
54
|
-
}
|
|
55
|
-
return { type: c.type, conditions: flatten(c.type, c.conditions.map(unwrap)) };
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=dnf.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dnf.js","sourceRoot":"","sources":["../../../../../zql/src/query/dnf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,gCAAgC,CAAC;AAE3D,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,UAAU,GAAG,CAAC,SAAoB;IACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,QAAQ,CAAC,SAAoB;IACpC,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,QAAQ,CAAC;QACd,KAAK,oBAAoB;YACvB,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAC,CAAC;QAE/C,KAAK,KAAK;YACR,OAAO,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAE3D,KAAK,IAAI;YACP,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,UAAU,EAAE,OAAO,CACjB,IAAI,EACJ,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAC9D;aACF,CAAC;QAEJ;YACE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,UAAyB;IAC9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,IAAI,CAAC,EAAC,CAAC;IAC1C,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,EAAe,EAAE;QACzD,MAAM,aAAa,GAAgB,EAAE,CAAC;QACtC,KAAK,MAAM,YAAY,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC1C,KAAK,MAAM,cAAc,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBACpD,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,KAAK;oBACX,UAAU,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;iBAC3C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,CAAC;SACzC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,CAAY;IACjC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;QAC3D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,EAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC;AAC/E,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|