flowquery 1.0.34 → 1.0.36

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 (197) hide show
  1. package/dist/flowquery.min.js +1 -1
  2. package/dist/graph/database.d.ts +1 -0
  3. package/dist/graph/database.d.ts.map +1 -1
  4. package/dist/graph/database.js +43 -6
  5. package/dist/graph/database.js.map +1 -1
  6. package/dist/graph/relationship.d.ts +3 -1
  7. package/dist/graph/relationship.d.ts.map +1 -1
  8. package/dist/graph/relationship.js +12 -4
  9. package/dist/graph/relationship.js.map +1 -1
  10. package/dist/graph/relationship_data.js +1 -1
  11. package/dist/graph/relationship_data.js.map +1 -1
  12. package/dist/graph/relationship_match_collector.d.ts.map +1 -1
  13. package/dist/graph/relationship_match_collector.js +6 -3
  14. package/dist/graph/relationship_match_collector.js.map +1 -1
  15. package/dist/graph/relationship_reference.js +1 -1
  16. package/dist/graph/relationship_reference.js.map +1 -1
  17. package/dist/parsing/data_structures/lookup.d.ts.map +1 -1
  18. package/dist/parsing/data_structures/lookup.js +5 -1
  19. package/dist/parsing/data_structures/lookup.js.map +1 -1
  20. package/dist/parsing/functions/coalesce.d.ts +17 -0
  21. package/dist/parsing/functions/coalesce.d.ts.map +1 -0
  22. package/dist/parsing/functions/coalesce.js +61 -0
  23. package/dist/parsing/functions/coalesce.js.map +1 -0
  24. package/dist/parsing/functions/date.d.ts +22 -0
  25. package/dist/parsing/functions/date.d.ts.map +1 -0
  26. package/dist/parsing/functions/date.js +71 -0
  27. package/dist/parsing/functions/date.js.map +1 -0
  28. package/dist/parsing/functions/datetime.d.ts +22 -0
  29. package/dist/parsing/functions/datetime.d.ts.map +1 -0
  30. package/dist/parsing/functions/datetime.js +71 -0
  31. package/dist/parsing/functions/datetime.js.map +1 -0
  32. package/dist/parsing/functions/duration.d.ts +7 -0
  33. package/dist/parsing/functions/duration.d.ts.map +1 -0
  34. package/dist/parsing/functions/duration.js +145 -0
  35. package/dist/parsing/functions/duration.js.map +1 -0
  36. package/dist/parsing/functions/element_id.d.ts +7 -0
  37. package/dist/parsing/functions/element_id.d.ts.map +1 -0
  38. package/dist/parsing/functions/element_id.js +58 -0
  39. package/dist/parsing/functions/element_id.js.map +1 -0
  40. package/dist/parsing/functions/function_factory.d.ts +21 -0
  41. package/dist/parsing/functions/function_factory.d.ts.map +1 -1
  42. package/dist/parsing/functions/function_factory.js +21 -0
  43. package/dist/parsing/functions/function_factory.js.map +1 -1
  44. package/dist/parsing/functions/head.d.ts +7 -0
  45. package/dist/parsing/functions/head.d.ts.map +1 -0
  46. package/dist/parsing/functions/head.js +53 -0
  47. package/dist/parsing/functions/head.js.map +1 -0
  48. package/dist/parsing/functions/id.d.ts +7 -0
  49. package/dist/parsing/functions/id.d.ts.map +1 -0
  50. package/dist/parsing/functions/id.js +58 -0
  51. package/dist/parsing/functions/id.js.map +1 -0
  52. package/dist/parsing/functions/last.d.ts +7 -0
  53. package/dist/parsing/functions/last.d.ts.map +1 -0
  54. package/dist/parsing/functions/last.js +53 -0
  55. package/dist/parsing/functions/last.js.map +1 -0
  56. package/dist/parsing/functions/localdatetime.d.ts +21 -0
  57. package/dist/parsing/functions/localdatetime.d.ts.map +1 -0
  58. package/dist/parsing/functions/localdatetime.js +71 -0
  59. package/dist/parsing/functions/localdatetime.js.map +1 -0
  60. package/dist/parsing/functions/localtime.d.ts +20 -0
  61. package/dist/parsing/functions/localtime.d.ts.map +1 -0
  62. package/dist/parsing/functions/localtime.js +67 -0
  63. package/dist/parsing/functions/localtime.js.map +1 -0
  64. package/dist/parsing/functions/max.d.ts +14 -0
  65. package/dist/parsing/functions/max.d.ts.map +1 -0
  66. package/dist/parsing/functions/max.js +51 -0
  67. package/dist/parsing/functions/max.js.map +1 -0
  68. package/dist/parsing/functions/min.d.ts +14 -0
  69. package/dist/parsing/functions/min.d.ts.map +1 -0
  70. package/dist/parsing/functions/min.js +51 -0
  71. package/dist/parsing/functions/min.js.map +1 -0
  72. package/dist/parsing/functions/nodes.d.ts +7 -0
  73. package/dist/parsing/functions/nodes.d.ts.map +1 -0
  74. package/dist/parsing/functions/nodes.js +63 -0
  75. package/dist/parsing/functions/nodes.js.map +1 -0
  76. package/dist/parsing/functions/predicate_sum.d.ts.map +1 -1
  77. package/dist/parsing/functions/predicate_sum.js +13 -10
  78. package/dist/parsing/functions/predicate_sum.js.map +1 -1
  79. package/dist/parsing/functions/properties.d.ts +7 -0
  80. package/dist/parsing/functions/properties.d.ts.map +1 -0
  81. package/dist/parsing/functions/properties.js +74 -0
  82. package/dist/parsing/functions/properties.js.map +1 -0
  83. package/dist/parsing/functions/relationships.d.ts +7 -0
  84. package/dist/parsing/functions/relationships.d.ts.map +1 -0
  85. package/dist/parsing/functions/relationships.js +61 -0
  86. package/dist/parsing/functions/relationships.js.map +1 -0
  87. package/dist/parsing/functions/schema.d.ts +5 -2
  88. package/dist/parsing/functions/schema.d.ts.map +1 -1
  89. package/dist/parsing/functions/schema.js +7 -4
  90. package/dist/parsing/functions/schema.js.map +1 -1
  91. package/dist/parsing/functions/tail.d.ts +7 -0
  92. package/dist/parsing/functions/tail.d.ts.map +1 -0
  93. package/dist/parsing/functions/tail.js +50 -0
  94. package/dist/parsing/functions/tail.js.map +1 -0
  95. package/dist/parsing/functions/temporal_utils.d.ts +39 -0
  96. package/dist/parsing/functions/temporal_utils.d.ts.map +1 -0
  97. package/dist/parsing/functions/temporal_utils.js +168 -0
  98. package/dist/parsing/functions/temporal_utils.js.map +1 -0
  99. package/dist/parsing/functions/time.d.ts +20 -0
  100. package/dist/parsing/functions/time.d.ts.map +1 -0
  101. package/dist/parsing/functions/time.js +67 -0
  102. package/dist/parsing/functions/time.js.map +1 -0
  103. package/dist/parsing/functions/timestamp.d.ts +17 -0
  104. package/dist/parsing/functions/timestamp.d.ts.map +1 -0
  105. package/dist/parsing/functions/timestamp.js +51 -0
  106. package/dist/parsing/functions/timestamp.js.map +1 -0
  107. package/dist/parsing/functions/to_float.d.ts +7 -0
  108. package/dist/parsing/functions/to_float.d.ts.map +1 -0
  109. package/dist/parsing/functions/to_float.js +61 -0
  110. package/dist/parsing/functions/to_float.js.map +1 -0
  111. package/dist/parsing/functions/to_integer.d.ts +7 -0
  112. package/dist/parsing/functions/to_integer.d.ts.map +1 -0
  113. package/dist/parsing/functions/to_integer.js +61 -0
  114. package/dist/parsing/functions/to_integer.js.map +1 -0
  115. package/dist/parsing/functions/trim.d.ts +7 -0
  116. package/dist/parsing/functions/trim.d.ts.map +1 -0
  117. package/dist/parsing/functions/trim.js +37 -0
  118. package/dist/parsing/functions/trim.js.map +1 -0
  119. package/dist/parsing/operations/group_by.d.ts.map +1 -1
  120. package/dist/parsing/operations/group_by.js +4 -2
  121. package/dist/parsing/operations/group_by.js.map +1 -1
  122. package/dist/parsing/parser.d.ts.map +1 -1
  123. package/dist/parsing/parser.js +15 -2
  124. package/dist/parsing/parser.js.map +1 -1
  125. package/docs/flowquery.min.js +1 -1
  126. package/flowquery-py/pyproject.toml +1 -1
  127. package/flowquery-py/src/graph/database.py +44 -11
  128. package/flowquery-py/src/graph/relationship.py +11 -3
  129. package/flowquery-py/src/graph/relationship_data.py +2 -1
  130. package/flowquery-py/src/graph/relationship_match_collector.py +7 -1
  131. package/flowquery-py/src/graph/relationship_reference.py +2 -2
  132. package/flowquery-py/src/parsing/data_structures/lookup.py +2 -0
  133. package/flowquery-py/src/parsing/functions/__init__.py +42 -2
  134. package/flowquery-py/src/parsing/functions/coalesce.py +44 -0
  135. package/flowquery-py/src/parsing/functions/date_.py +63 -0
  136. package/flowquery-py/src/parsing/functions/datetime_.py +64 -0
  137. package/flowquery-py/src/parsing/functions/duration.py +159 -0
  138. package/flowquery-py/src/parsing/functions/element_id.py +50 -0
  139. package/flowquery-py/src/parsing/functions/head.py +39 -0
  140. package/flowquery-py/src/parsing/functions/id_.py +49 -0
  141. package/flowquery-py/src/parsing/functions/last.py +39 -0
  142. package/flowquery-py/src/parsing/functions/localdatetime.py +62 -0
  143. package/flowquery-py/src/parsing/functions/localtime.py +59 -0
  144. package/flowquery-py/src/parsing/functions/max_.py +49 -0
  145. package/flowquery-py/src/parsing/functions/min_.py +49 -0
  146. package/flowquery-py/src/parsing/functions/nodes.py +48 -0
  147. package/flowquery-py/src/parsing/functions/predicate_sum.py +3 -6
  148. package/flowquery-py/src/parsing/functions/properties.py +50 -0
  149. package/flowquery-py/src/parsing/functions/relationships.py +46 -0
  150. package/flowquery-py/src/parsing/functions/schema.py +9 -5
  151. package/flowquery-py/src/parsing/functions/tail.py +37 -0
  152. package/flowquery-py/src/parsing/functions/temporal_utils.py +186 -0
  153. package/flowquery-py/src/parsing/functions/time_.py +59 -0
  154. package/flowquery-py/src/parsing/functions/timestamp.py +39 -0
  155. package/flowquery-py/src/parsing/functions/to_float.py +46 -0
  156. package/flowquery-py/src/parsing/functions/to_integer.py +46 -0
  157. package/flowquery-py/src/parsing/functions/trim.py +35 -0
  158. package/flowquery-py/src/parsing/operations/group_by.py +2 -0
  159. package/flowquery-py/src/parsing/parser.py +12 -2
  160. package/flowquery-py/tests/compute/test_runner.py +1082 -4
  161. package/flowquery-vscode/flowQueryEngine/flowquery.min.js +1 -1
  162. package/package.json +1 -1
  163. package/src/graph/database.ts +42 -4
  164. package/src/graph/relationship.ts +12 -4
  165. package/src/graph/relationship_data.ts +1 -1
  166. package/src/graph/relationship_match_collector.ts +6 -2
  167. package/src/graph/relationship_reference.ts +1 -1
  168. package/src/parsing/data_structures/lookup.ts +8 -4
  169. package/src/parsing/functions/coalesce.ts +50 -0
  170. package/src/parsing/functions/date.ts +65 -0
  171. package/src/parsing/functions/datetime.ts +65 -0
  172. package/src/parsing/functions/duration.ts +143 -0
  173. package/src/parsing/functions/element_id.ts +51 -0
  174. package/src/parsing/functions/function_factory.ts +21 -0
  175. package/src/parsing/functions/head.ts +42 -0
  176. package/src/parsing/functions/id.ts +51 -0
  177. package/src/parsing/functions/last.ts +42 -0
  178. package/src/parsing/functions/localdatetime.ts +65 -0
  179. package/src/parsing/functions/localtime.ts +60 -0
  180. package/src/parsing/functions/max.ts +37 -0
  181. package/src/parsing/functions/min.ts +37 -0
  182. package/src/parsing/functions/nodes.ts +54 -0
  183. package/src/parsing/functions/predicate_sum.ts +17 -12
  184. package/src/parsing/functions/properties.ts +56 -0
  185. package/src/parsing/functions/relationships.ts +52 -0
  186. package/src/parsing/functions/schema.ts +7 -4
  187. package/src/parsing/functions/tail.ts +39 -0
  188. package/src/parsing/functions/temporal_utils.ts +180 -0
  189. package/src/parsing/functions/time.ts +60 -0
  190. package/src/parsing/functions/timestamp.ts +41 -0
  191. package/src/parsing/functions/to_float.ts +50 -0
  192. package/src/parsing/functions/to_integer.ts +50 -0
  193. package/src/parsing/functions/trim.ts +25 -0
  194. package/src/parsing/operations/group_by.ts +4 -1
  195. package/src/parsing/parser.ts +15 -2
  196. package/tests/compute/runner.test.ts +1005 -3
  197. package/tests/parsing/parser.test.ts +37 -0
