flowquery 1.0.85 → 1.0.87

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 (145) hide show
  1. package/README.md +101 -0
  2. package/dist/compute/flowquery.d.ts +18 -0
  3. package/dist/compute/flowquery.d.ts.map +1 -1
  4. package/dist/compute/flowquery.js +26 -0
  5. package/dist/compute/flowquery.js.map +1 -1
  6. package/dist/compute/runner.d.ts +29 -0
  7. package/dist/compute/runner.d.ts.map +1 -1
  8. package/dist/compute/runner.js +111 -3
  9. package/dist/compute/runner.js.map +1 -1
  10. package/dist/extensibility.d.ts +4 -1
  11. package/dist/extensibility.d.ts.map +1 -1
  12. package/dist/extensibility.js +14 -1
  13. package/dist/extensibility.js.map +1 -1
  14. package/dist/flowquery.min.js +1 -1
  15. package/dist/graph/data.d.ts +1 -0
  16. package/dist/graph/data.d.ts.map +1 -1
  17. package/dist/graph/data.js +3 -0
  18. package/dist/graph/data.js.map +1 -1
  19. package/dist/graph/data_cache.d.ts +3 -1
  20. package/dist/graph/data_cache.d.ts.map +1 -1
  21. package/dist/graph/data_cache.js +5 -4
  22. package/dist/graph/data_cache.js.map +1 -1
  23. package/dist/graph/data_resolver.d.ts +13 -0
  24. package/dist/graph/data_resolver.d.ts.map +1 -1
  25. package/dist/graph/data_resolver.js +52 -0
  26. package/dist/graph/data_resolver.js.map +1 -1
  27. package/dist/graph/database.d.ts +19 -0
  28. package/dist/graph/database.d.ts.map +1 -1
  29. package/dist/graph/database.js +76 -0
  30. package/dist/graph/database.js.map +1 -1
  31. package/dist/graph/node.d.ts +21 -0
  32. package/dist/graph/node.d.ts.map +1 -1
  33. package/dist/graph/node.js +147 -0
  34. package/dist/graph/node.js.map +1 -1
  35. package/dist/graph/pattern.d.ts +19 -1
  36. package/dist/graph/pattern.d.ts.map +1 -1
  37. package/dist/graph/pattern.js +279 -1
  38. package/dist/graph/pattern.js.map +1 -1
  39. package/dist/graph/pattern_expression.d.ts +3 -1
  40. package/dist/graph/pattern_expression.d.ts.map +1 -1
  41. package/dist/graph/pattern_expression.js +8 -3
  42. package/dist/graph/pattern_expression.js.map +1 -1
  43. package/dist/graph/patterns.d.ts +2 -1
  44. package/dist/graph/patterns.d.ts.map +1 -1
  45. package/dist/graph/patterns.js +3 -3
  46. package/dist/graph/patterns.js.map +1 -1
  47. package/dist/graph/physical_node.d.ts +10 -1
  48. package/dist/graph/physical_node.d.ts.map +1 -1
  49. package/dist/graph/physical_node.js +19 -2
  50. package/dist/graph/physical_node.js.map +1 -1
  51. package/dist/graph/physical_relationship.d.ts +10 -1
  52. package/dist/graph/physical_relationship.d.ts.map +1 -1
  53. package/dist/graph/physical_relationship.js +21 -2
  54. package/dist/graph/physical_relationship.js.map +1 -1
  55. package/dist/graph/relationship.d.ts +25 -1
  56. package/dist/graph/relationship.d.ts.map +1 -1
  57. package/dist/graph/relationship.js +135 -0
  58. package/dist/graph/relationship.js.map +1 -1
  59. package/dist/graph/relationship_match_collector.d.ts +1 -1
  60. package/dist/graph/relationship_match_collector.d.ts.map +1 -1
  61. package/dist/graph/relationship_match_collector.js +29 -3
  62. package/dist/graph/relationship_match_collector.js.map +1 -1
  63. package/dist/graph/relationship_reference.d.ts.map +1 -1
  64. package/dist/graph/relationship_reference.js +1 -2
  65. package/dist/graph/relationship_reference.js.map +1 -1
  66. package/dist/graph/source_access.d.ts +107 -0
  67. package/dist/graph/source_access.d.ts.map +1 -0
  68. package/dist/graph/source_access.js +726 -0
  69. package/dist/graph/source_access.js.map +1 -0
  70. package/dist/graph/source_context.d.ts +101 -0
  71. package/dist/graph/source_context.d.ts.map +1 -0
  72. package/dist/graph/source_context.js +392 -0
  73. package/dist/graph/source_context.js.map +1 -0
  74. package/dist/graph/source_provider.d.ts +263 -0
  75. package/dist/graph/source_provider.d.ts.map +1 -0
  76. package/dist/graph/source_provider.js +306 -0
  77. package/dist/graph/source_provider.js.map +1 -0
  78. package/dist/graph/statement_source.d.ts +27 -0
  79. package/dist/graph/statement_source.d.ts.map +1 -0
  80. package/dist/graph/statement_source.js +117 -0
  81. package/dist/graph/statement_source.js.map +1 -0
  82. package/dist/graph/virtual_statement.d.ts +19 -1
  83. package/dist/graph/virtual_statement.d.ts.map +1 -1
  84. package/dist/graph/virtual_statement.js +197 -5
  85. package/dist/graph/virtual_statement.js.map +1 -1
  86. package/dist/index.browser.d.ts +3 -0
  87. package/dist/index.browser.d.ts.map +1 -1
  88. package/dist/index.browser.js +14 -0
  89. package/dist/index.browser.js.map +1 -1
  90. package/dist/index.node.d.ts +3 -0
  91. package/dist/index.node.d.ts.map +1 -1
  92. package/dist/index.node.js +14 -1
  93. package/dist/index.node.js.map +1 -1
  94. package/dist/parsing/expressions/expression.d.ts +6 -0
  95. package/dist/parsing/expressions/expression.d.ts.map +1 -1
  96. package/dist/parsing/expressions/expression.js +30 -3
  97. package/dist/parsing/expressions/expression.js.map +1 -1
  98. package/dist/parsing/operations/aggregated_return.d.ts +2 -0
  99. package/dist/parsing/operations/aggregated_return.d.ts.map +1 -1
  100. package/dist/parsing/operations/aggregated_return.js +6 -0
  101. package/dist/parsing/operations/aggregated_return.js.map +1 -1
  102. package/dist/parsing/operations/aggregated_with.d.ts +2 -0
  103. package/dist/parsing/operations/aggregated_with.d.ts.map +1 -1
  104. package/dist/parsing/operations/aggregated_with.js +6 -0
  105. package/dist/parsing/operations/aggregated_with.js.map +1 -1
  106. package/dist/parsing/operations/create_node.d.ts +5 -1
  107. package/dist/parsing/operations/create_node.d.ts.map +1 -1
  108. package/dist/parsing/operations/create_node.js +20 -1
  109. package/dist/parsing/operations/create_node.js.map +1 -1
  110. package/dist/parsing/operations/create_relationship.d.ts +5 -1
  111. package/dist/parsing/operations/create_relationship.d.ts.map +1 -1
  112. package/dist/parsing/operations/create_relationship.js +21 -1
  113. package/dist/parsing/operations/create_relationship.js.map +1 -1
  114. package/dist/parsing/operations/limit.d.ts +1 -0
  115. package/dist/parsing/operations/limit.d.ts.map +1 -1
  116. package/dist/parsing/operations/limit.js +3 -0
  117. package/dist/parsing/operations/limit.js.map +1 -1
  118. package/dist/parsing/operations/match.d.ts +16 -0
  119. package/dist/parsing/operations/match.d.ts.map +1 -1
  120. package/dist/parsing/operations/match.js +104 -8
  121. package/dist/parsing/operations/match.js.map +1 -1
  122. package/dist/parsing/operations/operation.d.ts +6 -0
  123. package/dist/parsing/operations/operation.d.ts.map +1 -1
  124. package/dist/parsing/operations/operation.js +8 -0
  125. package/dist/parsing/operations/operation.js.map +1 -1
  126. package/dist/parsing/operations/return.d.ts +10 -0
  127. package/dist/parsing/operations/return.d.ts.map +1 -1
  128. package/dist/parsing/operations/return.js +23 -0
  129. package/dist/parsing/operations/return.js.map +1 -1
  130. package/dist/parsing/operations/unwind.d.ts +1 -0
  131. package/dist/parsing/operations/unwind.d.ts.map +1 -1
  132. package/dist/parsing/operations/unwind.js +9 -2
  133. package/dist/parsing/operations/unwind.js.map +1 -1
  134. package/dist/parsing/operations/where.d.ts +1 -0
  135. package/dist/parsing/operations/where.d.ts.map +1 -1
  136. package/dist/parsing/operations/where.js +4 -0
  137. package/dist/parsing/operations/where.js.map +1 -1
  138. package/dist/parsing/operations/with.d.ts +1 -0
  139. package/dist/parsing/operations/with.d.ts.map +1 -1
  140. package/dist/parsing/operations/with.js +4 -0
  141. package/dist/parsing/operations/with.js.map +1 -1
  142. package/dist/parsing/parser.d.ts.map +1 -1
  143. package/dist/parsing/parser.js +20 -2
  144. package/dist/parsing/parser.js.map +1 -1
  145. package/package.json +1 -1
