@uipath/maestro-tool 1.204.0-preview.241 → 1.204.0-preview.246

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 (94) hide show
  1. package/dist/DmnFactory-VWZOSZHH-ggnfcqpa.js +3992 -0
  2. package/dist/DmnModelTypes-ATR7FVKZ-xe82zhg0.js +18 -0
  3. package/dist/KieDmnMarshaller-6TTUU5B4-6apscj68.js +11069 -0
  4. package/dist/THIRD-PARTY-NOTICES.md +423 -1
  5. package/dist/{binding-service-kjhcry73.js → binding-service-n8e2pvs7.js} +26 -26
  6. package/dist/{bpmn-binding-resolver-4e0wynhw.js → bpmn-binding-resolver-xyzmxpvf.js} +1 -1
  7. package/dist/{bpmn-branch-r392m6ez.js → bpmn-branch-r71xt5jx.js} +14 -14
  8. package/dist/{business-rule-export-43cmvz67.js → business-rule-export-j6xxtp5s.js} +1 -1
  9. package/dist/{case-debug-studio-web-service-p26yqwtr.js → case-debug-studio-web-service-zch1nb34.js} +6 -6
  10. package/dist/{case-described-io-service-dm48q1n5.js → case-described-io-service-kn3rvy53.js} +4 -4
  11. package/dist/{case-splice-service-5vp3xze3.js → case-splice-service-7n51cpx3.js} +4 -4
  12. package/dist/{case-validate-service-yex59xk6.js → case-validate-service-t5zg9bnn.js} +8 -8
  13. package/dist/{connector-enrichment-service-337qvnkk.js → connector-enrichment-service-1fvdjcy6.js} +15 -15
  14. package/dist/{connector-lookup-service-rsnp1t5s.js → connector-lookup-service-32zex19p.js} +2 -2
  15. package/dist/{connector-service-q3myd20f.js → connector-service-jrp2yng2.js} +31 -31
  16. package/dist/{connector-task-spec-m7nbf2j4.js → connector-task-spec-634cgy35.js} +17 -17
  17. package/dist/{conversion-FQTRFHRX-40sntpb8.js → conversion-FQTRFHRX-w6jzknkh.js} +5 -5
  18. package/dist/{debug-conversation-trigger-amdacz5y.js → debug-conversation-trigger-myxeaw0t.js} +11 -11
  19. package/dist/{edge-service-4k0j10sm.js → edge-service-j5tm51ah.js} +11 -11
  20. package/dist/{enrichment-service-t95pv2cr.js → enrichment-service-yjv2eb8h.js} +5 -5
  21. package/dist/{flow-api-157awptg.js → flow-api-a2hdewx3.js} +3 -3
  22. package/dist/{flow-debug-service-j81p06h9.js → flow-debug-service-q3rt38gd.js} +50 -50
  23. package/dist/{flow-eval-node-target-t9473s3e.js → flow-eval-node-target-c14rede0.js} +11 -11
  24. package/dist/{flow-eval-run-service-x6s2cp9b.js → flow-eval-run-service-0h45akq0.js} +57 -57
  25. package/dist/{flow-eval-service-drcda3b5.js → flow-eval-service-wfwjk81v.js} +17 -17
  26. package/dist/{flow-init-service-heh9zqzx.js → flow-init-service-xfsckwsr.js} +15 -15
  27. package/dist/{flow-io-27jtnkr4.js → flow-io-2j4bezws.js} +11 -11
  28. package/dist/{flow-migrate-service-wgbnytf3.js → flow-migrate-service-tds3f8sc.js} +12 -12
  29. package/dist/{flow-pack-service-dej5ngbh.js → flow-pack-service-egdvcvc6.js} +35 -35
  30. package/dist/{flow-validate-service-rr01kphm.js → flow-validate-service-avtck8j8.js} +38 -38
  31. package/dist/{governance-fetcher-bw13h422.js → governance-fetcher-0k8bg8e8.js} +2 -2
  32. package/dist/{headless-zbqpvpje.js → headless-c5w7dabq.js} +6 -6
  33. package/dist/hitPolicyResult-4WDHTX4A-zpjwpxn1.js +69 -0
  34. package/dist/{hitl-service-q48swgxe.js → hitl-service-c2zbg2y4.js} +11 -11
  35. package/dist/index-03h6hq69.js +200 -0
  36. package/dist/{index-pcjaz9g4.js → index-1htnjt3c.js} +6 -6
  37. package/dist/{index-c1q6mnw1.js → index-8j8zxdny.js} +2 -2
  38. package/dist/{index-jjmnqhts.js → index-9gbq9ffd.js} +1 -1
  39. package/dist/{index-gd9sgnhz.js → index-9w5z2yya.js} +39 -39
  40. package/dist/{index-5yw15y73.js → index-da5ae31r.js} +2 -2
  41. package/dist/{index-n6b7q7kd.js → index-wtcebmg6.js} +1 -1
  42. package/dist/index.js +2 -2
  43. package/dist/{known-types-jhyhnkt6.js → known-types-npevemwr.js} +3 -3
  44. package/dist/{localization-3kzxmg18.js → localization-p76prk3f.js} +1 -1
  45. package/dist/{maestro-debug-service-j1q8z1sh.js → maestro-debug-service-t9k84m5q.js} +10 -10
  46. package/dist/{node-service-41xfqtx2.js → node-service-1tny2xyc.js} +24 -24
  47. package/dist/{node-sync-service-78q0cfc5.js → node-sync-service-98qyjh5y.js} +5 -5
  48. package/dist/{node-b1y2d22f.js → node-xw0gew0k.js} +2 -2
  49. package/dist/{packager-tool-fezp4g34.js → packager-tool-21znfq2d.js} +1 -1
  50. package/dist/{packager-tool-z166dz7n.js → packager-tool-2ch8j94t.js} +2 -2
  51. package/dist/{packager-tool-ntbhz1q8.js → packager-tool-3rzrtr17.js} +2 -2
  52. package/dist/{packager-tool-w2m0e6jg.js → packager-tool-4068b2ed.js} +2 -2
  53. package/dist/{packager-tool-78e4vpe2.js → packager-tool-6q4ry4hy.js} +1 -1
  54. package/dist/packager-tool-7haj67tr.js +19 -0
  55. package/dist/{packager-tool-22srd0pr.js → packager-tool-8myx99r1.js} +1 -1
  56. package/dist/{packager-tool-v4sh3gw0.js → packager-tool-ayb57dke.js} +7 -7
  57. package/dist/{packager-tool-ff8c9r0x.js → packager-tool-c167ya3t.js} +8 -8
  58. package/dist/{packager-tool-qhhrq12s.js → packager-tool-dw84gw4s.js} +1 -1
  59. package/dist/{packager-tool-b1j4241h.js → packager-tool-eb0v1946.js} +5 -5
  60. package/dist/{packager-tool-ysbskrta.js → packager-tool-ecp8x32b.js} +1 -1
  61. package/dist/{packager-tool-d7b20vjp.js → packager-tool-j6bthcy9.js} +4 -4
  62. package/dist/{packager-tool-6y7wzn04.js → packager-tool-j7edr7v7.js} +5 -5
  63. package/dist/packager-tool-jd313s2x.js +10 -0
  64. package/dist/{packager-tool-c38rv4wt.js → packager-tool-jzqxekzk.js} +2 -2
  65. package/dist/{packager-tool-nw06b921.js → packager-tool-m8m9y3ne.js} +12 -12
  66. package/dist/{packager-tool-5hw8sa8p.js → packager-tool-p7hjw0mq.js} +1 -1
  67. package/dist/{packager-tool-0w4es6rz.js → packager-tool-ph1xec5t.js} +2 -2
  68. package/dist/{packager-tool-21gvxvd2.js → packager-tool-ph20rrfc.js} +1 -1
  69. package/dist/{packager-tool-r6dd92vy.js → packager-tool-qddknz34.js} +2 -2
  70. package/dist/{packager-tool-j0hjcpjr.js → packager-tool-qf6c2b2v.js} +4 -4
  71. package/dist/packager-tool-qgqscsjc.js +46 -0
  72. package/dist/{packager-tool-jysv06v5.js → packager-tool-rag1b35t.js} +3 -3
  73. package/dist/{packager-tool-9rm5exs5.js → packager-tool-rkv04anh.js} +4 -4
  74. package/dist/{packager-tool-16esrmnq.js → packager-tool-sqd31atg.js} +2 -2
  75. package/dist/{packager-tool-c0rtxezv.js → packager-tool-vaydmaes.js} +1 -1
  76. package/dist/{packager-tool-1mnq1c97.js → packager-tool-vvdkjnpc.js} +1 -1
  77. package/dist/{packager-tool-59s95scr.js → packager-tool-w446pr4v.js} +2 -2
  78. package/dist/{packager-tool-6azk3rex.js → packager-tool-x6gz9xkc.js} +1 -1
  79. package/dist/{packager-tool-t6tj0pjz.js → packager-tool-z3419drb.js} +2 -2
  80. package/dist/packager-tool.js +77 -15
  81. package/dist/{project-artifacts-af6hwaz2.js → project-artifacts-ygsyzgbk.js} +1 -1
  82. package/dist/{resourcesSyncService-w29cwxre.js → resourcesSyncService-a3hn1eez.js} +13 -13
  83. package/dist/{sdd-convert-service-xvq3k05k.js → sdd-convert-service-am4cs6zq.js} +4 -4
  84. package/dist/{serialization-BXU6AKAN-5r889h6a.js → serialization-BXU6AKAN-r7t7ze52.js} +8 -8
  85. package/dist/{tidy-service-1zdtdbcb.js → tidy-service-b3kbj3qp.js} +11 -11
  86. package/dist/{tool-3txwy6sg.js → tool-5f85jcb8.js} +34 -34
  87. package/dist/{tool-mjmxyq4a.js → tool-sar9ehpk.js} +66 -66
  88. package/dist/tool.js +2 -2
  89. package/dist/{trigger-enrichment-service-p5w837ej.js → trigger-enrichment-service-1dt5vhkk.js} +20 -20
  90. package/dist/{variable-service-59x1ebp3.js → variable-service-73ttzv8t.js} +11 -11
  91. package/dist/{wait-for-flow-job-kzazaejq.js → wait-for-flow-job-9k713mrw.js} +3 -3
  92. package/package.json +2 -2
  93. /package/dist/{packager-tool-p79yh9ww.js → packager-tool-891wm98n.js} +0 -0
  94. /package/dist/{packager-tool-hygq2wy6.js → packager-tool-jdwp0zk8.js} +0 -0
