mindoodb 0.0.63 → 0.0.65

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 (108) hide show
  1. package/README.md +14 -1
  2. package/dist/browser/index.mjs +15 -0
  3. package/dist/core/BaseMindooDB.d.ts +19 -0
  4. package/dist/core/BaseMindooDB.d.ts.map +1 -1
  5. package/dist/core/BaseMindooDB.js +607 -323
  6. package/dist/core/BaseMindooDB.js.map +1 -1
  7. package/dist/core/accesscontrol/tier1Evaluator.d.ts +59 -0
  8. package/dist/core/accesscontrol/tier1Evaluator.d.ts.map +1 -0
  9. package/dist/core/accesscontrol/tier1Evaluator.js +77 -0
  10. package/dist/core/accesscontrol/tier1Evaluator.js.map +1 -0
  11. package/dist/core/appendonlystores/network/IrohNetworkTransport.d.ts +58 -5
  12. package/dist/core/appendonlystores/network/IrohNetworkTransport.d.ts.map +1 -1
  13. package/dist/core/appendonlystores/network/IrohNetworkTransport.js +77 -8
  14. package/dist/core/appendonlystores/network/IrohNetworkTransport.js.map +1 -1
  15. package/dist/core/appendonlystores/network/IrohStreamIO.d.ts +32 -10
  16. package/dist/core/appendonlystores/network/IrohStreamIO.d.ts.map +1 -1
  17. package/dist/core/appendonlystores/network/IrohStreamIO.js +26 -10
  18. package/dist/core/appendonlystores/network/IrohStreamIO.js.map +1 -1
  19. package/dist/core/appendonlystores/network/irohLocator.d.ts +16 -0
  20. package/dist/core/appendonlystores/network/irohLocator.d.ts.map +1 -1
  21. package/dist/core/appendonlystores/network/irohLocator.js +36 -0
  22. package/dist/core/appendonlystores/network/irohLocator.js.map +1 -1
  23. package/dist/core/builtinDbInvariants.d.ts +12 -6
  24. package/dist/core/builtinDbInvariants.d.ts.map +1 -1
  25. package/dist/core/builtinDbInvariants.js +7 -1
  26. package/dist/core/builtinDbInvariants.js.map +1 -1
  27. package/dist/core/expressions/builder.d.ts +25 -0
  28. package/dist/core/expressions/builder.d.ts.map +1 -1
  29. package/dist/core/expressions/builder.js +33 -13
  30. package/dist/core/expressions/builder.js.map +1 -1
  31. package/dist/core/expressions/evaluateExpression.d.ts +55 -2
  32. package/dist/core/expressions/evaluateExpression.d.ts.map +1 -1
  33. package/dist/core/expressions/evaluateExpression.js +95 -3
  34. package/dist/core/expressions/evaluateExpression.js.map +1 -1
  35. package/dist/core/expressions/formulaSource.d.ts.map +1 -1
  36. package/dist/core/expressions/formulaSource.js +21 -2
  37. package/dist/core/expressions/formulaSource.js.map +1 -1
  38. package/dist/core/expressions/index.d.ts +1 -1
  39. package/dist/core/expressions/index.d.ts.map +1 -1
  40. package/dist/core/expressions/index.js +3 -1
  41. package/dist/core/expressions/index.js.map +1 -1
  42. package/dist/core/expressions/metadata.d.ts +1 -1
  43. package/dist/core/expressions/metadata.d.ts.map +1 -1
  44. package/dist/core/expressions/metadata.js +5 -0
  45. package/dist/core/expressions/metadata.js.map +1 -1
  46. package/dist/core/expressions/types.d.ts +17 -2
  47. package/dist/core/expressions/types.d.ts.map +1 -1
  48. package/dist/core/index.d.ts +7 -4
  49. package/dist/core/index.d.ts.map +1 -1
  50. package/dist/core/index.js +29 -11
  51. package/dist/core/index.js.map +1 -1
  52. package/dist/core/indexing/createViewDataProvider.d.ts.map +1 -1
  53. package/dist/core/indexing/createViewDataProvider.js +1 -0
  54. package/dist/core/indexing/createViewDataProvider.js.map +1 -1
  55. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts.map +1 -1
  56. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js +1 -0
  57. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js.map +1 -1
  58. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
  59. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +1 -0
  60. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
  61. package/dist/core/peerdevices/PeerDeviceDocument.d.ts +144 -0
  62. package/dist/core/peerdevices/PeerDeviceDocument.d.ts.map +1 -0
  63. package/dist/core/peerdevices/PeerDeviceDocument.js +209 -0
  64. package/dist/core/peerdevices/PeerDeviceDocument.js.map +1 -0
  65. package/dist/core/query/executeQuery.d.ts +1 -1
  66. package/dist/core/query/executeQuery.d.ts.map +1 -1
  67. package/dist/core/query/executeQuery.js +106 -71
  68. package/dist/core/query/executeQuery.js.map +1 -1
  69. package/dist/core/query/executeQueryInclude.d.ts +99 -0
  70. package/dist/core/query/executeQueryInclude.d.ts.map +1 -0
  71. package/dist/core/query/executeQueryInclude.js +447 -0
  72. package/dist/core/query/executeQueryInclude.js.map +1 -0
  73. package/dist/core/query/index.d.ts +2 -1
  74. package/dist/core/query/index.d.ts.map +1 -1
  75. package/dist/core/query/index.js +5 -1
  76. package/dist/core/query/index.js.map +1 -1
  77. package/dist/core/query/queryInternals.d.ts +45 -0
  78. package/dist/core/query/queryInternals.d.ts.map +1 -0
  79. package/dist/core/query/queryInternals.js +87 -0
  80. package/dist/core/query/queryInternals.js.map +1 -0
  81. package/dist/core/query/queryLive.d.ts.map +1 -1
  82. package/dist/core/query/queryLive.js +67 -8
  83. package/dist/core/query/queryLive.js.map +1 -1
  84. package/dist/core/query/queryView.d.ts.map +1 -1
  85. package/dist/core/query/queryView.js +19 -0
  86. package/dist/core/query/queryView.js.map +1 -1
  87. package/dist/core/query/types.d.ts +122 -7
  88. package/dist/core/query/types.d.ts.map +1 -1
  89. package/dist/core/query/types.js +13 -1
  90. package/dist/core/query/types.js.map +1 -1
  91. package/dist/core/types.d.ts +15 -0
  92. package/dist/core/types.d.ts.map +1 -1
  93. package/dist/core/userkeys/fingerprint.d.ts +12 -4
  94. package/dist/core/userkeys/fingerprint.d.ts.map +1 -1
  95. package/dist/core/userkeys/fingerprint.js +14 -5
  96. package/dist/core/userkeys/fingerprint.js.map +1 -1
  97. package/dist/iroh/index.d.ts +3 -2
  98. package/dist/iroh/index.d.ts.map +1 -1
  99. package/dist/iroh/index.js +8 -1
  100. package/dist/iroh/index.js.map +1 -1
  101. package/dist/node/server/TenantManager.d.ts +5 -0
  102. package/dist/node/server/TenantManager.d.ts.map +1 -1
  103. package/dist/node/server/TenantManager.js +35 -56
  104. package/dist/node/server/TenantManager.js.map +1 -1
  105. package/dist/node/server/nativeIrohStreamIO.d.ts.map +1 -1
  106. package/dist/node/server/nativeIrohStreamIO.js +17 -4
  107. package/dist/node/server/nativeIrohStreamIO.js.map +1 -1
  108. package/package.json +1 -1
