@enbox/dwn-sdk-js 0.4.16 → 0.4.18

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 (175) hide show
  1. package/dist/browser.mjs +1 -1
  2. package/dist/browser.mjs.map +4 -4
  3. package/dist/esm/generated/precompiled-validators.js +978 -840
  4. package/dist/esm/generated/precompiled-validators.js.map +1 -1
  5. package/dist/esm/json-schemas/definitions.json +5 -0
  6. package/dist/esm/src/core/dwn-constant.js +2 -2
  7. package/dist/esm/src/core/dwn-error.js +0 -1
  8. package/dist/esm/src/core/dwn-error.js.map +1 -1
  9. package/dist/esm/src/core/protocol-authorization-validation.js +1 -24
  10. package/dist/esm/src/core/protocol-authorization-validation.js.map +1 -1
  11. package/dist/esm/src/core/protocol-authorization.js +1 -5
  12. package/dist/esm/src/core/protocol-authorization.js.map +1 -1
  13. package/dist/esm/src/core/validation-state-reader.js +2 -3
  14. package/dist/esm/src/core/validation-state-reader.js.map +1 -1
  15. package/dist/esm/src/handlers/records-collection.js +200 -0
  16. package/dist/esm/src/handlers/records-collection.js.map +1 -0
  17. package/dist/esm/src/handlers/records-count.js +26 -195
  18. package/dist/esm/src/handlers/records-count.js.map +1 -1
  19. package/dist/esm/src/handlers/records-query.js +19 -373
  20. package/dist/esm/src/handlers/records-query.js.map +1 -1
  21. package/dist/esm/src/handlers/records-subscribe.js +21 -338
  22. package/dist/esm/src/handlers/records-subscribe.js.map +1 -1
  23. package/dist/esm/src/handlers/records-write.js +8 -26
  24. package/dist/esm/src/handlers/records-write.js.map +1 -1
  25. package/dist/esm/src/index.js +1 -1
  26. package/dist/esm/src/index.js.map +1 -1
  27. package/dist/esm/src/interfaces/protocols-configure.js +4 -9
  28. package/dist/esm/src/interfaces/protocols-configure.js.map +1 -1
  29. package/dist/esm/src/interfaces/records-count.js +1 -1
  30. package/dist/esm/src/interfaces/records-count.js.map +1 -1
  31. package/dist/esm/src/interfaces/records-query.js +1 -1
  32. package/dist/esm/src/interfaces/records-query.js.map +1 -1
  33. package/dist/esm/src/interfaces/records-subscribe.js +3 -1
  34. package/dist/esm/src/interfaces/records-subscribe.js.map +1 -1
  35. package/dist/esm/src/store/index-level.js +210 -21
  36. package/dist/esm/src/store/index-level.js.map +1 -1
  37. package/dist/esm/src/store/message-store-level.js +192 -21
  38. package/dist/esm/src/store/message-store-level.js.map +1 -1
  39. package/dist/esm/src/store/storage-controller.js +1 -3
  40. package/dist/esm/src/store/storage-controller.js.map +1 -1
  41. package/dist/esm/src/types/protocols-types.js +0 -10
  42. package/dist/esm/src/types/protocols-types.js.map +1 -1
  43. package/dist/esm/src/utils/filter.js +35 -1
  44. package/dist/esm/src/utils/filter.js.map +1 -1
  45. package/dist/esm/src/utils/grant-key-coverage.js +4 -6
  46. package/dist/esm/src/utils/grant-key-coverage.js.map +1 -1
  47. package/dist/esm/src/utils/messages.js +4 -14
  48. package/dist/esm/src/utils/messages.js.map +1 -1
  49. package/dist/esm/src/utils/permission-scope.js +3 -9
  50. package/dist/esm/src/utils/permission-scope.js.map +1 -1
  51. package/dist/esm/src/utils/record-limit-occupancy.js +73 -202
  52. package/dist/esm/src/utils/record-limit-occupancy.js.map +1 -1
  53. package/dist/esm/src/utils/records.js +19 -52
  54. package/dist/esm/src/utils/records.js.map +1 -1
  55. package/dist/esm/tests/core/records-grant-authorization.spec.js +13 -0
  56. package/dist/esm/tests/core/records-grant-authorization.spec.js.map +1 -1
  57. package/dist/esm/tests/core/replication-replay-property.spec.js +2 -2
  58. package/dist/esm/tests/core/replication-replay-property.spec.js.map +1 -1
  59. package/dist/esm/tests/core/validation-read-closure.spec.js +1 -1
  60. package/dist/esm/tests/core/validation-read-closure.spec.js.map +1 -1
  61. package/dist/esm/tests/dwn.spec.js +2 -2
  62. package/dist/esm/tests/dwn.spec.js.map +1 -1
  63. package/dist/esm/tests/features/records-delivery.spec.js +2 -5
  64. package/dist/esm/tests/features/records-delivery.spec.js.map +1 -1
  65. package/dist/esm/tests/features/records-nested-query-scope.spec.js +149 -70
  66. package/dist/esm/tests/features/records-nested-query-scope.spec.js.map +1 -1
  67. package/dist/esm/tests/features/records-record-limit.spec.js +380 -95
  68. package/dist/esm/tests/features/records-record-limit.spec.js.map +1 -1
  69. package/dist/esm/tests/fuzz/filter.fuzz.spec.js +19 -4
  70. package/dist/esm/tests/fuzz/filter.fuzz.spec.js.map +1 -1
  71. package/dist/esm/tests/handlers/records-count.spec.js +52 -1
  72. package/dist/esm/tests/handlers/records-count.spec.js.map +1 -1
  73. package/dist/esm/tests/handlers/records-subscribe.spec.js +76 -1
  74. package/dist/esm/tests/handlers/records-subscribe.spec.js.map +1 -1
  75. package/dist/esm/tests/handlers/records-write.spec.js +57 -3
  76. package/dist/esm/tests/handlers/records-write.spec.js.map +1 -1
  77. package/dist/esm/tests/store/index-level.spec.js +208 -1
  78. package/dist/esm/tests/store/index-level.spec.js.map +1 -1
  79. package/dist/esm/tests/store/message-store-cross-context.spec.js +46 -0
  80. package/dist/esm/tests/store/message-store-cross-context.spec.js.map +1 -0
  81. package/dist/esm/tests/store/message-store-level.spec.js +76 -1
  82. package/dist/esm/tests/store/message-store-level.spec.js.map +1 -1
  83. package/dist/esm/tests/store/message-store.spec.js +81 -0
  84. package/dist/esm/tests/store/message-store.spec.js.map +1 -1
  85. package/dist/esm/tests/utils/filters.spec.js +25 -4
  86. package/dist/esm/tests/utils/filters.spec.js.map +1 -1
  87. package/dist/esm/tests/utils/permission-scope.spec.js +4 -0
  88. package/dist/esm/tests/utils/permission-scope.spec.js.map +1 -1
  89. package/dist/esm/tests/utils/records.spec.js +12 -0
  90. package/dist/esm/tests/utils/records.spec.js.map +1 -1
  91. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js +3 -1
  92. package/dist/esm/tests/validation/json-schemas/records/records-write.spec.js.map +1 -1
  93. package/dist/types/generated/precompiled-validators.d.ts.map +1 -1
  94. package/dist/types/src/core/dwn-constant.d.ts +2 -2
  95. package/dist/types/src/core/dwn-error.d.ts +0 -1
  96. package/dist/types/src/core/dwn-error.d.ts.map +1 -1
  97. package/dist/types/src/core/protocol-authorization-validation.d.ts +0 -10
  98. package/dist/types/src/core/protocol-authorization-validation.d.ts.map +1 -1
  99. package/dist/types/src/core/protocol-authorization.d.ts.map +1 -1
  100. package/dist/types/src/core/validation-state-reader.d.ts.map +1 -1
  101. package/dist/types/src/handlers/records-collection.d.ts +32 -0
  102. package/dist/types/src/handlers/records-collection.d.ts.map +1 -0
  103. package/dist/types/src/handlers/records-count.d.ts +0 -34
  104. package/dist/types/src/handlers/records-count.d.ts.map +1 -1
  105. package/dist/types/src/handlers/records-query.d.ts +0 -61
  106. package/dist/types/src/handlers/records-query.d.ts.map +1 -1
  107. package/dist/types/src/handlers/records-subscribe.d.ts +1 -37
  108. package/dist/types/src/handlers/records-subscribe.d.ts.map +1 -1
  109. package/dist/types/src/handlers/records-write.d.ts +3 -0
  110. package/dist/types/src/handlers/records-write.d.ts.map +1 -1
  111. package/dist/types/src/index.d.ts +3 -3
  112. package/dist/types/src/index.d.ts.map +1 -1
  113. package/dist/types/src/interfaces/protocols-configure.d.ts.map +1 -1
  114. package/dist/types/src/interfaces/records-subscribe.d.ts.map +1 -1
  115. package/dist/types/src/store/index-level.d.ts +61 -0
  116. package/dist/types/src/store/index-level.d.ts.map +1 -1
  117. package/dist/types/src/store/message-store-level.d.ts +24 -6
  118. package/dist/types/src/store/message-store-level.d.ts.map +1 -1
  119. package/dist/types/src/store/storage-controller.d.ts.map +1 -1
  120. package/dist/types/src/types/message-store.d.ts +28 -2
  121. package/dist/types/src/types/message-store.d.ts.map +1 -1
  122. package/dist/types/src/types/protocols-types.d.ts +7 -24
  123. package/dist/types/src/types/protocols-types.d.ts.map +1 -1
  124. package/dist/types/src/types/query-types.d.ts +8 -1
  125. package/dist/types/src/types/query-types.d.ts.map +1 -1
  126. package/dist/types/src/types/records-types.d.ts +3 -2
  127. package/dist/types/src/types/records-types.d.ts.map +1 -1
  128. package/dist/types/src/utils/filter.d.ts +14 -1
  129. package/dist/types/src/utils/filter.d.ts.map +1 -1
  130. package/dist/types/src/utils/grant-key-coverage.d.ts.map +1 -1
  131. package/dist/types/src/utils/messages.d.ts.map +1 -1
  132. package/dist/types/src/utils/permission-scope.d.ts +0 -2
  133. package/dist/types/src/utils/permission-scope.d.ts.map +1 -1
  134. package/dist/types/src/utils/record-limit-occupancy.d.ts +25 -12
  135. package/dist/types/src/utils/record-limit-occupancy.d.ts.map +1 -1
  136. package/dist/types/src/utils/records.d.ts +6 -24
  137. package/dist/types/src/utils/records.d.ts.map +1 -1
  138. package/dist/types/tests/features/records-delivery.spec.d.ts.map +1 -1
  139. package/dist/types/tests/features/records-nested-query-scope.spec.d.ts.map +1 -1
  140. package/dist/types/tests/features/records-record-limit.spec.d.ts.map +1 -1
  141. package/dist/types/tests/handlers/records-count.spec.d.ts.map +1 -1
  142. package/dist/types/tests/handlers/records-subscribe.spec.d.ts.map +1 -1
  143. package/dist/types/tests/handlers/records-write.spec.d.ts.map +1 -1
  144. package/dist/types/tests/store/message-store-cross-context.spec.d.ts +2 -0
  145. package/dist/types/tests/store/message-store-cross-context.spec.d.ts.map +1 -0
  146. package/dist/types/tests/store/message-store.spec.d.ts.map +1 -1
  147. package/package.json +4 -4
  148. package/src/core/dwn-constant.ts +2 -2
  149. package/src/core/dwn-error.ts +0 -2
  150. package/src/core/protocol-authorization-validation.ts +1 -33
  151. package/src/core/protocol-authorization.ts +0 -7
  152. package/src/core/validation-state-reader.ts +2 -3
  153. package/src/handlers/records-collection.ts +269 -0
  154. package/src/handlers/records-count.ts +38 -232
  155. package/src/handlers/records-query.ts +22 -444
  156. package/src/handlers/records-subscribe.ts +26 -397
  157. package/src/handlers/records-write.ts +17 -32
  158. package/src/index.ts +3 -3
  159. package/src/interfaces/protocols-configure.ts +4 -13
  160. package/src/interfaces/records-count.ts +1 -1
  161. package/src/interfaces/records-query.ts +1 -1
  162. package/src/interfaces/records-subscribe.ts +5 -2
  163. package/src/store/index-level.ts +323 -28
  164. package/src/store/message-store-level.ts +251 -25
  165. package/src/store/storage-controller.ts +1 -3
  166. package/src/types/message-store.ts +30 -2
  167. package/src/types/protocols-types.ts +7 -26
  168. package/src/types/query-types.ts +10 -2
  169. package/src/types/records-types.ts +3 -2
  170. package/src/utils/filter.ts +40 -3
  171. package/src/utils/grant-key-coverage.ts +4 -7
  172. package/src/utils/messages.ts +4 -14
  173. package/src/utils/permission-scope.ts +4 -11
  174. package/src/utils/record-limit-occupancy.ts +108 -293
  175. package/src/utils/records.ts +22 -57
