@speclynx/apidom-traverse 4.7.0 → 4.8.0
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.
- package/CHANGELOG.md +16 -0
- package/README.md +15 -0
- package/dist/apidom-traverse.browser.js +19 -5
- package/dist/apidom-traverse.browser.min.js +1 -1
- package/package.json +6 -6
- package/src/traversal.cjs +19 -5
- package/src/traversal.mjs +19 -5
- package/types/apidom-traverse.d.ts +10 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [4.8.0](https://github.com/speclynx/apidom/compare/v4.7.1...v4.8.0) (2026-04-17)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **traverse:** change skipVisited default to false ([3e0df19](https://github.com/speclynx/apidom/commit/3e0df196d0bb5878fc18858209cc8ec31c0ab9cb))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **traverse:** add skipVisited option to prevent DAG explosion ([a149b2e](https://github.com/speclynx/apidom/commit/a149b2e92024afaf945f52a06ea00a9202519e2b))
|
|
15
|
+
|
|
16
|
+
## [4.7.1](https://github.com/speclynx/apidom/compare/v4.7.0...v4.7.1) (2026-04-16)
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
- **reference:** prevent exponential tree growth on deref ([#244](https://github.com/speclynx/apidom/issues/244)) ([2873e2a](https://github.com/speclynx/apidom/commit/2873e2ac8a2489396091b6bdf321138a34398d44)), closes [#12](https://github.com/speclynx/apidom/issues/12)
|
|
21
|
+
|
|
6
22
|
# [4.7.0](https://github.com/speclynx/apidom/compare/v4.6.0...v4.7.0) (2026-04-12)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @speclynx/apidom-traverse
|
package/README.md
CHANGED
|
@@ -49,6 +49,21 @@ await traverseAsync(element, {
|
|
|
49
49
|
});
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
+
### Options
|
|
53
|
+
|
|
54
|
+
Both `traverse` and `traverseAsync` accept an options object as the third argument:
|
|
55
|
+
|
|
56
|
+
| Option | Type | Default | Description |
|
|
57
|
+
|---|---|---|---|
|
|
58
|
+
| `detectCycles` | `boolean` | `true` | Skip nodes that appear in the current ancestor chain (true identity cycles). |
|
|
59
|
+
| `skipVisited` | `boolean` | `false` | Skip nodes already visited via a `WeakSet`. Prevents combinatorial explosion when traversing dereferenced trees with shared structure (DAG from `cloneShallow`). Set to `true` when traversing dereferenced ApiDOM trees. |
|
|
60
|
+
| `mutable` | `boolean` | `false` | If `true`, edits modify the original tree in place. |
|
|
61
|
+
| `keyMap` | `Record` or `function` | `getNodeKeys` | Maps node types to child property names for traversal. |
|
|
62
|
+
| `nodeTypeGetter` | `function` | `getNodeType` | Returns the type name of a node. |
|
|
63
|
+
| `nodePredicate` | `function` | `isNode` | Predicate to check if a value is a valid node. |
|
|
64
|
+
| `nodeCloneFn` | `function` | `cloneNode` | Function to clone a node (used in immutable mode). |
|
|
65
|
+
| `mutationFn` | `function` | `mutateNode` | Function for applying mutations in mutable mode. |
|
|
66
|
+
|
|
52
67
|
---
|
|
53
68
|
|
|
54
69
|
## Operations
|
|
@@ -630,10 +630,12 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
630
630
|
nodePredicate,
|
|
631
631
|
nodeCloneFn,
|
|
632
632
|
detectCycles,
|
|
633
|
+
skipVisited,
|
|
633
634
|
mutable,
|
|
634
635
|
mutationFn
|
|
635
636
|
} = options;
|
|
636
637
|
const keyMapIsFunction = typeof keyMap === 'function';
|
|
638
|
+
const visitedNodes = skipVisited ? new WeakSet() : null;
|
|
637
639
|
let stack;
|
|
638
640
|
let inArray = Array.isArray(root);
|
|
639
641
|
let keys = [root];
|
|
@@ -719,6 +721,14 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
719
721
|
continue;
|
|
720
722
|
}
|
|
721
723
|
|
|
724
|
+
// Skip already-visited nodes (handles DAG structures from cloneShallow)
|
|
725
|
+
if (skipVisited && !isLeaving) {
|
|
726
|
+
if (visitedNodes.has(node)) {
|
|
727
|
+
continue;
|
|
728
|
+
}
|
|
729
|
+
visitedNodes.add(node);
|
|
730
|
+
}
|
|
731
|
+
|
|
722
732
|
// Always create Path for the current node (needed for parentPath chain)
|
|
723
733
|
currentPath = new _Path_ts__WEBPACK_IMPORTED_MODULE_2__.Path(node, parent, parentPath, key, inArray);
|
|
724
734
|
const visitFn = (0,_visitors_ts__WEBPACK_IMPORTED_MODULE_3__.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
|
|
@@ -739,11 +749,6 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
739
749
|
if (currentPath.shouldStop) {
|
|
740
750
|
break;
|
|
741
751
|
}
|
|
742
|
-
if (currentPath.shouldSkip) {
|
|
743
|
-
if (!isLeaving) {
|
|
744
|
-
continue;
|
|
745
|
-
}
|
|
746
|
-
}
|
|
747
752
|
if (currentPath.removed) {
|
|
748
753
|
edits.push([key, null]);
|
|
749
754
|
if (!isLeaving) {
|
|
@@ -753,12 +758,19 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
753
758
|
const replacement = currentPath._getReplacementNode();
|
|
754
759
|
edits.push([key, replacement]);
|
|
755
760
|
if (!isLeaving) {
|
|
761
|
+
if (currentPath.shouldSkip) {
|
|
762
|
+
continue;
|
|
763
|
+
}
|
|
756
764
|
if (nodePredicate(replacement)) {
|
|
757
765
|
node = replacement;
|
|
758
766
|
} else {
|
|
759
767
|
continue;
|
|
760
768
|
}
|
|
761
769
|
}
|
|
770
|
+
} else if (currentPath.shouldSkip) {
|
|
771
|
+
if (!isLeaving) {
|
|
772
|
+
continue;
|
|
773
|
+
}
|
|
762
774
|
} else if (result !== undefined) {
|
|
763
775
|
// Support return value replacement for backwards compatibility
|
|
764
776
|
edits.push([key, result]);
|
|
@@ -860,6 +872,7 @@ const traverse = (root, visitor, options = {}) => {
|
|
|
860
872
|
nodePredicate: options.nodePredicate ?? _visitors_ts__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
861
873
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_ts__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
862
874
|
detectCycles: options.detectCycles ?? true,
|
|
875
|
+
skipVisited: options.skipVisited ?? false,
|
|
863
876
|
mutable: options.mutable ?? false,
|
|
864
877
|
mutationFn: options.mutationFn ?? _visitors_ts__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
865
878
|
};
|
|
@@ -891,6 +904,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
|
|
|
891
904
|
nodePredicate: options.nodePredicate ?? _visitors_ts__WEBPACK_IMPORTED_MODULE_3__.isNode,
|
|
892
905
|
nodeCloneFn: options.nodeCloneFn ?? _visitors_ts__WEBPACK_IMPORTED_MODULE_3__.cloneNode,
|
|
893
906
|
detectCycles: options.detectCycles ?? true,
|
|
907
|
+
skipVisited: options.skipVisited ?? false,
|
|
894
908
|
mutable: options.mutable ?? false,
|
|
895
909
|
mutationFn: options.mutationFn ?? _visitors_ts__WEBPACK_IMPORTED_MODULE_3__.mutateNode
|
|
896
910
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.apidomTraverse=t():e.apidomTraverse=t()}(self,()=>(()=>{"use strict";var e={d:(t,r)=>{for(var s in r)e.o(r,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:r[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}function s(e){return function t(s){return 0===arguments.length||r(s)?t:e.apply(this,arguments)}}function n(e){return function t(n,o){switch(arguments.length){case 0:return t;case 1:return r(n)?t:s(function(t){return e(n,t)});default:return r(n)&&r(o)?t:r(n)?s(function(t){return e(t,o)}):r(o)?s(function(t){return e(n,t)}):e(n,o)}}}function o(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}function i(e,t,r){for(var s=0,n=r.length;s<n;){if(e(t,r[s]))return!0;s+=1}return!1}function c(e,t){return Object.prototype.hasOwnProperty.call(t,e)}e.r(t),e.d(t,{Path:()=>ke,cloneNode:()=>ir,filter:()=>gr,find:()=>xr,findAtOffset:()=>Ar,forEach:()=>vr,getNodeKeys:()=>ar,getNodePrimitiveType:()=>nr,getNodeType:()=>sr,getVisitFn:()=>ur,isNode:()=>or,mergeVisitors:()=>pr,mergeVisitorsAsync:()=>dr,mutateNode:()=>cr,parents:()=>kr,reject:()=>wr,some:()=>br,traverse:()=>yr,traverseAsync:()=>mr});const a="function"==typeof Object.is?Object.is:function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t};var l=Object.prototype.toString;const u=function(){return"[object Arguments]"===l.call(arguments)?function(e){return"[object Arguments]"===l.call(e)}:function(e){return c("callee",e)}}();var p=!{toString:null}.propertyIsEnumerable("toString"),d=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],h=function(){return arguments.propertyIsEnumerable("length")}(),f=function(e,t){for(var r=0;r<e.length;){if(e[r]===t)return!0;r+=1}return!1},y="function"!=typeof Object.keys||h?s(function(e){if(Object(e)!==e)return[];var t,r,s=[],n=h&&u(e);for(t in e)!c(t,e)||n&&"length"===t||(s[s.length]=t);if(p)for(r=d.length-1;r>=0;)c(t=d[r],e)&&!f(s,t)&&(s[s.length]=t),r-=1;return s}):s(function(e){return Object(e)!==e?[]:Object.keys(e)});const m=y;const g=s(function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)});function x(e,t,r,s){var n=o(e);function c(e,t){return b(e,t,r.slice(),s.slice())}return!i(function(e,t){return!i(c,t,e)},o(t),n)}function b(e,t,r,s){if(a(e,t))return!0;var n=g(e);if(n!==g(t))return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(n){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===function(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!a(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!a(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var o=r.length-1;o>=0;){if(r[o]===e)return s[o]===t;o-=1}switch(n){case"Map":return e.size===t.size&&x(e.entries(),t.entries(),r.concat([e]),s.concat([t]));case"Set":return e.size===t.size&&x(e.values(),t.values(),r.concat([e]),s.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var i=m(e);if(i.length!==m(t).length)return!1;var l=r.concat([e]),u=s.concat([t]);for(o=i.length-1;o>=0;){var p=i[o];if(!c(p,t)||!b(t[p],e[p],l,u))return!1;o-=1}return!0}const w=n(function(e,t){return b(e,t,[],[])});function v(e,t,r){if(r||(r=new k),function(e){var t=typeof e;return null==e||"object"!=t&&"function"!=t}(e))return e;var s,n=function(s){var n=r.get(e);if(n)return n;for(var o in r.set(e,s),e)Object.prototype.hasOwnProperty.call(e,o)&&(s[o]=t?v(e[o],!0,r):e[o]);return s};switch(g(e)){case"Object":return n(Object.create(Object.getPrototypeOf(e)));case"Array":return n(Array(e.length));case"Date":return new Date(e.valueOf());case"RegExp":return s=e,new RegExp(s.source,s.flags?s.flags:(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.sticky?"y":"")+(s.unicode?"u":"")+(s.dotAll?"s":""));case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":return e.slice();default:return e}}var k=function(){function e(){this.map={},this.length=0}return e.prototype.set=function(e,t){var r=this.hash(e),s=this.map[r];s||(this.map[r]=s=[]),s.push([e,t]),this.length+=1},e.prototype.hash=function(e){var t=[];for(var r in e)t.push(Object.prototype.toString.call(e[r]));return t.join()},e.prototype.get=function(e){if(this.length<=180)for(var t in this.map)for(var r=this.map[t],s=0;s<r.length;s+=1){if((o=r[s])[0]===e)return o[1]}else{var n=this.hash(e);if(r=this.map[n])for(s=0;s<r.length;s+=1){var o;if((o=r[s])[0]===e)return o[1]}}},e}();const A=s(function(e){return null!=e&&"function"==typeof e.clone?e.clone():v(e,!0)});class T{get(e){return this[e]}set(e,t){this[e]=t}hasKey(e){return Object.hasOwn(this,e)}keys(){return Object.keys(this)}remove(e){delete this[e]}get isEmpty(){return 0===Object.keys(this).length}get isFrozen(){return Object.isFrozen(this)}freeze(){for(const e of Object.values(this))e instanceof this.Element?e.freeze():(Array.isArray(e)||null!==e&&"object"==typeof e)&&Object.freeze(e);Object.freeze(this)}cloneShallow(){const e=new T;return Object.assign(e,this),e}merge(e){const t=this.cloneShallow();for(const[r,s]of Object.entries(e)){const e=t.get(r);Array.isArray(e)&&Array.isArray(s)?t.set(r,[...e,...s]):t.set(r,s)}return t}cloneDeep(){const e=new T;for(const[t,r]of Object.entries(this))r instanceof this.Element?e.set(t,this.cloneDeepElement(r)):e.set(t,A(r));return e}}const O=T;const S=class{key;value;constructor(e,t){this.key=e,this.value=t}toValue(){return{key:this.key?.toValue(),value:this.value?.toValue()}}};class I{elements;constructor(e){this.elements=e??[]}toValue(){return this.elements.map(e=>({key:e.key?.toValue(),value:e.value?.toValue()}))}map(e,t){return this.elements.map(r=>{const s=r.value,n=r.key;if(void 0===s||void 0===n)throw new Error("MemberElement must have both key and value");return void 0!==t?e.call(t,s,n,r):e(s,n,r)})}filter(e,t){const r=this.elements.filter(r=>{const s=r.value,n=r.key;return void 0!==s&&void 0!==n&&(void 0!==t?e.call(t,s,n,r):e(s,n,r))});return new I(r)}reject(e,t){const r=[];for(const s of this.elements){const n=s.value,o=s.key;void 0!==n&&void 0!==o&&(e.call(t,n,o,s)||r.push(s))}return new I(r)}forEach(e,t){this.elements.forEach((r,s)=>{const n=r.value,o=r.key;void 0!==n&&void 0!==o&&(void 0!==t?e.call(t,n,o,r,s):e(n,o,r,s))})}find(e,t){return this.elements.find(r=>{const s=r.value,n=r.key;return void 0!==s&&void 0!==n&&(void 0!==t?e.call(t,s,n,r):e(s,n,r))})}keys(){return this.elements.map(e=>e.key?.toValue()).filter(e=>void 0!==e)}values(){return this.elements.map(e=>e.value?.toValue()).filter(e=>void 0!==e)}get length(){return this.elements.length}get isEmpty(){return 0===this.length}get first(){return this.elements[0]}get(e){return this.elements[e]}push(e){return this.elements.push(e),this}includesKey(e){return this.elements.some(t=>t.key?.equals(e))}[Symbol.iterator](){return this.elements[Symbol.iterator]()}}const E=I,C=Object.freeze(new O);class F{parent;style;startLine;startCharacter;startOffset;endLine;endCharacter;endOffset;_storedElement="element";_content;_meta;_attributes;constructor(e,t,r){void 0!==t&&(this.meta=t),void 0!==r&&(this.attributes=r),void 0!==e&&(this.content=e)}get element(){return this._storedElement}set element(e){this._storedElement=e}get content(){return this._content}set content(e){if(e instanceof F)this._content=e;else if(null!=e&&"string"!=typeof e&&"number"!=typeof e&&"boolean"!=typeof e&&"bigint"!=typeof e&&"symbol"!=typeof e)if(e instanceof S)this._content=e;else if(e instanceof E)this._content=e.elements;else if(Array.isArray(e))this._content=e.map(e=>this.refract(e));else{if("object"!=typeof e)throw new Error("Cannot set content to value of type "+typeof e);this._content=Object.entries(e).map(([e,t])=>new this.MemberElement(e,t))}else this._content=e}get meta(){if(!this._meta){if(this.isFrozen)return C;this._meta=new O}return this._meta}set meta(e){if(e instanceof O)this._meta=e;else if(e&&"object"==typeof e){const t=new O;Object.assign(t,e),this._meta=t}}get attributes(){if(!this._attributes){if(this.isFrozen){const e=new this.ObjectElement;return e.freeze(),e}this._attributes=new this.ObjectElement}return this._attributes}set attributes(e){e instanceof F?this._attributes=e:this.attributes.set(e??{})}get id(){if(!this.hasMetaProperty("id")){if(this.isFrozen)return"";this.setMetaProperty("id","")}return this.meta.get("id")}set id(e){this.setMetaProperty("id",e)}get classes(){if(!this.hasMetaProperty("classes")){if(this.isFrozen)return[];this.setMetaProperty("classes",[])}return this.meta.get("classes")}set classes(e){this.setMetaProperty("classes",e)}get links(){if(!this.hasMetaProperty("links")){if(this.isFrozen){const e=new this.ArrayElement;return e.freeze(),e}this.setMetaProperty("links",new this.ArrayElement)}return this.meta.get("links")}set links(e){this.setMetaProperty("links",e)}get children(){const{_content:e}=this;if(Array.isArray(e))return e;if(e instanceof S){const t=[];return e.key&&t.push(e.key),e.value&&t.push(e.value),t}return e instanceof F?[e]:[]}get isFrozen(){return Object.isFrozen(this)}freeze(){if(!this.isFrozen){this._meta&&this._meta.freeze(),this._attributes&&(this._attributes.parent=this,this._attributes.freeze());for(const e of this.children)e.parent=this,e.freeze();Array.isArray(this._content)&&Object.freeze(this._content),Object.freeze(this)}}toValue(){const{_content:e}=this;return e instanceof F||e instanceof S?e.toValue():Array.isArray(e)?e.map(e=>e.toValue()):e}equals(e){const t=e instanceof F?e.toValue():e;return w(this.toValue(),t)}primitive(){}set(e){return this.content=e,this}toRef(e){const t=this.id;if(""===t)throw new Error("Cannot create reference to an element without an ID");const r=new this.RefElement(t);return"string"==typeof e&&(r.path=this.refract(e)),r}getMetaProperty(e,t){return this.hasMetaProperty(e)?this.meta.get(e):t}setMetaProperty(e,t){this.meta.set(e,t)}hasMetaProperty(e){return void 0!==this._meta&&this._meta.hasKey(e)}get isMetaEmpty(){return void 0===this._meta||this._meta.isEmpty}getAttributesProperty(e,t){if(!this.hasAttributesProperty(e)){if(this.isFrozen){const e=this.refract(t);return e.freeze(),e}this.attributes.set(e,t)}return this.attributes.get(e)}setAttributesProperty(e,t){this.attributes.set(e,t)}hasAttributesProperty(e){return!this.isAttributesEmpty&&this.attributes.hasKey(e)}get isAttributesEmpty(){return void 0===this._attributes||this.attributes.isEmpty}}const M=F;const j=class extends M{constructor(e,t,r){super(e,t,r),this.element="string"}primitive(){return"string"}get length(){return this.content?.length??0}};class D extends M{constructor(e,t,r){super(e||[],t,r)}get length(){return this._content.length}get isEmpty(){return 0===this.length}get first(){return this._content[0]}get second(){return this._content[1]}get last(){return this._content.at(-1)}push(...e){for(const t of e)this._content.push(this.refract(t));return this}shift(){return this._content.shift()}unshift(e){this._content.unshift(this.refract(e))}includes(e){return this._content.some(t=>t.equals(e))}findElements(e,t){const r=t||{},s=!!r.recursive,n=void 0===r.results?[]:r.results;for(let t=0;t<this._content.length;t+=1){const r=this._content[t],o=r;s&&"function"==typeof o.findElements&&o.findElements(e,{results:n,recursive:s}),e(r,t,void 0)&&n.push(r)}return n}find(e){const t=this.findElements(e,{recursive:!0});return new this.ArrayElement(t)}findByElement(e){return this.find(t=>t.element===e)}findByClass(e){return this.find(t=>{const r=t.classes;return"function"==typeof r.includes&&r.includes(e)})}getById(e){return this.find(t=>t.id===e).first}concat(e){return new(0,this.constructor)(this._content.concat(e._content))}[Symbol.iterator](){return this._content[Symbol.iterator]()}}const B=D;const N=class extends B{constructor(e,t,r){super(e||[],t,r),this.element="array"}primitive(){return"array"}get(e){return this._content[e]}getValue(e){const t=this.get(e);if(t)return t.toValue()}set(e,t){return"number"==typeof e&&void 0!==t?this._content[e]=this.refract(t):this.content=e,this}remove(e){return this._content.splice(e,1)[0]??null}map(e,t){return this._content.map(e,t)}flatMap(e,t){return this._content.flatMap(e,t)}compactMap(e,t){const r=[];for(const s of this._content){const n=e.call(t,s);n&&r.push(n)}return r}filter(e,t){const r=this._content.filter(e,t);return new this.constructor(r)}reject(e,t){const r=[];for(const s of this._content)e.call(t,s)||r.push(s);return new this.constructor(r)}reduce(e,t){let r,s;void 0!==t?(r=0,s=this.refract(t)):(r=1,s=this.first);for(let t=r;t<this.length;t+=1){const r=e(s,this._content[t],t,this);s=void 0===r?r:this.refract(r)}return s}forEach(e,t){this._content.forEach((r,s)=>{e.call(t,r,s)})}empty(){return new this.constructor([])}};const P=class extends M{constructor(e,t,r,s){super(new S,r,s),this.element="member",void 0!==e&&(this.key=e),arguments.length>=2&&(this.value=t)}primitive(){return"member"}get key(){return this._content.key}set key(e){this._content.key=this.refract(e)}get value(){return this._content.value}set value(e){this._content.value=void 0===e?void 0:this.refract(e)}};const q=class extends B{constructor(e,t,r){super(e||[],t,r),this.element="object"}primitive(){return"object"}toValue(){return this._content.reduce((e,t)=>(e[t.key.toValue()]=t.value?t.value.toValue():void 0,e),{})}get(e){const t=this.getMember(e);if(t)return t.value}getValue(e){const t=this.get(e);if(t)return t.toValue()}getMember(e){if(void 0!==e)return this._content.find(t=>t.key.toValue()===e)}remove(e){let t=null;return this.content=this._content.filter(r=>r.key.toValue()!==e||(t=r,!1)),t}getKey(e){const t=this.getMember(e);if(t)return t.key}set(e,t){if("string"==typeof e){const r=this.getMember(e);r?r.value=t:this._content.push(new P(e,t))}else if("object"==typeof e&&!Array.isArray(e))for(const t of Object.keys(e))this.set(t,e[t]);return this}keys(){return this._content.map(e=>e.key.toValue())}values(){return this._content.map(e=>e.value.toValue())}hasKey(e){return this._content.some(t=>t.key.equals(e))}items(){return this._content.map(e=>[e.key.toValue(),e.value.toValue()])}map(e,t){return this._content.map(r=>e.call(t,r.value,r.key,r))}compactMap(e,t){const r=[];return this.forEach((s,n,o)=>{const i=e.call(t,s,n,o);i&&r.push(i)}),r}filter(e,t){return new E(this._content).filter(e,t)}reject(e,t){const r=[];for(const s of this._content)e.call(t,s.value,s.key,s)||r.push(s);return new E(r)}forEach(e,t){this._content.forEach(r=>e.call(t,r.value,r.key,r))}reduce(e,t){let r,s;void 0!==t?(r=0,s=this.refract(t)):(r=1,s=this._content[0]?.value);for(let t=r;t<this._content.length;t+=1){const r=this._content[t],n=e(s,r.value,r.key,r,this);s=void 0===n?n:this.refract(n)}return s}empty(){return new this.constructor([])}};const L=e=>e instanceof M,_=e=>e instanceof j,U=e=>e instanceof N,H=e=>e instanceof q,G=e=>e instanceof P,z=function(){const e=$,t=R,r=this,s="parser.js: Parser(): ";r.ast=void 0,r.stats=void 0,r.trace=void 0,r.callbacks=[];let n,o,i,c,a,l,u,p=0,d=0,h=0,f=0,y=0,m=new function(){this.state=e.ACTIVE,this.phraseLength=0,this.refresh=()=>{this.state=e.ACTIVE,this.phraseLength=0}};r.parse=(g,x,w,v)=>{const k=`${s}parse(): `;p=0,d=0,h=0,f=0,y=0,n=void 0,o=void 0,i=void 0,c=void 0,m.refresh(),a=void 0,l=void 0,u=void 0,c=t.stringToChars(w),n=g.rules,o=g.udts;const A=x.toLowerCase();let T;for(const e in n)if(n.hasOwnProperty(e)&&A===n[e].lower){T=n[e].index;break}if(void 0===T)throw new Error(`${k}start rule name '${startRule}' not recognized`);(()=>{const e=`${s}initializeCallbacks(): `;let t,i;for(a=[],l=[],t=0;t<n.length;t+=1)a[t]=void 0;for(t=0;t<o.length;t+=1)l[t]=void 0;const c=[];for(t=0;t<n.length;t+=1)c.push(n[t].lower);for(t=0;t<o.length;t+=1)c.push(o[t].lower);for(const s in r.callbacks)if(r.callbacks.hasOwnProperty(s)){if(t=c.indexOf(s.toLowerCase()),t<0)throw new Error(`${e}syntax callback '${s}' not a rule or udt name`);if(i=r.callbacks[s]?r.callbacks[s]:void 0,"function"!=typeof i&&void 0!==i)throw new Error(`${e}syntax callback[${s}] must be function reference or falsy)`);t<n.length?a[t]=i:l[t-n.length]=i}})(),r.trace&&r.trace.init(n,o,c),r.stats&&r.stats.init(n,o),r.ast&&r.ast.init(n,o,c),u=v,i=[{type:e.RNM,index:T}],b(0,0),i=void 0;let O=!1;switch(m.state){case e.ACTIVE:throw new Error(`${k}final state should never be 'ACTIVE'`);case e.NOMATCH:O=!1;break;case e.EMPTY:case e.MATCH:O=m.phraseLength===c.length;break;default:throw new Error("unrecognized state")}return{success:O,state:m.state,stateName:e.idName(m.state),length:c.length,matched:m.phraseLength,maxMatched:y,maxTreeDepth:h,nodeHits:f}};const g=(t,r,n,o)=>{if(r.phraseLength>n){let e=`${s}opRNM(${t.name}): callback function error: `;throw e+=`sysData.phraseLength: ${r.phraseLength}`,e+=` must be <= remaining chars: ${n}`,new Error(e)}switch(r.state){case e.ACTIVE:if(!o)throw new Error(`${s}opRNM(${t.name}): callback function return error. ACTIVE state not allowed.`);break;case e.EMPTY:r.phraseLength=0;break;case e.MATCH:0===r.phraseLength&&(r.state=e.EMPTY);break;case e.NOMATCH:r.phraseLength=0;break;default:throw new Error(`${s}opRNM(${t.name}): callback function return error. Unrecognized return state: ${r.state}`)}},x=(t,a)=>{let d,h,f;const y=i[t],g=o[y.index];m.UdtIndex=g.index,p||(f=r.ast&&r.ast.udtDefined(y.index),f&&(h=n.length+y.index,d=r.ast.getLength(),r.ast.down(h,g.name)));const x=c.length-a;l[y.index](m,c,a,u),((t,r,n)=>{if(r.phraseLength>n){let e=`${s}opUDT(${t.name}): callback function error: `;throw e+=`sysData.phraseLength: ${r.phraseLength}`,e+=` must be <= remaining chars: ${n}`,new Error(e)}switch(r.state){case e.ACTIVE:throw new Error(`${s}opUDT(${t.name}) ACTIVE state return not allowed.`);case e.EMPTY:if(!t.empty)throw new Error(`${s}opUDT(${t.name}) may not return EMPTY.`);r.phraseLength=0;break;case e.MATCH:if(0===r.phraseLength){if(!t.empty)throw new Error(`${s}opUDT(${t.name}) may not return EMPTY.`);r.state=e.EMPTY}break;case e.NOMATCH:r.phraseLength=0;break;default:throw new Error(`${s}opUDT(${t.name}): callback function return error. Unrecognized return state: ${r.state}`)}})(g,m,x),p||f&&(m.state===e.NOMATCH?r.ast.setLength(d):r.ast.up(h,g.name,a,m.phraseLength))},b=(t,o)=>{const l=`${s}opExecute(): `,w=i[t];switch(f+=1,d>h&&(h=d),d+=1,m.refresh(),r.trace&&r.trace.down(w,o),w.type){case e.ALT:((t,r)=>{const s=i[t];for(let t=0;t<s.children.length&&(b(s.children[t],r),m.state===e.NOMATCH);t+=1);})(t,o);break;case e.CAT:((t,s)=>{let n,o,c,a;const l=i[t];r.ast&&(o=r.ast.getLength()),n=!0,c=s,a=0;for(let t=0;t<l.children.length;t+=1){if(b(l.children[t],c),m.state===e.NOMATCH){n=!1;break}c+=m.phraseLength,a+=m.phraseLength}n?(m.state=0===a?e.EMPTY:e.MATCH,m.phraseLength=a):(m.state=e.NOMATCH,m.phraseLength=0,r.ast&&r.ast.setLength(o))})(t,o);break;case e.REP:((t,s)=>{let n,o,a,l;const u=i[t];if(0===u.max)return m.state=e.EMPTY,void(m.phraseLength=0);for(o=s,a=0,l=0,r.ast&&(n=r.ast.getLength());!(o>=c.length)&&(b(t+1,o),m.state!==e.NOMATCH)&&m.state!==e.EMPTY&&(l+=1,a+=m.phraseLength,o+=m.phraseLength,l!==u.max););m.state===e.EMPTY||l>=u.min?(m.state=0===a?e.EMPTY:e.MATCH,m.phraseLength=a):(m.state=e.NOMATCH,m.phraseLength=0,r.ast&&r.ast.setLength(n))})(t,o);break;case e.RNM:((t,s)=>{let o,l,d;const h=i[t],f=n[h.index],y=a[f.index];if(p||(l=r.ast&&r.ast.ruleDefined(h.index),l&&(o=r.ast.getLength(),r.ast.down(h.index,n[h.index].name))),y){const t=c.length-s;y(m,c,s,u),g(f,m,t,!0),m.state===e.ACTIVE&&(d=i,i=f.opcodes,b(0,s),i=d,y(m,c,s,u),g(f,m,t,!1))}else d=i,i=f.opcodes,b(0,s,m),i=d;p||l&&(m.state===e.NOMATCH?r.ast.setLength(o):r.ast.up(h.index,f.name,s,m.phraseLength))})(t,o);break;case e.TRG:((t,r)=>{const s=i[t];m.state=e.NOMATCH,r<c.length&&s.min<=c[r]&&c[r]<=s.max&&(m.state=e.MATCH,m.phraseLength=1)})(t,o);break;case e.TBS:((t,r)=>{const s=i[t],n=s.string.length;if(m.state=e.NOMATCH,r+n<=c.length){for(let e=0;e<n;e+=1)if(c[r+e]!==s.string[e])return;m.state=e.MATCH,m.phraseLength=n}})(t,o);break;case e.TLS:((t,r)=>{let s;const n=i[t];m.state=e.NOMATCH;const o=n.string.length;if(0!==o){if(r+o<=c.length){for(let e=0;e<o;e+=1)if(s=c[r+e],s>=65&&s<=90&&(s+=32),s!==n.string[e])return;m.state=e.MATCH,m.phraseLength=o}}else m.state=e.EMPTY})(t,o);break;case e.UDT:x(t,o);break;case e.AND:((t,r)=>{switch(p+=1,b(t+1,r),p-=1,m.phraseLength=0,m.state){case e.EMPTY:case e.MATCH:m.state=e.EMPTY;break;case e.NOMATCH:m.state=e.NOMATCH;break;default:throw new Error(`opAND: invalid state ${m.state}`)}})(t,o);break;case e.NOT:((t,r)=>{switch(p+=1,b(t+1,r),p-=1,m.phraseLength=0,m.state){case e.EMPTY:case e.MATCH:m.state=e.NOMATCH;break;case e.NOMATCH:m.state=e.EMPTY;break;default:throw new Error(`opNOT: invalid state ${m.state}`)}})(t,o);break;default:throw new Error(`${l}unrecognized operator`)}p||o+m.phraseLength>y&&(y=o+m.phraseLength),r.stats&&r.stats.collect(w,m),r.trace&&r.trace.up(w,m.state,o,m.phraseLength),d-=1}},R={stringToChars:e=>[...e].map(e=>e.codePointAt(0)),charsToString:(e,t,r)=>{let s=e;for(;!(void 0===t||t<0);){if(void 0===r){s=e.slice(t);break}if(r<=0)return"";s=e.slice(t,t+r);break}return String.fromCodePoint(...s)}},$={ALT:1,CAT:2,REP:3,RNM:4,TRG:5,TBS:6,TLS:7,UDT:11,AND:12,NOT:13,ACTIVE:100,MATCH:101,EMPTY:102,NOMATCH:103,SEM_PRE:200,SEM_POST:201,SEM_OK:300,idName:e=>{switch(e){case $.ALT:return"ALT";case $.CAT:return"CAT";case $.REP:return"REP";case $.RNM:return"RNM";case $.TRG:return"TRG";case $.TBS:return"TBS";case $.TLS:return"TLS";case $.UDT:return"UDT";case $.AND:return"AND";case $.NOT:return"NOT";case $.ACTIVE:return"ACTIVE";case $.EMPTY:return"EMPTY";case $.MATCH:return"MATCH";case $.NOMATCH:return"NOMATCH";case $.SEM_PRE:return"SEM_PRE";case $.SEM_POST:return"SEM_POST";case $.SEM_OK:return"SEM_OK";default:return"UNRECOGNIZED STATE"}}};function V(){this.grammarObject="grammarObject",this.rules=[],this.rules[0]={name:"json-pointer",lower:"json-pointer",index:0,isBkr:!1},this.rules[1]={name:"reference-token",lower:"reference-token",index:1,isBkr:!1},this.rules[2]={name:"unescaped",lower:"unescaped",index:2,isBkr:!1},this.rules[3]={name:"escaped",lower:"escaped",index:3,isBkr:!1},this.rules[4]={name:"array-location",lower:"array-location",index:4,isBkr:!1},this.rules[5]={name:"array-index",lower:"array-index",index:5,isBkr:!1},this.rules[6]={name:"array-dash",lower:"array-dash",index:6,isBkr:!1},this.rules[7]={name:"slash",lower:"slash",index:7,isBkr:!1},this.udts=[],this.rules[0].opcodes=[],this.rules[0].opcodes[0]={type:3,min:0,max:1/0},this.rules[0].opcodes[1]={type:2,children:[2,3]},this.rules[0].opcodes[2]={type:4,index:7},this.rules[0].opcodes[3]={type:4,index:1},this.rules[1].opcodes=[],this.rules[1].opcodes[0]={type:3,min:0,max:1/0},this.rules[1].opcodes[1]={type:1,children:[2,3]},this.rules[1].opcodes[2]={type:4,index:2},this.rules[1].opcodes[3]={type:4,index:3},this.rules[2].opcodes=[],this.rules[2].opcodes[0]={type:1,children:[1,2,3]},this.rules[2].opcodes[1]={type:5,min:0,max:46},this.rules[2].opcodes[2]={type:5,min:48,max:125},this.rules[2].opcodes[3]={type:5,min:127,max:1114111},this.rules[3].opcodes=[],this.rules[3].opcodes[0]={type:2,children:[1,2]},this.rules[3].opcodes[1]={type:7,string:[126]},this.rules[3].opcodes[2]={type:1,children:[3,4]},this.rules[3].opcodes[3]={type:7,string:[48]},this.rules[3].opcodes[4]={type:7,string:[49]},this.rules[4].opcodes=[],this.rules[4].opcodes[0]={type:1,children:[1,2]},this.rules[4].opcodes[1]={type:4,index:5},this.rules[4].opcodes[2]={type:4,index:6},this.rules[5].opcodes=[],this.rules[5].opcodes[0]={type:1,children:[1,2]},this.rules[5].opcodes[1]={type:6,string:[48]},this.rules[5].opcodes[2]={type:2,children:[3,4]},this.rules[5].opcodes[3]={type:5,min:49,max:57},this.rules[5].opcodes[4]={type:3,min:0,max:1/0},this.rules[5].opcodes[5]={type:5,min:48,max:57},this.rules[6].opcodes=[],this.rules[6].opcodes[0]={type:7,string:[45]},this.rules[7].opcodes=[],this.rules[7].opcodes[0]={type:7,string:[47]},this.toString=function(){let e="";return e+="; JavaScript Object Notation (JSON) Pointer ABNF syntax\n",e+="; https://datatracker.ietf.org/doc/html/rfc6901\n",e+="json-pointer = *( slash reference-token ) ; MODIFICATION: surrogate text rule used\n",e+="reference-token = *( unescaped / escaped )\n",e+="unescaped = %x00-2E / %x30-7D / %x7F-10FFFF\n",e+=" ; %x2F ('/') and %x7E ('~') are excluded from 'unescaped'\n",e+='escaped = "~" ( "0" / "1" )\n',e+=" ; representing '~' and '/', respectively\n",e+="\n",e+="; https://datatracker.ietf.org/doc/html/rfc6901#section-4\n",e+="array-location = array-index / array-dash\n",e+="array-index = %x30 / ( %x31-39 *(%x30-39) )\n",e+=' ; "0", or digits without a leading "0"\n',e+='array-dash = "-"\n',e+="\n",e+="; Surrogate named rules\n",e+='slash = "/"\n','; JavaScript Object Notation (JSON) Pointer ABNF syntax\n; https://datatracker.ietf.org/doc/html/rfc6901\njson-pointer = *( slash reference-token ) ; MODIFICATION: surrogate text rule used\nreference-token = *( unescaped / escaped )\nunescaped = %x00-2E / %x30-7D / %x7F-10FFFF\n ; %x2F (\'/\') and %x7E (\'~\') are excluded from \'unescaped\'\nescaped = "~" ( "0" / "1" )\n ; representing \'~\' and \'/\', respectively\n\n; https://datatracker.ietf.org/doc/html/rfc6901#section-4\narray-location = array-index / array-dash\narray-index = %x30 / ( %x31-39 *(%x30-39) )\n ; "0", or digits without a leading "0"\narray-dash = "-"\n\n; Surrogate named rules\nslash = "/"\n'}}class X extends Error{constructor(e,t=void 0){if(super(e,t),this.name=this.constructor.name,"string"==typeof e&&(this.message=e),"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack,null!=t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,"cause")&&!("cause"in this)){const{cause:e}=t;this.cause=e,e instanceof Error&&"stack"in e&&(this.stack=`${this.stack}\nCAUSE: ${e.stack}`)}if(null!=t&&"object"==typeof t){const{cause:e,...r}=t;Object.assign(this,r)}}}const W=X;new V;new V,new z,new V,new z,new V,new z,new V,new z;const Y=e=>{if("string"!=typeof e&&"number"!=typeof e)throw new TypeError("Reference token must be a string or number");return String(e).replace(/~/g,"~0").replace(/\//g,"~1")};const K=class extends W{},Q=e=>{if(!Array.isArray(e))throw new TypeError("Reference tokens must be a list of strings or numbers");try{return 0===e.length?"":`/${e.map(e=>{if("string"!=typeof e&&"number"!=typeof e)throw new TypeError("Reference token must be a string or number");return Y(String(e))}).join("/")}`}catch(t){throw new K("Unexpected error during JSON Pointer compilation",{cause:t,referenceTokens:e})}};class J extends Error{constructor(e,t=void 0){if(super(e,t),this.name=this.constructor.name,"string"==typeof e&&(this.message=e),"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack,null!=t&&"object"==typeof t&&Object.hasOwn(t,"cause")&&!("cause"in this)){const{cause:e}=t;this.cause=e,e instanceof Error&&"stack"in e&&(this.stack=`${this.stack}\nCAUSE: ${e.stack}`)}if(null!=t&&"object"==typeof t){const{cause:e,...r}=t;Object.assign(this,r)}}}const Z=J;new function(){this.grammarObject="grammarObject",this.rules=[],this.rules[0]={name:"jsonpath-query",lower:"jsonpath-query",index:0,isBkr:!1},this.rules[1]={name:"segments",lower:"segments",index:1,isBkr:!1},this.rules[2]={name:"B",lower:"b",index:2,isBkr:!1},this.rules[3]={name:"S",lower:"s",index:3,isBkr:!1},this.rules[4]={name:"root-identifier",lower:"root-identifier",index:4,isBkr:!1},this.rules[5]={name:"selector",lower:"selector",index:5,isBkr:!1},this.rules[6]={name:"name-selector",lower:"name-selector",index:6,isBkr:!1},this.rules[7]={name:"string-literal",lower:"string-literal",index:7,isBkr:!1},this.rules[8]={name:"double-quoted",lower:"double-quoted",index:8,isBkr:!1},this.rules[9]={name:"single-quoted",lower:"single-quoted",index:9,isBkr:!1},this.rules[10]={name:"ESC",lower:"esc",index:10,isBkr:!1},this.rules[11]={name:"unescaped",lower:"unescaped",index:11,isBkr:!1},this.rules[12]={name:"escapable",lower:"escapable",index:12,isBkr:!1},this.rules[13]={name:"hexchar",lower:"hexchar",index:13,isBkr:!1},this.rules[14]={name:"non-surrogate",lower:"non-surrogate",index:14,isBkr:!1},this.rules[15]={name:"high-surrogate",lower:"high-surrogate",index:15,isBkr:!1},this.rules[16]={name:"low-surrogate",lower:"low-surrogate",index:16,isBkr:!1},this.rules[17]={name:"HEXDIG",lower:"hexdig",index:17,isBkr:!1},this.rules[18]={name:"wildcard-selector",lower:"wildcard-selector",index:18,isBkr:!1},this.rules[19]={name:"index-selector",lower:"index-selector",index:19,isBkr:!1},this.rules[20]={name:"int",lower:"int",index:20,isBkr:!1},this.rules[21]={name:"DIGIT1",lower:"digit1",index:21,isBkr:!1},this.rules[22]={name:"slice-selector",lower:"slice-selector",index:22,isBkr:!1},this.rules[23]={name:"start",lower:"start",index:23,isBkr:!1},this.rules[24]={name:"end",lower:"end",index:24,isBkr:!1},this.rules[25]={name:"step",lower:"step",index:25,isBkr:!1},this.rules[26]={name:"filter-selector",lower:"filter-selector",index:26,isBkr:!1},this.rules[27]={name:"logical-expr",lower:"logical-expr",index:27,isBkr:!1},this.rules[28]={name:"logical-or-expr",lower:"logical-or-expr",index:28,isBkr:!1},this.rules[29]={name:"logical-and-expr",lower:"logical-and-expr",index:29,isBkr:!1},this.rules[30]={name:"basic-expr",lower:"basic-expr",index:30,isBkr:!1},this.rules[31]={name:"paren-expr",lower:"paren-expr",index:31,isBkr:!1},this.rules[32]={name:"logical-not-op",lower:"logical-not-op",index:32,isBkr:!1},this.rules[33]={name:"test-expr",lower:"test-expr",index:33,isBkr:!1},this.rules[34]={name:"filter-query",lower:"filter-query",index:34,isBkr:!1},this.rules[35]={name:"rel-query",lower:"rel-query",index:35,isBkr:!1},this.rules[36]={name:"current-node-identifier",lower:"current-node-identifier",index:36,isBkr:!1},this.rules[37]={name:"comparison-expr",lower:"comparison-expr",index:37,isBkr:!1},this.rules[38]={name:"literal",lower:"literal",index:38,isBkr:!1},this.rules[39]={name:"comparable",lower:"comparable",index:39,isBkr:!1},this.rules[40]={name:"comparison-op",lower:"comparison-op",index:40,isBkr:!1},this.rules[41]={name:"singular-query",lower:"singular-query",index:41,isBkr:!1},this.rules[42]={name:"rel-singular-query",lower:"rel-singular-query",index:42,isBkr:!1},this.rules[43]={name:"abs-singular-query",lower:"abs-singular-query",index:43,isBkr:!1},this.rules[44]={name:"singular-query-segments",lower:"singular-query-segments",index:44,isBkr:!1},this.rules[45]={name:"name-segment",lower:"name-segment",index:45,isBkr:!1},this.rules[46]={name:"index-segment",lower:"index-segment",index:46,isBkr:!1},this.rules[47]={name:"number",lower:"number",index:47,isBkr:!1},this.rules[48]={name:"frac",lower:"frac",index:48,isBkr:!1},this.rules[49]={name:"exp",lower:"exp",index:49,isBkr:!1},this.rules[50]={name:"true",lower:"true",index:50,isBkr:!1},this.rules[51]={name:"false",lower:"false",index:51,isBkr:!1},this.rules[52]={name:"null",lower:"null",index:52,isBkr:!1},this.rules[53]={name:"function-name",lower:"function-name",index:53,isBkr:!1},this.rules[54]={name:"function-name-first",lower:"function-name-first",index:54,isBkr:!1},this.rules[55]={name:"function-name-char",lower:"function-name-char",index:55,isBkr:!1},this.rules[56]={name:"LCALPHA",lower:"lcalpha",index:56,isBkr:!1},this.rules[57]={name:"function-expr",lower:"function-expr",index:57,isBkr:!1},this.rules[58]={name:"function-argument",lower:"function-argument",index:58,isBkr:!1},this.rules[59]={name:"segment",lower:"segment",index:59,isBkr:!1},this.rules[60]={name:"child-segment",lower:"child-segment",index:60,isBkr:!1},this.rules[61]={name:"bracketed-selection",lower:"bracketed-selection",index:61,isBkr:!1},this.rules[62]={name:"member-name-shorthand",lower:"member-name-shorthand",index:62,isBkr:!1},this.rules[63]={name:"name-first",lower:"name-first",index:63,isBkr:!1},this.rules[64]={name:"name-char",lower:"name-char",index:64,isBkr:!1},this.rules[65]={name:"DIGIT",lower:"digit",index:65,isBkr:!1},this.rules[66]={name:"ALPHA",lower:"alpha",index:66,isBkr:!1},this.rules[67]={name:"descendant-segment",lower:"descendant-segment",index:67,isBkr:!1},this.rules[68]={name:"normalized-path",lower:"normalized-path",index:68,isBkr:!1},this.rules[69]={name:"normal-index-segment",lower:"normal-index-segment",index:69,isBkr:!1},this.rules[70]={name:"normal-selector",lower:"normal-selector",index:70,isBkr:!1},this.rules[71]={name:"normal-name-selector",lower:"normal-name-selector",index:71,isBkr:!1},this.rules[72]={name:"normal-single-quoted",lower:"normal-single-quoted",index:72,isBkr:!1},this.rules[73]={name:"normal-unescaped",lower:"normal-unescaped",index:73,isBkr:!1},this.rules[74]={name:"normal-escapable",lower:"normal-escapable",index:74,isBkr:!1},this.rules[75]={name:"normal-hexchar",lower:"normal-hexchar",index:75,isBkr:!1},this.rules[76]={name:"normal-HEXDIG",lower:"normal-hexdig",index:76,isBkr:!1},this.rules[77]={name:"normal-index-selector",lower:"normal-index-selector",index:77,isBkr:!1},this.rules[78]={name:"dot-prefix",lower:"dot-prefix",index:78,isBkr:!1},this.rules[79]={name:"double-dot-prefix",lower:"double-dot-prefix",index:79,isBkr:!1},this.rules[80]={name:"left-bracket",lower:"left-bracket",index:80,isBkr:!1},this.rules[81]={name:"right-bracket",lower:"right-bracket",index:81,isBkr:!1},this.rules[82]={name:"left-paren",lower:"left-paren",index:82,isBkr:!1},this.rules[83]={name:"right-paren",lower:"right-paren",index:83,isBkr:!1},this.rules[84]={name:"comma",lower:"comma",index:84,isBkr:!1},this.rules[85]={name:"colon",lower:"colon",index:85,isBkr:!1},this.rules[86]={name:"dquote",lower:"dquote",index:86,isBkr:!1},this.rules[87]={name:"squote",lower:"squote",index:87,isBkr:!1},this.rules[88]={name:"questionmark",lower:"questionmark",index:88,isBkr:!1},this.rules[89]={name:"disjunction",lower:"disjunction",index:89,isBkr:!1},this.rules[90]={name:"conjunction",lower:"conjunction",index:90,isBkr:!1},this.udts=[],this.rules[0].opcodes=[],this.rules[0].opcodes[0]={type:2,children:[1,2]},this.rules[0].opcodes[1]={type:4,index:4},this.rules[0].opcodes[2]={type:4,index:1},this.rules[1].opcodes=[],this.rules[1].opcodes[0]={type:3,min:0,max:1/0},this.rules[1].opcodes[1]={type:2,children:[2,3]},this.rules[1].opcodes[2]={type:4,index:3},this.rules[1].opcodes[3]={type:4,index:59},this.rules[2].opcodes=[],this.rules[2].opcodes[0]={type:1,children:[1,2,3,4]},this.rules[2].opcodes[1]={type:6,string:[32]},this.rules[2].opcodes[2]={type:6,string:[9]},this.rules[2].opcodes[3]={type:6,string:[10]},this.rules[2].opcodes[4]={type:6,string:[13]},this.rules[3].opcodes=[],this.rules[3].opcodes[0]={type:3,min:0,max:1/0},this.rules[3].opcodes[1]={type:4,index:2},this.rules[4].opcodes=[],this.rules[4].opcodes[0]={type:7,string:[36]},this.rules[5].opcodes=[],this.rules[5].opcodes[0]={type:1,children:[1,2,3,4,5]},this.rules[5].opcodes[1]={type:4,index:6},this.rules[5].opcodes[2]={type:4,index:18},this.rules[5].opcodes[3]={type:4,index:22},this.rules[5].opcodes[4]={type:4,index:19},this.rules[5].opcodes[5]={type:4,index:26},this.rules[6].opcodes=[],this.rules[6].opcodes[0]={type:4,index:7},this.rules[7].opcodes=[],this.rules[7].opcodes[0]={type:1,children:[1,6]},this.rules[7].opcodes[1]={type:2,children:[2,3,5]},this.rules[7].opcodes[2]={type:4,index:86},this.rules[7].opcodes[3]={type:3,min:0,max:1/0},this.rules[7].opcodes[4]={type:4,index:8},this.rules[7].opcodes[5]={type:4,index:86},this.rules[7].opcodes[6]={type:2,children:[7,8,10]},this.rules[7].opcodes[7]={type:4,index:87},this.rules[7].opcodes[8]={type:3,min:0,max:1/0},this.rules[7].opcodes[9]={type:4,index:9},this.rules[7].opcodes[10]={type:4,index:87},this.rules[8].opcodes=[],this.rules[8].opcodes[0]={type:1,children:[1,2,3,6]},this.rules[8].opcodes[1]={type:4,index:11},this.rules[8].opcodes[2]={type:6,string:[39]},this.rules[8].opcodes[3]={type:2,children:[4,5]},this.rules[8].opcodes[4]={type:4,index:10},this.rules[8].opcodes[5]={type:6,string:[34]},this.rules[8].opcodes[6]={type:2,children:[7,8]},this.rules[8].opcodes[7]={type:4,index:10},this.rules[8].opcodes[8]={type:4,index:12},this.rules[9].opcodes=[],this.rules[9].opcodes[0]={type:1,children:[1,2,3,6]},this.rules[9].opcodes[1]={type:4,index:11},this.rules[9].opcodes[2]={type:6,string:[34]},this.rules[9].opcodes[3]={type:2,children:[4,5]},this.rules[9].opcodes[4]={type:4,index:10},this.rules[9].opcodes[5]={type:6,string:[39]},this.rules[9].opcodes[6]={type:2,children:[7,8]},this.rules[9].opcodes[7]={type:4,index:10},this.rules[9].opcodes[8]={type:4,index:12},this.rules[10].opcodes=[],this.rules[10].opcodes[0]={type:6,string:[92]},this.rules[11].opcodes=[],this.rules[11].opcodes[0]={type:1,children:[1,2,3,4,5]},this.rules[11].opcodes[1]={type:5,min:32,max:33},this.rules[11].opcodes[2]={type:5,min:35,max:38},this.rules[11].opcodes[3]={type:5,min:40,max:91},this.rules[11].opcodes[4]={type:5,min:93,max:55295},this.rules[11].opcodes[5]={type:5,min:57344,max:1114111},this.rules[12].opcodes=[],this.rules[12].opcodes[0]={type:1,children:[1,2,3,4,5,6,7,8]},this.rules[12].opcodes[1]={type:6,string:[98]},this.rules[12].opcodes[2]={type:6,string:[102]},this.rules[12].opcodes[3]={type:6,string:[110]},this.rules[12].opcodes[4]={type:6,string:[114]},this.rules[12].opcodes[5]={type:6,string:[116]},this.rules[12].opcodes[6]={type:7,string:[47]},this.rules[12].opcodes[7]={type:7,string:[92]},this.rules[12].opcodes[8]={type:2,children:[9,10]},this.rules[12].opcodes[9]={type:6,string:[117]},this.rules[12].opcodes[10]={type:4,index:13},this.rules[13].opcodes=[],this.rules[13].opcodes[0]={type:1,children:[1,2]},this.rules[13].opcodes[1]={type:4,index:14},this.rules[13].opcodes[2]={type:2,children:[3,4,5,6]},this.rules[13].opcodes[3]={type:4,index:15},this.rules[13].opcodes[4]={type:7,string:[92]},this.rules[13].opcodes[5]={type:6,string:[117]},this.rules[13].opcodes[6]={type:4,index:16},this.rules[14].opcodes=[],this.rules[14].opcodes[0]={type:1,children:[1,11]},this.rules[14].opcodes[1]={type:2,children:[2,9]},this.rules[14].opcodes[2]={type:1,children:[3,4,5,6,7,8]},this.rules[14].opcodes[3]={type:4,index:65},this.rules[14].opcodes[4]={type:7,string:[97]},this.rules[14].opcodes[5]={type:7,string:[98]},this.rules[14].opcodes[6]={type:7,string:[99]},this.rules[14].opcodes[7]={type:7,string:[101]},this.rules[14].opcodes[8]={type:7,string:[102]},this.rules[14].opcodes[9]={type:3,min:3,max:3},this.rules[14].opcodes[10]={type:4,index:17},this.rules[14].opcodes[11]={type:2,children:[12,13,14]},this.rules[14].opcodes[12]={type:7,string:[100]},this.rules[14].opcodes[13]={type:5,min:48,max:55},this.rules[14].opcodes[14]={type:3,min:2,max:2},this.rules[14].opcodes[15]={type:4,index:17},this.rules[15].opcodes=[],this.rules[15].opcodes[0]={type:2,children:[1,2,7]},this.rules[15].opcodes[1]={type:7,string:[100]},this.rules[15].opcodes[2]={type:1,children:[3,4,5,6]},this.rules[15].opcodes[3]={type:7,string:[56]},this.rules[15].opcodes[4]={type:7,string:[57]},this.rules[15].opcodes[5]={type:7,string:[97]},this.rules[15].opcodes[6]={type:7,string:[98]},this.rules[15].opcodes[7]={type:3,min:2,max:2},this.rules[15].opcodes[8]={type:4,index:17},this.rules[16].opcodes=[],this.rules[16].opcodes[0]={type:2,children:[1,2,7]},this.rules[16].opcodes[1]={type:7,string:[100]},this.rules[16].opcodes[2]={type:1,children:[3,4,5,6]},this.rules[16].opcodes[3]={type:7,string:[99]},this.rules[16].opcodes[4]={type:7,string:[100]},this.rules[16].opcodes[5]={type:7,string:[101]},this.rules[16].opcodes[6]={type:7,string:[102]},this.rules[16].opcodes[7]={type:3,min:2,max:2},this.rules[16].opcodes[8]={type:4,index:17},this.rules[17].opcodes=[],this.rules[17].opcodes[0]={type:1,children:[1,2,3,4,5,6,7]},this.rules[17].opcodes[1]={type:4,index:65},this.rules[17].opcodes[2]={type:7,string:[97]},this.rules[17].opcodes[3]={type:7,string:[98]},this.rules[17].opcodes[4]={type:7,string:[99]},this.rules[17].opcodes[5]={type:7,string:[100]},this.rules[17].opcodes[6]={type:7,string:[101]},this.rules[17].opcodes[7]={type:7,string:[102]},this.rules[18].opcodes=[],this.rules[18].opcodes[0]={type:7,string:[42]},this.rules[19].opcodes=[],this.rules[19].opcodes[0]={type:4,index:20},this.rules[20].opcodes=[],this.rules[20].opcodes[0]={type:1,children:[1,2]},this.rules[20].opcodes[1]={type:7,string:[48]},this.rules[20].opcodes[2]={type:2,children:[3,5,6]},this.rules[20].opcodes[3]={type:3,min:0,max:1},this.rules[20].opcodes[4]={type:7,string:[45]},this.rules[20].opcodes[5]={type:4,index:21},this.rules[20].opcodes[6]={type:3,min:0,max:1/0},this.rules[20].opcodes[7]={type:4,index:65},this.rules[21].opcodes=[],this.rules[21].opcodes[0]={type:5,min:49,max:57},this.rules[22].opcodes=[],this.rules[22].opcodes[0]={type:2,children:[1,5,6,7,11]},this.rules[22].opcodes[1]={type:3,min:0,max:1},this.rules[22].opcodes[2]={type:2,children:[3,4]},this.rules[22].opcodes[3]={type:4,index:23},this.rules[22].opcodes[4]={type:4,index:3},this.rules[22].opcodes[5]={type:4,index:85},this.rules[22].opcodes[6]={type:4,index:3},this.rules[22].opcodes[7]={type:3,min:0,max:1},this.rules[22].opcodes[8]={type:2,children:[9,10]},this.rules[22].opcodes[9]={type:4,index:24},this.rules[22].opcodes[10]={type:4,index:3},this.rules[22].opcodes[11]={type:3,min:0,max:1},this.rules[22].opcodes[12]={type:2,children:[13,14]},this.rules[22].opcodes[13]={type:4,index:85},this.rules[22].opcodes[14]={type:3,min:0,max:1},this.rules[22].opcodes[15]={type:2,children:[16,17]},this.rules[22].opcodes[16]={type:4,index:3},this.rules[22].opcodes[17]={type:4,index:25},this.rules[23].opcodes=[],this.rules[23].opcodes[0]={type:4,index:20},this.rules[24].opcodes=[],this.rules[24].opcodes[0]={type:4,index:20},this.rules[25].opcodes=[],this.rules[25].opcodes[0]={type:4,index:20},this.rules[26].opcodes=[],this.rules[26].opcodes[0]={type:2,children:[1,2,3]},this.rules[26].opcodes[1]={type:4,index:88},this.rules[26].opcodes[2]={type:4,index:3},this.rules[26].opcodes[3]={type:4,index:27},this.rules[27].opcodes=[],this.rules[27].opcodes[0]={type:4,index:28},this.rules[28].opcodes=[],this.rules[28].opcodes[0]={type:2,children:[1,2]},this.rules[28].opcodes[1]={type:4,index:29},this.rules[28].opcodes[2]={type:3,min:0,max:1/0},this.rules[28].opcodes[3]={type:2,children:[4,5,6,7]},this.rules[28].opcodes[4]={type:4,index:3},this.rules[28].opcodes[5]={type:4,index:89},this.rules[28].opcodes[6]={type:4,index:3},this.rules[28].opcodes[7]={type:4,index:29},this.rules[29].opcodes=[],this.rules[29].opcodes[0]={type:2,children:[1,2]},this.rules[29].opcodes[1]={type:4,index:30},this.rules[29].opcodes[2]={type:3,min:0,max:1/0},this.rules[29].opcodes[3]={type:2,children:[4,5,6,7]},this.rules[29].opcodes[4]={type:4,index:3},this.rules[29].opcodes[5]={type:4,index:90},this.rules[29].opcodes[6]={type:4,index:3},this.rules[29].opcodes[7]={type:4,index:30},this.rules[30].opcodes=[],this.rules[30].opcodes[0]={type:1,children:[1,2,3]},this.rules[30].opcodes[1]={type:4,index:31},this.rules[30].opcodes[2]={type:4,index:37},this.rules[30].opcodes[3]={type:4,index:33},this.rules[31].opcodes=[],this.rules[31].opcodes[0]={type:2,children:[1,5,6,7,8,9]},this.rules[31].opcodes[1]={type:3,min:0,max:1},this.rules[31].opcodes[2]={type:2,children:[3,4]},this.rules[31].opcodes[3]={type:4,index:32},this.rules[31].opcodes[4]={type:4,index:3},this.rules[31].opcodes[5]={type:4,index:82},this.rules[31].opcodes[6]={type:4,index:3},this.rules[31].opcodes[7]={type:4,index:27},this.rules[31].opcodes[8]={type:4,index:3},this.rules[31].opcodes[9]={type:4,index:83},this.rules[32].opcodes=[],this.rules[32].opcodes[0]={type:7,string:[33]},this.rules[33].opcodes=[],this.rules[33].opcodes[0]={type:2,children:[1,5]},this.rules[33].opcodes[1]={type:3,min:0,max:1},this.rules[33].opcodes[2]={type:2,children:[3,4]},this.rules[33].opcodes[3]={type:4,index:32},this.rules[33].opcodes[4]={type:4,index:3},this.rules[33].opcodes[5]={type:1,children:[6,7]},this.rules[33].opcodes[6]={type:4,index:34},this.rules[33].opcodes[7]={type:4,index:57},this.rules[34].opcodes=[],this.rules[34].opcodes[0]={type:1,children:[1,2]},this.rules[34].opcodes[1]={type:4,index:35},this.rules[34].opcodes[2]={type:4,index:0},this.rules[35].opcodes=[],this.rules[35].opcodes[0]={type:2,children:[1,2]},this.rules[35].opcodes[1]={type:4,index:36},this.rules[35].opcodes[2]={type:4,index:1},this.rules[36].opcodes=[],this.rules[36].opcodes[0]={type:7,string:[64]},this.rules[37].opcodes=[],this.rules[37].opcodes[0]={type:2,children:[1,2,3,4,5]},this.rules[37].opcodes[1]={type:4,index:39},this.rules[37].opcodes[2]={type:4,index:3},this.rules[37].opcodes[3]={type:4,index:40},this.rules[37].opcodes[4]={type:4,index:3},this.rules[37].opcodes[5]={type:4,index:39},this.rules[38].opcodes=[],this.rules[38].opcodes[0]={type:1,children:[1,2,3,4,5]},this.rules[38].opcodes[1]={type:4,index:47},this.rules[38].opcodes[2]={type:4,index:7},this.rules[38].opcodes[3]={type:4,index:50},this.rules[38].opcodes[4]={type:4,index:51},this.rules[38].opcodes[5]={type:4,index:52},this.rules[39].opcodes=[],this.rules[39].opcodes[0]={type:1,children:[1,2,3]},this.rules[39].opcodes[1]={type:4,index:41},this.rules[39].opcodes[2]={type:4,index:57},this.rules[39].opcodes[3]={type:4,index:38},this.rules[40].opcodes=[],this.rules[40].opcodes[0]={type:1,children:[1,2,3,4,5,6]},this.rules[40].opcodes[1]={type:7,string:[61,61]},this.rules[40].opcodes[2]={type:7,string:[33,61]},this.rules[40].opcodes[3]={type:7,string:[60,61]},this.rules[40].opcodes[4]={type:7,string:[62,61]},this.rules[40].opcodes[5]={type:7,string:[60]},this.rules[40].opcodes[6]={type:7,string:[62]},this.rules[41].opcodes=[],this.rules[41].opcodes[0]={type:1,children:[1,2]},this.rules[41].opcodes[1]={type:4,index:42},this.rules[41].opcodes[2]={type:4,index:43},this.rules[42].opcodes=[],this.rules[42].opcodes[0]={type:2,children:[1,2]},this.rules[42].opcodes[1]={type:4,index:36},this.rules[42].opcodes[2]={type:4,index:44},this.rules[43].opcodes=[],this.rules[43].opcodes[0]={type:2,children:[1,2]},this.rules[43].opcodes[1]={type:4,index:4},this.rules[43].opcodes[2]={type:4,index:44},this.rules[44].opcodes=[],this.rules[44].opcodes[0]={type:3,min:0,max:1/0},this.rules[44].opcodes[1]={type:2,children:[2,3]},this.rules[44].opcodes[2]={type:4,index:3},this.rules[44].opcodes[3]={type:1,children:[4,5]},this.rules[44].opcodes[4]={type:4,index:45},this.rules[44].opcodes[5]={type:4,index:46},this.rules[45].opcodes=[],this.rules[45].opcodes[0]={type:1,children:[1,5]},this.rules[45].opcodes[1]={type:2,children:[2,3,4]},this.rules[45].opcodes[2]={type:4,index:80},this.rules[45].opcodes[3]={type:4,index:6},this.rules[45].opcodes[4]={type:4,index:81},this.rules[45].opcodes[5]={type:2,children:[6,7]},this.rules[45].opcodes[6]={type:4,index:78},this.rules[45].opcodes[7]={type:4,index:62},this.rules[46].opcodes=[],this.rules[46].opcodes[0]={type:2,children:[1,2,3]},this.rules[46].opcodes[1]={type:4,index:80},this.rules[46].opcodes[2]={type:4,index:19},this.rules[46].opcodes[3]={type:4,index:81},this.rules[47].opcodes=[],this.rules[47].opcodes[0]={type:2,children:[1,4,6]},this.rules[47].opcodes[1]={type:1,children:[2,3]},this.rules[47].opcodes[2]={type:4,index:20},this.rules[47].opcodes[3]={type:7,string:[45,48]},this.rules[47].opcodes[4]={type:3,min:0,max:1},this.rules[47].opcodes[5]={type:4,index:48},this.rules[47].opcodes[6]={type:3,min:0,max:1},this.rules[47].opcodes[7]={type:4,index:49},this.rules[48].opcodes=[],this.rules[48].opcodes[0]={type:2,children:[1,2]},this.rules[48].opcodes[1]={type:7,string:[46]},this.rules[48].opcodes[2]={type:3,min:1,max:1/0},this.rules[48].opcodes[3]={type:4,index:65},this.rules[49].opcodes=[],this.rules[49].opcodes[0]={type:2,children:[1,2,6]},this.rules[49].opcodes[1]={type:7,string:[101]},this.rules[49].opcodes[2]={type:3,min:0,max:1},this.rules[49].opcodes[3]={type:1,children:[4,5]},this.rules[49].opcodes[4]={type:7,string:[45]},this.rules[49].opcodes[5]={type:7,string:[43]},this.rules[49].opcodes[6]={type:3,min:1,max:1/0},this.rules[49].opcodes[7]={type:4,index:65},this.rules[50].opcodes=[],this.rules[50].opcodes[0]={type:6,string:[116,114,117,101]},this.rules[51].opcodes=[],this.rules[51].opcodes[0]={type:6,string:[102,97,108,115,101]},this.rules[52].opcodes=[],this.rules[52].opcodes[0]={type:6,string:[110,117,108,108]},this.rules[53].opcodes=[],this.rules[53].opcodes[0]={type:2,children:[1,2]},this.rules[53].opcodes[1]={type:4,index:54},this.rules[53].opcodes[2]={type:3,min:0,max:1/0},this.rules[53].opcodes[3]={type:4,index:55},this.rules[54].opcodes=[],this.rules[54].opcodes[0]={type:4,index:56},this.rules[55].opcodes=[],this.rules[55].opcodes[0]={type:1,children:[1,2,3]},this.rules[55].opcodes[1]={type:4,index:54},this.rules[55].opcodes[2]={type:7,string:[95]},this.rules[55].opcodes[3]={type:4,index:65},this.rules[56].opcodes=[],this.rules[56].opcodes[0]={type:5,min:97,max:122},this.rules[57].opcodes=[],this.rules[57].opcodes[0]={type:2,children:[1,2,3,4,13,14]},this.rules[57].opcodes[1]={type:4,index:53},this.rules[57].opcodes[2]={type:4,index:82},this.rules[57].opcodes[3]={type:4,index:3},this.rules[57].opcodes[4]={type:3,min:0,max:1},this.rules[57].opcodes[5]={type:2,children:[6,7]},this.rules[57].opcodes[6]={type:4,index:58},this.rules[57].opcodes[7]={type:3,min:0,max:1/0},this.rules[57].opcodes[8]={type:2,children:[9,10,11,12]},this.rules[57].opcodes[9]={type:4,index:3},this.rules[57].opcodes[10]={type:4,index:84},this.rules[57].opcodes[11]={type:4,index:3},this.rules[57].opcodes[12]={type:4,index:58},this.rules[57].opcodes[13]={type:4,index:3},this.rules[57].opcodes[14]={type:4,index:83},this.rules[58].opcodes=[],this.rules[58].opcodes[0]={type:1,children:[1,2,3,4]},this.rules[58].opcodes[1]={type:4,index:27},this.rules[58].opcodes[2]={type:4,index:34},this.rules[58].opcodes[3]={type:4,index:57},this.rules[58].opcodes[4]={type:4,index:38},this.rules[59].opcodes=[],this.rules[59].opcodes[0]={type:1,children:[1,2]},this.rules[59].opcodes[1]={type:4,index:60},this.rules[59].opcodes[2]={type:4,index:67},this.rules[60].opcodes=[],this.rules[60].opcodes[0]={type:1,children:[1,2]},this.rules[60].opcodes[1]={type:4,index:61},this.rules[60].opcodes[2]={type:2,children:[3,4]},this.rules[60].opcodes[3]={type:4,index:78},this.rules[60].opcodes[4]={type:1,children:[5,6]},this.rules[60].opcodes[5]={type:4,index:18},this.rules[60].opcodes[6]={type:4,index:62},this.rules[61].opcodes=[],this.rules[61].opcodes[0]={type:2,children:[1,2,3,4,10,11]},this.rules[61].opcodes[1]={type:4,index:80},this.rules[61].opcodes[2]={type:4,index:3},this.rules[61].opcodes[3]={type:4,index:5},this.rules[61].opcodes[4]={type:3,min:0,max:1/0},this.rules[61].opcodes[5]={type:2,children:[6,7,8,9]},this.rules[61].opcodes[6]={type:4,index:3},this.rules[61].opcodes[7]={type:4,index:84},this.rules[61].opcodes[8]={type:4,index:3},this.rules[61].opcodes[9]={type:4,index:5},this.rules[61].opcodes[10]={type:4,index:3},this.rules[61].opcodes[11]={type:4,index:81},this.rules[62].opcodes=[],this.rules[62].opcodes[0]={type:2,children:[1,2]},this.rules[62].opcodes[1]={type:4,index:63},this.rules[62].opcodes[2]={type:3,min:0,max:1/0},this.rules[62].opcodes[3]={type:4,index:64},this.rules[63].opcodes=[],this.rules[63].opcodes[0]={type:1,children:[1,2,3,4]},this.rules[63].opcodes[1]={type:4,index:66},this.rules[63].opcodes[2]={type:7,string:[95]},this.rules[63].opcodes[3]={type:5,min:128,max:55295},this.rules[63].opcodes[4]={type:5,min:57344,max:1114111},this.rules[64].opcodes=[],this.rules[64].opcodes[0]={type:1,children:[1,2]},this.rules[64].opcodes[1]={type:4,index:63},this.rules[64].opcodes[2]={type:4,index:65},this.rules[65].opcodes=[],this.rules[65].opcodes[0]={type:5,min:48,max:57},this.rules[66].opcodes=[],this.rules[66].opcodes[0]={type:1,children:[1,2]},this.rules[66].opcodes[1]={type:5,min:65,max:90},this.rules[66].opcodes[2]={type:5,min:97,max:122},this.rules[67].opcodes=[],this.rules[67].opcodes[0]={type:2,children:[1,2]},this.rules[67].opcodes[1]={type:4,index:79},this.rules[67].opcodes[2]={type:1,children:[3,4,5]},this.rules[67].opcodes[3]={type:4,index:61},this.rules[67].opcodes[4]={type:4,index:18},this.rules[67].opcodes[5]={type:4,index:62},this.rules[68].opcodes=[],this.rules[68].opcodes[0]={type:2,children:[1,2]},this.rules[68].opcodes[1]={type:4,index:4},this.rules[68].opcodes[2]={type:3,min:0,max:1/0},this.rules[68].opcodes[3]={type:4,index:69},this.rules[69].opcodes=[],this.rules[69].opcodes[0]={type:2,children:[1,2,3]},this.rules[69].opcodes[1]={type:4,index:80},this.rules[69].opcodes[2]={type:4,index:70},this.rules[69].opcodes[3]={type:4,index:81},this.rules[70].opcodes=[],this.rules[70].opcodes[0]={type:1,children:[1,2]},this.rules[70].opcodes[1]={type:4,index:71},this.rules[70].opcodes[2]={type:4,index:77},this.rules[71].opcodes=[],this.rules[71].opcodes[0]={type:2,children:[1,2,4]},this.rules[71].opcodes[1]={type:4,index:87},this.rules[71].opcodes[2]={type:3,min:0,max:1/0},this.rules[71].opcodes[3]={type:4,index:72},this.rules[71].opcodes[4]={type:4,index:87},this.rules[72].opcodes=[],this.rules[72].opcodes[0]={type:1,children:[1,2]},this.rules[72].opcodes[1]={type:4,index:73},this.rules[72].opcodes[2]={type:2,children:[3,4]},this.rules[72].opcodes[3]={type:4,index:10},this.rules[72].opcodes[4]={type:4,index:74},this.rules[73].opcodes=[],this.rules[73].opcodes[0]={type:1,children:[1,2,3,4]},this.rules[73].opcodes[1]={type:5,min:32,max:38},this.rules[73].opcodes[2]={type:5,min:40,max:91},this.rules[73].opcodes[3]={type:5,min:93,max:55295},this.rules[73].opcodes[4]={type:5,min:57344,max:1114111},this.rules[74].opcodes=[],this.rules[74].opcodes[0]={type:1,children:[1,2,3,4,5,6,7,8]},this.rules[74].opcodes[1]={type:6,string:[98]},this.rules[74].opcodes[2]={type:6,string:[102]},this.rules[74].opcodes[3]={type:6,string:[110]},this.rules[74].opcodes[4]={type:6,string:[114]},this.rules[74].opcodes[5]={type:6,string:[116]},this.rules[74].opcodes[6]={type:7,string:[39]},this.rules[74].opcodes[7]={type:7,string:[92]},this.rules[74].opcodes[8]={type:2,children:[9,10]},this.rules[74].opcodes[9]={type:6,string:[117]},this.rules[74].opcodes[10]={type:4,index:75},this.rules[75].opcodes=[],this.rules[75].opcodes[0]={type:2,children:[1,2,3]},this.rules[75].opcodes[1]={type:7,string:[48]},this.rules[75].opcodes[2]={type:7,string:[48]},this.rules[75].opcodes[3]={type:1,children:[4,7,10,13]},this.rules[75].opcodes[4]={type:2,children:[5,6]},this.rules[75].opcodes[5]={type:7,string:[48]},this.rules[75].opcodes[6]={type:5,min:48,max:55},this.rules[75].opcodes[7]={type:2,children:[8,9]},this.rules[75].opcodes[8]={type:7,string:[48]},this.rules[75].opcodes[9]={type:6,string:[98]},this.rules[75].opcodes[10]={type:2,children:[11,12]},this.rules[75].opcodes[11]={type:7,string:[48]},this.rules[75].opcodes[12]={type:5,min:101,max:102},this.rules[75].opcodes[13]={type:2,children:[14,15]},this.rules[75].opcodes[14]={type:7,string:[49]},this.rules[75].opcodes[15]={type:4,index:76},this.rules[76].opcodes=[],this.rules[76].opcodes[0]={type:1,children:[1,2]},this.rules[76].opcodes[1]={type:4,index:65},this.rules[76].opcodes[2]={type:5,min:97,max:102},this.rules[77].opcodes=[],this.rules[77].opcodes[0]={type:1,children:[1,2]},this.rules[77].opcodes[1]={type:7,string:[48]},this.rules[77].opcodes[2]={type:2,children:[3,4]},this.rules[77].opcodes[3]={type:4,index:21},this.rules[77].opcodes[4]={type:3,min:0,max:1/0},this.rules[77].opcodes[5]={type:4,index:65},this.rules[78].opcodes=[],this.rules[78].opcodes[0]={type:7,string:[46]},this.rules[79].opcodes=[],this.rules[79].opcodes[0]={type:7,string:[46,46]},this.rules[80].opcodes=[],this.rules[80].opcodes[0]={type:7,string:[91]},this.rules[81].opcodes=[],this.rules[81].opcodes[0]={type:7,string:[93]},this.rules[82].opcodes=[],this.rules[82].opcodes[0]={type:7,string:[40]},this.rules[83].opcodes=[],this.rules[83].opcodes[0]={type:7,string:[41]},this.rules[84].opcodes=[],this.rules[84].opcodes[0]={type:7,string:[44]},this.rules[85].opcodes=[],this.rules[85].opcodes[0]={type:7,string:[58]},this.rules[86].opcodes=[],this.rules[86].opcodes[0]={type:6,string:[34]},this.rules[87].opcodes=[],this.rules[87].opcodes[0]={type:6,string:[39]},this.rules[88].opcodes=[],this.rules[88].opcodes[0]={type:7,string:[63]},this.rules[89].opcodes=[],this.rules[89].opcodes[0]={type:7,string:[124,124]},this.rules[90].opcodes=[],this.rules[90].opcodes[0]={type:7,string:[38,38]},this.toString=function(){let e="";return e+="; JSONPath: Query Expressions for JSON\n",e+="; https://www.rfc-editor.org/rfc/rfc9535\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.1.1\n",e+="jsonpath-query = root-identifier segments\n",e+="segments = *(S segment)\n",e+="\n",e+="B = %x20 / ; Space\n",e+=" %x09 / ; Horizontal tab\n",e+=" %x0A / ; Line feed or New line\n",e+=" %x0D ; Carriage return\n",e+="S = *B ; optional blank space\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.2.1\n",e+='root-identifier = "$"\n',e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3\n",e+="selector = name-selector /\n",e+=" wildcard-selector /\n",e+=" slice-selector /\n",e+=" index-selector /\n",e+=" filter-selector\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.1.1\n",e+="name-selector = string-literal\n",e+="\n",e+='string-literal = dquote *double-quoted dquote / ; "string", MODIFICATION: surrogate text rule used\n',e+=" squote *single-quoted squote ; 'string', MODIFICATION: surrogate text rule used\n",e+="\n",e+="double-quoted = unescaped /\n",e+=" %x27 / ; '\n",e+=' ESC %x22 / ; \\"\n',e+=" ESC escapable\n",e+="\n",e+="single-quoted = unescaped /\n",e+=' %x22 / ; "\n',e+=" ESC %x27 / ; \\'\n",e+=" ESC escapable\n",e+="\n",e+="ESC = %x5C ; \\ backslash\n",e+="\n",e+="unescaped = %x20-21 / ; see RFC 8259\n",e+=' ; omit 0x22 "\n',e+=" %x23-26 /\n",e+=" ; omit 0x27 '\n",e+=" %x28-5B /\n",e+=" ; omit 0x5C \\\n",e+=" %x5D-D7FF /\n",e+=" ; skip surrogate code points\n",e+=" %xE000-10FFFF\n",e+="\n",e+="escapable = %x62 / ; b BS backspace U+0008\n",e+=" %x66 / ; f FF form feed U+000C\n",e+=" %x6E / ; n LF line feed U+000A\n",e+=" %x72 / ; r CR carriage return U+000D\n",e+=" %x74 / ; t HT horizontal tab U+0009\n",e+=' "/" / ; / slash (solidus) U+002F\n',e+=' "\\" / ; \\ backslash (reverse solidus) U+005C\n',e+=" (%x75 hexchar) ; uXXXX U+XXXX\n",e+="\n",e+="hexchar = non-surrogate /\n",e+=' (high-surrogate "\\" %x75 low-surrogate)\n',e+='non-surrogate = ((DIGIT / "A"/"B"/"C" / "E"/"F") 3HEXDIG) /\n',e+=' ("D" %x30-37 2HEXDIG )\n',e+='high-surrogate = "D" ("8"/"9"/"A"/"B") 2HEXDIG\n',e+='low-surrogate = "D" ("C"/"D"/"E"/"F") 2HEXDIG\n',e+="\n",e+='HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"\n',e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.2.1\n",e+='wildcard-selector = "*"\n',e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.3.1\n",e+="index-selector = int ; decimal integer\n",e+="\n",e+='int = "0" /\n',e+=' (["-"] DIGIT1 *DIGIT) ; - optional\n',e+="DIGIT1 = %x31-39 ; 1-9 non-zero digit\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.4.1\n",e+="slice-selector = [start S] colon S [end S] [colon [S step ]] ; MODIFICATION: surrogate text rule used\n",e+="\n",e+="start = int ; included in selection\n",e+="end = int ; not included in selection\n",e+="step = int ; default: 1\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.5.1\n",e+="filter-selector = questionmark S logical-expr ; MODIFICATION: surrogate text rule used\n",e+="\n",e+="logical-expr = logical-or-expr\n",e+="logical-or-expr = logical-and-expr *(S disjunction S logical-and-expr) ; MODIFICATION: surrogate text rule used\n",e+=" ; disjunction\n",e+=" ; binds less tightly than conjunction\n",e+="logical-and-expr = basic-expr *(S conjunction S basic-expr) ; MODIFICATION: surrogate text rule used\n",e+=" ; conjunction\n",e+=" ; binds more tightly than disjunction\n",e+="\n",e+="basic-expr = paren-expr /\n",e+=" comparison-expr /\n",e+=" test-expr\n",e+="\n",e+="paren-expr = [logical-not-op S] left-paren S logical-expr S right-paren ; MODIFICATION: surrogate text rule used\n",e+=" ; parenthesized expression\n",e+='logical-not-op = "!" ; logical NOT operator\n',e+="\n",e+="test-expr = [logical-not-op S]\n",e+=" (filter-query / ; existence/non-existence\n",e+=" function-expr) ; LogicalType or NodesType\n",e+="filter-query = rel-query / jsonpath-query\n",e+="rel-query = current-node-identifier segments\n",e+='current-node-identifier = "@"\n',e+="\n",e+="comparison-expr = comparable S comparison-op S comparable\n",e+="literal = number / string-literal /\n",e+=" true / false / null\n",e+="comparable = singular-query / ; singular query value\n",e+=" function-expr / ; ValueType\n",e+=" literal\n",e+=" ; MODIFICATION: https://www.rfc-editor.org/errata/eid8352\n",e+='comparison-op = "==" / "!=" /\n',e+=' "<=" / ">=" /\n',e+=' "<" / ">"\n',e+="\n",e+="singular-query = rel-singular-query / abs-singular-query\n",e+="rel-singular-query = current-node-identifier singular-query-segments\n",e+="abs-singular-query = root-identifier singular-query-segments\n",e+="singular-query-segments = *(S (name-segment / index-segment))\n",e+="name-segment = (left-bracket name-selector right-bracket) / ; MODIFICATION: surrogate text rule used\n",e+=" (dot-prefix member-name-shorthand) ; MODIFICATION: surrogate text rule used\n",e+="index-segment = left-bracket index-selector right-bracket ; MODIFICATION: surrogate text rule used\n",e+="\n",e+='number = (int / "-0") [ frac ] [ exp ] ; decimal number\n',e+='frac = "." 1*DIGIT ; decimal fraction\n',e+='exp = "e" [ "-" / "+" ] 1*DIGIT ; decimal exponent\n',e+="true = %x74.72.75.65 ; true\n",e+="false = %x66.61.6c.73.65 ; false\n",e+="null = %x6e.75.6c.6c ; null\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.4\n",e+="function-name = function-name-first *function-name-char\n",e+="function-name-first = LCALPHA\n",e+='function-name-char = function-name-first / "_" / DIGIT\n',e+='LCALPHA = %x61-7A ; "a".."z"\n',e+="\n",e+="function-expr = function-name left-paren S [function-argument ; MODIFICATION: surrogate text rule used\n",e+=" *(S comma S function-argument)] S right-paren ; MODIFICATION: surrogate text rule used\n",e+="function-argument = logical-expr / ; MODIFICATION: https://www.rfc-editor.org/errata/eid8343\n",e+=" filter-query / ; (includes singular-query)\n",e+=" function-expr /\n",e+=" literal\n",e+="\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.5\n",e+="segment = child-segment / descendant-segment\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.1.1\n",e+="child-segment = bracketed-selection /\n",e+=" (dot-prefix ; MODIFICATION: surrogate text rule used\n",e+=" (wildcard-selector /\n",e+=" member-name-shorthand))\n",e+="\n",e+="bracketed-selection = left-bracket S selector *(S comma S selector) S right-bracket\n",e+=" ; MODIFICATION: surrogate text rule used\n",e+="\n",e+="member-name-shorthand = name-first *name-char\n",e+="name-first = ALPHA /\n",e+=' "_" /\n',e+=" %x80-D7FF /\n",e+=" ; skip surrogate code points\n",e+=" %xE000-10FFFF\n",e+="name-char = name-first / DIGIT\n",e+="\n",e+="DIGIT = %x30-39 ; 0-9\n",e+="ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.2.1\n",e+="descendant-segment = double-dot-prefix (bracketed-selection / ; MODIFICATION: surrogate text rule used\n",e+=" wildcard-selector /\n",e+=" member-name-shorthand)\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#name-normalized-paths\n",e+="normalized-path = root-identifier *(normal-index-segment)\n",e+="normal-index-segment = left-bracket normal-selector right-bracket ; MODIFICATION: surrogate text rule used\n",e+="normal-selector = normal-name-selector / normal-index-selector\n",e+="normal-name-selector = squote *normal-single-quoted squote ; 'string', MODIFICATION: surrogate text rule used\n",e+="normal-single-quoted = normal-unescaped /\n",e+=" ESC normal-escapable\n",e+="normal-unescaped = ; omit %x0-1F control codes\n",e+=" %x20-26 /\n",e+=" ; omit 0x27 '\n",e+=" %x28-5B /\n",e+=" ; omit 0x5C \\\n",e+=" %x5D-D7FF /\n",e+=" ; skip surrogate code points\n",e+=" %xE000-10FFFF\n",e+="\n",e+="normal-escapable = %x62 / ; b BS backspace U+0008\n",e+=" %x66 / ; f FF form feed U+000C\n",e+=" %x6E / ; n LF line feed U+000A\n",e+=" %x72 / ; r CR carriage return U+000D\n",e+=" %x74 / ; t HT horizontal tab U+0009\n",e+=" \"'\" / ; ' apostrophe U+0027\n",e+=' "\\" / ; \\ backslash (reverse solidus) U+005C\n',e+=" (%x75 normal-hexchar)\n",e+=" ; certain values u00xx U+00XX\n",e+='normal-hexchar = "0" "0"\n',e+=" (\n",e+=' ("0" %x30-37) / ; "00"-"07"\n',e+=" ; omit U+0008-U+000A BS HT LF\n",e+=' ("0" %x62) / ; "0b"\n',e+=" ; omit U+000C-U+000D FF CR\n",e+=' ("0" %x65-66) / ; "0e"-"0f"\n',e+=' ("1" normal-HEXDIG)\n',e+=" )\n",e+='normal-HEXDIG = DIGIT / %x61-66 ; "0"-"9", "a"-"f"\n',e+='normal-index-selector = "0" / (DIGIT1 *DIGIT)\n',e+=" ; non-negative decimal integer\n",e+="\n",e+="; Surrogate named rules\n",e+='dot-prefix = "."\n',e+='double-dot-prefix = ".."\n',e+='left-bracket = "["\n',e+='right-bracket = "]"\n',e+='left-paren = "("\n',e+='right-paren = ")"\n',e+='comma = ","\n',e+='colon = ":"\n',e+='dquote = %x22 ; "\n',e+="squote = %x27 ; '\n",e+='questionmark = "?"\n',e+='disjunction = "||"\n',e+='conjunction = "&&"\n','; JSONPath: Query Expressions for JSON\n; https://www.rfc-editor.org/rfc/rfc9535\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.1.1\njsonpath-query = root-identifier segments\nsegments = *(S segment)\n\nB = %x20 / ; Space\n %x09 / ; Horizontal tab\n %x0A / ; Line feed or New line\n %x0D ; Carriage return\nS = *B ; optional blank space\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.2.1\nroot-identifier = "$"\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3\nselector = name-selector /\n wildcard-selector /\n slice-selector /\n index-selector /\n filter-selector\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.1.1\nname-selector = string-literal\n\nstring-literal = dquote *double-quoted dquote / ; "string", MODIFICATION: surrogate text rule used\n squote *single-quoted squote ; \'string\', MODIFICATION: surrogate text rule used\n\ndouble-quoted = unescaped /\n %x27 / ; \'\n ESC %x22 / ; \\"\n ESC escapable\n\nsingle-quoted = unescaped /\n %x22 / ; "\n ESC %x27 / ; \\\'\n ESC escapable\n\nESC = %x5C ; \\ backslash\n\nunescaped = %x20-21 / ; see RFC 8259\n ; omit 0x22 "\n %x23-26 /\n ; omit 0x27 \'\n %x28-5B /\n ; omit 0x5C \\\n %x5D-D7FF /\n ; skip surrogate code points\n %xE000-10FFFF\n\nescapable = %x62 / ; b BS backspace U+0008\n %x66 / ; f FF form feed U+000C\n %x6E / ; n LF line feed U+000A\n %x72 / ; r CR carriage return U+000D\n %x74 / ; t HT horizontal tab U+0009\n "/" / ; / slash (solidus) U+002F\n "\\" / ; \\ backslash (reverse solidus) U+005C\n (%x75 hexchar) ; uXXXX U+XXXX\n\nhexchar = non-surrogate /\n (high-surrogate "\\" %x75 low-surrogate)\nnon-surrogate = ((DIGIT / "A"/"B"/"C" / "E"/"F") 3HEXDIG) /\n ("D" %x30-37 2HEXDIG )\nhigh-surrogate = "D" ("8"/"9"/"A"/"B") 2HEXDIG\nlow-surrogate = "D" ("C"/"D"/"E"/"F") 2HEXDIG\n\nHEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.2.1\nwildcard-selector = "*"\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.3.1\nindex-selector = int ; decimal integer\n\nint = "0" /\n (["-"] DIGIT1 *DIGIT) ; - optional\nDIGIT1 = %x31-39 ; 1-9 non-zero digit\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.4.1\nslice-selector = [start S] colon S [end S] [colon [S step ]] ; MODIFICATION: surrogate text rule used\n\nstart = int ; included in selection\nend = int ; not included in selection\nstep = int ; default: 1\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.5.1\nfilter-selector = questionmark S logical-expr ; MODIFICATION: surrogate text rule used\n\nlogical-expr = logical-or-expr\nlogical-or-expr = logical-and-expr *(S disjunction S logical-and-expr) ; MODIFICATION: surrogate text rule used\n ; disjunction\n ; binds less tightly than conjunction\nlogical-and-expr = basic-expr *(S conjunction S basic-expr) ; MODIFICATION: surrogate text rule used\n ; conjunction\n ; binds more tightly than disjunction\n\nbasic-expr = paren-expr /\n comparison-expr /\n test-expr\n\nparen-expr = [logical-not-op S] left-paren S logical-expr S right-paren ; MODIFICATION: surrogate text rule used\n ; parenthesized expression\nlogical-not-op = "!" ; logical NOT operator\n\ntest-expr = [logical-not-op S]\n (filter-query / ; existence/non-existence\n function-expr) ; LogicalType or NodesType\nfilter-query = rel-query / jsonpath-query\nrel-query = current-node-identifier segments\ncurrent-node-identifier = "@"\n\ncomparison-expr = comparable S comparison-op S comparable\nliteral = number / string-literal /\n true / false / null\ncomparable = singular-query / ; singular query value\n function-expr / ; ValueType\n literal\n ; MODIFICATION: https://www.rfc-editor.org/errata/eid8352\ncomparison-op = "==" / "!=" /\n "<=" / ">=" /\n "<" / ">"\n\nsingular-query = rel-singular-query / abs-singular-query\nrel-singular-query = current-node-identifier singular-query-segments\nabs-singular-query = root-identifier singular-query-segments\nsingular-query-segments = *(S (name-segment / index-segment))\nname-segment = (left-bracket name-selector right-bracket) / ; MODIFICATION: surrogate text rule used\n (dot-prefix member-name-shorthand) ; MODIFICATION: surrogate text rule used\nindex-segment = left-bracket index-selector right-bracket ; MODIFICATION: surrogate text rule used\n\nnumber = (int / "-0") [ frac ] [ exp ] ; decimal number\nfrac = "." 1*DIGIT ; decimal fraction\nexp = "e" [ "-" / "+" ] 1*DIGIT ; decimal exponent\ntrue = %x74.72.75.65 ; true\nfalse = %x66.61.6c.73.65 ; false\nnull = %x6e.75.6c.6c ; null\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.4\nfunction-name = function-name-first *function-name-char\nfunction-name-first = LCALPHA\nfunction-name-char = function-name-first / "_" / DIGIT\nLCALPHA = %x61-7A ; "a".."z"\n\nfunction-expr = function-name left-paren S [function-argument ; MODIFICATION: surrogate text rule used\n *(S comma S function-argument)] S right-paren ; MODIFICATION: surrogate text rule used\nfunction-argument = logical-expr / ; MODIFICATION: https://www.rfc-editor.org/errata/eid8343\n filter-query / ; (includes singular-query)\n function-expr /\n literal\n\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.5\nsegment = child-segment / descendant-segment\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.1.1\nchild-segment = bracketed-selection /\n (dot-prefix ; MODIFICATION: surrogate text rule used\n (wildcard-selector /\n member-name-shorthand))\n\nbracketed-selection = left-bracket S selector *(S comma S selector) S right-bracket\n ; MODIFICATION: surrogate text rule used\n\nmember-name-shorthand = name-first *name-char\nname-first = ALPHA /\n "_" /\n %x80-D7FF /\n ; skip surrogate code points\n %xE000-10FFFF\nname-char = name-first / DIGIT\n\nDIGIT = %x30-39 ; 0-9\nALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.2.1\ndescendant-segment = double-dot-prefix (bracketed-selection / ; MODIFICATION: surrogate text rule used\n wildcard-selector /\n member-name-shorthand)\n\n; https://www.rfc-editor.org/rfc/rfc9535#name-normalized-paths\nnormalized-path = root-identifier *(normal-index-segment)\nnormal-index-segment = left-bracket normal-selector right-bracket ; MODIFICATION: surrogate text rule used\nnormal-selector = normal-name-selector / normal-index-selector\nnormal-name-selector = squote *normal-single-quoted squote ; \'string\', MODIFICATION: surrogate text rule used\nnormal-single-quoted = normal-unescaped /\n ESC normal-escapable\nnormal-unescaped = ; omit %x0-1F control codes\n %x20-26 /\n ; omit 0x27 \'\n %x28-5B /\n ; omit 0x5C \\\n %x5D-D7FF /\n ; skip surrogate code points\n %xE000-10FFFF\n\nnormal-escapable = %x62 / ; b BS backspace U+0008\n %x66 / ; f FF form feed U+000C\n %x6E / ; n LF line feed U+000A\n %x72 / ; r CR carriage return U+000D\n %x74 / ; t HT horizontal tab U+0009\n "\'" / ; \' apostrophe U+0027\n "\\" / ; \\ backslash (reverse solidus) U+005C\n (%x75 normal-hexchar)\n ; certain values u00xx U+00XX\nnormal-hexchar = "0" "0"\n (\n ("0" %x30-37) / ; "00"-"07"\n ; omit U+0008-U+000A BS HT LF\n ("0" %x62) / ; "0b"\n ; omit U+000C-U+000D FF CR\n ("0" %x65-66) / ; "0e"-"0f"\n ("1" normal-HEXDIG)\n )\nnormal-HEXDIG = DIGIT / %x61-66 ; "0"-"9", "a"-"f"\nnormal-index-selector = "0" / (DIGIT1 *DIGIT)\n ; non-negative decimal integer\n\n; Surrogate named rules\ndot-prefix = "."\ndouble-dot-prefix = ".."\nleft-bracket = "["\nright-bracket = "]"\nleft-paren = "("\nright-paren = ")"\ncomma = ","\ncolon = ":"\ndquote = %x22 ; "\nsquote = %x27 ; \'\nquestionmark = "?"\ndisjunction = "||"\nconjunction = "&&"\n'}};const ee=class extends Z{},te=e=>{if(!Array.isArray(e))throw new ee("Selectors must be an array, got: "+typeof e,{selectors:e});try{return`$${e.map(e=>{if("string"==typeof e)return`['${(e=>{if("string"!=typeof e)throw new TypeError("Selector must be a string");let t="";for(const r of e){const e=r.codePointAt(0);switch(e){case 8:t+="\\b";break;case 9:t+="\\t";break;case 10:t+="\\n";break;case 12:t+="\\f";break;case 13:t+="\\r";break;case 39:t+="\\'";break;case 92:t+="\\\\";break;default:t+=e<=31?`\\u${e.toString(16).padStart(4,"0")}`:r}}return t})(e)}']`;if("number"==typeof e){if(!Number.isSafeInteger(e)||e<0)throw new TypeError(`Index selector must be a non-negative safe integer, got: ${e}`);return`[${e}]`}throw new TypeError("Selector must be a string or non-negative integer, got: "+typeof e)}).join("")}`}catch(t){throw new ee("Failed to compile normalized JSONPath",{cause:t,selectors:e})}},re=(e,t,r,s)=>{const{realm:n}=e,{value:o}=r;if(n.isObject(t)&&n.hasProperty(t,o)){s(n.getProperty(t,o),o)}},se=(e,t,r,s)=>{const{realm:n}=e,{value:o}=r;if(!n.isArray(t))return;const i=n.getLength(t),c=((e,t)=>e>=0?e:t+e)(o,i);if(c>=0&&c<i){s(n.getElement(t,c),c)}},ne=(e,t,r,s)=>{const{realm:n}=e;for(const[e,r]of n.entries(t))s(r,e)},oe=(e,t)=>e>=0?Math.min(e,t):Math.max(t+e,0),ie=(e,t,r,s)=>{const{realm:n}=e,{start:o,end:i,step:c}=r;if(!n.isArray(t))return;const a=((e,t,r,s)=>{const n=r??1;if(0===n)return null;let o,i;if(n>0){const r=0,n=s,c=null!==e?oe(e,s):r,a=null!==t?oe(t,s):n;o=Math.max(c,0),i=Math.min(a,s)}else{const r=s-1,n=-s-1,c=null!==e?e>=0?Math.min(e,s-1):Math.max(s+e,-1):r,a=null!==t?t>=0?Math.min(t,s-1):Math.max(s+t,-1):n;i=Math.min(c,s-1),o=Math.max(a,-1)}return{lower:o,upper:i,step:n}})(o,i,c,n.getLength(t));if(null===a)return;const{lower:l,upper:u,step:p}=a;if(p>0)for(let e=l;e<u;e+=p){s(n.getElement(t,e),e)}else for(let e=u;e>l;e+=p){s(n.getElement(t,e),e)}},ce=(e,t,r,s)=>s.value,ae=(e,t,r)=>{const{realm:s}=e,{selector:n}=r;switch(n.type){case"NameSelector":{const{value:e}=n;return s.isObject(t)&&s.hasProperty(t,e)?s.getProperty(t,e):void 0}case"IndexSelector":{const{value:e}=n;if(!s.isArray(t))return;const r=s.getLength(t),o=e>=0?e:r+e;return o>=0&&o<r?s.getElement(t,o):void 0}default:return}},le=(e,t,r,s)=>{const{selectors:n}=r;for(const r of n)ve(e,t,r,s)},ue=(e,t,r)=>{const s=[],n=e=>{s.push(e)},{selector:o}=r;switch(o.type){case"BracketedSelection":le(e,t,o,n);break;case"NameSelector":case"WildcardSelector":case"IndexSelector":case"SliceSelector":case"FilterSelector":ve(e,t,o,n)}return s},pe=(e,t,r,s)=>{let n=r;for(const t of s){const r=[];if("DescendantSegment"===t.type){const s=n=>{const{realm:o}=e,i=ue(e,n,t);r.push(...i);for(const[,e]of o.entries(n))s(e)};for(const e of n)s(e)}else for(const s of n){const n=ue(e,s,t);r.push(...n)}n=r}return n},de=(e,t,r,s)=>{const{query:n}=s;let o;switch(n.type){case"RelQuery":o=((e,t,r,s)=>{const{segments:n}=s;return 0===n.length?[r]:pe(e,0,[r],n)})(e,0,r,n);break;case"JsonPathQuery":o=((e,t,r,s)=>{const{segments:n}=s;return 0===n.length?[t]:pe(e,0,[t],n)})(e,t,0,n);break;default:o=[]}return i=o,Object.defineProperty(i,"_isNodelist",{value:!0,enumerable:!1,writable:!1}),i;var i};let he;const fe=(e,t,r,s)=>{const{name:n,arguments:o}=s,i=e.functions[n];if("function"!=typeof i)return;const c=o.map(s=>((e,t,r,s)=>{switch(s.type){case"Literal":case"RelSingularQuery":case"AbsSingularQuery":case"FunctionExpr":return ye(e,t,r,s);case"FilterQuery":return de(e,t,r,s);case"TestExpr":return"FilterQuery"===s.expression.type?de(e,t,r,s.expression):"FunctionExpr"===s.expression.type?ye(e,t,r,s.expression):he(e,t,r,s);case"LogicalOrExpr":case"LogicalAndExpr":case"LogicalNotExpr":case"ComparisonExpr":return he(e,t,r,s);default:return}})(e,t,r,s));return i(e.realm,...c)},ye=(e,t,r,s)=>{switch(s.type){case"Literal":return ce(e,t,r,s);case"RelSingularQuery":return((e,t,r,s)=>{let n=r;for(const t of s.segments)if(n=ae(e,n,t),void 0===n)return;return n})(e,0,r,s);case"AbsSingularQuery":return((e,t,r,s)=>{let n=t;for(const t of s.segments)if(n=ae(e,n,t),void 0===n)return;return n})(e,t,0,s);case"FunctionExpr":return fe(e,t,r,s);default:return}},me=(e,t,r,s)=>{const{left:n,op:o,right:i}=s,c=ye(e,t,r,n),a=ye(e,t,r,i);return e.realm.compare(c,o,a)},ge=e=>Array.isArray(e),xe=(e,t,r,s)=>{switch(s.type){case"LogicalOrExpr":return!!xe(e,t,r,s.left)||xe(e,t,r,s.right);case"LogicalAndExpr":return!!xe(e,t,r,s.left)&&xe(e,t,r,s.right);case"LogicalNotExpr":return!xe(e,t,r,s.expression);case"TestExpr":{const{expression:n}=s;if("FilterQuery"===n.type){return de(e,t,r,n).length>0}if("FunctionExpr"===n.type){const s=fe(e,t,r,n);return"boolean"==typeof s?s:void 0!==s&&(ge(s)?s.length>0:Boolean(s))}return!1}case"ComparisonExpr":return me(e,t,r,s);default:return!1}};he=xe;const be=xe,we=(e,t,r,s)=>{const{realm:n,root:o}=e,{expression:i}=r;for(const[r,c]of n.entries(t)){be(e,o,c,i)&&s(c,r)}},ve=(e,t,r,s)=>{switch(r.type){case"NameSelector":re(e,t,r,s);break;case"IndexSelector":se(e,t,r,s);break;case"WildcardSelector":ne(e,t,r,s);break;case"SliceSelector":ie(e,t,r,s);break;case"FilterSelector":we(e,t,r,s)}};new Map;class ke{node;key;index;parent;parentPath;inList;#e=!1;#t=!1;#r=!1;#s=!1;#n;#o=!1;constructor(e,t,r,s,n){this.node=e,this.parent=t,this.parentPath=r,this.key=s,this.index=n&&"number"==typeof s?s:void 0,this.inList=n}get shouldSkip(){return this.#e}get shouldStop(){return this.#t}get removed(){return this.#r}isRoot(){return null===this.parentPath}get depth(){let e=0,t=this.parentPath;for(;null!==t;)e+=1,t=t.parentPath;return e}getAncestry(){const e=[];let t=this.parentPath;for(;null!==t;)e.push(t),t=t.parentPath;return e}getAncestorNodes(){return this.getAncestry().map(e=>e.node)}getPathKeys(){const e=[];let t=this;for(;null!==t&&void 0!==t.key;){const{key:r,parent:s,parentPath:n}=t;if(G(s)&&"value"===r){if(!_(s.key))throw new TypeError("MemberElement.key must be a StringElement");e.unshift(s.key.toValue())}else U(n?.node)&&"number"==typeof r&&e.unshift(r);t=t.parentPath}return e}formatPath(e="jsonpointer"){const t=this.getPathKeys();return 0===t.length?"jsonpath"===e?"$":"":"jsonpath"===e?te(t):Q(t)}findParent(e){let t=this.parentPath;for(;null!==t;){if(e(t))return t;t=t.parentPath}return null}find(e){return e(this)?this:this.findParent(e)}skip(){this.#e=!0}stop(){this.#t=!0}replaceWith(e){this.#o&&console.warn("Warning: replaceWith() called on a stale Path. This path belongs to a node whose visit has already completed. The replacement will have no effect. To replace a parent node, do so from the parent's own visitor."),this.#s=!0,this.#n=e,this.node=e}remove(){this.#o&&console.warn("Warning: remove() called on a stale Path. This path belongs to a node whose visit has already completed. The removal will have no effect. To remove a parent node, do so from the parent's own visitor."),this.#r=!0}_getReplacementNode(){return this.#n}_wasReplaced(){return this.#s}_reset(){this.#e=!1,this.#t=!1,this.#r=!1,this.#s=!1,this.#n=void 0}_markStale(){this.#o=!0}}class Ae extends AggregateError{constructor(e,t,r){super(e,t,r),this.name=this.constructor.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const Te=Ae;class Oe extends Error{static[Symbol.hasInstance](e){return super[Symbol.hasInstance](e)||Function.prototype[Symbol.hasInstance].call(Te,e)}constructor(e,t){super(e,t),this.name=this.constructor.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const Se=Oe;const Ie=class extends Se{constructor(e,t){if(super(e,t),null!=t&&"object"==typeof t){const{cause:e,...r}=t;Object.assign(this,r)}}};function Ee(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,r){return t.apply(this,arguments)};case 3:return function(e,r,s){return t.apply(this,arguments)};case 4:return function(e,r,s,n){return t.apply(this,arguments)};case 5:return function(e,r,s,n,o){return t.apply(this,arguments)};case 6:return function(e,r,s,n,o,i){return t.apply(this,arguments)};case 7:return function(e,r,s,n,o,i,c){return t.apply(this,arguments)};case 8:return function(e,r,s,n,o,i,c,a){return t.apply(this,arguments)};case 9:return function(e,r,s,n,o,i,c,a,l){return t.apply(this,arguments)};case 10:return function(e,r,s,n,o,i,c,a,l,u){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}function Ce(e,t,s){return function(){for(var n=[],o=0,i=e,c=0,a=!1;c<t.length||o<arguments.length;){var l;c<t.length&&(!r(t[c])||o>=arguments.length)?l=t[c]:(l=arguments[o],o+=1),n[c]=l,r(l)?a=!0:i-=1,c+=1}return!a&&i<=0?s.apply(this,n):Ee(Math.max(0,i),Ce(e,n,s))}}var Fe=n(function(e,t){return 1===e?s(t):Ee(e,Ce(e,[],t))});const Me=Fe;function je(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t||"[object GeneratorFunction]"===t||"[object AsyncGeneratorFunction]"===t}const De=n(function(e,t){return e&&t});function Be(e,t,r){for(var s=0,n=r.length;s<n;)t=e(t,r[s]),s+=1;return t}const Ne=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};const Pe=s(function(e){return!!Ne(e)||!!e&&("object"==typeof e&&(!function(e){return"[object String]"===Object.prototype.toString.call(e)}(e)&&(0===e.length||e.length>0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))});var qe="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function Le(e,t,r){return function(s,n,o){if(Pe(o))return e(s,n,o);if(null==o)return n;if("function"==typeof o["fantasy-land/reduce"])return t(s,n,o,"fantasy-land/reduce");if(null!=o[qe])return r(s,n,o[qe]());if("function"==typeof o.next)return r(s,n,o);if("function"==typeof o.reduce)return t(s,n,o,"reduce");throw new TypeError("reduce: list must be array or iterable")}}function _e(e,t,r){for(var s=r.next();!s.done;)t=e(t,s.value),s=r.next();return t}function Ue(e,t,r,s){return r[s](e,t)}const He=Le(Be,Ue,_e);function Ge(e,t,r){return function(){if(0===arguments.length)return r();var s=arguments[arguments.length-1];if(!Ne(s)){for(var n=0;n<e.length;){if("function"==typeof s[e[n]])return s[e[n]].apply(s,Array.prototype.slice.call(arguments,0,-1));n+=1}if(function(e){return null!=e&&"function"==typeof e["@@transducer/step"]}(s))return t.apply(null,Array.prototype.slice.call(arguments,0,-1))(s)}return r.apply(this,arguments)}}function ze(e,t){for(var r=0,s=t.length,n=Array(s);r<s;)n[r]=e(t[r]),r+=1;return n}const Re=function(){return this.xf["@@transducer/init"]()},$e=function(e){return this.xf["@@transducer/result"](e)};var Ve=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=Re,e.prototype["@@transducer/result"]=$e,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}();var Xe=n(Ge(["fantasy-land/map","map"],function(e){return function(t){return new Ve(e,t)}},function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return Me(t.length,function(){return e.call(this,t.apply(this,arguments))});case"[object Object]":return Be(function(r,s){return r[s]=e(t[s]),r},{},m(t));default:return ze(e,t)}}));const We=Xe;const Ye=n(function(e,t){return"function"==typeof t["fantasy-land/ap"]?t["fantasy-land/ap"](e):"function"==typeof e.ap?e.ap(t):"function"==typeof e?function(r){return e(r)(t(r))}:He(function(e,r){return function(e,t){var r;t=t||[];var s=(e=e||[]).length,n=t.length,o=[];for(r=0;r<s;)o[o.length]=e[r],r+=1;for(r=0;r<n;)o[o.length]=t[r],r+=1;return o}(e,We(r,t))},[],e)});var Ke=n(function(e,t){var r=Me(e,t);return Me(e,function(){return Be(Ye,We(r,arguments[0]),Array.prototype.slice.call(arguments,1))})});const Qe=Ke;var Je=s(function(e){return Qe(e.length,e)});const Ze=Je;const et=n(function(e,t){return je(e)?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:Ze(De)(e,t)});function tt(e,t){return function(){return t.call(this,e.apply(this,arguments))}}function rt(e){return function t(o,i,c){switch(arguments.length){case 0:return t;case 1:return r(o)?t:n(function(t,r){return e(o,t,r)});case 2:return r(o)&&r(i)?t:r(o)?n(function(t,r){return e(t,i,r)}):r(i)?n(function(t,r){return e(o,t,r)}):s(function(t){return e(o,i,t)});default:return r(o)&&r(i)&&r(c)?t:r(o)&&r(i)?n(function(t,r){return e(t,r,c)}):r(o)&&r(c)?n(function(t,r){return e(t,i,r)}):r(i)&&r(c)?n(function(t,r){return e(o,t,r)}):r(o)?s(function(t){return e(t,i,c)}):r(i)?s(function(t){return e(o,t,c)}):r(c)?s(function(t){return e(o,i,t)}):e(o,i,c)}}}function st(e,t,r){for(var s=0,n=r.length;s<n;){if((t=e["@@transducer/step"](t,r[s]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}s+=1}return e["@@transducer/result"](t)}var nt=n(function(e,t){return Ee(e.length,function(){return e.apply(t,arguments)})});const ot=nt;function it(e,t,r){for(var s=r.next();!s.done;){if((t=e["@@transducer/step"](t,s.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}s=r.next()}return e["@@transducer/result"](t)}function ct(e,t,r,s){return e["@@transducer/result"](r[s](ot(e["@@transducer/step"],e),t))}const at=Le(st,ct,it);var lt=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();var ut=rt(function(e,t,r){return at("function"==typeof e?function(e){return new lt(e)}(e):e,t,r)});const pt=ut;function dt(e,t){return function(){var r=arguments.length;if(0===r)return t();var s=arguments[r-1];return Ne(s)||"function"!=typeof s[e]?t.apply(this,arguments):s[e].apply(s,Array.prototype.slice.call(arguments,0,r-1))}}const ht=s(dt("tail",rt(dt("slice",function(e,t,r){return Array.prototype.slice.call(r,e,t)}))(1,1/0)));function ft(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return Ee(arguments[0].length,pt(tt,arguments[0],ht(arguments)))}function yt(e,t){return function(e,t,r){var s,n;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(s=1/t;r<e.length;){if(0===(n=e[r])&&1/n===s)return r;r+=1}return-1}if(t!=t){for(;r<e.length;){if("number"==typeof(n=e[r])&&n!=n)return r;r+=1}return-1}return e.indexOf(t,r);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,r);case"object":if(null===t)return e.indexOf(t,r)}for(;r<e.length;){if(w(e[r],t))return r;r+=1}return-1}(t,e,0)>=0}function mt(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var gt=function(e){return(e<10?"0":"")+e};const xt="function"==typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+gt(e.getUTCMonth()+1)+"-"+gt(e.getUTCDate())+"T"+gt(e.getUTCHours())+":"+gt(e.getUTCMinutes())+":"+gt(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};var bt=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=Re,e.prototype["@@transducer/result"]=$e,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):e},e}();function wt(e){return function(t){return new bt(e,t)}}var vt=n(Ge(["fantasy-land/filter","filter"],wt,function(e,t){return r=t,"[object Object]"===Object.prototype.toString.call(r)?Be(function(r,s){return e(t[s])&&(r[s]=t[s]),r},{},m(t)):function(e){return"[object Map]"===Object.prototype.toString.call(e)}(t)?function(e,t){for(var r=new Map,s=t.entries(),n=s.next();!n.done;)e(n.value[1])&&r.set(n.value[0],n.value[1]),n=s.next();return r}(e,t):function(e,t){for(var r=0,s=t.length,n=[];r<s;)e(t[r])&&(n[n.length]=t[r]),r+=1;return n}(e,t);var r}));const kt=vt;const At=n(function(e,t){return kt((r=e,function(){return!r.apply(this,arguments)}),t);var r});function Tt(e,t){var r=function(r){var s=t.concat([e]);return yt(r,s)?"<Circular>":Tt(r,s)},s=function(e,t){return ze(function(t){return mt(t)+": "+r(e[t])},t.slice().sort())};switch(Object.prototype.toString.call(e)){case"[object Arguments]":return"(function() { return arguments; }("+ze(r,e).join(", ")+"))";case"[object Array]":return"["+ze(r,e).concat(s(e,At(function(e){return/^\d+$/.test(e)},m(e)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof e?"new Boolean("+r(e.valueOf())+")":e.toString();case"[object Date]":return"new Date("+(isNaN(e.valueOf())?r(NaN):mt(xt(e)))+")";case"[object Map]":return"new Map("+r(Array.from(e))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof e?"new Number("+r(e.valueOf())+")":1/e==-1/0?"-0":e.toString(10);case"[object Set]":return"new Set("+r(Array.from(e).sort())+")";case"[object String]":return"object"==typeof e?"new String("+r(e.valueOf())+")":mt(e);case"[object Undefined]":return"undefined";default:if("function"==typeof e.toString){var n=e.toString();if("[object Object]"!==n)return n}return"{"+s(e,m(e)).join(", ")+"}"}}const Ot=s(function(e){return Tt(e,[])});const St=n(function(e,t){return e||t});const It=n(function(e,t){return je(e)?function(){return e.apply(this,arguments)||t.apply(this,arguments)}:Ze(St)(e,t)});const Et=Ze(s(function(e){return!e}))(w(null));const Ct=n(function(e,t){if(e===t)return t;function r(e,t){if(e>t!=t>e)return t>e?t:e}var s=r(e,t);if(void 0!==s)return s;var n=r(typeof e,typeof t);if(void 0!==n)return n===typeof e?e:t;var o=Ot(e),i=r(o,Ot(t));return void 0!==i&&i===o?e:t}),Ft=Number.isInteger||function(e){return(e|0)===e};const Mt=n(function(e,t){var r,s;if(null!=t)return Ft(e)?(s=t)[(r=e)<0?s.length+r:r]:t[e]});const jt=n(function(e,t){return We(Mt(e),t)});const Dt=s(function(e){return Me(pt(Ct,0,jt("length",e)),function(){for(var t=0,r=e.length;t<r;){if(e[t].apply(this,arguments))return!0;t+=1}return!1})});var Bt=function(e,t){switch(arguments.length){case 0:return Bt;case 1:return function t(r){return 0===arguments.length?t:a(e,r)};default:return a(e,t)}};const Nt=Bt;const Pt=Me(1,ft(g,Nt("GeneratorFunction")));const qt=Me(1,ft(g,Nt("AsyncFunction")));var Lt=Dt([ft(g,Nt("Function")),Pt,qt]);function _t(e){return _t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_t(e)}var Ut=Me(1,et(Et,It(function(e){return"object"===_t(e)},Lt)));const Ht=Me(1,et(Ut,ft(Ot,w("[object Promise]"))));const Gt=e=>"number"==typeof e.startLine&&"number"==typeof e.startCharacter&&"number"==typeof e.startOffset&&"number"==typeof e.endLine&&"number"==typeof e.endCharacter&&"number"==typeof e.endOffset;class zt extends j{constructor(e,t,r){super(e,t,r),this.element="sourceMap"}static transfer(e,t){t.startLine=e.startLine,t.startCharacter=e.startCharacter,t.startOffset=e.startOffset,t.endLine=e.endLine,t.endCharacter=e.endCharacter,t.endOffset=e.endOffset}static from(e){const{startLine:t,startCharacter:r,startOffset:s,endLine:n,endCharacter:o,endOffset:i}=e;if("number"!=typeof t||"number"!=typeof r||"number"!=typeof s||"number"!=typeof n||"number"!=typeof o||"number"!=typeof i)return;const c="sm1:"+[t,r,s,n,o,i].map($t).join("");const a=new zt(c);return a.startLine=t,a.startCharacter=r,a.startOffset=s,a.endLine=n,a.endCharacter=o,a.endOffset=i,a}applyTo(e){this.content&&([e.startLine,e.startCharacter,e.startOffset,e.endLine,e.endCharacter,e.endOffset]=function(e){const t=e.startsWith("sm1:")?e.slice(4):e,r=[];let s=0;for(let e=0;e<6;e++){const e=Vt(t,s);r.push(e.value),s=e.next}return r}(this.content))}}const Rt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function $t(e){let t=e>>>0,r="";do{let e=31&t;t>>>=5,0!==t&&(e|=32),r+=Rt[e]}while(0!==t);return r}function Vt(e,t=0){let r=0,s=0,n=t;for(;;){const t=e[n++],o=Rt.indexOf(t);if(-1===o)throw new Error(`Invalid Base64 VLQ char: ${t}`);if(r|=(31&o)<<s,s+=5,!!!(32&o))break}return{value:r>>>0,next:n}}const Xt=zt;const Wt=class extends Ie{value;constructor(e,t){super(e,t),void 0!==t&&(this.value=t.value)}};const Yt=class extends Wt{};const Kt=class extends Wt{},Qt=(e,t)=>{const{visited:r=new WeakMap}=t,s={...t,visited:r};if(r.has(e))return r.get(e);const n=tr(e);r.set(e,n);const{content:o}=e;return Array.isArray(o)?n.content=o.map(e=>Qt(e,s)):L(o)?n.content=Qt(o,s):n.content=o instanceof S?Jt(o,s):o,n},Jt=(e,t)=>{const{visited:r=new WeakMap}=t,s={...t,visited:r};if(r.has(e))return r.get(e);const{key:n,value:o}=e,i=void 0!==n?Qt(n,s):void 0,c=void 0!==o?Qt(o,s):void 0,a=new S(i,c);return r.set(e,a),a},Zt=(e,t={})=>{if(e instanceof S)return Jt(e,t);if(e instanceof E)return((e,t)=>{const{visited:r=new WeakMap}=t,s={...t,visited:r};if(r.has(e))return r.get(e);const n=[...e].map(e=>Qt(e,s)),o=new E(n);return r.set(e,o),o})(e,t);if(L(e))return Qt(e,t);throw new Yt("Value provided to cloneDeep function couldn't be cloned",{value:e})};Zt.safe=e=>{try{return Zt(e)}catch{return e}};const er=e=>{const{key:t,value:r}=e;return new S(t,r)},tr=e=>{const t=new(0,e.constructor);t.element=e.element,e.isMetaEmpty||(t.meta=e.meta.cloneDeep()),e.isAttributesEmpty||(t.attributes=Zt(e.attributes)),Gt(e)&&Xt.transfer(e,t),(e=>void 0!==e.style)(e)&&(t.style=A(e.style));const{content:r}=e;return L(r)?t.content=tr(r):Array.isArray(r)?t.content=[...r]:t.content=r instanceof S?er(r):r,t},rr=e=>{if(e instanceof S)return er(e);if(e instanceof E)return(e=>{const t=[...e];return new E(t)})(e);if(L(e))return tr(e);throw new Kt("Value provided to cloneShallow function couldn't be cloned",{value:e})};rr.safe=e=>{try{return rr(e)}catch{return e}};const sr=e=>{const t=e?.element;return void 0===t||"element"===t?"Element":`${t.charAt(0).toUpperCase()}${t.slice(1)}Element`},nr=e=>{const t=e.primitive();return void 0===t||"element"===t?"Element":`${t.charAt(0).toUpperCase()}${t.slice(1)}Element`},or=e=>L(e),ir=e=>rr(e),cr=(e,t,r)=>{G(e)?e.value=r:Array.isArray(e)?e[t]=null===r?void 0:r:null===r?delete e[t]:e[t]=r},ar=e=>G(e)?["key","value"]:U(e)||H(e)?["content"]:[],lr=(e,t)=>{if(void 0!==e[t])return e[t];const r=t.length;for(const s in e){if(!s.includes("|"))continue;const n=s.indexOf(t);if(-1===n)continue;const o=0===n||"|"===s[n-1],i=n+r===s.length||"|"===s[n+r];if(o&&i)return e[s]}},ur=(e,t,r)=>{if(void 0===t)return null;const s=e,n=r?"leave":"enter",o=lr(s,t);if(!r&&"function"==typeof o)return o;if(null!=o){const e=o[n];if("function"==typeof e)return e}const i=s[n];if("function"==typeof i)return i;if(null!=i){const e=lr(i,t);if("function"==typeof e)return e}return null},pr=(e,t={})=>{const{visitFnGetter:r=ur,nodeTypeGetter:s=sr,exposeEdits:n=!1}=t,o=Symbol("internal-skip"),i=Symbol("break"),c=new Array(e.length).fill(o);return{enter(t){let a=t.node,l=!1;for(let u=0;u<e.length;u+=1)if(c[u]===o){const o=r(e[u],s(a),!1);if("function"==typeof o){const r=hr(t,a),s=o.call(e[u],r);if(Ht(s))throw new Ie("Async visitor not supported in sync mode",{visitor:e[u],visitFn:o});if(r.shouldStop&&(c[u]=i),r.shouldSkip&&(c[u]=a),r.removed)return void t.remove();if(r._wasReplaced()){const e=r._getReplacementNode();if(!n)return t.replaceWith(e),e;a=e,l=!0}else if(void 0!==s){if(!n)return t.replaceWith(s),s;a=s,l=!0}}}if(c.every(e=>e===i)&&t.stop(),l)return t.replaceWith(a),a},leave(t){const n=t.node;for(let a=0;a<e.length;a+=1)if(c[a]===o){const o=r(e[a],s(n),!0);if("function"==typeof o){const r=hr(t,n),s=o.call(e[a],r);if(Ht(s))throw new Ie("Async visitor not supported in sync mode",{visitor:e[a],visitFn:o});if(r.shouldStop&&(c[a]=i),r.removed)return void t.remove();if(r._wasReplaced()){const e=r._getReplacementNode();return t.replaceWith(e),e}if(void 0!==s)return t.replaceWith(s),s}}else c[a]===n&&(c[a]=o);c.every(e=>e===i)&&t.stop()}}},dr=(e,t={})=>{const{visitFnGetter:r=ur,nodeTypeGetter:s=sr,exposeEdits:n=!1}=t,o=Symbol("internal-skip"),i=Symbol("break"),c=new Array(e.length).fill(o);return{async enter(t){let a=t.node,l=!1;for(let u=0;u<e.length;u+=1)if(c[u]===o){const o=r(e[u],s(a),!1);if("function"==typeof o){const r=hr(t,a),s=await o.call(e[u],r);if(r.shouldStop&&(c[u]=i),r.shouldSkip&&(c[u]=a),r.removed)return void t.remove();if(r._wasReplaced()){const e=r._getReplacementNode();if(!n)return t.replaceWith(e),e;a=e,l=!0}else if(void 0!==s){if(!n)return t.replaceWith(s),s;a=s,l=!0}}}if(c.every(e=>e===i)&&t.stop(),l)return t.replaceWith(a),a},async leave(t){const n=t.node;for(let a=0;a<e.length;a+=1)if(c[a]===o){const o=r(e[a],s(n),!0);if("function"==typeof o){const r=hr(t,n),s=await o.call(e[a],r);if(r.shouldStop&&(c[a]=i),r.removed)return void t.remove();if(r._wasReplaced()){const e=r._getReplacementNode();return t.replaceWith(e),e}if(void 0!==s)return t.replaceWith(s),s}}else c[a]===n&&(c[a]=o);c.every(e=>e===i)&&t.stop()}}};function hr(e,t){return new ke(t,e.parent,e.parentPath,e.key,e.inList)}function*fr(e,t,r){const{keyMap:s,state:n,nodeTypeGetter:o,nodePredicate:i,nodeCloneFn:c,detectCycles:a,mutable:l,mutationFn:u}=r,p="function"==typeof s;let d,h,f=Array.isArray(e),y=[e],m=-1,g=[],x=e,b=null,w=null;const v=[];do{m+=1;const e=m===y.length;let r;const k=e&&0!==g.length;if(e){if(r=0===v.length?void 0:b?.key,x=h,h=v.pop(),w=b?.parentPath?.parentPath??null,k)if(l)for(const[e,t]of g)u(x,e,t);else if(f){x=x.slice();let e=0;for(const[t,r]of g){const s=t-e;null===r?(x.splice(s,1),e+=1):x[s]=r}}else{x=c(x);for(const[e,t]of g)x[e]=t}if(void 0!==d){m=d.index,y=d.keys,g=d.edits;const e=d.inArray;if(w=d.parentPath,d=d.prev,k&&!l){const t=e?m:y[m];g.push([t,x])}f=e}}else if(void 0!==h&&(r=f?m:y[m],x=h[r],void 0===x))continue;if(!Array.isArray(x)){if(!i(x))throw new Ie(`Invalid AST Node: ${String(x)}`,{node:x});if(a&&v.includes(x))continue;b=new ke(x,h,w,r,f);const s=ur(t,o(x),e);if(s){for(const[e,r]of Object.entries(n))t[e]=r;const o=yield{visitFn:s,path:b,isLeaving:e};if(b.shouldStop)break;if(b.shouldSkip&&!e)continue;if(b.removed){if(g.push([r,null]),!e)continue}else if(b._wasReplaced()){const t=b._getReplacementNode();if(g.push([r,t]),!e){if(!i(t))continue;x=t}}else if(void 0!==o&&(g.push([r,o]),!e)){if(!i(o))continue;x=o}b._markStale()}}if(!e){if(d={inArray:f,index:m,keys:y,edits:g,parentPath:w,prev:d},f=Array.isArray(x),f)y=x;else if(p)y=s(x);else{const e=o(x);y=void 0!==e?s[e]??[]:[]}m=-1,g=[],void 0!==h&&v.push(h),h=x,w=b}}while(void 0!==d);return 0!==g.length?g.at(-1)[1]:e}pr[Symbol.for("nodejs.util.promisify.custom")]=dr;const yr=(e,t,r={})=>{const s=fr(e,t,{keyMap:r.keyMap??ar,state:r.state??{},nodeTypeGetter:r.nodeTypeGetter??sr,nodePredicate:r.nodePredicate??or,nodeCloneFn:r.nodeCloneFn??ir,detectCycles:r.detectCycles??!0,mutable:r.mutable??!1,mutationFn:r.mutationFn??cr});let n=s.next();for(;!n.done;){const e=n.value,r=e.visitFn.call(t,e.path);if(Ht(r))throw new Ie("Async visitor not supported in sync mode",{visitor:t,visitFn:e.visitFn});n=s.next(r)}return n.value},mr=async(e,t,r={})=>{const s=fr(e,t,{keyMap:r.keyMap??ar,state:r.state??{},nodeTypeGetter:r.nodeTypeGetter??sr,nodePredicate:r.nodePredicate??or,nodeCloneFn:r.nodeCloneFn??ir,detectCycles:r.detectCycles??!0,mutable:r.mutable??!1,mutationFn:r.mutationFn??cr});let n=s.next();for(;!n.done;){const e=n.value,r=await e.visitFn.call(t,e.path);n=s.next(r)}return n.value};yr[Symbol.for("nodejs.util.promisify.custom")]=mr;const gr=(e,t)=>{const r=[];return yr(e,{enter(e){t(e)&&r.push(e)}}),r},xr=(e,t)=>{let r;return yr(e,{enter(e){t(e)&&(r=e,e.stop())}}),r},br=(e,t)=>void 0!==xr(e,t),wr=(e,t)=>gr(e,e=>!t(e)),vr=(e,t)=>{let r,s;"function"==typeof t?(r=t,s=()=>!0):(r=t.callback??(()=>{}),s=t.predicate??(()=>!0)),yr(e,{enter(e){s(e)&&r(e)}})},kr=e=>{const t=new WeakMap;return yr(e,{enter(e){t.set(e.node,e.parentPath?.node)}}),t},Ar=(e,t)=>{let r,s;"number"==typeof t?(r=t,s=!1):(r=t.offset??0,s=t.includeRightBound??!1);const n=[];return yr(e,{enter(e){const t=e.node;if(!Gt(t))return;const o=t.startOffset,i=t.endOffset;r>=o&&(r<i||s&&r<=i)?n.push(e):e.skip()}}),n.at(-1)};return ke.prototype.traverse=function(e,t){return yr(this.node,e,t)},ke.prototype.traverseAsync=function(e,t){return mr(this.node,e,t)},t})());
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.apidomTraverse=t():e.apidomTraverse=t()}(self,()=>(()=>{"use strict";var e={d:(t,r)=>{for(var s in r)e.o(r,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:r[s]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};function r(e){return null!=e&&"object"==typeof e&&!0===e["@@functional/placeholder"]}function s(e){return function t(s){return 0===arguments.length||r(s)?t:e.apply(this,arguments)}}function n(e){return function t(n,o){switch(arguments.length){case 0:return t;case 1:return r(n)?t:s(function(t){return e(n,t)});default:return r(n)&&r(o)?t:r(n)?s(function(t){return e(t,o)}):r(o)?s(function(t){return e(n,t)}):e(n,o)}}}function o(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}function i(e,t,r){for(var s=0,n=r.length;s<n;){if(e(t,r[s]))return!0;s+=1}return!1}function c(e,t){return Object.prototype.hasOwnProperty.call(t,e)}e.r(t),e.d(t,{Path:()=>ve,cloneNode:()=>ir,filter:()=>gr,find:()=>xr,findAtOffset:()=>Ar,forEach:()=>kr,getNodeKeys:()=>ar,getNodePrimitiveType:()=>nr,getNodeType:()=>sr,getVisitFn:()=>ur,isNode:()=>or,mergeVisitors:()=>pr,mergeVisitorsAsync:()=>dr,mutateNode:()=>cr,parents:()=>vr,reject:()=>wr,some:()=>br,traverse:()=>yr,traverseAsync:()=>mr});const a="function"==typeof Object.is?Object.is:function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t};var l=Object.prototype.toString;const u=function(){return"[object Arguments]"===l.call(arguments)?function(e){return"[object Arguments]"===l.call(e)}:function(e){return c("callee",e)}}();var p=!{toString:null}.propertyIsEnumerable("toString"),d=["constructor","valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],h=function(){return arguments.propertyIsEnumerable("length")}(),f=function(e,t){for(var r=0;r<e.length;){if(e[r]===t)return!0;r+=1}return!1},y="function"!=typeof Object.keys||h?s(function(e){if(Object(e)!==e)return[];var t,r,s=[],n=h&&u(e);for(t in e)!c(t,e)||n&&"length"===t||(s[s.length]=t);if(p)for(r=d.length-1;r>=0;)c(t=d[r],e)&&!f(s,t)&&(s[s.length]=t),r-=1;return s}):s(function(e){return Object(e)!==e?[]:Object.keys(e)});const m=y;const g=s(function(e){return null===e?"Null":void 0===e?"Undefined":Object.prototype.toString.call(e).slice(8,-1)});function x(e,t,r,s){var n=o(e);function c(e,t){return b(e,t,r.slice(),s.slice())}return!i(function(e,t){return!i(c,t,e)},o(t),n)}function b(e,t,r,s){if(a(e,t))return!0;var n=g(e);if(n!==g(t))return!1;if("function"==typeof e["fantasy-land/equals"]||"function"==typeof t["fantasy-land/equals"])return"function"==typeof e["fantasy-land/equals"]&&e["fantasy-land/equals"](t)&&"function"==typeof t["fantasy-land/equals"]&&t["fantasy-land/equals"](e);if("function"==typeof e.equals||"function"==typeof t.equals)return"function"==typeof e.equals&&e.equals(t)&&"function"==typeof t.equals&&t.equals(e);switch(n){case"Arguments":case"Array":case"Object":if("function"==typeof e.constructor&&"Promise"===function(e){var t=String(e).match(/^function (\w*)/);return null==t?"":t[1]}(e.constructor))return e===t;break;case"Boolean":case"Number":case"String":if(typeof e!=typeof t||!a(e.valueOf(),t.valueOf()))return!1;break;case"Date":if(!a(e.valueOf(),t.valueOf()))return!1;break;case"Error":return e.name===t.name&&e.message===t.message;case"RegExp":if(e.source!==t.source||e.global!==t.global||e.ignoreCase!==t.ignoreCase||e.multiline!==t.multiline||e.sticky!==t.sticky||e.unicode!==t.unicode)return!1}for(var o=r.length-1;o>=0;){if(r[o]===e)return s[o]===t;o-=1}switch(n){case"Map":return e.size===t.size&&x(e.entries(),t.entries(),r.concat([e]),s.concat([t]));case"Set":return e.size===t.size&&x(e.values(),t.values(),r.concat([e]),s.concat([t]));case"Arguments":case"Array":case"Object":case"Boolean":case"Number":case"String":case"Date":case"Error":case"RegExp":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"ArrayBuffer":break;default:return!1}var i=m(e);if(i.length!==m(t).length)return!1;var l=r.concat([e]),u=s.concat([t]);for(o=i.length-1;o>=0;){var p=i[o];if(!c(p,t)||!b(t[p],e[p],l,u))return!1;o-=1}return!0}const w=n(function(e,t){return b(e,t,[],[])});function k(e,t,r){if(r||(r=new v),function(e){var t=typeof e;return null==e||"object"!=t&&"function"!=t}(e))return e;var s,n=function(s){var n=r.get(e);if(n)return n;for(var o in r.set(e,s),e)Object.prototype.hasOwnProperty.call(e,o)&&(s[o]=t?k(e[o],!0,r):e[o]);return s};switch(g(e)){case"Object":return n(Object.create(Object.getPrototypeOf(e)));case"Array":return n(Array(e.length));case"Date":return new Date(e.valueOf());case"RegExp":return s=e,new RegExp(s.source,s.flags?s.flags:(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiline?"m":"")+(s.sticky?"y":"")+(s.unicode?"u":"")+(s.dotAll?"s":""));case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":return e.slice();default:return e}}var v=function(){function e(){this.map={},this.length=0}return e.prototype.set=function(e,t){var r=this.hash(e),s=this.map[r];s||(this.map[r]=s=[]),s.push([e,t]),this.length+=1},e.prototype.hash=function(e){var t=[];for(var r in e)t.push(Object.prototype.toString.call(e[r]));return t.join()},e.prototype.get=function(e){if(this.length<=180)for(var t in this.map)for(var r=this.map[t],s=0;s<r.length;s+=1){if((o=r[s])[0]===e)return o[1]}else{var n=this.hash(e);if(r=this.map[n])for(s=0;s<r.length;s+=1){var o;if((o=r[s])[0]===e)return o[1]}}},e}();const A=s(function(e){return null!=e&&"function"==typeof e.clone?e.clone():k(e,!0)});class T{get(e){return this[e]}set(e,t){this[e]=t}hasKey(e){return Object.hasOwn(this,e)}keys(){return Object.keys(this)}remove(e){delete this[e]}get isEmpty(){return 0===Object.keys(this).length}get isFrozen(){return Object.isFrozen(this)}freeze(){for(const e of Object.values(this))e instanceof this.Element?e.freeze():(Array.isArray(e)||null!==e&&"object"==typeof e)&&Object.freeze(e);Object.freeze(this)}cloneShallow(){const e=new T;return Object.assign(e,this),e}merge(e){const t=this.cloneShallow();for(const[r,s]of Object.entries(e)){const e=t.get(r);Array.isArray(e)&&Array.isArray(s)?t.set(r,[...e,...s]):t.set(r,s)}return t}cloneDeep(){const e=new T;for(const[t,r]of Object.entries(this))r instanceof this.Element?e.set(t,this.cloneDeepElement(r)):e.set(t,A(r));return e}}const O=T;const S=class{key;value;constructor(e,t){this.key=e,this.value=t}toValue(){return{key:this.key?.toValue(),value:this.value?.toValue()}}};class I{elements;constructor(e){this.elements=e??[]}toValue(){return this.elements.map(e=>({key:e.key?.toValue(),value:e.value?.toValue()}))}map(e,t){return this.elements.map(r=>{const s=r.value,n=r.key;if(void 0===s||void 0===n)throw new Error("MemberElement must have both key and value");return void 0!==t?e.call(t,s,n,r):e(s,n,r)})}filter(e,t){const r=this.elements.filter(r=>{const s=r.value,n=r.key;return void 0!==s&&void 0!==n&&(void 0!==t?e.call(t,s,n,r):e(s,n,r))});return new I(r)}reject(e,t){const r=[];for(const s of this.elements){const n=s.value,o=s.key;void 0!==n&&void 0!==o&&(e.call(t,n,o,s)||r.push(s))}return new I(r)}forEach(e,t){this.elements.forEach((r,s)=>{const n=r.value,o=r.key;void 0!==n&&void 0!==o&&(void 0!==t?e.call(t,n,o,r,s):e(n,o,r,s))})}find(e,t){return this.elements.find(r=>{const s=r.value,n=r.key;return void 0!==s&&void 0!==n&&(void 0!==t?e.call(t,s,n,r):e(s,n,r))})}keys(){return this.elements.map(e=>e.key?.toValue()).filter(e=>void 0!==e)}values(){return this.elements.map(e=>e.value?.toValue()).filter(e=>void 0!==e)}get length(){return this.elements.length}get isEmpty(){return 0===this.length}get first(){return this.elements[0]}get(e){return this.elements[e]}push(e){return this.elements.push(e),this}includesKey(e){return this.elements.some(t=>t.key?.equals(e))}[Symbol.iterator](){return this.elements[Symbol.iterator]()}}const E=I,C=Object.freeze(new O);class F{parent;style;startLine;startCharacter;startOffset;endLine;endCharacter;endOffset;_storedElement="element";_content;_meta;_attributes;constructor(e,t,r){void 0!==t&&(this.meta=t),void 0!==r&&(this.attributes=r),void 0!==e&&(this.content=e)}get element(){return this._storedElement}set element(e){this._storedElement=e}get content(){return this._content}set content(e){if(e instanceof F)this._content=e;else if(null!=e&&"string"!=typeof e&&"number"!=typeof e&&"boolean"!=typeof e&&"bigint"!=typeof e&&"symbol"!=typeof e)if(e instanceof S)this._content=e;else if(e instanceof E)this._content=e.elements;else if(Array.isArray(e))this._content=e.map(e=>this.refract(e));else{if("object"!=typeof e)throw new Error("Cannot set content to value of type "+typeof e);this._content=Object.entries(e).map(([e,t])=>new this.MemberElement(e,t))}else this._content=e}get meta(){if(!this._meta){if(this.isFrozen)return C;this._meta=new O}return this._meta}set meta(e){if(e instanceof O)this._meta=e;else if(e&&"object"==typeof e){const t=new O;Object.assign(t,e),this._meta=t}}get attributes(){if(!this._attributes){if(this.isFrozen){const e=new this.ObjectElement;return e.freeze(),e}this._attributes=new this.ObjectElement}return this._attributes}set attributes(e){e instanceof F?this._attributes=e:this.attributes.set(e??{})}get id(){if(!this.hasMetaProperty("id")){if(this.isFrozen)return"";this.setMetaProperty("id","")}return this.meta.get("id")}set id(e){this.setMetaProperty("id",e)}get classes(){if(!this.hasMetaProperty("classes")){if(this.isFrozen)return[];this.setMetaProperty("classes",[])}return this.meta.get("classes")}set classes(e){this.setMetaProperty("classes",e)}get links(){if(!this.hasMetaProperty("links")){if(this.isFrozen){const e=new this.ArrayElement;return e.freeze(),e}this.setMetaProperty("links",new this.ArrayElement)}return this.meta.get("links")}set links(e){this.setMetaProperty("links",e)}get children(){const{_content:e}=this;if(Array.isArray(e))return e;if(e instanceof S){const t=[];return e.key&&t.push(e.key),e.value&&t.push(e.value),t}return e instanceof F?[e]:[]}get isFrozen(){return Object.isFrozen(this)}freeze(){if(!this.isFrozen){this._meta&&this._meta.freeze(),this._attributes&&(this._attributes.parent=this,this._attributes.freeze());for(const e of this.children)e.parent=this,e.freeze();Array.isArray(this._content)&&Object.freeze(this._content),Object.freeze(this)}}toValue(){const{_content:e}=this;return e instanceof F||e instanceof S?e.toValue():Array.isArray(e)?e.map(e=>e.toValue()):e}equals(e){const t=e instanceof F?e.toValue():e;return w(this.toValue(),t)}primitive(){}set(e){return this.content=e,this}toRef(e){const t=this.id;if(""===t)throw new Error("Cannot create reference to an element without an ID");const r=new this.RefElement(t);return"string"==typeof e&&(r.path=this.refract(e)),r}getMetaProperty(e,t){return this.hasMetaProperty(e)?this.meta.get(e):t}setMetaProperty(e,t){this.meta.set(e,t)}hasMetaProperty(e){return void 0!==this._meta&&this._meta.hasKey(e)}get isMetaEmpty(){return void 0===this._meta||this._meta.isEmpty}getAttributesProperty(e,t){if(!this.hasAttributesProperty(e)){if(this.isFrozen){const e=this.refract(t);return e.freeze(),e}this.attributes.set(e,t)}return this.attributes.get(e)}setAttributesProperty(e,t){this.attributes.set(e,t)}hasAttributesProperty(e){return!this.isAttributesEmpty&&this.attributes.hasKey(e)}get isAttributesEmpty(){return void 0===this._attributes||this.attributes.isEmpty}}const M=F;const j=class extends M{constructor(e,t,r){super(e,t,r),this.element="string"}primitive(){return"string"}get length(){return this.content?.length??0}};class D extends M{constructor(e,t,r){super(e||[],t,r)}get length(){return this._content.length}get isEmpty(){return 0===this.length}get first(){return this._content[0]}get second(){return this._content[1]}get last(){return this._content.at(-1)}push(...e){for(const t of e)this._content.push(this.refract(t));return this}shift(){return this._content.shift()}unshift(e){this._content.unshift(this.refract(e))}includes(e){return this._content.some(t=>t.equals(e))}findElements(e,t){const r=t||{},s=!!r.recursive,n=void 0===r.results?[]:r.results;for(let t=0;t<this._content.length;t+=1){const r=this._content[t],o=r;s&&"function"==typeof o.findElements&&o.findElements(e,{results:n,recursive:s}),e(r,t,void 0)&&n.push(r)}return n}find(e){const t=this.findElements(e,{recursive:!0});return new this.ArrayElement(t)}findByElement(e){return this.find(t=>t.element===e)}findByClass(e){return this.find(t=>{const r=t.classes;return"function"==typeof r.includes&&r.includes(e)})}getById(e){return this.find(t=>t.id===e).first}concat(e){return new(0,this.constructor)(this._content.concat(e._content))}[Symbol.iterator](){return this._content[Symbol.iterator]()}}const B=D;const N=class extends B{constructor(e,t,r){super(e||[],t,r),this.element="array"}primitive(){return"array"}get(e){return this._content[e]}getValue(e){const t=this.get(e);if(t)return t.toValue()}set(e,t){return"number"==typeof e&&void 0!==t?this._content[e]=this.refract(t):this.content=e,this}remove(e){return this._content.splice(e,1)[0]??null}map(e,t){return this._content.map(e,t)}flatMap(e,t){return this._content.flatMap(e,t)}compactMap(e,t){const r=[];for(const s of this._content){const n=e.call(t,s);n&&r.push(n)}return r}filter(e,t){const r=this._content.filter(e,t);return new this.constructor(r)}reject(e,t){const r=[];for(const s of this._content)e.call(t,s)||r.push(s);return new this.constructor(r)}reduce(e,t){let r,s;void 0!==t?(r=0,s=this.refract(t)):(r=1,s=this.first);for(let t=r;t<this.length;t+=1){const r=e(s,this._content[t],t,this);s=void 0===r?r:this.refract(r)}return s}forEach(e,t){this._content.forEach((r,s)=>{e.call(t,r,s)})}empty(){return new this.constructor([])}};const P=class extends M{constructor(e,t,r,s){super(new S,r,s),this.element="member",void 0!==e&&(this.key=e),arguments.length>=2&&(this.value=t)}primitive(){return"member"}get key(){return this._content.key}set key(e){this._content.key=this.refract(e)}get value(){return this._content.value}set value(e){this._content.value=void 0===e?void 0:this.refract(e)}};const q=class extends B{constructor(e,t,r){super(e||[],t,r),this.element="object"}primitive(){return"object"}toValue(){return this._content.reduce((e,t)=>(e[t.key.toValue()]=t.value?t.value.toValue():void 0,e),{})}get(e){const t=this.getMember(e);if(t)return t.value}getValue(e){const t=this.get(e);if(t)return t.toValue()}getMember(e){if(void 0!==e)return this._content.find(t=>t.key.toValue()===e)}remove(e){let t=null;return this.content=this._content.filter(r=>r.key.toValue()!==e||(t=r,!1)),t}getKey(e){const t=this.getMember(e);if(t)return t.key}set(e,t){if("string"==typeof e){const r=this.getMember(e);r?r.value=t:this._content.push(new P(e,t))}else if("object"==typeof e&&!Array.isArray(e))for(const t of Object.keys(e))this.set(t,e[t]);return this}keys(){return this._content.map(e=>e.key.toValue())}values(){return this._content.map(e=>e.value.toValue())}hasKey(e){return this._content.some(t=>t.key.equals(e))}items(){return this._content.map(e=>[e.key.toValue(),e.value.toValue()])}map(e,t){return this._content.map(r=>e.call(t,r.value,r.key,r))}compactMap(e,t){const r=[];return this.forEach((s,n,o)=>{const i=e.call(t,s,n,o);i&&r.push(i)}),r}filter(e,t){return new E(this._content).filter(e,t)}reject(e,t){const r=[];for(const s of this._content)e.call(t,s.value,s.key,s)||r.push(s);return new E(r)}forEach(e,t){this._content.forEach(r=>e.call(t,r.value,r.key,r))}reduce(e,t){let r,s;void 0!==t?(r=0,s=this.refract(t)):(r=1,s=this._content[0]?.value);for(let t=r;t<this._content.length;t+=1){const r=this._content[t],n=e(s,r.value,r.key,r,this);s=void 0===n?n:this.refract(n)}return s}empty(){return new this.constructor([])}};const L=e=>e instanceof M,_=e=>e instanceof j,U=e=>e instanceof N,H=e=>e instanceof q,G=e=>e instanceof P,z=function(){const e=$,t=R,r=this,s="parser.js: Parser(): ";r.ast=void 0,r.stats=void 0,r.trace=void 0,r.callbacks=[];let n,o,i,c,a,l,u,p=0,d=0,h=0,f=0,y=0,m=new function(){this.state=e.ACTIVE,this.phraseLength=0,this.refresh=()=>{this.state=e.ACTIVE,this.phraseLength=0}};r.parse=(g,x,w,k)=>{const v=`${s}parse(): `;p=0,d=0,h=0,f=0,y=0,n=void 0,o=void 0,i=void 0,c=void 0,m.refresh(),a=void 0,l=void 0,u=void 0,c=t.stringToChars(w),n=g.rules,o=g.udts;const A=x.toLowerCase();let T;for(const e in n)if(n.hasOwnProperty(e)&&A===n[e].lower){T=n[e].index;break}if(void 0===T)throw new Error(`${v}start rule name '${startRule}' not recognized`);(()=>{const e=`${s}initializeCallbacks(): `;let t,i;for(a=[],l=[],t=0;t<n.length;t+=1)a[t]=void 0;for(t=0;t<o.length;t+=1)l[t]=void 0;const c=[];for(t=0;t<n.length;t+=1)c.push(n[t].lower);for(t=0;t<o.length;t+=1)c.push(o[t].lower);for(const s in r.callbacks)if(r.callbacks.hasOwnProperty(s)){if(t=c.indexOf(s.toLowerCase()),t<0)throw new Error(`${e}syntax callback '${s}' not a rule or udt name`);if(i=r.callbacks[s]?r.callbacks[s]:void 0,"function"!=typeof i&&void 0!==i)throw new Error(`${e}syntax callback[${s}] must be function reference or falsy)`);t<n.length?a[t]=i:l[t-n.length]=i}})(),r.trace&&r.trace.init(n,o,c),r.stats&&r.stats.init(n,o),r.ast&&r.ast.init(n,o,c),u=k,i=[{type:e.RNM,index:T}],b(0,0),i=void 0;let O=!1;switch(m.state){case e.ACTIVE:throw new Error(`${v}final state should never be 'ACTIVE'`);case e.NOMATCH:O=!1;break;case e.EMPTY:case e.MATCH:O=m.phraseLength===c.length;break;default:throw new Error("unrecognized state")}return{success:O,state:m.state,stateName:e.idName(m.state),length:c.length,matched:m.phraseLength,maxMatched:y,maxTreeDepth:h,nodeHits:f}};const g=(t,r,n,o)=>{if(r.phraseLength>n){let e=`${s}opRNM(${t.name}): callback function error: `;throw e+=`sysData.phraseLength: ${r.phraseLength}`,e+=` must be <= remaining chars: ${n}`,new Error(e)}switch(r.state){case e.ACTIVE:if(!o)throw new Error(`${s}opRNM(${t.name}): callback function return error. ACTIVE state not allowed.`);break;case e.EMPTY:r.phraseLength=0;break;case e.MATCH:0===r.phraseLength&&(r.state=e.EMPTY);break;case e.NOMATCH:r.phraseLength=0;break;default:throw new Error(`${s}opRNM(${t.name}): callback function return error. Unrecognized return state: ${r.state}`)}},x=(t,a)=>{let d,h,f;const y=i[t],g=o[y.index];m.UdtIndex=g.index,p||(f=r.ast&&r.ast.udtDefined(y.index),f&&(h=n.length+y.index,d=r.ast.getLength(),r.ast.down(h,g.name)));const x=c.length-a;l[y.index](m,c,a,u),((t,r,n)=>{if(r.phraseLength>n){let e=`${s}opUDT(${t.name}): callback function error: `;throw e+=`sysData.phraseLength: ${r.phraseLength}`,e+=` must be <= remaining chars: ${n}`,new Error(e)}switch(r.state){case e.ACTIVE:throw new Error(`${s}opUDT(${t.name}) ACTIVE state return not allowed.`);case e.EMPTY:if(!t.empty)throw new Error(`${s}opUDT(${t.name}) may not return EMPTY.`);r.phraseLength=0;break;case e.MATCH:if(0===r.phraseLength){if(!t.empty)throw new Error(`${s}opUDT(${t.name}) may not return EMPTY.`);r.state=e.EMPTY}break;case e.NOMATCH:r.phraseLength=0;break;default:throw new Error(`${s}opUDT(${t.name}): callback function return error. Unrecognized return state: ${r.state}`)}})(g,m,x),p||f&&(m.state===e.NOMATCH?r.ast.setLength(d):r.ast.up(h,g.name,a,m.phraseLength))},b=(t,o)=>{const l=`${s}opExecute(): `,w=i[t];switch(f+=1,d>h&&(h=d),d+=1,m.refresh(),r.trace&&r.trace.down(w,o),w.type){case e.ALT:((t,r)=>{const s=i[t];for(let t=0;t<s.children.length&&(b(s.children[t],r),m.state===e.NOMATCH);t+=1);})(t,o);break;case e.CAT:((t,s)=>{let n,o,c,a;const l=i[t];r.ast&&(o=r.ast.getLength()),n=!0,c=s,a=0;for(let t=0;t<l.children.length;t+=1){if(b(l.children[t],c),m.state===e.NOMATCH){n=!1;break}c+=m.phraseLength,a+=m.phraseLength}n?(m.state=0===a?e.EMPTY:e.MATCH,m.phraseLength=a):(m.state=e.NOMATCH,m.phraseLength=0,r.ast&&r.ast.setLength(o))})(t,o);break;case e.REP:((t,s)=>{let n,o,a,l;const u=i[t];if(0===u.max)return m.state=e.EMPTY,void(m.phraseLength=0);for(o=s,a=0,l=0,r.ast&&(n=r.ast.getLength());!(o>=c.length)&&(b(t+1,o),m.state!==e.NOMATCH)&&m.state!==e.EMPTY&&(l+=1,a+=m.phraseLength,o+=m.phraseLength,l!==u.max););m.state===e.EMPTY||l>=u.min?(m.state=0===a?e.EMPTY:e.MATCH,m.phraseLength=a):(m.state=e.NOMATCH,m.phraseLength=0,r.ast&&r.ast.setLength(n))})(t,o);break;case e.RNM:((t,s)=>{let o,l,d;const h=i[t],f=n[h.index],y=a[f.index];if(p||(l=r.ast&&r.ast.ruleDefined(h.index),l&&(o=r.ast.getLength(),r.ast.down(h.index,n[h.index].name))),y){const t=c.length-s;y(m,c,s,u),g(f,m,t,!0),m.state===e.ACTIVE&&(d=i,i=f.opcodes,b(0,s),i=d,y(m,c,s,u),g(f,m,t,!1))}else d=i,i=f.opcodes,b(0,s,m),i=d;p||l&&(m.state===e.NOMATCH?r.ast.setLength(o):r.ast.up(h.index,f.name,s,m.phraseLength))})(t,o);break;case e.TRG:((t,r)=>{const s=i[t];m.state=e.NOMATCH,r<c.length&&s.min<=c[r]&&c[r]<=s.max&&(m.state=e.MATCH,m.phraseLength=1)})(t,o);break;case e.TBS:((t,r)=>{const s=i[t],n=s.string.length;if(m.state=e.NOMATCH,r+n<=c.length){for(let e=0;e<n;e+=1)if(c[r+e]!==s.string[e])return;m.state=e.MATCH,m.phraseLength=n}})(t,o);break;case e.TLS:((t,r)=>{let s;const n=i[t];m.state=e.NOMATCH;const o=n.string.length;if(0!==o){if(r+o<=c.length){for(let e=0;e<o;e+=1)if(s=c[r+e],s>=65&&s<=90&&(s+=32),s!==n.string[e])return;m.state=e.MATCH,m.phraseLength=o}}else m.state=e.EMPTY})(t,o);break;case e.UDT:x(t,o);break;case e.AND:((t,r)=>{switch(p+=1,b(t+1,r),p-=1,m.phraseLength=0,m.state){case e.EMPTY:case e.MATCH:m.state=e.EMPTY;break;case e.NOMATCH:m.state=e.NOMATCH;break;default:throw new Error(`opAND: invalid state ${m.state}`)}})(t,o);break;case e.NOT:((t,r)=>{switch(p+=1,b(t+1,r),p-=1,m.phraseLength=0,m.state){case e.EMPTY:case e.MATCH:m.state=e.NOMATCH;break;case e.NOMATCH:m.state=e.EMPTY;break;default:throw new Error(`opNOT: invalid state ${m.state}`)}})(t,o);break;default:throw new Error(`${l}unrecognized operator`)}p||o+m.phraseLength>y&&(y=o+m.phraseLength),r.stats&&r.stats.collect(w,m),r.trace&&r.trace.up(w,m.state,o,m.phraseLength),d-=1}},R={stringToChars:e=>[...e].map(e=>e.codePointAt(0)),charsToString:(e,t,r)=>{let s=e;for(;!(void 0===t||t<0);){if(void 0===r){s=e.slice(t);break}if(r<=0)return"";s=e.slice(t,t+r);break}return String.fromCodePoint(...s)}},$={ALT:1,CAT:2,REP:3,RNM:4,TRG:5,TBS:6,TLS:7,UDT:11,AND:12,NOT:13,ACTIVE:100,MATCH:101,EMPTY:102,NOMATCH:103,SEM_PRE:200,SEM_POST:201,SEM_OK:300,idName:e=>{switch(e){case $.ALT:return"ALT";case $.CAT:return"CAT";case $.REP:return"REP";case $.RNM:return"RNM";case $.TRG:return"TRG";case $.TBS:return"TBS";case $.TLS:return"TLS";case $.UDT:return"UDT";case $.AND:return"AND";case $.NOT:return"NOT";case $.ACTIVE:return"ACTIVE";case $.EMPTY:return"EMPTY";case $.MATCH:return"MATCH";case $.NOMATCH:return"NOMATCH";case $.SEM_PRE:return"SEM_PRE";case $.SEM_POST:return"SEM_POST";case $.SEM_OK:return"SEM_OK";default:return"UNRECOGNIZED STATE"}}};function V(){this.grammarObject="grammarObject",this.rules=[],this.rules[0]={name:"json-pointer",lower:"json-pointer",index:0,isBkr:!1},this.rules[1]={name:"reference-token",lower:"reference-token",index:1,isBkr:!1},this.rules[2]={name:"unescaped",lower:"unescaped",index:2,isBkr:!1},this.rules[3]={name:"escaped",lower:"escaped",index:3,isBkr:!1},this.rules[4]={name:"array-location",lower:"array-location",index:4,isBkr:!1},this.rules[5]={name:"array-index",lower:"array-index",index:5,isBkr:!1},this.rules[6]={name:"array-dash",lower:"array-dash",index:6,isBkr:!1},this.rules[7]={name:"slash",lower:"slash",index:7,isBkr:!1},this.udts=[],this.rules[0].opcodes=[],this.rules[0].opcodes[0]={type:3,min:0,max:1/0},this.rules[0].opcodes[1]={type:2,children:[2,3]},this.rules[0].opcodes[2]={type:4,index:7},this.rules[0].opcodes[3]={type:4,index:1},this.rules[1].opcodes=[],this.rules[1].opcodes[0]={type:3,min:0,max:1/0},this.rules[1].opcodes[1]={type:1,children:[2,3]},this.rules[1].opcodes[2]={type:4,index:2},this.rules[1].opcodes[3]={type:4,index:3},this.rules[2].opcodes=[],this.rules[2].opcodes[0]={type:1,children:[1,2,3]},this.rules[2].opcodes[1]={type:5,min:0,max:46},this.rules[2].opcodes[2]={type:5,min:48,max:125},this.rules[2].opcodes[3]={type:5,min:127,max:1114111},this.rules[3].opcodes=[],this.rules[3].opcodes[0]={type:2,children:[1,2]},this.rules[3].opcodes[1]={type:7,string:[126]},this.rules[3].opcodes[2]={type:1,children:[3,4]},this.rules[3].opcodes[3]={type:7,string:[48]},this.rules[3].opcodes[4]={type:7,string:[49]},this.rules[4].opcodes=[],this.rules[4].opcodes[0]={type:1,children:[1,2]},this.rules[4].opcodes[1]={type:4,index:5},this.rules[4].opcodes[2]={type:4,index:6},this.rules[5].opcodes=[],this.rules[5].opcodes[0]={type:1,children:[1,2]},this.rules[5].opcodes[1]={type:6,string:[48]},this.rules[5].opcodes[2]={type:2,children:[3,4]},this.rules[5].opcodes[3]={type:5,min:49,max:57},this.rules[5].opcodes[4]={type:3,min:0,max:1/0},this.rules[5].opcodes[5]={type:5,min:48,max:57},this.rules[6].opcodes=[],this.rules[6].opcodes[0]={type:7,string:[45]},this.rules[7].opcodes=[],this.rules[7].opcodes[0]={type:7,string:[47]},this.toString=function(){let e="";return e+="; JavaScript Object Notation (JSON) Pointer ABNF syntax\n",e+="; https://datatracker.ietf.org/doc/html/rfc6901\n",e+="json-pointer = *( slash reference-token ) ; MODIFICATION: surrogate text rule used\n",e+="reference-token = *( unescaped / escaped )\n",e+="unescaped = %x00-2E / %x30-7D / %x7F-10FFFF\n",e+=" ; %x2F ('/') and %x7E ('~') are excluded from 'unescaped'\n",e+='escaped = "~" ( "0" / "1" )\n',e+=" ; representing '~' and '/', respectively\n",e+="\n",e+="; https://datatracker.ietf.org/doc/html/rfc6901#section-4\n",e+="array-location = array-index / array-dash\n",e+="array-index = %x30 / ( %x31-39 *(%x30-39) )\n",e+=' ; "0", or digits without a leading "0"\n',e+='array-dash = "-"\n',e+="\n",e+="; Surrogate named rules\n",e+='slash = "/"\n','; JavaScript Object Notation (JSON) Pointer ABNF syntax\n; https://datatracker.ietf.org/doc/html/rfc6901\njson-pointer = *( slash reference-token ) ; MODIFICATION: surrogate text rule used\nreference-token = *( unescaped / escaped )\nunescaped = %x00-2E / %x30-7D / %x7F-10FFFF\n ; %x2F (\'/\') and %x7E (\'~\') are excluded from \'unescaped\'\nescaped = "~" ( "0" / "1" )\n ; representing \'~\' and \'/\', respectively\n\n; https://datatracker.ietf.org/doc/html/rfc6901#section-4\narray-location = array-index / array-dash\narray-index = %x30 / ( %x31-39 *(%x30-39) )\n ; "0", or digits without a leading "0"\narray-dash = "-"\n\n; Surrogate named rules\nslash = "/"\n'}}class X extends Error{constructor(e,t=void 0){if(super(e,t),this.name=this.constructor.name,"string"==typeof e&&(this.message=e),"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack,null!=t&&"object"==typeof t&&Object.prototype.hasOwnProperty.call(t,"cause")&&!("cause"in this)){const{cause:e}=t;this.cause=e,e instanceof Error&&"stack"in e&&(this.stack=`${this.stack}\nCAUSE: ${e.stack}`)}if(null!=t&&"object"==typeof t){const{cause:e,...r}=t;Object.assign(this,r)}}}const W=X;new V;new V,new z,new V,new z,new V,new z,new V,new z;const Y=e=>{if("string"!=typeof e&&"number"!=typeof e)throw new TypeError("Reference token must be a string or number");return String(e).replace(/~/g,"~0").replace(/\//g,"~1")};const K=class extends W{},Q=e=>{if(!Array.isArray(e))throw new TypeError("Reference tokens must be a list of strings or numbers");try{return 0===e.length?"":`/${e.map(e=>{if("string"!=typeof e&&"number"!=typeof e)throw new TypeError("Reference token must be a string or number");return Y(String(e))}).join("/")}`}catch(t){throw new K("Unexpected error during JSON Pointer compilation",{cause:t,referenceTokens:e})}};class J extends Error{constructor(e,t=void 0){if(super(e,t),this.name=this.constructor.name,"string"==typeof e&&(this.message=e),"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error(e).stack,null!=t&&"object"==typeof t&&Object.hasOwn(t,"cause")&&!("cause"in this)){const{cause:e}=t;this.cause=e,e instanceof Error&&"stack"in e&&(this.stack=`${this.stack}\nCAUSE: ${e.stack}`)}if(null!=t&&"object"==typeof t){const{cause:e,...r}=t;Object.assign(this,r)}}}const Z=J;new function(){this.grammarObject="grammarObject",this.rules=[],this.rules[0]={name:"jsonpath-query",lower:"jsonpath-query",index:0,isBkr:!1},this.rules[1]={name:"segments",lower:"segments",index:1,isBkr:!1},this.rules[2]={name:"B",lower:"b",index:2,isBkr:!1},this.rules[3]={name:"S",lower:"s",index:3,isBkr:!1},this.rules[4]={name:"root-identifier",lower:"root-identifier",index:4,isBkr:!1},this.rules[5]={name:"selector",lower:"selector",index:5,isBkr:!1},this.rules[6]={name:"name-selector",lower:"name-selector",index:6,isBkr:!1},this.rules[7]={name:"string-literal",lower:"string-literal",index:7,isBkr:!1},this.rules[8]={name:"double-quoted",lower:"double-quoted",index:8,isBkr:!1},this.rules[9]={name:"single-quoted",lower:"single-quoted",index:9,isBkr:!1},this.rules[10]={name:"ESC",lower:"esc",index:10,isBkr:!1},this.rules[11]={name:"unescaped",lower:"unescaped",index:11,isBkr:!1},this.rules[12]={name:"escapable",lower:"escapable",index:12,isBkr:!1},this.rules[13]={name:"hexchar",lower:"hexchar",index:13,isBkr:!1},this.rules[14]={name:"non-surrogate",lower:"non-surrogate",index:14,isBkr:!1},this.rules[15]={name:"high-surrogate",lower:"high-surrogate",index:15,isBkr:!1},this.rules[16]={name:"low-surrogate",lower:"low-surrogate",index:16,isBkr:!1},this.rules[17]={name:"HEXDIG",lower:"hexdig",index:17,isBkr:!1},this.rules[18]={name:"wildcard-selector",lower:"wildcard-selector",index:18,isBkr:!1},this.rules[19]={name:"index-selector",lower:"index-selector",index:19,isBkr:!1},this.rules[20]={name:"int",lower:"int",index:20,isBkr:!1},this.rules[21]={name:"DIGIT1",lower:"digit1",index:21,isBkr:!1},this.rules[22]={name:"slice-selector",lower:"slice-selector",index:22,isBkr:!1},this.rules[23]={name:"start",lower:"start",index:23,isBkr:!1},this.rules[24]={name:"end",lower:"end",index:24,isBkr:!1},this.rules[25]={name:"step",lower:"step",index:25,isBkr:!1},this.rules[26]={name:"filter-selector",lower:"filter-selector",index:26,isBkr:!1},this.rules[27]={name:"logical-expr",lower:"logical-expr",index:27,isBkr:!1},this.rules[28]={name:"logical-or-expr",lower:"logical-or-expr",index:28,isBkr:!1},this.rules[29]={name:"logical-and-expr",lower:"logical-and-expr",index:29,isBkr:!1},this.rules[30]={name:"basic-expr",lower:"basic-expr",index:30,isBkr:!1},this.rules[31]={name:"paren-expr",lower:"paren-expr",index:31,isBkr:!1},this.rules[32]={name:"logical-not-op",lower:"logical-not-op",index:32,isBkr:!1},this.rules[33]={name:"test-expr",lower:"test-expr",index:33,isBkr:!1},this.rules[34]={name:"filter-query",lower:"filter-query",index:34,isBkr:!1},this.rules[35]={name:"rel-query",lower:"rel-query",index:35,isBkr:!1},this.rules[36]={name:"current-node-identifier",lower:"current-node-identifier",index:36,isBkr:!1},this.rules[37]={name:"comparison-expr",lower:"comparison-expr",index:37,isBkr:!1},this.rules[38]={name:"literal",lower:"literal",index:38,isBkr:!1},this.rules[39]={name:"comparable",lower:"comparable",index:39,isBkr:!1},this.rules[40]={name:"comparison-op",lower:"comparison-op",index:40,isBkr:!1},this.rules[41]={name:"singular-query",lower:"singular-query",index:41,isBkr:!1},this.rules[42]={name:"rel-singular-query",lower:"rel-singular-query",index:42,isBkr:!1},this.rules[43]={name:"abs-singular-query",lower:"abs-singular-query",index:43,isBkr:!1},this.rules[44]={name:"singular-query-segments",lower:"singular-query-segments",index:44,isBkr:!1},this.rules[45]={name:"name-segment",lower:"name-segment",index:45,isBkr:!1},this.rules[46]={name:"index-segment",lower:"index-segment",index:46,isBkr:!1},this.rules[47]={name:"number",lower:"number",index:47,isBkr:!1},this.rules[48]={name:"frac",lower:"frac",index:48,isBkr:!1},this.rules[49]={name:"exp",lower:"exp",index:49,isBkr:!1},this.rules[50]={name:"true",lower:"true",index:50,isBkr:!1},this.rules[51]={name:"false",lower:"false",index:51,isBkr:!1},this.rules[52]={name:"null",lower:"null",index:52,isBkr:!1},this.rules[53]={name:"function-name",lower:"function-name",index:53,isBkr:!1},this.rules[54]={name:"function-name-first",lower:"function-name-first",index:54,isBkr:!1},this.rules[55]={name:"function-name-char",lower:"function-name-char",index:55,isBkr:!1},this.rules[56]={name:"LCALPHA",lower:"lcalpha",index:56,isBkr:!1},this.rules[57]={name:"function-expr",lower:"function-expr",index:57,isBkr:!1},this.rules[58]={name:"function-argument",lower:"function-argument",index:58,isBkr:!1},this.rules[59]={name:"segment",lower:"segment",index:59,isBkr:!1},this.rules[60]={name:"child-segment",lower:"child-segment",index:60,isBkr:!1},this.rules[61]={name:"bracketed-selection",lower:"bracketed-selection",index:61,isBkr:!1},this.rules[62]={name:"member-name-shorthand",lower:"member-name-shorthand",index:62,isBkr:!1},this.rules[63]={name:"name-first",lower:"name-first",index:63,isBkr:!1},this.rules[64]={name:"name-char",lower:"name-char",index:64,isBkr:!1},this.rules[65]={name:"DIGIT",lower:"digit",index:65,isBkr:!1},this.rules[66]={name:"ALPHA",lower:"alpha",index:66,isBkr:!1},this.rules[67]={name:"descendant-segment",lower:"descendant-segment",index:67,isBkr:!1},this.rules[68]={name:"normalized-path",lower:"normalized-path",index:68,isBkr:!1},this.rules[69]={name:"normal-index-segment",lower:"normal-index-segment",index:69,isBkr:!1},this.rules[70]={name:"normal-selector",lower:"normal-selector",index:70,isBkr:!1},this.rules[71]={name:"normal-name-selector",lower:"normal-name-selector",index:71,isBkr:!1},this.rules[72]={name:"normal-single-quoted",lower:"normal-single-quoted",index:72,isBkr:!1},this.rules[73]={name:"normal-unescaped",lower:"normal-unescaped",index:73,isBkr:!1},this.rules[74]={name:"normal-escapable",lower:"normal-escapable",index:74,isBkr:!1},this.rules[75]={name:"normal-hexchar",lower:"normal-hexchar",index:75,isBkr:!1},this.rules[76]={name:"normal-HEXDIG",lower:"normal-hexdig",index:76,isBkr:!1},this.rules[77]={name:"normal-index-selector",lower:"normal-index-selector",index:77,isBkr:!1},this.rules[78]={name:"dot-prefix",lower:"dot-prefix",index:78,isBkr:!1},this.rules[79]={name:"double-dot-prefix",lower:"double-dot-prefix",index:79,isBkr:!1},this.rules[80]={name:"left-bracket",lower:"left-bracket",index:80,isBkr:!1},this.rules[81]={name:"right-bracket",lower:"right-bracket",index:81,isBkr:!1},this.rules[82]={name:"left-paren",lower:"left-paren",index:82,isBkr:!1},this.rules[83]={name:"right-paren",lower:"right-paren",index:83,isBkr:!1},this.rules[84]={name:"comma",lower:"comma",index:84,isBkr:!1},this.rules[85]={name:"colon",lower:"colon",index:85,isBkr:!1},this.rules[86]={name:"dquote",lower:"dquote",index:86,isBkr:!1},this.rules[87]={name:"squote",lower:"squote",index:87,isBkr:!1},this.rules[88]={name:"questionmark",lower:"questionmark",index:88,isBkr:!1},this.rules[89]={name:"disjunction",lower:"disjunction",index:89,isBkr:!1},this.rules[90]={name:"conjunction",lower:"conjunction",index:90,isBkr:!1},this.udts=[],this.rules[0].opcodes=[],this.rules[0].opcodes[0]={type:2,children:[1,2]},this.rules[0].opcodes[1]={type:4,index:4},this.rules[0].opcodes[2]={type:4,index:1},this.rules[1].opcodes=[],this.rules[1].opcodes[0]={type:3,min:0,max:1/0},this.rules[1].opcodes[1]={type:2,children:[2,3]},this.rules[1].opcodes[2]={type:4,index:3},this.rules[1].opcodes[3]={type:4,index:59},this.rules[2].opcodes=[],this.rules[2].opcodes[0]={type:1,children:[1,2,3,4]},this.rules[2].opcodes[1]={type:6,string:[32]},this.rules[2].opcodes[2]={type:6,string:[9]},this.rules[2].opcodes[3]={type:6,string:[10]},this.rules[2].opcodes[4]={type:6,string:[13]},this.rules[3].opcodes=[],this.rules[3].opcodes[0]={type:3,min:0,max:1/0},this.rules[3].opcodes[1]={type:4,index:2},this.rules[4].opcodes=[],this.rules[4].opcodes[0]={type:7,string:[36]},this.rules[5].opcodes=[],this.rules[5].opcodes[0]={type:1,children:[1,2,3,4,5]},this.rules[5].opcodes[1]={type:4,index:6},this.rules[5].opcodes[2]={type:4,index:18},this.rules[5].opcodes[3]={type:4,index:22},this.rules[5].opcodes[4]={type:4,index:19},this.rules[5].opcodes[5]={type:4,index:26},this.rules[6].opcodes=[],this.rules[6].opcodes[0]={type:4,index:7},this.rules[7].opcodes=[],this.rules[7].opcodes[0]={type:1,children:[1,6]},this.rules[7].opcodes[1]={type:2,children:[2,3,5]},this.rules[7].opcodes[2]={type:4,index:86},this.rules[7].opcodes[3]={type:3,min:0,max:1/0},this.rules[7].opcodes[4]={type:4,index:8},this.rules[7].opcodes[5]={type:4,index:86},this.rules[7].opcodes[6]={type:2,children:[7,8,10]},this.rules[7].opcodes[7]={type:4,index:87},this.rules[7].opcodes[8]={type:3,min:0,max:1/0},this.rules[7].opcodes[9]={type:4,index:9},this.rules[7].opcodes[10]={type:4,index:87},this.rules[8].opcodes=[],this.rules[8].opcodes[0]={type:1,children:[1,2,3,6]},this.rules[8].opcodes[1]={type:4,index:11},this.rules[8].opcodes[2]={type:6,string:[39]},this.rules[8].opcodes[3]={type:2,children:[4,5]},this.rules[8].opcodes[4]={type:4,index:10},this.rules[8].opcodes[5]={type:6,string:[34]},this.rules[8].opcodes[6]={type:2,children:[7,8]},this.rules[8].opcodes[7]={type:4,index:10},this.rules[8].opcodes[8]={type:4,index:12},this.rules[9].opcodes=[],this.rules[9].opcodes[0]={type:1,children:[1,2,3,6]},this.rules[9].opcodes[1]={type:4,index:11},this.rules[9].opcodes[2]={type:6,string:[34]},this.rules[9].opcodes[3]={type:2,children:[4,5]},this.rules[9].opcodes[4]={type:4,index:10},this.rules[9].opcodes[5]={type:6,string:[39]},this.rules[9].opcodes[6]={type:2,children:[7,8]},this.rules[9].opcodes[7]={type:4,index:10},this.rules[9].opcodes[8]={type:4,index:12},this.rules[10].opcodes=[],this.rules[10].opcodes[0]={type:6,string:[92]},this.rules[11].opcodes=[],this.rules[11].opcodes[0]={type:1,children:[1,2,3,4,5]},this.rules[11].opcodes[1]={type:5,min:32,max:33},this.rules[11].opcodes[2]={type:5,min:35,max:38},this.rules[11].opcodes[3]={type:5,min:40,max:91},this.rules[11].opcodes[4]={type:5,min:93,max:55295},this.rules[11].opcodes[5]={type:5,min:57344,max:1114111},this.rules[12].opcodes=[],this.rules[12].opcodes[0]={type:1,children:[1,2,3,4,5,6,7,8]},this.rules[12].opcodes[1]={type:6,string:[98]},this.rules[12].opcodes[2]={type:6,string:[102]},this.rules[12].opcodes[3]={type:6,string:[110]},this.rules[12].opcodes[4]={type:6,string:[114]},this.rules[12].opcodes[5]={type:6,string:[116]},this.rules[12].opcodes[6]={type:7,string:[47]},this.rules[12].opcodes[7]={type:7,string:[92]},this.rules[12].opcodes[8]={type:2,children:[9,10]},this.rules[12].opcodes[9]={type:6,string:[117]},this.rules[12].opcodes[10]={type:4,index:13},this.rules[13].opcodes=[],this.rules[13].opcodes[0]={type:1,children:[1,2]},this.rules[13].opcodes[1]={type:4,index:14},this.rules[13].opcodes[2]={type:2,children:[3,4,5,6]},this.rules[13].opcodes[3]={type:4,index:15},this.rules[13].opcodes[4]={type:7,string:[92]},this.rules[13].opcodes[5]={type:6,string:[117]},this.rules[13].opcodes[6]={type:4,index:16},this.rules[14].opcodes=[],this.rules[14].opcodes[0]={type:1,children:[1,11]},this.rules[14].opcodes[1]={type:2,children:[2,9]},this.rules[14].opcodes[2]={type:1,children:[3,4,5,6,7,8]},this.rules[14].opcodes[3]={type:4,index:65},this.rules[14].opcodes[4]={type:7,string:[97]},this.rules[14].opcodes[5]={type:7,string:[98]},this.rules[14].opcodes[6]={type:7,string:[99]},this.rules[14].opcodes[7]={type:7,string:[101]},this.rules[14].opcodes[8]={type:7,string:[102]},this.rules[14].opcodes[9]={type:3,min:3,max:3},this.rules[14].opcodes[10]={type:4,index:17},this.rules[14].opcodes[11]={type:2,children:[12,13,14]},this.rules[14].opcodes[12]={type:7,string:[100]},this.rules[14].opcodes[13]={type:5,min:48,max:55},this.rules[14].opcodes[14]={type:3,min:2,max:2},this.rules[14].opcodes[15]={type:4,index:17},this.rules[15].opcodes=[],this.rules[15].opcodes[0]={type:2,children:[1,2,7]},this.rules[15].opcodes[1]={type:7,string:[100]},this.rules[15].opcodes[2]={type:1,children:[3,4,5,6]},this.rules[15].opcodes[3]={type:7,string:[56]},this.rules[15].opcodes[4]={type:7,string:[57]},this.rules[15].opcodes[5]={type:7,string:[97]},this.rules[15].opcodes[6]={type:7,string:[98]},this.rules[15].opcodes[7]={type:3,min:2,max:2},this.rules[15].opcodes[8]={type:4,index:17},this.rules[16].opcodes=[],this.rules[16].opcodes[0]={type:2,children:[1,2,7]},this.rules[16].opcodes[1]={type:7,string:[100]},this.rules[16].opcodes[2]={type:1,children:[3,4,5,6]},this.rules[16].opcodes[3]={type:7,string:[99]},this.rules[16].opcodes[4]={type:7,string:[100]},this.rules[16].opcodes[5]={type:7,string:[101]},this.rules[16].opcodes[6]={type:7,string:[102]},this.rules[16].opcodes[7]={type:3,min:2,max:2},this.rules[16].opcodes[8]={type:4,index:17},this.rules[17].opcodes=[],this.rules[17].opcodes[0]={type:1,children:[1,2,3,4,5,6,7]},this.rules[17].opcodes[1]={type:4,index:65},this.rules[17].opcodes[2]={type:7,string:[97]},this.rules[17].opcodes[3]={type:7,string:[98]},this.rules[17].opcodes[4]={type:7,string:[99]},this.rules[17].opcodes[5]={type:7,string:[100]},this.rules[17].opcodes[6]={type:7,string:[101]},this.rules[17].opcodes[7]={type:7,string:[102]},this.rules[18].opcodes=[],this.rules[18].opcodes[0]={type:7,string:[42]},this.rules[19].opcodes=[],this.rules[19].opcodes[0]={type:4,index:20},this.rules[20].opcodes=[],this.rules[20].opcodes[0]={type:1,children:[1,2]},this.rules[20].opcodes[1]={type:7,string:[48]},this.rules[20].opcodes[2]={type:2,children:[3,5,6]},this.rules[20].opcodes[3]={type:3,min:0,max:1},this.rules[20].opcodes[4]={type:7,string:[45]},this.rules[20].opcodes[5]={type:4,index:21},this.rules[20].opcodes[6]={type:3,min:0,max:1/0},this.rules[20].opcodes[7]={type:4,index:65},this.rules[21].opcodes=[],this.rules[21].opcodes[0]={type:5,min:49,max:57},this.rules[22].opcodes=[],this.rules[22].opcodes[0]={type:2,children:[1,5,6,7,11]},this.rules[22].opcodes[1]={type:3,min:0,max:1},this.rules[22].opcodes[2]={type:2,children:[3,4]},this.rules[22].opcodes[3]={type:4,index:23},this.rules[22].opcodes[4]={type:4,index:3},this.rules[22].opcodes[5]={type:4,index:85},this.rules[22].opcodes[6]={type:4,index:3},this.rules[22].opcodes[7]={type:3,min:0,max:1},this.rules[22].opcodes[8]={type:2,children:[9,10]},this.rules[22].opcodes[9]={type:4,index:24},this.rules[22].opcodes[10]={type:4,index:3},this.rules[22].opcodes[11]={type:3,min:0,max:1},this.rules[22].opcodes[12]={type:2,children:[13,14]},this.rules[22].opcodes[13]={type:4,index:85},this.rules[22].opcodes[14]={type:3,min:0,max:1},this.rules[22].opcodes[15]={type:2,children:[16,17]},this.rules[22].opcodes[16]={type:4,index:3},this.rules[22].opcodes[17]={type:4,index:25},this.rules[23].opcodes=[],this.rules[23].opcodes[0]={type:4,index:20},this.rules[24].opcodes=[],this.rules[24].opcodes[0]={type:4,index:20},this.rules[25].opcodes=[],this.rules[25].opcodes[0]={type:4,index:20},this.rules[26].opcodes=[],this.rules[26].opcodes[0]={type:2,children:[1,2,3]},this.rules[26].opcodes[1]={type:4,index:88},this.rules[26].opcodes[2]={type:4,index:3},this.rules[26].opcodes[3]={type:4,index:27},this.rules[27].opcodes=[],this.rules[27].opcodes[0]={type:4,index:28},this.rules[28].opcodes=[],this.rules[28].opcodes[0]={type:2,children:[1,2]},this.rules[28].opcodes[1]={type:4,index:29},this.rules[28].opcodes[2]={type:3,min:0,max:1/0},this.rules[28].opcodes[3]={type:2,children:[4,5,6,7]},this.rules[28].opcodes[4]={type:4,index:3},this.rules[28].opcodes[5]={type:4,index:89},this.rules[28].opcodes[6]={type:4,index:3},this.rules[28].opcodes[7]={type:4,index:29},this.rules[29].opcodes=[],this.rules[29].opcodes[0]={type:2,children:[1,2]},this.rules[29].opcodes[1]={type:4,index:30},this.rules[29].opcodes[2]={type:3,min:0,max:1/0},this.rules[29].opcodes[3]={type:2,children:[4,5,6,7]},this.rules[29].opcodes[4]={type:4,index:3},this.rules[29].opcodes[5]={type:4,index:90},this.rules[29].opcodes[6]={type:4,index:3},this.rules[29].opcodes[7]={type:4,index:30},this.rules[30].opcodes=[],this.rules[30].opcodes[0]={type:1,children:[1,2,3]},this.rules[30].opcodes[1]={type:4,index:31},this.rules[30].opcodes[2]={type:4,index:37},this.rules[30].opcodes[3]={type:4,index:33},this.rules[31].opcodes=[],this.rules[31].opcodes[0]={type:2,children:[1,5,6,7,8,9]},this.rules[31].opcodes[1]={type:3,min:0,max:1},this.rules[31].opcodes[2]={type:2,children:[3,4]},this.rules[31].opcodes[3]={type:4,index:32},this.rules[31].opcodes[4]={type:4,index:3},this.rules[31].opcodes[5]={type:4,index:82},this.rules[31].opcodes[6]={type:4,index:3},this.rules[31].opcodes[7]={type:4,index:27},this.rules[31].opcodes[8]={type:4,index:3},this.rules[31].opcodes[9]={type:4,index:83},this.rules[32].opcodes=[],this.rules[32].opcodes[0]={type:7,string:[33]},this.rules[33].opcodes=[],this.rules[33].opcodes[0]={type:2,children:[1,5]},this.rules[33].opcodes[1]={type:3,min:0,max:1},this.rules[33].opcodes[2]={type:2,children:[3,4]},this.rules[33].opcodes[3]={type:4,index:32},this.rules[33].opcodes[4]={type:4,index:3},this.rules[33].opcodes[5]={type:1,children:[6,7]},this.rules[33].opcodes[6]={type:4,index:34},this.rules[33].opcodes[7]={type:4,index:57},this.rules[34].opcodes=[],this.rules[34].opcodes[0]={type:1,children:[1,2]},this.rules[34].opcodes[1]={type:4,index:35},this.rules[34].opcodes[2]={type:4,index:0},this.rules[35].opcodes=[],this.rules[35].opcodes[0]={type:2,children:[1,2]},this.rules[35].opcodes[1]={type:4,index:36},this.rules[35].opcodes[2]={type:4,index:1},this.rules[36].opcodes=[],this.rules[36].opcodes[0]={type:7,string:[64]},this.rules[37].opcodes=[],this.rules[37].opcodes[0]={type:2,children:[1,2,3,4,5]},this.rules[37].opcodes[1]={type:4,index:39},this.rules[37].opcodes[2]={type:4,index:3},this.rules[37].opcodes[3]={type:4,index:40},this.rules[37].opcodes[4]={type:4,index:3},this.rules[37].opcodes[5]={type:4,index:39},this.rules[38].opcodes=[],this.rules[38].opcodes[0]={type:1,children:[1,2,3,4,5]},this.rules[38].opcodes[1]={type:4,index:47},this.rules[38].opcodes[2]={type:4,index:7},this.rules[38].opcodes[3]={type:4,index:50},this.rules[38].opcodes[4]={type:4,index:51},this.rules[38].opcodes[5]={type:4,index:52},this.rules[39].opcodes=[],this.rules[39].opcodes[0]={type:1,children:[1,2,3]},this.rules[39].opcodes[1]={type:4,index:41},this.rules[39].opcodes[2]={type:4,index:57},this.rules[39].opcodes[3]={type:4,index:38},this.rules[40].opcodes=[],this.rules[40].opcodes[0]={type:1,children:[1,2,3,4,5,6]},this.rules[40].opcodes[1]={type:7,string:[61,61]},this.rules[40].opcodes[2]={type:7,string:[33,61]},this.rules[40].opcodes[3]={type:7,string:[60,61]},this.rules[40].opcodes[4]={type:7,string:[62,61]},this.rules[40].opcodes[5]={type:7,string:[60]},this.rules[40].opcodes[6]={type:7,string:[62]},this.rules[41].opcodes=[],this.rules[41].opcodes[0]={type:1,children:[1,2]},this.rules[41].opcodes[1]={type:4,index:42},this.rules[41].opcodes[2]={type:4,index:43},this.rules[42].opcodes=[],this.rules[42].opcodes[0]={type:2,children:[1,2]},this.rules[42].opcodes[1]={type:4,index:36},this.rules[42].opcodes[2]={type:4,index:44},this.rules[43].opcodes=[],this.rules[43].opcodes[0]={type:2,children:[1,2]},this.rules[43].opcodes[1]={type:4,index:4},this.rules[43].opcodes[2]={type:4,index:44},this.rules[44].opcodes=[],this.rules[44].opcodes[0]={type:3,min:0,max:1/0},this.rules[44].opcodes[1]={type:2,children:[2,3]},this.rules[44].opcodes[2]={type:4,index:3},this.rules[44].opcodes[3]={type:1,children:[4,5]},this.rules[44].opcodes[4]={type:4,index:45},this.rules[44].opcodes[5]={type:4,index:46},this.rules[45].opcodes=[],this.rules[45].opcodes[0]={type:1,children:[1,5]},this.rules[45].opcodes[1]={type:2,children:[2,3,4]},this.rules[45].opcodes[2]={type:4,index:80},this.rules[45].opcodes[3]={type:4,index:6},this.rules[45].opcodes[4]={type:4,index:81},this.rules[45].opcodes[5]={type:2,children:[6,7]},this.rules[45].opcodes[6]={type:4,index:78},this.rules[45].opcodes[7]={type:4,index:62},this.rules[46].opcodes=[],this.rules[46].opcodes[0]={type:2,children:[1,2,3]},this.rules[46].opcodes[1]={type:4,index:80},this.rules[46].opcodes[2]={type:4,index:19},this.rules[46].opcodes[3]={type:4,index:81},this.rules[47].opcodes=[],this.rules[47].opcodes[0]={type:2,children:[1,4,6]},this.rules[47].opcodes[1]={type:1,children:[2,3]},this.rules[47].opcodes[2]={type:4,index:20},this.rules[47].opcodes[3]={type:7,string:[45,48]},this.rules[47].opcodes[4]={type:3,min:0,max:1},this.rules[47].opcodes[5]={type:4,index:48},this.rules[47].opcodes[6]={type:3,min:0,max:1},this.rules[47].opcodes[7]={type:4,index:49},this.rules[48].opcodes=[],this.rules[48].opcodes[0]={type:2,children:[1,2]},this.rules[48].opcodes[1]={type:7,string:[46]},this.rules[48].opcodes[2]={type:3,min:1,max:1/0},this.rules[48].opcodes[3]={type:4,index:65},this.rules[49].opcodes=[],this.rules[49].opcodes[0]={type:2,children:[1,2,6]},this.rules[49].opcodes[1]={type:7,string:[101]},this.rules[49].opcodes[2]={type:3,min:0,max:1},this.rules[49].opcodes[3]={type:1,children:[4,5]},this.rules[49].opcodes[4]={type:7,string:[45]},this.rules[49].opcodes[5]={type:7,string:[43]},this.rules[49].opcodes[6]={type:3,min:1,max:1/0},this.rules[49].opcodes[7]={type:4,index:65},this.rules[50].opcodes=[],this.rules[50].opcodes[0]={type:6,string:[116,114,117,101]},this.rules[51].opcodes=[],this.rules[51].opcodes[0]={type:6,string:[102,97,108,115,101]},this.rules[52].opcodes=[],this.rules[52].opcodes[0]={type:6,string:[110,117,108,108]},this.rules[53].opcodes=[],this.rules[53].opcodes[0]={type:2,children:[1,2]},this.rules[53].opcodes[1]={type:4,index:54},this.rules[53].opcodes[2]={type:3,min:0,max:1/0},this.rules[53].opcodes[3]={type:4,index:55},this.rules[54].opcodes=[],this.rules[54].opcodes[0]={type:4,index:56},this.rules[55].opcodes=[],this.rules[55].opcodes[0]={type:1,children:[1,2,3]},this.rules[55].opcodes[1]={type:4,index:54},this.rules[55].opcodes[2]={type:7,string:[95]},this.rules[55].opcodes[3]={type:4,index:65},this.rules[56].opcodes=[],this.rules[56].opcodes[0]={type:5,min:97,max:122},this.rules[57].opcodes=[],this.rules[57].opcodes[0]={type:2,children:[1,2,3,4,13,14]},this.rules[57].opcodes[1]={type:4,index:53},this.rules[57].opcodes[2]={type:4,index:82},this.rules[57].opcodes[3]={type:4,index:3},this.rules[57].opcodes[4]={type:3,min:0,max:1},this.rules[57].opcodes[5]={type:2,children:[6,7]},this.rules[57].opcodes[6]={type:4,index:58},this.rules[57].opcodes[7]={type:3,min:0,max:1/0},this.rules[57].opcodes[8]={type:2,children:[9,10,11,12]},this.rules[57].opcodes[9]={type:4,index:3},this.rules[57].opcodes[10]={type:4,index:84},this.rules[57].opcodes[11]={type:4,index:3},this.rules[57].opcodes[12]={type:4,index:58},this.rules[57].opcodes[13]={type:4,index:3},this.rules[57].opcodes[14]={type:4,index:83},this.rules[58].opcodes=[],this.rules[58].opcodes[0]={type:1,children:[1,2,3,4]},this.rules[58].opcodes[1]={type:4,index:27},this.rules[58].opcodes[2]={type:4,index:34},this.rules[58].opcodes[3]={type:4,index:57},this.rules[58].opcodes[4]={type:4,index:38},this.rules[59].opcodes=[],this.rules[59].opcodes[0]={type:1,children:[1,2]},this.rules[59].opcodes[1]={type:4,index:60},this.rules[59].opcodes[2]={type:4,index:67},this.rules[60].opcodes=[],this.rules[60].opcodes[0]={type:1,children:[1,2]},this.rules[60].opcodes[1]={type:4,index:61},this.rules[60].opcodes[2]={type:2,children:[3,4]},this.rules[60].opcodes[3]={type:4,index:78},this.rules[60].opcodes[4]={type:1,children:[5,6]},this.rules[60].opcodes[5]={type:4,index:18},this.rules[60].opcodes[6]={type:4,index:62},this.rules[61].opcodes=[],this.rules[61].opcodes[0]={type:2,children:[1,2,3,4,10,11]},this.rules[61].opcodes[1]={type:4,index:80},this.rules[61].opcodes[2]={type:4,index:3},this.rules[61].opcodes[3]={type:4,index:5},this.rules[61].opcodes[4]={type:3,min:0,max:1/0},this.rules[61].opcodes[5]={type:2,children:[6,7,8,9]},this.rules[61].opcodes[6]={type:4,index:3},this.rules[61].opcodes[7]={type:4,index:84},this.rules[61].opcodes[8]={type:4,index:3},this.rules[61].opcodes[9]={type:4,index:5},this.rules[61].opcodes[10]={type:4,index:3},this.rules[61].opcodes[11]={type:4,index:81},this.rules[62].opcodes=[],this.rules[62].opcodes[0]={type:2,children:[1,2]},this.rules[62].opcodes[1]={type:4,index:63},this.rules[62].opcodes[2]={type:3,min:0,max:1/0},this.rules[62].opcodes[3]={type:4,index:64},this.rules[63].opcodes=[],this.rules[63].opcodes[0]={type:1,children:[1,2,3,4]},this.rules[63].opcodes[1]={type:4,index:66},this.rules[63].opcodes[2]={type:7,string:[95]},this.rules[63].opcodes[3]={type:5,min:128,max:55295},this.rules[63].opcodes[4]={type:5,min:57344,max:1114111},this.rules[64].opcodes=[],this.rules[64].opcodes[0]={type:1,children:[1,2]},this.rules[64].opcodes[1]={type:4,index:63},this.rules[64].opcodes[2]={type:4,index:65},this.rules[65].opcodes=[],this.rules[65].opcodes[0]={type:5,min:48,max:57},this.rules[66].opcodes=[],this.rules[66].opcodes[0]={type:1,children:[1,2]},this.rules[66].opcodes[1]={type:5,min:65,max:90},this.rules[66].opcodes[2]={type:5,min:97,max:122},this.rules[67].opcodes=[],this.rules[67].opcodes[0]={type:2,children:[1,2]},this.rules[67].opcodes[1]={type:4,index:79},this.rules[67].opcodes[2]={type:1,children:[3,4,5]},this.rules[67].opcodes[3]={type:4,index:61},this.rules[67].opcodes[4]={type:4,index:18},this.rules[67].opcodes[5]={type:4,index:62},this.rules[68].opcodes=[],this.rules[68].opcodes[0]={type:2,children:[1,2]},this.rules[68].opcodes[1]={type:4,index:4},this.rules[68].opcodes[2]={type:3,min:0,max:1/0},this.rules[68].opcodes[3]={type:4,index:69},this.rules[69].opcodes=[],this.rules[69].opcodes[0]={type:2,children:[1,2,3]},this.rules[69].opcodes[1]={type:4,index:80},this.rules[69].opcodes[2]={type:4,index:70},this.rules[69].opcodes[3]={type:4,index:81},this.rules[70].opcodes=[],this.rules[70].opcodes[0]={type:1,children:[1,2]},this.rules[70].opcodes[1]={type:4,index:71},this.rules[70].opcodes[2]={type:4,index:77},this.rules[71].opcodes=[],this.rules[71].opcodes[0]={type:2,children:[1,2,4]},this.rules[71].opcodes[1]={type:4,index:87},this.rules[71].opcodes[2]={type:3,min:0,max:1/0},this.rules[71].opcodes[3]={type:4,index:72},this.rules[71].opcodes[4]={type:4,index:87},this.rules[72].opcodes=[],this.rules[72].opcodes[0]={type:1,children:[1,2]},this.rules[72].opcodes[1]={type:4,index:73},this.rules[72].opcodes[2]={type:2,children:[3,4]},this.rules[72].opcodes[3]={type:4,index:10},this.rules[72].opcodes[4]={type:4,index:74},this.rules[73].opcodes=[],this.rules[73].opcodes[0]={type:1,children:[1,2,3,4]},this.rules[73].opcodes[1]={type:5,min:32,max:38},this.rules[73].opcodes[2]={type:5,min:40,max:91},this.rules[73].opcodes[3]={type:5,min:93,max:55295},this.rules[73].opcodes[4]={type:5,min:57344,max:1114111},this.rules[74].opcodes=[],this.rules[74].opcodes[0]={type:1,children:[1,2,3,4,5,6,7,8]},this.rules[74].opcodes[1]={type:6,string:[98]},this.rules[74].opcodes[2]={type:6,string:[102]},this.rules[74].opcodes[3]={type:6,string:[110]},this.rules[74].opcodes[4]={type:6,string:[114]},this.rules[74].opcodes[5]={type:6,string:[116]},this.rules[74].opcodes[6]={type:7,string:[39]},this.rules[74].opcodes[7]={type:7,string:[92]},this.rules[74].opcodes[8]={type:2,children:[9,10]},this.rules[74].opcodes[9]={type:6,string:[117]},this.rules[74].opcodes[10]={type:4,index:75},this.rules[75].opcodes=[],this.rules[75].opcodes[0]={type:2,children:[1,2,3]},this.rules[75].opcodes[1]={type:7,string:[48]},this.rules[75].opcodes[2]={type:7,string:[48]},this.rules[75].opcodes[3]={type:1,children:[4,7,10,13]},this.rules[75].opcodes[4]={type:2,children:[5,6]},this.rules[75].opcodes[5]={type:7,string:[48]},this.rules[75].opcodes[6]={type:5,min:48,max:55},this.rules[75].opcodes[7]={type:2,children:[8,9]},this.rules[75].opcodes[8]={type:7,string:[48]},this.rules[75].opcodes[9]={type:6,string:[98]},this.rules[75].opcodes[10]={type:2,children:[11,12]},this.rules[75].opcodes[11]={type:7,string:[48]},this.rules[75].opcodes[12]={type:5,min:101,max:102},this.rules[75].opcodes[13]={type:2,children:[14,15]},this.rules[75].opcodes[14]={type:7,string:[49]},this.rules[75].opcodes[15]={type:4,index:76},this.rules[76].opcodes=[],this.rules[76].opcodes[0]={type:1,children:[1,2]},this.rules[76].opcodes[1]={type:4,index:65},this.rules[76].opcodes[2]={type:5,min:97,max:102},this.rules[77].opcodes=[],this.rules[77].opcodes[0]={type:1,children:[1,2]},this.rules[77].opcodes[1]={type:7,string:[48]},this.rules[77].opcodes[2]={type:2,children:[3,4]},this.rules[77].opcodes[3]={type:4,index:21},this.rules[77].opcodes[4]={type:3,min:0,max:1/0},this.rules[77].opcodes[5]={type:4,index:65},this.rules[78].opcodes=[],this.rules[78].opcodes[0]={type:7,string:[46]},this.rules[79].opcodes=[],this.rules[79].opcodes[0]={type:7,string:[46,46]},this.rules[80].opcodes=[],this.rules[80].opcodes[0]={type:7,string:[91]},this.rules[81].opcodes=[],this.rules[81].opcodes[0]={type:7,string:[93]},this.rules[82].opcodes=[],this.rules[82].opcodes[0]={type:7,string:[40]},this.rules[83].opcodes=[],this.rules[83].opcodes[0]={type:7,string:[41]},this.rules[84].opcodes=[],this.rules[84].opcodes[0]={type:7,string:[44]},this.rules[85].opcodes=[],this.rules[85].opcodes[0]={type:7,string:[58]},this.rules[86].opcodes=[],this.rules[86].opcodes[0]={type:6,string:[34]},this.rules[87].opcodes=[],this.rules[87].opcodes[0]={type:6,string:[39]},this.rules[88].opcodes=[],this.rules[88].opcodes[0]={type:7,string:[63]},this.rules[89].opcodes=[],this.rules[89].opcodes[0]={type:7,string:[124,124]},this.rules[90].opcodes=[],this.rules[90].opcodes[0]={type:7,string:[38,38]},this.toString=function(){let e="";return e+="; JSONPath: Query Expressions for JSON\n",e+="; https://www.rfc-editor.org/rfc/rfc9535\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.1.1\n",e+="jsonpath-query = root-identifier segments\n",e+="segments = *(S segment)\n",e+="\n",e+="B = %x20 / ; Space\n",e+=" %x09 / ; Horizontal tab\n",e+=" %x0A / ; Line feed or New line\n",e+=" %x0D ; Carriage return\n",e+="S = *B ; optional blank space\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.2.1\n",e+='root-identifier = "$"\n',e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3\n",e+="selector = name-selector /\n",e+=" wildcard-selector /\n",e+=" slice-selector /\n",e+=" index-selector /\n",e+=" filter-selector\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.1.1\n",e+="name-selector = string-literal\n",e+="\n",e+='string-literal = dquote *double-quoted dquote / ; "string", MODIFICATION: surrogate text rule used\n',e+=" squote *single-quoted squote ; 'string', MODIFICATION: surrogate text rule used\n",e+="\n",e+="double-quoted = unescaped /\n",e+=" %x27 / ; '\n",e+=' ESC %x22 / ; \\"\n',e+=" ESC escapable\n",e+="\n",e+="single-quoted = unescaped /\n",e+=' %x22 / ; "\n',e+=" ESC %x27 / ; \\'\n",e+=" ESC escapable\n",e+="\n",e+="ESC = %x5C ; \\ backslash\n",e+="\n",e+="unescaped = %x20-21 / ; see RFC 8259\n",e+=' ; omit 0x22 "\n',e+=" %x23-26 /\n",e+=" ; omit 0x27 '\n",e+=" %x28-5B /\n",e+=" ; omit 0x5C \\\n",e+=" %x5D-D7FF /\n",e+=" ; skip surrogate code points\n",e+=" %xE000-10FFFF\n",e+="\n",e+="escapable = %x62 / ; b BS backspace U+0008\n",e+=" %x66 / ; f FF form feed U+000C\n",e+=" %x6E / ; n LF line feed U+000A\n",e+=" %x72 / ; r CR carriage return U+000D\n",e+=" %x74 / ; t HT horizontal tab U+0009\n",e+=' "/" / ; / slash (solidus) U+002F\n',e+=' "\\" / ; \\ backslash (reverse solidus) U+005C\n',e+=" (%x75 hexchar) ; uXXXX U+XXXX\n",e+="\n",e+="hexchar = non-surrogate /\n",e+=' (high-surrogate "\\" %x75 low-surrogate)\n',e+='non-surrogate = ((DIGIT / "A"/"B"/"C" / "E"/"F") 3HEXDIG) /\n',e+=' ("D" %x30-37 2HEXDIG )\n',e+='high-surrogate = "D" ("8"/"9"/"A"/"B") 2HEXDIG\n',e+='low-surrogate = "D" ("C"/"D"/"E"/"F") 2HEXDIG\n',e+="\n",e+='HEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"\n',e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.2.1\n",e+='wildcard-selector = "*"\n',e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.3.1\n",e+="index-selector = int ; decimal integer\n",e+="\n",e+='int = "0" /\n',e+=' (["-"] DIGIT1 *DIGIT) ; - optional\n',e+="DIGIT1 = %x31-39 ; 1-9 non-zero digit\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.4.1\n",e+="slice-selector = [start S] colon S [end S] [colon [S step ]] ; MODIFICATION: surrogate text rule used\n",e+="\n",e+="start = int ; included in selection\n",e+="end = int ; not included in selection\n",e+="step = int ; default: 1\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.5.1\n",e+="filter-selector = questionmark S logical-expr ; MODIFICATION: surrogate text rule used\n",e+="\n",e+="logical-expr = logical-or-expr\n",e+="logical-or-expr = logical-and-expr *(S disjunction S logical-and-expr) ; MODIFICATION: surrogate text rule used\n",e+=" ; disjunction\n",e+=" ; binds less tightly than conjunction\n",e+="logical-and-expr = basic-expr *(S conjunction S basic-expr) ; MODIFICATION: surrogate text rule used\n",e+=" ; conjunction\n",e+=" ; binds more tightly than disjunction\n",e+="\n",e+="basic-expr = paren-expr /\n",e+=" comparison-expr /\n",e+=" test-expr\n",e+="\n",e+="paren-expr = [logical-not-op S] left-paren S logical-expr S right-paren ; MODIFICATION: surrogate text rule used\n",e+=" ; parenthesized expression\n",e+='logical-not-op = "!" ; logical NOT operator\n',e+="\n",e+="test-expr = [logical-not-op S]\n",e+=" (filter-query / ; existence/non-existence\n",e+=" function-expr) ; LogicalType or NodesType\n",e+="filter-query = rel-query / jsonpath-query\n",e+="rel-query = current-node-identifier segments\n",e+='current-node-identifier = "@"\n',e+="\n",e+="comparison-expr = comparable S comparison-op S comparable\n",e+="literal = number / string-literal /\n",e+=" true / false / null\n",e+="comparable = singular-query / ; singular query value\n",e+=" function-expr / ; ValueType\n",e+=" literal\n",e+=" ; MODIFICATION: https://www.rfc-editor.org/errata/eid8352\n",e+='comparison-op = "==" / "!=" /\n',e+=' "<=" / ">=" /\n',e+=' "<" / ">"\n',e+="\n",e+="singular-query = rel-singular-query / abs-singular-query\n",e+="rel-singular-query = current-node-identifier singular-query-segments\n",e+="abs-singular-query = root-identifier singular-query-segments\n",e+="singular-query-segments = *(S (name-segment / index-segment))\n",e+="name-segment = (left-bracket name-selector right-bracket) / ; MODIFICATION: surrogate text rule used\n",e+=" (dot-prefix member-name-shorthand) ; MODIFICATION: surrogate text rule used\n",e+="index-segment = left-bracket index-selector right-bracket ; MODIFICATION: surrogate text rule used\n",e+="\n",e+='number = (int / "-0") [ frac ] [ exp ] ; decimal number\n',e+='frac = "." 1*DIGIT ; decimal fraction\n',e+='exp = "e" [ "-" / "+" ] 1*DIGIT ; decimal exponent\n',e+="true = %x74.72.75.65 ; true\n",e+="false = %x66.61.6c.73.65 ; false\n",e+="null = %x6e.75.6c.6c ; null\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.4\n",e+="function-name = function-name-first *function-name-char\n",e+="function-name-first = LCALPHA\n",e+='function-name-char = function-name-first / "_" / DIGIT\n',e+='LCALPHA = %x61-7A ; "a".."z"\n',e+="\n",e+="function-expr = function-name left-paren S [function-argument ; MODIFICATION: surrogate text rule used\n",e+=" *(S comma S function-argument)] S right-paren ; MODIFICATION: surrogate text rule used\n",e+="function-argument = logical-expr / ; MODIFICATION: https://www.rfc-editor.org/errata/eid8343\n",e+=" filter-query / ; (includes singular-query)\n",e+=" function-expr /\n",e+=" literal\n",e+="\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.5\n",e+="segment = child-segment / descendant-segment\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.1.1\n",e+="child-segment = bracketed-selection /\n",e+=" (dot-prefix ; MODIFICATION: surrogate text rule used\n",e+=" (wildcard-selector /\n",e+=" member-name-shorthand))\n",e+="\n",e+="bracketed-selection = left-bracket S selector *(S comma S selector) S right-bracket\n",e+=" ; MODIFICATION: surrogate text rule used\n",e+="\n",e+="member-name-shorthand = name-first *name-char\n",e+="name-first = ALPHA /\n",e+=' "_" /\n',e+=" %x80-D7FF /\n",e+=" ; skip surrogate code points\n",e+=" %xE000-10FFFF\n",e+="name-char = name-first / DIGIT\n",e+="\n",e+="DIGIT = %x30-39 ; 0-9\n",e+="ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.2.1\n",e+="descendant-segment = double-dot-prefix (bracketed-selection / ; MODIFICATION: surrogate text rule used\n",e+=" wildcard-selector /\n",e+=" member-name-shorthand)\n",e+="\n",e+="; https://www.rfc-editor.org/rfc/rfc9535#name-normalized-paths\n",e+="normalized-path = root-identifier *(normal-index-segment)\n",e+="normal-index-segment = left-bracket normal-selector right-bracket ; MODIFICATION: surrogate text rule used\n",e+="normal-selector = normal-name-selector / normal-index-selector\n",e+="normal-name-selector = squote *normal-single-quoted squote ; 'string', MODIFICATION: surrogate text rule used\n",e+="normal-single-quoted = normal-unescaped /\n",e+=" ESC normal-escapable\n",e+="normal-unescaped = ; omit %x0-1F control codes\n",e+=" %x20-26 /\n",e+=" ; omit 0x27 '\n",e+=" %x28-5B /\n",e+=" ; omit 0x5C \\\n",e+=" %x5D-D7FF /\n",e+=" ; skip surrogate code points\n",e+=" %xE000-10FFFF\n",e+="\n",e+="normal-escapable = %x62 / ; b BS backspace U+0008\n",e+=" %x66 / ; f FF form feed U+000C\n",e+=" %x6E / ; n LF line feed U+000A\n",e+=" %x72 / ; r CR carriage return U+000D\n",e+=" %x74 / ; t HT horizontal tab U+0009\n",e+=" \"'\" / ; ' apostrophe U+0027\n",e+=' "\\" / ; \\ backslash (reverse solidus) U+005C\n',e+=" (%x75 normal-hexchar)\n",e+=" ; certain values u00xx U+00XX\n",e+='normal-hexchar = "0" "0"\n',e+=" (\n",e+=' ("0" %x30-37) / ; "00"-"07"\n',e+=" ; omit U+0008-U+000A BS HT LF\n",e+=' ("0" %x62) / ; "0b"\n',e+=" ; omit U+000C-U+000D FF CR\n",e+=' ("0" %x65-66) / ; "0e"-"0f"\n',e+=' ("1" normal-HEXDIG)\n',e+=" )\n",e+='normal-HEXDIG = DIGIT / %x61-66 ; "0"-"9", "a"-"f"\n',e+='normal-index-selector = "0" / (DIGIT1 *DIGIT)\n',e+=" ; non-negative decimal integer\n",e+="\n",e+="; Surrogate named rules\n",e+='dot-prefix = "."\n',e+='double-dot-prefix = ".."\n',e+='left-bracket = "["\n',e+='right-bracket = "]"\n',e+='left-paren = "("\n',e+='right-paren = ")"\n',e+='comma = ","\n',e+='colon = ":"\n',e+='dquote = %x22 ; "\n',e+="squote = %x27 ; '\n",e+='questionmark = "?"\n',e+='disjunction = "||"\n',e+='conjunction = "&&"\n','; JSONPath: Query Expressions for JSON\n; https://www.rfc-editor.org/rfc/rfc9535\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.1.1\njsonpath-query = root-identifier segments\nsegments = *(S segment)\n\nB = %x20 / ; Space\n %x09 / ; Horizontal tab\n %x0A / ; Line feed or New line\n %x0D ; Carriage return\nS = *B ; optional blank space\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.2.1\nroot-identifier = "$"\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3\nselector = name-selector /\n wildcard-selector /\n slice-selector /\n index-selector /\n filter-selector\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.1.1\nname-selector = string-literal\n\nstring-literal = dquote *double-quoted dquote / ; "string", MODIFICATION: surrogate text rule used\n squote *single-quoted squote ; \'string\', MODIFICATION: surrogate text rule used\n\ndouble-quoted = unescaped /\n %x27 / ; \'\n ESC %x22 / ; \\"\n ESC escapable\n\nsingle-quoted = unescaped /\n %x22 / ; "\n ESC %x27 / ; \\\'\n ESC escapable\n\nESC = %x5C ; \\ backslash\n\nunescaped = %x20-21 / ; see RFC 8259\n ; omit 0x22 "\n %x23-26 /\n ; omit 0x27 \'\n %x28-5B /\n ; omit 0x5C \\\n %x5D-D7FF /\n ; skip surrogate code points\n %xE000-10FFFF\n\nescapable = %x62 / ; b BS backspace U+0008\n %x66 / ; f FF form feed U+000C\n %x6E / ; n LF line feed U+000A\n %x72 / ; r CR carriage return U+000D\n %x74 / ; t HT horizontal tab U+0009\n "/" / ; / slash (solidus) U+002F\n "\\" / ; \\ backslash (reverse solidus) U+005C\n (%x75 hexchar) ; uXXXX U+XXXX\n\nhexchar = non-surrogate /\n (high-surrogate "\\" %x75 low-surrogate)\nnon-surrogate = ((DIGIT / "A"/"B"/"C" / "E"/"F") 3HEXDIG) /\n ("D" %x30-37 2HEXDIG )\nhigh-surrogate = "D" ("8"/"9"/"A"/"B") 2HEXDIG\nlow-surrogate = "D" ("C"/"D"/"E"/"F") 2HEXDIG\n\nHEXDIG = DIGIT / "A" / "B" / "C" / "D" / "E" / "F"\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.2.1\nwildcard-selector = "*"\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.3.1\nindex-selector = int ; decimal integer\n\nint = "0" /\n (["-"] DIGIT1 *DIGIT) ; - optional\nDIGIT1 = %x31-39 ; 1-9 non-zero digit\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.4.1\nslice-selector = [start S] colon S [end S] [colon [S step ]] ; MODIFICATION: surrogate text rule used\n\nstart = int ; included in selection\nend = int ; not included in selection\nstep = int ; default: 1\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.3.5.1\nfilter-selector = questionmark S logical-expr ; MODIFICATION: surrogate text rule used\n\nlogical-expr = logical-or-expr\nlogical-or-expr = logical-and-expr *(S disjunction S logical-and-expr) ; MODIFICATION: surrogate text rule used\n ; disjunction\n ; binds less tightly than conjunction\nlogical-and-expr = basic-expr *(S conjunction S basic-expr) ; MODIFICATION: surrogate text rule used\n ; conjunction\n ; binds more tightly than disjunction\n\nbasic-expr = paren-expr /\n comparison-expr /\n test-expr\n\nparen-expr = [logical-not-op S] left-paren S logical-expr S right-paren ; MODIFICATION: surrogate text rule used\n ; parenthesized expression\nlogical-not-op = "!" ; logical NOT operator\n\ntest-expr = [logical-not-op S]\n (filter-query / ; existence/non-existence\n function-expr) ; LogicalType or NodesType\nfilter-query = rel-query / jsonpath-query\nrel-query = current-node-identifier segments\ncurrent-node-identifier = "@"\n\ncomparison-expr = comparable S comparison-op S comparable\nliteral = number / string-literal /\n true / false / null\ncomparable = singular-query / ; singular query value\n function-expr / ; ValueType\n literal\n ; MODIFICATION: https://www.rfc-editor.org/errata/eid8352\ncomparison-op = "==" / "!=" /\n "<=" / ">=" /\n "<" / ">"\n\nsingular-query = rel-singular-query / abs-singular-query\nrel-singular-query = current-node-identifier singular-query-segments\nabs-singular-query = root-identifier singular-query-segments\nsingular-query-segments = *(S (name-segment / index-segment))\nname-segment = (left-bracket name-selector right-bracket) / ; MODIFICATION: surrogate text rule used\n (dot-prefix member-name-shorthand) ; MODIFICATION: surrogate text rule used\nindex-segment = left-bracket index-selector right-bracket ; MODIFICATION: surrogate text rule used\n\nnumber = (int / "-0") [ frac ] [ exp ] ; decimal number\nfrac = "." 1*DIGIT ; decimal fraction\nexp = "e" [ "-" / "+" ] 1*DIGIT ; decimal exponent\ntrue = %x74.72.75.65 ; true\nfalse = %x66.61.6c.73.65 ; false\nnull = %x6e.75.6c.6c ; null\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.4\nfunction-name = function-name-first *function-name-char\nfunction-name-first = LCALPHA\nfunction-name-char = function-name-first / "_" / DIGIT\nLCALPHA = %x61-7A ; "a".."z"\n\nfunction-expr = function-name left-paren S [function-argument ; MODIFICATION: surrogate text rule used\n *(S comma S function-argument)] S right-paren ; MODIFICATION: surrogate text rule used\nfunction-argument = logical-expr / ; MODIFICATION: https://www.rfc-editor.org/errata/eid8343\n filter-query / ; (includes singular-query)\n function-expr /\n literal\n\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.5\nsegment = child-segment / descendant-segment\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.1.1\nchild-segment = bracketed-selection /\n (dot-prefix ; MODIFICATION: surrogate text rule used\n (wildcard-selector /\n member-name-shorthand))\n\nbracketed-selection = left-bracket S selector *(S comma S selector) S right-bracket\n ; MODIFICATION: surrogate text rule used\n\nmember-name-shorthand = name-first *name-char\nname-first = ALPHA /\n "_" /\n %x80-D7FF /\n ; skip surrogate code points\n %xE000-10FFFF\nname-char = name-first / DIGIT\n\nDIGIT = %x30-39 ; 0-9\nALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n\n; https://www.rfc-editor.org/rfc/rfc9535#section-2.5.2.1\ndescendant-segment = double-dot-prefix (bracketed-selection / ; MODIFICATION: surrogate text rule used\n wildcard-selector /\n member-name-shorthand)\n\n; https://www.rfc-editor.org/rfc/rfc9535#name-normalized-paths\nnormalized-path = root-identifier *(normal-index-segment)\nnormal-index-segment = left-bracket normal-selector right-bracket ; MODIFICATION: surrogate text rule used\nnormal-selector = normal-name-selector / normal-index-selector\nnormal-name-selector = squote *normal-single-quoted squote ; \'string\', MODIFICATION: surrogate text rule used\nnormal-single-quoted = normal-unescaped /\n ESC normal-escapable\nnormal-unescaped = ; omit %x0-1F control codes\n %x20-26 /\n ; omit 0x27 \'\n %x28-5B /\n ; omit 0x5C \\\n %x5D-D7FF /\n ; skip surrogate code points\n %xE000-10FFFF\n\nnormal-escapable = %x62 / ; b BS backspace U+0008\n %x66 / ; f FF form feed U+000C\n %x6E / ; n LF line feed U+000A\n %x72 / ; r CR carriage return U+000D\n %x74 / ; t HT horizontal tab U+0009\n "\'" / ; \' apostrophe U+0027\n "\\" / ; \\ backslash (reverse solidus) U+005C\n (%x75 normal-hexchar)\n ; certain values u00xx U+00XX\nnormal-hexchar = "0" "0"\n (\n ("0" %x30-37) / ; "00"-"07"\n ; omit U+0008-U+000A BS HT LF\n ("0" %x62) / ; "0b"\n ; omit U+000C-U+000D FF CR\n ("0" %x65-66) / ; "0e"-"0f"\n ("1" normal-HEXDIG)\n )\nnormal-HEXDIG = DIGIT / %x61-66 ; "0"-"9", "a"-"f"\nnormal-index-selector = "0" / (DIGIT1 *DIGIT)\n ; non-negative decimal integer\n\n; Surrogate named rules\ndot-prefix = "."\ndouble-dot-prefix = ".."\nleft-bracket = "["\nright-bracket = "]"\nleft-paren = "("\nright-paren = ")"\ncomma = ","\ncolon = ":"\ndquote = %x22 ; "\nsquote = %x27 ; \'\nquestionmark = "?"\ndisjunction = "||"\nconjunction = "&&"\n'}};const ee=class extends Z{},te=e=>{if(!Array.isArray(e))throw new ee("Selectors must be an array, got: "+typeof e,{selectors:e});try{return`$${e.map(e=>{if("string"==typeof e)return`['${(e=>{if("string"!=typeof e)throw new TypeError("Selector must be a string");let t="";for(const r of e){const e=r.codePointAt(0);switch(e){case 8:t+="\\b";break;case 9:t+="\\t";break;case 10:t+="\\n";break;case 12:t+="\\f";break;case 13:t+="\\r";break;case 39:t+="\\'";break;case 92:t+="\\\\";break;default:t+=e<=31?`\\u${e.toString(16).padStart(4,"0")}`:r}}return t})(e)}']`;if("number"==typeof e){if(!Number.isSafeInteger(e)||e<0)throw new TypeError(`Index selector must be a non-negative safe integer, got: ${e}`);return`[${e}]`}throw new TypeError("Selector must be a string or non-negative integer, got: "+typeof e)}).join("")}`}catch(t){throw new ee("Failed to compile normalized JSONPath",{cause:t,selectors:e})}},re=(e,t,r,s)=>{const{realm:n}=e,{value:o}=r;if(n.isObject(t)&&n.hasProperty(t,o)){s(n.getProperty(t,o),o)}},se=(e,t,r,s)=>{const{realm:n}=e,{value:o}=r;if(!n.isArray(t))return;const i=n.getLength(t),c=((e,t)=>e>=0?e:t+e)(o,i);if(c>=0&&c<i){s(n.getElement(t,c),c)}},ne=(e,t,r,s)=>{const{realm:n}=e;for(const[e,r]of n.entries(t))s(r,e)},oe=(e,t)=>e>=0?Math.min(e,t):Math.max(t+e,0),ie=(e,t,r,s)=>{const{realm:n}=e,{start:o,end:i,step:c}=r;if(!n.isArray(t))return;const a=((e,t,r,s)=>{const n=r??1;if(0===n)return null;let o,i;if(n>0){const r=0,n=s,c=null!==e?oe(e,s):r,a=null!==t?oe(t,s):n;o=Math.max(c,0),i=Math.min(a,s)}else{const r=s-1,n=-s-1,c=null!==e?e>=0?Math.min(e,s-1):Math.max(s+e,-1):r,a=null!==t?t>=0?Math.min(t,s-1):Math.max(s+t,-1):n;i=Math.min(c,s-1),o=Math.max(a,-1)}return{lower:o,upper:i,step:n}})(o,i,c,n.getLength(t));if(null===a)return;const{lower:l,upper:u,step:p}=a;if(p>0)for(let e=l;e<u;e+=p){s(n.getElement(t,e),e)}else for(let e=u;e>l;e+=p){s(n.getElement(t,e),e)}},ce=(e,t,r,s)=>s.value,ae=(e,t,r)=>{const{realm:s}=e,{selector:n}=r;switch(n.type){case"NameSelector":{const{value:e}=n;return s.isObject(t)&&s.hasProperty(t,e)?s.getProperty(t,e):void 0}case"IndexSelector":{const{value:e}=n;if(!s.isArray(t))return;const r=s.getLength(t),o=e>=0?e:r+e;return o>=0&&o<r?s.getElement(t,o):void 0}default:return}},le=(e,t,r,s)=>{const{selectors:n}=r;for(const r of n)ke(e,t,r,s)},ue=(e,t,r)=>{const s=[],n=e=>{s.push(e)},{selector:o}=r;switch(o.type){case"BracketedSelection":le(e,t,o,n);break;case"NameSelector":case"WildcardSelector":case"IndexSelector":case"SliceSelector":case"FilterSelector":ke(e,t,o,n)}return s},pe=(e,t,r,s)=>{let n=r;for(const t of s){const r=[];if("DescendantSegment"===t.type){const s=n=>{const{realm:o}=e,i=ue(e,n,t);r.push(...i);for(const[,e]of o.entries(n))s(e)};for(const e of n)s(e)}else for(const s of n){const n=ue(e,s,t);r.push(...n)}n=r}return n},de=(e,t,r,s)=>{const{query:n}=s;let o;switch(n.type){case"RelQuery":o=((e,t,r,s)=>{const{segments:n}=s;return 0===n.length?[r]:pe(e,0,[r],n)})(e,0,r,n);break;case"JsonPathQuery":o=((e,t,r,s)=>{const{segments:n}=s;return 0===n.length?[t]:pe(e,0,[t],n)})(e,t,0,n);break;default:o=[]}return i=o,Object.defineProperty(i,"_isNodelist",{value:!0,enumerable:!1,writable:!1}),i;var i};let he;const fe=(e,t,r,s)=>{const{name:n,arguments:o}=s,i=e.functions[n];if("function"!=typeof i)return;const c=o.map(s=>((e,t,r,s)=>{switch(s.type){case"Literal":case"RelSingularQuery":case"AbsSingularQuery":case"FunctionExpr":return ye(e,t,r,s);case"FilterQuery":return de(e,t,r,s);case"TestExpr":return"FilterQuery"===s.expression.type?de(e,t,r,s.expression):"FunctionExpr"===s.expression.type?ye(e,t,r,s.expression):he(e,t,r,s);case"LogicalOrExpr":case"LogicalAndExpr":case"LogicalNotExpr":case"ComparisonExpr":return he(e,t,r,s);default:return}})(e,t,r,s));return i(e.realm,...c)},ye=(e,t,r,s)=>{switch(s.type){case"Literal":return ce(e,t,r,s);case"RelSingularQuery":return((e,t,r,s)=>{let n=r;for(const t of s.segments)if(n=ae(e,n,t),void 0===n)return;return n})(e,0,r,s);case"AbsSingularQuery":return((e,t,r,s)=>{let n=t;for(const t of s.segments)if(n=ae(e,n,t),void 0===n)return;return n})(e,t,0,s);case"FunctionExpr":return fe(e,t,r,s);default:return}},me=(e,t,r,s)=>{const{left:n,op:o,right:i}=s,c=ye(e,t,r,n),a=ye(e,t,r,i);return e.realm.compare(c,o,a)},ge=e=>Array.isArray(e),xe=(e,t,r,s)=>{switch(s.type){case"LogicalOrExpr":return!!xe(e,t,r,s.left)||xe(e,t,r,s.right);case"LogicalAndExpr":return!!xe(e,t,r,s.left)&&xe(e,t,r,s.right);case"LogicalNotExpr":return!xe(e,t,r,s.expression);case"TestExpr":{const{expression:n}=s;if("FilterQuery"===n.type){return de(e,t,r,n).length>0}if("FunctionExpr"===n.type){const s=fe(e,t,r,n);return"boolean"==typeof s?s:void 0!==s&&(ge(s)?s.length>0:Boolean(s))}return!1}case"ComparisonExpr":return me(e,t,r,s);default:return!1}};he=xe;const be=xe,we=(e,t,r,s)=>{const{realm:n,root:o}=e,{expression:i}=r;for(const[r,c]of n.entries(t)){be(e,o,c,i)&&s(c,r)}},ke=(e,t,r,s)=>{switch(r.type){case"NameSelector":re(e,t,r,s);break;case"IndexSelector":se(e,t,r,s);break;case"WildcardSelector":ne(e,t,r,s);break;case"SliceSelector":ie(e,t,r,s);break;case"FilterSelector":we(e,t,r,s)}};new Map;class ve{node;key;index;parent;parentPath;inList;#e=!1;#t=!1;#r=!1;#s=!1;#n;#o=!1;constructor(e,t,r,s,n){this.node=e,this.parent=t,this.parentPath=r,this.key=s,this.index=n&&"number"==typeof s?s:void 0,this.inList=n}get shouldSkip(){return this.#e}get shouldStop(){return this.#t}get removed(){return this.#r}isRoot(){return null===this.parentPath}get depth(){let e=0,t=this.parentPath;for(;null!==t;)e+=1,t=t.parentPath;return e}getAncestry(){const e=[];let t=this.parentPath;for(;null!==t;)e.push(t),t=t.parentPath;return e}getAncestorNodes(){return this.getAncestry().map(e=>e.node)}getPathKeys(){const e=[];let t=this;for(;null!==t&&void 0!==t.key;){const{key:r,parent:s,parentPath:n}=t;if(G(s)&&"value"===r){if(!_(s.key))throw new TypeError("MemberElement.key must be a StringElement");e.unshift(s.key.toValue())}else U(n?.node)&&"number"==typeof r&&e.unshift(r);t=t.parentPath}return e}formatPath(e="jsonpointer"){const t=this.getPathKeys();return 0===t.length?"jsonpath"===e?"$":"":"jsonpath"===e?te(t):Q(t)}findParent(e){let t=this.parentPath;for(;null!==t;){if(e(t))return t;t=t.parentPath}return null}find(e){return e(this)?this:this.findParent(e)}skip(){this.#e=!0}stop(){this.#t=!0}replaceWith(e){this.#o&&console.warn("Warning: replaceWith() called on a stale Path. This path belongs to a node whose visit has already completed. The replacement will have no effect. To replace a parent node, do so from the parent's own visitor."),this.#s=!0,this.#n=e,this.node=e}remove(){this.#o&&console.warn("Warning: remove() called on a stale Path. This path belongs to a node whose visit has already completed. The removal will have no effect. To remove a parent node, do so from the parent's own visitor."),this.#r=!0}_getReplacementNode(){return this.#n}_wasReplaced(){return this.#s}_reset(){this.#e=!1,this.#t=!1,this.#r=!1,this.#s=!1,this.#n=void 0}_markStale(){this.#o=!0}}class Ae extends AggregateError{constructor(e,t,r){super(e,t,r),this.name=this.constructor.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const Te=Ae;class Oe extends Error{static[Symbol.hasInstance](e){return super[Symbol.hasInstance](e)||Function.prototype[Symbol.hasInstance].call(Te,e)}constructor(e,t){super(e,t),this.name=this.constructor.name,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const Se=Oe;const Ie=class extends Se{constructor(e,t){if(super(e,t),null!=t&&"object"==typeof t){const{cause:e,...r}=t;Object.assign(this,r)}}};function Ee(e,t){switch(e){case 0:return function(){return t.apply(this,arguments)};case 1:return function(e){return t.apply(this,arguments)};case 2:return function(e,r){return t.apply(this,arguments)};case 3:return function(e,r,s){return t.apply(this,arguments)};case 4:return function(e,r,s,n){return t.apply(this,arguments)};case 5:return function(e,r,s,n,o){return t.apply(this,arguments)};case 6:return function(e,r,s,n,o,i){return t.apply(this,arguments)};case 7:return function(e,r,s,n,o,i,c){return t.apply(this,arguments)};case 8:return function(e,r,s,n,o,i,c,a){return t.apply(this,arguments)};case 9:return function(e,r,s,n,o,i,c,a,l){return t.apply(this,arguments)};case 10:return function(e,r,s,n,o,i,c,a,l,u){return t.apply(this,arguments)};default:throw new Error("First argument to _arity must be a non-negative integer no greater than ten")}}function Ce(e,t,s){return function(){for(var n=[],o=0,i=e,c=0,a=!1;c<t.length||o<arguments.length;){var l;c<t.length&&(!r(t[c])||o>=arguments.length)?l=t[c]:(l=arguments[o],o+=1),n[c]=l,r(l)?a=!0:i-=1,c+=1}return!a&&i<=0?s.apply(this,n):Ee(Math.max(0,i),Ce(e,n,s))}}var Fe=n(function(e,t){return 1===e?s(t):Ee(e,Ce(e,[],t))});const Me=Fe;function je(e){var t=Object.prototype.toString.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t||"[object GeneratorFunction]"===t||"[object AsyncGeneratorFunction]"===t}const De=n(function(e,t){return e&&t});function Be(e,t,r){for(var s=0,n=r.length;s<n;)t=e(t,r[s]),s+=1;return t}const Ne=Array.isArray||function(e){return null!=e&&e.length>=0&&"[object Array]"===Object.prototype.toString.call(e)};const Pe=s(function(e){return!!Ne(e)||!!e&&("object"==typeof e&&(!function(e){return"[object String]"===Object.prototype.toString.call(e)}(e)&&(0===e.length||e.length>0&&(e.hasOwnProperty(0)&&e.hasOwnProperty(e.length-1)))))});var qe="undefined"!=typeof Symbol?Symbol.iterator:"@@iterator";function Le(e,t,r){return function(s,n,o){if(Pe(o))return e(s,n,o);if(null==o)return n;if("function"==typeof o["fantasy-land/reduce"])return t(s,n,o,"fantasy-land/reduce");if(null!=o[qe])return r(s,n,o[qe]());if("function"==typeof o.next)return r(s,n,o);if("function"==typeof o.reduce)return t(s,n,o,"reduce");throw new TypeError("reduce: list must be array or iterable")}}function _e(e,t,r){for(var s=r.next();!s.done;)t=e(t,s.value),s=r.next();return t}function Ue(e,t,r,s){return r[s](e,t)}const He=Le(Be,Ue,_e);function Ge(e,t,r){return function(){if(0===arguments.length)return r();var s=arguments[arguments.length-1];if(!Ne(s)){for(var n=0;n<e.length;){if("function"==typeof s[e[n]])return s[e[n]].apply(s,Array.prototype.slice.call(arguments,0,-1));n+=1}if(function(e){return null!=e&&"function"==typeof e["@@transducer/step"]}(s))return t.apply(null,Array.prototype.slice.call(arguments,0,-1))(s)}return r.apply(this,arguments)}}function ze(e,t){for(var r=0,s=t.length,n=Array(s);r<s;)n[r]=e(t[r]),r+=1;return n}const Re=function(){return this.xf["@@transducer/init"]()},$e=function(e){return this.xf["@@transducer/result"](e)};var Ve=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=Re,e.prototype["@@transducer/result"]=$e,e.prototype["@@transducer/step"]=function(e,t){return this.xf["@@transducer/step"](e,this.f(t))},e}();var Xe=n(Ge(["fantasy-land/map","map"],function(e){return function(t){return new Ve(e,t)}},function(e,t){switch(Object.prototype.toString.call(t)){case"[object Function]":return Me(t.length,function(){return e.call(this,t.apply(this,arguments))});case"[object Object]":return Be(function(r,s){return r[s]=e(t[s]),r},{},m(t));default:return ze(e,t)}}));const We=Xe;const Ye=n(function(e,t){return"function"==typeof t["fantasy-land/ap"]?t["fantasy-land/ap"](e):"function"==typeof e.ap?e.ap(t):"function"==typeof e?function(r){return e(r)(t(r))}:He(function(e,r){return function(e,t){var r;t=t||[];var s=(e=e||[]).length,n=t.length,o=[];for(r=0;r<s;)o[o.length]=e[r],r+=1;for(r=0;r<n;)o[o.length]=t[r],r+=1;return o}(e,We(r,t))},[],e)});var Ke=n(function(e,t){var r=Me(e,t);return Me(e,function(){return Be(Ye,We(r,arguments[0]),Array.prototype.slice.call(arguments,1))})});const Qe=Ke;var Je=s(function(e){return Qe(e.length,e)});const Ze=Je;const et=n(function(e,t){return je(e)?function(){return e.apply(this,arguments)&&t.apply(this,arguments)}:Ze(De)(e,t)});function tt(e,t){return function(){return t.call(this,e.apply(this,arguments))}}function rt(e){return function t(o,i,c){switch(arguments.length){case 0:return t;case 1:return r(o)?t:n(function(t,r){return e(o,t,r)});case 2:return r(o)&&r(i)?t:r(o)?n(function(t,r){return e(t,i,r)}):r(i)?n(function(t,r){return e(o,t,r)}):s(function(t){return e(o,i,t)});default:return r(o)&&r(i)&&r(c)?t:r(o)&&r(i)?n(function(t,r){return e(t,r,c)}):r(o)&&r(c)?n(function(t,r){return e(t,i,r)}):r(i)&&r(c)?n(function(t,r){return e(o,t,r)}):r(o)?s(function(t){return e(t,i,c)}):r(i)?s(function(t){return e(o,t,c)}):r(c)?s(function(t){return e(o,i,t)}):e(o,i,c)}}}function st(e,t,r){for(var s=0,n=r.length;s<n;){if((t=e["@@transducer/step"](t,r[s]))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}s+=1}return e["@@transducer/result"](t)}var nt=n(function(e,t){return Ee(e.length,function(){return e.apply(t,arguments)})});const ot=nt;function it(e,t,r){for(var s=r.next();!s.done;){if((t=e["@@transducer/step"](t,s.value))&&t["@@transducer/reduced"]){t=t["@@transducer/value"];break}s=r.next()}return e["@@transducer/result"](t)}function ct(e,t,r,s){return e["@@transducer/result"](r[s](ot(e["@@transducer/step"],e),t))}const at=Le(st,ct,it);var lt=function(){function e(e){this.f=e}return e.prototype["@@transducer/init"]=function(){throw new Error("init not implemented on XWrap")},e.prototype["@@transducer/result"]=function(e){return e},e.prototype["@@transducer/step"]=function(e,t){return this.f(e,t)},e}();var ut=rt(function(e,t,r){return at("function"==typeof e?function(e){return new lt(e)}(e):e,t,r)});const pt=ut;function dt(e,t){return function(){var r=arguments.length;if(0===r)return t();var s=arguments[r-1];return Ne(s)||"function"!=typeof s[e]?t.apply(this,arguments):s[e].apply(s,Array.prototype.slice.call(arguments,0,r-1))}}const ht=s(dt("tail",rt(dt("slice",function(e,t,r){return Array.prototype.slice.call(r,e,t)}))(1,1/0)));function ft(){if(0===arguments.length)throw new Error("pipe requires at least one argument");return Ee(arguments[0].length,pt(tt,arguments[0],ht(arguments)))}function yt(e,t){return function(e,t,r){var s,n;if("function"==typeof e.indexOf)switch(typeof t){case"number":if(0===t){for(s=1/t;r<e.length;){if(0===(n=e[r])&&1/n===s)return r;r+=1}return-1}if(t!=t){for(;r<e.length;){if("number"==typeof(n=e[r])&&n!=n)return r;r+=1}return-1}return e.indexOf(t,r);case"string":case"boolean":case"function":case"undefined":return e.indexOf(t,r);case"object":if(null===t)return e.indexOf(t,r)}for(;r<e.length;){if(w(e[r],t))return r;r+=1}return-1}(t,e,0)>=0}function mt(e){return'"'+e.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var gt=function(e){return(e<10?"0":"")+e};const xt="function"==typeof Date.prototype.toISOString?function(e){return e.toISOString()}:function(e){return e.getUTCFullYear()+"-"+gt(e.getUTCMonth()+1)+"-"+gt(e.getUTCDate())+"T"+gt(e.getUTCHours())+":"+gt(e.getUTCMinutes())+":"+gt(e.getUTCSeconds())+"."+(e.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};var bt=function(){function e(e,t){this.xf=t,this.f=e}return e.prototype["@@transducer/init"]=Re,e.prototype["@@transducer/result"]=$e,e.prototype["@@transducer/step"]=function(e,t){return this.f(t)?this.xf["@@transducer/step"](e,t):e},e}();function wt(e){return function(t){return new bt(e,t)}}var kt=n(Ge(["fantasy-land/filter","filter"],wt,function(e,t){return r=t,"[object Object]"===Object.prototype.toString.call(r)?Be(function(r,s){return e(t[s])&&(r[s]=t[s]),r},{},m(t)):function(e){return"[object Map]"===Object.prototype.toString.call(e)}(t)?function(e,t){for(var r=new Map,s=t.entries(),n=s.next();!n.done;)e(n.value[1])&&r.set(n.value[0],n.value[1]),n=s.next();return r}(e,t):function(e,t){for(var r=0,s=t.length,n=[];r<s;)e(t[r])&&(n[n.length]=t[r]),r+=1;return n}(e,t);var r}));const vt=kt;const At=n(function(e,t){return vt((r=e,function(){return!r.apply(this,arguments)}),t);var r});function Tt(e,t){var r=function(r){var s=t.concat([e]);return yt(r,s)?"<Circular>":Tt(r,s)},s=function(e,t){return ze(function(t){return mt(t)+": "+r(e[t])},t.slice().sort())};switch(Object.prototype.toString.call(e)){case"[object Arguments]":return"(function() { return arguments; }("+ze(r,e).join(", ")+"))";case"[object Array]":return"["+ze(r,e).concat(s(e,At(function(e){return/^\d+$/.test(e)},m(e)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof e?"new Boolean("+r(e.valueOf())+")":e.toString();case"[object Date]":return"new Date("+(isNaN(e.valueOf())?r(NaN):mt(xt(e)))+")";case"[object Map]":return"new Map("+r(Array.from(e))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof e?"new Number("+r(e.valueOf())+")":1/e==-1/0?"-0":e.toString(10);case"[object Set]":return"new Set("+r(Array.from(e).sort())+")";case"[object String]":return"object"==typeof e?"new String("+r(e.valueOf())+")":mt(e);case"[object Undefined]":return"undefined";default:if("function"==typeof e.toString){var n=e.toString();if("[object Object]"!==n)return n}return"{"+s(e,m(e)).join(", ")+"}"}}const Ot=s(function(e){return Tt(e,[])});const St=n(function(e,t){return e||t});const It=n(function(e,t){return je(e)?function(){return e.apply(this,arguments)||t.apply(this,arguments)}:Ze(St)(e,t)});const Et=Ze(s(function(e){return!e}))(w(null));const Ct=n(function(e,t){if(e===t)return t;function r(e,t){if(e>t!=t>e)return t>e?t:e}var s=r(e,t);if(void 0!==s)return s;var n=r(typeof e,typeof t);if(void 0!==n)return n===typeof e?e:t;var o=Ot(e),i=r(o,Ot(t));return void 0!==i&&i===o?e:t}),Ft=Number.isInteger||function(e){return(e|0)===e};const Mt=n(function(e,t){var r,s;if(null!=t)return Ft(e)?(s=t)[(r=e)<0?s.length+r:r]:t[e]});const jt=n(function(e,t){return We(Mt(e),t)});const Dt=s(function(e){return Me(pt(Ct,0,jt("length",e)),function(){for(var t=0,r=e.length;t<r;){if(e[t].apply(this,arguments))return!0;t+=1}return!1})});var Bt=function(e,t){switch(arguments.length){case 0:return Bt;case 1:return function t(r){return 0===arguments.length?t:a(e,r)};default:return a(e,t)}};const Nt=Bt;const Pt=Me(1,ft(g,Nt("GeneratorFunction")));const qt=Me(1,ft(g,Nt("AsyncFunction")));var Lt=Dt([ft(g,Nt("Function")),Pt,qt]);function _t(e){return _t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_t(e)}var Ut=Me(1,et(Et,It(function(e){return"object"===_t(e)},Lt)));const Ht=Me(1,et(Ut,ft(Ot,w("[object Promise]"))));const Gt=e=>"number"==typeof e.startLine&&"number"==typeof e.startCharacter&&"number"==typeof e.startOffset&&"number"==typeof e.endLine&&"number"==typeof e.endCharacter&&"number"==typeof e.endOffset;class zt extends j{constructor(e,t,r){super(e,t,r),this.element="sourceMap"}static transfer(e,t){t.startLine=e.startLine,t.startCharacter=e.startCharacter,t.startOffset=e.startOffset,t.endLine=e.endLine,t.endCharacter=e.endCharacter,t.endOffset=e.endOffset}static from(e){const{startLine:t,startCharacter:r,startOffset:s,endLine:n,endCharacter:o,endOffset:i}=e;if("number"!=typeof t||"number"!=typeof r||"number"!=typeof s||"number"!=typeof n||"number"!=typeof o||"number"!=typeof i)return;const c="sm1:"+[t,r,s,n,o,i].map($t).join("");const a=new zt(c);return a.startLine=t,a.startCharacter=r,a.startOffset=s,a.endLine=n,a.endCharacter=o,a.endOffset=i,a}applyTo(e){this.content&&([e.startLine,e.startCharacter,e.startOffset,e.endLine,e.endCharacter,e.endOffset]=function(e){const t=e.startsWith("sm1:")?e.slice(4):e,r=[];let s=0;for(let e=0;e<6;e++){const e=Vt(t,s);r.push(e.value),s=e.next}return r}(this.content))}}const Rt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function $t(e){let t=e>>>0,r="";do{let e=31&t;t>>>=5,0!==t&&(e|=32),r+=Rt[e]}while(0!==t);return r}function Vt(e,t=0){let r=0,s=0,n=t;for(;;){const t=e[n++],o=Rt.indexOf(t);if(-1===o)throw new Error(`Invalid Base64 VLQ char: ${t}`);if(r|=(31&o)<<s,s+=5,!!!(32&o))break}return{value:r>>>0,next:n}}const Xt=zt;const Wt=class extends Ie{value;constructor(e,t){super(e,t),void 0!==t&&(this.value=t.value)}};const Yt=class extends Wt{};const Kt=class extends Wt{},Qt=(e,t)=>{const{visited:r=new WeakMap}=t,s={...t,visited:r};if(r.has(e))return r.get(e);const n=tr(e);r.set(e,n);const{content:o}=e;return Array.isArray(o)?n.content=o.map(e=>Qt(e,s)):L(o)?n.content=Qt(o,s):n.content=o instanceof S?Jt(o,s):o,n},Jt=(e,t)=>{const{visited:r=new WeakMap}=t,s={...t,visited:r};if(r.has(e))return r.get(e);const{key:n,value:o}=e,i=void 0!==n?Qt(n,s):void 0,c=void 0!==o?Qt(o,s):void 0,a=new S(i,c);return r.set(e,a),a},Zt=(e,t={})=>{if(e instanceof S)return Jt(e,t);if(e instanceof E)return((e,t)=>{const{visited:r=new WeakMap}=t,s={...t,visited:r};if(r.has(e))return r.get(e);const n=[...e].map(e=>Qt(e,s)),o=new E(n);return r.set(e,o),o})(e,t);if(L(e))return Qt(e,t);throw new Yt("Value provided to cloneDeep function couldn't be cloned",{value:e})};Zt.safe=e=>{try{return Zt(e)}catch{return e}};const er=e=>{const{key:t,value:r}=e;return new S(t,r)},tr=e=>{const t=new(0,e.constructor);t.element=e.element,e.isMetaEmpty||(t.meta=e.meta.cloneDeep()),e.isAttributesEmpty||(t.attributes=Zt(e.attributes)),Gt(e)&&Xt.transfer(e,t),(e=>void 0!==e.style)(e)&&(t.style=A(e.style));const{content:r}=e;return L(r)?t.content=tr(r):Array.isArray(r)?t.content=[...r]:t.content=r instanceof S?er(r):r,t},rr=e=>{if(e instanceof S)return er(e);if(e instanceof E)return(e=>{const t=[...e];return new E(t)})(e);if(L(e))return tr(e);throw new Kt("Value provided to cloneShallow function couldn't be cloned",{value:e})};rr.safe=e=>{try{return rr(e)}catch{return e}};const sr=e=>{const t=e?.element;return void 0===t||"element"===t?"Element":`${t.charAt(0).toUpperCase()}${t.slice(1)}Element`},nr=e=>{const t=e.primitive();return void 0===t||"element"===t?"Element":`${t.charAt(0).toUpperCase()}${t.slice(1)}Element`},or=e=>L(e),ir=e=>rr(e),cr=(e,t,r)=>{G(e)?e.value=r:Array.isArray(e)?e[t]=null===r?void 0:r:null===r?delete e[t]:e[t]=r},ar=e=>G(e)?["key","value"]:U(e)||H(e)?["content"]:[],lr=(e,t)=>{if(void 0!==e[t])return e[t];const r=t.length;for(const s in e){if(!s.includes("|"))continue;const n=s.indexOf(t);if(-1===n)continue;const o=0===n||"|"===s[n-1],i=n+r===s.length||"|"===s[n+r];if(o&&i)return e[s]}},ur=(e,t,r)=>{if(void 0===t)return null;const s=e,n=r?"leave":"enter",o=lr(s,t);if(!r&&"function"==typeof o)return o;if(null!=o){const e=o[n];if("function"==typeof e)return e}const i=s[n];if("function"==typeof i)return i;if(null!=i){const e=lr(i,t);if("function"==typeof e)return e}return null},pr=(e,t={})=>{const{visitFnGetter:r=ur,nodeTypeGetter:s=sr,exposeEdits:n=!1}=t,o=Symbol("internal-skip"),i=Symbol("break"),c=new Array(e.length).fill(o);return{enter(t){let a=t.node,l=!1;for(let u=0;u<e.length;u+=1)if(c[u]===o){const o=r(e[u],s(a),!1);if("function"==typeof o){const r=hr(t,a),s=o.call(e[u],r);if(Ht(s))throw new Ie("Async visitor not supported in sync mode",{visitor:e[u],visitFn:o});if(r.shouldStop&&(c[u]=i),r.shouldSkip&&(c[u]=a),r.removed)return void t.remove();if(r._wasReplaced()){const e=r._getReplacementNode();if(!n)return t.replaceWith(e),e;a=e,l=!0}else if(void 0!==s){if(!n)return t.replaceWith(s),s;a=s,l=!0}}}if(c.every(e=>e===i)&&t.stop(),l)return t.replaceWith(a),a},leave(t){const n=t.node;for(let a=0;a<e.length;a+=1)if(c[a]===o){const o=r(e[a],s(n),!0);if("function"==typeof o){const r=hr(t,n),s=o.call(e[a],r);if(Ht(s))throw new Ie("Async visitor not supported in sync mode",{visitor:e[a],visitFn:o});if(r.shouldStop&&(c[a]=i),r.removed)return void t.remove();if(r._wasReplaced()){const e=r._getReplacementNode();return t.replaceWith(e),e}if(void 0!==s)return t.replaceWith(s),s}}else c[a]===n&&(c[a]=o);c.every(e=>e===i)&&t.stop()}}},dr=(e,t={})=>{const{visitFnGetter:r=ur,nodeTypeGetter:s=sr,exposeEdits:n=!1}=t,o=Symbol("internal-skip"),i=Symbol("break"),c=new Array(e.length).fill(o);return{async enter(t){let a=t.node,l=!1;for(let u=0;u<e.length;u+=1)if(c[u]===o){const o=r(e[u],s(a),!1);if("function"==typeof o){const r=hr(t,a),s=await o.call(e[u],r);if(r.shouldStop&&(c[u]=i),r.shouldSkip&&(c[u]=a),r.removed)return void t.remove();if(r._wasReplaced()){const e=r._getReplacementNode();if(!n)return t.replaceWith(e),e;a=e,l=!0}else if(void 0!==s){if(!n)return t.replaceWith(s),s;a=s,l=!0}}}if(c.every(e=>e===i)&&t.stop(),l)return t.replaceWith(a),a},async leave(t){const n=t.node;for(let a=0;a<e.length;a+=1)if(c[a]===o){const o=r(e[a],s(n),!0);if("function"==typeof o){const r=hr(t,n),s=await o.call(e[a],r);if(r.shouldStop&&(c[a]=i),r.removed)return void t.remove();if(r._wasReplaced()){const e=r._getReplacementNode();return t.replaceWith(e),e}if(void 0!==s)return t.replaceWith(s),s}}else c[a]===n&&(c[a]=o);c.every(e=>e===i)&&t.stop()}}};function hr(e,t){return new ve(t,e.parent,e.parentPath,e.key,e.inList)}function*fr(e,t,r){const{keyMap:s,state:n,nodeTypeGetter:o,nodePredicate:i,nodeCloneFn:c,detectCycles:a,skipVisited:l,mutable:u,mutationFn:p}=r,d="function"==typeof s,h=l?new WeakSet:null;let f,y,m=Array.isArray(e),g=[e],x=-1,b=[],w=e,k=null,v=null;const A=[];do{x+=1;const e=x===g.length;let r;const T=e&&0!==b.length;if(e){if(r=0===A.length?void 0:k?.key,w=y,y=A.pop(),v=k?.parentPath?.parentPath??null,T)if(u)for(const[e,t]of b)p(w,e,t);else if(m){w=w.slice();let e=0;for(const[t,r]of b){const s=t-e;null===r?(w.splice(s,1),e+=1):w[s]=r}}else{w=c(w);for(const[e,t]of b)w[e]=t}if(void 0!==f){x=f.index,g=f.keys,b=f.edits;const e=f.inArray;if(v=f.parentPath,f=f.prev,T&&!u){const t=e?x:g[x];b.push([t,w])}m=e}}else if(void 0!==y&&(r=m?x:g[x],w=y[r],void 0===w))continue;if(!Array.isArray(w)){if(!i(w))throw new Ie(`Invalid AST Node: ${String(w)}`,{node:w});if(a&&A.includes(w))continue;if(l&&!e){if(h.has(w))continue;h.add(w)}k=new ve(w,y,v,r,m);const s=ur(t,o(w),e);if(s){for(const[e,r]of Object.entries(n))t[e]=r;const o=yield{visitFn:s,path:k,isLeaving:e};if(k.shouldStop)break;if(k.removed){if(b.push([r,null]),!e)continue}else if(k._wasReplaced()){const t=k._getReplacementNode();if(b.push([r,t]),!e){if(k.shouldSkip)continue;if(!i(t))continue;w=t}}else if(k.shouldSkip){if(!e)continue}else if(void 0!==o&&(b.push([r,o]),!e)){if(!i(o))continue;w=o}k._markStale()}}if(!e){if(f={inArray:m,index:x,keys:g,edits:b,parentPath:v,prev:f},m=Array.isArray(w),m)g=w;else if(d)g=s(w);else{const e=o(w);g=void 0!==e?s[e]??[]:[]}x=-1,b=[],void 0!==y&&A.push(y),y=w,v=k}}while(void 0!==f);return 0!==b.length?b.at(-1)[1]:e}pr[Symbol.for("nodejs.util.promisify.custom")]=dr;const yr=(e,t,r={})=>{const s=fr(e,t,{keyMap:r.keyMap??ar,state:r.state??{},nodeTypeGetter:r.nodeTypeGetter??sr,nodePredicate:r.nodePredicate??or,nodeCloneFn:r.nodeCloneFn??ir,detectCycles:r.detectCycles??!0,skipVisited:r.skipVisited??!1,mutable:r.mutable??!1,mutationFn:r.mutationFn??cr});let n=s.next();for(;!n.done;){const e=n.value,r=e.visitFn.call(t,e.path);if(Ht(r))throw new Ie("Async visitor not supported in sync mode",{visitor:t,visitFn:e.visitFn});n=s.next(r)}return n.value},mr=async(e,t,r={})=>{const s=fr(e,t,{keyMap:r.keyMap??ar,state:r.state??{},nodeTypeGetter:r.nodeTypeGetter??sr,nodePredicate:r.nodePredicate??or,nodeCloneFn:r.nodeCloneFn??ir,detectCycles:r.detectCycles??!0,skipVisited:r.skipVisited??!1,mutable:r.mutable??!1,mutationFn:r.mutationFn??cr});let n=s.next();for(;!n.done;){const e=n.value,r=await e.visitFn.call(t,e.path);n=s.next(r)}return n.value};yr[Symbol.for("nodejs.util.promisify.custom")]=mr;const gr=(e,t)=>{const r=[];return yr(e,{enter(e){t(e)&&r.push(e)}}),r},xr=(e,t)=>{let r;return yr(e,{enter(e){t(e)&&(r=e,e.stop())}}),r},br=(e,t)=>void 0!==xr(e,t),wr=(e,t)=>gr(e,e=>!t(e)),kr=(e,t)=>{let r,s;"function"==typeof t?(r=t,s=()=>!0):(r=t.callback??(()=>{}),s=t.predicate??(()=>!0)),yr(e,{enter(e){s(e)&&r(e)}})},vr=e=>{const t=new WeakMap;return yr(e,{enter(e){t.set(e.node,e.parentPath?.node)}}),t},Ar=(e,t)=>{let r,s;"number"==typeof t?(r=t,s=!1):(r=t.offset??0,s=t.includeRightBound??!1);const n=[];return yr(e,{enter(e){const t=e.node;if(!Gt(t))return;const o=t.startOffset,i=t.endOffset;r>=o&&(r<i||s&&r<=i)?n.push(e):e.skip()}}),n.at(-1)};return ve.prototype.traverse=function(e,t){return yr(this.node,e,t)},ve.prototype.traverseAsync=function(e,t){return mr(this.node,e,t)},t})());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speclynx/apidom-traverse",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.8.0",
|
|
4
4
|
"description": "Traversal and visitor utilities for walking and transforming ApiDOM structures.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"apidom",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
"license": "Apache-2.0",
|
|
62
62
|
"dependencies": {
|
|
63
63
|
"@babel/runtime-corejs3": "^7.28.4",
|
|
64
|
-
"@speclynx/apidom-datamodel": "4.
|
|
65
|
-
"@speclynx/apidom-error": "4.
|
|
66
|
-
"@speclynx/apidom-json-path": "4.
|
|
67
|
-
"@speclynx/apidom-json-pointer": "4.
|
|
64
|
+
"@speclynx/apidom-datamodel": "4.8.0",
|
|
65
|
+
"@speclynx/apidom-error": "4.8.0",
|
|
66
|
+
"@speclynx/apidom-json-path": "4.8.0",
|
|
67
|
+
"@speclynx/apidom-json-pointer": "4.8.0",
|
|
68
68
|
"ramda-adjunct": "^6.0.0"
|
|
69
69
|
},
|
|
70
70
|
"files": [
|
|
@@ -77,5 +77,5 @@
|
|
|
77
77
|
"README.md",
|
|
78
78
|
"CHANGELOG.md"
|
|
79
79
|
],
|
|
80
|
-
"gitHead": "
|
|
80
|
+
"gitHead": "ef77101edfc6567d9b265bc30708bf2c65fd1d15"
|
|
81
81
|
}
|
package/src/traversal.cjs
CHANGED
|
@@ -33,10 +33,12 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
33
33
|
nodePredicate,
|
|
34
34
|
nodeCloneFn,
|
|
35
35
|
detectCycles,
|
|
36
|
+
skipVisited,
|
|
36
37
|
mutable,
|
|
37
38
|
mutationFn
|
|
38
39
|
} = options;
|
|
39
40
|
const keyMapIsFunction = typeof keyMap === 'function';
|
|
41
|
+
const visitedNodes = skipVisited ? new WeakSet() : null;
|
|
40
42
|
let stack;
|
|
41
43
|
let inArray = Array.isArray(root);
|
|
42
44
|
let keys = [root];
|
|
@@ -122,6 +124,14 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
122
124
|
continue;
|
|
123
125
|
}
|
|
124
126
|
|
|
127
|
+
// Skip already-visited nodes (handles DAG structures from cloneShallow)
|
|
128
|
+
if (skipVisited && !isLeaving) {
|
|
129
|
+
if (visitedNodes.has(node)) {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
visitedNodes.add(node);
|
|
133
|
+
}
|
|
134
|
+
|
|
125
135
|
// Always create Path for the current node (needed for parentPath chain)
|
|
126
136
|
currentPath = new _Path.Path(node, parent, parentPath, key, inArray);
|
|
127
137
|
const visitFn = (0, _visitors.getVisitFn)(visitor, nodeTypeGetter(node), isLeaving);
|
|
@@ -142,11 +152,6 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
142
152
|
if (currentPath.shouldStop) {
|
|
143
153
|
break;
|
|
144
154
|
}
|
|
145
|
-
if (currentPath.shouldSkip) {
|
|
146
|
-
if (!isLeaving) {
|
|
147
|
-
continue;
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
155
|
if (currentPath.removed) {
|
|
151
156
|
edits.push([key, null]);
|
|
152
157
|
if (!isLeaving) {
|
|
@@ -156,12 +161,19 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
156
161
|
const replacement = currentPath._getReplacementNode();
|
|
157
162
|
edits.push([key, replacement]);
|
|
158
163
|
if (!isLeaving) {
|
|
164
|
+
if (currentPath.shouldSkip) {
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
159
167
|
if (nodePredicate(replacement)) {
|
|
160
168
|
node = replacement;
|
|
161
169
|
} else {
|
|
162
170
|
continue;
|
|
163
171
|
}
|
|
164
172
|
}
|
|
173
|
+
} else if (currentPath.shouldSkip) {
|
|
174
|
+
if (!isLeaving) {
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
165
177
|
} else if (result !== undefined) {
|
|
166
178
|
// Support return value replacement for backwards compatibility
|
|
167
179
|
edits.push([key, result]);
|
|
@@ -263,6 +275,7 @@ const traverse = (root, visitor, options = {}) => {
|
|
|
263
275
|
nodePredicate: options.nodePredicate ?? _visitors.isNode,
|
|
264
276
|
nodeCloneFn: options.nodeCloneFn ?? _visitors.cloneNode,
|
|
265
277
|
detectCycles: options.detectCycles ?? true,
|
|
278
|
+
skipVisited: options.skipVisited ?? false,
|
|
266
279
|
mutable: options.mutable ?? false,
|
|
267
280
|
mutationFn: options.mutationFn ?? _visitors.mutateNode
|
|
268
281
|
};
|
|
@@ -295,6 +308,7 @@ const traverseAsync = async (root, visitor, options = {}) => {
|
|
|
295
308
|
nodePredicate: options.nodePredicate ?? _visitors.isNode,
|
|
296
309
|
nodeCloneFn: options.nodeCloneFn ?? _visitors.cloneNode,
|
|
297
310
|
detectCycles: options.detectCycles ?? true,
|
|
311
|
+
skipVisited: options.skipVisited ?? false,
|
|
298
312
|
mutable: options.mutable ?? false,
|
|
299
313
|
mutationFn: options.mutationFn ?? _visitors.mutateNode
|
|
300
314
|
};
|
package/src/traversal.mjs
CHANGED
|
@@ -27,10 +27,12 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
27
27
|
nodePredicate,
|
|
28
28
|
nodeCloneFn,
|
|
29
29
|
detectCycles,
|
|
30
|
+
skipVisited,
|
|
30
31
|
mutable,
|
|
31
32
|
mutationFn
|
|
32
33
|
} = options;
|
|
33
34
|
const keyMapIsFunction = typeof keyMap === 'function';
|
|
35
|
+
const visitedNodes = skipVisited ? new WeakSet() : null;
|
|
34
36
|
let stack;
|
|
35
37
|
let inArray = Array.isArray(root);
|
|
36
38
|
let keys = [root];
|
|
@@ -116,6 +118,14 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
116
118
|
continue;
|
|
117
119
|
}
|
|
118
120
|
|
|
121
|
+
// Skip already-visited nodes (handles DAG structures from cloneShallow)
|
|
122
|
+
if (skipVisited && !isLeaving) {
|
|
123
|
+
if (visitedNodes.has(node)) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
126
|
+
visitedNodes.add(node);
|
|
127
|
+
}
|
|
128
|
+
|
|
119
129
|
// Always create Path for the current node (needed for parentPath chain)
|
|
120
130
|
currentPath = new Path(node, parent, parentPath, key, inArray);
|
|
121
131
|
const visitFn = getVisitFn(visitor, nodeTypeGetter(node), isLeaving);
|
|
@@ -136,11 +146,6 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
136
146
|
if (currentPath.shouldStop) {
|
|
137
147
|
break;
|
|
138
148
|
}
|
|
139
|
-
if (currentPath.shouldSkip) {
|
|
140
|
-
if (!isLeaving) {
|
|
141
|
-
continue;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
149
|
if (currentPath.removed) {
|
|
145
150
|
edits.push([key, null]);
|
|
146
151
|
if (!isLeaving) {
|
|
@@ -150,12 +155,19 @@ function* traverseGenerator(root, visitor, options) {
|
|
|
150
155
|
const replacement = currentPath._getReplacementNode();
|
|
151
156
|
edits.push([key, replacement]);
|
|
152
157
|
if (!isLeaving) {
|
|
158
|
+
if (currentPath.shouldSkip) {
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
153
161
|
if (nodePredicate(replacement)) {
|
|
154
162
|
node = replacement;
|
|
155
163
|
} else {
|
|
156
164
|
continue;
|
|
157
165
|
}
|
|
158
166
|
}
|
|
167
|
+
} else if (currentPath.shouldSkip) {
|
|
168
|
+
if (!isLeaving) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
159
171
|
} else if (result !== undefined) {
|
|
160
172
|
// Support return value replacement for backwards compatibility
|
|
161
173
|
edits.push([key, result]);
|
|
@@ -257,6 +269,7 @@ export const traverse = (root, visitor, options = {}) => {
|
|
|
257
269
|
nodePredicate: options.nodePredicate ?? isNode,
|
|
258
270
|
nodeCloneFn: options.nodeCloneFn ?? cloneNode,
|
|
259
271
|
detectCycles: options.detectCycles ?? true,
|
|
272
|
+
skipVisited: options.skipVisited ?? false,
|
|
260
273
|
mutable: options.mutable ?? false,
|
|
261
274
|
mutationFn: options.mutationFn ?? mutateNode
|
|
262
275
|
};
|
|
@@ -288,6 +301,7 @@ export const traverseAsync = async (root, visitor, options = {}) => {
|
|
|
288
301
|
nodePredicate: options.nodePredicate ?? isNode,
|
|
289
302
|
nodeCloneFn: options.nodeCloneFn ?? cloneNode,
|
|
290
303
|
detectCycles: options.detectCycles ?? true,
|
|
304
|
+
skipVisited: options.skipVisited ?? false,
|
|
291
305
|
mutable: options.mutable ?? false,
|
|
292
306
|
mutationFn: options.mutationFn ?? mutateNode
|
|
293
307
|
};
|
|
@@ -407,9 +407,18 @@ export declare interface TraverseOptions<TNode> {
|
|
|
407
407
|
*/
|
|
408
408
|
nodeCloneFn?: (node: TNode) => TNode;
|
|
409
409
|
/**
|
|
410
|
-
* Whether to detect and skip cycles. Defaults to true.
|
|
410
|
+
* Whether to detect and skip cycles using ancestor tracking. Defaults to true.
|
|
411
|
+
* Catches true identity cycles where a node is its own ancestor.
|
|
411
412
|
*/
|
|
412
413
|
detectCycles?: boolean;
|
|
414
|
+
/**
|
|
415
|
+
* Whether to skip already-visited nodes. Defaults to false.
|
|
416
|
+
* When true, uses a WeakSet to track visited nodes and skips any node
|
|
417
|
+
* encountered a second time, regardless of the path taken to reach it.
|
|
418
|
+
* Useful for traversing dereferenced trees that contain shared structure
|
|
419
|
+
* from cloneShallow (DAG) which would otherwise cause combinatorial explosion.
|
|
420
|
+
*/
|
|
421
|
+
skipVisited?: boolean;
|
|
413
422
|
/**
|
|
414
423
|
* If true, edits modify the original tree in place.
|
|
415
424
|
* If false (default), creates a new tree with changes applied.
|