!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).JSONPath={})}(this,(function(t){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){for(var r=0;rt.length)&&(e=t.length);for(var r=0,n=new Array(e);r1&&s.shift(),this._hasParentSelector=null;var p=this._trace(s,r,["$"],u,i,n).filter((function(t){return t&&!t.isParentSelector}));return p.length?l||1!==p.length||p[0].hasArrExpr?p.reduce((function(t,e){var r=o._getPreferredOutput(e);return c&&Array.isArray(r)?t=t.concat(r):t.push(r),t}),[]):this._getPreferredOutput(p[0]):l?[]:void 0}},d.prototype._getPreferredOutput=function(t){var e=this.currResultType;switch(e){case"all":var r=Array.isArray(t.path)?t.path:d.toPathArray(t.path);return t.pointer=d.toPointer(r),t.path="string"==typeof t.path?t.path:d.toPathString(t.path),t;case"value":case"parent":case"parentProperty":return t[e];case"path":return d.toPathString(t[e]);case"pointer":return d.toPointer(t.path);default:throw new TypeError("Unknown result type")}},d.prototype._handleCallback=function(t,e,r){if(e){var n=this._getPreferredOutput(t);t.path="string"==typeof t.path?t.path:d.toPathString(t.path),e(n,r,t)}},d.prototype._trace=function(t,r,n,a,o,u,i,c){var l,s=this;if(!t.length)return l={path:n,value:r,parent:a,parentProperty:o,hasArrExpr:i},this._handleCallback(l,u,"value"),l;var p=t[0],h=t.slice(1),F=[];function d(t){Array.isArray(t)?t.forEach((function(t){F.push(t)})):F.push(t)}if(("string"!=typeof p||c)&&r&&y.call(r,p))d(this._trace(h,r[p],v(n,p),r,p,u,i));else if("*"===p)this._walk(r,(function(t){d(s._trace(h,r[t],v(n,t),r,t,u,!0,!0))}));else if(".."===p)d(this._trace(h,r,n,a,o,u,i)),this._walk(r,(function(a){"object"===e(r[a])&&d(s._trace(t.slice(),r[a],v(n,a),r,a,u,!0))}));else{if("^"===p)return this._hasParentSelector=!0,{path:n.slice(0,-1),expr:h,isParentSelector:!0};if("~"===p)return l={path:v(n,p),value:o,parent:a,parentProperty:null},this._handleCallback(l,u,"property"),l;if("$"===p)d(this._trace(h,r,n,null,null,u,i));else if(/^(\x2D?[0-9]*):(\x2D?[0-9]*):?([0-9]*)$/.test(p))d(this._slice(p,h,r,n,a,o,u));else if(0===p.indexOf("?(")){if(this.currPreventEval)throw new Error("Eval [?(expr)] prevented in JSONPath expression.");var g=p.replace(/^\?\(((?:[\0-\t\x0B\f\x0E-\u2027\u202A-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*?)\)$/,"$1");this._walk(r,(function(t){s._eval(g,r[t],t,n,a,o)&&d(s._trace(h,r[t],v(n,t),r,t,u,!0))}))}else if("("===p[0]){if(this.currPreventEval)throw new Error("Eval [(expr)] prevented in JSONPath expression.");d(this._trace(b(this._eval(p,r,n[n.length-1],n.slice(0,-1),a,o),h),r,n,a,o,u,i))}else if("@"===p[0]){var w=!1,_=p.slice(1,-2);switch(_){case"scalar":r&&["object","function"].includes(e(r))||(w=!0);break;case"boolean":case"string":case"undefined":case"function":e(r)===_&&(w=!0);break;case"integer":!Number.isFinite(r)||r%1||(w=!0);break;case"number":Number.isFinite(r)&&(w=!0);break;case"nonFinite":"number"!=typeof r||Number.isFinite(r)||(w=!0);break;case"object":r&&e(r)===_&&(w=!0);break;case"array":Array.isArray(r)&&(w=!0);break;case"other":w=this.currOtherTypeCallback(r,n,a,o);break;case"null":null===r&&(w=!0);break;default:throw new TypeError("Unknown value type "+_)}if(w)return l={path:n,value:r,parent:a,parentProperty:o},this._handleCallback(l,u,"value"),l}else if("`"===p[0]&&r&&y.call(r,p.slice(1))){var m=p.slice(1);d(this._trace(h,r[m],v(n,m),r,m,u,i,!0))}else if(p.includes(",")){var P,D=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!r){if(Array.isArray(t)||(r=f(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0,a=function(){};return{s:a,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,u=!0,i=!1;return{s:function(){r=r.call(t)},n:function(){var t=r.next();return u=t.done,t},e:function(t){i=!0,o=t},f:function(){try{u||null==r.return||r.return()}finally{if(i)throw o}}}}(p.split(","));try{for(D.s();!(P=D.n()).done;){var S=P.value;d(this._trace(b(S,h),r,n,a,o,u,!0))}}catch(t){D.e(t)}finally{D.f()}}else!c&&r&&y.call(r,p)&&d(this._trace(h,r[p],v(n,p),r,p,u,i,!0))}if(this._hasParentSelector)for(var x=0;x-1?e.slice(0,u+1)+" return "+e.slice(u+1):" return "+e;return c(Function,r.concat([i])).apply(void 0,p(a))}}]),t}();d.prototype.vm={Script:g},t.JSONPath=d,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=index-browser-umd.min.cjs.map