mindoodb 0.0.63 → 0.0.64
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/README.md +14 -1
- package/dist/browser/index.mjs +4 -0
- package/dist/core/expressions/builder.d.ts +25 -0
- package/dist/core/expressions/builder.d.ts.map +1 -1
- package/dist/core/expressions/builder.js +33 -13
- package/dist/core/expressions/builder.js.map +1 -1
- package/dist/core/expressions/evaluateExpression.d.ts +55 -2
- package/dist/core/expressions/evaluateExpression.d.ts.map +1 -1
- package/dist/core/expressions/evaluateExpression.js +95 -3
- package/dist/core/expressions/evaluateExpression.js.map +1 -1
- package/dist/core/expressions/formulaSource.d.ts.map +1 -1
- package/dist/core/expressions/formulaSource.js +21 -2
- package/dist/core/expressions/formulaSource.js.map +1 -1
- package/dist/core/expressions/index.d.ts +1 -1
- package/dist/core/expressions/index.d.ts.map +1 -1
- package/dist/core/expressions/index.js +3 -1
- package/dist/core/expressions/index.js.map +1 -1
- package/dist/core/expressions/metadata.d.ts +1 -1
- package/dist/core/expressions/metadata.d.ts.map +1 -1
- package/dist/core/expressions/metadata.js +5 -0
- package/dist/core/expressions/metadata.js.map +1 -1
- package/dist/core/expressions/types.d.ts +17 -2
- package/dist/core/expressions/types.d.ts.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/indexing/createViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/createViewDataProvider.js +1 -0
- package/dist/core/indexing/createViewDataProvider.js.map +1 -1
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js +1 -0
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +1 -0
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
- package/dist/core/query/executeQuery.d.ts +1 -1
- package/dist/core/query/executeQuery.d.ts.map +1 -1
- package/dist/core/query/executeQuery.js +106 -71
- package/dist/core/query/executeQuery.js.map +1 -1
- package/dist/core/query/executeQueryInclude.d.ts +99 -0
- package/dist/core/query/executeQueryInclude.d.ts.map +1 -0
- package/dist/core/query/executeQueryInclude.js +447 -0
- package/dist/core/query/executeQueryInclude.js.map +1 -0
- package/dist/core/query/index.d.ts +2 -1
- package/dist/core/query/index.d.ts.map +1 -1
- package/dist/core/query/index.js +5 -1
- package/dist/core/query/index.js.map +1 -1
- package/dist/core/query/queryInternals.d.ts +45 -0
- package/dist/core/query/queryInternals.d.ts.map +1 -0
- package/dist/core/query/queryInternals.js +87 -0
- package/dist/core/query/queryInternals.js.map +1 -0
- package/dist/core/query/queryLive.d.ts.map +1 -1
- package/dist/core/query/queryLive.js +67 -8
- package/dist/core/query/queryLive.js.map +1 -1
- package/dist/core/query/queryView.d.ts.map +1 -1
- package/dist/core/query/queryView.js +19 -0
- package/dist/core/query/queryView.js.map +1 -1
- package/dist/core/query/types.d.ts +122 -7
- package/dist/core/query/types.d.ts.map +1 -1
- package/dist/core/query/types.js +13 -1
- package/dist/core/query/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -235,6 +235,19 @@ const { rows, total, coverage } = await db.query({
|
|
|
235
235
|
});
|
|
236
236
|
```
|
|
237
237
|
|
|
238
|
+
```typescript
|
|
239
|
+
// Nested lookups: join related documents (same or another database) onto
|
|
240
|
+
// every returned row — one extra scan per slot, never a query per row.
|
|
241
|
+
const invoices = await invoicesDb.query({
|
|
242
|
+
filter: v.eq(v.field("type"), "invoice"),
|
|
243
|
+
include: {
|
|
244
|
+
customer: { db: customersDb, cardinality: "one", localKey: "customerId", fields: ["name"] },
|
|
245
|
+
lines: { cardinality: "many", filter: v.eq(v.field("invoiceId"), v.parentDocId()) },
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
// invoices.rows[0].includes.customer / .includes.lines
|
|
249
|
+
```
|
|
250
|
+
|
|
238
251
|
```typescript
|
|
239
252
|
// Incremental indexing: process only what's new (foundation for the above)
|
|
240
253
|
let cursor = null;
|
|
@@ -344,7 +357,7 @@ See: [Use Cases Documentation](./docs/usecases/README.md)
|
|
|
344
357
|
- [Architecture Specification](./docs/specification.md) — Full technical details
|
|
345
358
|
- [React Native Guide](./docs/reactnative.md) — Native Automerge setup and troubleshooting
|
|
346
359
|
- [Virtual Views](./docs/virtualview.md) — Aggregations and cross-database views
|
|
347
|
-
- [Ad-hoc Queries & Reactive Updates](./docs/adhoc-queries.md) — Summary buffer, `db.query()`, ephemeral views, live queries and change listeners
|
|
360
|
+
- [Ad-hoc Queries & Reactive Updates](./docs/adhoc-queries.md) — Summary buffer, `db.query()`, nested `include` lookups, ephemeral views, live queries and change listeners
|
|
348
361
|
- [Full-Text Search](./docs/fulltext-search.md) — Client-side encrypted full-text index, `db.searchText()`, the query `text` clause, attachment text extraction
|
|
349
362
|
- [Data Indexing](./docs/dataindexing.md) — Incremental indexing and search integration
|
|
350
363
|
- [Time Travel](./docs/timetravel.md) — Historical document retrieval and history traversal
|
package/dist/browser/index.mjs
CHANGED
|
@@ -31,6 +31,7 @@ export const DATABASE_ID_REGEX = browser["DATABASE_ID_REGEX"];
|
|
|
31
31
|
export const DATABASE_ID_REQUIREMENTS = browser["DATABASE_ID_REQUIREMENTS"];
|
|
32
32
|
export const DB_SETUP_DOC_ID = browser["DB_SETUP_DOC_ID"];
|
|
33
33
|
export const DEFAULT_FULLTEXT_MAX_FIELD_BYTES = browser["DEFAULT_FULLTEXT_MAX_FIELD_BYTES"];
|
|
34
|
+
export const DEFAULT_INCLUDE_LIMIT = browser["DEFAULT_INCLUDE_LIMIT"];
|
|
34
35
|
export const DEFAULT_POLICY_DEFAULTS = browser["DEFAULT_POLICY_DEFAULTS"];
|
|
35
36
|
export const DEFAULT_SUMMARY_MAX_VALUE_BYTES = browser["DEFAULT_SUMMARY_MAX_VALUE_BYTES"];
|
|
36
37
|
export const DEFAULT_TENANT_KEY_ID = browser["DEFAULT_TENANT_KEY_ID"];
|
|
@@ -62,6 +63,7 @@ export const KEY_DISTRIBUTION_TYPE = browser["KEY_DISTRIBUTION_TYPE"];
|
|
|
62
63
|
export const KeyBag = browser["KeyBag"];
|
|
63
64
|
export const MAX_DATABASE_ID_LENGTH = browser["MAX_DATABASE_ID_LENGTH"];
|
|
64
65
|
export const MAX_DOMAIN_STATEMENT_BYTES = browser["MAX_DOMAIN_STATEMENT_BYTES"];
|
|
66
|
+
export const MAX_INCLUDE_DEPTH = browser["MAX_INCLUDE_DEPTH"];
|
|
65
67
|
export const MAX_TENANT_ID_LENGTH = browser["MAX_TENANT_ID_LENGTH"];
|
|
66
68
|
export const MAX_TIMESTAMP_RESPONSE_BYTES = browser["MAX_TIMESTAMP_RESPONSE_BYTES"];
|
|
67
69
|
export const MindooDBFormulaSyntaxError = browser["MindooDBFormulaSyntaxError"];
|
|
@@ -188,6 +190,7 @@ export const extractDocIdFromEntryId = browser["extractDocIdFromEntryId"];
|
|
|
188
190
|
export const extractFulltextFields = browser["extractFulltextFields"];
|
|
189
191
|
export const extractSummaryFields = browser["extractSummaryFields"];
|
|
190
192
|
export const filterExpressionToDocumentFilter = browser["filterExpressionToDocumentFilter"];
|
|
193
|
+
export const findUnknownExpressionNode = browser["findUnknownExpressionNode"];
|
|
191
194
|
export const fingerprintEncryptionPublicKey = browser["fingerprintEncryptionPublicKey"];
|
|
192
195
|
export const fingerprintUserPublicKey = browser["fingerprintUserPublicKey"];
|
|
193
196
|
export const formatCanonicalDisplayName = browser["formatCanonicalDisplayName"];
|
|
@@ -209,6 +212,7 @@ export const getFieldValue = browser["getFieldValue"];
|
|
|
209
212
|
export const getMindooDBViewLanguageHelper = browser["getMindooDBViewLanguageHelper"];
|
|
210
213
|
export const getNewDatabaseIdValidationError = browser["getNewDatabaseIdValidationError"];
|
|
211
214
|
export const getReferencedFields = browser["getReferencedFields"];
|
|
215
|
+
export const getReferencedParentFields = browser["getReferencedParentFields"];
|
|
212
216
|
export const getSummaryFieldValue = browser["getSummaryFieldValue"];
|
|
213
217
|
export const getTenantIdValidationError = browser["getTenantIdValidationError"];
|
|
214
218
|
export const grantForSigningKey = browser["grantForSigningKey"];
|
|
@@ -36,6 +36,31 @@ export declare function createViewLanguage<TDocument extends Record<string, unkn
|
|
|
36
36
|
field<TPath extends MindooDBAppFieldPath<TDocument>>(path: TPath): MindooDBAppExpression<MindooDBAppPathValue<TDocument, TPath>>;
|
|
37
37
|
value<TPath extends MindooDBAppFieldPath<TValueContext>>(path: TPath): MindooDBAppExpression<MindooDBAppPathValue<TValueContext, TPath>>;
|
|
38
38
|
origin(): MindooDBAppExpression<string>;
|
|
39
|
+
/**
|
|
40
|
+
* Read a FIELD of the parent document of a nested query lookup
|
|
41
|
+
* (`MindooQuery.include`). Only valid inside an include filter; the
|
|
42
|
+
* query engine rejects it everywhere else. For the parent's id use
|
|
43
|
+
* {@link parentDocId} — `parent("docId")` is an ordinary field path
|
|
44
|
+
* and yields a value only if the parent really stores such a field.
|
|
45
|
+
*
|
|
46
|
+
* Untyped by design: the parent belongs to a different document type
|
|
47
|
+
* (often a different database) than the `TDocument` this builder was
|
|
48
|
+
* created for.
|
|
49
|
+
*/
|
|
50
|
+
parent<T = unknown>(path: string): MindooDBAppExpression<T>;
|
|
51
|
+
/**
|
|
52
|
+
* The current document's id. A document's id is metadata rather than
|
|
53
|
+
* one of its fields, so it is reachable only through this helper —
|
|
54
|
+
* `field("docId")` reads a field of that name, which normally does
|
|
55
|
+
* not exist.
|
|
56
|
+
*/
|
|
57
|
+
docId(): MindooDBAppExpression<string>;
|
|
58
|
+
/**
|
|
59
|
+
* The id of the parent row inside a nested query lookup — the
|
|
60
|
+
* {@link docId} counterpart of {@link parent}. `eq(docId(),
|
|
61
|
+
* parentDocId())` is the usual "child points at parent" join.
|
|
62
|
+
*/
|
|
63
|
+
parentDocId(): MindooDBAppExpression<string>;
|
|
39
64
|
createdAt(): MindooDBAppExpression<string | null>;
|
|
40
65
|
lastModifiedAt(): MindooDBAppExpression<string | null>;
|
|
41
66
|
decryptionKeyId(): MindooDBAppExpression<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,qBAAqB,EACrB,iCAAiC,EAClC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createViewLanguage = createViewLanguage;
|
|
4
|
-
const
|
|
5
|
-
"literal",
|
|
6
|
-
"field",
|
|
7
|
-
"value",
|
|
8
|
-
"origin",
|
|
9
|
-
"variable",
|
|
10
|
-
"operation",
|
|
11
|
-
"if",
|
|
12
|
-
"let",
|
|
13
|
-
"decrypt",
|
|
14
|
-
"json",
|
|
15
|
-
]);
|
|
4
|
+
const evaluateExpression_1 = require("./evaluateExpression");
|
|
16
5
|
function variable(name) {
|
|
17
6
|
return { kind: "variable", name };
|
|
18
7
|
}
|
|
@@ -22,7 +11,7 @@ function isExpression(value) {
|
|
|
22
11
|
&& value !== null
|
|
23
12
|
&& "kind" in value
|
|
24
13
|
&& typeof value.kind === "string"
|
|
25
|
-
&& EXPRESSION_KINDS.has(value.kind);
|
|
14
|
+
&& evaluateExpression_1.EXPRESSION_KINDS.has(value.kind);
|
|
26
15
|
}
|
|
27
16
|
/** Normalizes raw builder input into an expression node. */
|
|
28
17
|
function toExpression(value) {
|
|
@@ -63,6 +52,37 @@ function createViewLanguage() {
|
|
|
63
52
|
origin() {
|
|
64
53
|
return { kind: "origin" };
|
|
65
54
|
},
|
|
55
|
+
/**
|
|
56
|
+
* Read a FIELD of the parent document of a nested query lookup
|
|
57
|
+
* (`MindooQuery.include`). Only valid inside an include filter; the
|
|
58
|
+
* query engine rejects it everywhere else. For the parent's id use
|
|
59
|
+
* {@link parentDocId} — `parent("docId")` is an ordinary field path
|
|
60
|
+
* and yields a value only if the parent really stores such a field.
|
|
61
|
+
*
|
|
62
|
+
* Untyped by design: the parent belongs to a different document type
|
|
63
|
+
* (often a different database) than the `TDocument` this builder was
|
|
64
|
+
* created for.
|
|
65
|
+
*/
|
|
66
|
+
parent(path) {
|
|
67
|
+
return { kind: "parent", path };
|
|
68
|
+
},
|
|
69
|
+
/**
|
|
70
|
+
* The current document's id. A document's id is metadata rather than
|
|
71
|
+
* one of its fields, so it is reachable only through this helper —
|
|
72
|
+
* `field("docId")` reads a field of that name, which normally does
|
|
73
|
+
* not exist.
|
|
74
|
+
*/
|
|
75
|
+
docId() {
|
|
76
|
+
return { kind: "operation", op: "docId", args: [] };
|
|
77
|
+
},
|
|
78
|
+
/**
|
|
79
|
+
* The id of the parent row inside a nested query lookup — the
|
|
80
|
+
* {@link docId} counterpart of {@link parent}. `eq(docId(),
|
|
81
|
+
* parentDocId())` is the usual "child points at parent" join.
|
|
82
|
+
*/
|
|
83
|
+
parentDocId() {
|
|
84
|
+
return { kind: "operation", op: "parentDocId", args: [] };
|
|
85
|
+
},
|
|
66
86
|
createdAt() {
|
|
67
87
|
return { kind: "operation", op: "createdAt", args: [] };
|
|
68
88
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/core/expressions/builder.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/core/expressions/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,12 @@ export type ExpressionEvaluationContext = {
|
|
|
18
18
|
doc: Record<string, unknown>;
|
|
19
19
|
values: Record<string, unknown>;
|
|
20
20
|
origin: string;
|
|
21
|
+
/**
|
|
22
|
+
* The document's id, which is metadata rather than one of its fields and
|
|
23
|
+
* therefore not part of `doc`. Hosts populate it so `docId()` resolves;
|
|
24
|
+
* where it is missing the operation yields `null`.
|
|
25
|
+
*/
|
|
26
|
+
docId?: string | null;
|
|
21
27
|
createdAt?: string | null;
|
|
22
28
|
/** ISO-8601 last-modified timestamp from the host runtime (`getLastModified()`). */
|
|
23
29
|
lastModifiedAt?: string | null;
|
|
@@ -28,6 +34,22 @@ export type ExpressionEvaluationContext = {
|
|
|
28
34
|
variables: Record<string, unknown>;
|
|
29
35
|
/** Pre-resolved plaintext for `decrypt` nodes, keyed by field name. */
|
|
30
36
|
decrypted?: Record<string, unknown>;
|
|
37
|
+
/**
|
|
38
|
+
* Second evaluation context for `parent` nodes: the parent row of a
|
|
39
|
+
* nested query lookup (`MindooQuery.include`). Only populated while an
|
|
40
|
+
* include filter is evaluated; `parent` nodes yield `undefined` without
|
|
41
|
+
* it.
|
|
42
|
+
*/
|
|
43
|
+
parent?: ExpressionParentContext;
|
|
44
|
+
};
|
|
45
|
+
/** The parent row a `parent` node reads from inside an include filter. */
|
|
46
|
+
export type ExpressionParentContext = {
|
|
47
|
+
docId: string;
|
|
48
|
+
/**
|
|
49
|
+
* The parent's field values in evaluation form (`buildSummaryEvaluationDoc`),
|
|
50
|
+
* i.e. unprojected and with `_lastModified` mirrored in.
|
|
51
|
+
*/
|
|
52
|
+
doc: Record<string, unknown>;
|
|
31
53
|
};
|
|
32
54
|
/** A field whose ciphertext a view/query definition needs decrypted before evaluation. */
|
|
33
55
|
export type DecryptRequest = {
|
|
@@ -54,6 +76,26 @@ export declare function expressionToBoolean(value: unknown): boolean;
|
|
|
54
76
|
* context. This is the runtime counterpart of the builder and parser.
|
|
55
77
|
*/
|
|
56
78
|
export declare function evaluateExpression(expression: MindooDBAppExpression, context: ExpressionEvaluationContext): unknown;
|
|
79
|
+
/**
|
|
80
|
+
* Every node kind {@link evaluateExpression} understands — the runtime
|
|
81
|
+
* mirror of the `MindooDBAppExpression` union, and the one list both the
|
|
82
|
+
* builder (telling nodes from literals) and the query engine (rejecting a
|
|
83
|
+
* node the evaluator cannot run) work from. A new node kind belongs here.
|
|
84
|
+
*/
|
|
85
|
+
export declare const EXPRESSION_KINDS: ReadonlySet<MindooDBAppExpression["kind"]>;
|
|
86
|
+
/**
|
|
87
|
+
* Describes the first node of an expression tree that the evaluator would
|
|
88
|
+
* not recognize, or `null` when every node is a known kind.
|
|
89
|
+
*
|
|
90
|
+
* The evaluator's switch is exhaustive over the node union and deliberately
|
|
91
|
+
* has no `default`, so anything else — formula *source text* passed where a
|
|
92
|
+
* node was expected, a hand-built node with a typo'd `kind`, a value that
|
|
93
|
+
* survived a JSON round trip badly — evaluates to `undefined` rather than
|
|
94
|
+
* failing. As a filter that means "matches nothing", with no error and full
|
|
95
|
+
* coverage reported: the worst way to be wrong. Entry points that accept an
|
|
96
|
+
* expression from a caller check it with this first.
|
|
97
|
+
*/
|
|
98
|
+
export declare function findUnknownExpressionNode(expression: MindooDBAppExpression): string | null;
|
|
57
99
|
/**
|
|
58
100
|
* Walks an expression tree and collects every `decrypt` node so the host
|
|
59
101
|
* runtime knows which `_encrypted` fields it must decrypt before evaluation.
|
|
@@ -67,14 +109,25 @@ export declare function collectDecryptRequests(expression: MindooDBAppExpression
|
|
|
67
109
|
* `_attachments` — they read that managed field even without a field node.
|
|
68
110
|
*/
|
|
69
111
|
export declare function getReferencedFields(expression: MindooDBAppExpression): string[];
|
|
112
|
+
/**
|
|
113
|
+
* Collects every PARENT field path (`parent` nodes) an expression
|
|
114
|
+
* references. The counterpart of {@link getReferencedFields} for nested
|
|
115
|
+
* query lookups: both sets are coverage-checked, but against different
|
|
116
|
+
* summaries — `field` paths against the child database's, these against
|
|
117
|
+
* the parent's. `parentDocId()` contributes nothing here: an id is not a
|
|
118
|
+
* summary field and so has nothing to cover.
|
|
119
|
+
*/
|
|
120
|
+
export declare function getReferencedParentFields(expression: MindooDBAppExpression): string[];
|
|
70
121
|
/**
|
|
71
122
|
* Collects expression capabilities relevant for the query engine's
|
|
72
|
-
* guardrails: whether the expression needs decryption
|
|
73
|
-
* context (neither can be answered from the summary buffer)
|
|
123
|
+
* guardrails: whether the expression needs decryption, a view-tree
|
|
124
|
+
* context (neither can be answered from the summary buffer), or a parent
|
|
125
|
+
* row (only exists inside a nested query lookup).
|
|
74
126
|
*/
|
|
75
127
|
export declare function analyzeExpressionRequirements(expression: MindooDBAppExpression): {
|
|
76
128
|
needsDecryption: boolean;
|
|
77
129
|
needsViewContext: boolean;
|
|
78
130
|
viewContextOperations: string[];
|
|
131
|
+
needsParentContext: boolean;
|
|
79
132
|
};
|
|
80
133
|
//# sourceMappingURL=evaluateExpression.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluateExpression.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/evaluateExpression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD;;;;;;;;;GASG;AAEH;;;;GAIG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oFAAoF;IACpF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluateExpression.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/evaluateExpression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.VIEW_CONTEXT_OPERATIONS = void 0;
|
|
3
|
+
exports.EXPRESSION_KINDS = exports.VIEW_CONTEXT_OPERATIONS = void 0;
|
|
4
4
|
exports.getFieldValue = getFieldValue;
|
|
5
5
|
exports.expressionToNumber = expressionToNumber;
|
|
6
6
|
exports.expressionToBoolean = expressionToBoolean;
|
|
7
7
|
exports.evaluateExpression = evaluateExpression;
|
|
8
|
+
exports.findUnknownExpressionNode = findUnknownExpressionNode;
|
|
8
9
|
exports.collectDecryptRequests = collectDecryptRequests;
|
|
9
10
|
exports.getReferencedFields = getReferencedFields;
|
|
11
|
+
exports.getReferencedParentFields = getReferencedParentFields;
|
|
10
12
|
exports.analyzeExpressionRequirements = analyzeExpressionRequirements;
|
|
11
13
|
/** Operation nodes that only make sense inside a materialized view tree. */
|
|
12
14
|
exports.VIEW_CONTEXT_OPERATIONS = new Set([
|
|
@@ -94,6 +96,10 @@ function getViewRowCount(context, key) {
|
|
|
94
96
|
function evaluateOperation(expression, context) {
|
|
95
97
|
const args = expression.args.map((arg) => evaluateExpression(arg, context));
|
|
96
98
|
switch (expression.op) {
|
|
99
|
+
case "docId":
|
|
100
|
+
return context.docId ?? null;
|
|
101
|
+
case "parentDocId":
|
|
102
|
+
return context.parent?.docId ?? null;
|
|
97
103
|
case "createdAt":
|
|
98
104
|
return context.createdAt ?? null;
|
|
99
105
|
case "lastModifiedAt":
|
|
@@ -255,6 +261,10 @@ function evaluateExpression(expression, context) {
|
|
|
255
261
|
return getFieldValue(context.values, expression.path);
|
|
256
262
|
case "origin":
|
|
257
263
|
return context.origin;
|
|
264
|
+
case "parent": {
|
|
265
|
+
const parent = context.parent;
|
|
266
|
+
return parent ? getFieldValue(parent.doc, expression.path) : undefined;
|
|
267
|
+
}
|
|
258
268
|
case "variable":
|
|
259
269
|
return context.variables[expression.name];
|
|
260
270
|
case "if":
|
|
@@ -316,11 +326,67 @@ function walkExpression(expression, visit) {
|
|
|
316
326
|
case "field":
|
|
317
327
|
case "value":
|
|
318
328
|
case "origin":
|
|
329
|
+
case "parent":
|
|
319
330
|
case "variable":
|
|
320
331
|
case "json":
|
|
321
332
|
break;
|
|
322
333
|
}
|
|
323
334
|
}
|
|
335
|
+
/**
|
|
336
|
+
* Every node kind {@link evaluateExpression} understands — the runtime
|
|
337
|
+
* mirror of the `MindooDBAppExpression` union, and the one list both the
|
|
338
|
+
* builder (telling nodes from literals) and the query engine (rejecting a
|
|
339
|
+
* node the evaluator cannot run) work from. A new node kind belongs here.
|
|
340
|
+
*/
|
|
341
|
+
exports.EXPRESSION_KINDS = new Set([
|
|
342
|
+
"literal",
|
|
343
|
+
"field",
|
|
344
|
+
"value",
|
|
345
|
+
"origin",
|
|
346
|
+
"parent",
|
|
347
|
+
"variable",
|
|
348
|
+
"operation",
|
|
349
|
+
"if",
|
|
350
|
+
"let",
|
|
351
|
+
"decrypt",
|
|
352
|
+
"json",
|
|
353
|
+
]);
|
|
354
|
+
/**
|
|
355
|
+
* Describes the first node of an expression tree that the evaluator would
|
|
356
|
+
* not recognize, or `null` when every node is a known kind.
|
|
357
|
+
*
|
|
358
|
+
* The evaluator's switch is exhaustive over the node union and deliberately
|
|
359
|
+
* has no `default`, so anything else — formula *source text* passed where a
|
|
360
|
+
* node was expected, a hand-built node with a typo'd `kind`, a value that
|
|
361
|
+
* survived a JSON round trip badly — evaluates to `undefined` rather than
|
|
362
|
+
* failing. As a filter that means "matches nothing", with no error and full
|
|
363
|
+
* coverage reported: the worst way to be wrong. Entry points that accept an
|
|
364
|
+
* expression from a caller check it with this first.
|
|
365
|
+
*/
|
|
366
|
+
function findUnknownExpressionNode(expression) {
|
|
367
|
+
let unknown = null;
|
|
368
|
+
walkExpression(expression, (node) => {
|
|
369
|
+
if (unknown !== null) {
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
if (typeof node === "string") {
|
|
373
|
+
unknown = "formula source text (parse it first)";
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
if (node === null || typeof node !== "object") {
|
|
377
|
+
unknown = `a ${node === null ? "null" : typeof node} value`;
|
|
378
|
+
return;
|
|
379
|
+
}
|
|
380
|
+
const kind = node.kind;
|
|
381
|
+
if (typeof kind !== "string") {
|
|
382
|
+
unknown = "an object without a `kind`";
|
|
383
|
+
}
|
|
384
|
+
else if (!exports.EXPRESSION_KINDS.has(kind)) {
|
|
385
|
+
unknown = `kind "${kind}"`;
|
|
386
|
+
}
|
|
387
|
+
});
|
|
388
|
+
return unknown;
|
|
389
|
+
}
|
|
324
390
|
/**
|
|
325
391
|
* Walks an expression tree and collects every `decrypt` node so the host
|
|
326
392
|
* runtime knows which `_encrypted` fields it must decrypt before evaluation.
|
|
@@ -363,18 +429,43 @@ function getReferencedFields(expression) {
|
|
|
363
429
|
});
|
|
364
430
|
return Array.from(paths);
|
|
365
431
|
}
|
|
432
|
+
/**
|
|
433
|
+
* Collects every PARENT field path (`parent` nodes) an expression
|
|
434
|
+
* references. The counterpart of {@link getReferencedFields} for nested
|
|
435
|
+
* query lookups: both sets are coverage-checked, but against different
|
|
436
|
+
* summaries — `field` paths against the child database's, these against
|
|
437
|
+
* the parent's. `parentDocId()` contributes nothing here: an id is not a
|
|
438
|
+
* summary field and so has nothing to cover.
|
|
439
|
+
*/
|
|
440
|
+
function getReferencedParentFields(expression) {
|
|
441
|
+
const paths = new Set();
|
|
442
|
+
walkExpression(expression, (node) => {
|
|
443
|
+
if (node.kind === "parent") {
|
|
444
|
+
paths.add(node.path);
|
|
445
|
+
}
|
|
446
|
+
});
|
|
447
|
+
return Array.from(paths);
|
|
448
|
+
}
|
|
366
449
|
/**
|
|
367
450
|
* Collects expression capabilities relevant for the query engine's
|
|
368
|
-
* guardrails: whether the expression needs decryption
|
|
369
|
-
* context (neither can be answered from the summary buffer)
|
|
451
|
+
* guardrails: whether the expression needs decryption, a view-tree
|
|
452
|
+
* context (neither can be answered from the summary buffer), or a parent
|
|
453
|
+
* row (only exists inside a nested query lookup).
|
|
370
454
|
*/
|
|
371
455
|
function analyzeExpressionRequirements(expression) {
|
|
372
456
|
let needsDecryption = false;
|
|
457
|
+
let needsParentContext = false;
|
|
373
458
|
const viewContextOperations = new Set();
|
|
374
459
|
walkExpression(expression, (node) => {
|
|
375
460
|
if (node.kind === "decrypt") {
|
|
376
461
|
needsDecryption = true;
|
|
377
462
|
}
|
|
463
|
+
else if (node.kind === "parent") {
|
|
464
|
+
needsParentContext = true;
|
|
465
|
+
}
|
|
466
|
+
else if (node.kind === "operation" && node.op === "parentDocId") {
|
|
467
|
+
needsParentContext = true;
|
|
468
|
+
}
|
|
378
469
|
else if (node.kind === "operation" && exports.VIEW_CONTEXT_OPERATIONS.has(node.op)) {
|
|
379
470
|
viewContextOperations.add(node.op);
|
|
380
471
|
}
|
|
@@ -383,6 +474,7 @@ function analyzeExpressionRequirements(expression) {
|
|
|
383
474
|
needsDecryption,
|
|
384
475
|
needsViewContext: viewContextOperations.size > 0,
|
|
385
476
|
viewContextOperations: Array.from(viewContextOperations),
|
|
477
|
+
needsParentContext,
|
|
386
478
|
};
|
|
387
479
|
}
|
|
388
480
|
//# sourceMappingURL=evaluateExpression.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluateExpression.js","sourceRoot":"","sources":["../../../src/core/expressions/evaluateExpression.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evaluateExpression.js","sourceRoot":"","sources":["../../../src/core/expressions/evaluateExpression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formulaSource.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/formulaSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,qBAAqB,EAGtB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"formulaSource.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/formulaSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,4BAA4B,EAC5B,qBAAqB,EAGtB,MAAM,SAAS,CAAC;AA4EjB,iFAAiF;AACjF,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAK3C;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAQpF;AAED,iGAAiG;AACjG,wBAAgB,qCAAqC,CAAC,MAAM,EAAE,MAAM,GAAG,4BAA4B,CAElG;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,qBAAqB,EACjC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,MAAM,CAGR;AAED,2FAA2F;AAC3F,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,qBAAqB,GAAG,OAAO,CAWzF"}
|
|
@@ -6,6 +6,8 @@ exports.parseMindooDBFormulaBooleanExpression = parseMindooDBFormulaBooleanExpre
|
|
|
6
6
|
exports.formatMindooDBFormulaExpression = formatMindooDBFormulaExpression;
|
|
7
7
|
exports.isMindooDBFormulaLikelyBoolean = isMindooDBFormulaLikelyBoolean;
|
|
8
8
|
const OP_TO_HELPER = {
|
|
9
|
+
docId: "docId",
|
|
10
|
+
parentDocId: "parentDocId",
|
|
9
11
|
createdAt: "createdAt",
|
|
10
12
|
lastModifiedAt: "lastModifiedAt",
|
|
11
13
|
decryptionKeyId: "decryptionKeyId",
|
|
@@ -133,6 +135,8 @@ function formatExpression(expression, level, indent) {
|
|
|
133
135
|
return `v.value(${JSON.stringify(expression.path)})`;
|
|
134
136
|
case "origin":
|
|
135
137
|
return "v.origin()";
|
|
138
|
+
case "parent":
|
|
139
|
+
return `v.parent(${JSON.stringify(expression.path)})`;
|
|
136
140
|
case "variable":
|
|
137
141
|
return expression.name;
|
|
138
142
|
case "if": {
|
|
@@ -205,9 +209,17 @@ function formatExpression(expression, level, indent) {
|
|
|
205
209
|
}
|
|
206
210
|
}
|
|
207
211
|
}
|
|
208
|
-
/**
|
|
212
|
+
/**
|
|
213
|
+
* Expands multi-argument wrappers once nested expressions become hard to
|
|
214
|
+
* read inline. A zero-argument operation (`docId()`, `createdAt()`, the
|
|
215
|
+
* count helpers) is not one of those: it reads exactly like `origin()`,
|
|
216
|
+
* so it stays on the line with its siblings.
|
|
217
|
+
*/
|
|
209
218
|
function shouldFormatOperationMultiline(expression) {
|
|
210
|
-
return expression.args.length > 1 && expression.args.some((arg) => arg.kind === "operation"
|
|
219
|
+
return expression.args.length > 1 && expression.args.some((arg) => (arg.kind === "operation" && arg.args.length > 0) ||
|
|
220
|
+
arg.kind === "if" ||
|
|
221
|
+
arg.kind === "let" ||
|
|
222
|
+
!isInlineExpression(arg));
|
|
211
223
|
}
|
|
212
224
|
/** Identifies expressions that stay readable on a single line. */
|
|
213
225
|
function isInlineExpression(expression) {
|
|
@@ -216,6 +228,7 @@ function isInlineExpression(expression) {
|
|
|
216
228
|
case "field":
|
|
217
229
|
case "value":
|
|
218
230
|
case "origin":
|
|
231
|
+
case "parent":
|
|
219
232
|
case "variable":
|
|
220
233
|
case "json":
|
|
221
234
|
return true;
|
|
@@ -351,6 +364,12 @@ class FormulaParser {
|
|
|
351
364
|
this.expectChar(")");
|
|
352
365
|
return { kind: "origin" };
|
|
353
366
|
}
|
|
367
|
+
case "parent": {
|
|
368
|
+
const path = this.parseStringLiteral();
|
|
369
|
+
this.consumeOptionalComma();
|
|
370
|
+
this.expectChar(")");
|
|
371
|
+
return { kind: "parent", path };
|
|
372
|
+
}
|
|
354
373
|
case "ifElse": {
|
|
355
374
|
// Domino-@If-style variadic form: cond1, val1, [cond2, val2, ...], default.
|
|
356
375
|
// Desugars right-to-left into nested `if` nodes.
|