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.
Files changed (63) hide show
  1. package/README.md +14 -1
  2. package/dist/browser/index.mjs +4 -0
  3. package/dist/core/expressions/builder.d.ts +25 -0
  4. package/dist/core/expressions/builder.d.ts.map +1 -1
  5. package/dist/core/expressions/builder.js +33 -13
  6. package/dist/core/expressions/builder.js.map +1 -1
  7. package/dist/core/expressions/evaluateExpression.d.ts +55 -2
  8. package/dist/core/expressions/evaluateExpression.d.ts.map +1 -1
  9. package/dist/core/expressions/evaluateExpression.js +95 -3
  10. package/dist/core/expressions/evaluateExpression.js.map +1 -1
  11. package/dist/core/expressions/formulaSource.d.ts.map +1 -1
  12. package/dist/core/expressions/formulaSource.js +21 -2
  13. package/dist/core/expressions/formulaSource.js.map +1 -1
  14. package/dist/core/expressions/index.d.ts +1 -1
  15. package/dist/core/expressions/index.d.ts.map +1 -1
  16. package/dist/core/expressions/index.js +3 -1
  17. package/dist/core/expressions/index.js.map +1 -1
  18. package/dist/core/expressions/metadata.d.ts +1 -1
  19. package/dist/core/expressions/metadata.d.ts.map +1 -1
  20. package/dist/core/expressions/metadata.js +5 -0
  21. package/dist/core/expressions/metadata.js.map +1 -1
  22. package/dist/core/expressions/types.d.ts +17 -2
  23. package/dist/core/expressions/types.d.ts.map +1 -1
  24. package/dist/core/index.d.ts +1 -1
  25. package/dist/core/index.d.ts.map +1 -1
  26. package/dist/core/index.js +4 -2
  27. package/dist/core/index.js.map +1 -1
  28. package/dist/core/indexing/createViewDataProvider.d.ts.map +1 -1
  29. package/dist/core/indexing/createViewDataProvider.js +1 -0
  30. package/dist/core/indexing/createViewDataProvider.js.map +1 -1
  31. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts.map +1 -1
  32. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js +1 -0
  33. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js.map +1 -1
  34. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
  35. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +1 -0
  36. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
  37. package/dist/core/query/executeQuery.d.ts +1 -1
  38. package/dist/core/query/executeQuery.d.ts.map +1 -1
  39. package/dist/core/query/executeQuery.js +106 -71
  40. package/dist/core/query/executeQuery.js.map +1 -1
  41. package/dist/core/query/executeQueryInclude.d.ts +99 -0
  42. package/dist/core/query/executeQueryInclude.d.ts.map +1 -0
  43. package/dist/core/query/executeQueryInclude.js +447 -0
  44. package/dist/core/query/executeQueryInclude.js.map +1 -0
  45. package/dist/core/query/index.d.ts +2 -1
  46. package/dist/core/query/index.d.ts.map +1 -1
  47. package/dist/core/query/index.js +5 -1
  48. package/dist/core/query/index.js.map +1 -1
  49. package/dist/core/query/queryInternals.d.ts +45 -0
  50. package/dist/core/query/queryInternals.d.ts.map +1 -0
  51. package/dist/core/query/queryInternals.js +87 -0
  52. package/dist/core/query/queryInternals.js.map +1 -0
  53. package/dist/core/query/queryLive.d.ts.map +1 -1
  54. package/dist/core/query/queryLive.js +67 -8
  55. package/dist/core/query/queryLive.js.map +1 -1
  56. package/dist/core/query/queryView.d.ts.map +1 -1
  57. package/dist/core/query/queryView.js +19 -0
  58. package/dist/core/query/queryView.js.map +1 -1
  59. package/dist/core/query/types.d.ts +122 -7
  60. package/dist/core/query/types.d.ts.map +1 -1
  61. package/dist/core/query/types.js +13 -1
  62. package/dist/core/query/types.js.map +1 -1
  63. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryInternals.js","sourceRoot":"","sources":["../../../src/core/query/queryInternals.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryLive.d.ts","sourceRoot":"","sources":["../../../src/core/query/queryLive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAErF,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAElF,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,WAAW,IAAI,IAAI,CAAC;IACpB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAyBD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,kBAAkB,GAAG;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GACpE,uBAAuB,CAwEzB"}