@@ -1,5 +1,6 @@
1
1
  import { AbstractMessage } from '../core/abstract-message.js';
2
2
  import { DwnConstant } from '../core/dwn-constant.js';
3
+ import { FilterUtility } from '../utils/filter.js';
3
4
  import { Message } from '../core/message.js';
4
5
  import { PermissionGrant } from '../protocols/permission-grant.js';
5
6
  import { ProtocolsGrantAuthorization } from '../core/protocols-grant-authorization.js';
@@ -9,7 +10,7 @@ import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
9
10
  import { DwnInterfaceName, DwnMethodName } from '../enums/dwn-interface-method.js';
10
11
  import { getRoleAudienceContextId, getRuleSetAtPath, isCrossProtocolRef, parseCrossProtocolRef } from '../utils/protocols.js';
11
12
  import { normalizeProtocolUrl, normalizeSchemaUrl, validateProtocolUrlNormalized, validateSchemaUrlNormalized } from '../utils/url.js';
12
- import { ProtocolAction, ProtocolActor, ProtocolRecordLimitStrategy } from '../types/protocols-types.js';
13
+ import { ProtocolAction, ProtocolActor } from '../types/protocols-types.js';
13
14
  export class ProtocolsConfigure extends AbstractMessage {
14
15
  static maxRecordNestingDepth = 10;
15
16
  static async parse(message) {
@@ -206,18 +207,13 @@ export class ProtocolsConfigure extends AbstractMessage {
206
207
  }
207
208
  // Validate $recordLimit
208
209
  if (ruleSet.$recordLimit !== undefined) {
209
- const { max, strategy } = ruleSet.$recordLimit;
210
+ const { max } = ruleSet.$recordLimit;
210
211
  if (!Number.isInteger(max) || max < 1) {
211
212
  throw new DwnError(DwnErrorCode.ProtocolsConfigureInvalidRecordLimit, `Invalid $recordLimit.max value ${max} at protocol path '${ruleSetProtocolPath}': must be an integer >= 1.`);
212
213
  }
213
214
  if (max > DwnConstant.maxRecordLimit) {
214
215
  throw new DwnError(DwnErrorCode.ProtocolsConfigureInvalidRecordLimit, `Invalid $recordLimit.max value ${max} at protocol path '${ruleSetProtocolPath}': must be <= ${DwnConstant.maxRecordLimit}.`);
215
216
  }
216
- const validStrategies = Object.values(ProtocolRecordLimitStrategy);
217
- if (!validStrategies.includes(strategy)) {
218
- throw new DwnError(DwnErrorCode.ProtocolsConfigureInvalidRecordLimit, `Invalid $recordLimit.strategy '${strategy}' at protocol path '${ruleSetProtocolPath}': ` +
219
- `must be one of ${validStrategies.join(', ')}.`);
220
- }
221
217
  }
222
218
  if (ruleSet.$tags !== undefined) {
223
219
  const { $allowUndefinedTags, $requiredTags, ...tagProperties } = ruleSet.$tags;
@@ -280,8 +276,7 @@ export class ProtocolsConfigure extends AbstractMessage {
280
276
  }
281
277
  else {
282
278
  // Local `of`: must be self or ancestor
283
- const isSelfOrAncestor = ruleSetProtocolPath === actionRule.of
284
- || ruleSetProtocolPath.startsWith(actionRule.of + '/');
279
+ const isSelfOrAncestor = FilterUtility.matchesSubtree(actionRule.of, ruleSetProtocolPath);
285
280
  if (!isSelfOrAncestor) {
286
281
  throw new DwnError(DwnErrorCode.ProtocolsConfigureInvalidActionOfNotAnAncestor, `'of' value '${actionRule.of}' is not an ancestor of protocol path '${ruleSetProtocolPath}' ` +
287
282
  `in action rule ${JSON.stringify(actionRule)}.`);
@@ -1 +1 @@
1
- {"version":3,"file":"protocols-configure.js","sourceRoot":"","sources":["../../../../src/interfaces/protocols-configure.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,mCAAmC,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9H,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACvI,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAazG,MAAM,OAAO,kBAAmB,SAAQ,eAA0C;IACxE,MAAM,CAAU,qBAAqB,GAAG,EAAE,CAAC;IAE5C,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAkC;QAC1D,kBAAkB,CAAC,qCAAqC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACzF,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACpC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7E,MAAM,OAAO,CAAC,0BAA0B,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9F,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAE5D,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAkC;QAC3D,MAAM,yBAAyB,GAAG,OAAO,CAAC,kCAAkC,CAAC;YAC3E,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC,CAAC;QAEH,MAAM,UAAU,GAAiC;YAC/C,SAAS,EAAU,gBAAgB,CAAC,SAAS;YAC7C,MAAM,EAAa,aAAa,CAAC,SAAS;YAC1C,gBAAgB,EAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACzE,UAAU,EAAS,kBAAkB,CAAC,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC;YAC7E,GAAG,yBAAyB;SAC7B,CAAC;QAEF,kBAAkB,CAAC,qCAAqC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEhF,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC;YACtD,UAAU;YACV,MAAM,EAAW,OAAO,CAAC,MAAM;YAC/B,cAAc,EAAG,OAAO,CAAC,cAAc;YACvC,GAAG,yBAAyB;SAC7B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;QAE9C,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACpC,kBAAkB,CAAC,0BAA0B,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAE7E,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,uBAAuB,CAAC,qBAA4C;QAC/E,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,oBAAqB,CAAC,CAAC;QAC/F,MAAM,2BAA2B,CAAC,kBAAkB,CAAC;YACnD,yBAAyB,EAAG,IAAI,CAAC,OAAO;YACxC,eAAe,EAAa,IAAI,CAAC,MAAO;YACxC,eAAe,EAAa,IAAI,CAAC,MAAO;YACxC,eAAe,EAAa,cAAc;YAC1C,qBAAqB;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,0BAA0B,CAAC,UAA8B;QACtE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAE7C,wBAAwB;QACxB,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAExC,iCAAiC;QACjC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YACtC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,2BAA2B,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,mHAAmH;QACnH,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,uBAAuB;QACvB,kBAAkB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,qCAAqC,CAAC,UAAmB;QACtE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,IAAI,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;YACpG,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,+CAA+C,EAC5D,6EAA6E,CAC9E,CAAC;QACJ,CAAC;QAED,kBAAkB,CAAC,0CAA0C,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IAEO,MAAM,CAAC,0CAA0C,CAAC,OAAgB,EAAE,YAAoB,EAAE,KAAa;QAC7G,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,YAAY,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;YAErF,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;gBACjC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,+CAA+C,EAC5D,4BAA4B,SAAS,mDAAmD,CACzF,CAAC;YACJ,CAAC;YAED,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,IAAI,UAAU,GAAG,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;gBAC1D,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,4CAA4C,EACzD,iCAAiC,kBAAkB,CAAC,qBAAqB,UAAU,CACpF,CAAC;YACJ,CAAC;YAED,kBAAkB,CAAC,0CAA0C,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC5G,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,KAAc;QACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,YAAY,CAAC,IAAkB,EAAE,cAAsB;QACpE,MAAM,YAAY,GAAG,0BAA0B,CAAC;QAEhD,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,kCAAkC,EAC/C,yBAAyB,KAAK,yBAAyB,YAAY,CAAC,QAAQ,EAAE,GAAG,CAClF,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,wCAAwC,EACrD,0CAA0C,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAC7G,CAAC;YACJ,CAAC;YAED,2DAA2D;YAC3D,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,cAAc,EAAE,CAAC;gBACnC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,0CAA0C,EACvD,iBAAiB,KAAK,wCAAwC,cAAc,KAAK;oBACjF,mCAAmC,CACpC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAAC,UAA8B;QAC7D,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAE5B,mCAAmC;QACnC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAElD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAW,EAAE,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,CAAC;QACpH,IAAI,iBAAiB,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YAChE,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,6CAA6C,EAC1D,aAAa,UAAU,CAAC,QAAQ,gEAAgE,CACjG,CAAC;QACJ,CAAC;QAED,8FAA8F;QAC9F,MAAM,KAAK,GAAG,kBAAkB,CAAC,4BAA4B,CAAC,EAAE,EAAE,UAAU,CAAC,SAA4B,EAAE,EAAE,CAAC,CAAC;QAE/G,qDAAqD;QACrD,kBAAkB,CAAC,0BAA0B,CAAC;YAC5C,OAAO,EAAe,UAAU,CAAC,SAA4B;YAC7D,mBAAmB,EAAG,EAAE;YACxB,WAAW;YACX,KAAK;YACL,IAAI;YACJ,KAAK,EAAiB,UAAU,CAAC,KAAK;YACtC,aAAa,EAAS,UAAU,CAAC,SAAS;SAC3C,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,4BAA4B,CAAC,mBAA2B,EAAE,OAAwB,EAAE,KAAe;QAChH,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YACjC,sCAAsC;YACtC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAoB,CAAC;YAE5D,IAAI,wBAAwB,CAAC;YAC7B,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;gBAC/B,wBAAwB,GAAG,UAAU,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,wBAAwB,GAAG,GAAG,mBAAmB,IAAI,UAAU,EAAE,CAAC;YACpE,CAAC;YAED,0EAA0E;YAC1E,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,4BAA4B,CAAC,wBAAwB,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,0BAA0B,CACvC,KAGC;QAED,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAE/F,6FAA6F;QAC7F,uEAAuE;QACvE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,qCAAqC,EAClD,4BAA4B,mBAAmB,uFAAuF,CACvI,CAAC;YACJ,CAAC;YAED,kBAAkB,CAAC,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACzE,CAAC;QAED,iBAAiB;QACjB,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;YAEvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;gBACnC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,6BAA6B,EAC1C,uCAAuC,GAAG,wBAAwB,GAAG,sBAAsB,mBAAmB,GAAG,CAClH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;YAE/C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,oCAAoC,EACjD,kCAAkC,GAAG,sBAAsB,mBAAmB,6BAA6B,CAC5G,CAAC;YACJ,CAAC;YAED,IAAI,GAAG,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;gBACrC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,oCAAoC,EACjD,kCAAkC,GAAG,sBAAsB,mBAAmB,iBAAiB,WAAW,CAAC,cAAc,GAAG,CAC7H,CAAC;YACJ,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAa,CAAC;YAC/E,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAkB,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,oCAAoC,EACjD,kCAAkC,QAAQ,uBAAuB,mBAAmB,KAAK;oBACzF,kBAAkB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,EAAE,mBAAmB,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;YAE/E,yEAAyE;YACzE,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;gBAChC,MAAM,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;gBAC/C,MAAM,WAAW,GAAG,mCAAmC,CACrD,mBAAmB,EACnB,GAAG,mBAAmB,UAAU,GAAG,EAAE,CACtC,CAAC;gBAEF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;oBAC9B,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,iCAAiC,WAAW,EAAE,CAAC,CAAC;gBACtH,CAAC;YACH,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAElC,yDAAyD;YACzD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClC,IAAI,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxC,iEAAiE;oBACjE,MAAM,UAAU,GAAG,kBAAkB,CAAC,0BAA0B,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,CAAC,CAAC;oBACrH,kBAAkB,CAAC,8BAA8B,CAAC,UAAU,CAAC,YAAY,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBAC9G,CAAC;qBAAM,CAAC;oBACN,iFAAiF;oBACjF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBACrC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,6CAA6C,EAC1D,kBAAkB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,iBAAiB,mBAAmB,kBAAkB,CACnG,CAAC;oBACJ,CAAC;oBAED,kBAAkB,CAAC,8BAA8B,CAAC,UAAU,CAAC,IAAI,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;YAED,iEAAiE;YACjE,IAAI,UAAU,CAAC,GAAG,KAAK,QAAQ,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,2CAA2C,EACxD,kDAAkD,mBAAmB,GAAG,CACzE,CAAC;YACJ,CAAC;YAED,qIAAqI;YACrI,gEAAgE;YAChE,oDAAoD;YACpD,oDAAoD;YACpD,gFAAgF;YAChF,wIAAwI;YACxI,IAAI,UAAU,CAAC,GAAG,KAAK,aAAa,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;gBAE9E,sFAAsF;gBACtF,MAAM,mBAAmB,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAC7C,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAwB,CAAC,CACzH,CAAC;gBACF,IAAI,mBAAmB,EAAE,CAAC;oBACxB,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,0CAA0C,EACvD,uHAAuH,CACxH,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,6DAA6D;YAC7D,IAAI,UAAU,CAAC,GAAG,KAAK,aAAa,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBAC9D,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,wCAAwC,EACrD,sDAAsD,CACvD,CAAC;YACJ,CAAC;YAED,+EAA+E;YAC/E,+GAA+G;YAC/G,kHAAkH;YAClH,IAAI,UAAU,CAAC,EAAE,KAAK,SAAS,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;gBAC9D,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC;oBACtC,iEAAiE;oBACjE,kBAAkB,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;gBAChG,CAAC;qBAAM,CAAC;oBACN,uCAAuC;oBACvC,MAAM,gBAAgB,GAAG,mBAAmB,KAAK,UAAU,CAAC,EAAE;2BACzD,mBAAmB,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;oBACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC;wBACtB,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,8CAA8C,EAC3D,eAAe,UAAU,CAAC,EAAE,0CAA0C,mBAAmB,IAAI;4BAC7F,kBAAkB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAChD,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,gGAAgG;YAChG,0FAA0F;YAC1F,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtG,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,kDAAkD,EAC/D,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,qEAAqE,CAC/G,CAAC;gBACJ,CAAC;gBAED,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtG,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,kDAAkD,EAC/D,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,qEAAqE,CAC/G,CAAC;gBACJ,CAAC;gBAED,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrG,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,iDAAiD,EAC9D,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,oEAAoE,CAC9G,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,sFAAsF;YACtF,mFAAmF;YACnF,sIAAsI;YACtI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAChD,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAEvC,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBACjC,sCAAsC;oBAEtC,IAAI,UAAU,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;wBAC7C,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,wCAAwC,EACrD,sCAAsC,UAAU,CAAC,IAAI,mCAAmC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CACrH,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,IAAI,UAAU,CAAC,GAAG,KAAK,eAAe,CAAC,GAAG,IAAI,UAAU,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC;oBAC1F,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,yCAAyC,EACtD,uCAAuC,UAAU,CAAC,GAAG,OAAO,UAAU,CAAC,EAAE,GAAG;wBAC5E,kCAAkC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAC/D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;YACvD,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,YAAY,EAAE,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBAC9C,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;oBACxC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,kDAAkD,EAC/D,4BAA4B,mBAAmB,yBAAyB,CACzE,CAAC;gBACJ,CAAC;gBAED,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CACpC,CAAC,IAAwB,EAAW,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CACnH,CAAC;gBACF,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,4CAA4C,EACzD,4BAA4B,mBAAmB,4CAA4C,CAC5F,CAAC;gBACJ,CAAC;gBAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;oBACrC,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnF,SAAS;oBACX,CAAC;oBAED,IAAI,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,mDAAmD,EAChE,4BAA4B,mBAAmB,0CAA0C,UAAU,CAAC,IAAI,IAAI,CAC7G,CAAC;oBACJ,CAAC;oBAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;oBACrE,IAAI,WAAW,EAAE,aAAa,KAAK,SAAS,EAAE,CAAC;wBAC7C,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,yDAAyD,EACtE,4BAA4B,mBAAmB,sBAAsB,UAAU,CAAC,IAAI,0BAA0B,CAC/G,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,gFAAgF;QAChF,6EAA6E;QAC7E,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACzG,OAAO,CAAC,IAAI,CACV,sCAAsC,mBAAmB,qBAAqB,OAAO,CAAC,SAAS,IAAI;gBACnG,kFAAkF;gBAClF,iEAAiE,CAClE,CAAC;QACJ,CAAC;QAED,iGAAiG;QACjG,4FAA4F;QAC5F,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,CACtC,CAAC,IAAwB,EAAW,EAAE,CACpC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CACzF,CAAC;YACF,IAAI,eAAe,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CACV,sCAAsC,mBAAmB,yBAAyB;oBAClF,+EAA+E;oBAC/E,0EAA0E,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YACjC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAoB,CAAC;YAE5D,2FAA2F;YAC3F,kFAAkF;YAClF,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzE,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,0CAA0C,EACvD,YAAY,UAAU,iEAAiE,CACxF,CAAC;YACJ,CAAC;YAED,IAAI,wBAAwB,CAAC;YAC7B,IAAI,mBAAmB,KAAK,EAAE,EAAE,CAAC;gBAC/B,wBAAwB,GAAG,UAAU,CAAC,CAAC,uCAAuC;YAChF,CAAC;iBAAM,CAAC;gBACN,wBAAwB,GAAG,GAAG,mBAAmB,IAAI,UAAU,EAAE,CAAC;YACpE,CAAC;YAED,kBAAkB,CAAC,0BAA0B,CAAC;gBAC5C,OAAO,EAAe,YAAY;gBAClC,mBAAmB,EAAG,wBAAwB;gBAC9C,WAAW;gBACX,KAAK;gBACL,IAAI;gBACJ,KAAK;gBACL,aAAa;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,eAAe,CAAC,OAAwB,EAAE,mBAA2B,EAAE,IAA8B;QAClH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAK,CAAC;QAC1B,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,iCAAiC,EAC9C,iBAAiB,GAAG,uBAAuB,mBAAmB,uCAAuC,CACtG,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,iCAAiC,EAC9C,iBAAiB,MAAM,CAAC,KAAK,uBAAuB,mBAAmB,qCAAqC,CAC7G,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAU,CAAC;QACnK,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC5C,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,6CAA6C,EAC1D,iCAAiC,mBAAmB,oBAAoB,SAAS,KAAK;oBACtF,+EAA+E,CAChF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,8BAA8B,CAAC,QAAgB,EAAE,mBAA2B,EAAE,UAA8B;QACzH,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,oCAAoC,CAAC,mBAAmB,CAAC,CAAC;QAExG,IAAI,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;YACzE,MAAM,IAAI,QAAQ,CAChB,YAAY,CAAC,gDAAgD,EAC7D,SAAS,QAAQ,eAAe,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,sBAAsB,mBAAmB,IAAI;gBACvG,kEAAkE,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,oCAAoC,CAAC,YAAoB;QACtE,IAAI,YAAY,KAAK,EAAE,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,YAAY;aAChB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAU,EAAE,CAAC,WAAW,KAAK,EAAE,CAAC;aACpD,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,0BAA0B,CACvC,GAAW,EAAE,IAA8B,EAAE,mBAA2B,EAAE,SAAiB;QAE3F,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAE1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,iFAAiF;YACjF,MAAM,SAAS,GAAG,SAAS,KAAK,MAAM;gBACpC,CAAC,CAAC,YAAY,CAAC,0CAA0C;gBACzD,CAAC,CAAC,YAAY,CAAC,wCAAwC,CAAC;YAE1D,MAAM,IAAI,QAAQ,CAChB,SAAS,EACT,mBAAmB,SAAS,gBAAgB,GAAG,uBAAuB,mBAAmB,IAAI;gBAC7F,qDAAqD,CACtD,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,SAAS,KAAK,MAAM;gBACpC,CAAC,CAAC,YAAY,CAAC,0CAA0C;gBACzD,CAAC,CAAC,YAAY,CAAC,wCAAwC,CAAC;YAE1D,MAAM,IAAI,QAAQ,CAChB,SAAS,EACT,mBAAmB,SAAS,YAAY,MAAM,CAAC,KAAK,SAAS,GAAG,uBAAuB,mBAAmB,IAAI;gBAC9G,mCAAmC,CACpC,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,UAA8B;QAC/D,iEAAiE;QACjE,MAAM,SAAS,GAAgC,EAAE,CAAC;QAClD,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACxC,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1D,CAAC;QAED,uBAAuB;QACvB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YAC1C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,2FAA2F;QAC3F,IAAI,QAAoC,CAAC;QACzC,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,GAAG,EAAE,CAAC;YACd,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,QAAQ,CAAC,KAAK,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjE,CAAC;gBAAC,MAAM,CAAC;oBACP,QAAQ,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,GAAG,UAAU;YACb,QAAQ,EAAG,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC;YACpD,KAAK,EAAM,SAAS;YACpB,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SAClD,CAAC;IACJ,CAAC"}
1
+ {"version":3,"file":"protocols-configure.js","sourceRoot":"","sources":["../../../../src/interfaces/protocols-configure.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export class RecordsCount extends AbstractMessage {
18
18
  signaturePayload = await Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
19
19
  }
20
20
  await Records.validateDelegatedGrantReferentialIntegrity(message, signaturePayload);
21
- Records.validateNestedProtocolPathQueryScope(message.descriptor.filter, DwnErrorCode.RecordsCountNestedProtocolPathContextIdInvalid, 'RecordsCount');
21
+ Records.validateNestedProtocolPathScope(message.descriptor.filter, DwnErrorCode.RecordsCountNestedProtocolPathContextIdInvalid, 'RecordsCount');
22
22
  if (signaturePayload?.protocolRole !== undefined) {
23
23
  if (message.descriptor.filter.protocolPath === undefined) {
24
24
  throw new DwnError(DwnErrorCode.RecordsCountFilterMissingRequiredProperties, 'Role-authorized counts must include `protocolPath` in the filter');
@@ -1 +1 @@
1
- {"version":3,"file":"records-count.js","sourceRoot":"","sources":["../../../../src/interfaces/records-count.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records-count.js","sourceRoot":"","sources":["../../../../src/interfaces/records-count.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export class RecordsQuery extends AbstractMessage {
24
24
  signaturePayload = await Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
25
25
  }
26
26
  await Records.validateDelegatedGrantReferentialIntegrity(message, signaturePayload);
27
- Records.validateNestedProtocolPathQueryScope(message.descriptor.filter, DwnErrorCode.RecordsQueryNestedProtocolPathContextIdInvalid, 'RecordsQuery');
27
+ Records.validateNestedProtocolPathScope(message.descriptor.filter, DwnErrorCode.RecordsQueryNestedProtocolPathContextIdInvalid, 'RecordsQuery');
28
28
  if (signaturePayload?.protocolRole !== undefined) {
29
29
  if (message.descriptor.filter.protocolPath === undefined) {
30
30
  throw new DwnError(DwnErrorCode.RecordsQueryFilterMissingRequiredProperties, 'Role-authorized queries must include `protocolPath` in the filter');
@@ -1 +1 @@
1
- {"version":3,"file":"records-query.js","sourceRoot":"","sources":["../../../../src/interfaces/records-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records-query.js","sourceRoot":"","sources":["../../../../src/interfaces/records-query.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,9 @@ export class RecordsSubscribe extends AbstractMessage {
18
18
  signaturePayload = await Message.validateSignatureStructure(message.authorization.signature, message.descriptor);
19
19
  }
20
20
  await Records.validateDelegatedGrantReferentialIntegrity(message, signaturePayload);
21
- Records.validateNestedProtocolPathQueryScope(message.descriptor.filter, DwnErrorCode.RecordsSubscribeNestedProtocolPathContextIdInvalid, 'RecordsSubscribe');
21
+ Records.validateNestedProtocolPathScope(message.descriptor.filter, DwnErrorCode.RecordsSubscribeNestedProtocolPathContextIdInvalid, 'RecordsSubscribe', message.descriptor.cursor === undefined
22
+ && message.descriptor.pagination?.limit !== undefined
23
+ && !signaturePayload?.protocolRole?.includes('/'));
22
24
  if (signaturePayload?.protocolRole !== undefined) {
23
25
  if (message.descriptor.filter.protocolPath === undefined) {
24
26
  throw new DwnError(DwnErrorCode.RecordsSubscribeFilterMissingRequiredProperties, 'Role-authorized subscriptions must include `protocolPath` in the filter');
@@ -1 +1 @@
1
- {"version":3,"file":"records-subscribe.js","sourceRoot":"","sources":["../../../../src/interfaces/records-subscribe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"records-subscribe.js","sourceRoot":"","sources":["../../../../src/interfaces/records-subscribe.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { isEmptyObject } from '@enbox/common';
2
2
  import { lexicographicalCompare } from '../utils/string.js';
3
3
  import { SortDirection } from '../types/query-types.js';
4
+ import { assertValidSubtreeFilters, FilterSelector, FilterUtility, isSubtreeFilter } from '../utils/filter.js';
4
5
  import { countWithCompoundIndex, createCompoundIndexDeleteOperation, createCompoundIndexPutOperation, queryWithCompoundIndex, selectCompoundIndex, } from './index-level-compound.js';
5
6
  import { createLevelDatabase, LevelWrapper } from './level-wrapper.js';
6
7
  import { DwnError, DwnErrorCode } from '../core/dwn-error.js';
7
- import { FilterSelector, FilterUtility } from '../utils/filter.js';
8
8
  const INDEX_SUBLEVEL_NAME = 'index';
9
9
  /**
10
10
  * A LevelDB implementation for indexing the messages and events stored in the DWN.
@@ -207,12 +207,11 @@ export class IndexLevel {
207
207
  * @returns {IndexedItem[]} an array of `IndexedItem` that match the given filters.
208
208
  */
209
209
  async query(tenant, filters, queryOptions, options) {
210
+ assertValidSubtreeFilters(filters);
210
211
  // Strategy 1: try compound index for single-filter queries
211
- if (filters.length === 1 && !isEmptyObject(filters[0])) {
212
- const compoundResult = selectCompoundIndex(filters[0], queryOptions, this._compoundIndexes);
213
- if (compoundResult !== undefined) {
214
- return queryWithCompoundIndex(this.db, tenant, filters[0], queryOptions, compoundResult, IndexLevel.encodeValue, IndexLevel.delimiter, this.queryWithIteratorPaging.bind(this), options);
215
- }
212
+ const compoundQuery = this.queryUsingCompoundIndex(tenant, filters, queryOptions, options);
213
+ if (compoundQuery !== undefined) {
214
+ return compoundQuery;
216
215
  }
217
216
  // Strategy 2: in-memory paging for concise filters
218
217
  if (IndexLevel.shouldQueryWithInMemoryPaging(filters, queryOptions)) {
@@ -221,6 +220,28 @@ export class IndexLevel {
221
220
  // Strategy 3: iterator paging (default)
222
221
  return this.queryWithIteratorPaging(tenant, filters, queryOptions, options);
223
222
  }
223
+ /**
224
+ * Queries one bounded page without selecting the in-memory strategy.
225
+ *
226
+ * Projection callers use this when they must close the outer iterator before
227
+ * opening related index ranges. A matching compound index is preferred;
228
+ * otherwise the requested-sort index is streamed directly.
229
+ */
230
+ async queryWithBoundedPaging(tenant, filters, queryOptions, options) {
231
+ assertValidSubtreeFilters(filters);
232
+ const compoundQuery = this.queryUsingCompoundIndex(tenant, filters, queryOptions, options);
233
+ return compoundQuery ?? this.queryWithIteratorPaging(tenant, filters, queryOptions, options);
234
+ }
235
+ queryUsingCompoundIndex(tenant, filters, queryOptions, options) {
236
+ if (filters.length !== 1 || isEmptyObject(filters[0])) {
237
+ return undefined;
238
+ }
239
+ const compoundIndex = selectCompoundIndex(filters[0], queryOptions, this._compoundIndexes);
240
+ if (compoundIndex === undefined) {
241
+ return undefined;
242
+ }
243
+ return queryWithCompoundIndex(this.db, tenant, filters[0], queryOptions, compoundIndex, IndexLevel.encodeValue, IndexLevel.delimiter, this.queryWithIteratorPaging.bind(this), options);
244
+ }
224
245
  /**
225
246
  * Counts the number of items that match the given filters without loading full records.
226
247
  *
@@ -228,6 +249,7 @@ export class IndexLevel {
228
249
  * Otherwise, falls back to counting via the existing query strategies.
229
250
  */
230
251
  async count(tenant, filters, queryOptions, options) {
252
+ assertValidSubtreeFilters(filters);
231
253
  // try compound index for single-filter queries
232
254
  if (filters.length === 1 && !isEmptyObject(filters[0])) {
233
255
  const compoundResult = selectCompoundIndex(filters[0], { ...queryOptions }, this._compoundIndexes);
@@ -239,6 +261,144 @@ export class IndexLevel {
239
261
  const results = await this.query(tenant, filters, { ...queryOptions }, options);
240
262
  return results.length;
241
263
  }
264
+ /**
265
+ * Finds the inclusive rank boundary for one `$recordLimit` parent group.
266
+ *
267
+ * The existing `parentId` index keeps the scan isolated to one nested-record
268
+ * group. Root records have no `parentId`, so they are read from the exact
269
+ * `protocolPath` range and explicitly fenced to rows without a parent. The
270
+ * bounded max-heap retains only the earliest `max` rank keys while the range
271
+ * is streamed; no group-sized array is materialized.
272
+ */
273
+ async findRecordLimitRankCutoff(tenant, candidateFilter, parentId, max, options) {
274
+ if (!Number.isInteger(max) || max < 1) {
275
+ throw new TypeError(`IndexLevel: record-limit max must be a positive integer.`);
276
+ }
277
+ const protocolPath = candidateFilter.protocolPath;
278
+ if (typeof protocolPath !== 'string') {
279
+ throw new TypeError(`IndexLevel: record-limit candidate filter must contain one protocolPath.`);
280
+ }
281
+ const indexName = parentId === undefined ? 'protocolPath' : 'parentId';
282
+ const indexValue = parentId ?? protocolPath;
283
+ const rankHeap = [];
284
+ for await (const item of this.iterateExactMatches(tenant, indexName, indexValue, options)) {
285
+ if ((parentId === undefined && item.indexes.parentId !== undefined) ||
286
+ !FilterUtility.matchFilter(item.indexes, candidateFilter)) {
287
+ continue;
288
+ }
289
+ IndexLevel.addToRecordLimitRankHeap(rankHeap, IndexLevel.createRecordLimitRankKey(item.indexes), max);
290
+ }
291
+ return rankHeap[0];
292
+ }
293
+ /**
294
+ * Queries the bounded occupants of explicitly selected direct-parent groups.
295
+ * Occupancy is resolved before caller filters, then the survivors are globally
296
+ * sorted and paginated using ordinary IndexLevel cursor semantics.
297
+ */
298
+ async queryRecordLimitParentGroups(tenant, input, options) {
299
+ assertValidSubtreeFilters([input.candidateFilter, ...input.filters]);
300
+ const { filters, queryOptions } = input;
301
+ const { cursor, limit, sortDirection = SortDirection.Ascending, sortProperty } = queryOptions;
302
+ if (limit !== undefined && limit <= 0) {
303
+ return [];
304
+ }
305
+ const cursorStartingKey = cursor === undefined ? undefined : this.createStartingKeyFromCursor(cursor);
306
+ const compareItems = (left, right) => this.sortItems(left, right, sortProperty, sortDirection);
307
+ const matches = [];
308
+ for await (const item of this.iterateRecordLimitParentGroupOccupants(tenant, input, options)) {
309
+ if (item.indexes[sortProperty] === undefined ||
310
+ !FilterUtility.matchAnyFilter(item.indexes, filters) ||
311
+ (cursorStartingKey !== undefined &&
312
+ !this.isItemAfterCursor(item, sortDirection, sortProperty, cursorStartingKey))) {
313
+ continue;
314
+ }
315
+ matches.push(item);
316
+ }
317
+ matches.sort(compareItems);
318
+ return limit === undefined ? matches : matches.slice(0, limit);
319
+ }
320
+ /** Counts the bounded occupants of explicitly selected direct-parent groups. */
321
+ async countRecordLimitParentGroups(tenant, input, options) {
322
+ assertValidSubtreeFilters([input.candidateFilter, ...input.filters]);
323
+ let count = 0;
324
+ for await (const item of this.iterateRecordLimitParentGroupOccupants(tenant, input, options)) {
325
+ if (item.indexes[input.sortProperty] !== undefined &&
326
+ FilterUtility.matchAnyFilter(item.indexes, input.filters)) {
327
+ count++;
328
+ }
329
+ }
330
+ return count;
331
+ }
332
+ /** Streams occupants from exact parentId ranges without opening the requested-sort index. */
333
+ async *iterateRecordLimitParentGroupOccupants(tenant, input, options) {
334
+ for (const parentId of new Set(input.parentIds)) {
335
+ const candidateFilter = { ...input.candidateFilter, parentId };
336
+ const cutoff = await this.findRecordLimitRankCutoff(tenant, candidateFilter, parentId, input.max, options);
337
+ if (cutoff === undefined) {
338
+ continue;
339
+ }
340
+ for await (const item of this.iterateExactMatches(tenant, 'parentId', parentId, options)) {
341
+ if (FilterUtility.matchFilter(item.indexes, candidateFilter) &&
342
+ lexicographicalCompare(IndexLevel.createRecordLimitRankKey(item.indexes), cutoff) <= 0) {
343
+ yield item;
344
+ }
345
+ }
346
+ }
347
+ }
348
+ /**
349
+ * Builds the deterministic `$recordLimit` rank key: oldest creation time,
350
+ * then record ID. Message CID deliberately does not participate because
351
+ * occupancy belongs to the logical record, not a particular update.
352
+ */
353
+ static createRecordLimitRankKey(indexes) {
354
+ const { dateCreated, recordId } = indexes;
355
+ if (typeof dateCreated !== 'string' || typeof recordId !== 'string') {
356
+ throw new TypeError(`IndexLevel: record-limit candidates require string dateCreated and recordId indexes.`);
357
+ }
358
+ return IndexLevel.keySegmentJoin(IndexLevel.encodeValue(dateCreated), IndexLevel.encodeValue(recordId));
359
+ }
360
+ static addToRecordLimitRankHeap(heap, value, max) {
361
+ if (heap.length < max) {
362
+ heap.push(value);
363
+ IndexLevel.siftRecordLimitRankHeapUp(heap, heap.length - 1);
364
+ return;
365
+ }
366
+ if (lexicographicalCompare(value, heap[0]) >= 0) {
367
+ return;
368
+ }
369
+ heap[0] = value;
370
+ IndexLevel.siftRecordLimitRankHeapDown(heap, 0);
371
+ }
372
+ static siftRecordLimitRankHeapUp(heap, startIndex) {
373
+ let index = startIndex;
374
+ while (index > 0) {
375
+ const parentIndex = (index - 1) >>> 1;
376
+ if (lexicographicalCompare(heap[parentIndex], heap[index]) >= 0) {
377
+ return;
378
+ }
379
+ [heap[parentIndex], heap[index]] = [heap[index], heap[parentIndex]];
380
+ index = parentIndex;
381
+ }
382
+ }
383
+ static siftRecordLimitRankHeapDown(heap, startIndex) {
384
+ let index = startIndex;
385
+ while (true) {
386
+ const leftIndex = index * 2 + 1;
387
+ if (leftIndex >= heap.length) {
388
+ return;
389
+ }
390
+ const rightIndex = leftIndex + 1;
391
+ const largerChildIndex = rightIndex < heap.length &&
392
+ lexicographicalCompare(heap[rightIndex], heap[leftIndex]) > 0
393
+ ? rightIndex
394
+ : leftIndex;
395
+ if (lexicographicalCompare(heap[index], heap[largerChildIndex]) >= 0) {
396
+ return;
397
+ }
398
+ [heap[index], heap[largerChildIndex]] = [heap[largerChildIndex], heap[index]];
399
+ index = largerChildIndex;
400
+ }
401
+ }
242
402
  /**
243
403
  * Queries the sort property index for items that match the filters. If no filters are provided, all items are returned.
244
404
  * This query is a linear iterator over the sorted index, checking each item for a match.
@@ -416,6 +576,12 @@ export class IndexLevel {
416
576
  processResults(exactMatches);
417
577
  }
418
578
  }
579
+ else if (isSubtreeFilter(propertyFilter)) {
580
+ const exactMatches = await this.filterExactMatches(tenant, propertyName, propertyFilter.subtree, levelOptions);
581
+ processResults(exactMatches);
582
+ const descendantMatches = await this.filterSubtreeDescendantMatches(tenant, propertyName, propertyFilter.subtree, levelOptions);
583
+ processResults(descendantMatches);
584
+ }
419
585
  else if (FilterUtility.isRangeFilter(propertyFilter)) {
420
586
  // `propertyFilter` is a `RangeFilter`
421
587
  const rangeMatches = await this.filterRangeMatches(tenant, propertyName, propertyFilter, levelOptions);
@@ -435,17 +601,40 @@ export class IndexLevel {
435
601
  * Returns items that match the exact property and value.
436
602
  */
437
603
  async filterExactMatches(tenant, propertyName, propertyValue, options) {
604
+ const matches = [];
605
+ for await (const item of this.iterateExactMatches(tenant, propertyName, propertyValue, options)) {
606
+ matches.push(item);
607
+ }
608
+ return matches;
609
+ }
610
+ /** Streams one exact property-value range without materializing the range. */
611
+ async *iterateExactMatches(tenant, propertyName, propertyValue, options) {
438
612
  const matchPrefix = IndexLevel.keySegmentJoin(IndexLevel.encodeValue(propertyValue));
613
+ const filterPartition = await this.getIndexPartition(tenant, propertyName);
614
+ for await (const [key, value] of filterPartition.iterator({ gt: matchPrefix }, options)) {
615
+ if (!key.startsWith(matchPrefix)) {
616
+ return;
617
+ }
618
+ yield JSON.parse(value);
619
+ }
620
+ }
621
+ /**
622
+ * Returns every slash-delimited descendant of one hierarchical path.
623
+ *
624
+ * The lower bound removes JSON's closing quote so it is the encoded key
625
+ * prefix itself. ASCII `/` and `0` are adjacent in the store's lexicographic
626
+ * ordering, making `path0` the first value outside that prefix without
627
+ * relying on a finite Unicode sentinel.
628
+ */
629
+ async filterSubtreeDescendantMatches(tenant, propertyName, subtree, options) {
630
+ const encodedPrefix = IndexLevel.encodeValue(`${subtree}/`).slice(0, -1);
439
631
  const iteratorOptions = {
440
- gt: matchPrefix
632
+ gte: encodedPrefix,
633
+ lt: IndexLevel.encodeValue(`${subtree}0`),
441
634
  };
442
635
  const filterPartition = await this.getIndexPartition(tenant, propertyName);
443
636
  const matches = [];
444
- for await (const [key, value] of filterPartition.iterator(iteratorOptions, options)) {
445
- // immediately stop if we arrive at an index that contains a different property value
446
- if (!key.startsWith(matchPrefix)) {
447
- break;
448
- }
637
+ for await (const [_key, value] of filterPartition.iterator(iteratorOptions, options)) {
449
638
  matches.push(JSON.parse(value));
450
639
  }
451
640
  return matches;
@@ -509,20 +698,12 @@ export class IndexLevel {
509
698
  * Since the array is already sorted, binary search provides O(log n) performance instead of O(n).
510
699
  */
511
700
  findCursorStartingIndex(items, sortDirection, sortProperty, cursorStartingKey) {
512
- const isAfterCursor = (item) => {
513
- const { messageCid, indexes } = item;
514
- const sortValue = indexes[sortProperty];
515
- const itemCompareValue = IndexLevel.keySegmentJoin(IndexLevel.encodeValue(sortValue), messageCid);
516
- return sortDirection === SortDirection.Ascending ?
517
- itemCompareValue > cursorStartingKey :
518
- itemCompareValue < cursorStartingKey;
519
- };
520
701
  // binary search for the first item after the cursor
521
702
  let low = 0;
522
703
  let high = items.length;
523
704
  while (low < high) {
524
705
  const mid = (low + high) >>> 1;
525
- if (isAfterCursor(items[mid])) {
706
+ if (this.isItemAfterCursor(items[mid], sortDirection, sortProperty, cursorStartingKey)) {
526
707
  high = mid;
527
708
  }
528
709
  else {
@@ -531,6 +712,14 @@ export class IndexLevel {
531
712
  }
532
713
  return low < items.length ? low : -1;
533
714
  }
715
+ isItemAfterCursor(item, sortDirection, sortProperty, cursorStartingKey) {
716
+ const { messageCid, indexes } = item;
717
+ const sortValue = indexes[sortProperty];
718
+ const itemCompareValue = IndexLevel.keySegmentJoin(IndexLevel.encodeValue(sortValue), messageCid);
719
+ return sortDirection === SortDirection.Ascending ?
720
+ itemCompareValue > cursorStartingKey :
721
+ itemCompareValue < cursorStartingKey;
722
+ }
534
723
  /**
535
724
  * Gets the indexes given an messageCid. This is a reverse lookup to construct starting keys, as well as deleting indexed items.
536
725
  */