@@ -0,0 +1,3992 @@
1
+ import {
2
+ v4_default
3
+ } from "./packager-tool-qgqscsjc.js";
4
+ import {
5
+ e
6
+ } from "./packager-tool-jd313s2x.js";
7
+ import"./packager-tool-7haj67tr.js";
8
+ import"./packager-tool-1yh8g550.js";
9
+
10
+ // ../../node_modules/@lezer/common/dist/index.js
11
+ var DefaultBufferLength = 1024;
12
+ var nextPropID = 0;
13
+
14
+ class Range {
15
+ constructor(from, to) {
16
+ this.from = from;
17
+ this.to = to;
18
+ }
19
+ }
20
+
21
+ class NodeProp {
22
+ constructor(config = {}) {
23
+ this.id = nextPropID++;
24
+ this.perNode = !!config.perNode;
25
+ this.deserialize = config.deserialize || (() => {
26
+ throw new Error("This node type doesn't define a deserialize function");
27
+ });
28
+ this.combine = config.combine || null;
29
+ }
30
+ add(match) {
31
+ if (this.perNode)
32
+ throw new RangeError("Can't add per-node props to node types");
33
+ if (typeof match != "function")
34
+ match = NodeType.match(match);
35
+ return (type) => {
36
+ let result = match(type);
37
+ return result === undefined ? null : [this, result];
38
+ };
39
+ }
40
+ }
41
+ NodeProp.closedBy = new NodeProp({ deserialize: (str) => str.split(" ") });
42
+ NodeProp.openedBy = new NodeProp({ deserialize: (str) => str.split(" ") });
43
+ NodeProp.group = new NodeProp({ deserialize: (str) => str.split(" ") });
44
+ NodeProp.isolate = new NodeProp({ deserialize: (value) => {
45
+ if (value && value != "rtl" && value != "ltr" && value != "auto")
46
+ throw new RangeError("Invalid value for isolate: " + value);
47
+ return value || "auto";
48
+ } });
49
+ NodeProp.contextHash = new NodeProp({ perNode: true });
50
+ NodeProp.lookAhead = new NodeProp({ perNode: true });
51
+ NodeProp.mounted = new NodeProp({ perNode: true });
52
+
53
+ class MountedTree {
54
+ constructor(tree, overlay, parser, bracketed = false) {
55
+ this.tree = tree;
56
+ this.overlay = overlay;
57
+ this.parser = parser;
58
+ this.bracketed = bracketed;
59
+ }
60
+ static get(tree) {
61
+ return tree && tree.props && tree.props[NodeProp.mounted.id];
62
+ }
63
+ }
64
+ var noProps = Object.create(null);
65
+
66
+ class NodeType {
67
+ constructor(name, props, id, flags = 0) {
68
+ this.name = name;
69
+ this.props = props;
70
+ this.id = id;
71
+ this.flags = flags;
72
+ }
73
+ static define(spec) {
74
+ let props = spec.props && spec.props.length ? Object.create(null) : noProps;
75
+ let flags = (spec.top ? 1 : 0) | (spec.skipped ? 2 : 0) | (spec.error ? 4 : 0) | (spec.name == null ? 8 : 0);
76
+ let type = new NodeType(spec.name || "", props, spec.id, flags);
77
+ if (spec.props)
78
+ for (let src of spec.props) {
79
+ if (!Array.isArray(src))
80
+ src = src(type);
81
+ if (src) {
82
+ if (src[0].perNode)
83
+ throw new RangeError("Can't store a per-node prop on a node type");
84
+ props[src[0].id] = src[1];
85
+ }
86
+ }
87
+ return type;
88
+ }
89
+ prop(prop) {
90
+ return this.props[prop.id];
91
+ }
92
+ get isTop() {
93
+ return (this.flags & 1) > 0;
94
+ }
95
+ get isSkipped() {
96
+ return (this.flags & 2) > 0;
97
+ }
98
+ get isError() {
99
+ return (this.flags & 4) > 0;
100
+ }
101
+ get isAnonymous() {
102
+ return (this.flags & 8) > 0;
103
+ }
104
+ is(name) {
105
+ if (typeof name == "string") {
106
+ if (this.name == name)
107
+ return true;
108
+ let group = this.prop(NodeProp.group);
109
+ return group ? group.indexOf(name) > -1 : false;
110
+ }
111
+ return this.id == name;
112
+ }
113
+ static match(map) {
114
+ let direct = Object.create(null);
115
+ for (let prop in map)
116
+ for (let name of prop.split(" "))
117
+ direct[name] = map[prop];
118
+ return (node) => {
119
+ for (let groups = node.prop(NodeProp.group), i = -1;i < (groups ? groups.length : 0); i++) {
120
+ let found = direct[i < 0 ? node.name : groups[i]];
121
+ if (found)
122
+ return found;
123
+ }
124
+ };
125
+ }
126
+ }
127
+ NodeType.none = new NodeType("", Object.create(null), 0, 8);
128
+
129
+ class NodeSet {
130
+ constructor(types) {
131
+ this.types = types;
132
+ for (let i = 0;i < types.length; i++)
133
+ if (types[i].id != i)
134
+ throw new RangeError("Node type ids should correspond to array positions when creating a node set");
135
+ }
136
+ extend(...props) {
137
+ let newTypes = [];
138
+ for (let type of this.types) {
139
+ let newProps = null;
140
+ for (let source of props) {
141
+ let add = source(type);
142
+ if (add) {
143
+ if (!newProps)
144
+ newProps = Object.assign({}, type.props);
145
+ let value = add[1], prop = add[0];
146
+ if (prop.combine && prop.id in newProps)
147
+ value = prop.combine(newProps[prop.id], value);
148
+ newProps[prop.id] = value;
149
+ }
150
+ }
151
+ newTypes.push(newProps ? new NodeType(type.name, newProps, type.id, type.flags) : type);
152
+ }
153
+ return new NodeSet(newTypes);
154
+ }
155
+ }
156
+ var CachedNode = new WeakMap;
157
+ var CachedInnerNode = new WeakMap;
158
+ var IterMode;
159
+ (function(IterMode2) {
160
+ IterMode2[IterMode2["ExcludeBuffers"] = 1] = "ExcludeBuffers";
161
+ IterMode2[IterMode2["IncludeAnonymous"] = 2] = "IncludeAnonymous";
162
+ IterMode2[IterMode2["IgnoreMounts"] = 4] = "IgnoreMounts";
163
+ IterMode2[IterMode2["IgnoreOverlays"] = 8] = "IgnoreOverlays";
164
+ IterMode2[IterMode2["EnterBracketed"] = 16] = "EnterBracketed";
165
+ })(IterMode || (IterMode = {}));
166
+
167
+ class Tree {
168
+ constructor(type, children, positions, length, props) {
169
+ this.type = type;
170
+ this.children = children;
171
+ this.positions = positions;
172
+ this.length = length;
173
+ this.props = null;
174
+ if (props && props.length) {
175
+ this.props = Object.create(null);
176
+ for (let [prop, value] of props)
177
+ this.props[typeof prop == "number" ? prop : prop.id] = value;
178
+ }
179
+ }
180
+ toString() {
181
+ let mounted = MountedTree.get(this);
182
+ if (mounted && !mounted.overlay)
183
+ return mounted.tree.toString();
184
+ let children = "";
185
+ for (let ch of this.children) {
186
+ let str = ch.toString();
187
+ if (str) {
188
+ if (children)
189
+ children += ",";
190
+ children += str;
191
+ }
192
+ }
193
+ return !this.type.name ? children : (/\W/.test(this.type.name) && !this.type.isError ? JSON.stringify(this.type.name) : this.type.name) + (children.length ? "(" + children + ")" : "");
194
+ }
195
+ cursor(mode = 0) {
196
+ return new TreeCursor(this.topNode, mode);
197
+ }
198
+ cursorAt(pos, side = 0, mode = 0) {
199
+ let scope = CachedNode.get(this) || this.topNode;
200
+ let cursor = new TreeCursor(scope);
201
+ cursor.moveTo(pos, side);
202
+ CachedNode.set(this, cursor._tree);
203
+ return cursor;
204
+ }
205
+ get topNode() {
206
+ return new TreeNode(this, 0, 0, null);
207
+ }
208
+ resolve(pos, side = 0) {
209
+ let node = resolveNode(CachedNode.get(this) || this.topNode, pos, side, false);
210
+ CachedNode.set(this, node);
211
+ return node;
212
+ }
213
+ resolveInner(pos, side = 0) {
214
+ let node = resolveNode(CachedInnerNode.get(this) || this.topNode, pos, side, true);
215
+ CachedInnerNode.set(this, node);
216
+ return node;
217
+ }
218
+ resolveStack(pos, side = 0) {
219
+ return stackIterator(this, pos, side);
220
+ }
221
+ iterate(spec) {
222
+ let { enter, leave, from = 0, to = this.length } = spec;
223
+ let mode = spec.mode || 0, anon = (mode & IterMode.IncludeAnonymous) > 0;
224
+ for (let c = this.cursor(mode | IterMode.IncludeAnonymous);; ) {
225
+ let entered = false;
226
+ if (c.from <= to && c.to >= from && (!anon && c.type.isAnonymous || enter(c) !== false)) {
227
+ if (c.firstChild())
228
+ continue;
229
+ entered = true;
230
+ }
231
+ for (;; ) {
232
+ if (entered && leave && (anon || !c.type.isAnonymous))
233
+ leave(c);
234
+ if (c.nextSibling())
235
+ break;
236
+ if (!c.parent())
237
+ return;
238
+ entered = true;
239
+ }
240
+ }
241
+ }
242
+ prop(prop) {
243
+ return !prop.perNode ? this.type.prop(prop) : this.props ? this.props[prop.id] : undefined;
244
+ }
245
+ get propValues() {
246
+ let result = [];
247
+ if (this.props)
248
+ for (let id in this.props)
249
+ result.push([+id, this.props[id]]);
250
+ return result;
251
+ }
252
+ balance(config = {}) {
253
+ return this.children.length <= 8 ? this : balanceRange(NodeType.none, this.children, this.positions, 0, this.children.length, 0, this.length, (children, positions, length) => new Tree(this.type, children, positions, length, this.propValues), config.makeTree || ((children, positions, length) => new Tree(NodeType.none, children, positions, length)));
254
+ }
255
+ static build(data) {
256
+ return buildTree(data);
257
+ }
258
+ }
259
+ Tree.empty = new Tree(NodeType.none, [], [], 0);
260
+
261
+ class FlatBufferCursor {
262
+ constructor(buffer, index) {
263
+ this.buffer = buffer;
264
+ this.index = index;
265
+ }
266
+ get id() {
267
+ return this.buffer[this.index - 4];
268
+ }
269
+ get start() {
270
+ return this.buffer[this.index - 3];
271
+ }
272
+ get end() {
273
+ return this.buffer[this.index - 2];
274
+ }
275
+ get size() {
276
+ return this.buffer[this.index - 1];
277
+ }
278
+ get pos() {
279
+ return this.index;
280
+ }
281
+ next() {
282
+ this.index -= 4;
283
+ }
284
+ fork() {
285
+ return new FlatBufferCursor(this.buffer, this.index);
286
+ }
287
+ }
288
+
289
+ class TreeBuffer {
290
+ constructor(buffer, length, set) {
291
+ this.buffer = buffer;
292
+ this.length = length;
293
+ this.set = set;
294
+ }
295
+ get type() {
296
+ return NodeType.none;
297
+ }
298
+ toString() {
299
+ let result = [];
300
+ for (let index = 0;index < this.buffer.length; ) {
301
+ result.push(this.childString(index));
302
+ index = this.buffer[index + 3];
303
+ }
304
+ return result.join(",");
305
+ }
306
+ childString(index) {
307
+ let id = this.buffer[index], endIndex = this.buffer[index + 3];
308
+ let type = this.set.types[id], result = type.name;
309
+ if (/\W/.test(result) && !type.isError)
310
+ result = JSON.stringify(result);
311
+ index += 4;
312
+ if (endIndex == index)
313
+ return result;
314
+ let children = [];
315
+ while (index < endIndex) {
316
+ children.push(this.childString(index));
317
+ index = this.buffer[index + 3];
318
+ }
319
+ return result + "(" + children.join(",") + ")";
320
+ }
321
+ findChild(startIndex, endIndex, dir, pos, side) {
322
+ let { buffer } = this, pick = -1;
323
+ for (let i = startIndex;i != endIndex; i = buffer[i + 3]) {
324
+ if (checkSide(side, pos, buffer[i + 1], buffer[i + 2])) {
325
+ pick = i;
326
+ if (dir > 0)
327
+ break;
328
+ }
329
+ }
330
+ return pick;
331
+ }
332
+ slice(startI, endI, from) {
333
+ let b = this.buffer;
334
+ let copy = new Uint16Array(endI - startI), len = 0;
335
+ for (let i = startI, j = 0;i < endI; ) {
336
+ copy[j++] = b[i++];
337
+ copy[j++] = b[i++] - from;
338
+ let to = copy[j++] = b[i++] - from;
339
+ copy[j++] = b[i++] - startI;
340
+ len = Math.max(len, to);
341
+ }
342
+ return new TreeBuffer(copy, len, this.set);
343
+ }
344
+ }
345
+ function checkSide(side, pos, from, to) {
346
+ switch (side) {
347
+ case -2:
348
+ return from < pos;
349
+ case -1:
350
+ return to >= pos && from < pos;
351
+ case 0:
352
+ return from < pos && to > pos;
353
+ case 1:
354
+ return from <= pos && to > pos;
355
+ case 2:
356
+ return to > pos;
357
+ case 4:
358
+ return true;
359
+ }
360
+ }
361
+ function resolveNode(node, pos, side, overlays) {
362
+ var _a;
363
+ while (node.from == node.to || (side < 1 ? node.from >= pos : node.from > pos) || (side > -1 ? node.to <= pos : node.to < pos)) {
364
+ let parent = !overlays && node instanceof TreeNode && node.index < 0 ? null : node.parent;
365
+ if (!parent)
366
+ return node;
367
+ node = parent;
368
+ }
369
+ let mode = overlays ? 0 : IterMode.IgnoreOverlays;
370
+ if (overlays)
371
+ for (let scan = node, parent = scan.parent;parent; scan = parent, parent = scan.parent) {
372
+ if (scan instanceof TreeNode && scan.index < 0 && ((_a = parent.enter(pos, side, mode)) === null || _a === undefined ? undefined : _a.from) != scan.from)
373
+ node = parent;
374
+ }
375
+ for (;; ) {
376
+ let inner = node.enter(pos, side, mode);
377
+ if (!inner)
378
+ return node;
379
+ node = inner;
380
+ }
381
+ }
382
+
383
+ class BaseNode {
384
+ cursor(mode = 0) {
385
+ return new TreeCursor(this, mode);
386
+ }
387
+ getChild(type, before = null, after = null) {
388
+ let r = getChildren(this, type, before, after);
389
+ return r.length ? r[0] : null;
390
+ }
391
+ getChildren(type, before = null, after = null) {
392
+ return getChildren(this, type, before, after);
393
+ }
394
+ resolve(pos, side = 0) {
395
+ return resolveNode(this, pos, side, false);
396
+ }
397
+ resolveInner(pos, side = 0) {
398
+ return resolveNode(this, pos, side, true);
399
+ }
400
+ matchContext(context) {
401
+ return matchNodeContext(this.parent, context);
402
+ }
403
+ enterUnfinishedNodesBefore(pos) {
404
+ let scan = this.childBefore(pos), node = this;
405
+ while (scan) {
406
+ let last = scan.lastChild;
407
+ if (!last || last.to != scan.to)
408
+ break;
409
+ if (last.type.isError && last.from == last.to) {
410
+ node = scan;
411
+ scan = last.prevSibling;
412
+ } else {
413
+ scan = last;
414
+ }
415
+ }
416
+ return node;
417
+ }
418
+ get node() {
419
+ return this;
420
+ }
421
+ get next() {
422
+ return this.parent;
423
+ }
424
+ }
425
+
426
+ class TreeNode extends BaseNode {
427
+ constructor(_tree, from, index, _parent) {
428
+ super();
429
+ this._tree = _tree;
430
+ this.from = from;
431
+ this.index = index;
432
+ this._parent = _parent;
433
+ }
434
+ get type() {
435
+ return this._tree.type;
436
+ }
437
+ get name() {
438
+ return this._tree.type.name;
439
+ }
440
+ get to() {
441
+ return this.from + this._tree.length;
442
+ }
443
+ nextChild(i, dir, pos, side, mode = 0) {
444
+ for (let parent = this;; ) {
445
+ for (let { children, positions } = parent._tree, e2 = dir > 0 ? children.length : -1;i != e2; i += dir) {
446
+ let next = children[i], start = positions[i] + parent.from, mounted;
447
+ if (!(mode & IterMode.EnterBracketed && next instanceof Tree && (mounted = MountedTree.get(next)) && !mounted.overlay && mounted.bracketed && pos >= start && pos <= start + next.length) && !checkSide(side, pos, start, start + next.length))
448
+ continue;
449
+ if (next instanceof TreeBuffer) {
450
+ if (mode & IterMode.ExcludeBuffers)
451
+ continue;
452
+ let index = next.findChild(0, next.buffer.length, dir, pos - start, side);
453
+ if (index > -1)
454
+ return new BufferNode(new BufferContext(parent, next, i, start), null, index);
455
+ } else if (mode & IterMode.IncludeAnonymous || (!next.type.isAnonymous || hasChild(next))) {
456
+ let mounted2;
457
+ if (!(mode & IterMode.IgnoreMounts) && (mounted2 = MountedTree.get(next)) && !mounted2.overlay)
458
+ return new TreeNode(mounted2.tree, start, i, parent);
459
+ let inner = new TreeNode(next, start, i, parent);
460
+ return mode & IterMode.IncludeAnonymous || !inner.type.isAnonymous ? inner : inner.nextChild(dir < 0 ? next.children.length - 1 : 0, dir, pos, side, mode);
461
+ }
462
+ }
463
+ if (mode & IterMode.IncludeAnonymous || !parent.type.isAnonymous)
464
+ return null;
465
+ if (parent.index >= 0)
466
+ i = parent.index + dir;
467
+ else
468
+ i = dir < 0 ? -1 : parent._parent._tree.children.length;
469
+ parent = parent._parent;
470
+ if (!parent)
471
+ return null;
472
+ }
473
+ }
474
+ get firstChild() {
475
+ return this.nextChild(0, 1, 0, 4);
476
+ }
477
+ get lastChild() {
478
+ return this.nextChild(this._tree.children.length - 1, -1, 0, 4);
479
+ }
480
+ childAfter(pos) {
481
+ return this.nextChild(0, 1, pos, 2);
482
+ }
483
+ childBefore(pos) {
484
+ return this.nextChild(this._tree.children.length - 1, -1, pos, -2);
485
+ }
486
+ prop(prop) {
487
+ return this._tree.prop(prop);
488
+ }
489
+ enter(pos, side, mode = 0) {
490
+ let mounted;
491
+ if (!(mode & IterMode.IgnoreOverlays) && (mounted = MountedTree.get(this._tree)) && mounted.overlay) {
492
+ let rPos = pos - this.from, enterBracketed = mode & IterMode.EnterBracketed && mounted.bracketed;
493
+ for (let { from, to } of mounted.overlay) {
494
+ if ((side > 0 || enterBracketed ? from <= rPos : from < rPos) && (side < 0 || enterBracketed ? to >= rPos : to > rPos))
495
+ return new TreeNode(mounted.tree, mounted.overlay[0].from + this.from, -1, this);
496
+ }
497
+ }
498
+ return this.nextChild(0, 1, pos, side, mode);
499
+ }
500
+ nextSignificantParent() {
501
+ let val = this;
502
+ while (val.type.isAnonymous && val._parent)
503
+ val = val._parent;
504
+ return val;
505
+ }
506
+ get parent() {
507
+ return this._parent ? this._parent.nextSignificantParent() : null;
508
+ }
509
+ get nextSibling() {
510
+ return this._parent && this.index >= 0 ? this._parent.nextChild(this.index + 1, 1, 0, 4) : null;
511
+ }
512
+ get prevSibling() {
513
+ return this._parent && this.index >= 0 ? this._parent.nextChild(this.index - 1, -1, 0, 4) : null;
514
+ }
515
+ get tree() {
516
+ return this._tree;
517
+ }
518
+ toTree() {
519
+ return this._tree;
520
+ }
521
+ toString() {
522
+ return this._tree.toString();
523
+ }
524
+ }
525
+ function getChildren(node, type, before, after) {
526
+ let cur = node.cursor(), result = [];
527
+ if (!cur.firstChild())
528
+ return result;
529
+ if (before != null)
530
+ for (let found = false;!found; ) {
531
+ found = cur.type.is(before);
532
+ if (!cur.nextSibling())
533
+ return result;
534
+ }
535
+ for (;; ) {
536
+ if (after != null && cur.type.is(after))
537
+ return result;
538
+ if (cur.type.is(type))
539
+ result.push(cur.node);
540
+ if (!cur.nextSibling())
541
+ return after == null ? result : [];
542
+ }
543
+ }
544
+ function matchNodeContext(node, context, i = context.length - 1) {
545
+ for (let p = node;i >= 0; p = p.parent) {
546
+ if (!p)
547
+ return false;
548
+ if (!p.type.isAnonymous) {
549
+ if (context[i] && context[i] != p.name)
550
+ return false;
551
+ i--;
552
+ }
553
+ }
554
+ return true;
555
+ }
556
+
557
+ class BufferContext {
558
+ constructor(parent, buffer, index, start) {
559
+ this.parent = parent;
560
+ this.buffer = buffer;
561
+ this.index = index;
562
+ this.start = start;
563
+ }
564
+ }
565
+
566
+ class BufferNode extends BaseNode {
567
+ get name() {
568
+ return this.type.name;
569
+ }
570
+ get from() {
571
+ return this.context.start + this.context.buffer.buffer[this.index + 1];
572
+ }
573
+ get to() {
574
+ return this.context.start + this.context.buffer.buffer[this.index + 2];
575
+ }
576
+ constructor(context, _parent, index) {
577
+ super();
578
+ this.context = context;
579
+ this._parent = _parent;
580
+ this.index = index;
581
+ this.type = context.buffer.set.types[context.buffer.buffer[index]];
582
+ }
583
+ child(dir, pos, side) {
584
+ let { buffer } = this.context;
585
+ let index = buffer.findChild(this.index + 4, buffer.buffer[this.index + 3], dir, pos - this.context.start, side);
586
+ return index < 0 ? null : new BufferNode(this.context, this, index);
587
+ }
588
+ get firstChild() {
589
+ return this.child(1, 0, 4);
590
+ }
591
+ get lastChild() {
592
+ return this.child(-1, 0, 4);
593
+ }
594
+ childAfter(pos) {
595
+ return this.child(1, pos, 2);
596
+ }
597
+ childBefore(pos) {
598
+ return this.child(-1, pos, -2);
599
+ }
600
+ prop(prop) {
601
+ return this.type.prop(prop);
602
+ }
603
+ enter(pos, side, mode = 0) {
604
+ if (mode & IterMode.ExcludeBuffers)
605
+ return null;
606
+ let { buffer } = this.context;
607
+ let index = buffer.findChild(this.index + 4, buffer.buffer[this.index + 3], side > 0 ? 1 : -1, pos - this.context.start, side);
608
+ return index < 0 ? null : new BufferNode(this.context, this, index);
609
+ }
610
+ get parent() {
611
+ return this._parent || this.context.parent.nextSignificantParent();
612
+ }
613
+ externalSibling(dir) {
614
+ return this._parent ? null : this.context.parent.nextChild(this.context.index + dir, dir, 0, 4);
615
+ }
616
+ get nextSibling() {
617
+ let { buffer } = this.context;
618
+ let after = buffer.buffer[this.index + 3];
619
+ if (after < (this._parent ? buffer.buffer[this._parent.index + 3] : buffer.buffer.length))
620
+ return new BufferNode(this.context, this._parent, after);
621
+ return this.externalSibling(1);
622
+ }
623
+ get prevSibling() {
624
+ let { buffer } = this.context;
625
+ let parentStart = this._parent ? this._parent.index + 4 : 0;
626
+ if (this.index == parentStart)
627
+ return this.externalSibling(-1);
628
+ return new BufferNode(this.context, this._parent, buffer.findChild(parentStart, this.index, -1, 0, 4));
629
+ }
630
+ get tree() {
631
+ return null;
632
+ }
633
+ toTree() {
634
+ let children = [], positions = [];
635
+ let { buffer } = this.context;
636
+ let startI = this.index + 4, endI = buffer.buffer[this.index + 3];
637
+ if (endI > startI) {
638
+ let from = buffer.buffer[this.index + 1];
639
+ children.push(buffer.slice(startI, endI, from));
640
+ positions.push(0);
641
+ }
642
+ return new Tree(this.type, children, positions, this.to - this.from);
643
+ }
644
+ toString() {
645
+ return this.context.buffer.childString(this.index);
646
+ }
647
+ }
648
+ function iterStack(heads) {
649
+ if (!heads.length)
650
+ return null;
651
+ let pick = 0, picked = heads[0];
652
+ for (let i = 1;i < heads.length; i++) {
653
+ let node = heads[i];
654
+ if (node.from > picked.from || node.to < picked.to) {
655
+ picked = node;
656
+ pick = i;
657
+ }
658
+ }
659
+ let next = picked instanceof TreeNode && picked.index < 0 ? null : picked.parent;
660
+ let newHeads = heads.slice();
661
+ if (next)
662
+ newHeads[pick] = next;
663
+ else
664
+ newHeads.splice(pick, 1);
665
+ return new StackIterator(newHeads, picked);
666
+ }
667
+
668
+ class StackIterator {
669
+ constructor(heads, node) {
670
+ this.heads = heads;
671
+ this.node = node;
672
+ }
673
+ get next() {
674
+ return iterStack(this.heads);
675
+ }
676
+ }
677
+ function stackIterator(tree, pos, side) {
678
+ let inner = tree.resolveInner(pos, side), layers = null;
679
+ for (let scan = inner instanceof TreeNode ? inner : inner.context.parent;scan; scan = scan.parent) {
680
+ if (scan.index < 0) {
681
+ let parent = scan.parent;
682
+ (layers || (layers = [inner])).push(parent.resolve(pos, side));
683
+ scan = parent;
684
+ } else {
685
+ let mount = MountedTree.get(scan.tree);
686
+ if (mount && mount.overlay && mount.overlay[0].from <= pos && mount.overlay[mount.overlay.length - 1].to >= pos) {
687
+ let root = new TreeNode(mount.tree, mount.overlay[0].from + scan.from, -1, scan);
688
+ (layers || (layers = [inner])).push(resolveNode(root, pos, side, false));
689
+ }
690
+ }
691
+ }
692
+ return layers ? iterStack(layers) : inner;
693
+ }
694
+
695
+ class TreeCursor {
696
+ get name() {
697
+ return this.type.name;
698
+ }
699
+ constructor(node, mode = 0) {
700
+ this.buffer = null;
701
+ this.stack = [];
702
+ this.index = 0;
703
+ this.bufferNode = null;
704
+ this.mode = mode & ~IterMode.EnterBracketed;
705
+ if (node instanceof TreeNode) {
706
+ this.yieldNode(node);
707
+ } else {
708
+ this._tree = node.context.parent;
709
+ this.buffer = node.context;
710
+ for (let n = node._parent;n; n = n._parent)
711
+ this.stack.unshift(n.index);
712
+ this.bufferNode = node;
713
+ this.yieldBuf(node.index);
714
+ }
715
+ }
716
+ yieldNode(node) {
717
+ if (!node)
718
+ return false;
719
+ this._tree = node;
720
+ this.type = node.type;
721
+ this.from = node.from;
722
+ this.to = node.to;
723
+ return true;
724
+ }
725
+ yieldBuf(index, type) {
726
+ this.index = index;
727
+ let { start, buffer } = this.buffer;
728
+ this.type = type || buffer.set.types[buffer.buffer[index]];
729
+ this.from = start + buffer.buffer[index + 1];
730
+ this.to = start + buffer.buffer[index + 2];
731
+ return true;
732
+ }
733
+ yield(node) {
734
+ if (!node)
735
+ return false;
736
+ if (node instanceof TreeNode) {
737
+ this.buffer = null;
738
+ return this.yieldNode(node);
739
+ }
740
+ this.buffer = node.context;
741
+ return this.yieldBuf(node.index, node.type);
742
+ }
743
+ toString() {
744
+ return this.buffer ? this.buffer.buffer.childString(this.index) : this._tree.toString();
745
+ }
746
+ enterChild(dir, pos, side) {
747
+ if (!this.buffer)
748
+ return this.yield(this._tree.nextChild(dir < 0 ? this._tree._tree.children.length - 1 : 0, dir, pos, side, this.mode));
749
+ let { buffer } = this.buffer;
750
+ let index = buffer.findChild(this.index + 4, buffer.buffer[this.index + 3], dir, pos - this.buffer.start, side);
751
+ if (index < 0)
752
+ return false;
753
+ this.stack.push(this.index);
754
+ return this.yieldBuf(index);
755
+ }
756
+ firstChild() {
757
+ return this.enterChild(1, 0, 4);
758
+ }
759
+ lastChild() {
760
+ return this.enterChild(-1, 0, 4);
761
+ }
762
+ childAfter(pos) {
763
+ return this.enterChild(1, pos, 2);
764
+ }
765
+ childBefore(pos) {
766
+ return this.enterChild(-1, pos, -2);
767
+ }
768
+ enter(pos, side, mode = this.mode) {
769
+ if (!this.buffer)
770
+ return this.yield(this._tree.enter(pos, side, mode));
771
+ return mode & IterMode.ExcludeBuffers ? false : this.enterChild(1, pos, side);
772
+ }
773
+ parent() {
774
+ if (!this.buffer)
775
+ return this.yieldNode(this.mode & IterMode.IncludeAnonymous ? this._tree._parent : this._tree.parent);
776
+ if (this.stack.length)
777
+ return this.yieldBuf(this.stack.pop());
778
+ let parent = this.mode & IterMode.IncludeAnonymous ? this.buffer.parent : this.buffer.parent.nextSignificantParent();
779
+ this.buffer = null;
780
+ return this.yieldNode(parent);
781
+ }
782
+ sibling(dir) {
783
+ if (!this.buffer)
784
+ return !this._tree._parent ? false : this.yield(this._tree.index < 0 ? null : this._tree._parent.nextChild(this._tree.index + dir, dir, 0, 4, this.mode));
785
+ let { buffer } = this.buffer, d = this.stack.length - 1;
786
+ if (dir < 0) {
787
+ let parentStart = d < 0 ? 0 : this.stack[d] + 4;
788
+ if (this.index != parentStart)
789
+ return this.yieldBuf(buffer.findChild(parentStart, this.index, -1, 0, 4));
790
+ } else {
791
+ let after = buffer.buffer[this.index + 3];
792
+ if (after < (d < 0 ? buffer.buffer.length : buffer.buffer[this.stack[d] + 3]))
793
+ return this.yieldBuf(after);
794
+ }
795
+ return d < 0 ? this.yield(this.buffer.parent.nextChild(this.buffer.index + dir, dir, 0, 4, this.mode)) : false;
796
+ }
797
+ nextSibling() {
798
+ return this.sibling(1);
799
+ }
800
+ prevSibling() {
801
+ return this.sibling(-1);
802
+ }
803
+ atLastNode(dir) {
804
+ let index, parent, { buffer } = this;
805
+ if (buffer) {
806
+ if (dir > 0) {
807
+ if (this.index < buffer.buffer.buffer.length)
808
+ return false;
809
+ } else {
810
+ for (let i = 0;i < this.index; i++)
811
+ if (buffer.buffer.buffer[i + 3] < this.index)
812
+ return false;
813
+ }
814
+ ({ index, parent } = buffer);
815
+ } else {
816
+ ({ index, _parent: parent } = this._tree);
817
+ }
818
+ for (;parent; { index, _parent: parent } = parent) {
819
+ if (index > -1)
820
+ for (let i = index + dir, e2 = dir < 0 ? -1 : parent._tree.children.length;i != e2; i += dir) {
821
+ let child = parent._tree.children[i];
822
+ if (this.mode & IterMode.IncludeAnonymous || child instanceof TreeBuffer || !child.type.isAnonymous || hasChild(child))
823
+ return false;
824
+ }
825
+ }
826
+ return true;
827
+ }
828
+ move(dir, enter) {
829
+ if (enter && this.enterChild(dir, 0, 4))
830
+ return true;
831
+ for (;; ) {
832
+ if (this.sibling(dir))
833
+ return true;
834
+ if (this.atLastNode(dir) || !this.parent())
835
+ return false;
836
+ }
837
+ }
838
+ next(enter = true) {
839
+ return this.move(1, enter);
840
+ }
841
+ prev(enter = true) {
842
+ return this.move(-1, enter);
843
+ }
844
+ moveTo(pos, side = 0) {
845
+ while (this.from == this.to || (side < 1 ? this.from >= pos : this.from > pos) || (side > -1 ? this.to <= pos : this.to < pos))
846
+ if (!this.parent())
847
+ break;
848
+ while (this.enterChild(1, pos, side)) {}
849
+ return this;
850
+ }
851
+ get node() {
852
+ if (!this.buffer)
853
+ return this._tree;
854
+ let cache = this.bufferNode, result = null, depth = 0;
855
+ if (cache && cache.context == this.buffer) {
856
+ scan:
857
+ for (let index = this.index, d = this.stack.length;d >= 0; ) {
858
+ for (let c = cache;c; c = c._parent)
859
+ if (c.index == index) {
860
+ if (index == this.index)
861
+ return c;
862
+ result = c;
863
+ depth = d + 1;
864
+ break scan;
865
+ }
866
+ index = this.stack[--d];
867
+ }
868
+ }
869
+ for (let i = depth;i < this.stack.length; i++)
870
+ result = new BufferNode(this.buffer, result, this.stack[i]);
871
+ return this.bufferNode = new BufferNode(this.buffer, result, this.index);
872
+ }
873
+ get tree() {
874
+ return this.buffer ? null : this._tree._tree;
875
+ }
876
+ iterate(enter, leave) {
877
+ for (let depth = 0;; ) {
878
+ let mustLeave = false;
879
+ if (this.type.isAnonymous || enter(this) !== false) {
880
+ if (this.firstChild()) {
881
+ depth++;
882
+ continue;
883
+ }
884
+ if (!this.type.isAnonymous)
885
+ mustLeave = true;
886
+ }
887
+ for (;; ) {
888
+ if (mustLeave && leave)
889
+ leave(this);
890
+ mustLeave = this.type.isAnonymous;
891
+ if (!depth)
892
+ return;
893
+ if (this.nextSibling())
894
+ break;
895
+ this.parent();
896
+ depth--;
897
+ mustLeave = true;
898
+ }
899
+ }
900
+ }
901
+ matchContext(context) {
902
+ if (!this.buffer)
903
+ return matchNodeContext(this.node.parent, context);
904
+ let { buffer } = this.buffer, { types } = buffer.set;
905
+ for (let i = context.length - 1, d = this.stack.length - 1;i >= 0; d--) {
906
+ if (d < 0)
907
+ return matchNodeContext(this._tree, context, i);
908
+ let type = types[buffer.buffer[this.stack[d]]];
909
+ if (!type.isAnonymous) {
910
+ if (context[i] && context[i] != type.name)
911
+ return false;
912
+ i--;
913
+ }
914
+ }
915
+ return true;
916
+ }
917
+ }
918
+ function hasChild(tree) {
919
+ return tree.children.some((ch) => ch instanceof TreeBuffer || !ch.type.isAnonymous || hasChild(ch));
920
+ }
921
+ function buildTree(data) {
922
+ var _a;
923
+ let { buffer, nodeSet, maxBufferLength = DefaultBufferLength, reused = [], minRepeatType = nodeSet.types.length } = data;
924
+ let cursor = Array.isArray(buffer) ? new FlatBufferCursor(buffer, buffer.length) : buffer;
925
+ let types = nodeSet.types;
926
+ let contextHash = 0, lookAhead = 0;
927
+ function takeNode(parentStart, minPos, children2, positions2, inRepeat, depth) {
928
+ let { id, start, end, size } = cursor;
929
+ let lookAheadAtStart = lookAhead, contextAtStart = contextHash;
930
+ if (size < 0) {
931
+ cursor.next();
932
+ if (size == -1) {
933
+ let node2 = reused[id];
934
+ children2.push(node2);
935
+ positions2.push(start - parentStart);
936
+ return;
937
+ } else if (size == -3) {
938
+ contextHash = id;
939
+ return;
940
+ } else if (size == -4) {
941
+ lookAhead = id;
942
+ return;
943
+ } else {
944
+ throw new RangeError(`Unrecognized record size: ${size}`);
945
+ }
946
+ }
947
+ let type = types[id], node, buffer2;
948
+ let startPos = start - parentStart;
949
+ if (end - start <= maxBufferLength && (buffer2 = findBufferSize(cursor.pos - minPos, inRepeat))) {
950
+ let data2 = new Uint16Array(buffer2.size - buffer2.skip);
951
+ let endPos = cursor.pos - buffer2.size, index = data2.length;
952
+ while (cursor.pos > endPos)
953
+ index = copyToBuffer(buffer2.start, data2, index);
954
+ node = new TreeBuffer(data2, end - buffer2.start, nodeSet);
955
+ startPos = buffer2.start - parentStart;
956
+ } else {
957
+ let endPos = cursor.pos - size;
958
+ cursor.next();
959
+ let localChildren = [], localPositions = [];
960
+ let localInRepeat = id >= minRepeatType ? id : -1;
961
+ let lastGroup = 0, lastEnd = end;
962
+ while (cursor.pos > endPos) {
963
+ if (localInRepeat >= 0 && cursor.id == localInRepeat && cursor.size >= 0) {
964
+ if (cursor.end <= lastEnd - maxBufferLength) {
965
+ makeRepeatLeaf(localChildren, localPositions, start, lastGroup, cursor.end, lastEnd, localInRepeat, lookAheadAtStart, contextAtStart);
966
+ lastGroup = localChildren.length;
967
+ lastEnd = cursor.end;
968
+ }
969
+ cursor.next();
970
+ } else if (depth > 2500) {
971
+ takeFlatNode(start, endPos, localChildren, localPositions);
972
+ } else {
973
+ takeNode(start, endPos, localChildren, localPositions, localInRepeat, depth + 1);
974
+ }
975
+ }
976
+ if (localInRepeat >= 0 && lastGroup > 0 && lastGroup < localChildren.length)
977
+ makeRepeatLeaf(localChildren, localPositions, start, lastGroup, start, lastEnd, localInRepeat, lookAheadAtStart, contextAtStart);
978
+ localChildren.reverse();
979
+ localPositions.reverse();
980
+ if (localInRepeat > -1 && lastGroup > 0) {
981
+ let make = makeBalanced(type, contextAtStart);
982
+ node = balanceRange(type, localChildren, localPositions, 0, localChildren.length, 0, end - start, make, make);
983
+ } else {
984
+ node = makeTree(type, localChildren, localPositions, end - start, lookAheadAtStart - end, contextAtStart);
985
+ }
986
+ }
987
+ children2.push(node);
988
+ positions2.push(startPos);
989
+ }
990
+ function takeFlatNode(parentStart, minPos, children2, positions2) {
991
+ let nodes = [];
992
+ let nodeCount = 0, stopAt = -1;
993
+ while (cursor.pos > minPos) {
994
+ let { id, start, end, size } = cursor;
995
+ if (size > 4) {
996
+ cursor.next();
997
+ } else if (stopAt > -1 && start < stopAt) {
998
+ break;
999
+ } else {
1000
+ if (stopAt < 0)
1001
+ stopAt = end - maxBufferLength;
1002
+ nodes.push(id, start, end);
1003
+ nodeCount++;
1004
+ cursor.next();
1005
+ }
1006
+ }
1007
+ if (nodeCount) {
1008
+ let buffer2 = new Uint16Array(nodeCount * 4);
1009
+ let start = nodes[nodes.length - 2];
1010
+ for (let i = nodes.length - 3, j = 0;i >= 0; i -= 3) {
1011
+ buffer2[j++] = nodes[i];
1012
+ buffer2[j++] = nodes[i + 1] - start;
1013
+ buffer2[j++] = nodes[i + 2] - start;
1014
+ buffer2[j++] = j;
1015
+ }
1016
+ children2.push(new TreeBuffer(buffer2, nodes[2] - start, nodeSet));
1017
+ positions2.push(start - parentStart);
1018
+ }
1019
+ }
1020
+ function makeBalanced(type, contextHash2) {
1021
+ return (children2, positions2, length2) => {
1022
+ let lookAhead2 = 0, lastI = children2.length - 1, last, lookAheadProp;
1023
+ if (lastI >= 0 && (last = children2[lastI]) instanceof Tree) {
1024
+ if (!lastI && last.type == type && last.length == length2)
1025
+ return last;
1026
+ if (lookAheadProp = last.prop(NodeProp.lookAhead))
1027
+ lookAhead2 = positions2[lastI] + last.length + lookAheadProp;
1028
+ }
1029
+ return makeTree(type, children2, positions2, length2, lookAhead2, contextHash2);
1030
+ };
1031
+ }
1032
+ function makeRepeatLeaf(children2, positions2, base, i, from, to, type, lookAhead2, contextHash2) {
1033
+ let localChildren = [], localPositions = [];
1034
+ while (children2.length > i) {
1035
+ localChildren.push(children2.pop());
1036
+ localPositions.push(positions2.pop() + base - from);
1037
+ }
1038
+ children2.push(makeTree(nodeSet.types[type], localChildren, localPositions, to - from, lookAhead2 - to, contextHash2));
1039
+ positions2.push(from - base);
1040
+ }
1041
+ function makeTree(type, children2, positions2, length2, lookAhead2, contextHash2, props) {
1042
+ if (contextHash2) {
1043
+ let pair = [NodeProp.contextHash, contextHash2];
1044
+ props = props ? [pair].concat(props) : [pair];
1045
+ }
1046
+ if (lookAhead2 > 25) {
1047
+ let pair = [NodeProp.lookAhead, lookAhead2];
1048
+ props = props ? [pair].concat(props) : [pair];
1049
+ }
1050
+ return new Tree(type, children2, positions2, length2, props);
1051
+ }
1052
+ function findBufferSize(maxSize, inRepeat) {
1053
+ let fork = cursor.fork();
1054
+ let size = 0, start = 0, skip = 0, minStart = fork.end - maxBufferLength;
1055
+ let result = { size: 0, start: 0, skip: 0 };
1056
+ scan:
1057
+ for (let minPos = fork.pos - maxSize;fork.pos > minPos; ) {
1058
+ let nodeSize = fork.size;
1059
+ if (fork.id == inRepeat && nodeSize >= 0) {
1060
+ result.size = size;
1061
+ result.start = start;
1062
+ result.skip = skip;
1063
+ skip += 4;
1064
+ size += 4;
1065
+ fork.next();
1066
+ continue;
1067
+ }
1068
+ let startPos = fork.pos - nodeSize;
1069
+ if (nodeSize < 0 || startPos < minPos || fork.start < minStart)
1070
+ break;
1071
+ let localSkipped = fork.id >= minRepeatType ? 4 : 0;
1072
+ let nodeStart = fork.start;
1073
+ fork.next();
1074
+ while (fork.pos > startPos) {
1075
+ if (fork.size < 0) {
1076
+ if (fork.size == -3 || fork.size == -4)
1077
+ localSkipped += 4;
1078
+ else
1079
+ break scan;
1080
+ } else if (fork.id >= minRepeatType) {
1081
+ localSkipped += 4;
1082
+ }
1083
+ fork.next();
1084
+ }
1085
+ start = nodeStart;
1086
+ size += nodeSize;
1087
+ skip += localSkipped;
1088
+ }
1089
+ if (inRepeat < 0 || size == maxSize) {
1090
+ result.size = size;
1091
+ result.start = start;
1092
+ result.skip = skip;
1093
+ }
1094
+ return result.size > 4 ? result : undefined;
1095
+ }
1096
+ function copyToBuffer(bufferStart, buffer2, index) {
1097
+ let { id, start, end, size } = cursor;
1098
+ cursor.next();
1099
+ if (size >= 0 && id < minRepeatType) {
1100
+ let startIndex = index;
1101
+ if (size > 4) {
1102
+ let endPos = cursor.pos - (size - 4);
1103
+ while (cursor.pos > endPos)
1104
+ index = copyToBuffer(bufferStart, buffer2, index);
1105
+ }
1106
+ buffer2[--index] = startIndex;
1107
+ buffer2[--index] = end - bufferStart;
1108
+ buffer2[--index] = start - bufferStart;
1109
+ buffer2[--index] = id;
1110
+ } else if (size == -3) {
1111
+ contextHash = id;
1112
+ } else if (size == -4) {
1113
+ lookAhead = id;
1114
+ }
1115
+ return index;
1116
+ }
1117
+ let children = [], positions = [];
1118
+ while (cursor.pos > 0)
1119
+ takeNode(data.start || 0, data.bufferStart || 0, children, positions, -1, 0);
1120
+ let length = (_a = data.length) !== null && _a !== undefined ? _a : children.length ? positions[0] + children[0].length : 0;
1121
+ return new Tree(types[data.topID], children.reverse(), positions.reverse(), length);
1122
+ }
1123
+ var nodeSizeCache = new WeakMap;
1124
+ function nodeSize(balanceType, node) {
1125
+ if (!balanceType.isAnonymous || node instanceof TreeBuffer || node.type != balanceType)
1126
+ return 1;
1127
+ let size = nodeSizeCache.get(node);
1128
+ if (size == null) {
1129
+ size = 1;
1130
+ for (let child of node.children) {
1131
+ if (child.type != balanceType || !(child instanceof Tree)) {
1132
+ size = 1;
1133
+ break;
1134
+ }
1135
+ size += nodeSize(balanceType, child);
1136
+ }
1137
+ nodeSizeCache.set(node, size);
1138
+ }
1139
+ return size;
1140
+ }
1141
+ function balanceRange(balanceType, children, positions, from, to, start, length, mkTop, mkTree) {
1142
+ let total = 0;
1143
+ for (let i = from;i < to; i++)
1144
+ total += nodeSize(balanceType, children[i]);
1145
+ let maxChild = Math.ceil(total * 1.5 / 8);
1146
+ let localChildren = [], localPositions = [];
1147
+ function divide(children2, positions2, from2, to2, offset) {
1148
+ for (let i = from2;i < to2; ) {
1149
+ let groupFrom = i, groupStart = positions2[i], groupSize = nodeSize(balanceType, children2[i]);
1150
+ i++;
1151
+ for (;i < to2; i++) {
1152
+ let nextSize = nodeSize(balanceType, children2[i]);
1153
+ if (groupSize + nextSize >= maxChild)
1154
+ break;
1155
+ groupSize += nextSize;
1156
+ }
1157
+ if (i == groupFrom + 1) {
1158
+ if (groupSize > maxChild) {
1159
+ let only = children2[groupFrom];
1160
+ divide(only.children, only.positions, 0, only.children.length, positions2[groupFrom] + offset);
1161
+ continue;
1162
+ }
1163
+ localChildren.push(children2[groupFrom]);
1164
+ } else {
1165
+ let length2 = positions2[i - 1] + children2[i - 1].length - groupStart;
1166
+ localChildren.push(balanceRange(balanceType, children2, positions2, groupFrom, i, groupStart, length2, null, mkTree));
1167
+ }
1168
+ localPositions.push(groupStart + offset - start);
1169
+ }
1170
+ }
1171
+ divide(children, positions, from, to, 0);
1172
+ return (mkTop || mkTree)(localChildren, localPositions, length);
1173
+ }
1174
+ class Parser {
1175
+ startParse(input, fragments, ranges) {
1176
+ if (typeof input == "string")
1177
+ input = new StringInput(input);
1178
+ ranges = !ranges ? [new Range(0, input.length)] : ranges.length ? ranges.map((r) => new Range(r.from, r.to)) : [new Range(0, 0)];
1179
+ return this.createParse(input, fragments || [], ranges);
1180
+ }
1181
+ parse(input, fragments, ranges) {
1182
+ let parse = this.startParse(input, fragments, ranges);
1183
+ for (;; ) {
1184
+ let done = parse.advance();
1185
+ if (done)
1186
+ return done;
1187
+ }
1188
+ }
1189
+ }
1190
+
1191
+ class StringInput {
1192
+ constructor(string) {
1193
+ this.string = string;
1194
+ }
1195
+ get length() {
1196
+ return this.string.length;
1197
+ }
1198
+ chunk(from) {
1199
+ return this.string.slice(from);
1200
+ }
1201
+ get lineChunks() {
1202
+ return false;
1203
+ }
1204
+ read(from, to) {
1205
+ return this.string.slice(from, to);
1206
+ }
1207
+ }
1208
+ var stoppedInner = new NodeProp({ perNode: true });
1209
+
1210
+ // ../../node_modules/@lezer/lr/dist/index.js
1211
+ class Stack {
1212
+ constructor(p, stack, state, reducePos, pos, score, buffer, bufferBase, curContext, lookAhead = 0, parent) {
1213
+ this.p = p;
1214
+ this.stack = stack;
1215
+ this.state = state;
1216
+ this.reducePos = reducePos;
1217
+ this.pos = pos;
1218
+ this.score = score;
1219
+ this.buffer = buffer;
1220
+ this.bufferBase = bufferBase;
1221
+ this.curContext = curContext;
1222
+ this.lookAhead = lookAhead;
1223
+ this.parent = parent;
1224
+ }
1225
+ toString() {
1226
+ return `[${this.stack.filter((_, i) => i % 3 == 0).concat(this.state)}]@${this.pos}${this.score ? "!" + this.score : ""}`;
1227
+ }
1228
+ static start(p, state, pos = 0) {
1229
+ let cx = p.parser.context;
1230
+ return new Stack(p, [], state, pos, pos, 0, [], 0, cx ? new StackContext(cx, cx.start) : null, 0, null);
1231
+ }
1232
+ get context() {
1233
+ return this.curContext ? this.curContext.context : null;
1234
+ }
1235
+ pushState(state, start) {
1236
+ this.stack.push(this.state, start, this.bufferBase + this.buffer.length);
1237
+ this.state = state;
1238
+ }
1239
+ reduce(action) {
1240
+ var _a;
1241
+ let depth = action >> 19, type = action & 65535;
1242
+ let { parser } = this.p;
1243
+ let lookaheadRecord = this.reducePos < this.pos - 25 && this.setLookAhead(this.pos);
1244
+ let dPrec = parser.dynamicPrecedence(type);
1245
+ if (dPrec)
1246
+ this.score += dPrec;
1247
+ if (depth == 0) {
1248
+ if (type < parser.minRepeatTerm && this.reducePos < this.pos)
1249
+ this.reducePos = this.pos;
1250
+ this.pushState(parser.getGoto(this.state, type, true), this.reducePos);
1251
+ if (type < parser.minRepeatTerm)
1252
+ this.storeNode(type, this.reducePos, this.reducePos, lookaheadRecord ? 8 : 4, true);
1253
+ this.reduceContext(type, this.reducePos);
1254
+ return;
1255
+ }
1256
+ let base = this.stack.length - (depth - 1) * 3 - (action & 262144 ? 6 : 0);
1257
+ let start = base ? this.stack[base - 2] : this.p.ranges[0].from;
1258
+ if (type < parser.minRepeatTerm && start == this.reducePos && this.reducePos < this.pos)
1259
+ this.reducePos = this.pos;
1260
+ let size = this.reducePos - start;
1261
+ if (size >= 2000 && !((_a = this.p.parser.nodeSet.types[type]) === null || _a === undefined ? undefined : _a.isAnonymous)) {
1262
+ if (start == this.p.lastBigReductionStart) {
1263
+ this.p.bigReductionCount++;
1264
+ this.p.lastBigReductionSize = size;
1265
+ } else if (this.p.lastBigReductionSize < size) {
1266
+ this.p.bigReductionCount = 1;
1267
+ this.p.lastBigReductionStart = start;
1268
+ this.p.lastBigReductionSize = size;
1269
+ }
1270
+ }
1271
+ let bufferBase = base ? this.stack[base - 1] : 0, count = this.bufferBase + this.buffer.length - bufferBase;
1272
+ if (type < parser.minRepeatTerm || action & 131072) {
1273
+ let pos = parser.stateFlag(this.state, 1) ? this.pos : this.reducePos;
1274
+ this.storeNode(type, start, pos, count + 4, true);
1275
+ }
1276
+ if (action & 262144) {
1277
+ this.state = this.stack[base];
1278
+ } else {
1279
+ let baseStateID = this.stack[base - 3];
1280
+ this.state = parser.getGoto(baseStateID, type, true);
1281
+ }
1282
+ while (this.stack.length > base)
1283
+ this.stack.pop();
1284
+ this.reduceContext(type, start);
1285
+ }
1286
+ storeNode(term, start, end, size = 4, mustSink = false) {
1287
+ if (term == 0 && (!this.stack.length || this.stack[this.stack.length - 1] < this.buffer.length + this.bufferBase)) {
1288
+ let top = this.buffer.length;
1289
+ if (top > 0 && this.buffer[top - 4] == 0 && this.buffer[top - 1] > -1) {
1290
+ if (start == end)
1291
+ return;
1292
+ if (this.buffer[top - 2] >= start) {
1293
+ this.buffer[top - 2] = end;
1294
+ return;
1295
+ }
1296
+ }
1297
+ }
1298
+ if (!mustSink || this.pos == end) {
1299
+ this.buffer.push(term, start, end, size);
1300
+ } else {
1301
+ let index = this.buffer.length;
1302
+ if (index > 0 && (this.buffer[index - 4] != 0 || this.buffer[index - 1] < 0)) {
1303
+ let mustMove = false;
1304
+ for (let scan = index;scan > 0 && this.buffer[scan - 2] > end; scan -= 4) {
1305
+ if (this.buffer[scan - 1] >= 0) {
1306
+ mustMove = true;
1307
+ break;
1308
+ }
1309
+ }
1310
+ if (mustMove)
1311
+ while (index > 0 && this.buffer[index - 2] > end) {
1312
+ this.buffer[index] = this.buffer[index - 4];
1313
+ this.buffer[index + 1] = this.buffer[index - 3];
1314
+ this.buffer[index + 2] = this.buffer[index - 2];
1315
+ this.buffer[index + 3] = this.buffer[index - 1];
1316
+ index -= 4;
1317
+ if (size > 4)
1318
+ size -= 4;
1319
+ }
1320
+ }
1321
+ this.buffer[index] = term;
1322
+ this.buffer[index + 1] = start;
1323
+ this.buffer[index + 2] = end;
1324
+ this.buffer[index + 3] = size;
1325
+ }
1326
+ }
1327
+ shift(action, type, start, end) {
1328
+ if (action & 131072) {
1329
+ this.pushState(action & 65535, this.pos);
1330
+ } else if ((action & 262144) == 0) {
1331
+ let nextState = action, { parser } = this.p;
1332
+ this.pos = end;
1333
+ let skipped = parser.stateFlag(nextState, 1);
1334
+ if (!skipped && (end > start || type <= parser.maxNode))
1335
+ this.reducePos = end;
1336
+ this.pushState(nextState, skipped ? start : Math.min(start, this.reducePos));
1337
+ this.shiftContext(type, start);
1338
+ if (type <= parser.maxNode)
1339
+ this.buffer.push(type, start, end, 4);
1340
+ } else {
1341
+ this.pos = end;
1342
+ this.shiftContext(type, start);
1343
+ if (type <= this.p.parser.maxNode)
1344
+ this.buffer.push(type, start, end, 4);
1345
+ }
1346
+ }
1347
+ apply(action, next, nextStart, nextEnd) {
1348
+ if (action & 65536)
1349
+ this.reduce(action);
1350
+ else
1351
+ this.shift(action, next, nextStart, nextEnd);
1352
+ }
1353
+ useNode(value, next) {
1354
+ let index = this.p.reused.length - 1;
1355
+ if (index < 0 || this.p.reused[index] != value) {
1356
+ this.p.reused.push(value);
1357
+ index++;
1358
+ }
1359
+ let start = this.pos;
1360
+ this.reducePos = this.pos = start + value.length;
1361
+ this.pushState(next, start);
1362
+ this.buffer.push(index, start, this.reducePos, -1);
1363
+ if (this.curContext)
1364
+ this.updateContext(this.curContext.tracker.reuse(this.curContext.context, value, this, this.p.stream.reset(this.pos - value.length)));
1365
+ }
1366
+ split() {
1367
+ let parent = this;
1368
+ let off = parent.buffer.length;
1369
+ if (off && parent.buffer[off - 4] == 0)
1370
+ off -= 4;
1371
+ while (off > 0 && parent.buffer[off - 2] > parent.reducePos)
1372
+ off -= 4;
1373
+ let buffer = parent.buffer.slice(off), base = parent.bufferBase + off;
1374
+ while (parent && base == parent.bufferBase)
1375
+ parent = parent.parent;
1376
+ return new Stack(this.p, this.stack.slice(), this.state, this.reducePos, this.pos, this.score, buffer, base, this.curContext, this.lookAhead, parent);
1377
+ }
1378
+ recoverByDelete(next, nextEnd) {
1379
+ let isNode = next <= this.p.parser.maxNode;
1380
+ if (isNode)
1381
+ this.storeNode(next, this.pos, nextEnd, 4);
1382
+ this.storeNode(0, this.pos, nextEnd, isNode ? 8 : 4);
1383
+ this.pos = this.reducePos = nextEnd;
1384
+ this.score -= 190;
1385
+ }
1386
+ canShift(term) {
1387
+ for (let sim = new SimulatedStack(this);; ) {
1388
+ let action = this.p.parser.stateSlot(sim.state, 4) || this.p.parser.hasAction(sim.state, term);
1389
+ if (action == 0)
1390
+ return false;
1391
+ if ((action & 65536) == 0)
1392
+ return true;
1393
+ sim.reduce(action);
1394
+ }
1395
+ }
1396
+ recoverByInsert(next) {
1397
+ if (this.stack.length >= 300)
1398
+ return [];
1399
+ let nextStates = this.p.parser.nextStates(this.state);
1400
+ if (nextStates.length > 4 << 1 || this.stack.length >= 120) {
1401
+ let best = [];
1402
+ for (let i = 0, s;i < nextStates.length; i += 2) {
1403
+ if ((s = nextStates[i + 1]) != this.state && this.p.parser.hasAction(s, next))
1404
+ best.push(nextStates[i], s);
1405
+ }
1406
+ if (this.stack.length < 120)
1407
+ for (let i = 0;best.length < 4 << 1 && i < nextStates.length; i += 2) {
1408
+ let s = nextStates[i + 1];
1409
+ if (!best.some((v, i2) => i2 & 1 && v == s))
1410
+ best.push(nextStates[i], s);
1411
+ }
1412
+ nextStates = best;
1413
+ }
1414
+ let result = [];
1415
+ for (let i = 0;i < nextStates.length && result.length < 4; i += 2) {
1416
+ let s = nextStates[i + 1];
1417
+ if (s == this.state)
1418
+ continue;
1419
+ let stack = this.split();
1420
+ stack.pushState(s, this.pos);
1421
+ stack.storeNode(0, stack.pos, stack.pos, 4, true);
1422
+ stack.shiftContext(nextStates[i], this.pos);
1423
+ stack.reducePos = this.pos;
1424
+ stack.score -= 200;
1425
+ result.push(stack);
1426
+ }
1427
+ return result;
1428
+ }
1429
+ forceReduce() {
1430
+ let { parser } = this.p;
1431
+ let reduce = parser.stateSlot(this.state, 5);
1432
+ if ((reduce & 65536) == 0)
1433
+ return false;
1434
+ if (!parser.validAction(this.state, reduce)) {
1435
+ let depth = reduce >> 19, term = reduce & 65535;
1436
+ let target = this.stack.length - depth * 3;
1437
+ if (target < 0 || parser.getGoto(this.stack[target], term, false) < 0) {
1438
+ let backup = this.findForcedReduction();
1439
+ if (backup == null)
1440
+ return false;
1441
+ reduce = backup;
1442
+ }
1443
+ this.storeNode(0, this.pos, this.pos, 4, true);
1444
+ this.score -= 100;
1445
+ }
1446
+ this.reducePos = this.pos;
1447
+ this.reduce(reduce);
1448
+ return true;
1449
+ }
1450
+ findForcedReduction() {
1451
+ let { parser } = this.p, seen = [];
1452
+ let explore = (state, depth) => {
1453
+ if (seen.includes(state))
1454
+ return;
1455
+ seen.push(state);
1456
+ return parser.allActions(state, (action) => {
1457
+ if (action & (262144 | 131072))
1458
+ ;
1459
+ else if (action & 65536) {
1460
+ let rDepth = (action >> 19) - depth;
1461
+ if (rDepth > 1) {
1462
+ let term = action & 65535, target = this.stack.length - rDepth * 3;
1463
+ if (target >= 0 && parser.getGoto(this.stack[target], term, false) >= 0)
1464
+ return rDepth << 19 | 65536 | term;
1465
+ }
1466
+ } else {
1467
+ let found = explore(action, depth + 1);
1468
+ if (found != null)
1469
+ return found;
1470
+ }
1471
+ });
1472
+ };
1473
+ return explore(this.state, 0);
1474
+ }
1475
+ forceAll() {
1476
+ while (!this.p.parser.stateFlag(this.state, 2)) {
1477
+ if (!this.forceReduce()) {
1478
+ this.storeNode(0, this.pos, this.pos, 4, true);
1479
+ break;
1480
+ }
1481
+ }
1482
+ return this;
1483
+ }
1484
+ get deadEnd() {
1485
+ if (this.stack.length != 3)
1486
+ return false;
1487
+ let { parser } = this.p;
1488
+ return parser.data[parser.stateSlot(this.state, 1)] == 65535 && !parser.stateSlot(this.state, 4);
1489
+ }
1490
+ restart() {
1491
+ this.storeNode(0, this.pos, this.pos, 4, true);
1492
+ this.state = this.stack[0];
1493
+ this.stack.length = 0;
1494
+ }
1495
+ sameState(other) {
1496
+ if (this.state != other.state || this.stack.length != other.stack.length)
1497
+ return false;
1498
+ for (let i = 0;i < this.stack.length; i += 3)
1499
+ if (this.stack[i] != other.stack[i])
1500
+ return false;
1501
+ return true;
1502
+ }
1503
+ get parser() {
1504
+ return this.p.parser;
1505
+ }
1506
+ dialectEnabled(dialectID) {
1507
+ return this.p.parser.dialect.flags[dialectID];
1508
+ }
1509
+ shiftContext(term, start) {
1510
+ if (this.curContext)
1511
+ this.updateContext(this.curContext.tracker.shift(this.curContext.context, term, this, this.p.stream.reset(start)));
1512
+ }
1513
+ reduceContext(term, start) {
1514
+ if (this.curContext)
1515
+ this.updateContext(this.curContext.tracker.reduce(this.curContext.context, term, this, this.p.stream.reset(start)));
1516
+ }
1517
+ emitContext() {
1518
+ let last = this.buffer.length - 1;
1519
+ if (last < 0 || this.buffer[last] != -3)
1520
+ this.buffer.push(this.curContext.hash, this.pos, this.pos, -3);
1521
+ }
1522
+ emitLookAhead() {
1523
+ let last = this.buffer.length - 1;
1524
+ if (last < 0 || this.buffer[last] != -4)
1525
+ this.buffer.push(this.lookAhead, this.pos, this.pos, -4);
1526
+ }
1527
+ updateContext(context) {
1528
+ if (context != this.curContext.context) {
1529
+ let newCx = new StackContext(this.curContext.tracker, context);
1530
+ if (newCx.hash != this.curContext.hash)
1531
+ this.emitContext();
1532
+ this.curContext = newCx;
1533
+ }
1534
+ }
1535
+ setLookAhead(lookAhead) {
1536
+ if (lookAhead <= this.lookAhead)
1537
+ return false;
1538
+ this.emitLookAhead();
1539
+ this.lookAhead = lookAhead;
1540
+ return true;
1541
+ }
1542
+ close() {
1543
+ if (this.curContext && this.curContext.tracker.strict)
1544
+ this.emitContext();
1545
+ if (this.lookAhead > 0)
1546
+ this.emitLookAhead();
1547
+ }
1548
+ }
1549
+
1550
+ class StackContext {
1551
+ constructor(tracker, context) {
1552
+ this.tracker = tracker;
1553
+ this.context = context;
1554
+ this.hash = tracker.strict ? tracker.hash(context) : 0;
1555
+ }
1556
+ }
1557
+
1558
+ class SimulatedStack {
1559
+ constructor(start) {
1560
+ this.start = start;
1561
+ this.state = start.state;
1562
+ this.stack = start.stack;
1563
+ this.base = this.stack.length;
1564
+ }
1565
+ reduce(action) {
1566
+ let term = action & 65535, depth = action >> 19;
1567
+ if (depth == 0) {
1568
+ if (this.stack == this.start.stack)
1569
+ this.stack = this.stack.slice();
1570
+ this.stack.push(this.state, 0, 0);
1571
+ this.base += 3;
1572
+ } else {
1573
+ this.base -= (depth - 1) * 3;
1574
+ }
1575
+ let goto = this.start.p.parser.getGoto(this.stack[this.base - 3], term, true);
1576
+ this.state = goto;
1577
+ }
1578
+ }
1579
+
1580
+ class StackBufferCursor {
1581
+ constructor(stack, pos, index) {
1582
+ this.stack = stack;
1583
+ this.pos = pos;
1584
+ this.index = index;
1585
+ this.buffer = stack.buffer;
1586
+ if (this.index == 0)
1587
+ this.maybeNext();
1588
+ }
1589
+ static create(stack, pos = stack.bufferBase + stack.buffer.length) {
1590
+ return new StackBufferCursor(stack, pos, pos - stack.bufferBase);
1591
+ }
1592
+ maybeNext() {
1593
+ let next = this.stack.parent;
1594
+ if (next != null) {
1595
+ this.index = this.stack.bufferBase - next.bufferBase;
1596
+ this.stack = next;
1597
+ this.buffer = next.buffer;
1598
+ }
1599
+ }
1600
+ get id() {
1601
+ return this.buffer[this.index - 4];
1602
+ }
1603
+ get start() {
1604
+ return this.buffer[this.index - 3];
1605
+ }
1606
+ get end() {
1607
+ return this.buffer[this.index - 2];
1608
+ }
1609
+ get size() {
1610
+ return this.buffer[this.index - 1];
1611
+ }
1612
+ next() {
1613
+ this.index -= 4;
1614
+ this.pos -= 4;
1615
+ if (this.index == 0)
1616
+ this.maybeNext();
1617
+ }
1618
+ fork() {
1619
+ return new StackBufferCursor(this.stack, this.pos, this.index);
1620
+ }
1621
+ }
1622
+ function decodeArray(input, Type = Uint16Array) {
1623
+ if (typeof input != "string")
1624
+ return input;
1625
+ let array = null;
1626
+ for (let pos = 0, out = 0;pos < input.length; ) {
1627
+ let value = 0;
1628
+ for (;; ) {
1629
+ let next = input.charCodeAt(pos++), stop = false;
1630
+ if (next == 126) {
1631
+ value = 65535;
1632
+ break;
1633
+ }
1634
+ if (next >= 92)
1635
+ next--;
1636
+ if (next >= 34)
1637
+ next--;
1638
+ let digit = next - 32;
1639
+ if (digit >= 46) {
1640
+ digit -= 46;
1641
+ stop = true;
1642
+ }
1643
+ value += digit;
1644
+ if (stop)
1645
+ break;
1646
+ value *= 46;
1647
+ }
1648
+ if (array)
1649
+ array[out++] = value;
1650
+ else
1651
+ array = new Type(value);
1652
+ }
1653
+ return array;
1654
+ }
1655
+
1656
+ class CachedToken {
1657
+ constructor() {
1658
+ this.start = -1;
1659
+ this.value = -1;
1660
+ this.end = -1;
1661
+ this.extended = -1;
1662
+ this.lookAhead = 0;
1663
+ this.mask = 0;
1664
+ this.context = 0;
1665
+ }
1666
+ }
1667
+ var nullToken = new CachedToken;
1668
+
1669
+ class InputStream {
1670
+ constructor(input, ranges) {
1671
+ this.input = input;
1672
+ this.ranges = ranges;
1673
+ this.chunk = "";
1674
+ this.chunkOff = 0;
1675
+ this.chunk2 = "";
1676
+ this.chunk2Pos = 0;
1677
+ this.next = -1;
1678
+ this.token = nullToken;
1679
+ this.rangeIndex = 0;
1680
+ this.pos = this.chunkPos = ranges[0].from;
1681
+ this.range = ranges[0];
1682
+ this.end = ranges[ranges.length - 1].to;
1683
+ this.readNext();
1684
+ }
1685
+ resolveOffset(offset, assoc) {
1686
+ let range = this.range, index = this.rangeIndex;
1687
+ let pos = this.pos + offset;
1688
+ while (pos < range.from) {
1689
+ if (!index)
1690
+ return null;
1691
+ let next = this.ranges[--index];
1692
+ pos -= range.from - next.to;
1693
+ range = next;
1694
+ }
1695
+ while (assoc < 0 ? pos > range.to : pos >= range.to) {
1696
+ if (index == this.ranges.length - 1)
1697
+ return null;
1698
+ let next = this.ranges[++index];
1699
+ pos += next.from - range.to;
1700
+ range = next;
1701
+ }
1702
+ return pos;
1703
+ }
1704
+ clipPos(pos) {
1705
+ if (pos >= this.range.from && pos < this.range.to)
1706
+ return pos;
1707
+ for (let range of this.ranges)
1708
+ if (range.to > pos)
1709
+ return Math.max(pos, range.from);
1710
+ return this.end;
1711
+ }
1712
+ peek(offset) {
1713
+ let idx = this.chunkOff + offset, pos, result;
1714
+ if (idx >= 0 && idx < this.chunk.length) {
1715
+ pos = this.pos + offset;
1716
+ result = this.chunk.charCodeAt(idx);
1717
+ } else {
1718
+ let resolved = this.resolveOffset(offset, 1);
1719
+ if (resolved == null)
1720
+ return -1;
1721
+ pos = resolved;
1722
+ if (pos >= this.chunk2Pos && pos < this.chunk2Pos + this.chunk2.length) {
1723
+ result = this.chunk2.charCodeAt(pos - this.chunk2Pos);
1724
+ } else {
1725
+ let i = this.rangeIndex, range = this.range;
1726
+ while (range.to <= pos)
1727
+ range = this.ranges[++i];
1728
+ this.chunk2 = this.input.chunk(this.chunk2Pos = pos);
1729
+ if (pos + this.chunk2.length > range.to)
1730
+ this.chunk2 = this.chunk2.slice(0, range.to - pos);
1731
+ result = this.chunk2.charCodeAt(0);
1732
+ }
1733
+ }
1734
+ if (pos >= this.token.lookAhead)
1735
+ this.token.lookAhead = pos + 1;
1736
+ return result;
1737
+ }
1738
+ acceptToken(token, endOffset = 0) {
1739
+ let end = endOffset ? this.resolveOffset(endOffset, -1) : this.pos;
1740
+ if (end == null || end < this.token.start)
1741
+ throw new RangeError("Token end out of bounds");
1742
+ this.token.value = token;
1743
+ this.token.end = end;
1744
+ }
1745
+ acceptTokenTo(token, endPos) {
1746
+ this.token.value = token;
1747
+ this.token.end = endPos;
1748
+ }
1749
+ getChunk() {
1750
+ if (this.pos >= this.chunk2Pos && this.pos < this.chunk2Pos + this.chunk2.length) {
1751
+ let { chunk, chunkPos } = this;
1752
+ this.chunk = this.chunk2;
1753
+ this.chunkPos = this.chunk2Pos;
1754
+ this.chunk2 = chunk;
1755
+ this.chunk2Pos = chunkPos;
1756
+ this.chunkOff = this.pos - this.chunkPos;
1757
+ } else {
1758
+ this.chunk2 = this.chunk;
1759
+ this.chunk2Pos = this.chunkPos;
1760
+ let nextChunk = this.input.chunk(this.pos);
1761
+ let end = this.pos + nextChunk.length;
1762
+ this.chunk = end > this.range.to ? nextChunk.slice(0, this.range.to - this.pos) : nextChunk;
1763
+ this.chunkPos = this.pos;
1764
+ this.chunkOff = 0;
1765
+ }
1766
+ }
1767
+ readNext() {
1768
+ if (this.chunkOff >= this.chunk.length) {
1769
+ this.getChunk();
1770
+ if (this.chunkOff == this.chunk.length)
1771
+ return this.next = -1;
1772
+ }
1773
+ return this.next = this.chunk.charCodeAt(this.chunkOff);
1774
+ }
1775
+ advance(n = 1) {
1776
+ this.chunkOff += n;
1777
+ while (this.pos + n >= this.range.to) {
1778
+ if (this.rangeIndex == this.ranges.length - 1)
1779
+ return this.setDone();
1780
+ n -= this.range.to - this.pos;
1781
+ this.range = this.ranges[++this.rangeIndex];
1782
+ this.pos = this.range.from;
1783
+ }
1784
+ this.pos += n;
1785
+ if (this.pos >= this.token.lookAhead)
1786
+ this.token.lookAhead = this.pos + 1;
1787
+ return this.readNext();
1788
+ }
1789
+ setDone() {
1790
+ this.pos = this.chunkPos = this.end;
1791
+ this.range = this.ranges[this.rangeIndex = this.ranges.length - 1];
1792
+ this.chunk = "";
1793
+ return this.next = -1;
1794
+ }
1795
+ reset(pos, token) {
1796
+ if (token) {
1797
+ this.token = token;
1798
+ token.start = pos;
1799
+ token.lookAhead = pos + 1;
1800
+ token.value = token.extended = -1;
1801
+ } else {
1802
+ this.token = nullToken;
1803
+ }
1804
+ if (this.pos != pos) {
1805
+ this.pos = pos;
1806
+ if (pos == this.end) {
1807
+ this.setDone();
1808
+ return this;
1809
+ }
1810
+ while (pos < this.range.from)
1811
+ this.range = this.ranges[--this.rangeIndex];
1812
+ while (pos >= this.range.to)
1813
+ this.range = this.ranges[++this.rangeIndex];
1814
+ if (pos >= this.chunkPos && pos < this.chunkPos + this.chunk.length) {
1815
+ this.chunkOff = pos - this.chunkPos;
1816
+ } else {
1817
+ this.chunk = "";
1818
+ this.chunkOff = 0;
1819
+ }
1820
+ this.readNext();
1821
+ }
1822
+ return this;
1823
+ }
1824
+ read(from, to) {
1825
+ if (from >= this.chunkPos && to <= this.chunkPos + this.chunk.length)
1826
+ return this.chunk.slice(from - this.chunkPos, to - this.chunkPos);
1827
+ if (from >= this.chunk2Pos && to <= this.chunk2Pos + this.chunk2.length)
1828
+ return this.chunk2.slice(from - this.chunk2Pos, to - this.chunk2Pos);
1829
+ if (from >= this.range.from && to <= this.range.to)
1830
+ return this.input.read(from, to);
1831
+ let result = "";
1832
+ for (let r of this.ranges) {
1833
+ if (r.from >= to)
1834
+ break;
1835
+ if (r.to > from)
1836
+ result += this.input.read(Math.max(r.from, from), Math.min(r.to, to));
1837
+ }
1838
+ return result;
1839
+ }
1840
+ }
1841
+
1842
+ class TokenGroup {
1843
+ constructor(data, id) {
1844
+ this.data = data;
1845
+ this.id = id;
1846
+ }
1847
+ token(input, stack) {
1848
+ let { parser } = stack.p;
1849
+ readToken(this.data, input, stack, this.id, parser.data, parser.tokenPrecTable);
1850
+ }
1851
+ }
1852
+ TokenGroup.prototype.contextual = TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;
1853
+
1854
+ class LocalTokenGroup {
1855
+ constructor(data, precTable, elseToken) {
1856
+ this.precTable = precTable;
1857
+ this.elseToken = elseToken;
1858
+ this.data = typeof data == "string" ? decodeArray(data) : data;
1859
+ }
1860
+ token(input, stack) {
1861
+ let start = input.pos, skipped = 0;
1862
+ for (;; ) {
1863
+ let atEof = input.next < 0, nextPos = input.resolveOffset(1, 1);
1864
+ readToken(this.data, input, stack, 0, this.data, this.precTable);
1865
+ if (input.token.value > -1)
1866
+ break;
1867
+ if (this.elseToken == null)
1868
+ return;
1869
+ if (!atEof)
1870
+ skipped++;
1871
+ if (nextPos == null)
1872
+ break;
1873
+ input.reset(nextPos, input.token);
1874
+ }
1875
+ if (skipped) {
1876
+ input.reset(start, input.token);
1877
+ input.acceptToken(this.elseToken, skipped);
1878
+ }
1879
+ }
1880
+ }
1881
+ LocalTokenGroup.prototype.contextual = TokenGroup.prototype.fallback = TokenGroup.prototype.extend = false;
1882
+
1883
+ class ExternalTokenizer {
1884
+ constructor(token, options = {}) {
1885
+ this.token = token;
1886
+ this.contextual = !!options.contextual;
1887
+ this.fallback = !!options.fallback;
1888
+ this.extend = !!options.extend;
1889
+ }
1890
+ }
1891
+ function readToken(data, input, stack, group, precTable, precOffset) {
1892
+ let state = 0, groupMask = 1 << group, { dialect } = stack.p.parser;
1893
+ scan:
1894
+ for (;; ) {
1895
+ if ((groupMask & data[state]) == 0)
1896
+ break;
1897
+ let accEnd = data[state + 1];
1898
+ for (let i = state + 3;i < accEnd; i += 2)
1899
+ if ((data[i + 1] & groupMask) > 0) {
1900
+ let term = data[i];
1901
+ if (dialect.allows(term) && (input.token.value == -1 || input.token.value == term || overrides(term, input.token.value, precTable, precOffset))) {
1902
+ input.acceptToken(term);
1903
+ break;
1904
+ }
1905
+ }
1906
+ let next = input.next, low = 0, high = data[state + 2];
1907
+ if (input.next < 0 && high > low && data[accEnd + high * 3 - 3] == 65535) {
1908
+ state = data[accEnd + high * 3 - 1];
1909
+ continue scan;
1910
+ }
1911
+ for (;low < high; ) {
1912
+ let mid = low + high >> 1;
1913
+ let index = accEnd + mid + (mid << 1);
1914
+ let from = data[index], to = data[index + 1] || 65536;
1915
+ if (next < from)
1916
+ high = mid;
1917
+ else if (next >= to)
1918
+ low = mid + 1;
1919
+ else {
1920
+ state = data[index + 2];
1921
+ input.advance();
1922
+ continue scan;
1923
+ }
1924
+ }
1925
+ break;
1926
+ }
1927
+ }
1928
+ function findOffset(data, start, term) {
1929
+ for (let i = start, next;(next = data[i]) != 65535; i++)
1930
+ if (next == term)
1931
+ return i - start;
1932
+ return -1;
1933
+ }
1934
+ function overrides(token, prev, tableData, tableOffset) {
1935
+ let iPrev = findOffset(tableData, tableOffset, prev);
1936
+ return iPrev < 0 || findOffset(tableData, tableOffset, token) < iPrev;
1937
+ }
1938
+ var verbose = typeof process != "undefined" && process.env && /\bparse\b/.test(process.env.LOG);
1939
+ var stackIDs = null;
1940
+ function cutAt(tree, pos, side) {
1941
+ let cursor = tree.cursor(IterMode.IncludeAnonymous);
1942
+ cursor.moveTo(pos);
1943
+ for (;; ) {
1944
+ if (!(side < 0 ? cursor.childBefore(pos) : cursor.childAfter(pos)))
1945
+ for (;; ) {
1946
+ if ((side < 0 ? cursor.to < pos : cursor.from > pos) && !cursor.type.isError)
1947
+ return side < 0 ? Math.max(0, Math.min(cursor.to - 1, pos - 25)) : Math.min(tree.length, Math.max(cursor.from + 1, pos + 25));
1948
+ if (side < 0 ? cursor.prevSibling() : cursor.nextSibling())
1949
+ break;
1950
+ if (!cursor.parent())
1951
+ return side < 0 ? 0 : tree.length;
1952
+ }
1953
+ }
1954
+ }
1955
+
1956
+ class FragmentCursor {
1957
+ constructor(fragments, nodeSet) {
1958
+ this.fragments = fragments;
1959
+ this.nodeSet = nodeSet;
1960
+ this.i = 0;
1961
+ this.fragment = null;
1962
+ this.safeFrom = -1;
1963
+ this.safeTo = -1;
1964
+ this.trees = [];
1965
+ this.start = [];
1966
+ this.index = [];
1967
+ this.nextFragment();
1968
+ }
1969
+ nextFragment() {
1970
+ let fr = this.fragment = this.i == this.fragments.length ? null : this.fragments[this.i++];
1971
+ if (fr) {
1972
+ this.safeFrom = fr.openStart ? cutAt(fr.tree, fr.from + fr.offset, 1) - fr.offset : fr.from;
1973
+ this.safeTo = fr.openEnd ? cutAt(fr.tree, fr.to + fr.offset, -1) - fr.offset : fr.to;
1974
+ while (this.trees.length) {
1975
+ this.trees.pop();
1976
+ this.start.pop();
1977
+ this.index.pop();
1978
+ }
1979
+ this.trees.push(fr.tree);
1980
+ this.start.push(-fr.offset);
1981
+ this.index.push(0);
1982
+ this.nextStart = this.safeFrom;
1983
+ } else {
1984
+ this.nextStart = 1e9;
1985
+ }
1986
+ }
1987
+ nodeAt(pos) {
1988
+ if (pos < this.nextStart)
1989
+ return null;
1990
+ while (this.fragment && this.safeTo <= pos)
1991
+ this.nextFragment();
1992
+ if (!this.fragment)
1993
+ return null;
1994
+ for (;; ) {
1995
+ let last = this.trees.length - 1;
1996
+ if (last < 0) {
1997
+ this.nextFragment();
1998
+ return null;
1999
+ }
2000
+ let top = this.trees[last], index = this.index[last];
2001
+ if (index == top.children.length) {
2002
+ this.trees.pop();
2003
+ this.start.pop();
2004
+ this.index.pop();
2005
+ continue;
2006
+ }
2007
+ let next = top.children[index];
2008
+ let start = this.start[last] + top.positions[index];
2009
+ if (start > pos) {
2010
+ this.nextStart = start;
2011
+ return null;
2012
+ }
2013
+ if (next instanceof Tree) {
2014
+ if (start == pos) {
2015
+ if (start < this.safeFrom)
2016
+ return null;
2017
+ let end = start + next.length;
2018
+ if (end <= this.safeTo) {
2019
+ let lookAhead = next.prop(NodeProp.lookAhead);
2020
+ if (!lookAhead || end + lookAhead < this.fragment.to)
2021
+ return next;
2022
+ }
2023
+ }
2024
+ this.index[last]++;
2025
+ if (start + next.length >= Math.max(this.safeFrom, pos)) {
2026
+ this.trees.push(next);
2027
+ this.start.push(start);
2028
+ this.index.push(0);
2029
+ }
2030
+ } else {
2031
+ this.index[last]++;
2032
+ this.nextStart = start + next.length;
2033
+ }
2034
+ }
2035
+ }
2036
+ }
2037
+
2038
+ class TokenCache {
2039
+ constructor(parser, stream) {
2040
+ this.stream = stream;
2041
+ this.tokens = [];
2042
+ this.mainToken = null;
2043
+ this.actions = [];
2044
+ this.tokens = parser.tokenizers.map((_) => new CachedToken);
2045
+ }
2046
+ getActions(stack) {
2047
+ let actionIndex = 0;
2048
+ let main = null;
2049
+ let { parser } = stack.p, { tokenizers } = parser;
2050
+ let mask = parser.stateSlot(stack.state, 3);
2051
+ let context = stack.curContext ? stack.curContext.hash : 0;
2052
+ let lookAhead = 0;
2053
+ for (let i = 0;i < tokenizers.length; i++) {
2054
+ if ((1 << i & mask) == 0)
2055
+ continue;
2056
+ let tokenizer = tokenizers[i], token = this.tokens[i];
2057
+ if (main && !tokenizer.fallback)
2058
+ continue;
2059
+ if (tokenizer.contextual || token.start != stack.pos || token.mask != mask || token.context != context) {
2060
+ this.updateCachedToken(token, tokenizer, stack);
2061
+ token.mask = mask;
2062
+ token.context = context;
2063
+ }
2064
+ if (token.lookAhead > token.end + 25)
2065
+ lookAhead = Math.max(token.lookAhead, lookAhead);
2066
+ if (token.value != 0) {
2067
+ let startIndex = actionIndex;
2068
+ if (token.extended > -1)
2069
+ actionIndex = this.addActions(stack, token.extended, token.end, actionIndex);
2070
+ actionIndex = this.addActions(stack, token.value, token.end, actionIndex);
2071
+ if (!tokenizer.extend) {
2072
+ main = token;
2073
+ if (actionIndex > startIndex)
2074
+ break;
2075
+ }
2076
+ }
2077
+ }
2078
+ while (this.actions.length > actionIndex)
2079
+ this.actions.pop();
2080
+ if (lookAhead)
2081
+ stack.setLookAhead(lookAhead);
2082
+ if (!main && stack.pos == this.stream.end) {
2083
+ main = new CachedToken;
2084
+ main.value = stack.p.parser.eofTerm;
2085
+ main.start = main.end = stack.pos;
2086
+ actionIndex = this.addActions(stack, main.value, main.end, actionIndex);
2087
+ }
2088
+ this.mainToken = main;
2089
+ return this.actions;
2090
+ }
2091
+ getMainToken(stack) {
2092
+ if (this.mainToken)
2093
+ return this.mainToken;
2094
+ let main = new CachedToken, { pos, p } = stack;
2095
+ main.start = pos;
2096
+ main.end = Math.min(pos + 1, p.stream.end);
2097
+ main.value = pos == p.stream.end ? p.parser.eofTerm : 0;
2098
+ return main;
2099
+ }
2100
+ updateCachedToken(token, tokenizer, stack) {
2101
+ let start = this.stream.clipPos(stack.pos);
2102
+ tokenizer.token(this.stream.reset(start, token), stack);
2103
+ if (token.value > -1) {
2104
+ let { parser } = stack.p;
2105
+ for (let i = 0;i < parser.specialized.length; i++)
2106
+ if (parser.specialized[i] == token.value) {
2107
+ let result = parser.specializers[i](this.stream.read(token.start, token.end), stack);
2108
+ if (result >= 0 && stack.p.parser.dialect.allows(result >> 1)) {
2109
+ if ((result & 1) == 0)
2110
+ token.value = result >> 1;
2111
+ else
2112
+ token.extended = result >> 1;
2113
+ break;
2114
+ }
2115
+ }
2116
+ } else {
2117
+ token.value = 0;
2118
+ token.end = this.stream.clipPos(start + 1);
2119
+ }
2120
+ }
2121
+ putAction(action, token, end, index) {
2122
+ for (let i = 0;i < index; i += 3)
2123
+ if (this.actions[i] == action)
2124
+ return index;
2125
+ this.actions[index++] = action;
2126
+ this.actions[index++] = token;
2127
+ this.actions[index++] = end;
2128
+ return index;
2129
+ }
2130
+ addActions(stack, token, end, index) {
2131
+ let { state } = stack, { parser } = stack.p, { data } = parser;
2132
+ for (let set = 0;set < 2; set++) {
2133
+ for (let i = parser.stateSlot(state, set ? 2 : 1);; i += 3) {
2134
+ if (data[i] == 65535) {
2135
+ if (data[i + 1] == 1) {
2136
+ i = pair(data, i + 2);
2137
+ } else {
2138
+ if (index == 0 && data[i + 1] == 2)
2139
+ index = this.putAction(pair(data, i + 2), token, end, index);
2140
+ break;
2141
+ }
2142
+ }
2143
+ if (data[i] == token)
2144
+ index = this.putAction(pair(data, i + 1), token, end, index);
2145
+ }
2146
+ }
2147
+ return index;
2148
+ }
2149
+ }
2150
+
2151
+ class Parse {
2152
+ constructor(parser, input, fragments, ranges) {
2153
+ this.parser = parser;
2154
+ this.input = input;
2155
+ this.ranges = ranges;
2156
+ this.recovering = 0;
2157
+ this.nextStackID = 9812;
2158
+ this.minStackPos = 0;
2159
+ this.reused = [];
2160
+ this.stoppedAt = null;
2161
+ this.lastBigReductionStart = -1;
2162
+ this.lastBigReductionSize = 0;
2163
+ this.bigReductionCount = 0;
2164
+ this.stream = new InputStream(input, ranges);
2165
+ this.tokens = new TokenCache(parser, this.stream);
2166
+ this.topTerm = parser.top[1];
2167
+ let { from } = ranges[0];
2168
+ this.stacks = [Stack.start(this, parser.top[0], from)];
2169
+ this.fragments = fragments.length && this.stream.end - from > parser.bufferLength * 4 ? new FragmentCursor(fragments, parser.nodeSet) : null;
2170
+ }
2171
+ get parsedPos() {
2172
+ return this.minStackPos;
2173
+ }
2174
+ advance() {
2175
+ let stacks = this.stacks, pos = this.minStackPos;
2176
+ let newStacks = this.stacks = [];
2177
+ let stopped, stoppedTokens;
2178
+ if (this.bigReductionCount > 300 && stacks.length == 1) {
2179
+ let [s] = stacks;
2180
+ while (s.forceReduce() && s.stack.length && s.stack[s.stack.length - 2] >= this.lastBigReductionStart) {}
2181
+ this.bigReductionCount = this.lastBigReductionSize = 0;
2182
+ }
2183
+ for (let i = 0;i < stacks.length; i++) {
2184
+ let stack = stacks[i];
2185
+ for (;; ) {
2186
+ this.tokens.mainToken = null;
2187
+ if (stack.pos > pos) {
2188
+ newStacks.push(stack);
2189
+ } else if (this.advanceStack(stack, newStacks, stacks)) {
2190
+ continue;
2191
+ } else {
2192
+ if (!stopped) {
2193
+ stopped = [];
2194
+ stoppedTokens = [];
2195
+ }
2196
+ stopped.push(stack);
2197
+ let tok = this.tokens.getMainToken(stack);
2198
+ stoppedTokens.push(tok.value, tok.end);
2199
+ }
2200
+ break;
2201
+ }
2202
+ }
2203
+ if (!newStacks.length) {
2204
+ let finished = stopped && findFinished(stopped);
2205
+ if (finished) {
2206
+ if (verbose)
2207
+ console.log("Finish with " + this.stackID(finished));
2208
+ return this.stackToTree(finished);
2209
+ }
2210
+ if (this.parser.strict) {
2211
+ if (verbose && stopped)
2212
+ console.log("Stuck with token " + (this.tokens.mainToken ? this.parser.getName(this.tokens.mainToken.value) : "none"));
2213
+ throw new SyntaxError("No parse at " + pos);
2214
+ }
2215
+ if (!this.recovering)
2216
+ this.recovering = 5;
2217
+ }
2218
+ if (this.recovering && stopped) {
2219
+ let finished = this.stoppedAt != null && stopped[0].pos > this.stoppedAt ? stopped[0] : this.runRecovery(stopped, stoppedTokens, newStacks);
2220
+ if (finished) {
2221
+ if (verbose)
2222
+ console.log("Force-finish " + this.stackID(finished));
2223
+ return this.stackToTree(finished.forceAll());
2224
+ }
2225
+ }
2226
+ if (this.recovering) {
2227
+ let maxRemaining = this.recovering == 1 ? 1 : this.recovering * 3;
2228
+ if (newStacks.length > maxRemaining) {
2229
+ newStacks.sort((a, b) => b.score - a.score);
2230
+ while (newStacks.length > maxRemaining)
2231
+ newStacks.pop();
2232
+ }
2233
+ if (newStacks.some((s) => s.reducePos > pos))
2234
+ this.recovering--;
2235
+ } else if (newStacks.length > 1) {
2236
+ outer:
2237
+ for (let i = 0;i < newStacks.length - 1; i++) {
2238
+ let stack = newStacks[i];
2239
+ for (let j = i + 1;j < newStacks.length; j++) {
2240
+ let other = newStacks[j];
2241
+ if (stack.sameState(other) || stack.buffer.length > 500 && other.buffer.length > 500) {
2242
+ if ((stack.score - other.score || stack.buffer.length - other.buffer.length) > 0) {
2243
+ newStacks.splice(j--, 1);
2244
+ } else {
2245
+ newStacks.splice(i--, 1);
2246
+ continue outer;
2247
+ }
2248
+ }
2249
+ }
2250
+ }
2251
+ if (newStacks.length > 12) {
2252
+ newStacks.sort((a, b) => b.score - a.score);
2253
+ newStacks.splice(12, newStacks.length - 12);
2254
+ }
2255
+ }
2256
+ this.minStackPos = newStacks[0].pos;
2257
+ for (let i = 1;i < newStacks.length; i++)
2258
+ if (newStacks[i].pos < this.minStackPos)
2259
+ this.minStackPos = newStacks[i].pos;
2260
+ return null;
2261
+ }
2262
+ stopAt(pos) {
2263
+ if (this.stoppedAt != null && this.stoppedAt < pos)
2264
+ throw new RangeError("Can't move stoppedAt forward");
2265
+ this.stoppedAt = pos;
2266
+ }
2267
+ advanceStack(stack, stacks, split) {
2268
+ let start = stack.pos, { parser } = this;
2269
+ let base = verbose ? this.stackID(stack) + " -> " : "";
2270
+ if (this.stoppedAt != null && start > this.stoppedAt)
2271
+ return stack.forceReduce() ? stack : null;
2272
+ if (this.fragments) {
2273
+ let strictCx = stack.curContext && stack.curContext.tracker.strict, cxHash = strictCx ? stack.curContext.hash : 0;
2274
+ for (let cached = this.fragments.nodeAt(start);cached; ) {
2275
+ let match = this.parser.nodeSet.types[cached.type.id] == cached.type ? parser.getGoto(stack.state, cached.type.id) : -1;
2276
+ if (match > -1 && cached.length && (!strictCx || (cached.prop(NodeProp.contextHash) || 0) == cxHash)) {
2277
+ stack.useNode(cached, match);
2278
+ if (verbose)
2279
+ console.log(base + this.stackID(stack) + ` (via reuse of ${parser.getName(cached.type.id)})`);
2280
+ return true;
2281
+ }
2282
+ if (!(cached instanceof Tree) || cached.children.length == 0 || cached.positions[0] > 0)
2283
+ break;
2284
+ let inner = cached.children[0];
2285
+ if (inner instanceof Tree && cached.positions[0] == 0)
2286
+ cached = inner;
2287
+ else
2288
+ break;
2289
+ }
2290
+ }
2291
+ let defaultReduce = parser.stateSlot(stack.state, 4);
2292
+ if (defaultReduce > 0) {
2293
+ stack.reduce(defaultReduce);
2294
+ if (verbose)
2295
+ console.log(base + this.stackID(stack) + ` (via always-reduce ${parser.getName(defaultReduce & 65535)})`);
2296
+ return true;
2297
+ }
2298
+ if (stack.stack.length >= 8400) {
2299
+ while (stack.stack.length > 6000 && stack.forceReduce()) {}
2300
+ }
2301
+ let actions = this.tokens.getActions(stack);
2302
+ for (let i = 0;i < actions.length; ) {
2303
+ let action = actions[i++], term = actions[i++], end = actions[i++];
2304
+ let last = i == actions.length || !split;
2305
+ let localStack = last ? stack : stack.split();
2306
+ let main = this.tokens.mainToken;
2307
+ localStack.apply(action, term, main ? main.start : localStack.pos, end);
2308
+ if (verbose)
2309
+ console.log(base + this.stackID(localStack) + ` (via ${(action & 65536) == 0 ? "shift" : `reduce of ${parser.getName(action & 65535)}`} for ${parser.getName(term)} @ ${start}${localStack == stack ? "" : ", split"})`);
2310
+ if (last)
2311
+ return true;
2312
+ else if (localStack.pos > start)
2313
+ stacks.push(localStack);
2314
+ else
2315
+ split.push(localStack);
2316
+ }
2317
+ return false;
2318
+ }
2319
+ advanceFully(stack, newStacks) {
2320
+ let pos = stack.pos;
2321
+ for (;; ) {
2322
+ if (!this.advanceStack(stack, null, null))
2323
+ return false;
2324
+ if (stack.pos > pos) {
2325
+ pushStackDedup(stack, newStacks);
2326
+ return true;
2327
+ }
2328
+ }
2329
+ }
2330
+ runRecovery(stacks, tokens, newStacks) {
2331
+ let finished = null, restarted = false;
2332
+ for (let i = 0;i < stacks.length; i++) {
2333
+ let stack = stacks[i], token = tokens[i << 1], tokenEnd = tokens[(i << 1) + 1];
2334
+ let base = verbose ? this.stackID(stack) + " -> " : "";
2335
+ if (stack.deadEnd) {
2336
+ if (restarted)
2337
+ continue;
2338
+ restarted = true;
2339
+ stack.restart();
2340
+ if (verbose)
2341
+ console.log(base + this.stackID(stack) + " (restarted)");
2342
+ let done = this.advanceFully(stack, newStacks);
2343
+ if (done)
2344
+ continue;
2345
+ }
2346
+ let force = stack.split(), forceBase = base;
2347
+ for (let j = 0;j < 10 && force.forceReduce(); j++) {
2348
+ if (verbose)
2349
+ console.log(forceBase + this.stackID(force) + " (via force-reduce)");
2350
+ let done = this.advanceFully(force, newStacks);
2351
+ if (done)
2352
+ break;
2353
+ if (verbose)
2354
+ forceBase = this.stackID(force) + " -> ";
2355
+ }
2356
+ for (let insert of stack.recoverByInsert(token)) {
2357
+ if (verbose)
2358
+ console.log(base + this.stackID(insert) + " (via recover-insert)");
2359
+ this.advanceFully(insert, newStacks);
2360
+ }
2361
+ if (this.stream.end > stack.pos) {
2362
+ if (tokenEnd == stack.pos) {
2363
+ tokenEnd++;
2364
+ token = 0;
2365
+ }
2366
+ stack.recoverByDelete(token, tokenEnd);
2367
+ if (verbose)
2368
+ console.log(base + this.stackID(stack) + ` (via recover-delete ${this.parser.getName(token)})`);
2369
+ pushStackDedup(stack, newStacks);
2370
+ } else if (!finished || finished.score < force.score) {
2371
+ finished = force;
2372
+ }
2373
+ }
2374
+ return finished;
2375
+ }
2376
+ stackToTree(stack) {
2377
+ stack.close();
2378
+ return Tree.build({
2379
+ buffer: StackBufferCursor.create(stack),
2380
+ nodeSet: this.parser.nodeSet,
2381
+ topID: this.topTerm,
2382
+ maxBufferLength: this.parser.bufferLength,
2383
+ reused: this.reused,
2384
+ start: this.ranges[0].from,
2385
+ length: stack.pos - this.ranges[0].from,
2386
+ minRepeatType: this.parser.minRepeatTerm
2387
+ });
2388
+ }
2389
+ stackID(stack) {
2390
+ let id = (stackIDs || (stackIDs = new WeakMap)).get(stack);
2391
+ if (!id)
2392
+ stackIDs.set(stack, id = String.fromCodePoint(this.nextStackID++));
2393
+ return id + stack;
2394
+ }
2395
+ }
2396
+ function pushStackDedup(stack, newStacks) {
2397
+ for (let i = 0;i < newStacks.length; i++) {
2398
+ let other = newStacks[i];
2399
+ if (other.pos == stack.pos && other.sameState(stack)) {
2400
+ if (newStacks[i].score < stack.score)
2401
+ newStacks[i] = stack;
2402
+ return;
2403
+ }
2404
+ }
2405
+ newStacks.push(stack);
2406
+ }
2407
+
2408
+ class Dialect {
2409
+ constructor(source, flags, disabled) {
2410
+ this.source = source;
2411
+ this.flags = flags;
2412
+ this.disabled = disabled;
2413
+ }
2414
+ allows(term) {
2415
+ return !this.disabled || this.disabled[term] == 0;
2416
+ }
2417
+ }
2418
+ var id = (x) => x;
2419
+
2420
+ class ContextTracker {
2421
+ constructor(spec) {
2422
+ this.start = spec.start;
2423
+ this.shift = spec.shift || id;
2424
+ this.reduce = spec.reduce || id;
2425
+ this.reuse = spec.reuse || id;
2426
+ this.hash = spec.hash || (() => 0);
2427
+ this.strict = spec.strict !== false;
2428
+ }
2429
+ }
2430
+
2431
+ class LRParser extends Parser {
2432
+ constructor(spec) {
2433
+ super();
2434
+ this.wrappers = [];
2435
+ if (spec.version != 14)
2436
+ throw new RangeError(`Parser version (${spec.version}) doesn't match runtime version (${14})`);
2437
+ let nodeNames = spec.nodeNames.split(" ");
2438
+ this.minRepeatTerm = nodeNames.length;
2439
+ for (let i = 0;i < spec.repeatNodeCount; i++)
2440
+ nodeNames.push("");
2441
+ let topTerms = Object.keys(spec.topRules).map((r) => spec.topRules[r][1]);
2442
+ let nodeProps = [];
2443
+ for (let i = 0;i < nodeNames.length; i++)
2444
+ nodeProps.push([]);
2445
+ function setProp(nodeID, prop, value) {
2446
+ nodeProps[nodeID].push([prop, prop.deserialize(String(value))]);
2447
+ }
2448
+ if (spec.nodeProps)
2449
+ for (let propSpec of spec.nodeProps) {
2450
+ let prop = propSpec[0];
2451
+ if (typeof prop == "string")
2452
+ prop = NodeProp[prop];
2453
+ for (let i = 1;i < propSpec.length; ) {
2454
+ let next = propSpec[i++];
2455
+ if (next >= 0) {
2456
+ setProp(next, prop, propSpec[i++]);
2457
+ } else {
2458
+ let value = propSpec[i + -next];
2459
+ for (let j = -next;j > 0; j--)
2460
+ setProp(propSpec[i++], prop, value);
2461
+ i++;
2462
+ }
2463
+ }
2464
+ }
2465
+ this.nodeSet = new NodeSet(nodeNames.map((name, i) => NodeType.define({
2466
+ name: i >= this.minRepeatTerm ? undefined : name,
2467
+ id: i,
2468
+ props: nodeProps[i],
2469
+ top: topTerms.indexOf(i) > -1,
2470
+ error: i == 0,
2471
+ skipped: spec.skippedNodes && spec.skippedNodes.indexOf(i) > -1
2472
+ })));
2473
+ if (spec.propSources)
2474
+ this.nodeSet = this.nodeSet.extend(...spec.propSources);
2475
+ this.strict = false;
2476
+ this.bufferLength = DefaultBufferLength;
2477
+ let tokenArray = decodeArray(spec.tokenData);
2478
+ this.context = spec.context;
2479
+ this.specializerSpecs = spec.specialized || [];
2480
+ this.specialized = new Uint16Array(this.specializerSpecs.length);
2481
+ for (let i = 0;i < this.specializerSpecs.length; i++)
2482
+ this.specialized[i] = this.specializerSpecs[i].term;
2483
+ this.specializers = this.specializerSpecs.map(getSpecializer);
2484
+ this.states = decodeArray(spec.states, Uint32Array);
2485
+ this.data = decodeArray(spec.stateData);
2486
+ this.goto = decodeArray(spec.goto);
2487
+ this.maxTerm = spec.maxTerm;
2488
+ this.tokenizers = spec.tokenizers.map((value) => typeof value == "number" ? new TokenGroup(tokenArray, value) : value);
2489
+ this.topRules = spec.topRules;
2490
+ this.dialects = spec.dialects || {};
2491
+ this.dynamicPrecedences = spec.dynamicPrecedences || null;
2492
+ this.tokenPrecTable = spec.tokenPrec;
2493
+ this.termNames = spec.termNames || null;
2494
+ this.maxNode = this.nodeSet.types.length - 1;
2495
+ this.dialect = this.parseDialect();
2496
+ this.top = this.topRules[Object.keys(this.topRules)[0]];
2497
+ }
2498
+ createParse(input, fragments, ranges) {
2499
+ let parse = new Parse(this, input, fragments, ranges);
2500
+ for (let w of this.wrappers)
2501
+ parse = w(parse, input, fragments, ranges);
2502
+ return parse;
2503
+ }
2504
+ getGoto(state, term, loose = false) {
2505
+ let table = this.goto;
2506
+ if (term >= table[0])
2507
+ return -1;
2508
+ for (let pos = table[term + 1];; ) {
2509
+ let groupTag = table[pos++], last = groupTag & 1;
2510
+ let target = table[pos++];
2511
+ if (last && loose)
2512
+ return target;
2513
+ for (let end = pos + (groupTag >> 1);pos < end; pos++)
2514
+ if (table[pos] == state)
2515
+ return target;
2516
+ if (last)
2517
+ return -1;
2518
+ }
2519
+ }
2520
+ hasAction(state, terminal) {
2521
+ let data = this.data;
2522
+ for (let set = 0;set < 2; set++) {
2523
+ for (let i = this.stateSlot(state, set ? 2 : 1), next;; i += 3) {
2524
+ if ((next = data[i]) == 65535) {
2525
+ if (data[i + 1] == 1)
2526
+ next = data[i = pair(data, i + 2)];
2527
+ else if (data[i + 1] == 2)
2528
+ return pair(data, i + 2);
2529
+ else
2530
+ break;
2531
+ }
2532
+ if (next == terminal || next == 0)
2533
+ return pair(data, i + 1);
2534
+ }
2535
+ }
2536
+ return 0;
2537
+ }
2538
+ stateSlot(state, slot) {
2539
+ return this.states[state * 6 + slot];
2540
+ }
2541
+ stateFlag(state, flag) {
2542
+ return (this.stateSlot(state, 0) & flag) > 0;
2543
+ }
2544
+ validAction(state, action) {
2545
+ return !!this.allActions(state, (a) => a == action ? true : null);
2546
+ }
2547
+ allActions(state, action) {
2548
+ let deflt = this.stateSlot(state, 4);
2549
+ let result = deflt ? action(deflt) : undefined;
2550
+ for (let i = this.stateSlot(state, 1);result == null; i += 3) {
2551
+ if (this.data[i] == 65535) {
2552
+ if (this.data[i + 1] == 1)
2553
+ i = pair(this.data, i + 2);
2554
+ else
2555
+ break;
2556
+ }
2557
+ result = action(pair(this.data, i + 1));
2558
+ }
2559
+ return result;
2560
+ }
2561
+ nextStates(state) {
2562
+ let result = [];
2563
+ for (let i = this.stateSlot(state, 1);; i += 3) {
2564
+ if (this.data[i] == 65535) {
2565
+ if (this.data[i + 1] == 1)
2566
+ i = pair(this.data, i + 2);
2567
+ else
2568
+ break;
2569
+ }
2570
+ if ((this.data[i + 2] & 65536 >> 16) == 0) {
2571
+ let value = this.data[i + 1];
2572
+ if (!result.some((v, i2) => i2 & 1 && v == value))
2573
+ result.push(this.data[i], value);
2574
+ }
2575
+ }
2576
+ return result;
2577
+ }
2578
+ configure(config) {
2579
+ let copy = Object.assign(Object.create(LRParser.prototype), this);
2580
+ if (config.props)
2581
+ copy.nodeSet = this.nodeSet.extend(...config.props);
2582
+ if (config.top) {
2583
+ let info = this.topRules[config.top];
2584
+ if (!info)
2585
+ throw new RangeError(`Invalid top rule name ${config.top}`);
2586
+ copy.top = info;
2587
+ }
2588
+ if (config.tokenizers)
2589
+ copy.tokenizers = this.tokenizers.map((t) => {
2590
+ let found = config.tokenizers.find((r) => r.from == t);
2591
+ return found ? found.to : t;
2592
+ });
2593
+ if (config.specializers) {
2594
+ copy.specializers = this.specializers.slice();
2595
+ copy.specializerSpecs = this.specializerSpecs.map((s, i) => {
2596
+ let found = config.specializers.find((r) => r.from == s.external);
2597
+ if (!found)
2598
+ return s;
2599
+ let spec = Object.assign(Object.assign({}, s), { external: found.to });
2600
+ copy.specializers[i] = getSpecializer(spec);
2601
+ return spec;
2602
+ });
2603
+ }
2604
+ if (config.contextTracker)
2605
+ copy.context = config.contextTracker;
2606
+ if (config.dialect)
2607
+ copy.dialect = this.parseDialect(config.dialect);
2608
+ if (config.strict != null)
2609
+ copy.strict = config.strict;
2610
+ if (config.wrap)
2611
+ copy.wrappers = copy.wrappers.concat(config.wrap);
2612
+ if (config.bufferLength != null)
2613
+ copy.bufferLength = config.bufferLength;
2614
+ return copy;
2615
+ }
2616
+ hasWrappers() {
2617
+ return this.wrappers.length > 0;
2618
+ }
2619
+ getName(term) {
2620
+ return this.termNames ? this.termNames[term] : String(term <= this.maxNode && this.nodeSet.types[term].name || term);
2621
+ }
2622
+ get eofTerm() {
2623
+ return this.maxNode + 1;
2624
+ }
2625
+ get topNode() {
2626
+ return this.nodeSet.types[this.top[1]];
2627
+ }
2628
+ dynamicPrecedence(term) {
2629
+ let prec = this.dynamicPrecedences;
2630
+ return prec == null ? 0 : prec[term] || 0;
2631
+ }
2632
+ parseDialect(dialect) {
2633
+ let values = Object.keys(this.dialects), flags = values.map(() => false);
2634
+ if (dialect)
2635
+ for (let part of dialect.split(" ")) {
2636
+ let id2 = values.indexOf(part);
2637
+ if (id2 >= 0)
2638
+ flags[id2] = true;
2639
+ }
2640
+ let disabled = null;
2641
+ for (let i = 0;i < values.length; i++)
2642
+ if (!flags[i]) {
2643
+ for (let j = this.dialects[values[i]], id2;(id2 = this.data[j++]) != 65535; )
2644
+ (disabled || (disabled = new Uint8Array(this.maxTerm + 1)))[id2] = 1;
2645
+ }
2646
+ return new Dialect(dialect, flags, disabled);
2647
+ }
2648
+ static deserialize(spec) {
2649
+ return new LRParser(spec);
2650
+ }
2651
+ }
2652
+ function pair(data, off) {
2653
+ return data[off] | data[off + 1] << 16;
2654
+ }
2655
+ function findFinished(stacks) {
2656
+ let best = null;
2657
+ for (let stack of stacks) {
2658
+ let stopped = stack.p.stoppedAt;
2659
+ if ((stack.pos == stack.p.stream.end || stopped != null && stack.pos > stopped) && stack.p.parser.stateFlag(stack.state, 2) && (!best || best.score < stack.score))
2660
+ best = stack;
2661
+ }
2662
+ return best;
2663
+ }
2664
+ function getSpecializer(spec) {
2665
+ if (spec.external) {
2666
+ let mask = spec.extend ? 1 : 0;
2667
+ return (value, stack) => spec.external(value, stack) << 1 | mask;
2668
+ }
2669
+ return spec.get;
2670
+ }
2671
+
2672
+ // ../../node_modules/@bpmn-io/lezer-feel/node_modules/min-dash/dist/index.js
2673
+ var nativeHasOwnProperty = Object.prototype.hasOwnProperty;
2674
+ function isNil(obj) {
2675
+ return obj == null;
2676
+ }
2677
+ function has(target, key) {
2678
+ return !isNil(target) && nativeHasOwnProperty.call(target, key);
2679
+ }
2680
+
2681
+ // ../../node_modules/@lezer/highlight/dist/index.js
2682
+ var nextTagID = 0;
2683
+
2684
+ class Tag {
2685
+ constructor(name, set, base, modified) {
2686
+ this.name = name;
2687
+ this.set = set;
2688
+ this.base = base;
2689
+ this.modified = modified;
2690
+ this.id = nextTagID++;
2691
+ }
2692
+ toString() {
2693
+ let { name } = this;
2694
+ for (let mod of this.modified)
2695
+ if (mod.name)
2696
+ name = `${mod.name}(${name})`;
2697
+ return name;
2698
+ }
2699
+ static define(nameOrParent, parent) {
2700
+ let name = typeof nameOrParent == "string" ? nameOrParent : "?";
2701
+ if (nameOrParent instanceof Tag)
2702
+ parent = nameOrParent;
2703
+ if (parent === null || parent === undefined ? undefined : parent.base)
2704
+ throw new Error("Can not derive from a modified tag");
2705
+ let tag = new Tag(name, [], null, []);
2706
+ tag.set.push(tag);
2707
+ if (parent)
2708
+ for (let t of parent.set)
2709
+ tag.set.push(t);
2710
+ return tag;
2711
+ }
2712
+ static defineModifier(name) {
2713
+ let mod = new Modifier(name);
2714
+ return (tag) => {
2715
+ if (tag.modified.indexOf(mod) > -1)
2716
+ return tag;
2717
+ return Modifier.get(tag.base || tag, tag.modified.concat(mod).sort((a, b) => a.id - b.id));
2718
+ };
2719
+ }
2720
+ }
2721
+ var nextModifierID = 0;
2722
+
2723
+ class Modifier {
2724
+ constructor(name) {
2725
+ this.name = name;
2726
+ this.instances = [];
2727
+ this.id = nextModifierID++;
2728
+ }
2729
+ static get(base, mods) {
2730
+ if (!mods.length)
2731
+ return base;
2732
+ let exists = mods[0].instances.find((t) => t.base == base && sameArray(mods, t.modified));
2733
+ if (exists)
2734
+ return exists;
2735
+ let set = [], tag = new Tag(base.name, set, base, mods);
2736
+ for (let m of mods)
2737
+ m.instances.push(tag);
2738
+ let configs = powerSet(mods);
2739
+ for (let parent of base.set)
2740
+ if (!parent.modified.length)
2741
+ for (let config of configs)
2742
+ set.push(Modifier.get(parent, config));
2743
+ return tag;
2744
+ }
2745
+ }
2746
+ function sameArray(a, b) {
2747
+ return a.length == b.length && a.every((x, i) => x == b[i]);
2748
+ }
2749
+ function powerSet(array) {
2750
+ let sets = [[]];
2751
+ for (let i = 0;i < array.length; i++) {
2752
+ for (let j = 0, e2 = sets.length;j < e2; j++) {
2753
+ sets.push(sets[j].concat(array[i]));
2754
+ }
2755
+ }
2756
+ return sets.sort((a, b) => b.length - a.length);
2757
+ }
2758
+ function styleTags(spec) {
2759
+ let byName = Object.create(null);
2760
+ for (let prop in spec) {
2761
+ let tags = spec[prop];
2762
+ if (!Array.isArray(tags))
2763
+ tags = [tags];
2764
+ for (let part of prop.split(" "))
2765
+ if (part) {
2766
+ let pieces = [], mode = 2, rest = part;
2767
+ for (let pos = 0;; ) {
2768
+ if (rest == "..." && pos > 0 && pos + 3 == part.length) {
2769
+ mode = 1;
2770
+ break;
2771
+ }
2772
+ let m = /^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(rest);
2773
+ if (!m)
2774
+ throw new RangeError("Invalid path: " + part);
2775
+ pieces.push(m[0] == "*" ? "" : m[0][0] == '"' ? JSON.parse(m[0]) : m[0]);
2776
+ pos += m[0].length;
2777
+ if (pos == part.length)
2778
+ break;
2779
+ let next = part[pos++];
2780
+ if (pos == part.length && next == "!") {
2781
+ mode = 0;
2782
+ break;
2783
+ }
2784
+ if (next != "/")
2785
+ throw new RangeError("Invalid path: " + part);
2786
+ rest = part.slice(pos);
2787
+ }
2788
+ let last = pieces.length - 1, inner = pieces[last];
2789
+ if (!inner)
2790
+ throw new RangeError("Invalid path: " + part);
2791
+ let rule = new Rule(tags, mode, last > 0 ? pieces.slice(0, last) : null);
2792
+ byName[inner] = rule.sort(byName[inner]);
2793
+ }
2794
+ }
2795
+ return ruleNodeProp.add(byName);
2796
+ }
2797
+ var ruleNodeProp = new NodeProp({
2798
+ combine(a, b) {
2799
+ let cur, root, take;
2800
+ while (a || b) {
2801
+ if (!a || b && a.depth <= b.depth) {
2802
+ take = b;
2803
+ b = b.next;
2804
+ } else {
2805
+ take = a;
2806
+ a = a.next;
2807
+ }
2808
+ if (cur && cur.mode == take.mode && !take.context && !cur.context)
2809
+ continue;
2810
+ let copy = new Rule(take.tags, take.mode, take.context);
2811
+ if (cur)
2812
+ cur.next = copy;
2813
+ else
2814
+ root = copy;
2815
+ cur = copy;
2816
+ }
2817
+ return root;
2818
+ }
2819
+ });
2820
+
2821
+ class Rule {
2822
+ constructor(tags, mode, context, next) {
2823
+ this.tags = tags;
2824
+ this.mode = mode;
2825
+ this.context = context;
2826
+ this.next = next;
2827
+ }
2828
+ get opaque() {
2829
+ return this.mode == 0;
2830
+ }
2831
+ get inherit() {
2832
+ return this.mode == 1;
2833
+ }
2834
+ sort(other) {
2835
+ if (!other || other.depth < this.depth) {
2836
+ this.next = other;
2837
+ return this;
2838
+ }
2839
+ other.next = this.sort(other.next);
2840
+ return other;
2841
+ }
2842
+ get depth() {
2843
+ return this.context ? this.context.length : 0;
2844
+ }
2845
+ }
2846
+ Rule.empty = new Rule([], 2, null);
2847
+ function tagHighlighter(tags, options) {
2848
+ let map = Object.create(null);
2849
+ for (let style of tags) {
2850
+ if (!Array.isArray(style.tag))
2851
+ map[style.tag.id] = style.class;
2852
+ else
2853
+ for (let tag of style.tag)
2854
+ map[tag.id] = style.class;
2855
+ }
2856
+ let { scope, all = null } = options || {};
2857
+ return {
2858
+ style: (tags2) => {
2859
+ let cls = all;
2860
+ for (let tag of tags2) {
2861
+ for (let sub of tag.set) {
2862
+ let tagClass = map[sub.id];
2863
+ if (tagClass) {
2864
+ cls = cls ? cls + " " + tagClass : tagClass;
2865
+ break;
2866
+ }
2867
+ }
2868
+ }
2869
+ return cls;
2870
+ },
2871
+ scope
2872
+ };
2873
+ }
2874
+ var t = Tag.define;
2875
+ var comment = t();
2876
+ var name = t();
2877
+ var typeName = t(name);
2878
+ var propertyName = t(name);
2879
+ var literal = t();
2880
+ var string = t(literal);
2881
+ var number = t(literal);
2882
+ var content = t();
2883
+ var heading = t(content);
2884
+ var keyword = t();
2885
+ var operator = t();
2886
+ var punctuation = t();
2887
+ var bracket = t(punctuation);
2888
+ var meta = t();
2889
+ var tags = {
2890
+ comment,
2891
+ lineComment: t(comment),
2892
+ blockComment: t(comment),
2893
+ docComment: t(comment),
2894
+ name,
2895
+ variableName: t(name),
2896
+ typeName,
2897
+ tagName: t(typeName),
2898
+ propertyName,
2899
+ attributeName: t(propertyName),
2900
+ className: t(name),
2901
+ labelName: t(name),
2902
+ namespace: t(name),
2903
+ macroName: t(name),
2904
+ literal,
2905
+ string,
2906
+ docString: t(string),
2907
+ character: t(string),
2908
+ attributeValue: t(string),
2909
+ number,
2910
+ integer: t(number),
2911
+ float: t(number),
2912
+ bool: t(literal),
2913
+ regexp: t(literal),
2914
+ escape: t(literal),
2915
+ color: t(literal),
2916
+ url: t(literal),
2917
+ keyword,
2918
+ self: t(keyword),
2919
+ null: t(keyword),
2920
+ atom: t(keyword),
2921
+ unit: t(keyword),
2922
+ modifier: t(keyword),
2923
+ operatorKeyword: t(keyword),
2924
+ controlKeyword: t(keyword),
2925
+ definitionKeyword: t(keyword),
2926
+ moduleKeyword: t(keyword),
2927
+ operator,
2928
+ derefOperator: t(operator),
2929
+ arithmeticOperator: t(operator),
2930
+ logicOperator: t(operator),
2931
+ bitwiseOperator: t(operator),
2932
+ compareOperator: t(operator),
2933
+ updateOperator: t(operator),
2934
+ definitionOperator: t(operator),
2935
+ typeOperator: t(operator),
2936
+ controlOperator: t(operator),
2937
+ punctuation,
2938
+ separator: t(punctuation),
2939
+ bracket,
2940
+ angleBracket: t(bracket),
2941
+ squareBracket: t(bracket),
2942
+ paren: t(bracket),
2943
+ brace: t(bracket),
2944
+ content,
2945
+ heading,
2946
+ heading1: t(heading),
2947
+ heading2: t(heading),
2948
+ heading3: t(heading),
2949
+ heading4: t(heading),
2950
+ heading5: t(heading),
2951
+ heading6: t(heading),
2952
+ contentSeparator: t(content),
2953
+ list: t(content),
2954
+ quote: t(content),
2955
+ emphasis: t(content),
2956
+ strong: t(content),
2957
+ link: t(content),
2958
+ monospace: t(content),
2959
+ strikethrough: t(content),
2960
+ inserted: t(),
2961
+ deleted: t(),
2962
+ changed: t(),
2963
+ invalid: t(),
2964
+ meta,
2965
+ documentMeta: t(meta),
2966
+ annotation: t(meta),
2967
+ processingInstruction: t(meta),
2968
+ definition: Tag.defineModifier("definition"),
2969
+ constant: Tag.defineModifier("constant"),
2970
+ function: Tag.defineModifier("function"),
2971
+ standard: Tag.defineModifier("standard"),
2972
+ local: Tag.defineModifier("local"),
2973
+ special: Tag.defineModifier("special")
2974
+ };
2975
+ for (let name2 in tags) {
2976
+ let val = tags[name2];
2977
+ if (val instanceof Tag)
2978
+ val.name = name2;
2979
+ }
2980
+ var classHighlighter = tagHighlighter([
2981
+ { tag: tags.link, class: "tok-link" },
2982
+ { tag: tags.heading, class: "tok-heading" },
2983
+ { tag: tags.emphasis, class: "tok-emphasis" },
2984
+ { tag: tags.strong, class: "tok-strong" },
2985
+ { tag: tags.keyword, class: "tok-keyword" },
2986
+ { tag: tags.atom, class: "tok-atom" },
2987
+ { tag: tags.bool, class: "tok-bool" },
2988
+ { tag: tags.url, class: "tok-url" },
2989
+ { tag: tags.labelName, class: "tok-labelName" },
2990
+ { tag: tags.inserted, class: "tok-inserted" },
2991
+ { tag: tags.deleted, class: "tok-deleted" },
2992
+ { tag: tags.literal, class: "tok-literal" },
2993
+ { tag: tags.string, class: "tok-string" },
2994
+ { tag: tags.number, class: "tok-number" },
2995
+ { tag: [tags.regexp, tags.escape, tags.special(tags.string)], class: "tok-string2" },
2996
+ { tag: tags.variableName, class: "tok-variableName" },
2997
+ { tag: tags.local(tags.variableName), class: "tok-variableName tok-local" },
2998
+ { tag: tags.definition(tags.variableName), class: "tok-variableName tok-definition" },
2999
+ { tag: tags.special(tags.variableName), class: "tok-variableName2" },
3000
+ { tag: tags.definition(tags.propertyName), class: "tok-propertyName tok-definition" },
3001
+ { tag: tags.typeName, class: "tok-typeName" },
3002
+ { tag: tags.namespace, class: "tok-namespace" },
3003
+ { tag: tags.className, class: "tok-className" },
3004
+ { tag: tags.macroName, class: "tok-macroName" },
3005
+ { tag: tags.propertyName, class: "tok-propertyName" },
3006
+ { tag: tags.operator, class: "tok-operator" },
3007
+ { tag: tags.comment, class: "tok-comment" },
3008
+ { tag: tags.meta, class: "tok-meta" },
3009
+ { tag: tags.invalid, class: "tok-invalid" },
3010
+ { tag: tags.punctuation, class: "tok-punctuation" }
3011
+ ]);
3012
+
3013
+ // ../../node_modules/@bpmn-io/lezer-feel/dist/index.js
3014
+ var propertyIdentifier = 124;
3015
+ var identifier = 125;
3016
+ var nameIdentifier = 126;
3017
+ var insertSemi = 127;
3018
+ var expression0 = 131;
3019
+ var ForExpression = 4;
3020
+ var forExpressionStart = 134;
3021
+ var ForInExpression = 7;
3022
+ var Name = 8;
3023
+ var Identifier = 9;
3024
+ var AdditionalIdentifier = 10;
3025
+ var forExpressionBodyStart = 140;
3026
+ var IfExpression = 21;
3027
+ var ifExpressionStart = 141;
3028
+ var QuantifiedExpression = 25;
3029
+ var quantifiedExpressionStart = 142;
3030
+ var QuantifiedInExpression = 29;
3031
+ var PositiveUnaryTest = 39;
3032
+ var ArithmeticExpression = 43;
3033
+ var arithmeticPlusStart = 145;
3034
+ var arithmeticTimesStart = 146;
3035
+ var arithmeticExpStart = 147;
3036
+ var arithmeticUnaryStart = 148;
3037
+ var VariableName = 49;
3038
+ var PathExpression = 70;
3039
+ var pathExpressionStart = 154;
3040
+ var PathName = 71;
3041
+ var FilterExpression = 73;
3042
+ var filterExpressionStart = 155;
3043
+ var FunctionInvocation = 75;
3044
+ var functionInvocationStart = 156;
3045
+ var ParameterName = 79;
3046
+ var nil = 161;
3047
+ var NumericLiteral = 82;
3048
+ var StringLiteral = 83;
3049
+ var BooleanLiteral = 84;
3050
+ var listStart = 168;
3051
+ var List = 92;
3052
+ var FunctionDefinition = 93;
3053
+ var functionDefinitionStart = 170;
3054
+ var Context = 100;
3055
+ var contextStart = 172;
3056
+ var ContextEntry = 101;
3057
+ var PropertyName = 103;
3058
+ var PropertyIdentifier = 104;
3059
+ var LOG_PARSE = typeof process != "undefined" && process.env && /\bfparse(:dbg)?\b/.test(process.env.LOG);
3060
+ var LOG_PARSE_DEBUG = typeof process != "undefined" && process.env && /\bfparse:dbg\b/.test(process.env.LOG);
3061
+ var LOG_VARS = typeof process != "undefined" && process.env && /\bcontext\b/.test(process.env.LOG);
3062
+ var spaceChars = [
3063
+ 9,
3064
+ 11,
3065
+ 12,
3066
+ 32,
3067
+ 133,
3068
+ 160,
3069
+ 5760,
3070
+ 8192,
3071
+ 8193,
3072
+ 8194,
3073
+ 8195,
3074
+ 8196,
3075
+ 8197,
3076
+ 8198,
3077
+ 8199,
3078
+ 8200,
3079
+ 8201,
3080
+ 8202,
3081
+ 8232,
3082
+ 8233,
3083
+ 8239,
3084
+ 8287,
3085
+ 12288
3086
+ ];
3087
+ var newlineChars = chars(`
3088
+ \r`);
3089
+ var asterix = 42;
3090
+ var additionalNameChars = chars("'./-+*^");
3091
+ function chars(str) {
3092
+ return Array.from(str).map((s) => s.charCodeAt(0));
3093
+ }
3094
+ function isStartChar(ch) {
3095
+ return ch === 63 || ch >= 65 && ch <= 90 || ch === 95 || ch >= 97 && ch <= 122 || ch >= 192 && ch <= 214 || ch >= 216 && ch <= 246 || ch >= 248 && ch <= 767 || ch >= 880 && ch <= 893 || ch >= 895 && ch <= 8191 || ch >= 8204 && ch <= 8205 || ch >= 8304 && ch <= 8591 || ch >= 11264 && ch <= 12271 || ch >= 12289 && ch <= 55295 || ch >= 63744 && ch <= 64975 || ch >= 65008 && ch <= 65533 || ch >= 55296 && ch <= 56319 || ch >= 56320 && ch <= 57343;
3096
+ }
3097
+ function isAdditional(ch) {
3098
+ return additionalNameChars.includes(ch);
3099
+ }
3100
+ function isPartChar(ch) {
3101
+ return ch >= 48 && ch <= 57 || ch === 183 || ch >= 768 && ch <= 879 || ch >= 8255 && ch <= 8256;
3102
+ }
3103
+ function isSpace(ch) {
3104
+ return spaceChars.includes(ch);
3105
+ }
3106
+ function indent(str, spaces) {
3107
+ return spaces.concat(str.split(/\n/g).join(`
3108
+ ` + spaces));
3109
+ }
3110
+ function parseAdditionalSymbol(input, offset = 0) {
3111
+ const next = input.peek(offset);
3112
+ if (next === asterix && input.peek(offset + 1) === asterix) {
3113
+ return {
3114
+ offset: 2,
3115
+ token: "**"
3116
+ };
3117
+ }
3118
+ if (isAdditional(next)) {
3119
+ return {
3120
+ offset: 1,
3121
+ token: String.fromCharCode(next)
3122
+ };
3123
+ }
3124
+ return null;
3125
+ }
3126
+ function parseIdentifier(input, offset = 0, namePart = false) {
3127
+ for (let inside = false, chars2 = [], i = 0;; i++) {
3128
+ const next = input.peek(offset + i);
3129
+ if (isStartChar(next) || (inside || namePart) && isPartChar(next)) {
3130
+ if (!inside) {
3131
+ inside = true;
3132
+ }
3133
+ chars2.push(next);
3134
+ } else {
3135
+ if (chars2.length) {
3136
+ return {
3137
+ token: String.fromCharCode(...chars2),
3138
+ offset: i
3139
+ };
3140
+ }
3141
+ return null;
3142
+ }
3143
+ }
3144
+ }
3145
+ function parseSpaces(input, offset) {
3146
+ for (let inside = false, i = 0;; i++) {
3147
+ let next = input.peek(offset + i);
3148
+ if (isSpace(next)) {
3149
+ if (!inside) {
3150
+ inside = true;
3151
+ }
3152
+ } else {
3153
+ if (inside) {
3154
+ return {
3155
+ token: " ",
3156
+ offset: i
3157
+ };
3158
+ }
3159
+ return null;
3160
+ }
3161
+ }
3162
+ }
3163
+ function parseName(input, variables) {
3164
+ const {
3165
+ keys,
3166
+ prefixes
3167
+ } = variables.contextCache();
3168
+ const start = variables.tokens;
3169
+ for (let i = 0, tokens = [], nextMatch = null;; ) {
3170
+ const namePart = start.length + tokens.length > 0;
3171
+ const maybeSpace = tokens.length > 0;
3172
+ const match = parseIdentifier(input, i, namePart) || namePart && parseAdditionalSymbol(input, i) || maybeSpace && parseSpaces(input, i);
3173
+ if (!match) {
3174
+ return nextMatch;
3175
+ }
3176
+ const {
3177
+ token,
3178
+ offset
3179
+ } = match;
3180
+ i += offset;
3181
+ if (token === " ") {
3182
+ continue;
3183
+ }
3184
+ tokens = [...tokens, token];
3185
+ const name2 = [...start, ...tokens].join(" ");
3186
+ if (keys.has(name2)) {
3187
+ const token2 = tokens[0];
3188
+ nextMatch = {
3189
+ token: token2,
3190
+ offset: token2.length,
3191
+ term: nameIdentifier
3192
+ };
3193
+ }
3194
+ if (prefixes.has(name2)) {
3195
+ continue;
3196
+ }
3197
+ if (dateTimeIdentifiers.some((el) => el === name2)) {
3198
+ const token2 = tokens[0];
3199
+ nextMatch = {
3200
+ token: token2,
3201
+ offset: token2.length,
3202
+ term: identifier
3203
+ };
3204
+ }
3205
+ if (dateTimeIdentifiers.some((el) => el.startsWith(name2))) {
3206
+ continue;
3207
+ }
3208
+ return nextMatch;
3209
+ }
3210
+ }
3211
+ var identifiersMap = {
3212
+ [identifier]: "identifier",
3213
+ [nameIdentifier]: "nameIdentifier"
3214
+ };
3215
+ var identifiers = new ExternalTokenizer((input, stack) => {
3216
+ LOG_PARSE_DEBUG && console.log("%s: T <identifier | nameIdentifier>", input.pos);
3217
+ const nameMatch = parseName(input, stack.context);
3218
+ const start = stack.context.tokens;
3219
+ const match = nameMatch || parseIdentifier(input, 0, start.length > 0);
3220
+ if (match) {
3221
+ input.advance(match.offset);
3222
+ input.acceptToken(nameMatch ? nameMatch.term : identifier);
3223
+ LOG_PARSE && console.log("%s: MATCH <%s> <%s>", input.pos, nameMatch ? identifiersMap[nameMatch.term] : "identifier", match.token);
3224
+ }
3225
+ }, { contextual: true });
3226
+ var propertyIdentifiers = new ExternalTokenizer((input, stack) => {
3227
+ LOG_PARSE_DEBUG && console.log("%s: T <propertyIdentifier>", input.pos);
3228
+ const start = stack.context.tokens;
3229
+ const match = parseIdentifier(input, 0, start.length > 0);
3230
+ if (match) {
3231
+ input.advance(match.offset);
3232
+ input.acceptToken(propertyIdentifier);
3233
+ LOG_PARSE && console.log("%s: MATCH <propertyIdentifier> <%s>", input.pos, match.token);
3234
+ }
3235
+ });
3236
+ var insertSemicolon = new ExternalTokenizer((input, stack) => {
3237
+ LOG_PARSE_DEBUG && console.log("%s: T <insertSemi>", input.pos);
3238
+ let offset;
3239
+ let insert = false;
3240
+ for (offset = 0;; offset++) {
3241
+ const char = input.peek(offset);
3242
+ if (spaceChars.includes(char)) {
3243
+ continue;
3244
+ }
3245
+ if (newlineChars.includes(char)) {
3246
+ insert = true;
3247
+ }
3248
+ break;
3249
+ }
3250
+ if (insert) {
3251
+ const identifier2 = parseIdentifier(input, offset + 1);
3252
+ const spaces = parseSpaces(input, offset + 1);
3253
+ if (spaces || identifier2 && /^(then|else|return|satisfies)$/.test(identifier2.token)) {
3254
+ return;
3255
+ }
3256
+ LOG_PARSE && console.log("%s: MATCH <insertSemi>", input.pos);
3257
+ input.acceptToken(insertSemi);
3258
+ }
3259
+ });
3260
+ var prefixedContextStarts = {
3261
+ [functionInvocationStart]: "FunctionInvocation",
3262
+ [filterExpressionStart]: "FilterExpression",
3263
+ [pathExpressionStart]: "PathExpression"
3264
+ };
3265
+ var contextStarts = {
3266
+ [contextStart]: "Context",
3267
+ [functionDefinitionStart]: "FunctionDefinition",
3268
+ [forExpressionStart]: "ForExpression",
3269
+ [listStart]: "List",
3270
+ [ifExpressionStart]: "IfExpression",
3271
+ [quantifiedExpressionStart]: "QuantifiedExpression"
3272
+ };
3273
+ var contextEnds = {
3274
+ [Context]: "Context",
3275
+ [FunctionDefinition]: "FunctionDefinition",
3276
+ [ForExpression]: "ForExpression",
3277
+ [List]: "List",
3278
+ [IfExpression]: "IfExpression",
3279
+ [QuantifiedExpression]: "QuantifiedExpression",
3280
+ [PathExpression]: "PathExpression",
3281
+ [FunctionInvocation]: "FunctionInvocation",
3282
+ [FilterExpression]: "FilterExpression",
3283
+ [ArithmeticExpression]: "ArithmeticExpression"
3284
+ };
3285
+
3286
+ class ValueProducer {
3287
+ constructor(fn) {
3288
+ this.fn = fn;
3289
+ }
3290
+ get(variables) {
3291
+ return this.fn(variables);
3292
+ }
3293
+ static of(fn) {
3294
+ return new ValueProducer(fn);
3295
+ }
3296
+ }
3297
+ var dateTimeLiterals = {
3298
+ "date and time": 1,
3299
+ date: 1,
3300
+ time: 1,
3301
+ duration: 1
3302
+ };
3303
+ var dateTimeIdentifiers = Object.keys(dateTimeLiterals);
3304
+ function getPrefixes(str) {
3305
+ const prefixes = [];
3306
+ for (let i = 1;i <= str.length; i++) {
3307
+ prefixes.push(str.substring(0, i));
3308
+ }
3309
+ return prefixes;
3310
+ }
3311
+ function cacheKey(key, cache) {
3312
+ const normalizedKey = normalizeContextKey(key);
3313
+ const prefixes = getPrefixes(normalizedKey);
3314
+ cache.keys.add(normalizedKey);
3315
+ for (const prefix of prefixes) {
3316
+ cache.prefixes.add(prefix);
3317
+ }
3318
+ cache.originalMap.set(normalizedKey, key);
3319
+ return cache;
3320
+ }
3321
+ function computeContextCache(context) {
3322
+ const cache = createContextCache();
3323
+ for (const key of context.getKeys()) {
3324
+ cacheKey(key, cache);
3325
+ }
3326
+ return cache;
3327
+ }
3328
+ function createContextCache(from) {
3329
+ return {
3330
+ keys: new Set(from?.keys),
3331
+ prefixes: new Set(from?.prefixes),
3332
+ originalMap: new Map(from?.originalMap)
3333
+ };
3334
+ }
3335
+
3336
+ class VariableContext {
3337
+ constructor(value = {}) {
3338
+ this.value = value;
3339
+ }
3340
+ getKeys() {
3341
+ return Object.keys(this.value);
3342
+ }
3343
+ get(key) {
3344
+ const result = this.value[key];
3345
+ const constructor = this.constructor;
3346
+ if (constructor.isAtomic(result)) {
3347
+ return result;
3348
+ }
3349
+ return constructor.of(result);
3350
+ }
3351
+ set(key, value) {
3352
+ const constructor = this.constructor;
3353
+ return new constructor({
3354
+ ...this.value,
3355
+ [key]: value
3356
+ });
3357
+ }
3358
+ merge(other) {
3359
+ const constructor = this.constructor;
3360
+ return new constructor(constructor.__merge(this.value, other));
3361
+ }
3362
+ static isAtomic(value) {
3363
+ return value === null || value === undefined || value instanceof this || value instanceof ValueProducer || typeof value !== "object";
3364
+ }
3365
+ static of(...contexts) {
3366
+ const merged = contexts.reduce((context, otherContext) => {
3367
+ return this.__merge(context, otherContext);
3368
+ }, {});
3369
+ return new this(merged);
3370
+ }
3371
+ static __unwrap(context) {
3372
+ if (!context) {
3373
+ return {};
3374
+ }
3375
+ if (context instanceof this) {
3376
+ return context.value;
3377
+ }
3378
+ if (this.isAtomic(context)) {
3379
+ return {};
3380
+ }
3381
+ return context;
3382
+ }
3383
+ static __merge(context, other) {
3384
+ const merged = Object.assign({}, this.__unwrap(context));
3385
+ for (const [key, value] of Object.entries(this.__unwrap(other))) {
3386
+ if (value instanceof ValueProducer) {
3387
+ merged[key] = value;
3388
+ continue;
3389
+ }
3390
+ if (has(merged, key)) {
3391
+ merged[key] = this.__merge(merged[key], value);
3392
+ continue;
3393
+ }
3394
+ merged[key] = value;
3395
+ }
3396
+ return merged;
3397
+ }
3398
+ }
3399
+
3400
+ class Variables {
3401
+ constructor({
3402
+ name: name2 = "Expressions",
3403
+ tokens = [],
3404
+ children = [],
3405
+ parent = null,
3406
+ context,
3407
+ value,
3408
+ raw,
3409
+ __cache
3410
+ }) {
3411
+ this.name = name2;
3412
+ this.tokens = tokens;
3413
+ this.children = children;
3414
+ this.parent = parent;
3415
+ this.context = context;
3416
+ this.value = value;
3417
+ this.raw = raw;
3418
+ this.__cache = __cache;
3419
+ }
3420
+ get root() {
3421
+ let current = this;
3422
+ while (current.parent) {
3423
+ current = current.parent;
3424
+ }
3425
+ return current;
3426
+ }
3427
+ get cache() {
3428
+ const root = this.root;
3429
+ if (!root.__cache) {
3430
+ root.__cache = new WeakMap;
3431
+ }
3432
+ return root.__cache;
3433
+ }
3434
+ enterScope(name2) {
3435
+ const childScope = this.of({
3436
+ name: name2,
3437
+ parent: this
3438
+ });
3439
+ LOG_VARS && console.log("[%s] enter", childScope.path, childScope.context);
3440
+ return childScope;
3441
+ }
3442
+ exitScope(str) {
3443
+ if (!this.parent) {
3444
+ LOG_VARS && console.log(`[%s] NO exit %o
3445
+ %s`, this.path, this.context, indent(str, " "));
3446
+ return this;
3447
+ }
3448
+ LOG_VARS && console.log(`[%s] exit %o
3449
+ %s`, this.path, this.context, indent(str, " "));
3450
+ return this.parent.pushChild(this);
3451
+ }
3452
+ token(part) {
3453
+ LOG_VARS && console.log("[%s] token <%s> + <%s>", this.path, this.tokens.join(" "), part);
3454
+ return this.assign({
3455
+ tokens: [...this.tokens, part]
3456
+ });
3457
+ }
3458
+ literal(value) {
3459
+ LOG_VARS && console.log("[%s] literal %o", this.path, value);
3460
+ return this.pushChild(this.of({
3461
+ name: "Literal",
3462
+ value
3463
+ }));
3464
+ }
3465
+ computedValue() {
3466
+ for (let scope = this;; scope = last(scope.children)) {
3467
+ if (!scope) {
3468
+ return null;
3469
+ }
3470
+ if (!isNil(scope.value)) {
3471
+ return scope.value;
3472
+ }
3473
+ }
3474
+ }
3475
+ contextCache() {
3476
+ let cache = this.cache.get(this.context);
3477
+ if (!cache) {
3478
+ cache = computeContextCache(this.context);
3479
+ this.cache.set(this.context, cache);
3480
+ }
3481
+ return cache;
3482
+ }
3483
+ get path() {
3484
+ return this.parent?.path?.concat(" > ", this.name) || this.name;
3485
+ }
3486
+ get(variable) {
3487
+ const normalizedVariable = variable && normalizeContextKey(variable);
3488
+ const contextKey = this.contextCache().originalMap.get(normalizedVariable);
3489
+ if (typeof contextKey === "undefined") {
3490
+ return;
3491
+ }
3492
+ const val = this.context.get(contextKey);
3493
+ if (val instanceof ValueProducer) {
3494
+ return val.get(this);
3495
+ } else {
3496
+ return val;
3497
+ }
3498
+ }
3499
+ resolveName(name2) {
3500
+ const variable = this.tokens.join(" ");
3501
+ const tokens = [];
3502
+ const parentScope = this.assign({
3503
+ tokens
3504
+ });
3505
+ const variableScope = this.of({
3506
+ name: name2,
3507
+ parent: parentScope,
3508
+ value: this.get(variable),
3509
+ raw: variable
3510
+ });
3511
+ LOG_VARS && console.log("[%s] resolve %s <%s=%s>", name2, variableScope.path, variable, variableScope.value);
3512
+ return parentScope.pushChild(variableScope);
3513
+ }
3514
+ pushChild(child) {
3515
+ if (!child) {
3516
+ return this;
3517
+ }
3518
+ const parent = this.assign({
3519
+ children: [...this.children, child]
3520
+ });
3521
+ child.parent = parent;
3522
+ return parent;
3523
+ }
3524
+ pushChildren(children) {
3525
+ let parent = this;
3526
+ for (const child of children) {
3527
+ parent = parent.pushChild(child);
3528
+ }
3529
+ return parent;
3530
+ }
3531
+ declareName() {
3532
+ if (this.tokens.length === 0) {
3533
+ throw Error("no tokens to declare name");
3534
+ }
3535
+ const variableName = this.tokens.join(" ");
3536
+ LOG_VARS && console.log("[%s] declareName <%s>", this.path, variableName);
3537
+ return this.assign({
3538
+ tokens: []
3539
+ }).pushChild(this.of({
3540
+ name: "Name",
3541
+ value: variableName
3542
+ }));
3543
+ }
3544
+ define(name2, value) {
3545
+ if (typeof name2 !== "string") {
3546
+ LOG_VARS && console.log("[%s] no define <%s=%s>", this.path, name2, value);
3547
+ return this;
3548
+ }
3549
+ LOG_VARS && console.log("[%s] define <%s=%s>", this.path, name2, value);
3550
+ const oldContext = this.context;
3551
+ const newContext = oldContext.set(name2, value);
3552
+ const oldCache = this.cache.get(oldContext) || computeContextCache(oldContext);
3553
+ const newCache = cacheKey(name2, createContextCache(oldCache));
3554
+ this.cache.set(newContext, newCache);
3555
+ return this.assign({
3556
+ context: newContext
3557
+ });
3558
+ }
3559
+ assign(options = {}) {
3560
+ return Variables.of({
3561
+ ...this,
3562
+ ...options
3563
+ });
3564
+ }
3565
+ of(options = {}) {
3566
+ const defaultOptions = {
3567
+ context: this.context,
3568
+ parent: this.parent
3569
+ };
3570
+ return Variables.of({
3571
+ ...defaultOptions,
3572
+ ...options
3573
+ });
3574
+ }
3575
+ static of(options) {
3576
+ const {
3577
+ name: name2,
3578
+ tokens = [],
3579
+ children = [],
3580
+ parent = null,
3581
+ context,
3582
+ value,
3583
+ raw,
3584
+ __cache
3585
+ } = options;
3586
+ if (!context) {
3587
+ throw new Error("must provide <context>");
3588
+ }
3589
+ return new Variables({
3590
+ name: name2,
3591
+ tokens: [...tokens],
3592
+ children: [...children],
3593
+ context,
3594
+ parent,
3595
+ value,
3596
+ raw,
3597
+ __cache
3598
+ });
3599
+ }
3600
+ }
3601
+ function normalizeContextKey(name2) {
3602
+ return name2.replace(/\s*([./\-'+]|\*\*?)\s*/g, " $1 ").replace(/\s{2,}/g, " ").trim();
3603
+ }
3604
+ function wrap(variables, scopeName, code) {
3605
+ const parts = variables.children.filter((c) => c.name !== scopeName);
3606
+ const children = variables.children.filter((c) => c.name === scopeName);
3607
+ const namePart = parts[0];
3608
+ const valuePart = parts[Math.max(1, parts.length - 1)];
3609
+ const name2 = namePart?.computedValue();
3610
+ const value = valuePart?.computedValue() ?? null;
3611
+ return variables.assign({
3612
+ children
3613
+ }).enterScope(scopeName).pushChildren(parts).exitScope(code).define(name2, value);
3614
+ }
3615
+ function trackVariables(context = {}, Context2 = VariableContext) {
3616
+ const start = Variables.of({
3617
+ context: Context2.of(context)
3618
+ });
3619
+ return new ContextTracker({
3620
+ start,
3621
+ reduce(variables, term, stack, input) {
3622
+ if (term === IfExpression) {
3623
+ const [thenPart, elsePart] = variables.children.slice(-2);
3624
+ variables = variables.assign({
3625
+ value: Context2.of(thenPart?.computedValue(), elsePart?.computedValue())
3626
+ });
3627
+ }
3628
+ if (term === List) {
3629
+ variables = variables.assign({
3630
+ value: Context2.of(...variables.children.map((c) => c?.computedValue()))
3631
+ });
3632
+ }
3633
+ if (term === FilterExpression) {
3634
+ const [sourcePart, _] = variables.children.slice(-2);
3635
+ variables = variables.assign({
3636
+ value: sourcePart?.computedValue()
3637
+ });
3638
+ }
3639
+ if (term === FunctionInvocation) {
3640
+ const [
3641
+ name2,
3642
+ ...args
3643
+ ] = variables.children;
3644
+ if (name2?.raw === "get value") {
3645
+ variables = getContextValue(variables, args);
3646
+ } else {
3647
+ variables = variables.assign({
3648
+ value: name2?.computedValue() || Context2.of(undefined)
3649
+ });
3650
+ }
3651
+ }
3652
+ const start2 = contextStarts[term];
3653
+ if (start2) {
3654
+ return variables.enterScope(start2);
3655
+ }
3656
+ const prefixedStart = prefixedContextStarts[term];
3657
+ if (prefixedStart) {
3658
+ const {
3659
+ children: currentChildren,
3660
+ context: currentContext
3661
+ } = variables;
3662
+ const children = currentChildren.slice(0, -1);
3663
+ const lastChild = last(currentChildren);
3664
+ let newContext = null;
3665
+ if (term === pathExpressionStart) {
3666
+ newContext = Context2.of(lastChild?.computedValue());
3667
+ }
3668
+ if (term === filterExpressionStart) {
3669
+ newContext = Context2.of(currentContext, lastChild?.computedValue()).set("item", lastChild?.computedValue());
3670
+ }
3671
+ return variables.assign({ children }).enterScope(prefixedStart).pushChild(lastChild).assign({ context: newContext || currentContext });
3672
+ }
3673
+ const code = input.read(input.pos, stack.pos);
3674
+ const end = contextEnds[term];
3675
+ if (end) {
3676
+ return variables.exitScope(code);
3677
+ }
3678
+ if (term === ContextEntry) {
3679
+ const parts = variables.children.filter((c) => c.name !== "ContextEntry");
3680
+ const name2 = parts[0];
3681
+ const value = last(parts);
3682
+ return wrap(variables, "ContextEntry", code).assign({
3683
+ value: Context2.of(variables.value).set(name2?.computedValue(), value?.computedValue())
3684
+ });
3685
+ }
3686
+ if (term === ForInExpression || term === QuantifiedInExpression) {
3687
+ return wrap(variables, "InExpression", code);
3688
+ }
3689
+ if (term === forExpressionBodyStart) {
3690
+ return variables.define("partial", ValueProducer.of((variables2) => {
3691
+ return last(variables2.children)?.computedValue();
3692
+ }));
3693
+ }
3694
+ if (term === ParameterName) {
3695
+ const name2 = last(variables.children).computedValue();
3696
+ return variables.define(name2, 1);
3697
+ }
3698
+ if (term === arithmeticPlusStart || term === arithmeticTimesStart || term === arithmeticExpStart) {
3699
+ const children = variables.children.slice(0, -1);
3700
+ const lastChild = last(variables.children);
3701
+ return variables.assign({
3702
+ children
3703
+ }).enterScope("ArithmeticExpression").pushChild(lastChild);
3704
+ }
3705
+ if (term === arithmeticUnaryStart) {
3706
+ return variables.enterScope("ArithmeticExpression");
3707
+ }
3708
+ if (term === Identifier || term === AdditionalIdentifier || term === PropertyIdentifier) {
3709
+ return variables.token(code);
3710
+ }
3711
+ if (term === StringLiteral) {
3712
+ return variables.literal(code.replace(/^"|"$/g, "").replace(/\\(["\\])/g, "$1"));
3713
+ }
3714
+ if (term === BooleanLiteral) {
3715
+ return variables.literal(code === "true" ? true : false);
3716
+ }
3717
+ if (term === NumericLiteral) {
3718
+ return variables.literal(parseFloat(code));
3719
+ }
3720
+ if (term === nil) {
3721
+ return variables.literal(null);
3722
+ }
3723
+ if (term === VariableName) {
3724
+ return variables.resolveName("VariableName");
3725
+ }
3726
+ if (term === PathName) {
3727
+ return variables.resolveName("PathName");
3728
+ }
3729
+ if (term === Name || term === PropertyName) {
3730
+ return variables.declareName();
3731
+ }
3732
+ if (term === expression0 || term === PositiveUnaryTest) {
3733
+ if (variables.tokens.length > 0) {
3734
+ throw new Error("uncleared name");
3735
+ }
3736
+ }
3737
+ if (term === expression0) {
3738
+ let parent = variables;
3739
+ while (parent.parent) {
3740
+ parent = parent.exitScope(code);
3741
+ }
3742
+ return parent;
3743
+ }
3744
+ return variables;
3745
+ }
3746
+ });
3747
+ }
3748
+ var variableTracker = trackVariables({});
3749
+ function getContextValue(variables, args) {
3750
+ if (!args.length) {
3751
+ return variables.assign({
3752
+ value: null
3753
+ });
3754
+ }
3755
+ if (args[0].name === "Name") {
3756
+ args = extractNamedArgs(args, ["m", "key"]);
3757
+ }
3758
+ if (args.length !== 2) {
3759
+ return variables.assign({
3760
+ value: null
3761
+ });
3762
+ }
3763
+ const [
3764
+ context,
3765
+ key
3766
+ ] = args;
3767
+ const keyValue = key?.computedValue();
3768
+ const contextValue = context?.computedValue();
3769
+ if (!contextValue || typeof contextValue !== "object" || typeof keyValue !== "string") {
3770
+ return variables.assign({
3771
+ value: null
3772
+ });
3773
+ }
3774
+ return variables.assign({
3775
+ value: [normalizeContextKey(keyValue), keyValue].reduce((value, keyValue2) => {
3776
+ return contextValue.get(keyValue2) || value;
3777
+ }, null)
3778
+ });
3779
+ }
3780
+ function extractNamedArgs(args, argNames) {
3781
+ const context = {};
3782
+ for (let i = 0;i < args.length; i += 2) {
3783
+ const [name2, value] = args.slice(i, i + 2);
3784
+ context[name2.value] = value;
3785
+ }
3786
+ return argNames.map((name2) => context[name2]);
3787
+ }
3788
+ function last(arr) {
3789
+ return arr[arr.length - 1];
3790
+ }
3791
+ var feelHighlighting = styleTags({
3792
+ StringLiteral: tags.string,
3793
+ NumericLiteral: tags.number,
3794
+ BooleanLiteral: tags.bool,
3795
+ "AtLiteral!": tags.special(tags.string),
3796
+ CompareOp: tags.compareOperator,
3797
+ ArithOp: tags.arithmeticOperator,
3798
+ "for if then else some every return": tags.controlKeyword,
3799
+ "in instance of and or satisfies between as": tags.operatorKeyword,
3800
+ function: tags.definitionKeyword,
3801
+ "Type/...": tags.typeName,
3802
+ "Wildcard!": tags.modifier,
3803
+ null: tags.null,
3804
+ LineComment: tags.lineComment,
3805
+ BlockComment: tags.blockComment,
3806
+ "VariableName!": tags.variableName,
3807
+ '"?"': tags.self,
3808
+ "DateTimeConstructor! SpecialFunctionName!": tags.standard(tags.function(tags.variableName)),
3809
+ "FunctionInvocation/VariableName!": tags.function(tags.variableName),
3810
+ "Name!": tags.definition(tags.variableName),
3811
+ "Key/Name! ContextEntryType/Name!": tags.definition(tags.propertyName),
3812
+ "PathExpression/PathName!": tags.propertyName,
3813
+ "FormalParameter/ParameterName!": tags.function(tags.definition(tags.variableName)),
3814
+ "( )": tags.paren,
3815
+ "[ ]": tags.squareBracket,
3816
+ "{ }": tags.brace,
3817
+ ".": tags.derefOperator,
3818
+ ", ;": tags.separator,
3819
+ "..": tags.punctuation
3820
+ });
3821
+ var spec_identifier = { __proto__: null, for: 10, in: 34, return: 40, if: 44, then: 46, else: 48, some: 52, every: 54, satisfies: 60, or: 64, and: 68, between: 76, instance: 90, of: 93, days: 105, time: 107, duration: 109, years: 111, months: 113, date: 115, list: 121, context: 127, function: 134, null: 162, true: 332, false: 332, "?": 176, external: 192, not: 217 };
3822
+ var parser = LRParser.deserialize({
3823
+ version: 14,
3824
+ states: "CvO`QYOOO`QYOOO$yQYOOOOQU'#Ce'#CeO%TQYO'#C`O&^QYO'#FTOOQQ'#Ff'#FfO&hQYO'#FfO`QYO'#DXOOQU'#Eq'#EqO(_Q^O'#D_OOQU'#D`'#D`OOQU'#D_'#D_OOQO'#Fn'#FnO*[QWO'#DyOOQQ'#EQ'#EQOOQQ'#ER'#EROOQQ'#ES'#ESO*aOWO'#EVO*[QWO'#ETOOQQ'#ET'#ETOOQQ'#Ft'#FtOOQQ'#Fr'#FrOOQQ'#Fz'#FzOOQQ'#EX'#EXO`QYO'#EZOOQQ'#FV'#FVO*iQ^O'#FVO,`QYO'#E[O,gQWO'#E]OOQP'#GO'#GOO,lQXO'#EdOOQQ'#F{'#F{OOQQ'#FU'#FUQOQWOOOOQQ'#FW'#FWOOQQ'#F_'#F_O`QYO'#CqOOQQ'#F`'#F`O%TQYO'#CuO,zQYO'#DzOOQQ'#Fs'#FsO-PQYO'#EUOOQO'#EU'#EUO`QYO'#EYO`QYO'#EXOOQO'#F|'#F|Q-XQWOOO-^QYO'#DTO.TQWO'#FbOOQO'#DV'#DVO.`QYO'#FfO.gQWOOO/^QYO'#CdO/kQYO'#FYOOQQ'#Cc'#CcO/pQYO'#FXOOQQ'#Cb'#CbO/xQYO,58zO`QYO,59kOOQQ'#Fc'#FcOOQQ'#Fd'#FdOOQQ'#Fe'#FeO`QYO,59sO`QYO,59sO`QYO,59sOOQQ'#Fl'#FlO/}QYO,5:`OOQQ'#Fm'#FmO`QYO,5:cO`QYO,59gO`QYO,59iO`QYO,59kO1|QYO,59kO2TQYO,59tOOQQ,5:l,5:lO2YQYO,59sOOQU-E8o-E8oO3|QYO'#FoOOQQ,5:e,5:eOOQQ,5:q,5:qOOQQ,5:o,5:oO4TQYO,5:uOOQQ,5;q,5;qO4_QYO,5:tO4lQWO,5:vO4qQYO,5:wOOQP'#Eh'#EhO5hQXO'#EgOOQO'#Ef'#EfO5oQWO'#EeO5tQWO'#GPO5|QWO,5;OO6RQYO,59]OOQQ'#Cy'#CyO6YQYO'#FaOOQQ'#Cx'#CxO6bQYO,59aO6gQYO,5:fO6lQYO,5:pO6qQYO,5:tO6xQYO,5:sO`QYO'#EzQ-XQWOOO`QYO'#EpO7oQWO,5;|O`QYOOOOQR'#Cf'#CfOOQQ'#Em'#EmO8iQYO,59OO`QYO,5;tOOQQ'#F['#F[O%TQYO'#EnO8yQYO,5;sO`QYO1G.fOOQQ'#F^'#F^O9pQYO1G/VO<gQYO1G/_O<qQYO1G/_O<{QYO1G/_O>oQYO'#DuOOQQ'#Du'#DuOOQQ1G/z1G/zO@iQYO1G/}O@pQYO1G/ROAyQYO1G/TOCSQYO1G/VO`QYO1G/VOOQQ1G/V1G/VOCjQYO1G/`ODXQ^O'#CdOEkQYO'#FqOOQO'#D}'#D}OEuQWO'#D|OEzQWO'#FpOOQO'#D{'#D{OOQO'#EO'#EOOFSQWO,5<ZOOQQ1G0a1G0aO`QYO1G0`O`QYO'#EvOFXQWO,5<]OOQQ1G0b1G0bOFdQWO'#E_OFoQWO'#F}OOQO'#E^'#E^OFwQWO1G0cOOQP'#Ex'#ExOF|QXO,5;RO`QYO,5;POGTQXO'#EyOG`QWO,5<kOOQQ1G0j1G0jO`QYO1G.wO%TQYO'#EoOGhQYO,5;{O`QYO1G.{OGpQYO1G0QOOQO1G0[1G0[OOQO,5;f,5;fOOQO-E8x-E8xOOQO,5;[,5;[OOQO-E8n-E8nOGuQWOOOOQQ-E8k-E8kOGzQYO'#CnOOQQ1G1`1G1`OOQQ,5;Y,5;YOOQQ-E8l-E8lOH[QYO7+$QOOQQ7+%i7+%iO`QYO7+$qOIRQYO,5:uOI`QWO7+$qOIeQYO'#D^OOQQ'#D]'#D]OKXQYO'#DaOK^QYO'#DaOKcQYO'#DaOKhQ`O'#DiOKmQ`O'#DlOKrQ`O'#DpOOQQ7+$z7+$zO`QYO,5:hO%TQYO'#EuOKwQWO,5<[OOQQ1G1u1G1uOL}QYO7+%zOM[QYO,5;bOOQO-E8t-E8tOCjQYO,5:yO%TQYO'#EwOMiQWO,5<iOMqQYO7+%}OOQP-E8v-E8vOMxQYO1G0kOOQO,5;e,5;eOOQO-E8w-E8wONSQYO7+$cOOQQ,5;Z,5;ZOOQQ-E8m-E8mONZQYO7+$gOOQO7+%l7+%lO`QYO,59YO! QQYO<<H]OOQQ<<H]<<H]O/}QYO'#ErO!!ZQYO,59xO!#}QYO,59{O!$SQYO,59{O!$XQYO,59{O!$^QYO,5:TO%TQYO,5:WO!${QbO,5:[O!%SQYO1G0SOOQO,5;a,5;aOOQO-E8s-E8sO!%^QYO<<IfOOQQ<<If<<IfOOQO1G0e1G0eOOQO,5;c,5;cOOQO-E8u-E8uO!(`QYO'#EaOOQQ<<Ii<<IiO`QYO<<IiO`QYO<<G}O!)VQYO1G.tOOQQ,5;^,5;^OOQQ-E8p-E8pO!)dQYO1G/gOOQQ1G/g1G/gO!)iQbO'#D_O!)zQ`O'#D^O!*VQ`O1G/oO!*[QWO'#DoO!*aQ`O'#FhOOQO'#Dn'#DnO!*iQ`O1G/rOOQO'#Ds'#DsO!*nQ`O'#FjOOQO'#Dr'#DrO!*vQ`O1G/vOOQQAN?TAN?TO!*{QYOAN=iOOQQ7+%R7+%RO!+rQ`O,59xOOQQ7+%Z7+%ZO!$^QYO,5:ZO%TQYO'#EsO!+}Q`O,5<SOOQQ7+%^7+%^O!$^QYO'#EtO!,VQ`O,5<UO!,_Q`O7+%bOOQO1G/u1G/uOOQO,5;_,5;_OOQO-E8q-E8qOOQO,5;`,5;`OOQO-E8r-E8rOCjQYO<<H|OOQQAN>hAN>hO/}QYO'#ErO!$^QYO<<H|O!,dQ`O7+%bO!,iQ`O1G/vO!${QbO,5:[O!,nQ`O'#Dp",
3825
+ stateData: "!-R~O#uOS#vOSPOSQOS~OTsO[VO]UOftOjvOkvOt}Ou}OxiO!V{O!W{O!XxO!ZzO!e!OO!j|O!lgO!syO!zjO#VnO#qRO#rRO$ZZO$i_O$j`O$k`O$laO$mbO~OTsO]UOftOjvOkvOt}Ou}OxiO!V{O!W{O!XxO!ZzO!e!OO!j|O!lgO!syO!zjO#VnO#qRO#rRO$ZZO$i_O$j`O$k`O$laO$mbO~O[!TO#`!UO~P#VO#qRO#rRO~OZ!dO[!^O]!^O^!_O_!_O`!`Oa!kOp!hOr!iOt!]Ou!]Ov!jO}!lO!l!fOx$bX~O#o#wX$t#wX~P%]O$i!mOT$YX[$YX]$YXf$YXj$YXk$YXt$YXu$YXx$YX!V$YX!W$YX!X$YX!Z$YX!e$YX!j$YX!l$YX!s$YX!z$YX#V$YX#q$YX#r$YX$Z$YX$j$YX$k$YX$l$YX$m$YX~O#qRO#rROZ!RX[!RX]!RX^!RX_!RX`!RXa!RXp!RXr!RXt!RXu!RXv!RXx!RX}!RX!l!RX#o!RX#s!RX$t!RX$P!RXc!RXz!RX!j!RXg!RXd!RX#U!RXh!RXn!RX~Ox!pO~O$j`O$k`O~O#s!uOZ#yX[#yX]#yX^#yX_#yX`#yXa#yXp#yXr#yXt#yXu#yXv#yXx#yX}#yX!l#yX#o#yX$t#yX$P#yXc#yXz#yX!j#yXg#yXd#yX#U#yXh#yXn#yX~O!j$eP~P`Ox!xO~O#p!yO$j`O$k`O#U$sP~Or#UO~Or#VOx!xX~O$t#YO~O#owX$PwX$twXzwXcwX!jwXgwXdwX#UwXhwXnwX~P%]O$P#[O#o$UXz$UX~O#o#_X~P&hOx#^O~OZ#_O[#_O]#_O^#_O_#_O`#_O#qRO#rRO#}#_O$]WX~OaWXzWX$PWX~P.lOa#cO~O$P#dOd#{X~Od#gO~O#qRO#rRO$ZZO~OTsO[VO]UOftOjvOkvOt}Ou}O!V{O!W{O!XxO!ZzO!e!OO!j|O!lgO!syO!zjO#VnO#qRO#rRO$ZZO$i_O$j`O$k`O$laO$mbO~Ox#sO~P0YO!O#uO~OZ!dO}!lO!l!fO[{a]{a^{a_{a`{aa{ap{ar{at{au{av{ax$bX#o{a$t{a$P{ac{az{a!j{ag{ad{a#U{ah{an{a~Oz$eP~P`Oc$POz$OO~P%]Oc$PO$P$QO!j$eX~P%]O!j$SO~O#qRO#rROz$qP~OZ#_O[#_O]#_O^#_O_#_O`#_O#p!yO#}#_O~O$]#ZX~P4|O$]$ZO~O$P$[O#U$sX~O#U$^O~Og$_O~P%]O$P$`On$TX~On$bO~O!Y$cO~O!V$dO~Oc$PO~P%]O#o!{a$t!{a$P!{ac!{az!{a!j!{ag!{ad!{a#U!{ah!{an!{a~P%]O$P#[O#o$Uaz$Ua~OZ#_O[#_O]#_O^#_O_#_O`#_O#qRO#rRO#}#_O~OaWa$]WazWa$PWa~P7zO$P#dOd#{a~OZ!dO[!^O]!^O^!_O_!_O`!`O}!lO!l!fOx$bX~Oasipsirsitsiusivsi#osi$tsi$Psicsizsi!jsigsidsi#Usihsinsi~P9ROZ!dO`!`O}!lO!l!fO[{i]{ia{ip{ir{it{iu{iv{ix$bX#o{i$t{i$P{ic{iz{i!j{ig{id{i#U{ih{in{i~O^!_O_!_O~P:yO^{i_{i~P:yOZ!dO}!lO!l!fO[{i]{i^{i_{i`{ia{ip{ir{it{iu{iv{ix$bX#o{i$t{i$P{ic{iz{i!j{ig{id{i#U{ih{in{i~O#qRO#rROZ!iX[!iX]!iX^!iX_!iX`!iXa!iXp!iXr!iXt!iXu!iXv!iXx!iX}!iX!l!iX#o!iX$t!iX$P!iXc!iXz!iX!j!iXg!iXd!iX#U!iXh!iXn!iX~O!j$pO~P%]Oa!kOr!iOt!]Ou!]Ov!jOpoi#ooi$toi$Poicoizoi!joigoidoi#Uoihoinoi~P9ROa!kOt!]Ou!]Ov!jOpqirqi#oqi$tqi$Pqicqizqi!jqigqidqi#Uqihqinqi~P9ROa!kOp!hOr$qOt!]Ou!]Ov!jO~P9RO!U$vO!X$wO!Z$xO!^$yO!a$zO!e${O#qRO#rRO$ZZO~OZ#eX[#eX]#eX^#eX_#eX`#eXa#eXp#eXr#eXt#eXu#eXv#eXx#eXz#eX}#eX!l#eX#q#eX#r#eX#s#eX$P#eX~P.lO$P$QOz$eX~P%]O$]$}O~O$P%OOz$dX~Oz%QO~O$P$QO!j$eaz$ea~O$]%UOz#RX$P#RX~O$P%VOz$qX~Oz%XO~O$]#Za~P4|O#p!yO$j`O$k`O~O$P$[O#U$sa~O$P$`On$Ta~O!W%bO~OzrO~Oc%cOdbX$PbXnbX~P%]O#oSq$tSq$PSqcSqzSq!jSqgSqdSq#USqhSqnSq~P%]Oc$POz$OO$PwX~P%]Oz%eO~OZ%fO[!QX]!QX^!QX_!QX`!QXa!QXp!QXr!QXt!QXu!QXv!QXx!QX}!QX!l!QX#o!QX$t!QX$P!QXc!QXz!QX!j!QXg!QXd!QX#U!QXh!QXn!QX~Or%hO~Or%iO~Or%jO~O!_%kO~O!_%lO~O!_%mO~O$P%OOz$da~OZ!dO[!^O]!^O^!_O_!_O`!`Oa!kOp!hOr!iOt!]Ou!]Ov!jO}!lOx$bX~Oz%rO!j%rO!l%qO~PLPO!j#ja$P#jaz#ja~P%]O$P%VOz$qa~O#S%xO~P`O#U#Xi$P#Xi~P%]Oh%yO~P%]O#oiq$tiq$Piqciqziq!jiqgiqdiq#Uiqhiqniq~P%]Oasypsyrsytsyusyvsy#osy$tsy$Psycsyzsy!jsygsydsy#Usyhsynsy~P9ROZ%fO[!Qa]!Qa^!Qa_!Qa`!Qaa!Qap!Qar!Qat!Qau!Qav!Qax!Qa}!Qa!l!Qa#o!Qa$t!Qa$P!Qac!Qaz!Qa!j!Qag!Qad!Qa#U!Qah!Qan!Qa~O!V%}O~O!Y%}O~O!V&OO~O!U$vO!X$wO!Z$xO!^$yO!a$zO!e&tO#qRO#rRO$ZZO~O![$^P~P!$^Oz!pi$P!pi~P%]OT$aXZ!|y[$aX]$aX^!|y_!|y`!|ya!|yf$aXj$aXk$aXp!|yr!|yt$aXu$aXv!|yx$aX}!|y!V$aX!W$aX!X$aX!Z$aX!e$aX!j$aX!l$aX!s$aX!z$aX#V$aX#o!|y#q$aX#r$aX$Z$aX$i$aX$j$aX$k$aX$l$aX$m$aX$t!|y$P!|yc!|yz!|yg!|yd!|y#U!|yh!|yn!|y~O#o#TX$t#TX$P#TXc#TXz#TX!j#TXg#TXd#TX#U#TXh#TXn#TX~P%]Odbi$Pbinbi~P%]O!W&^O~O#qRO#rROZ!RX![!RX$P!RX~OZ&oO![!QX$P!QX~O![&`O~O$]&aO~O$P&bO![$[X~O![&dO~O$P&eO![$^X~O![&gO~O#oe!R$te!R$Pe!Rce!Rze!R!je!Rge!Rde!R#Ue!Rhe!Rne!R~P%]OZ&oO![!Qa$P!Qa~O$P&bO![$[a~O$P&eO![$^a~O$_&mO~O$_&pO~O![&qO~O!_&sO~O$Z$j~$j$k`_$iZQP^Q~",
3826
+ goto: "E`$tPPPP$uP%m%p%v&W'qPPPPPPP'zPP$uPPP$uPP'}(QP$uP$uP$uPPP(WP(cP$u$uPP(l)R)^*g)RPPPPPPP)RPP)RP+m+p)RP+v+|$u,TP$uP$u,W-O-R-X-OP-a.X-a-a/W0OP$u0v$u1n1n2f2iP2oPP1n2u2{/S3PPP3XP3[3c3i3o3u5S5^5d5j5p5w5}6T6ZPPPPPPPP6a6j8n9f:^:aP:iP:l:o;g<_<b<g=T=r>bP?YP?]P?a@R@sAkAqAt$uAzAzPPPPPBr8nCjDbDeE]!kjOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yR![SQ!YSR$m#dW!WSw#d$`W#x!p!x%O%VT&S%l&b#WXOPQWYilu|}!]!a!b!c!e!g!h!i!j!k#Y#[#^#b#f#l#s#u$P$Q$Z$_$b$q$}%U%X%c%f%k%m%x%y&P&a&e&m&o&p&sb!VSw!x#d$`%O%V%l&bU#`!V#a#vR#v!pU#`!V#a#vT$X!z$YR$l#bR#TwQ#RwR%_$`U!RQ#^#sQ#t!kR$g#[QrQQ$i#^R$s#sQ$|#uQ%s%UQ&R%kU&W%m&e&sQ&h&aT&n&m&pc$u#u%U%k%m&a&e&m&p&s!jkOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yU$t#u%U&mS%{%f&o]&Q%k%m&a&e&p&s#Q[OPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s#u$P$Q$Z$_$b$q$}%U%X%c%f%k%m%x%y&a&e&m&o&p&sR#m!eR&V%lQ&T%lR&i&bQ&Z%mR&r&sS&X%m&sR&k&eR#n!e!k]OPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yR#}!pQ#z!pR%o%OS#y!p%OT$T!x%V!keOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%y!jeOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yQ!rbT!{o$[!kcOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%y!kdOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%y!khOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%y!kpOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yR$W!xQ$U!xR%t%VQ%w%XR&[%xQ!}oR%[$[T!|o$[S!zo$[T$X!z$YRrQS#a!V#vR$j#aQ#e!YR$n#eQ$a#RR%`$aQ#]!RR$h#]!rYOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s#u$P$Q$Z$_$b$q$}%U%X%c%f%x%y&mU!oY#l&PQ#l!e_&P%k%m&a&e&o&p&sQ%g$tS%|%g&_R&_&QQ&c&TR&j&cQ&f&XR&l&fQ%P#zR%p%PS$R!v#wR%T$RQ%W$UR%u%WQ$Y!zR%Y$YQ$]!}R%]$]Q#Z!PR$f#ZQrOQ!PPR$e#YUTOP#YW!QQ!k#[#^Q!nWQ!tiQ!vlQ#PuQ#W|Q#X}Q#h!]Q#i!aQ#j!bQ#k!cQ#o!gQ#p!hQ#q!iQ#r!jQ#w!pQ$k#bQ$o#fQ$r#sQ%R$PQ%S$QQ%Z$ZQ%^$_Q%a$bQ%d$qQ%n$}S%v%X%xQ%z%cR&]%y!kqOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%y!kSOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yR!ZSS!XS#dT#Qw$`R#b!WR#f![!kuOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%y!kwOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yR#SwV!SQ#^#s!V!aT!Q!t!v#P#W#X#h#o#p#q#r#w$k$o$r%R%S%Z%^%a%d%n%v%z&]!X!bT!Q!t!v#P#W#X#h#i#o#p#q#r#w$k$o$r%R%S%Z%^%a%d%n%v%z&]!Z!cT!Q!t!v#P#W#X#h#i#j#o#p#q#r#w$k$o$r%R%S%Z%^%a%d%n%v%z&]!kWOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yR&U%lT&Y%m&s!_!eT!Q!n!t!v#P#W#X#h#i#j#k#o#p#q#r#w$k$o$r%R%S%Z%^%a%d%n%v%z&]!_!gT!Q!n!t!v#P#W#X#h#i#j#k#o#p#q#r#w$k$o$r%R%S%Z%^%a%d%n%v%z&]!k^OPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yQ!q^R!scR#{!pQ!wlR#|!p!kfOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%y!klOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%y!kmOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yR$V!x!koOPQWilu|}!]!a!b!c!g!h!i!j!k!p#Y#[#^#b#f#s$P$Q$Z$_$b$q$}%X%c%x%yR#Oo",
3827
+ nodeNames: "⚠ LineComment BlockComment Expression ForExpression for InExpressions InExpression Name Identifier Identifier . ArithOp ArithOp ArithOp ArithOp ArithOp in IterationContext .. return IfExpression if then else QuantifiedExpression some every InExpressions InExpression satisfies Disjunction or Conjunction and Comparison CompareOp CompareOp between PositiveUnaryTest ( PositiveUnaryTests ) ArithmeticExpression InstanceOfExpression instance of Type QualifiedName VariableName BacktickIdentifier SpecialType days time duration years months date > ListType list < ContextType context ContextEntryTypes ContextEntryType FunctionType function ArgumentTypes ArgumentType PathExpression PathName ] FilterExpression [ FunctionInvocation SpecialFunctionName NamedParameters NamedParameter ParameterName PositionalParameters null NumericLiteral StringLiteral BooleanLiteral DateTimeLiteral DateTimeConstructor AtLiteral ? SimplePositiveUnaryTest Interval ParenthesizedExpression List FunctionDefinition FormalParameters FormalParameter external FunctionBody } { Context ContextEntry Key Name Identifier Expressions UnaryTests Wildcard not",
3828
+ maxTerm: 174,
3829
+ context: variableTracker,
3830
+ nodeProps: [
3831
+ ["group", -17, 4, 21, 25, 31, 33, 35, 43, 44, 70, 73, 75, 88, 89, 91, 92, 93, 100, "Expr", 49, "Expr Expr", -5, 81, 82, 83, 84, 85, "Expr Literal"],
3832
+ ["closedBy", 40, ")", 74, "]", 99, "}"],
3833
+ ["openedBy", 42, "(", 72, "[", 98, "{"]
3834
+ ],
3835
+ propSources: [feelHighlighting],
3836
+ skippedNodes: [0, 1, 2],
3837
+ repeatNodeCount: 14,
3838
+ tokenData: ".v~RvXY#iYZ$^Z[#i]^$^pq#iqr$crs$nwx(Wxy(]yz(bz{(g{|(t|}(y}!O)O!O!P)]!P!Q*g!Q![,b![!],y!]!^-O!^!_-T!_!`$i!`!a-d!b!c-n!}#O-s#P#Q-x#Q#R(o#S#T-}#o#p.l#q#r.q$f$g#i#BY#BZ#i$IS$I_#i$I|$I}$^$I}$JO$^$JT$JU#i$KV$KW#i&FU&FV#i?HT?HU#i~#nY#u~XY#iZ[#ipq#i$f$g#i#BY#BZ#i$IS$I_#i$JT$JU#i$KV$KW#i&FU&FV#i?HT?HU#i~$cO#v~~$fP!_!`$i~$nOt~~$qXOY$nYZ%^Zr$nrs&zs#O$n#O#P'R#P;'S$n;'S;=`(Q<%lO$n~%aVOr%^rs%vs#O%^#O#P%{#P;'S%^;'S;=`&t<%lO%^~%{O$j~~&ORO;'S%^;'S;=`&X;=`O%^~&[WOr%^rs%vs#O%^#O#P%{#P;'S%^;'S;=`&t;=`<%l%^<%lO%^~&wP;=`<%l%^~'RO$j~$k~~'URO;'S$n;'S;=`'_;=`O$n~'bYOY$nYZ%^Zr$nrs&zs#O$n#O#P'R#P;'S$n;'S;=`(Q;=`<%l$n<%lO$n~(TP;=`<%l$n~(]O#}~~(bOx~~(gOz~~(lP_~z{(o~(tO`~~(yO]~~)OO$P~R)TP[P!`!a)WQ)]O$_Q~)bQZ~!O!P)h!Q![)m~)mOc~~)rR$i~!Q![)m!g!h){#X#Y){~*OR{|*X}!O*X!Q![*_~*[P!Q![*_~*dP$i~!Q![*_~*lQ^~z{*r!P!Q+y~*uTOz*rz{+U{;'S*r;'S;=`+s<%lO*r~+XVOz*rz{+U{!P*r!P!Q+n!Q;'S*r;'S;=`+s<%lO*r~+sOQ~~+vP;=`<%l*r~,OSP~OY+yZ;'S+y;'S;=`,[<%lO+y~,_P;=`<%l+y~,gS$i~!O!P,s!Q![,b!g!h){#X#Y){~,vP!Q![)m~-OO$]~~-TO$t~R-[P!_QuP!_!`-_P-dOuPR-kP![QuP!_!`-_~-sO$m~~-xO!l~~-}O!j~~.QTO#S-}#S#T.a#T;'S-};'S;=`.f<%lO-}~.fO$Z~~.iP;=`<%l-}~.qO#V~~.vO#U~",
3839
+ tokenizers: [propertyIdentifiers, identifiers, insertSemicolon, 0, 1],
3840
+ topRules: { Expression: [0, 3], Expressions: [1, 105], UnaryTests: [2, 106] },
3841
+ dialects: { camunda: 2657 },
3842
+ dynamicPrecedences: { "33": -1, "70": 1, "75": -1, "77": -1 },
3843
+ specialized: [{ term: 125, get: (value) => spec_identifier[value] || -1 }],
3844
+ tokenPrec: 2660
3845
+ });
3846
+
3847
+ // ../../node_modules/@uipath/dmn-editor-utils/dist/chunks/chunk-FF6TTFJN.js
3848
+ var m = parser.configure({ top: "UnaryTests" });
3849
+ var f = (e2) => e2.parent?.name === "FunctionInvocation" && e2.parent.firstChild?.from === e2.from;
3850
+ var F = (e2, t2, o) => {
3851
+ for (let i = e2.parent;i; i = i.parent)
3852
+ if (!(i.name !== "ForExpression" && i.name !== "QuantifiedExpression"))
3853
+ for (let n = i.getChild("InExpressions")?.firstChild;n; n = n.nextSibling) {
3854
+ let r = n.getChild("Name");
3855
+ if (r && e2.from >= n.to && o.slice(r.from, r.to) === t2)
3856
+ return true;
3857
+ }
3858
+ return false;
3859
+ };
3860
+ var h = (e2, t2, o) => {
3861
+ for (let i = e2.parent;i; i = i.parent)
3862
+ if (i.name === "FunctionDefinition")
3863
+ for (let n = i.getChild("FormalParameters")?.firstChild;n; n = n.nextSibling) {
3864
+ let r = n.getChild("ParameterName")?.getChild("Name");
3865
+ if (r && o.slice(r.from, r.to) === t2)
3866
+ return true;
3867
+ }
3868
+ return false;
3869
+ };
3870
+ var E = (e2, t2, o) => {
3871
+ for (let i = e2.parent;i; i = i.parent)
3872
+ if (i.name === "Context")
3873
+ for (let n = i.firstChild;n; n = n.nextSibling) {
3874
+ if (n.name !== "ContextEntry" || n.to > e2.from)
3875
+ continue;
3876
+ let r = n.getChild("Key")?.getChild("Name");
3877
+ if (r && o.slice(r.from, r.to) === t2)
3878
+ return true;
3879
+ }
3880
+ return false;
3881
+ };
3882
+ var D = (e2, t2, o) => F(e2, t2, o) || h(e2, t2, o) || E(e2, t2, o);
3883
+ var d = (e2) => {
3884
+ for (let t2 = e2.parent;t2; t2 = t2.parent)
3885
+ if (t2.name === "FilterExpression" && t2.firstChild && e2.from >= t2.firstChild.to)
3886
+ return true;
3887
+ return false;
3888
+ };
3889
+ var c = (e2, t2, o) => {
3890
+ (t2 === "unaryTests" ? m : parser).parse(e2).iterate({ enter(n) {
3891
+ if (n.name !== "VariableName")
3892
+ return;
3893
+ let r = n.node, a = e2.slice(r.from, r.to);
3894
+ f(r) || D(r, a, e2) || o(r, a);
3895
+ } });
3896
+ };
3897
+ var p = (e2, t2, o, i) => {
3898
+ if (!e2 || !e2.includes(t2))
3899
+ return [];
3900
+ let n = [];
3901
+ return c(e2, o, (r, a) => {
3902
+ a === t2 && !(i && d(r)) && n.push({ from: r.from, to: r.to });
3903
+ }), n;
3904
+ };
3905
+ var b = (e2, t2, o = {}) => {
3906
+ if (!e2.trim())
3907
+ return [];
3908
+ let i = [];
3909
+ return c(e2, t2, (n, r) => {
3910
+ (o.includeFilterPredicateMembers || !d(n)) && i.push({ name: r, from: n.from, to: n.to });
3911
+ }), i;
3912
+ };
3913
+ var x = (e2) => {
3914
+ let t2 = e2.trim();
3915
+ if (!t2)
3916
+ return false;
3917
+ let o = p(t2, t2, "expression", false);
3918
+ return o.length === 1 && o[0].from === 0 && o[0].to === t2.length;
3919
+ };
3920
+ var s = (e2) => `${e2}_${v4_default()}`;
3921
+ var C = "Annotation";
3922
+ var _ = "Decision";
3923
+ var M = "decision1";
3924
+ var A = "UiPath Maestro";
3925
+ var O = () => ({ id: s("definitions"), namespace: `http://uipath.com/dmn/${s("ns")}`, exporter: A });
3926
+ var S = "null";
3927
+ var re = (e2) => {
3928
+ let t2 = (e2 ?? "").trim();
3929
+ return t2 === "" || t2 === S;
3930
+ };
3931
+ var P = (e2) => ({ ...O(), name: e2, decision: { id: s("decision"), name: M, label: _, variableId: s("variable"), variableTypeRef: "string", decisionTable: { id: s("decisionTable"), hitPolicy: e.First, inputs: [{ id: s("input"), label: "Input 1", expressionId: s("inputExpression"), expressionText: "", typeRef: "string" }], outputs: [V()], annotations: [{ name: C }], rules: [{ id: s("rule"), inputEntries: [{ id: s("inputEntry"), text: "-" }], outputEntries: [{ id: s("outputEntry"), text: "" }], annotationEntries: [""] }] } }, inputData: [] });
3932
+ var T = "input1";
3933
+ var ie = (e2) => {
3934
+ let t2 = P(e2), [o] = t2.decision.decisionTable.inputs;
3935
+ return q({ ...t2, inputData: [{ id: s("inputData"), variableId: s("variable"), name: T, typeRef: o.typeRef }], decision: { ...t2.decision, decisionTable: { ...t2.decision.decisionTable, inputs: [{ ...o, expressionText: T }] } } });
3936
+ };
3937
+ var oe = /[\p{L}\p{N}_]/u;
3938
+ var L = /^[\p{L}_][\p{L}\p{N}_]*(\s*\.\s*[\p{L}_][\p{L}\p{N}_]*)*$/u;
3939
+ var v = /^[\p{L}_][\p{L}\p{N}_]*$/u;
3940
+ var w = (e2) => v.test(e2.trim()) && x(e2);
3941
+ var U = (e2, t2) => {
3942
+ let o = `output${t2 + 1}`, i = (e2 ?? "").replace(/[^\p{L}\p{N}_]+(.)?/gu, (r, a) => a ? a.toUpperCase() : "");
3943
+ if (!/^[\p{L}_]/u.test(i))
3944
+ return o;
3945
+ let n = i.charAt(0).toLowerCase() + i.slice(1);
3946
+ return w(n) ? n : o;
3947
+ };
3948
+ var B = (e2, t2) => e2.name?.trim() || U(e2.label, t2);
3949
+ var se = (e2) => e2 > 1;
3950
+ var ae = (e2) => {
3951
+ let t2 = e2.trim();
3952
+ if (!(!t2 || !L.test(t2)))
3953
+ return t2.split(".")[0].trim() || undefined;
3954
+ };
3955
+ var q = (e2) => {
3956
+ let t2 = $(e2.decision.decisionTable.inputs), o = (r) => r.variableName ?? r.name, i = e2.inputData.map((r) => {
3957
+ let a = o(r);
3958
+ return t2.has(a) ? r.requirementId ? r : { ...r, requirementId: s("informationRequirement") } : r.requirementId && !r.requirementFromSource ? { ...r, requirementId: undefined } : r;
3959
+ });
3960
+ return i.some((r, a) => r !== e2.inputData[a]) ? { ...e2, inputData: i } : e2;
3961
+ };
3962
+ var $ = (e2) => {
3963
+ let t2 = new Set;
3964
+ for (let o of e2)
3965
+ for (let i of b(o.expressionText, "expression"))
3966
+ t2.add(i.name);
3967
+ return t2;
3968
+ };
3969
+ function V() {
3970
+ let e2 = { id: s("output"), label: "Output 1", typeRef: "string" };
3971
+ return { ...e2, name: B(e2, 0) };
3972
+ }
3973
+ export {
3974
+ C as DEFAULT_ANNOTATION_CLAUSE_NAME,
3975
+ _ as DEFAULT_DECISION_NAME,
3976
+ S as EMPTY_OUTPUT_TEXT,
3977
+ oe as FEEL_NAME_CHAR,
3978
+ A as MAESTRO_EXPORTER,
3979
+ O as createBusinessRuleIdentity,
3980
+ P as createNewBusinessRuleModel,
3981
+ ie as createSeededBusinessRuleModel,
3982
+ q as deriveInputData,
3983
+ ae as expressionRoot,
3984
+ $ as inputExpressionRoots,
3985
+ re as isEmptyOutputText,
3986
+ w as isFeelIdentifier,
3987
+ B as outputArgumentName,
3988
+ U as outputNameFromLabel,
3989
+ se as resultIsKeyedByClause
3990
+ };
3991
+
3992
+ //# debugId=B9F114C27FBF032464756E2164756E21