@@ -13,6 +13,7 @@ exports.createLoopbackIrohPair = createLoopbackIrohPair;
13
13
  * `mindoodb/sync-v5`). The Node server uses `@number0/iroh`. Tests use
14
14
  * {@link createLoopbackIrohPair}.
15
15
  */
16
+ const irohLocator_1 = require("./irohLocator");
16
17
  exports.MINDOODB_IROH_ALPN = "mindoodb/sync-v5";
17
18
  const textEncoder = new TextEncoder();
18
19
  const textDecoder = new TextDecoder();
@@ -38,8 +39,10 @@ function isBenignIrohClose(error) {
38
39
  * message-oriented and do not use this.
39
40
  *
40
41
  * @param raw Unframed write/read/close used by `@number0/iroh` (and similar)
42
+ * @param remoteEndpointId Peer id from the QUIC handshake, forwarded onto the
43
+ * wrapped stream so listeners can authorize it
41
44
  */
42
- function wrapLengthPrefixedByteStream(raw) {
45
+ function wrapLengthPrefixedByteStream(raw, remoteEndpointId) {
43
46
  let pending = new Uint8Array(0);
44
47
  const readExact = async (need) => {
45
48
  while (pending.length < need) {
@@ -57,6 +60,7 @@ function wrapLengthPrefixedByteStream(raw) {
57
60
  return out;
58
61
  };
59
62
  return {
63
+ remoteEndpointId,
60
64
  async send(bytes) {
61
65
  const header = new Uint8Array(4);
62
66
  new DataView(header.buffer).setUint32(0, bytes.length);
@@ -122,7 +126,8 @@ function base64ToBytes(value) {
122
126
  return out;
123
127
  }
124
128
  class LoopbackStream {
125
- constructor() {
129
+ constructor(remoteEndpointId) {
130
+ this.remoteEndpointId = remoteEndpointId;
126
131
  this.inbound = [];
127
132
  this.waiter = null;
128
133
  this.closed = false;
@@ -176,23 +181,33 @@ class LoopbackStream {
176
181
  * spike without native Iroh. Streams are already message-oriented; do not
177
182
  * wrap them with {@link wrapLengthPrefixedByteStream}.
178
183
  *
179
- * @returns Pair whose `connect` only accepts the other side's ticket
184
+ * Each side also reports a synthetic {@link IrohStreamIO.endpointId} and stamps
185
+ * inbound streams with the dialer's id, so listener authorization can be tested
186
+ * without native Iroh. `connect` accepts either the peer's loopback ticket or
187
+ * its endpoint id, mirroring the real adapters.
188
+ *
189
+ * @returns Pair whose `connect` only accepts the other side's locator
180
190
  */
181
- function createLoopbackIrohPair() {
191
+ function createLoopbackIrohPair(options) {
182
192
  const listenersA = [];
183
193
  const listenersB = [];
184
- const makeIo = (ticket, peerTicket, localListeners, remoteListeners) => ({
194
+ const endpointIdA = options?.endpointIdA ?? "a".repeat(64);
195
+ const endpointIdB = options?.endpointIdB ?? "b".repeat(64);
196
+ const makeIo = (ticket, peerTicket, endpointId, peerEndpointId, localListeners, remoteListeners) => ({
197
+ endpointId,
185
198
  async getLocalTicket() {
186
199
  return ticket;
187
200
  },
188
201
  async openConnection(target) {
189
- if (target !== peerTicket) {
202
+ const normalized = (0, irohLocator_1.normalizeIrohEndpointId)(target);
203
+ if (target !== peerTicket && normalized !== peerEndpointId) {
190
204
  throw new Error(`Unknown loopback peer ${target}`);
191
205
  }
192
206
  return {
193
207
  async openStream() {
194
- const local = new LoopbackStream();
195
- const remote = new LoopbackStream();
208
+ // The dialer sees the listener's id and vice versa.
209
+ const local = new LoopbackStream(peerEndpointId);
210
+ const remote = new LoopbackStream(endpointId);
196
211
  local.peer = remote;
197
212
  remote.peer = local;
198
213
  for (const listener of remoteListeners) {
@@ -209,6 +224,7 @@ function createLoopbackIrohPair() {
209
224
  const connection = await this.openConnection(target);
210
225
  const stream = await connection.openStream();
211
226
  return {
227
+ remoteEndpointId: stream.remoteEndpointId,
212
228
  send: (bytes) => stream.send(bytes),
213
229
  recv: () => stream.recv(),
214
230
  close: async () => {
@@ -238,8 +254,8 @@ function createLoopbackIrohPair() {
238
254
  },
239
255
  });
240
256
  return {
241
- a: makeIo("loopback:a", "loopback:b", listenersA, listenersB),
242
- b: makeIo("loopback:b", "loopback:a", listenersB, listenersA),
257
+ a: makeIo("loopback:a", "loopback:b", endpointIdA, endpointIdB, listenersA, listenersB),
258
+ b: makeIo("loopback:b", "loopback:a", endpointIdB, endpointIdA, listenersB, listenersA),
243
259
  };
244
260
  }
245
261
  //# sourceMappingURL=IrohStreamIO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IrohStreamIO.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/IrohStreamIO.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IrohStreamIO.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/IrohStreamIO.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,22 @@ export interface ParsedIrohLocator {
18
18
  endpointId?: string;
19
19
  }
20
20
  export declare function isIrohLocator(value: string): boolean;
21
+ /**
22
+ * Bare lowercase endpoint id, or `null` when the value is not one.
23
+ *
24
+ * Accepts an optional `iroh:` prefix so the same string works as a locator
25
+ * (`iroh:<id>`) and as a directory key (`<id>`). Tickets are not accepted here
26
+ * — use {@link resolveIrohEndpointId} when the input may be either.
27
+ */
28
+ export declare function normalizeIrohEndpointId(value: string | null | undefined): string | null;
29
+ /**
30
+ * Endpoint id behind any locator form — bare id, `iroh:<id>`, or a full
31
+ * `endpoint…` ticket — or `null` when it cannot be determined.
32
+ *
33
+ * Use this wherever a value has to stay stable across the peer's network
34
+ * changes: a ticket embeds the current relay and addresses, the id does not.
35
+ */
36
+ export declare function resolveIrohEndpointId(value: string | null | undefined): string | null;
21
37
  export declare function parseIrohLocator(value: string): ParsedIrohLocator;
22
38
  /**
23
39
  * Iroh endpoint tickets are `endpoint` + base32(postcard(EndpointAddr)).
@@ -1 +1 @@
1
- {"version":3,"file":"irohLocator.d.ts","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/irohLocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CA4BjE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc9E"}
1
+ {"version":3,"file":"irohLocator.d.ts","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/irohLocator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGpD;AAKD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAMvF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAUrF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CA4BjE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAc9E"}
@@ -11,6 +11,8 @@
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.isIrohLocator = isIrohLocator;
14
+ exports.normalizeIrohEndpointId = normalizeIrohEndpointId;
15
+ exports.resolveIrohEndpointId = resolveIrohEndpointId;
14
16
  exports.parseIrohLocator = parseIrohLocator;
15
17
  exports.extractEndpointIdFromTicket = extractEndpointIdFromTicket;
16
18
  const IROH_SCHEME = "iroh:";
@@ -19,6 +21,40 @@ function isIrohLocator(value) {
19
21
  const trimmed = value.trim();
20
22
  return trimmed.startsWith(IROH_SCHEME) || trimmed.startsWith(ENDPOINT_PREFIX);
21
23
  }
24
+ /** An Iroh endpoint id is the 32-byte public key rendered as lowercase hex. */
25
+ const ENDPOINT_ID_PATTERN = /^[0-9a-f]{64}$/;
26
+ /**
27
+ * Bare lowercase endpoint id, or `null` when the value is not one.
28
+ *
29
+ * Accepts an optional `iroh:` prefix so the same string works as a locator
30
+ * (`iroh:<id>`) and as a directory key (`<id>`). Tickets are not accepted here
31
+ * — use {@link resolveIrohEndpointId} when the input may be either.
32
+ */
33
+ function normalizeIrohEndpointId(value) {
34
+ if (!value) {
35
+ return null;
36
+ }
37
+ const raw = value.trim().replace(/^iroh:/i, "").toLowerCase();
38
+ return ENDPOINT_ID_PATTERN.test(raw) ? raw : null;
39
+ }
40
+ /**
41
+ * Endpoint id behind any locator form — bare id, `iroh:<id>`, or a full
42
+ * `endpoint…` ticket — or `null` when it cannot be determined.
43
+ *
44
+ * Use this wherever a value has to stay stable across the peer's network
45
+ * changes: a ticket embeds the current relay and addresses, the id does not.
46
+ */
47
+ function resolveIrohEndpointId(value) {
48
+ const normalized = normalizeIrohEndpointId(value);
49
+ if (normalized) {
50
+ return normalized;
51
+ }
52
+ if (!value) {
53
+ return null;
54
+ }
55
+ const ticket = value.trim().replace(/^iroh:/i, "");
56
+ return extractEndpointIdFromTicket(ticket) ?? null;
57
+ }
22
58
  function parseIrohLocator(value) {
23
59
  const trimmed = value.trim();
24
60
  if (!trimmed) {
@@ -1 +1 @@
1
- {"version":3,"file":"irohLocator.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/irohLocator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"irohLocator.js","sourceRoot":"","sources":["../../../../src/core/appendonlystores/network/irohLocator.ts"],"names":[],"mappings":"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"}
@@ -12,11 +12,11 @@
12
12
  * public key cannot be swapped in after the fact. Anyone may read.
13
13
  *
14
14
  * Personal documents (see {@link PERSONAL_DOC_ID_PREFIXES}) are the exception
15
- * inside `userdirectory`: they carry their owner's private data and are
16
- * therefore usually sealed to recipients, which means neither the server nor
17
- * another member can read `username_hash` out of them. Ownership for those is
18
- * the person who signed `doc_create`, resolved from grants — no decryption
19
- * involved. That person may change and delete their own document.
15
+ * inside `userdirectory`: they carry their owner's own data and are not
16
+ * readable by the server, which means it cannot read `username_hash` out of
17
+ * them. Ownership for those is the person who signed `doc_create`, resolved
18
+ * from grants — no decryption involved. That person may change and delete
19
+ * their own document.
20
20
  */
21
21
  export type BuiltinWriteOp = "doc_create" | "doc_change" | "doc_delete" | "doc_undelete" | "doc_snapshot";
22
22
  /**
@@ -26,8 +26,14 @@ export type BuiltinWriteOp = "doc_create" | "doc_change" | "doc_delete" | "doc_u
26
26
  * server, so any rule reading the payload could not be enforced there.
27
27
  *
28
28
  * `wks_` — roamed workspace and application list (one document per save id).
29
+ * `dev_` — one device's peer-sync record (Iroh endpoint id and label).
30
+ *
31
+ * The two differ in who may *read* them, which this rule does not care about:
32
+ * `wks_` documents are sealed to their owner, while `dev_` documents are
33
+ * encrypted with the tenant `default` key so every member can discover peers
34
+ * while the hoster still sees ciphertext. Ownership is the creator either way.
29
35
  */
30
- export declare const PERSONAL_DOC_ID_PREFIXES: readonly ["wks_"];
36
+ export declare const PERSONAL_DOC_ID_PREFIXES: readonly ["wks_", "dev_"];
31
37
  /** Is this a personal-data document id inside `userdirectory`? */
32
38
  export declare function isPersonalUserdirectoryDocId(docId: string | undefined | null): boolean;
33
39
  export interface BuiltinWriteInput {
@@ -1 +1 @@
1
- {"version":3,"file":"builtinDbInvariants.d.ts","sourceRoot":"","sources":["../../src/core/builtinDbInvariants.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,CAAC;AAE1G;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,mBAAoB,CAAC;AAE1D,kEAAkE;AAClE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAGtF;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,cAAc,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,oBAAoB,CAqEnF;AA4ED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAgBxF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAc7E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,GAAG,OAAO,CAsCV"}
1
+ {"version":3,"file":"builtinDbInvariants.d.ts","sourceRoot":"","sources":["../../src/core/builtinDbInvariants.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,CAAC;AAE1G;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,2BAA4B,CAAC;AAElE,kEAAkE;AAClE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAGtF;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,cAAc,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,oBAAoB,CAqEnF;AA4ED;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAgBxF;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAc7E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,GAAG,OAAO,CAsCV"}
@@ -17,8 +17,14 @@ const types_1 = require("./types");
17
17
  * server, so any rule reading the payload could not be enforced there.
18
18
  *
19
19
  * `wks_` — roamed workspace and application list (one document per save id).
20
+ * `dev_` — one device's peer-sync record (Iroh endpoint id and label).
21
+ *
22
+ * The two differ in who may *read* them, which this rule does not care about:
23
+ * `wks_` documents are sealed to their owner, while `dev_` documents are
24
+ * encrypted with the tenant `default` key so every member can discover peers
25
+ * while the hoster still sees ciphertext. Ownership is the creator either way.
20
26
  */
21
- exports.PERSONAL_DOC_ID_PREFIXES = ["wks_"];
27
+ exports.PERSONAL_DOC_ID_PREFIXES = ["wks_", "dev_"];
22
28
  /** Is this a personal-data document id inside `userdirectory`? */
23
29
  function isPersonalUserdirectoryDocId(docId) {
24
30
  if (!docId)
@@ -1 +1 @@
1
- {"version":3,"file":"builtinDbInvariants.js","sourceRoot":"","sources":["../../src/core/builtinDbInvariants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builtinDbInvariants.js","sourceRoot":"","sources":["../../src/core/builtinDbInvariants.ts"],"names":[],"mappings":"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"}
@@ -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;AAEjB,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AACvF,KAAK,cAAc,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AACjD,KAAK,SAAS,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAe7C,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,cAAc,GAC1D,KAAK,GACL;KACG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAChB,CAAC,CAAC,CAAC,CAAC,SAAS,cAAc,GACvB,GAAG,CAAC,EAAE,GACN,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CACpD,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpB,+DAA+D;AAC/D,MAAM,MAAM,oBAAoB,CAAC,CAAC,EAAE,KAAK,SAAS,MAAM,IACtD,KAAK,SAAS,GAAG,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACvC,IAAI,SAAS,MAAM,CAAC,GAClB,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GACnC,OAAO,GACT,KAAK,SAAS,MAAM,CAAC,GACnB,CAAC,CAAC,KAAK,CAAC,GACR,OAAO,CAAC;AAEhB;;;;;GAKG;AACH,MAAM,MAAM,0BAA0B,CAAC,CAAC,GAAG,OAAO,IAAI,qBAAqB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEnF,KAAK,gBAAgB,CAAC,WAAW,IAAI,WAAW,SAAS,qBAAqB,CAAC,MAAM,OAAO,CAAC,GAAG,OAAO,GAAG,WAAW,CAAC;AAEtH,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC,CAAC;AACvE,KAAK,cAAc,CAAC,SAAS,SAAS,WAAW,IAAI;KAClD,CAAC,IAAI,MAAM,SAAS,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E,CAAC;AAyBF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;YAG7D,CAAC,SAAS,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;kBAGhC,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC;kBAGtC,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC;mBAGrC,OAAO,GAAG,4BAA4B;UAG/C,KAAK,SAAS,oBAAoB,CAAC,SAAS,CAAC,QAAQ,KAAK,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;UAG1H,KAAK,SAAS,oBAAoB,CAAC,aAAa,CAAC,QAAQ,KAAK,GAAG,qBAAqB,CAAC,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;cAG9H,qBAAqB,CAAC,MAAM,CAAC;iBAG1B,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC;sBAG/B,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC;uBAGnC,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC;mBAGxC,4BAA4B;yBAGtB,4BAA4B;uBAG9B,qBAAqB,CAAC,MAAM,EAAE,CAAC;yBAG7B,qBAAqB,CAAC,MAAM,EAAE,CAAC;uBAGjC,qBAAqB,CAAC,MAAM,CAAC;kBAGlC,qBAAqB,CAAC,MAAM,CAAC;0BAGrB,qBAAqB,CAAC,MAAM,CAAC;0BAG7B,qBAAqB,CAAC,MAAM,CAAC;uBAGhC,qBAAqB,CAAC,MAAM,CAAC;+BAGrB,qBAAqB,CAAC,MAAM,CAAC;+BAG7B,qBAAqB,CAAC,MAAM,CAAC;oBAGxC,qBAAqB,CAAC,MAAM,CAAC;cAGnC,0BAA0B,SAAS,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;cAG7F,0BAA0B,SAAS,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;cAG7F,0BAA0B,SAAS,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;cAG7F,0BAA0B,SAAS,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;cAG7F,0BAA0B,SAAS,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;aAG9F,0BAA0B,SAAS,0BAA0B,GAAG,4BAA4B;cAG3F,0BAA0B,SAAS,0BAA0B,GAAG,4BAA4B;aAG7F,0BAA0B,SAAS,0BAA0B,GAAG,4BAA4B;cAG3F,0BAA0B,SAAS,0BAA0B,GAAG,4BAA4B;aAG7F,0BAA0B,SAAS,0BAA0B,GAAG,4BAA4B;cAG3F,0BAA0B,SAAS,0BAA0B,GAAG,4BAA4B;iBAGzF,0BAA0B,CAAC,OAAO,CAAC,EAAE,GAAG,4BAA4B;gBAGrE,0BAA0B,CAAC,OAAO,CAAC,EAAE,GAAG,4BAA4B;eAGrE,0BAA0B,CAAC,OAAO,CAAC,GAAG,4BAA4B;oBAG7D,0BAA0B,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC;iBAG/D,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;iBAG1D,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;gBAG3D,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;gBAG1D,0BAA0B,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;iBAGzF,0BAA0B,MAAM,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;oBAGvF,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC;oBAGjE,0BAA0B,GAAG,qBAAqB,CAAC,MAAM,CAAC;qBAGzD,0BAA0B,GAAG,4BAA4B;mBAG3D,0BAA0B,SAAS,0BAA0B,GAAG,4BAA4B;qBAG1F,0BAA0B,SAAS,0BAA0B,GAAG,4BAA4B;mBAG9F,0BAA0B,SAAS,0BAA0B,GAAG,4BAA4B;aAGlG,CAAC,WAAW,0BAA0B,CAAC,CAAC,CAAC,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC;kBAGjE,0BAA0B,GAAG,4BAA4B;qBAGtD,0BAA0B,GAAG,4BAA4B;sBAGxD,0BAA0B,EAAE,GAAG,qBAAqB,CAAC,MAAM,CAAC;oBAG9D,0BAA0B,QAAQ,iCAAiC,GAAG,qBAAqB,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;wBAG/G,MAAM,QAAQ,0BAA0B,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,MAAM,GAAG,IAAI,CAAC;uBAGxF,MAAM,SAAS,MAAM,QAAQ,0BAA0B,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC;gBAGvG,MAAM,SAAS,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC;IAGlE;;;;;;;;;;OAUG;WACI,CAAC,aACK,0BAA0B,CAAC,OAAO,CAAC,YACpC,0BAA0B,CAAC,CAAC,CAAC,6BACZ,0BAA0B,EAAE,GACtD,qBAAqB,CAAC,CAAC,CAAC;QAmBvB,SAAS,SAAS,WAAW,EAAE,OAAO,YAC9B,SAAS,SACZ,CAAC,IAAI,EAAE,cAAc,CAAC,SAAS,CAAC,KAAK,0BAA0B,CAAC,OAAO,CAAC,GAC9E,qBAAqB,CAAC,OAAO,CAAC;EAcpC"}
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 EXPRESSION_KINDS = new Set([
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":"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"}
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 or a view-tree
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;CACrC,CAAC;AAEF,0FAA0F;AAC1F,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,qBAAqB,CAAC;CAC7B,CAAC;AAOF,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,MAAM,CAAC;IAChC,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAQtD,CAAC;AAEH,qGAAqG;AACrG,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAUpF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAShE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAY3D;AAuMD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,qBAAqB,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAyCnH;AAqCD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,qBAAqB,GAAG,cAAc,EAAE,CAQ1F;AAUD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAY/E;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,UAAU,EAAE,qBAAqB,GAAG;IAChF,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC,CAeA"}
1
+ {"version":3,"file":"evaluateExpression.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/evaluateExpression.ts"],"names":[],"mappings":"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"}