@@ -14,6 +14,7 @@ declare class Database {
14
14
  getNode(node: Node): PhysicalNode | null;
15
15
  addRelationship(relationship: Relationship, statement: ASTNode): void;
16
16
  getRelationship(relationship: Relationship): PhysicalRelationship | null;
17
+ getRelationships(relationship: Relationship): PhysicalRelationship[];
17
18
  schema(): Promise<Record<string, any>[]>;
18
19
  getData(element: Node | Relationship): Promise<NodeData | RelationshipData>;
19
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAwB,MAAM,aAAa,CAAC;AACnD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAwC,MAAM,qBAAqB,CAAC;AAE3E,cAAM,QAAQ;IACV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAwC;IAC5D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAgD;WAE9D,WAAW,IAAI,QAAQ;IAM9B,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAQ7C,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,IAAI;IAGxC,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAQrE,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,oBAAoB,GAAG,IAAI;IAGlE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IA8BxC,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC;CAmB3F;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAwB,MAAM,aAAa,CAAC;AACnD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,gBAAwC,MAAM,qBAAqB,CAAC;AAE3E,cAAM,QAAQ;IACV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAW;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAwC;IAC5D,OAAO,CAAC,MAAM,CAAC,aAAa,CAAgD;WAE9D,WAAW,IAAI,QAAQ;IAM9B,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAQ7C,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,IAAI;IAGxC,eAAe,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IAUrE,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,oBAAoB,GAAG,IAAI;IAGxE,gBAAgB,CAAC,YAAY,EAAE,YAAY,GAAG,oBAAoB,EAAE;IAU9D,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAuCxC,OAAO,CAAC,OAAO,EAAE,IAAI,GAAG,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC;CAoC3F;AAED,eAAe,QAAQ,CAAC"}
@@ -53,20 +53,35 @@ class Database {
53
53
  }
54
54
  const physical = new physical_relationship_1.default(null, relationship.type);
55
55
  physical.statement = statement;
56
+ physical.source = relationship.source;
57
+ physical.target = relationship.target;
56
58
  Database.relationships.set(relationship.type, physical);
57
59
  }