package/README.md CHANGED
@@ -935,6 +935,107 @@ MATCH (t:Todo) WHERE t.id = 3 RETURN t.title
935
935
 
936
936
  `$`-prefixed identifiers are **only** allowed inside virtual definitions. Non-equality operators in `WHERE` (`>`, `<`, `CONTAINS`, etc.) are **not** extracted as pass-down parameters. `OR` predicates are also not extracted.
937
937
 
938
+ #### Backend-Aware Virtual Sources
939
+
940
+ By default a virtual definition is loaded eagerly: its sub-query runs once per query and all rows are held in memory. For large or remote backends, a **source provider** lets FlowQuery read only what a pattern needs. This is opt-in: existing `CREATE VIRTUAL` definitions behave exactly as before.
941
+
942
+ A provider declares versioned capabilities and implements a required `scan` plus optional `lookup` (nodes by id) and `expand` (relationships by `left_id`/`right_id`):
943
+
944
+ ```typescript
945
+ import FlowQuery from "flowquery";
946
+ import { cursorPages, matchesPredicate } from "flowquery/extensibility";
947
+
948
+ FlowQuery.registerNodeSource("Person", {
949
+ capabilities: {
950
+ version: 1,
951
+ lookup: true, // implements lookup()
952
+ cacheable: true, // identical reads within one query may be cached
953
+ maxBatchSize: 50, // ids per lookup/expand request
954
+ predicates: { operators: ["eq", "in", "gt", "gte", "lt", "lte"] },
955
+ },
956
+ // Any SourceResult: an array, a promise of an array, or a (async) iterable of pages.
957
+ scan: (req, ctx) =>
958
+ cursorPages((cursor) => api.people({ filter: req.predicate, cursor, signal: ctx.signal })),
959
+ lookup: (req) => api.peopleByIds(req.ids),
960
+ });
961
+
962
+ FlowQuery.registerRelationshipSource("KNOWS", "Person", "Person", {
963
+ capabilities: { version: 1, expand: { left: true, right: true } },
964
+ scan: () => api.allKnows(),
965
+ expand: (req) => api.knows({ [req.side === "left" ? "from" : "to"]: req.ids }),
966
+ });
967
+
968
+ const fq = new FlowQuery("MATCH (a:Person {id: 7})-[:KNOWS]->(b:Person) RETURN b.name LIMIT 10");
969
+ await fq.run();
970
+ console.log(fq.sourceStats); // calls, pages, rows, cache hits, batches, plans...
971
+ ```
972
+
973
+ With these capabilities, the query above issues a `lookup` for id 7, one batched `expand` for its outgoing relationships and batched `lookup`s for the targets, instead of loading every person and relationship. What the engine does with a provider:
974
+
975
+ - **Correlated loading and batching.** Relationships are expanded per page of anchor nodes, and target nodes are fetched with batched lookups. Each request carries at most `min(sources.maxBatchSize, capabilities.maxBatchSize)` distinct ids.
976
+ - **Selective start points.** A chain such as `(a)-[:R]->(b)-[:R]->(c {id: 3})` may start from the more selective end (a bound reference, an id lookup or a pushable predicate). The decision is recorded in `sourceStats.plans`. This can change result order, which is never guaranteed without `ORDER BY`.
977
+ - **Predicate push-down.** Pattern property constraints and top-level `AND`-ed `WHERE` comparisons (`=`, `<`, `<=`, `>`, `>=`, `IN`) on a node's properties, compared against literals or parameters, are sent as `request.predicate` when the capabilities allow it. The legacy `$args` map is still sent as `request.args`.
978
+ - **Streaming and early termination.** Pages are consumed as they arrive. Once a `LIMIT` without `ORDER BY` or aggregation is satisfied, reading stops: the provider's iterator is closed and `ctx.signal` is aborted when the query ends.
979
+ - **Query-scoped caching.** Reads of `cacheable` sources are cached for the duration of one query only. The cache is bounded by `sources.cacheCapacity` rows.
980
+ - **Cancellation.** Call `runner.cancel()`, or pass `sources: { signal }`. In-flight reads are aborted and `run()` rejects with `QueryCancelledError`.
981
+ - **Read contexts.** An optional `openReadContext()`/`closeReadContext(snapshot)` pair is called once per query, which is useful for snapshots or transactions. The value is available as `ctx.snapshot`.
982
+
983
+ Providers may return a **superset**: FlowQuery always re-checks every row. Property constraints, anchor ids and the `WHERE` clause are evaluated as usual, so a provider may ignore predicates, ids or page sizes and still be correct. Predicates are never pushed for `null`, booleans, non-finite numbers, non-primitive `IN` items or into `OPTIONAL MATCH`. String ranges are pushed only when `stringOrdering: "binary"` is declared. `matchesPredicate(predicate, row)` is a reference implementation of these semantics for in-memory providers.
984
+
985
+ Errors are reported through typed exceptions:
986
+
987
+ - `SourceCapabilityError`: an invalid declaration, raised at registration.
988
+ - `SourceResponseError`: malformed pages or a repeated cursor.
989
+ - `SourceError`: any other provider failure, wrapped with the source name.
990
+
991
+ A provider may throw `SourceUnsupportedError` from `lookup`/`expand` to fall back to a scan.
992
+
993
+ Query-level tuning goes in `RunnerOptions.sources`. The defaults are:
994
+
995
+ - `pageSize: 256`
996
+ - `maxBatchSize: 100`
997
+ - `cacheCapacity: 10000`
998
+ - `maxPrefetchRows: 1024`
999
+ - `reorder: true`
1000
+
1001
+ **In-memory sources.** `inMemoryNodeSource(rows)` and `inMemoryRelationshipSource(rows)` are ready-made providers over arrays. They support lookup, expansion from both sides, every predicate operator and paging, which makes them handy for tests, examples and small reference data. Options are `{ cacheable?: boolean, maxBatchSize?: number }`.
1002
+
1003
+ ```typescript
1004
+ import { inMemoryNodeSource, inMemoryRelationshipSource } from "flowquery/extensibility";
1005
+
1006
+ FlowQuery.registerNodeSource(
1007
+ "Person",
1008
+ inMemoryNodeSource([
1009
+ { id: 1, name: "Ada" },
1010
+ { id: 2, name: "Bob" },
1011
+ ])
1012
+ );
1013
+ FlowQuery.registerRelationshipSource(
1014
+ "KNOWS",
1015
+ "Person",
1016
+ "Person",
1017
+ inMemoryRelationshipSource([{ left_id: 1, right_id: 2 }])
1018
+ );
1019
+ ```
1020
+
1021
+ **Statement-backed sources.** A `CREATE VIRTUAL` definition can opt into the same contract declaratively with a `WITH CAPABILITIES { ... }` clause between the pattern and `AS`. Each request then runs the sub-query with `$request` bound to the request: `operation`, `label`/`type`, `ids`, `side`, `predicate` and `pageSize`.
1022
+
1023
+ ```cypher
1024
+ CREATE VIRTUAL (:Ticket) WITH CAPABILITIES {lookup: true, streaming: true} AS {
1025
+ LOAD JSON FROM f"https://api.example.com/tickets?ids={join(coalesce($request.ids, []), ',')}" AS t
1026
+ RETURN t.id AS id, t.title AS title
1027
+ }
1028
+
1029
+ CREATE VIRTUAL (:Ticket)-[:BLOCKS]-(:Ticket)
1030
+ WITH CAPABILITIES {expand: {left: true}, maxBatchSize: 50, predicates: {operators: ['eq', 'in']}} AS {
1031
+ ...
1032
+ }
1033
+ ```
1034
+
1035
+ The map takes the same keys as the capabilities object; `version` defaults to the current contract version. Invalid capabilities reject the whole definition. With `streaming: true`, eligible sub-queries (no `ORDER BY` or aggregation in the final `RETURN`) hand rows over page by page. Redefining the label without `WITH CAPABILITIES`, or deleting it, restores eager loading.
1036
+
1037
+ The same opt-in is available programmatically with `FlowQuery.setNodeSourceCapabilities(label, capabilities)` and `FlowQuery.setRelationshipSourceCapabilities(type, sourceLabel, targetLabel, capabilities)`; pass `null` to opt out.
1038
+
938
1039
  ### Reserved Keywords as Identifiers