1
+ {"version":3,"file":"queryLive.d.ts","sourceRoot":"","sources":["../../../src/core/query/queryLive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAErF,OAAO,KAAK,EACV,WAAW,EAEX,kBAAkB,EAClB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAEjB,2CAA2C;AAC3C,MAAM,WAAW,uBAAuB;IACtC,mEAAmE;IACnE,WAAW,IAAI,IAAI,CAAC;IACpB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAgFD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,oBAAoB,EAC7B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,EAC7C,OAAO,CAAC,EAAE,kBAAkB,GAAG;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GACpE,uBAAuB,CAkFzB"}
@@ -12,16 +12,67 @@ const executeQuery_1 = require("./executeQuery");
12
12
  * or removing documents shifts BM25 statistics slightly for every other
13
13
  * match, and re-pushing an unchanged result list over marginal score
14
14
  * drift would spam subscribers.
15
+ *
16
+ * Included rows participate recursively. Without that, editing a line
17
+ * item would leave the invoice's own `lastModified` untouched and the
18
+ * subscriber would never hear about a change to data it was handed.
15
19
  */
16
20
  function fingerprintResult(result) {
17
21
  const parts = [String(result.total)];
18
22
  for (const row of result.rows) {
19
- parts.push(row.textScore === undefined
20
- ? `${row.docId}:${row.lastModified}`
21
- : `${row.docId}:${row.lastModified}:${row.textScore.toFixed(2)}`);
23
+ appendRowFingerprint(parts, row);
22
24
  }
23
25
  return parts.join("|");
24
26
  }
27
+ function appendRowFingerprint(parts, row) {
28
+ parts.push(row.textScore === undefined
29
+ ? `${row.docId}:${row.lastModified}`
30
+ : `${row.docId}:${row.lastModified}:${row.textScore.toFixed(2)}`);
31
+ if (!row.includes) {
32
+ return;
33
+ }
34
+ for (const [slot, slotValue] of Object.entries(row.includes)) {
35
+ if (slotValue === null) {
36
+ parts.push(`${slot}:-`);
37
+ continue;
38
+ }
39
+ if (Array.isArray(slotValue)) {
40
+ parts.push(`${slot}:${slotValue.length}`);
41
+ for (const child of slotValue) {
42
+ appendRowFingerprint(parts, child);
43
+ }
44
+ continue;
45
+ }
46
+ parts.push(`${slot}:1`);
47
+ appendRowFingerprint(parts, slotValue);
48
+ }
49
+ }
50
+ /**
51
+ * Every database a query reads from: the root plus each `include.db`
52
+ * (recursively; an include without one stays on its parent's database).
53
+ * Deduplicated by instance, so two slots on the same database do not
54
+ * install two listeners.
55
+ */
56
+ function collectQueryDatabases(db, query) {
57
+ const databases = [db];
58
+ const seen = new Set([db]);
59
+ const walk = (includes, parentDb) => {
60
+ for (const include of Object.values(includes)) {
61
+ const target = include.db ?? parentDb;
62
+ if (!seen.has(target)) {
63
+ seen.add(target);
64
+ databases.push(target);
65
+ }
66
+ if (include.include) {
67
+ walk(include.include, target);
68
+ }
69
+ }
70
+ };
71
+ if (query.include) {
72
+ walk(query.include, db);
73
+ }
74
+ return databases;
75
+ }
25
76
  /**
26
77
  * Live query: delivers the initial result, keeps the summary current via
27
78
  * the database's change listener, and re-evaluates the query after every
@@ -33,8 +84,14 @@ function fingerprintResult(result) {
33
84
  * errors are reported through `onError` (or logged to the console).
34
85
  */
35
86
  function executeQueryLive(db, summary, query, onResult, options) {
36
- if (!db.addChangeListener) {
37
- throw new Error("This MindooDB instance does not support change listeners.");
87
+ // A live query with includes is only live if it watches every database
88
+ // it reads from — a changed customer must push just like a changed
89
+ // invoice does.
90
+ const databases = collectQueryDatabases(db, query);
91
+ for (const database of databases) {
92
+ if (!database.addChangeListener) {
93
+ throw new Error("This MindooDB instance does not support change listeners.");
94
+ }
38
95
  }
39
96
  let lastFingerprint = null;
40
97
  let unsubscribed = false;
@@ -81,17 +138,19 @@ function executeQueryLive(db, summary, query, onResult, options) {
81
138
  running = false;
82
139
  }
83
140
  };
84
- const removeListener = db.addChangeListener(() => {
141
+ const removeListeners = databases.map((database) => database.addChangeListener(() => {
85
142
  if (!unsubscribed) {
86
143
  void run(false);
87
144
  }
88
- });
145
+ }));
89
146
  // Deliver the initial result asynchronously.
90
147
  void run(true);
91
148
  return {
92
149
  unsubscribe() {
93
150
  unsubscribed = true;
94
- removeListener();
151
+ for (const removeListener of removeListeners) {
152
+ removeListener();
153
+ }
95
154
  },
96
155
  async refresh() {
97
156
  if (unsubscribed) {
@@ -1 +1 @@
1
- {"version":3,"file":"queryLive.js","sourceRoot":"","sources":["../../../src/core/query/queryLive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryLive.js","sourceRoot":"","sources":["../../../src/core/query/queryLive.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryView.d.ts","sourceRoot":"","sources":["../../../src/core/query/queryView.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryView.d.ts","sourceRoot":"","sources":["../../../src/core/query/queryView.ts"],"names":[],"mappings":"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"}
@@ -171,6 +171,23 @@ exports.EphemeralSummaryView = EphemeralSummaryView;
171
171
  * the match, `_textScoreRaw` the engine's raw score.
172
172
  */
173
173
  const TEXT_SCORE_FIELDS = new Set(["_textScore", "_textScoreRaw"]);
174
+ /**
175
+ * Reject an expression the evaluator does not define.
176
+ *
177
+ * Same trap as in `db.query()`: an unrecognized node evaluates to
178
+ * `undefined`, which silently drops every row (in a filter) or blanks a
179
+ * column instead of reporting the mistake. View definitions take expressions
180
+ * only — formula source text has to be parsed by the caller, and saying so
181
+ * is more useful than an empty view.
182
+ */
183
+ function assertKnownExpression(expression, role) {
184
+ const unknown = (0, expressions_1.findUnknownExpressionNode)(expression);
185
+ if (unknown !== null) {
186
+ throw new types_1.MindooQueryError(`View ${role} contains ${unknown}, which the expression language does not define ` +
187
+ `(build it with createViewLanguage(), or parse formula text with ` +
188
+ `parseMindooDBFormulaBooleanExpression()).`);
189
+ }
190
+ }
174
191
  /**
175
192
  * Guardrails mirroring `db.query()`: expressions must be answerable from
176
193
  * the summary buffers (no decrypt, no view-tree operations in filters,
@@ -185,6 +202,7 @@ function validateViewDefinition(sources, definition) {
185
202
  if (!expression) {
186
203
  continue;
187
204
  }
205
+ assertKnownExpression(expression, "column");
188
206
  const requirements = (0, expressions_1.analyzeExpressionRequirements)(expression);
189
207
  if (requirements.needsDecryption) {
190
208
  throw new types_1.MindooQueryError("View columns cannot use decrypt expressions: encrypted fields are not stored in the summary buffer.");
@@ -197,6 +215,7 @@ function validateViewDefinition(sources, definition) {
197
215
  const referencedPaths = new Set(columnPaths);
198
216
  const filter = source.filter ?? definition.filter;
199
217
  if (filter) {
218
+ assertKnownExpression(filter, "filter");
200
219
  const requirements = (0, expressions_1.analyzeExpressionRequirements)(filter);
201
220
  if (requirements.needsViewContext) {
202
221
  throw new types_1.MindooQueryError(`View filters cannot use view-tree operations (${requirements.viewContextOperations.join(", ")}).`);
@@ -1 +1 @@
1
- {"version":3,"file":"queryView.js","sourceRoot":"","sources":["../../../src/core/query/queryView.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryView.js","sourceRoot":"","sources":["../../../src/core/query/queryView.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { MindooDBAppBooleanExpression, MindooDBAppExpression } from "../expressions/types";
2
2
  import type { SummaryCoverage } from "../indexing/summary/types";
3
3
  import type { VirtualViewUpdateOptions } from "../indexing/virtualviews/IVirtualViewDataProvider";
4
+ import type { MindooDB } from "../types";
4
5
  /**
5
6
  * One sort key of a {@link MindooQuery}. Either a plain summary field
6
7
  * path, a computed expression (evaluated per row before comparison), or a
@@ -43,17 +44,83 @@ export interface MindooQueryTextClause {
43
44
  /** How multiple terms combine: `"AND"` (default) or `"OR"`. */
44
45
  combineWith?: "AND" | "OR";
45
46
  }
47
+ /**
48
+ * Whether an include slot resolves to a single related row or a list of
49
+ * them. Always explicit: a lookup that happens to match exactly one
50
+ * document today must not silently change shape tomorrow, so `"one"`
51
+ * with more than one match is an error rather than an implicit array.
52
+ */
53
+ export type MindooQueryIncludeCardinality = "one" | "many";
54
+ /**
55
+ * Default `limit` of a `"many"` include slot — the cap that keeps one
56
+ * pathological parent (a customer with 50k invoices) from dominating a
57
+ * result. Raise it per slot when you really want more.
58
+ */
59
+ export declare const DEFAULT_INCLUDE_LIMIT = 200;
60
+ /**
61
+ * Maximum include nesting, counting the query's own `include` as level 1
62
+ * (so `invoice → customer → address` is level 2). A guard against
63
+ * accidentally exponential join plans, not a fundamental limit.
64
+ */
65
+ export declare const MAX_INCLUDE_DEPTH = 3;
66
+ /**
67
+ * One nested lookup of a {@link MindooQuery} (see docs/adhoc-queries.md).
68
+ *
69
+ * Related documents are joined onto every paged result row under
70
+ * `MindooQueryRow.includes[slot]`. The join runs as ONE additional
71
+ * summary scan per slot, never a query per parent row.
72
+ */
73
+ export interface MindooQueryInclude {
74
+ /**
75
+ * Database to look the related documents up in. Omit for the same
76
+ * database as the parent query. This is a runtime handle, not an id —
77
+ * the only part of a query object that is not plain JSON.
78
+ */
79
+ db?: MindooDB;
80
+ /** Required: `"one"` yields a row or `null`, `"many"` yields an array. */
81
+ cardinality: MindooQueryIncludeCardinality;
82
+ /**
83
+ * Shorthand join: match children whose `docId` equals this PARENT field
84
+ * (or, when the parent value is an array, is contained in it). Sugar for
85
+ * `filter: v.eq(v.field("docId"), v.parent(localKey))`; combined with an
86
+ * explicit `filter` via logical AND.
87
+ */
88
+ localKey?: string;
89
+ /**
90
+ * Join condition, or its formula source text. Must contain exactly one
91
+ * parent equality — `v.eq(v.field(childPath), v.parent(parentPath))`
92
+ * in either operand order — optionally ANDed with conditions that do
93
+ * not reference the parent (those are applied as plain child
94
+ * predicates). Everything else is rejected: the equality is what lets
95
+ * the engine answer the slot with a single indexed scan instead of a
96
+ * nested loop over parents x children.
97
+ */
98
+ filter?: MindooDBAppBooleanExpression | string;
99
+ /** Projection for the related rows; defaults to all summary fields. */
100
+ fields?: string[];
101
+ /** Ordering within one parent's list. `"many"` only; defaults to `docId`. */
102
+ sortBy?: MindooQuerySortKey[];
103
+ /** Max related rows per parent. `"many"` only; defaults to {@link DEFAULT_INCLUDE_LIMIT}. */
104
+ limit?: number;
105
+ /** Nested lookups on the related rows (see {@link MAX_INCLUDE_DEPTH}). */
106
+ include?: Record<string, MindooQueryInclude>;
107
+ }
46
108
  /**
47
109
  * An ad-hoc query over the document summary buffer (see
48
110
  * docs/adhoc-queries.md).
49
111
  *
50
112
  * The filter IS an expression of the MindooDB expression language — built
51
- * with `createViewLanguage()` or parsed from formula text with
52
- * `parseMindooDBFormulaBooleanExpression()` — so query definitions are
53
- * plain JSON and travel safely across process boundaries.
113
+ * with `createViewLanguage()` — so query definitions are plain JSON and
114
+ * travel safely across process boundaries.
54
115
  */
55
116
  export interface MindooQuery {
56
- filter?: MindooDBAppBooleanExpression;
117
+ /**
118
+ * Boolean expression, or the formula source text of one (e.g.
119
+ * `'v.eq(v.field("type"), "invoice")'`), which `query()` parses for you —
120
+ * the same convenience the app SDK offers, so a query object written for
121
+ * one works with the other.
122
+ */
123
+ filter?: MindooDBAppBooleanExpression | string;
57
124
  /**
58
125
  * Full-text clause: additionally require documents to match this
59
126
  * full-text search (combined with `filter` as a logical AND). Adds a
@@ -69,7 +136,28 @@ export interface MindooQuery {
69
136
  * summary fields of the matching document.
70
137
  */
71
138
  fields?: string[];
139
+ /**
140
+ * Nested lookups: related documents joined onto every returned row
141
+ * under {@link MindooQueryRow.includes}, keyed by slot name. Slot names
142
+ * are free-form — they live in their own object, so none of them can
143
+ * collide with `docId` / `fields` / `lastModified`.
144
+ *
145
+ * Hydration happens AFTER `sortBy`/`limit`/`offset`, so only the rows
146
+ * actually returned are joined; `total` stays the unpaged match count
147
+ * of the root query.
148
+ */
149
+ include?: Record<string, MindooQueryInclude>;
72
150
  }
151
+ /** A {@link MindooQueryInclude} whose formula-source filter has been parsed. */
152
+ export type ParsedMindooQueryInclude = Omit<MindooQueryInclude, "filter" | "include"> & {
153
+ filter?: MindooDBAppBooleanExpression;
154
+ include?: Record<string, ParsedMindooQueryInclude>;
155
+ };
156
+ /** A {@link MindooQuery} whose formula-source filters have been parsed. */
157
+ export type ParsedMindooQuery = Omit<MindooQuery, "filter" | "include"> & {
158
+ filter?: MindooDBAppBooleanExpression;
159
+ include?: Record<string, ParsedMindooQueryInclude>;
160
+ };
73
161
  export interface MindooQueryOptions extends VirtualViewUpdateOptions {
74
162
  /**
75
163
  * Escape hatch: materialize every document via the changefeed instead of
@@ -79,7 +167,13 @@ export interface MindooQueryOptions extends VirtualViewUpdateOptions {
79
167
  */
80
168
  allowFullScan?: boolean;
81
169
  }
82
- export interface MindooQueryRow {
170
+ /**
171
+ * The related rows joined onto one result row, keyed by include slot
172
+ * name: a row (or `null`) for `cardinality: "one"`, an array for
173
+ * `"many"`.
174
+ */
175
+ export type MindooQueryIncludeSlots = Record<string, MindooQueryRow | MindooQueryRow[] | null>;
176
+ export interface MindooQueryRow<TIncludes extends MindooQueryIncludeSlots = MindooQueryIncludeSlots> {
83
177
  docId: string;
84
178
  fields: Record<string, unknown>;
85
179
  lastModified: number;
@@ -88,6 +182,22 @@ export interface MindooQueryRow {
88
182
  * match). Only present when the query had a `text` clause.
89
183
  */
90
184
  textScore?: number;
185
+ /**
186
+ * Related rows from the query's {@link MindooQuery.include} lookups.
187
+ * Absent when the query had no `include`, so results of plain queries
188
+ * keep exactly the shape they always had.
189
+ *
190
+ * Included rows are ordinary rows, so a nested lookup reads as
191
+ * `row.includes.customer.includes.address` — the same rule at every
192
+ * level. The slots live in their own object rather than next to
193
+ * `docId`/`fields` so that no relation name can collide with the
194
+ * protocol and this row's top level stays free for future engine data.
195
+ *
196
+ * The generic parameter is a convenience for callers who want precise
197
+ * slot types (`db.query<{ lines: MindooQueryRow[] }>({…})`); it is not
198
+ * inferred from the `include` object.
199
+ */
200
+ includes?: TIncludes;
91
201
  }
92
202
  /**
93
203
  * Which data answered the query: `"full"`/`"rebuilding"` from the summary
@@ -95,10 +205,15 @@ export interface MindooQueryRow {
95
205
  * materialized via `allowFullScan`.
96
206
  */
97
207
  export type MindooQueryCoverage = SummaryCoverage | "full-scan";
98
- export interface MindooQueryResult {
99
- rows: MindooQueryRow[];
208
+ export interface MindooQueryResult<TIncludes extends MindooQueryIncludeSlots = MindooQueryIncludeSlots> {
209
+ rows: MindooQueryRow<TIncludes>[];
100
210
  /** Number of matching documents before `offset`/`limit` were applied. */
101
211
  total: number;
212
+ /**
213
+ * Which data answered the query. With `include` lookups this is the
214
+ * MINIMUM over every involved summary — one child summary still
215
+ * backfilling makes the whole result `"rebuilding"`.
216
+ */
102
217
  coverage: MindooQueryCoverage;
103
218
  }
104
219
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/query/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAC;AAElG;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,SAAS,CAAC,EAAE,WAAW,GAAG,YAAY,CAAC;CACxC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sFAAsF;IACtF,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB;IAClE;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,WAAW,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE1D;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC;gBAEzB,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,oBAAoB;CAKzD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/query/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MindooQueryError = void 0;
3
+ exports.MindooQueryError = exports.MAX_INCLUDE_DEPTH = exports.DEFAULT_INCLUDE_LIMIT = void 0;
4
+ /**
5
+ * Default `limit` of a `"many"` include slot — the cap that keeps one
6
+ * pathological parent (a customer with 50k invoices) from dominating a
7
+ * result. Raise it per slot when you really want more.
8
+ */
9
+ exports.DEFAULT_INCLUDE_LIMIT = 200;
10
+ /**
11
+ * Maximum include nesting, counting the query's own `include` as level 1
12
+ * (so `invoice → customer → address` is level 2). A guard against
13
+ * accidentally exponential join plans, not a fundamental limit.
14
+ */
15
+ exports.MAX_INCLUDE_DEPTH = 3;
4
16
  /**
5
17
  * Thrown for queries that cannot be answered: referenced fields outside the
6
18
  * summary coverage, `decrypt`/view-tree expressions without
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/query/types.ts"],"names":[],"mappings":";;;AAsHA;;;;;GAKG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IAIzC,YAAY,OAAe,EAAE,IAA2B;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AATD,4CASC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/query/types.ts"],"names":[],"mappings":";;;AAyDA;;;;GAIG;AACU,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAEzC;;;;GAIG;AACU,QAAA,iBAAiB,GAAG,CAAC,CAAC;AA2KnC;;;;;GAKG;AACH,MAAa,gBAAiB,SAAQ,KAAK;IAIzC,YAAY,OAAe,EAAE,IAA2B;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AATD,4CASC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mindoodb",
3
- "version": "0.0.63",
3
+ "version": "0.0.64",
4
4
  "engines": {
5
5
  "node": ">=22.13.0"
6
6
  },