58
60
  getRelationship(relationship) {
59
61
  return Database.relationships.get(relationship.type) || null;
60
62
  }
63
+ getRelationships(relationship) {
64
+ const result = [];
65
+ for (const type of relationship.types) {
66
+ const physical = Database.relationships.get(type);
67
+ if (physical) {
68
+ result.push(physical);
69
+ }
70
+ }
71
+ return result;
72
+ }
61
73
  schema() {
62
74
  return __awaiter(this, void 0, void 0, function* () {
75
+ var _a, _b;
63
76
  const result = [];
64
77
  for (const [label, physical] of Database.nodes) {
65
78
  const records = yield physical.data();
66
- const entry = { kind: "node", label };
79
+ const entry = { kind: "Node", label };
67
80
  if (records.length > 0) {
68
- const _a = records[0], { id } = _a, sample = __rest(_a, ["id"]);
69
- if (Object.keys(sample).length > 0) {
81
+ const _c = records[0], { id } = _c, sample = __rest(_c, ["id"]);
82
+ const properties = Object.keys(sample);
83
+ if (properties.length > 0) {
84
+ entry.properties = properties;
70
85
  entry.sample = sample;
71
86
  }
72
87
  }
@@ -74,10 +89,17 @@ class Database {
74
89
  }
75
90
  for (const [type, physical] of Database.relationships) {
76
91
  const records = yield physical.data();
77
- const entry = { kind: "relationship", type };
92
+ const entry = {
93
+ kind: "Relationship",
94
+ type,
95
+ from_label: ((_a = physical.source) === null || _a === void 0 ? void 0 : _a.label) || null,
96
+ to_label: ((_b = physical.target) === null || _b === void 0 ? void 0 : _b.label) || null,
97
+ };
78
98
  if (records.length > 0) {
79
- const _b = records[0], { left_id, right_id } = _b, sample = __rest(_b, ["left_id", "right_id"]);
80
- if (Object.keys(sample).length > 0) {
99
+ const _d = records[0], { left_id, right_id } = _d, sample = __rest(_d, ["left_id", "right_id"]);
100
+ const properties = Object.keys(sample);
101
+ if (properties.length > 0) {
102
+ entry.properties = properties;
81
103
  entry.sample = sample;
82
104
  }
83
105
  }
@@ -97,6 +119,21 @@ class Database {
97
119
  return new node_data_1.default(data);
98
120
  }
99
121
  else if (element instanceof relationship_1.default) {
122
+ if (element.types.length > 1) {
123
+ const physicals = this.getRelationships(element);
124
+ if (physicals.length === 0) {
125
+ throw new Error(`No physical relationships found for types ${element.types.join(", ")}`);
126
+ }
127
+ const allRecords = [];
128
+ for (let i = 0; i < physicals.length; i++) {
129
+ const records = (yield physicals[i].data());
130
+ const typeName = element.types[i];
131
+ for (const record of records) {
132
+ allRecords.push(Object.assign(Object.assign({}, record), { _type: typeName }));
133
+ }
134
+ }
135
+ return new relationship_data_1.default(allRecords);
136
+ }
100
137
  const relationship = this.getRelationship(element);
101
138
  if (relationship === null) {
102
139
  throw new Error(`Physical relationship not found for type ${element.type}`);
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import RelationshipData from "./relationship_data";
6
6
  import RelationshipMatchCollector, { RelationshipMatchRecord } from "./relationship_match_collector";
7
7
  declare class Relationship extends ASTNode {
8
8
  protected _identifier: string | null;
9
- protected _type: string | null;
9
+ protected _types: string[];
10
10
  protected _properties: Map<string, Expression>;
11
11
  protected _hops: Hops;
12
12
  protected _value: RelationshipMatchRecord | RelationshipMatchRecord[] | null;
@@ -20,6 +20,8 @@ declare class Relationship extends ASTNode {
20
20
  get identifier(): string | null;
21
21
  set type(type: string);
22
22
  get type(): string | null;
23
+ set types(types: string[]);
24
+ get types(): string[];
23
25
  get properties(): Map<string, Expression>;
24
26
  set properties(properties: Map<string, Expression>);
25
27
  private _matchesProperties;
@@ -1 +1 @@
1
- {"version":3,"file":"relationship.d.ts","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,UAAU,MAAM,mCAAmC,CAAC;AAC3D,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,gBAAwC,MAAM,qBAAqB,CAAC;AAC3E,OAAO,0BAA0B,EAAE,EAC/B,uBAAuB,EAC1B,MAAM,gCAAgC,CAAC;AAExC,cAAM,YAAa,SAAQ,OAAO;IAC9B,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAa;IAC3D,SAAS,CAAC,KAAK,EAAE,IAAI,CAAc;IAEnC,SAAS,CAAC,MAAM,EAAE,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,IAAI,CAAQ;IACpF,SAAS,CAAC,QAAQ,EAAE,0BAA0B,CAAoC;IAElF,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,CAAQ;IACtC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAW;IAEjD,OAAO,CAAC,KAAK,CAAiC;gBAElC,UAAU,GAAE,MAAM,GAAG,IAAW,EAAE,IAAI,GAAE,MAAM,GAAG,IAAW;IAKxE,IAAW,UAAU,CAAC,UAAU,EAAE,MAAM,EAEvC;IACD,IAAW,UAAU,IAAI,MAAM,GAAG,IAAI,CAErC;IACD,IAAW,IAAI,CAAC,IAAI,EAAE,MAAM,EAE3B;IACD,IAAW,IAAI,IAAI,MAAM,GAAG,IAAI,CAE/B;IACD,IAAW,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAE/C;IACD,IAAW,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAExD;IACD,OAAO,CAAC,kBAAkB;IAcnB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAGjD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAGlD,IAAW,IAAI,CAAC,IAAI,EAAE,IAAI,EAEzB;IACD,IAAW,IAAI,IAAI,IAAI,GAAG,IAAI,CAE7B;IACM,QAAQ,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,GAAE,MAAW,GAAG,IAAI;IAI3E,IAAW,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAElC;IACD,IAAW,MAAM,IAAI,IAAI,GAAG,IAAI,CAE/B;IACD,IAAW,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAElC;IACD,IAAW,MAAM,IAAI,IAAI,GAAG,IAAI,CAE/B;IACD,IAAW,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,EAE/C;IACD,IAAW,SAAS,IAAI,MAAM,GAAG,OAAO,CAEvC;IACM,KAAK,IAAI,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,IAAI;IAG1E,IAAW,OAAO,IAAI,uBAAuB,EAAE,CAE9C;IACM,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI;IAG5C,OAAO,IAAI,gBAAgB,GAAG,IAAI;IAGlC,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAG5B,oBAAoB,IAAI,MAAM;IAGxB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA2CrE;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"relationship.d.ts","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ class Relationship extends ast_node_1.default {
19
19
  constructor(identifier = null, type = null) {
20
20
  super();
21
21
  this._identifier = null;
22
- this._type = null;
22
+ this._types = [];
23
23
  this._properties = new Map();
24
24
  this._hops = new hops_1.default();
25
25
  this._value = null;
@@ -29,7 +29,9 @@ class Relationship extends ast_node_1.default {
29
29
  this._direction = "right";
30
30
  this._data = null;
31
31
  this._identifier = identifier;
32
- this._type = type;
32
+ if (type !== null) {
33
+ this._types = [type];
34
+ }
33
35
  }
34
36
  set identifier(identifier) {
35
37
  this._identifier = identifier;
@@ -38,10 +40,16 @@ class Relationship extends ast_node_1.default {
38
40
  return this._identifier;
39
41
  }
40
42
  set type(type) {
41
- this._type = type;
43
+ this._types = [type];
42
44
  }
43
45
  get type() {
44
- return this._type;
46
+ return this._types.length > 0 ? this._types[0] : null;
47
+ }
48
+ set types(types) {
49
+ this._types = types;
50
+ }
51
+ get types() {
52
+ return this._types;
45
53
  }
46
54
  get properties() {
47
55
  return this._properties;
@@ -1 +1 @@
1
- {"version":3,"file":"relationship.js","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relationship.js","sourceRoot":"","sources":["../../src/graph/relationship.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ class RelationshipData extends data_1.default {
31
31
  properties() {
32
32
  const current = this.current();
33
33
  if (current) {
34
- const { left_id, right_id } = current, props = __rest(current, ["left_id", "right_id"]);
34
+ const { left_id, right_id, _type } = current, props = __rest(current, ["left_id", "right_id", "_type"]);
35
35
  return props;
36
36
  }
37
37
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"relationship_data.js","sourceRoot":"","sources":["../../src/graph/relationship_data.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA0B;AAI1B,MAAM,gBAAiB,SAAQ,cAAI;IAC/B,YAAY,UAAgC,EAAE;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7B,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACM,IAAI,CAAC,EAAU,EAAE,MAAc,CAAC,EAAE,YAA8B,OAAO;QAC1E,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;IACD;;;MAGE;IACK,UAAU;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,OAAO,EAAE,QAAQ,KAAe,OAAO,EAAjB,KAAK,UAAK,OAAO,EAAzC,uBAA+B,CAAU,CAAC;YAChD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,OAAO,CAAC,MAAc,CAAC;QAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAA8B,CAAC;IAC3D,CAAC;CACJ;AAED,kBAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"relationship_data.js","sourceRoot":"","sources":["../../src/graph/relationship_data.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA0B;AAI1B,MAAM,gBAAiB,SAAQ,cAAI;IAC/B,YAAY,UAAgC,EAAE;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC7B,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACM,IAAI,CAAC,EAAU,EAAE,MAAc,CAAC,EAAE,YAA8B,OAAO;QAC1E,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/E,CAAC;IACD;;;MAGE;IACK,UAAU;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,KAAe,OAAO,EAAjB,KAAK,UAAK,OAAO,EAAhD,gCAAsC,CAAU,CAAC;YACvD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,OAAO,CAAC,MAAc,CAAC;QAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAA8B,CAAC;IAC3D,CAAC;CACJ;AAED,kBAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"relationship_match_collector.d.ts","sourceRoot":"","sources":["../../src/graph/relationship_match_collector.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC,CAAC;AAEF,cAAM,0BAA0B;IAC5B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,QAAQ,CAAqB;IAE9B,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB;IAWrF,IAAW,OAAO,CAAC,IAAI,EAAE,GAAG,EAI3B;IACM,GAAG,IAAI,uBAAuB,GAAG,SAAS;IAI1C,KAAK,IAAI,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,IAAI;IAW1E,IAAW,OAAO,IAAI,uBAAuB,EAAE,CAE9C;IAKM,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAG7C;AAED,eAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"relationship_match_collector.d.ts","sourceRoot":"","sources":["../../src/graph/relationship_match_collector.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACnC,CAAC;AAEF,cAAM,0BAA0B;IAC5B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,QAAQ,CAAqB;IAE9B,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,uBAAuB;IAerF,IAAW,OAAO,CAAC,IAAI,EAAE,GAAG,EAI3B;IACM,GAAG,IAAI,uBAAuB,GAAG,SAAS;IAI1C,KAAK,IAAI,uBAAuB,GAAG,uBAAuB,EAAE,GAAG,IAAI;IAW1E,IAAW,OAAO,IAAI,uBAAuB,EAAE,CAE9C;IAKM,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAG7C;AAED,eAAe,0BAA0B,CAAC"}
@@ -6,12 +6,15 @@ class RelationshipMatchCollector {
6
6
  this._nodeIds = [];
7
7
  }
8
8
  push(relationship, traversalId) {
9
- var _a, _b;
9
+ var _a;
10
+ const data = relationship.getData();
11
+ const currentRecord = data === null || data === void 0 ? void 0 : data.current();
12
+ const actualType = currentRecord && "_type" in currentRecord ? currentRecord["_type"] : relationship.type;
10
13
  const match = {
11
- type: relationship.type,
14
+ type: actualType,
12
15
  startNode: ((_a = relationship.source) === null || _a === void 0 ? void 0 : _a.value()) || {},
13
16
  endNode: null,
14
- properties: (_b = relationship.getData()) === null || _b === void 0 ? void 0 : _b.properties(),
17
+ properties: data === null || data === void 0 ? void 0 : data.properties(),
15
18
  };
16
19
  this._matches.push(match);
17
20
  this._nodeIds.push(traversalId);
@@ -1 +1 @@
1
- {"version":3,"file":"relationship_match_collector.js","sourceRoot":"","sources":["../../src/graph/relationship_match_collector.ts"],"names":[],"mappings":";;AASA,MAAM,0BAA0B;IAAhC;QACY,aAAQ,GAA8B,EAAE,CAAC;QACzC,aAAQ,GAAkB,EAAE,CAAC;IA2CzC,CAAC;IAzCU,IAAI,CAAC,YAA0B,EAAE,WAAmB;;QACvD,MAAM,KAAK,GAA4B;YACnC,IAAI,EAAE,YAAY,CAAC,IAAK;YACxB,SAAS,EAAE,CAAA,MAAA,YAAY,CAAC,MAAM,0CAAE,KAAK,EAAE,KAAI,EAAE;YAC7C,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,MAAA,YAAY,CAAC,OAAO,EAAE,0CAAE,UAAU,EAAyB;SAC1E,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAW,OAAO,CAAC,IAAS;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACnE,CAAC;IACL,CAAC;IACM,GAAG;QACN,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IACM,KAAK;QACR,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IACD,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD;;;OAGG;IACI,UAAU,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;CACJ;AAED,kBAAe,0BAA0B,CAAC"}
1
+ {"version":3,"file":"relationship_match_collector.js","sourceRoot":"","sources":["../../src/graph/relationship_match_collector.ts"],"names":[],"mappings":";;AASA,MAAM,0BAA0B;IAAhC;QACY,aAAQ,GAA8B,EAAE,CAAC;QACzC,aAAQ,GAAkB,EAAE,CAAC;IA+CzC,CAAC;IA7CU,IAAI,CAAC,YAA0B,EAAE,WAAmB;;QACvD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,CAAC;QACtC,MAAM,UAAU,GACZ,aAAa,IAAI,OAAO,IAAI,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAK,CAAC;QAC5F,MAAM,KAAK,GAA4B;YACnC,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,CAAA,MAAA,YAAY,CAAC,MAAM,0CAAE,KAAK,EAAE,KAAI,EAAE;YAC7C,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAyB;SACxD,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAW,OAAO,CAAC,IAAS;QACxB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACnE,CAAC;IACL,CAAC;IACM,GAAG;QACN,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IACM,KAAK;QACR,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IACD,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACD;;;OAGG;IACI,UAAU,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;CACJ;AAED,kBAAe,0BAA0B,CAAC"}
@@ -18,7 +18,7 @@ class RelationshipReference extends relationship_1.default {
18
18
  super();
19
19
  this._reference = null;
20
20
  this._identifier = base.identifier;
21
- this._type = base.type;
21
+ this._types = base.types;
22
22
  this._hops = base.hops;
23
23
  this._source = base.source;
24
24
  this._target = base.target;
@@ -1 +1 @@
1
- {"version":3,"file":"relationship_reference.js","sourceRoot":"","sources":["../../src/graph/relationship_reference.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kEAA0C;AAG1C,MAAM,qBAAsB,SAAQ,sBAAY;IAE5C,YAAY,IAAkB,EAAE,SAAuB;QACnD,KAAK,EAAE,CAAC;QAFJ,eAAU,GAAwB,IAAI,CAAC;QAG3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IACY,IAAI;6DAAC,OAAe,EAAE,MAAc,CAAC;;YAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;YAChC,MAAM,IAAI,GAAuB,MAAA,IAAI,CAAC,UAAW,CAAC,OAAO,EAAE,0CAAE,OAAO,CAChE,GAAG,CACgB,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;YACrE,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAA,CAAC;QAClD,CAAC;KAAA;CACJ;AAED,kBAAe,qBAAqB,CAAC"}
1
+ {"version":3,"file":"relationship_reference.js","sourceRoot":"","sources":["../../src/graph/relationship_reference.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kEAA0C;AAG1C,MAAM,qBAAsB,SAAQ,sBAAY;IAE5C,YAAY,IAAkB,EAAE,SAAuB;QACnD,KAAK,EAAE,CAAC;QAFJ,eAAU,GAAwB,IAAI,CAAC;QAG3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAK,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAChC,CAAC;IACY,IAAI;6DAAC,OAAe,EAAE,MAAc,CAAC;;YAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;YAChC,MAAM,IAAI,GAAuB,MAAA,IAAI,CAAC,UAAW,CAAC,OAAO,EAAE,0CAAE,OAAO,CAChE,GAAG,CACgB,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;YACrE,MAAM,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAA,CAAC;QAClD,CAAC;KAAA;CACJ;AAED,kBAAe,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../../src/parsing/data_structures/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,cAAM,MAAO,SAAQ,OAAO;;IAIxB,IAAW,KAAK,CAAC,KAAK,EAAE,OAAO,EAE9B;IACD,IAAW,KAAK,IAAI,OAAO,CAE1B;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAEpC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACM,SAAS,IAAI,OAAO;IAGpB,KAAK,IAAI,GAAG;CAGtB;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"lookup.d.ts","sourceRoot":"","sources":["../../../src/parsing/data_structures/lookup.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC;;;;;;;;;;;;GAYG;AACH,cAAM,MAAO,SAAQ,OAAO;;IAIxB,IAAW,KAAK,CAAC,KAAK,EAAE,OAAO,EAE9B;IACD,IAAW,KAAK,IAAI,OAAO,CAE1B;IACD,IAAW,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAEpC;IACD,IAAW,QAAQ,IAAI,OAAO,CAE7B;IACM,SAAS,IAAI,OAAO;IAGpB,KAAK,IAAI,GAAG;CAOtB;AAED,eAAe,MAAM,CAAC"}
@@ -37,7 +37,11 @@ class Lookup extends ast_node_1.default {
37
37
  return true;
38
38
  }
39
39
  value() {
40
- return this.variable.value()[this.index.value()];
40
+ const obj = this.variable.value();
41
+ if (obj === null || obj === undefined) {
42
+ return null;
43
+ }
44
+ return obj[this.index.value()];
41
45
  }
42
46
  }
43
47
  exports.default = Lookup;
@@ -1 +1 @@
1
- {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/parsing/data_structures/lookup.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAO,SAAQ,kBAAO;IACxB;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IACD,IAAW,KAAK,CAAC,KAAc;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,IAAW,QAAQ,CAAC,QAAiB;QACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACM,SAAS;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,KAAK;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;CACJ;AAED,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../../src/parsing/data_structures/lookup.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAElC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAO,SAAQ,kBAAO;IACxB;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IACD,IAAW,KAAK,CAAC,KAAc;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,IAAW,QAAQ,CAAC,QAAiB;QACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACM,SAAS;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IACM,KAAK;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC;CACJ;AAED,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,17 @@
1
+ import Function from "./function";
2
+ /**
3
+ * Returns the first non-null value from a list of expressions.
4
+ * Equivalent to Neo4j's coalesce() function.
5
+ *
6
+ * @example
7
+ * ```
8
+ * RETURN coalesce(null, null, 'hello', 'world') // returns 'hello'
9
+ * MATCH (n) RETURN coalesce(n.nickname, n.name) AS displayName
10
+ * ```
11
+ */
12
+ declare class Coalesce extends Function {
13
+ constructor();
14
+ value(): any;
15
+ }
16
+ export default Coalesce;
17
+ //# sourceMappingURL=coalesce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coalesce.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/coalesce.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAGlC;;;;;;;;;GASG;AACH,cAeM,QAAS,SAAQ,QAAQ;;IAMpB,KAAK,IAAI,GAAG;CAatB;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const function_1 = __importDefault(require("./function"));
13
+ const function_metadata_1 = require("./function_metadata");
14
+ /**
15
+ * Returns the first non-null value from a list of expressions.
16
+ * Equivalent to Neo4j's coalesce() function.
17
+ *
18
+ * @example
19
+ * ```
20
+ * RETURN coalesce(null, null, 'hello', 'world') // returns 'hello'
21
+ * MATCH (n) RETURN coalesce(n.nickname, n.name) AS displayName
22
+ * ```
23
+ */
24
+ let Coalesce = class Coalesce extends function_1.default {
25
+ constructor() {
26
+ super("coalesce");
27
+ this._expectedParameterCount = null; // variable number of parameters
28
+ }
29
+ value() {
30
+ const children = this.getChildren();
31
+ if (children.length === 0) {
32
+ throw new Error("coalesce() requires at least one argument");
33
+ }
34
+ for (const child of children) {
35
+ const val = child.value();
36
+ if (val !== null && val !== undefined) {
37
+ return val;
38
+ }
39
+ }
40
+ return null;
41
+ }
42
+ };
43
+ Coalesce = __decorate([
44
+ (0, function_metadata_1.FunctionDef)({
45
+ description: "Returns the first non-null value from a list of expressions",
46
+ category: "scalar",
47
+ parameters: [
48
+ { name: "expressions", description: "Two or more expressions to evaluate", type: "any" },
49
+ ],
50
+ output: {
51
+ description: "The first non-null value, or null if all values are null",
52
+ type: "any",
53
+ },
54
+ examples: [
55
+ "RETURN coalesce(null, 'hello', 'world')",
56
+ "MATCH (n) RETURN coalesce(n.nickname, n.name) AS displayName",
57
+ ],
58
+ })
59
+ ], Coalesce);
60
+ exports.default = Coalesce;
61
+ //# sourceMappingURL=coalesce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coalesce.js","sourceRoot":"","sources":["../../../src/parsing/functions/coalesce.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,0DAAkC;AAClC,2DAAkD;AAElD;;;;;;;;;GASG;AAgBH,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,kBAAQ;IAC3B;QACI,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC,gCAAgC;IACzE,CAAC;IAEM,KAAK;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QACjE,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC1B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpC,OAAO,GAAG,CAAC;YACf,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ,CAAA;AAnBK,QAAQ;IAfb,IAAA,+BAAW,EAAC;QACT,WAAW,EAAE,6DAA6D;QAC1E,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE;YACR,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,qCAAqC,EAAE,IAAI,EAAE,KAAK,EAAE;SAC3F;QACD,MAAM,EAAE;YACJ,WAAW,EAAE,0DAA0D;YACvE,IAAI,EAAE,KAAK;SACd;QACD,QAAQ,EAAE;YACN,yCAAyC;YACzC,8DAA8D;SACjE;KACJ,CAAC;GACI,QAAQ,CAmBb;AAED,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import Function from "./function";
2
+ /**
3
+ * Returns a date value (no time component).
4
+ * When called with no arguments, returns the current date.
5
+ * When called with a string argument, parses it as an ISO 8601 date.
6
+ * When called with a map argument, constructs a date from components.
7
+ *
8
+ * Equivalent to Neo4j's date() function.
9
+ *
10
+ * @example
11
+ * ```
12
+ * RETURN date() AS today
13
+ * RETURN date('2025-06-15') AS d
14
+ * RETURN date({year: 2025, month: 6, day: 15}) AS d
15
+ * ```
16
+ */
17
+ declare class DateFunction extends Function {
18
+ constructor();
19
+ value(): any;
20
+ }
21
+ export default DateFunction;
22
+ //# sourceMappingURL=date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/date.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAIlC;;;;;;;;;;;;;;GAcG;AACH,cA0BM,YAAa,SAAQ,QAAQ;;IAMxB,KAAK,IAAI,GAAG;CAWtB;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const function_1 = __importDefault(require("./function"));
13
+ const function_metadata_1 = require("./function_metadata");
14
+ const temporal_utils_1 = require("./temporal_utils");
15
+ /**
16
+ * Returns a date value (no time component).
17
+ * When called with no arguments, returns the current date.
18
+ * When called with a string argument, parses it as an ISO 8601 date.
19
+ * When called with a map argument, constructs a date from components.
20
+ *
21
+ * Equivalent to Neo4j's date() function.
22
+ *
23
+ * @example
24
+ * ```
25
+ * RETURN date() AS today
26
+ * RETURN date('2025-06-15') AS d
27
+ * RETURN date({year: 2025, month: 6, day: 15}) AS d
28
+ * ```
29
+ */
30
+ let DateFunction = class DateFunction extends function_1.default {
31
+ constructor() {
32
+ super("date");
33
+ this._expectedParameterCount = null;
34
+ }
35
+ value() {
36
+ const children = this.getChildren();
37
+ if (children.length > 1) {
38
+ throw new Error("date() accepts at most one argument");
39
+ }
40
+ const d = children.length === 1 ? (0, temporal_utils_1.parseTemporalArg)(children[0].value(), "date") : new Date();
41
+ return (0, temporal_utils_1.buildDateObject)(d);
42
+ }
43
+ };
44
+ DateFunction = __decorate([
45
+ (0, function_metadata_1.FunctionDef)({
46
+ description: "Returns a date value. With no arguments returns the current date. " +
47
+ "Accepts an ISO 8601 date string or a map of components (year, month, day).",
48
+ category: "scalar",
49
+ parameters: [
50
+ {
51
+ name: "input",
52
+ description: "Optional. An ISO 8601 date string (YYYY-MM-DD) or a map of components.",
53
+ type: "string",
54
+ required: false,
55
+ },
56
+ ],
57
+ output: {
58
+ description: "A date object with properties: year, month, day, " +
59
+ "epochMillis, dayOfWeek, dayOfYear, quarter, formatted",
60
+ type: "object",
61
+ },
62
+ examples: [
63
+ "RETURN date() AS today",
64
+ "RETURN date('2025-06-15') AS d",
65
+ "RETURN date({year: 2025, month: 6, day: 15}) AS d",
66
+ "WITH date() AS d RETURN d.year, d.month, d.dayOfWeek",
67
+ ],
68
+ })
69
+ ], DateFunction);
70
+ exports.default = DateFunction;
71
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../src/parsing/functions/date.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,0DAAkC;AAClC,2DAAkD;AAClD,qDAAqE;AAErE;;;;;;;;;;;;;;GAcG;AA2BH,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,kBAAQ;IAC/B;QACI,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;IACxC,CAAC;IAEM,KAAK;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,CAAC,GACH,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,iCAAgB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAEvF,OAAO,IAAA,gCAAe,EAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAA;AAjBK,YAAY;IA1BjB,IAAA,+BAAW,EAAC;QACT,WAAW,EACP,oEAAoE;YACpE,4EAA4E;QAChF,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE;YACR;gBACI,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,wEAAwE;gBACrF,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;aAClB;SACJ;QACD,MAAM,EAAE;YACJ,WAAW,EACP,mDAAmD;gBACnD,uDAAuD;YAC3D,IAAI,EAAE,QAAQ;SACjB;QACD,QAAQ,EAAE;YACN,wBAAwB;YACxB,gCAAgC;YAChC,mDAAmD;YACnD,sDAAsD;SACzD;KACJ,CAAC;GACI,YAAY,CAiBjB;AAED,kBAAe,YAAY,CAAC"}
@@ -0,0 +1,22 @@
1
+ import Function from "./function";
2
+ /**
3
+ * Returns a datetime value (date + time + timezone offset).
4
+ * When called with no arguments, returns the current UTC datetime.
5
+ * When called with a string argument, parses it as an ISO 8601 datetime.
6
+ * When called with a map argument, constructs a datetime from components.
7
+ *
8
+ * Equivalent to Neo4j's datetime() function.
9
+ *
10
+ * @example
11
+ * ```
12
+ * RETURN datetime() AS now
13
+ * RETURN datetime('2025-06-15T12:30:00Z') AS dt
14
+ * RETURN datetime({year: 2025, month: 6, day: 15}) AS dt
15
+ * ```
16
+ */
17
+ declare class Datetime extends Function {
18
+ constructor();
19
+ value(): any;
20
+ }
21
+ export default Datetime;
22
+ //# sourceMappingURL=datetime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/datetime.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAIlC;;;;;;;;;;;;;;GAcG;AACH,cA0BM,QAAS,SAAQ,QAAQ;;IAMpB,KAAK,IAAI,GAAG;CAWtB;AAED,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const function_1 = __importDefault(require("./function"));
13
+ const function_metadata_1 = require("./function_metadata");
14
+ const temporal_utils_1 = require("./temporal_utils");
15
+ /**
16
+ * Returns a datetime value (date + time + timezone offset).
17
+ * When called with no arguments, returns the current UTC datetime.
18
+ * When called with a string argument, parses it as an ISO 8601 datetime.
19
+ * When called with a map argument, constructs a datetime from components.
20
+ *
21
+ * Equivalent to Neo4j's datetime() function.
22
+ *
23
+ * @example
24
+ * ```
25
+ * RETURN datetime() AS now
26
+ * RETURN datetime('2025-06-15T12:30:00Z') AS dt
27
+ * RETURN datetime({year: 2025, month: 6, day: 15}) AS dt
28
+ * ```
29
+ */
30
+ let Datetime = class Datetime extends function_1.default {
31
+ constructor() {
32
+ super("datetime");
33
+ this._expectedParameterCount = null;
34
+ }
35
+ value() {
36
+ const children = this.getChildren();
37
+ if (children.length > 1) {
38
+ throw new Error("datetime() accepts at most one argument");
39
+ }
40
+ const d = children.length === 1 ? (0, temporal_utils_1.parseTemporalArg)(children[0].value(), "datetime") : new Date();
41
+ return (0, temporal_utils_1.buildDatetimeObject)(d, true);
42
+ }
43
+ };
44
+ Datetime = __decorate([
45
+ (0, function_metadata_1.FunctionDef)({
46
+ description: "Returns a datetime value. With no arguments returns the current UTC datetime. " +
47
+ "Accepts an ISO 8601 string or a map of components (year, month, day, hour, minute, second, millisecond).",
48
+ category: "scalar",
49
+ parameters: [
50
+ {
51
+ name: "input",
52
+ description: "Optional. An ISO 8601 datetime string or a map of components.",
53
+ type: "string",
54
+ required: false,
55
+ },
56
+ ],
57
+ output: {
58
+ description: "A datetime object with properties: year, month, day, hour, minute, second, millisecond, " +
59
+ "epochMillis, epochSeconds, dayOfWeek, dayOfYear, quarter, formatted",
60
+ type: "object",
61
+ },
62
+ examples: [
63
+ "RETURN datetime() AS now",
64
+ "RETURN datetime('2025-06-15T12:30:00Z') AS dt",
65
+ "RETURN datetime({year: 2025, month: 6, day: 15, hour: 12}) AS dt",
66
+ "WITH datetime() AS dt RETURN dt.year, dt.month, dt.day",
67
+ ],
68
+ })
69
+ ], Datetime);
70
+ exports.default = Datetime;
71
+ //# sourceMappingURL=datetime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/parsing/functions/datetime.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,0DAAkC;AAClC,2DAAkD;AAClD,qDAAyE;AAEzE;;;;;;;;;;;;;;GAcG;AA2BH,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,kBAAQ;IAC3B;QACI,KAAK,CAAC,UAAU,CAAC,CAAC;QAClB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;IACxC,CAAC;IAEM,KAAK;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,CAAC,GACH,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,iCAAgB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QAE3F,OAAO,IAAA,oCAAmB,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;CACJ,CAAA;AAjBK,QAAQ;IA1Bb,IAAA,+BAAW,EAAC;QACT,WAAW,EACP,gFAAgF;YAChF,0GAA0G;QAC9G,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE;YACR;gBACI,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,+DAA+D;gBAC5E,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,KAAK;aAClB;SACJ;QACD,MAAM,EAAE;YACJ,WAAW,EACP,0FAA0F;gBAC1F,qEAAqE;YACzE,IAAI,EAAE,QAAQ;SACjB;QACD,QAAQ,EAAE;YACN,0BAA0B;YAC1B,+CAA+C;YAC/C,kEAAkE;YAClE,wDAAwD;SAC3D;KACJ,CAAC;GACI,QAAQ,CAiBb;AAED,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import Function from "./function";
2
+ declare class Duration extends Function {
3
+ constructor();
4
+ value(): any;
5
+ }
6
+ export default Duration;
7
+ //# sourceMappingURL=duration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duration.d.ts","sourceRoot":"","sources":["../../../src/parsing/functions/duration.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AA0FlC,cA2BM,QAAS,SAAQ,QAAQ;;IAMpB,KAAK,IAAI,GAAG;CAiBtB;AAED,eAAe,QAAQ,CAAC"}