939
1040
 
940
1041
  Reserved words (`return`, `with`, `from`, `to`, etc.) can be used as:
@@ -1,3 +1,4 @@
1
+ import { NodeSourceCapabilities, NodeSourceProvider, RelationshipSourceCapabilities, RelationshipSourceProvider } from "../graph/source_provider";
1
2
  import Function from "../parsing/functions/function";
2
3
  import { FunctionMetadata } from "../parsing/functions/function_metadata";
3
4
  import Runner from "./runner";
@@ -38,6 +39,23 @@ declare class FlowQuery extends Runner {
38
39
  * Base Function class for creating custom plugin functions.
39
40
  */
40
41
  static Function: typeof Function;
42
+ /**
43
+ * Register a backend-aware node source for `label` (replacing any
44
+ * existing virtual definition). See `NodeSourceProvider`.
45
+ */
46
+ static registerNodeSource(label: string, provider: NodeSourceProvider): void;
47
+ /**
48
+ * Register a backend-aware relationship source for
49
+ * `(:sourceLabel)-[:type]->(:targetLabel)`. See `RelationshipSourceProvider`.
50
+ */
51
+ static registerRelationshipSource(type: string, sourceLabel: string | null, targetLabel: string | null, provider: RelationshipSourceProvider): void;
52
+ /**
53
+ * Opt a `CREATE VIRTUAL (:label) AS { ... }` definition into the source
54
+ * contract with explicit capabilities, or pass `null` to opt out.
55
+ */
56
+ static setNodeSourceCapabilities(label: string, capabilities: NodeSourceCapabilities | null): void;
57
+ /** Relationship counterpart of {@link FlowQuery.setNodeSourceCapabilities}. */
58
+ static setRelationshipSourceCapabilities(type: string, sourceLabel: string | null, targetLabel: string | null, capabilities: RelationshipSourceCapabilities | null): void;
41
59
  }
42
60
  export default FlowQuery;
43
61
  //# sourceMappingURL=flowquery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowquery.d.ts","sourceRoot":"","sources":["../../src/compute/flowquery.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,cAAM,SAAU,SAAQ,MAAM;IAC1B;;OAEG;IACH,MAAM,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACtB,KAAK,gBAAgB,EAAE,CAAC;IAEzB;;OAEG;IACH,MAAM,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;IAE3E;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO,QAAQ,CAAC;CACpC;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"flowquery.d.ts","sourceRoot":"","sources":["../../src/compute/flowquery.ts"],"names":[],"mappings":"AACA,OAAO,EACH,sBAAsB,EACtB,kBAAkB,EAClB,8BAA8B,EAC9B,0BAA0B,EAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,cAAM,SAAU,SAAQ,MAAM;IAC1B;;OAEG;IACH,MAAM,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE;QAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACtB,KAAK,gBAAgB,EAAE,CAAC;IAEzB;;OAEG;IACH,MAAM,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;IAE3E;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAEjC;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAI5E;;;OAGG;IACH,MAAM,CAAC,0BAA0B,CAC7B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,QAAQ,EAAE,0BAA0B,GACrC,IAAI;IAIP;;;OAGG;IACH,MAAM,CAAC,yBAAyB,CAC5B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,sBAAsB,GAAG,IAAI,GAC5C,IAAI;IAIP,+EAA+E;IAC/E,MAAM,CAAC,iCAAiC,CACpC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,YAAY,EAAE,8BAA8B,GAAG,IAAI,GACpD,IAAI;CAQV;AAED,eAAe,SAAS,CAAC"}
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const database_1 = __importDefault(require("../graph/database"));
6
7
  const runner_1 = __importDefault(require("./runner"));
7
8
  /**
8
9
  * FlowQuery is the public API surface for the FlowQuery library.
@@ -25,6 +26,31 @@ const runner_1 = __importDefault(require("./runner"));
25
26
  * ```
26
27
  */
27
28
  class FlowQuery extends runner_1.default {
29
+ /**
30
+ * Register a backend-aware node source for `label` (replacing any
31
+ * existing virtual definition). See `NodeSourceProvider`.
32
+ */
33
+ static registerNodeSource(label, provider) {
34
+ database_1.default.getInstance().registerNodeSource(label, provider);
35
+ }
36
+ /**
37
+ * Register a backend-aware relationship source for
38
+ * `(:sourceLabel)-[:type]->(:targetLabel)`. See `RelationshipSourceProvider`.
39
+ */
40
+ static registerRelationshipSource(type, sourceLabel, targetLabel, provider) {
41
+ database_1.default.getInstance().registerRelationshipSource(type, sourceLabel, targetLabel, provider);
42
+ }
43
+ /**
44
+ * Opt a `CREATE VIRTUAL (:label) AS { ... }` definition into the source
45
+ * contract with explicit capabilities, or pass `null` to opt out.
46
+ */
47
+ static setNodeSourceCapabilities(label, capabilities) {
48
+ database_1.default.getInstance().setNodeSourceCapabilities(label, capabilities);
49
+ }
50
+ /** Relationship counterpart of {@link FlowQuery.setNodeSourceCapabilities}. */
51
+ static setRelationshipSourceCapabilities(type, sourceLabel, targetLabel, capabilities) {
52
+ database_1.default.getInstance().setRelationshipSourceCapabilities(type, sourceLabel, targetLabel, capabilities);
53
+ }
28
54
  }
29
55
  exports.default = FlowQuery;
30
56
  //# sourceMappingURL=flowquery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowquery.js","sourceRoot":"","sources":["../../src/compute/flowquery.ts"],"names":[],"mappings":";;;;;AAEA,sDAA8B;AAE9B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,SAAU,SAAQ,gBAAM;CAmB7B;AAED,kBAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"flowquery.js","sourceRoot":"","sources":["../../src/compute/flowquery.ts"],"names":[],"mappings":";;;;;AAAA,iEAAyC;AASzC,sDAA8B;AAE9B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,SAAU,SAAQ,gBAAM;IAoB1B;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAa,EAAE,QAA4B;QACjE,kBAAQ,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,0BAA0B,CAC7B,IAAY,EACZ,WAA0B,EAC1B,WAA0B,EAC1B,QAAoC;QAEpC,kBAAQ,CAAC,WAAW,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChG,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,yBAAyB,CAC5B,KAAa,EACb,YAA2C;QAE3C,kBAAQ,CAAC,WAAW,EAAE,CAAC,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IAC1E,CAAC;IAED,+EAA+E;IAC/E,MAAM,CAAC,iCAAiC,CACpC,IAAY,EACZ,WAA0B,EAC1B,WAA0B,EAC1B,YAAmD;QAEnD,kBAAQ,CAAC,WAAW,EAAE,CAAC,iCAAiC,CACpD,IAAI,EACJ,WAAW,EACX,WAAW,EACX,YAAY,CACf,CAAC;IACN,CAAC;CACJ;AAED,kBAAe,SAAS,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { SourceOptions, SourceStats } from "../graph/source_context";
1
2
  import ASTNode from "../parsing/ast_node";
2
3
  import Operation from "../parsing/operations/operation";
3
4
  import { ColumnLineage, ColumnReference, StatementInfo } from "../parsing/statement_info_crawler";
@@ -104,6 +105,20 @@ export interface RunnerOptions {
104
105
  * overhead.
105
106
  */
106
107
  provenance?: boolean;
108
+ /**
109
+ * Tuning for backend-aware virtual sources registered with
110
+ * `registerNodeSource` / `registerRelationshipSource` or opted in with
111
+ * `setNodeSourceCapabilities` / `setRelationshipSourceCapabilities`
112
+ * (page size, batch size, cache capacity, start-point reordering and
113
+ * an external cancellation `signal`). Ignored by legacy definitions.
114
+ */
115
+ sources?: SourceOptions;
116
+ /**
117
+ * Additional named parameters. A `$name` reference resolves to
118
+ * `parameters[name]` when present, otherwise to `args[name]`.
119
+ * Statement-backed sources receive their request as `$request`.
120
+ */
121
+ parameters?: Record<string, any>;
107
122
  }
108
123
  /**
109
124
  * Metadata about the operations performed by a Runner execution.
@@ -149,6 +164,8 @@ declare class Runner {
149
164
  private _metadata;
150
165
  private _options;
151
166
  private _provenance;
167
+ private _sourceContext;
168
+ private _cancelRequested;
152
169
  /**
153
170
  * Creates a new Runner instance and parses the FlowQuery statement.
154
171
  *
@@ -173,6 +190,18 @@ declare class Runner {
173
190
  * @throws {Error} If an error occurs during execution
174
191
  */
175
192
  run(): Promise<void>;
193
+ /**
194
+ * Cancel a running (or not yet started) query. In-flight provider
195
+ * reads are aborted and the query rejects with `QueryCancelledError`.
196
+ */
197
+ cancel(): void;
198
+ /**
199
+ * Provider interaction counters of the last top-level run: calls,
200
+ * pages, rows, cache hits/misses, batches, materializations,
201
+ * fallbacks, cancellations, peak buffered rows and start-point plans.
202
+ */
203
+ get sourceStats(): SourceStats;
204
+ private static assignSourceContext;
176
205
  /**
177
206
  * Walks the terminal statement's operation chain and wires every
178
207
  * MATCH-bound `Node` / `Relationship` slot to the operation that
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/compute/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/compute/runner.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
36
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
37
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -17,6 +50,8 @@ const data_cache_1 = __importDefault(require("../graph/data_cache"));
17
50
  const data_resolver_1 = __importDefault(require("../graph/data_resolver"));
18
51
  const node_1 = __importDefault(require("../graph/node"));
19
52
  const relationship_1 = __importDefault(require("../graph/relationship"));
53
+ const source_context_1 = __importStar(require("../graph/source_context"));
54
+ const virtual_statement_1 = require("../graph/virtual_statement");
20
55
  const binding_reference_1 = __importDefault(require("../parsing/expressions/binding_reference"));
21
56
  const parameter_reference_1 = __importDefault(require("../parsing/expressions/parameter_reference"));
22
57
  const aggregated_with_1 = __importDefault(require("../parsing/operations/aggregated_with"));
@@ -62,6 +97,8 @@ class Runner {
62
97
  constructor(statement = null, ast = null, args = null, options = {}) {
63
98
  this._args = null;
64
99
  this._provenance = null;
100
+ this._sourceContext = null;
101
+ this._cancelRequested = false;
65
102
  if ((statement === null || statement === "") && ast === null) {
66
103
  throw new Error("Either statement or AST must be provided");
67
104
  }
@@ -122,15 +159,35 @@ class Runner {
122
159
  run() {
123
160
  return __awaiter(this, void 0, void 0, function* () {
124
161
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
162
+ var _a, _b, _c, _d, _e;
163
+ const resolver = data_resolver_1.default.getInstance();
164
+ const inherited = this._options[virtual_statement_1.INNER_SOURCE_CONTEXT];
165
+ const previousContext = resolver.sourceContext;
166
+ const sink = this._options.rowSink;
167
+ const last = (_a = this._statements[this._statements.length - 1]) === null || _a === void 0 ? void 0 : _a.last;
168
+ let failed = false;
125
169
  try {
126
170
  if (this._isTopLevel) {
127
- data_resolver_1.default.getInstance().dataCache = new data_cache_1.default(this._options.provenance === true);
171
+ this._sourceContext = new source_context_1.default((_b = this._options.sources) !== null && _b !== void 0 ? _b : {}, this._options.provenance === true);
172
+ resolver.dataCache = new data_cache_1.default(this._options.provenance === true, this._sourceContext);
173
+ }
174
+ else {
175
+ this._sourceContext = (_c = inherited !== null && inherited !== void 0 ? inherited : previousContext) !== null && _c !== void 0 ? _c : null;
128
176
  }
177
+ if (this._cancelRequested) {
178
+ (_d = this._sourceContext) === null || _d === void 0 ? void 0 : _d.cancel();
179
+ }
180
+ resolver.sourceContext = this._sourceContext;
129
181
  if (this._options.provenance) {
130
182
  this._provenance = [];
131
183
  this.enableProvenance();
132
184
  }
185
+ if (sink !== undefined && last instanceof return_1.default) {
186
+ last.setRowSink(sink);
187
+ }
133
188
  for (const stmt of this._statements) {
189
+ (_e = this._sourceContext) === null || _e === void 0 ? void 0 : _e.throwIfCancelled();
190
+ Runner.assignSourceContext(stmt.ast, this._sourceContext);
134
191
  this.bindParameters(stmt.ast);
135
192
  // Refresh any stale refreshable bindings referenced
136
193
  // by this statement. Sub-query evaluation is
@@ -147,14 +204,61 @@ class Runner {
147
204
  yield stmt.first.run();
148
205
  yield stmt.first.finish();
149
206
  }
150
- resolve();
151
207
  }
152
208
  catch (e) {
209
+ failed = true;
153
210
  reject(e);
154
211
  }
212
+ finally {
213
+ if (sink !== undefined && last instanceof return_1.default) {
214
+ last.setRowSink(null);
215
+ }
216
+ resolver.sourceContext = previousContext;
217
+ if (this._isTopLevel && this._sourceContext !== null) {
218
+ try {
219
+ yield this._sourceContext.close();
220
+ }
221
+ catch (e) {
222
+ if (!failed) {
223
+ failed = true;
224
+ reject(e);
225
+ }
226
+ }
227
+ }
228
+ }
229
+ if (!failed)
230
+ resolve();
155
231
  }));
156
232
  });
157
233
  }
234
+ /**
235
+ * Cancel a running (or not yet started) query. In-flight provider
236
+ * reads are aborted and the query rejects with `QueryCancelledError`.
237
+ */
238
+ cancel() {
239
+ var _a;
240
+ this._cancelRequested = true;
241
+ if (this._isTopLevel) {
242
+ (_a = this._sourceContext) === null || _a === void 0 ? void 0 : _a.cancel();
243
+ }
244
+ }
245
+ /**
246
+ * Provider interaction counters of the last top-level run: calls,
247
+ * pages, rows, cache hits/misses, batches, materializations,
248
+ * fallbacks, cancellations, peak buffered rows and start-point plans.
249
+ */
250
+ get sourceStats() {
251
+ var _a, _b;
252
+ return (_b = (_a = this._sourceContext) === null || _a === void 0 ? void 0 : _a.stats) !== null && _b !== void 0 ? _b : (0, source_context_1.emptySourceStats)();
253
+ }
254
+ static assignSourceContext(node, ctx) {
255
+ if (node instanceof match_1.default) {
256
+ node.sourceContext = ctx;
257
+ }
258
+ for (const child of node.getChildren()) {
259
+ Runner.assignSourceContext(child, ctx);
260
+ }
261
+ }
158
262
  /**
159
263
  * Walks the terminal statement's operation chain and wires every
160
264
  * MATCH-bound `Node` / `Relationship` slot to the operation that
@@ -280,8 +384,12 @@ class Runner {
280
384
  var _a;
281
385
  if (node instanceof parameter_reference_1.default) {
282
386
  const args = (_a = this._args) !== null && _a !== void 0 ? _a : {};
387
+ const parameters = this._options.parameters;
283
388
  const key = node.name.startsWith("$") ? node.name.substring(1) : node.name;
284
- if (key === "args") {
389
+ if (parameters !== undefined && key in parameters) {
390
+ node.parameterValue = parameters[key];
391
+ }
392
+ else if (key === "args") {
285
393
  node.parameterValue = args;
286
394
  }
287
395
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/compute/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/compute/runner.ts"],"names":[],"mappings":"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"}
@@ -31,5 +31,8 @@ export { default as AggregateFunction } from "./parsing/functions/aggregate_func
31
31
  export { default as AsyncFunction } from "./parsing/functions/async_function";
32
32
  export { default as PredicateFunction } from "./parsing/functions/predicate_function";
33
33
  export { default as ReducerElement } from "./parsing/functions/reducer_element";
34
- export { FunctionDef, FunctionMetadata, FunctionDefOptions, ParameterSchema, OutputSchema, FunctionCategory } from "./parsing/functions/function_metadata";
34
+ export { FunctionDef, FunctionMetadata, FunctionDefOptions, ParameterSchema, OutputSchema, FunctionCategory, } from "./parsing/functions/function_metadata";
35
+ export { SOURCE_CONTRACT_VERSION, PREDICATE_OPERATORS, SourceError, SourceCapabilityError, SourceResponseError, SourceUnsupportedError, QueryCancelledError, cursorPages, matchesPredicate, inMemoryNodeSource, inMemoryRelationshipSource, } from "./graph/source_provider";
36
+ export type { SourceRow, InMemorySourceOptions, PredicateOperator, SourcePredicate, PredicateCapabilities, NodeSourceCapabilities, RelationshipSourceCapabilities, NodeScanRequest, NodeLookupRequest, RelationshipScanRequest, RelationshipExpandRequest, NodeSourceRequest, RelationshipSourceRequest, SourceReadContext, SourceResult, NodeSourceProvider, RelationshipSourceProvider, } from "./graph/source_provider";
37
+ export type { SourceOptions, SourceStats, SourcePlan } from "./graph/source_context";
35
38
  //# sourceMappingURL=extensibility.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensibility.d.ts","sourceRoot":"","sources":["../src/extensibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAGhF,OAAO,EACH,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,gBAAgB,EACnB,MAAM,uCAAuC,CAAC"}
1
+ {"version":3,"file":"extensibility.d.ts","sourceRoot":"","sources":["../src/extensibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAGhF,OAAO,EACH,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,gBAAgB,GACnB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EACH,uBAAuB,EACvB,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACR,SAAS,EACT,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,8BAA8B,EAC9B,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
@@ -31,7 +31,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  return (mod && mod.__esModule) ? mod : { "default": mod };
32
32
  };
33
33
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.FunctionDef = exports.ReducerElement = exports.PredicateFunction = exports.AsyncFunction = exports.AggregateFunction = exports.Function = void 0;
34
+ exports.inMemoryRelationshipSource = exports.inMemoryNodeSource = exports.matchesPredicate = exports.cursorPages = exports.QueryCancelledError = exports.SourceUnsupportedError = exports.SourceResponseError = exports.SourceCapabilityError = exports.SourceError = exports.PREDICATE_OPERATORS = exports.SOURCE_CONTRACT_VERSION = exports.FunctionDef = exports.ReducerElement = exports.PredicateFunction = exports.AsyncFunction = exports.AggregateFunction = exports.Function = void 0;
35
35
  // Base function classes for creating custom functions
36
36
  var function_1 = require("./parsing/functions/function");
37
37
  Object.defineProperty(exports, "Function", { enumerable: true, get: function () { return __importDefault(function_1).default; } });
@@ -46,4 +46,17 @@ Object.defineProperty(exports, "ReducerElement", { enumerable: true, get: functi
46
46
  // Decorator and metadata types for function registration
47
47
  var function_metadata_1 = require("./parsing/functions/function_metadata");
48
48
  Object.defineProperty(exports, "FunctionDef", { enumerable: true, get: function () { return function_metadata_1.FunctionDef; } });
49
+ // Backend-aware virtual source contract
50
+ var source_provider_1 = require("./graph/source_provider");
51
+ Object.defineProperty(exports, "SOURCE_CONTRACT_VERSION", { enumerable: true, get: function () { return source_provider_1.SOURCE_CONTRACT_VERSION; } });
52
+ Object.defineProperty(exports, "PREDICATE_OPERATORS", { enumerable: true, get: function () { return source_provider_1.PREDICATE_OPERATORS; } });
53
+ Object.defineProperty(exports, "SourceError", { enumerable: true, get: function () { return source_provider_1.SourceError; } });
54
+ Object.defineProperty(exports, "SourceCapabilityError", { enumerable: true, get: function () { return source_provider_1.SourceCapabilityError; } });
55
+ Object.defineProperty(exports, "SourceResponseError", { enumerable: true, get: function () { return source_provider_1.SourceResponseError; } });
56
+ Object.defineProperty(exports, "SourceUnsupportedError", { enumerable: true, get: function () { return source_provider_1.SourceUnsupportedError; } });
57
+ Object.defineProperty(exports, "QueryCancelledError", { enumerable: true, get: function () { return source_provider_1.QueryCancelledError; } });
58
+ Object.defineProperty(exports, "cursorPages", { enumerable: true, get: function () { return source_provider_1.cursorPages; } });
59
+ Object.defineProperty(exports, "matchesPredicate", { enumerable: true, get: function () { return source_provider_1.matchesPredicate; } });
60
+ Object.defineProperty(exports, "inMemoryNodeSource", { enumerable: true, get: function () { return source_provider_1.inMemoryNodeSource; } });
61
+ Object.defineProperty(exports, "inMemoryRelationshipSource", { enumerable: true, get: function () { return source_provider_1.inMemoryRelationshipSource; } });
49
62
  //# sourceMappingURL=extensibility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensibility.js","sourceRoot":"","sources":["../src/extensibility.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;;;;AAEH,sDAAsD;AACtD,yDAAmE;AAA1D,qHAAA,OAAO,OAAY;AAC5B,6EAAsF;AAA7E,wIAAA,OAAO,OAAqB;AACrC,qEAA8E;AAArE,gIAAA,OAAO,OAAiB;AACjC,6EAAsF;AAA7E,wIAAA,OAAO,OAAqB;AACrC,uEAAgF;AAAvE,kIAAA,OAAO,OAAkB;AAElC,yDAAyD;AACzD,2EAO+C;AAN3C,gHAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"extensibility.js","sourceRoot":"","sources":["../src/extensibility.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;;;;AAEH,sDAAsD;AACtD,yDAAmE;AAA1D,qHAAA,OAAO,OAAY;AAC5B,6EAAsF;AAA7E,wIAAA,OAAO,OAAqB;AACrC,qEAA8E;AAArE,gIAAA,OAAO,OAAiB;AACjC,6EAAsF;AAA7E,wIAAA,OAAO,OAAqB;AACrC,uEAAgF;AAAvE,kIAAA,OAAO,OAAkB;AAElC,yDAAyD;AACzD,2EAO+C;AAN3C,gHAAA,WAAW,OAAA;AAQf,wCAAwC;AACxC,2DAYiC;AAX7B,0HAAA,uBAAuB,OAAA;AACvB,sHAAA,mBAAmB,OAAA;AACnB,8GAAA,WAAW,OAAA;AACX,wHAAA,qBAAqB,OAAA;AACrB,sHAAA,mBAAmB,OAAA;AACnB,yHAAA,sBAAsB,OAAA;AACtB,sHAAA,mBAAmB,OAAA;AACnB,8GAAA,WAAW,OAAA;AACX,mHAAA,gBAAgB,OAAA;AAChB,qHAAA,kBAAkB,OAAA;AAClB,6HAAA,0BAA0B,OAAA"}