@player-ui/metrics-plugin 0.7.4-next.1 → 0.7.4-next.3
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.
|
@@ -5137,8 +5137,8 @@ var __async = (__this, __arguments, generator) => {
|
|
|
5137
5137
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
5138
5138
|
});
|
|
5139
5139
|
};
|
|
5140
|
-
const PLAYER_VERSION = "0.7.4-next.
|
|
5141
|
-
const COMMIT = "
|
|
5140
|
+
const PLAYER_VERSION = "0.7.4-next.3";
|
|
5141
|
+
const COMMIT = "947d3bb0b3acb587041fa72b0990bab2ec1be633";
|
|
5142
5142
|
const _Player = class {
|
|
5143
5143
|
constructor(config) {
|
|
5144
5144
|
this.logger = new TapableLogger();
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see metrics-plugin.prod.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t():"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports.MetricsPlugin=t():e.MetricsPlugin=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=26)}([function(e,t,r){"use strict";function n(e,t,r){return e.context?e.callback(r,...t):e.callback(...t)}r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return a})),r.d(t,"c",(function(){return s})),r.d(t,"d",(function(){return l}));class o{constructor(){this.interceptions=[],this.interceptionKeySet=new Set}isUsed(){return this.interceptions.length>0}intercept(e){this.interceptions.push(e),Object.keys(e).forEach((e=>{this.interceptionKeySet.add(e)}))}tap(e){this.interceptionKeySet.has("tap")&&this.interceptions.forEach((t=>{var r;null==(r=t.tap)||r.call(t,e)}))}call(e,...t){this.interceptionKeySet.has("call")&&this.interceptions.forEach((r=>{var n,o;r.context?null==(n=r.call)||n.call(r,e,...t):null==(o=r.call)||o.call(r,...t)}))}loop(...e){this.interceptionKeySet.has("loop")&&this.interceptions.forEach((t=>{var r;null==(r=t.loop)||r.call(t,...e)}))}error(e){if(this.interceptionKeySet.has("error")&&e instanceof Error){const t=e;this.interceptions.forEach((e=>{var r;null==(r=e.error)||r.call(e,t)}))}}result(e){this.interceptionKeySet.has("result")&&this.interceptions.forEach((t=>{var r;null==(r=t.result)||r.call(t,e)}))}done(){this.interceptionKeySet.has("done")&&this.interceptions.forEach((e=>{var t;null==(t=e.done)||t.call(e)}))}}class i{constructor(){this.taps=[],this.interceptions=new o}tap(e,t){const r="string"===typeof e?{name:e,context:!1}:{context:!1,...e},n={key:Symbol(r.name),...r,callback:t};if(n.before){let e=this.taps.length;const t=new Set(Array.isArray(n.before)?n.before:[n.before]);for(;e>0&&t.size>0;e--){const r=this.taps[e-1];if(t.has(r.name)&&t.delete(r.name),r.before&&(o=n.name,i=r.before,Array.isArray(i)?i.includes(o):i===o))break}this.taps.splice(e,0,n)}else this.taps.push(n);var o,i;return this.interceptions.tap(n),n}untap(e){this.taps=this.taps.filter((t=>t.key!==e.key))}isUsed(){return this.taps.length>0||this.interceptions.isUsed()}intercept(e){this.interceptions.intercept(e)}}class s extends i{call(...e){if(!this.isUsed())return;const t={};this.interceptions.call(t,...e);try{this.taps.forEach((r=>{n(r,e,t)}))}catch(r){throw this.interceptions.error(r),r}this.interceptions.done()}}class a extends i{call(...e){if(!this.isUsed())return;const t={};this.interceptions.call(t,...e);for(let r=0;r<this.taps.length;r+=1){const o=n(this.taps[r],e,t);if(void 0!==o)return this.interceptions.result(o),o}this.interceptions.done()}}class l extends i{call(...e){const t={};this.interceptions.call(t,...e);let[r,...o]=e;for(let i=0;i<this.taps.length;i+=1){const e=n(this.taps[i],[r,...o],t);void 0!==e&&(r=e)}return this.interceptions.result(r),r}}class u extends i{async call(...e){let[t,...r]=e;const o={};this.interceptions.call(o,...e);try{for(let e=0;e<this.taps.length;e+=1){const i=await n(this.taps[e],[t,...r],o);void 0!==i&&(t=i)}}catch(i){throw this.interceptions.error(i),i}return this.interceptions.result(t),t}}},function(e,t,r){(function(t){"undefined"!=typeof self&&self,e.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,r,n){"use strict";function o(e){if(!(this instanceof o))return new o(e);this._=e}var i=o.prototype;function s(e,t){for(var r=0;r<e;r++)t(r)}function a(e,t,r){return function(e,t){s(t.length,(function(r){e(t[r],r,t)}))}((function(r,n,o){t=e(t,r,n,o)}),r),t}function l(e,t){return a((function(t,r,n,o){return t.concat([e(r,n,o)])}),[],t)}function u(e,r){var n={v:0,buf:r};return s(e,(function(){var e;n={v:n.v<<1|(e=n.buf,e[0]>>7),buf:function(e){var r=a((function(e,r,n,o){return e.concat(n===o.length-1?t.from([r,0]).readUInt16BE(0):o.readUInt16BE(n))}),[],e);return t.from(l((function(e){return(e<<1&65535)>>8}),r))}(n.buf)}})),n}function c(){return"undefined"!=typeof t}function h(){if(!c())throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.")}function f(e){h();var t=a((function(e,t){return e+t}),0,e);if(t%8!=0)throw new Error("The bits ["+e.join(", ")+"] add up to "+t+" which is not an even number of bytes; the total should be divisible by 8");var r,n=t/8,i=(r=function(e){return e>48},a((function(e,t){return e||(r(t)?t:e)}),null,e));if(i)throw new Error(i+" bit range requested exceeds 48 bit (6 byte) Number max.");return new o((function(t,r){var o=n+r;return o>t.length?k(r,n.toString()+" bytes"):S(o,a((function(e,t){var r=u(t,e.buf);return{coll:e.coll.concat(r.v),buf:r.buf}}),{coll:[],buf:t.slice(r,o)},e).coll)}))}function p(e,t){return new o((function(r,n){return h(),n+t>r.length?k(n,t+" bytes for "+e):S(n+t,r.slice(n,n+t))}))}function d(e,t){if("number"!=typeof(r=t)||Math.floor(r)!==r||t<0||t>6)throw new Error(e+" requires integer length in range [0, 6].");var r}function g(e){return d("uintBE",e),p("uintBE("+e+")",e).map((function(t){return t.readUIntBE(0,e)}))}function v(e){return d("uintLE",e),p("uintLE("+e+")",e).map((function(t){return t.readUIntLE(0,e)}))}function y(e){return d("intBE",e),p("intBE("+e+")",e).map((function(t){return t.readIntBE(0,e)}))}function m(e){return d("intLE",e),p("intLE("+e+")",e).map((function(t){return t.readIntLE(0,e)}))}function w(e){return e instanceof o}function b(e){return"[object Array]"==={}.toString.call(e)}function E(e){return c()&&t.isBuffer(e)}function S(e,t){return{status:!0,index:e,value:t,furthest:-1,expected:[]}}function k(e,t){return b(t)||(t=[t]),{status:!1,index:-1,value:null,furthest:e,expected:t}}function x(e,t){if(!t)return e;if(e.furthest>t.furthest)return e;var r=e.furthest===t.furthest?function(e,t){if(function(){if(void 0!==o._supportsSet)return o._supportsSet;var e="undefined"!=typeof Set;return o._supportsSet=e,e}()&&Array.from){for(var r=new Set(e),n=0;n<t.length;n++)r.add(t[n]);var i=Array.from(r);return i.sort(),i}for(var s={},a=0;a<e.length;a++)s[e[a]]=!0;for(var l=0;l<t.length;l++)s[t[l]]=!0;var u=[];for(var c in s)({}).hasOwnProperty.call(s,c)&&u.push(c);return u.sort(),u}(e.expected,t.expected):t.expected;return{status:e.status,index:e.index,value:e.value,furthest:t.furthest,expected:r}}var O={};function R(e,t){if(E(e))return{offset:t,line:-1,column:-1};e in O||(O[e]={});for(var r=O[e],n=0,o=0,i=0,s=t;s>=0;){if(s in r){n=r[s].line,0===i&&(i=r[s].lineStart);break}("\n"===e.charAt(s)||"\r"===e.charAt(s)&&"\n"!==e.charAt(s+1))&&(o++,0===i&&(i=s+1)),s--}var a=n+o,l=t-i;return r[t]={line:a,lineStart:i},{offset:t,line:a+1,column:l+1}}function P(e){if(!w(e))throw new Error("not a parser: "+e)}function A(e,t){return"string"==typeof e?e.charAt(t):e[t]}function _(e){if("number"!=typeof e)throw new Error("not a number: "+e)}function T(e){if("function"!=typeof e)throw new Error("not a function: "+e)}function C(e){if("string"!=typeof e)throw new Error("not a string: "+e)}var j=2,U=3,B=8,L=5*B,N=4*B,I=" ";function D(e,t){return new Array(t+1).join(e)}function M(e,t,r){var n=t-e.length;return n<=0?e:D(r,n)+e}function V(e,t,r,n){return{from:e-t>0?e-t:0,to:e+r>n?n:e+r}}function F(e,t){var r,n,o,i,s,u=t.index,c=u.offset,h=1;if(c===e.length)return"Got the end of the input";if(E(e)){var f=c-c%B,p=c-f,d=V(f,L,N+B,e.length),g=l((function(e){return l((function(e){return M(e.toString(16),2,"0")}),e)}),function(e,t){var r=e.length,n=[],o=0;if(r<=t)return[e.slice()];for(var i=0;i<r;i++)n[o]||n.push([]),n[o].push(e[i]),(i+1)%t==0&&o++;return n}(e.slice(d.from,d.to).toJSON().data,B));i=function(e){return 0===e.from&&1===e.to?{from:e.from,to:e.to}:{from:e.from/B,to:Math.floor(e.to/B)}}(d),n=f/B,r=3*p,p>=4&&(r+=1),h=2,o=l((function(e){return e.length<=4?e.join(" "):e.slice(0,4).join(" ")+" "+e.slice(4).join(" ")}),g),(s=(8*(i.to>0?i.to-1:i.to)).toString(16).length)<2&&(s=2)}else{var v=e.split(/\r\n|[\n\r\u2028\u2029]/);r=u.column-1,n=u.line-1,i=V(n,j,U,v.length),o=v.slice(i.from,i.to),s=i.to.toString().length}var y=n-i.from;return E(e)&&(s=(8*(i.to>0?i.to-1:i.to)).toString(16).length)<2&&(s=2),a((function(t,n,o){var a,l=o===y,u=l?"> ":I;return a=E(e)?M((8*(i.from+o)).toString(16),s,"0"):M((i.from+o+1).toString(),s," "),[].concat(t,[u+a+" | "+n],l?[I+D(" ",s)+" | "+M("",r," ")+D("^",h)]:[])}),[],o).join("\n")}function $(e,t){return["\n","-- PARSING FAILED "+D("-",50),"\n\n",F(e,t),"\n\n",(r=t.expected,1===r.length?"Expected:\n\n"+r[0]:"Expected one of the following: \n\n"+r.join(", ")),"\n"].join("");var r}function H(e){return void 0!==e.flags?e.flags:[e.global?"g":"",e.ignoreCase?"i":"",e.multiline?"m":"",e.unicode?"u":"",e.sticky?"y":""].join("")}function z(){for(var e=[].slice.call(arguments),t=e.length,r=0;r<t;r+=1)P(e[r]);return o((function(r,n){for(var o,i=new Array(t),s=0;s<t;s+=1){if(!(o=x(e[s]._(r,n),o)).status)return o;i[s]=o.value,n=o.index}return x(S(n,i),o)}))}function W(){var e=[].slice.call(arguments);if(0===e.length)throw new Error("seqMap needs at least one argument");var t=e.pop();return T(t),z.apply(null,e).map((function(e){return t.apply(null,e)}))}function q(){var e=[].slice.call(arguments),t=e.length;if(0===t)return Q("zero alternates");for(var r=0;r<t;r+=1)P(e[r]);return o((function(t,r){for(var n,o=0;o<e.length;o+=1)if((n=x(e[o]._(t,r),n)).status)return n;return n}))}function Y(e,t){return K(e,t).or(J([]))}function K(e,t){return P(e),P(t),W(e,t.then(e).many(),(function(e,t){return[e].concat(t)}))}function Z(e){C(e);var t="'"+e+"'";return o((function(r,n){var o=n+e.length,i=r.slice(n,o);return i===e?S(o,i):k(n,t)}))}function G(e,t){!function(e){if(!(e instanceof RegExp))throw new Error("not a regexp: "+e);for(var t=H(e),r=0;r<t.length;r++){var n=t.charAt(r);if("i"!==n&&"m"!==n&&"u"!==n&&"s"!==n)throw new Error('unsupported regexp flag "'+n+'": '+e)}}(e),arguments.length>=2?_(t):t=0;var r=function(e){return RegExp("^(?:"+e.source+")",H(e))}(e),n=""+e;return o((function(e,o){var i=r.exec(e.slice(o));if(i){if(0<=t&&t<=i.length){var s=i[0],a=i[t];return S(o+s.length,a)}return k(o,"valid match group (0 to "+i.length+") in "+n)}return k(o,n)}))}function J(e){return o((function(t,r){return S(r,e)}))}function Q(e){return o((function(t,r){return k(r,e)}))}function X(e){if(w(e))return o((function(t,r){var n=e._(t,r);return n.index=r,n.value="",n}));if("string"==typeof e)return X(Z(e));if(e instanceof RegExp)return X(G(e));throw new Error("not a string, regexp, or parser: "+e)}function ee(e){return P(e),o((function(t,r){var n=e._(t,r),o=t.slice(r,n.index);return n.status?k(r,'not "'+o+'"'):S(r,null)}))}function te(e){return T(e),o((function(t,r){var n=A(t,r);return r<t.length&&e(n)?S(r+1,n):k(r,"a character/byte matching "+e)}))}function re(e,t){arguments.length<2&&(t=e,e=void 0);var r=o((function(e,n){return r._=t()._,r._(e,n)}));return e?r.desc(e):r}function ne(){return Q("fantasy-land/empty")}i.parse=function(e){if("string"!=typeof e&&!E(e))throw new Error(".parse must be called with a string or Buffer as its argument");var t,r=this.skip(ae)._(e,0);return t=r.status?{status:!0,value:r.value}:{status:!1,index:R(e,r.furthest),expected:r.expected},delete O[e],t},i.tryParse=function(e){var t=this.parse(e);if(t.status)return t.value;var r=$(e,t),n=new Error(r);throw n.type="ParsimmonError",n.result=t,n},i.assert=function(e,t){return this.chain((function(r){return e(r)?J(r):Q(t)}))},i.or=function(e){return q(this,e)},i.trim=function(e){return this.wrap(e,e)},i.wrap=function(e,t){return W(e,this,t,(function(e,t){return t}))},i.thru=function(e){return e(this)},i.then=function(e){return P(e),z(this,e).map((function(e){return e[1]}))},i.many=function(){var e=this;return o((function(t,r){for(var n=[],o=void 0;;){if(!(o=x(e._(t,r),o)).status)return x(S(r,n),o);if(r===o.index)throw new Error("infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause");r=o.index,n.push(o.value)}}))},i.tieWith=function(e){return C(e),this.map((function(t){if(function(e){if(!b(e))throw new Error("not an array: "+e)}(t),t.length){C(t[0]);for(var r=t[0],n=1;n<t.length;n++)C(t[n]),r+=e+t[n];return r}return""}))},i.tie=function(){return this.tieWith("")},i.times=function(e,t){var r=this;return arguments.length<2&&(t=e),_(e),_(t),o((function(n,o){for(var i=[],s=void 0,a=void 0,l=0;l<e;l+=1){if(a=x(s=r._(n,o),a),!s.status)return a;o=s.index,i.push(s.value)}for(;l<t&&(a=x(s=r._(n,o),a),s.status);l+=1)o=s.index,i.push(s.value);return x(S(o,i),a)}))},i.result=function(e){return this.map((function(){return e}))},i.atMost=function(e){return this.times(0,e)},i.atLeast=function(e){return W(this.times(e),this.many(),(function(e,t){return e.concat(t)}))},i.map=function(e){T(e);var t=this;return o((function(r,n){var o=t._(r,n);return o.status?x(S(o.index,e(o.value)),o):o}))},i.contramap=function(e){T(e);var t=this;return o((function(r,n){var o=t.parse(e(r.slice(n)));return o.status?S(n+r.length,o.value):o}))},i.promap=function(e,t){return T(e),T(t),this.contramap(e).map(t)},i.skip=function(e){return z(this,e).map((function(e){return e[0]}))},i.mark=function(){return W(oe,this,oe,(function(e,t,r){return{start:e,value:t,end:r}}))},i.node=function(e){return W(oe,this,oe,(function(t,r,n){return{name:e,value:r,start:t,end:n}}))},i.sepBy=function(e){return Y(this,e)},i.sepBy1=function(e){return K(this,e)},i.lookahead=function(e){return this.skip(X(e))},i.notFollowedBy=function(e){return this.skip(ee(e))},i.desc=function(e){b(e)||(e=[e]);var t=this;return o((function(r,n){var o=t._(r,n);return o.status||(o.expected=e),o}))},i.fallback=function(e){return this.or(J(e))},i.ap=function(e){return W(e,this,(function(e,t){return e(t)}))},i.chain=function(e){var t=this;return o((function(r,n){var o=t._(r,n);return o.status?x(e(o.value)._(r,o.index),o):o}))},i.concat=i.or,i.empty=ne,i.of=J,i["fantasy-land/ap"]=i.ap,i["fantasy-land/chain"]=i.chain,i["fantasy-land/concat"]=i.concat,i["fantasy-land/empty"]=i.empty,i["fantasy-land/of"]=i.of,i["fantasy-land/map"]=i.map;var oe=o((function(e,t){return S(t,R(e,t))})),ie=o((function(e,t){return t>=e.length?k(t,"any character/byte"):S(t+1,A(e,t))})),se=o((function(e,t){return S(e.length,e.slice(t))})),ae=o((function(e,t){return t<e.length?k(t,"EOF"):S(t,null)})),le=G(/[0-9]/).desc("a digit"),ue=G(/[0-9]*/).desc("optional digits"),ce=G(/[a-z]/i).desc("a letter"),he=G(/[a-z]*/i).desc("optional letters"),fe=G(/\s*/).desc("optional whitespace"),pe=G(/\s+/).desc("whitespace"),de=Z("\r"),ge=Z("\n"),ve=Z("\r\n"),ye=q(ve,ge,de).desc("newline"),me=q(ye,ae);o.all=se,o.alt=q,o.any=ie,o.cr=de,o.createLanguage=function(e){var t={};for(var r in e)({}).hasOwnProperty.call(e,r)&&function(r){t[r]=re((function(){return e[r](t)}))}(r);return t},o.crlf=ve,o.custom=function(e){return o(e(S,k))},o.digit=le,o.digits=ue,o.empty=ne,o.end=me,o.eof=ae,o.fail=Q,o.formatError=$,o.index=oe,o.isParser=w,o.lazy=re,o.letter=ce,o.letters=he,o.lf=ge,o.lookahead=X,o.makeFailure=k,o.makeSuccess=S,o.newline=ye,o.noneOf=function(e){return te((function(t){return e.indexOf(t)<0})).desc("none of '"+e+"'")},o.notFollowedBy=ee,o.of=J,o.oneOf=function(e){for(var t=e.split(""),r=0;r<t.length;r++)t[r]="'"+t[r]+"'";return te((function(t){return e.indexOf(t)>=0})).desc(t)},o.optWhitespace=fe,o.Parser=o,o.range=function(e,t){return te((function(r){return e<=r&&r<=t})).desc(e+"-"+t)},o.regex=G,o.regexp=G,o.sepBy=Y,o.sepBy1=K,o.seq=z,o.seqMap=W,o.seqObj=function(){for(var e,t={},r=0,n=(e=arguments,Array.prototype.slice.call(e)),i=n.length,s=0;s<i;s+=1){var a=n[s];if(!w(a)){if(b(a)&&2===a.length&&"string"==typeof a[0]&&w(a[1])){var l=a[0];if(Object.prototype.hasOwnProperty.call(t,l))throw new Error("seqObj: duplicate key "+l);t[l]=!0,r++;continue}throw new Error("seqObj arguments must be parsers or [string, parser] array pairs.")}}if(0===r)throw new Error("seqObj expects at least one named parser, found zero");return o((function(e,t){for(var r,o={},s=0;s<i;s+=1){var a,l;if(b(n[s])?(a=n[s][0],l=n[s][1]):(a=null,l=n[s]),!(r=x(l._(e,t),r)).status)return r;a&&(o[a]=r.value),t=r.index}return x(S(t,o),r)}))},o.string=Z,o.succeed=J,o.takeWhile=function(e){return T(e),o((function(t,r){for(var n=r;n<t.length&&e(A(t,n));)n++;return S(n,t.slice(r,n))}))},o.test=te,o.whitespace=pe,o["fantasy-land/empty"]=ne,o["fantasy-land/of"]=J,o.Binary={bitSeq:f,bitSeqObj:function(e){h();var t={},r=0,n=l((function(e){if(b(e)){var n=e;if(2!==n.length)throw new Error("["+n.join(", ")+"] should be length 2, got length "+n.length);if(C(n[0]),_(n[1]),Object.prototype.hasOwnProperty.call(t,n[0]))throw new Error("duplicate key in bitSeqObj: "+n[0]);return t[n[0]]=!0,r++,n}return _(e),[null,e]}),e);if(r<1)throw new Error("bitSeqObj expects at least one named pair, got ["+e.join(", ")+"]");var o=l((function(e){return e[0]}),n);return f(l((function(e){return e[1]}),n)).map((function(e){return a((function(e,t){return null!==t[0]&&(e[t[0]]=t[1]),e}),{},l((function(t,r){return[t,e[r]]}),o))}))},byte:function(e){if(h(),_(e),e>255)throw new Error("Value specified to byte constructor ("+e+"=0x"+e.toString(16)+") is larger in value than a single byte.");var t=(e>15?"0x":"0x0")+e.toString(16);return o((function(r,n){var o=A(r,n);return o===e?S(n+1,o):k(n,t)}))},buffer:function(e){return p("buffer",e).map((function(e){return t.from(e)}))},encodedString:function(e,t){return p("string",t).map((function(t){return t.toString(e)}))},uintBE:g,uint8BE:g(1),uint16BE:g(2),uint32BE:g(4),uintLE:v,uint8LE:v(1),uint16LE:v(2),uint32LE:v(4),intBE:y,int8BE:y(1),int16BE:y(2),int32BE:y(4),intLE:m,int8LE:m(1),int16LE:m(2),int32LE:m(4),floatBE:p("floatBE",4).map((function(e){return e.readFloatBE(0)})),floatLE:p("floatLE",4).map((function(e){return e.readFloatLE(0)})),doubleBE:p("doubleBE",8).map((function(e){return e.readDoubleBE(0)})),doubleLE:p("doubleLE",8).map((function(e){return e.readDoubleLE(0)}))},e.exports=o}])}).call(this,r(17).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clone=a,t.addLast=u,t.addFirst=c,t.removeLast=h,t.removeFirst=f,t.insert=p,t.removeAt=d,t.replaceAt=g,t.getIn=v,t.set=y,t.setIn=m,t.update=b,t.updateIn=E,t.merge=S,t.mergeDeep=k,t.mergeIn=x,t.omit=O,t.addDefaults=R,t.default=void 0;const n="INVALID_ARGS";function o(e){throw new Error(e)}function i(e){const t=Object.keys(e);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t}const s={}.hasOwnProperty;function a(e){if(Array.isArray(e))return e.slice();const t=e,r=i(t),n={};for(let o=0;o<r.length;o++){const e=r[o];n[e]=t[e]}return n}function l(e){return null!=e&&"object"===typeof e}function u(e,t){return Array.isArray(t)?e.concat(t):e.concat([t])}function c(e,t){return Array.isArray(t)?t.concat(e):[t].concat(e)}function h(e){return e.length?e.slice(0,e.length-1):e}function f(e){return e.length?e.slice(1):e}function p(e,t,r){return e.slice(0,t).concat(Array.isArray(r)?r:[r]).concat(e.slice(t))}function d(e,t){return t>=e.length||t<0?e:e.slice(0,t).concat(e.slice(t+1))}function g(e,t,r){if(e[t]===r)return e;const n=e.length,o=Array(n);for(let i=0;i<n;i++)o[i]=e[i];return o[t]=r,o}function v(e,t){if(Array.isArray(t)||o(n),null==e)return;let r=e;for(let n=0;n<t.length;n++){const e=t[n];if(r=null!=r?r[e]:void 0,void 0===r)return r}return r}function y(e,t,r){let n=e;if(null==n&&(n="number"===typeof t?[]:{}),n[t]===r)return n;const o=a(n);return o[t]=r,o}function m(e,t,r){return t.length?w(e,t,r,0):r}function w(e,t,r,n){let o;const i=t[n];if(n===t.length-1)o=r;else{o=w(l(e)&&l(e[i])?e[i]:"number"===typeof t[n+1]?[]:{},t,r,n+1)}return y(e,i,o)}function b(e,t,r){return y(e,t,r(null==e?void 0:e[t]))}function E(e,t,r){return m(e,t,r(v(e,t)))}function S(e,t,r,n,o,i,...s){return s.length?P.call(null,!1,!1,e,t,r,n,o,i,...s):P(!1,!1,e,t,r,n,o,i)}function k(e,t,r,n,o,i,...s){return s.length?P.call(null,!1,!0,e,t,r,n,o,i,...s):P(!1,!0,e,t,r,n,o,i)}function x(e,t,r,n,o,i,s,...a){let l,u=v(e,t);return null==u&&(u={}),l=a.length?P.call(null,!1,!1,u,r,n,o,i,s,...a):P(!1,!1,u,r,n,o,i,s),m(e,t,l)}function O(e,t){const r=Array.isArray(t)?t:[t];let n=!1;for(let i=0;i<r.length;i++)if(s.call(e,r[i])){n=!0;break}if(!n)return e;const o={},a=i(e);for(let i=0;i<a.length;i++){const t=a[i];r.indexOf(t)>=0||(o[t]=e[t])}return o}function R(e,t,r,n,o,i,...s){return s.length?P.call(null,!0,!1,e,t,r,n,o,i,...s):P(!0,!1,e,t,r,n,o,i)}function P(e,t,r,...s){let u=r;null==u&&o(n);let c=!1;for(let n=0;n<s.length;n++){const r=s[n];if(null==r)continue;const o=i(r);if(o.length)for(let n=0;n<=o.length;n++){const i=o[n];if(e&&void 0!==u[i])continue;let s=r[i];t&&l(u[i])&&l(s)&&(s=P(e,t,u[i],s)),void 0!==s&&s!==u[i]&&(c||(c=!0,u=a(u)),u[i]=s)}}return u}var A={clone:a,addLast:u,addFirst:c,removeLast:h,removeFirst:f,insert:p,removeAt:d,replaceAt:g,getIn:v,set:y,setIn:m,update:b,updateIn:E,merge:S,mergeDeep:k,mergeIn:x,omit:O,addDefaults:R};t.default=A},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toError=t.NestedError=void 0;class n extends Error{constructor(e,...t){super(e);const r=n.getErrorReport(this);if(1===t.length){const e=o(t[0]);this.innerErrors=[e];const i=n.getErrorReport(e);return void(this.stack=`${r}\n\n======= INNER ERROR =======\n\n${i}`)}this.innerErrors=t.map((e=>o(e)));const i=this.innerErrors.map(((e,r)=>{const o=n.getErrorReport(e);return`======= INNER ERROR (${r+1} of ${t.length}) =======\n\n${o}`})).join("\n\n");this.stack=`${r}\n\n${i}`}get innerError(){return 0===this.innerErrors.length?null:this.innerErrors[0]}static rethrow(e){return(...t)=>{throw new this(e,...t)}}}function o(e){try{return e instanceof Error?e:new Error(`Value that is not an instance of Error was thrown: ${e}`)}catch{return new Error("Failed to stringify non-instance of Error that was thrown.This is possibly due to the fact that toString() method of the valuedoesn't return a primitive value.")}}t.NestedError=n,n.getErrorReport="string"===typeof(new Error).stack?e=>e.stack:e=>`${e.name}: ${e.message}`,n.prototype.name="NestedError",t.toError=o},function(e,t,r){e.exports=function(e,t,r,n,o){for(t=t.split?t.split("."):t,n=0;n<t.length;n++)e=e?e[t[n]]:o;return e===o?r:e}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Parser=exports.findRuleByName=exports.parseRuleName=exports.escapeRegExp=exports.readToken=void 0;const UPPER_SNAKE_RE=/^[A-Z0-9_]+$/,decorationRE=/(\?|\+|\*)$/,preDecorationRE=/^(@|&|!)/,WS_RULE="WS",TokenError_1=__webpack_require__(7);function readToken(e,t){let r=t.exec(e);return r&&0==r.index?0==r[0].length&&t.source.length>0?null:{type:null,text:r[0],rest:e.substr(r[0].length),start:0,end:r[0].length-1,fullText:r[0],errors:[],children:[],parent:null}:null}function escapeRegExp(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function fixRest(e){e.rest="",e.children&&e.children.forEach((e=>fixRest(e)))}function fixPositions(e,t){e.start+=t,e.end+=t,e.children&&e.children.forEach((t=>fixPositions(t,e.start)))}function agregateErrors(e,t){t.errors&&t.errors.length&&t.errors.forEach((t=>e.push(t))),t.children&&t.children.forEach((t=>agregateErrors(e,t)))}function parseRuleName(e){let t=decorationRE.exec(e),r=preDecorationRE.exec(e),n=t&&t[0]||"",o=r&&r[0]||"",i={raw:e,name:e.replace(decorationRE,"").replace(preDecorationRE,""),isOptional:"?"==n||"*"==n,allowRepetition:"+"==n||"*"==n,atLeastOne:"+"==n,lookupPositive:"&"==o,lookupNegative:"!"==o,pinned:"@"==o,lookup:!1,isLiteral:!1};return i.isLiteral="'"==i.name[0]||'"'==i.name[0],i.lookup=i.lookupNegative||i.lookupPositive,i}function findRuleByName(e,t){let r=parseRuleName(e);return t.cachedRules[r.name]||null}function stripRules(e,t){if(e.children){let r=e.children.filter((e=>e.type&&t.test(e.type)));for(let t=0;t<r.length;t++){let n=e.children.indexOf(r[t]);-1!=n&&e.children.splice(n,1)}e.children.forEach((e=>stripRules(e,t)))}}exports.readToken=readToken,exports.escapeRegExp=escapeRegExp,exports.parseRuleName=parseRuleName,exports.findRuleByName=findRuleByName;const ignoreMissingRules=["EOF"];class Parser{constructor(e,t){this.grammarRules=e,this.options=t,this.cachedRules={},this.debug=!!t&&!0===t.debug;let r=[],n=[];if(e.forEach((e=>{let t=parseRuleName(e.name);if(t.name in this.cachedRules)r.push("Duplicated rule "+t.name);else{if(this.cachedRules[t.name]=e,e.bnf&&e.bnf.length)e.bnf.forEach((t=>{if("string"===typeof t[0]){if(parseRuleName(t[0]).name==e.name){let t="Left recursion is not allowed, rule: "+e.name;-1==r.indexOf(t)&&r.push(t)}}t.forEach((e=>{if("string"==typeof e){let t=parseRuleName(e);t.isLiteral||-1!=n.indexOf(t.name)||-1!=ignoreMissingRules.indexOf(t.name)||n.push(t.name)}}))}));else{let t="Missing rule content, rule: "+e.name;-1==r.indexOf(t)&&r.push(t)}WS_RULE==e.name&&(e.implicitWs=!1),e.implicitWs&&-1==n.indexOf(WS_RULE)&&n.push(WS_RULE),e.recover&&-1==n.indexOf(e.recover)&&n.push(e.recover)}})),n.forEach((e=>{e in this.cachedRules||r.push("Missing rule "+e)})),r.length)throw new Error(r.join("\n"))}getAST(e,t){t||(t=this.grammarRules.filter((e=>!e.fragment&&0!=e.name.indexOf("%")))[0].name);let r=this.parse(e,t);if(r){agregateErrors(r.errors,r),fixPositions(r,0),stripRules(r,/^%/),this.options&&this.options.keepUpperRules||stripRules(r,UPPER_SNAKE_RE);let e=r.rest;e&&new TokenError_1.TokenError("Unexpected end of input: \n"+e,r),fixRest(r),r.rest=e}return r}emitSource(){return"CANNOT EMIT SOURCE FROM BASE Parser"}parse(txt,target,recursion=0){let out=null,type=parseRuleName(target),expr,printable=this.debug&&!UPPER_SNAKE_RE.test(type.name);printable&&console.log(new Array(recursion).join("\u2502 ")+"Trying to get "+target+" from "+JSON.stringify(txt.split("\n")[0]));let realType=type.name,targetLex=findRuleByName(type.name,this);if("EOF"==type.name){if(txt.length)return null;if(0==txt.length)return{type:"EOF",text:"",rest:"",start:0,end:0,fullText:"",errors:[],children:[],parent:null}}try{if(!targetLex&&type.isLiteral){let src=eval(type.name);if(""===src)return{type:"%%EMPTY%%",text:"",rest:txt,start:0,end:0,fullText:"",errors:[],children:[],parent:null};expr=new RegExp(escapeRegExp(src)),realType=null}}catch(e){return e instanceof ReferenceError&&console.error(e),null}if(expr){let e=readToken(txt,expr);if(e)return e.type=realType,e}else{let e=targetLex.bnf;e instanceof Array&&e.forEach((e=>{if(out)return;let t=null,r={type:type.name,text:"",children:[],end:0,errors:[],fullText:"",parent:null,start:0,rest:txt};targetLex.fragment&&(r.fragment=!0);let n=txt,o=0,i=e.length>0,s=!1;for(let a=0;a<e.length;a++)if("string"==typeof e[a]){let l,u=parseRuleName(e[a]);i=i&&u.isOptional;let c=!1;do{if(l=null,targetLex.implicitWs&&(l=this.parse(n,u.name,recursion+1),!l)){let e;do{if(e=this.parse(n,WS_RULE,recursion+1),!e)break;r.text=r.text+e.text,r.end=r.text.length,e.parent=r,r.children.push(e),n=n.substr(e.text.length),o+=e.text.length}while(e&&e.text.length)}if(l=l||this.parse(n,u.name,recursion+1),u.lookupNegative){if(l)return;break}if(u.lookupPositive&&!l)return;if(!l){if(u.isOptional)break;if(u.atLeastOne&&c)break}if(l&&targetLex.pinned==a+1&&(t=l,printable&&console.log(new Array(recursion+1).join("\u2502 ")+"\u2514\u2500 "+l.type+" PINNED")),l||(l=this.parseRecovery(targetLex,n,recursion+1)),!l){if(!t)return;out=r,l={type:"SyntaxError",text:n,children:[],end:n.length,errors:[],fullText:"",parent:null,start:0,rest:""},n.length?new TokenError_1.TokenError(`Unexpected end of input. Expecting ${u.name} Got: ${n}`,l):new TokenError_1.TokenError(`Unexpected end of input. Missing ${u.name}`,l),printable&&console.log(new Array(recursion+1).join("\u2502 ")+"\u2514\u2500 "+l.type+" "+JSON.stringify(l.text))}if(c=!0,s=!0,"%%EMPTY%%"==l.type)break;l.start+=o,l.end+=o,!u.lookupPositive&&l.type&&(l.fragment?l.children&&l.children.forEach((e=>{e.start+=o,e.end+=o,e.parent=r,r.children.push(e)})):(l.parent=r,r.children.push(l))),u.lookup&&(l.lookup=!0),printable&&console.log(new Array(recursion+1).join("\u2502 ")+"\u2514\u2500 "+l.type+" "+JSON.stringify(l.text)),u.lookup||l.lookup||(r.text=r.text+l.text,r.end=r.text.length,n=n.substr(l.text.length),o+=l.text.length),r.rest=n}while(l&&u.allowRepetition&&n.length&&!l.lookup)}else{let t=readToken(n,e[a]);if(!t)return;printable&&console.log(new Array(recursion+1).join("\u2502 ")+"\u2514> "+JSON.stringify(t.text)+e[a].source),s=!0,t.start+=o,t.end+=o,r.text=r.text+t.text,r.end=r.text.length,n=n.substr(t.text.length),o+=t.text.length,r.rest=n}s&&(out=r,printable&&console.log(new Array(recursion).join("\u2502 ")+"\u251c<\u2500\u2534< PUSHING "+out.type+" "+JSON.stringify(out.text)))})),out&&targetLex.simplifyWhenOneChildren&&1==out.children.length&&(out=out.children[0])}return out||printable&&console.log(target+" NOT RESOLVED FROM "+txt),out}parseRecovery(e,t,r){if(e.recover&&t.length){let n=this.debug;n&&console.log(new Array(r+1).join("\u2502 ")+"Trying to recover until token "+e.recover+" from "+JSON.stringify(t.split("\n")[0]+t.split("\n")[1]));let o,i={type:"SyntaxError",text:"",children:[],end:0,errors:[],fullText:"",parent:null,start:0,rest:""};do{if(o=this.parse(t,e.recover,r+1),o){new TokenError_1.TokenError('Unexpected input: "'+i.text+`" Expecting: ${e.name}`,i);break}i.text=i.text+t[0],i.end=i.text.length,t=t.substr(1)}while(!o&&t.length>0);if(i.text.length>0&&o)return n&&console.log(new Array(r+1).join("\u2502 ")+"Recovered text: "+JSON.stringify(i.text)),i}return null}}exports.Parser=Parser,exports.default=Parser},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=Object.prototype.hasOwnProperty;function o(e,t,r){for(r of e.keys())if(i(r,t))return r}function i(e,t){var r,s,a;if(e===t)return!0;if(e&&t&&(r=e.constructor)===t.constructor){if(r===Date)return e.getTime()===t.getTime();if(r===RegExp)return e.toString()===t.toString();if(r===Array){if((s=e.length)===t.length)for(;s--&&i(e[s],t[s]););return-1===s}if(r===Set){if(e.size!==t.size)return!1;for(s of e){if((a=s)&&"object"===typeof a&&!(a=o(t,a)))return!1;if(!t.has(a))return!1}return!0}if(r===Map){if(e.size!==t.size)return!1;for(s of e){if((a=s[0])&&"object"===typeof a&&!(a=o(t,a)))return!1;if(!i(s[1],t.get(a)))return!1}return!0}if(r===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(r===DataView){if((s=e.byteLength)===t.byteLength)for(;s--&&e.getInt8(s)===t.getInt8(s););return-1===s}if(ArrayBuffer.isView(e)){if((s=e.byteLength)===t.byteLength)for(;s--&&e[s]===t[s];);return-1===s}if(!r||"object"===typeof e){for(r in s=0,e){if(n.call(e,r)&&++s&&!n.call(t,r))return!1;if(!(r in t)||!i(e[r],t[r]))return!1}return Object.keys(t).length===s}}return e!==e&&t!==t}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenError=void 0;class n extends Error{constructor(e,t){if(super(e),this.message=e,this.token=t,!t||!t.errors)throw this;t.errors.push(this)}inspect(){return"SyntaxError: "+this.message}}t.TokenError=n},function(e,t,r){"use strict";function n(e,t){for(var r,o=0,i=e.length;o<i;o++)r=e[o],Array.isArray(r)?n(r,t):t.push(r);return t}e.exports=function(e){return n(e,[])}},function(e,t,r){"use strict";e.exports=()=>{const e={};return e.promise=new Promise(((t,r)=>{e.resolve=t,e.reject=r})),e}},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"===typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";r.d(t,"resolveDataRefs",(function(){return dt}));var n=r(0),o=r(3),i=r(8),s=r.n(i),a=r(1),l=r.n(a),u=r(12),c=r(4),h=r.n(c),f=r(2),p=r(6),d=r(9),g=r.n(d),v=r(13),y=r.n(v),m=r(14);const w=e=>({name:"Value",value:e}),b=e=>({name:"Expression",value:e}),E=e=>({name:"PathNode",path:e}),S=(e,t)=>({name:"Query",key:e,value:t}),k=e=>1===e.length?e[0]:{name:"Concatenated",value:e},x=l.a.string('"'),O=l.a.string("'"),R=l.a.string("`"),P=l.a.regex(/[\w\-@]+/).desc("identifier").map(w);let A;const _=l.a.lazy((()=>A)).trim(l.a.optWhitespace).wrap(l.a.string("{{"),l.a.string("}}")).map(E),T=l.a.regex(/[^`]*/).wrap(R,R).map(b),C=l.a.alt(P,_,T).atLeast(1).map(s.a).map(k),j=l.a.alt(l.a.regex(/[^"]*/).wrap(x,x).map(w),l.a.regex(/[^']*/).wrap(O,O).map(w),C),U=l.a.seq(j,l.a.string("=").times(1,3).trim(l.a.optWhitespace),j).map((([e,,t])=>S(e,t))),B=l.a.alt(U,j).trim(l.a.optWhitespace).wrap(l.a.string("["),l.a.string("]")).many(),L=l.a.seqMap(C,B,((e,t)=>[e,...t]));A=l.a.sepBy(L,l.a.string(".")).map(s.a),new u.Grammars.W3C.Parser('\nvalue ::= segment_and_bracket (SEGMENT_SEPARATOR segment_and_bracket)*\nsegment ::= concatenated | expression | modelRef | identifier \nconcatenated ::= (expression | modelRef | identifier)+ \nmodelRef ::= OPEN_CURL OPEN_CURL value CLOSE_CURL CLOSE_CURL \nidentifier ::= [\\w\\-@]+\nquery ::= WHITESPACE* optionally_quoted_segment WHITESPACE* EQUALS EQUALS? EQUALS? WHITESPACE* optionally_quoted_segment WHITESPACE*\nbrackets ::= OPEN_BRACKET WHITESPACE* (query | optionally_quoted_segment) WHITESPACE* CLOSE_BRACKET \nsegment_and_bracket ::= segment brackets*\nquoted_value ::= [^"\']*\noptionally_quoted_segment ::= WHITESPACE* SINGLE_QUOTE quoted_value SINGLE_QUOTE WHITESPACE* | WHITESPACE* DOUBLE_QUOTE quoted_value DOUBLE_QUOTE WHITESPACE* | WHITESPACE* segment WHITESPACE*\nexpression_value ::= [^`]*\nexpression ::= BACK_TICK expression_value BACK_TICK\n\nEQUALS ::= "="\nSEGMENT_SEPARATOR ::= "."\nSINGLE_QUOTE ::= "\'"\nDOUBLE_QUOTE ::= \'"\'\nWHITESPACE ::= " "\nOPEN_CURL ::= "{"\nCLOSE_CURL ::= "}" \nOPEN_BRACKET ::= "[" \nCLOSE_BRACKET ::= "]"\nBACK_TICK ::= "`" \n');const N="'",I="`",D=e=>{if(!e)return!1;const t=e.charCodeAt(0);return!(32===t||34===t||39===t||40===t||41===t||42===t||46===t||61===t||91===t||93===t||96===t||123===t||125===t)},M=e=>{let t=1,r=e.charAt(0);const n=n=>{if(n&&r!==n)throw new Error(`Expected char: ${n} but got: ${r}`);return r=e.charAt(t),t+=1,r},o=()=>{for(;" "===r;)n()},i=()=>{var e,t;return null!=(t=null!=(e=(()=>{if("{"===r){n("{"),n("{");const e=u();return n("}"),n("}"),e}})())?e:(()=>{if(r===I){n(I);let e=r;for(;n()&&r!==I;)e+=r;if(n(I),e)return b(e)}})())?t:(()=>{if(!D(r))return;let e=r;for(;n()&&D(r);)e+=r;return e?w(e):void 0})()},s=()=>{if(o(),r===N||'"'===r){const e=r===N;n(e?N:'"');const t=(e=>{if(!(null==r?void 0:r.match(e)))return;let t=r;for(;n()&&(null==r?void 0:r.match(e));)t+=r;return t?w(t):void 0})(/[^'"]+/);return n(e?N:'"'),t}return i()},a=()=>{if("["===r){n("["),o();let e=s();if(!e)throw new Error("Expected identifier");if(o(),(()=>{if("="!==r)return!1;for(;"="===r;)n();return!0})()){o();const t=s();e=S(e,t),o()}return e&&n("]"),e}},l=()=>{const e=[],t=(()=>{const e=[];let t=i();for(;void 0!==t;)e.push(t),t=i();if(0!==e.length)return k(e)})();if(t){e.push(t);let r=a();for(;void 0!==r;)e.push(r),r=a()}return e},u=()=>{const e=[];let t=l();for(;void 0!==t&&(e.push(...t),r&&"}"!==r);){if(0===t.length&&r)throw new Error(`Unexpected character: ${r}`);n("."),t=l()}return E(e)};try{return{status:!0,path:u()}}catch(c){return{status:!1,error:c.message}}};function V(e){return!("string"===typeof e||Array.isArray(e))}class F{constructor(e,t=(e=>new F(e))){const r=Array.isArray(e)?e:e.split(".");this.split=r.map((e=>{if("number"===typeof e)return e;const t=Number(e);return isNaN(t)?e:t})),Object.freeze(this.split),this.joined=this.split.join("."),this.factory=t}asArray(){return this.split}asString(){return this.joined}contains(e){const t=e.asArray();if(t.length<this.split.length)return!1;for(let r=0;r<this.split.length;r++)if(this.split[r]!==t[r])return!1;return!0}relative(e){return this.asArray().slice(e.asArray().length)}parent(){return this.factory(this.split.slice(0,-1))}key(){return this.split[this.split.length-1]}descendent(e){const t=(r=e,Array.isArray(r)?r:"string"===typeof r?r.split("."):r.asArray());var r;return this.factory(this.split.concat(t))}}var $=Object.defineProperty,H=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,q=(e,t,r)=>t in e?$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Y=(e,t)=>{for(var r in t||(t={}))z.call(t,r)&&q(e,r,t[r]);if(H)for(var r of H(t))W.call(t,r)&&q(e,r,t[r]);return e};function K(e,t,r){var n;const i={updates:{},path:[]};function s(e){if("Value"===e.name)return e.value;if("PathNode"===e.name){const n=K(e,t);n.updates&&(i.updates=Y(Y({},i.updates),n.updates));try{return t.convertToPath(t.getValue(n.path))}catch(r){throw new o.NestedError(`Unable to resolve path segment: ${n.path}`,r)}}if("Expression"===e.name)try{const r=t.evaluate(e.value);return t.convertToPath(r)}catch(r){throw new o.NestedError(`Unable to resolve path: ${e.value}`,r)}throw new Error(`Unable to resolve value for node: ${e.name}`)}function a(e){"string"===typeof e&&e.indexOf(".")>-1?e.split(".").forEach((e=>{i.path.push(function(e){const t=parseInt(e,10);return isNaN(t)?e:t}(e))})):i.path.push(e)}return e.path.forEach((function(e){var n,o;const l=null!=(n=null==r?void 0:r.beforeResolveNode.call(e,Y(Y({},i),t)))?n:e;switch(l.name){case"Expression":case"PathNode":a(s(l));break;case"Value":a(l.value);break;case"Query":{const e=null!=(o=t.getValue(i.path))?o:[],{key:r,value:n}=l,a=s(r),u=n&&s(n),c=function(e,t,r){return e.findIndex((e=>!(!e||"object"!==typeof e)&&e[t]==r))}(e,a,u);void 0===c||-1===c?(i.updates[[...i.path,e.length,a].join(".")]=u,i.path.push(e.length)):i.path.push(c);break}case"Concatenated":i.path.push(l.value.map(s).join(""));break;default:throw new Error(`Unsupported node type: ${l.name}`)}})),{path:i.path,updates:Object.keys(null!=(n=i.updates)?n:{}).length>0?i.updates:void 0}}var Z=Object.defineProperty,G=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,X=(e,t,r)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ee=(e,t)=>{for(var r in t||(t={}))J.call(t,r)&&X(e,r,t[r]);if(G)for(var r of G(t))Q.call(t,r)&&X(e,r,t[r]);return e};const te=/[\s()*=`{}'"[\]]/,re=/^[^.]+(\..+)*$/,ne={get:()=>{throw new Error("Not Implemented")},set:()=>{throw new Error("Not Implemented")},evaluate:()=>{throw new Error("Not Implemented")}};class oe{constructor(e){this.hooks={skipOptimization:new n.b,beforeResolveNode:new n.d},this.parserOptions=ee(ee({},ne),e),this.cache={},this.parseCache={},this.parse=this.parse.bind(this)}normalizePath(e,t){var r,n;if(!te.test(e)&&re.test(e)&&!0!==this.hooks.skipOptimization.call(e))return{path:e.split("."),updates:void 0};const i=null!=(r=this.parseCache[e])?r:M(e);if(this.parseCache[e]=i,"object"!==typeof i||!(null==i?void 0:i.status))throw new TypeError(`Cannot normalize path "${e}": ${null!=(n=null==i?void 0:i.error)?n:"Unknown Error."}`);try{return K(i.path,t,this.hooks)}catch(s){throw new o.NestedError(`Cannot resolve binding: ${e}`,s)}}getBindingForNormalizedResult(e){const t=e.path.join(".");if(this.cache[t])return this.cache[t];const r=new F(""===t?[]:e.path,this.parse);return this.cache[t]=r,r}parse(e,t={}){if(V(e))return e;const r=ee(ee({},this.parserOptions),t);let n={};const o=Array.isArray(e)?e.join("."):String(e),i={getValue:e=>{const t=this.normalizePath(e.join("."),i);return r.get(this.getBindingForNormalizedResult(t))},evaluate:e=>r.evaluate(e),convertToPath:e=>{if(void 0===e)throw new Error("Attempted to convert undefined value to binding path");if("string"!==typeof e&&"number"!==typeof e&&"boolean"!==typeof e)throw new Error(`Attempting to convert ${typeof e} to a binding path.`);const t=this.normalizePath(String(e),i);t.updates&&(n=ee(ee({},n),t.updates));const r=t.path.join(".");if(""===r)throw new Error("Nested path resolved to an empty path");return r}},s=this.normalizePath(o,i);s.updates&&(n=ee(ee({},n),s.updates));const a=Object.keys(n);if(!r.readOnly&&a.length>0){const e=a.map((e=>[this.parse(e),n[e]]));r.set(e)}return this.getBindingForNormalizedResult(s)}}class ie{constructor(){this.readDeps=new Set,this.writeDeps=new Set,this.namedDependencySets={},this.namedSet="core",this.createSubset("core"),this.createSubset("children")}createSubset(e,t=!1){!t&&this.namedDependencySets[e]||(this.namedDependencySets[e]={readDeps:new Set,writeDeps:new Set})}getDependencies(e){var t,r,n;return void 0!==e?null!=(n=null==(r=null==(t=this.namedDependencySets)?void 0:t[e])?void 0:r.readDeps)?n:new Set:this.readDeps}trackSubset(e){this.createSubset(e),this.namedSet=e}trackDefault(){this.namedSet="core"}getModified(e){var t,r,n;return void 0!==e?null!=(n=null==(r=null==(t=this.namedDependencySets)?void 0:t[e])?void 0:r.writeDeps)?n:new Set:this.writeDeps}readsBinding(e){return this.readDeps.has(e)}writesBinding(e){return this.writeDeps.has(e)}reset(){this.readDeps=new Set,this.writeDeps=new Set,this.namedDependencySets={},this.namedSet="core",this.createSubset("core",!0),this.createSubset("children",!0)}addReadDep(e,t=this.namedSet){var r,n;t&&(null==(n=null==(r=this.namedDependencySets)?void 0:r[t])||n.readDeps.add(e)),this.readDeps.add(e)}addWriteDep(e,t=this.namedSet){var r,n;t&&(null==(n=null==(r=this.namedDependencySets)?void 0:r[t])||n.writeDeps.add(e)),this.writeDeps.add(e)}addChildReadDep(e){this.addReadDep(e,"children")}}class se extends ie{constructor(e){super(),this.rootModel=e,this.set=this.set.bind(this),this.get=this.get.bind(this)}set(e,t){return e.forEach((([e])=>this.addWriteDep(e))),this.rootModel.set(e,t)}get(e,t){return this.addReadDep(e),this.rootModel.get(e,t)}delete(e,t){return this.addWriteDep(e),this.rootModel.delete(e,t)}}const ae=new class{get(){}set(){return[]}delete(){}},le=new F([]);function ue(e,t,r){return r?{get:(n,o)=>{const i=null!=o?o:t;return e.get?e.get(n,i,r):null==r?void 0:r.get(n,i)},set:(n,o)=>{const i=null!=o?o:t;return e.set?e.set(n,i,r):null==r?void 0:r.set(n,i)},delete:(n,o)=>{const i=null!=o?o:t;return e.delete?e.delete(n,i,r):null==r?void 0:r.delete(n,i)}}:e}function ce(e){if(0===e.length)return ae;if(1===e.length)return ue(e[0]);function t(t){var r;return null!=(r=e.reduce(((e,r)=>ue(r,t,e)),void 0))?r:ae}return{get:(e,r)=>{var n;return null==(n=t(r))?void 0:n.get(e,r)},set:(e,r)=>{var n;return null==(n=t(r))?void 0:n.set(e,r)},delete:(e,r)=>{var n;return null==(n=t(r))?void 0:n.delete(e,r)}}}class he{constructor(e=[]){this.hooks={onSet:new n.c},this.pipeline=e,this.effectiveDataModel=ce(this.pipeline)}setMiddleware(e){this.pipeline=e,this.effectiveDataModel=ce(e)}addMiddleware(e){this.pipeline=[...this.pipeline,e],this.effectiveDataModel=ce(this.pipeline)}reset(e={}){this.pipeline.forEach((e=>{var t;"reset"in e&&(null==(t=e.reset)||t.call(e))})),this.set([[le,e]])}set(e,t){const r=this.effectiveDataModel.set(e,t);return this.hooks.onSet.call(e),r}get(e,t){return this.effectiveDataModel.get(e,t)}delete(e,t){return this.effectiveDataModel.delete(e,t)}}class fe{constructor(e={}){this.model=e,this.get=this.get.bind(this),this.set=this.set.bind(this)}reset(e={}){this.model=e}get(e){return e&&e.asString()?h()(this.model,e.asArray()):this.model}set(e){const t=[];return e.forEach((([e,r])=>{const n=this.get(e);this.model=Object(f.setIn)(this.model,e.asArray(),r),t.push({binding:e,oldValue:n,newValue:r})})),t}delete(e){const t=e.parent();if(t){const r=this.get(t);void 0!==r&&(Array.isArray(r)?this.model=Object(f.setIn)(this.model,t.asArray(),Object(f.removeAt)(r,e.key())):this.model=Object(f.setIn)(this.model,t.asArray(),Object(f.omit)(r,e.key())))}}}const pe=Symbol("Expression Node ID");function de(e){return"object"===typeof e&&null!==e&&!Array.isArray(e)&&e.__id===pe}const ge=46,ve=40,ye=123,me=125,we=!0,be={"-":we,"!":we,"~":we,"+":we},Ee={"=":3,"+=":3,"-=":3,"&=":3,"|=":3,"||":5,"&&":6,"|":7,"^":8,"&":9,"==":10,"!=":10,"===":10,"!==":10,"<":11,">":11,"<=":11,">=":11,"<<":12,">>":12,">>>":12,"+":13,"-":13,"*":14,"/":14,"%":14};function Se(e,t){const r=new Error(`${e} at character ${t}`);throw r.index=t,r.description=e,r}function ke(e,t){if(e&&t)return{start:e.start,end:t.end}}function xe(e){let t=0;return Object.keys(e).forEach((r=>{r.length>t&&Object.prototype.hasOwnProperty.call(e,r)&&(t=r.length)})),t}const Oe=xe(be),Re=xe(Ee),Pe={true:!0,false:!1,null:null,undefined:void 0};function Ae(e){return Ee[e]||0}function _e(e,t,r,n){let o;return o="||"===e||"&&"===e?"LogicalExpression":"="===e?"Assignment":"+="===e||"-="===e||"&="===e||"|="===e?"Modification":"BinaryExpression",{__id:pe,type:o,operator:e,left:t,right:r,location:n}}function Te(e){return e>=48&&e<=57}function Ce(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122}function je(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57}function Ue(e,t){var r;const n=null==(r=null==t?void 0:t.strict)||r,o=e.charAt,i=e.charCodeAt,{length:s}=e;let a=0;const l=e=>({start:{character:e},end:{character:a}});function u(t){return o.call(e,t)}function c(t){return i.call(e,t)}function h(){let e=c(a);for(;32===e||9===e;)e=c(++a)}function f(){const e=function(){let e,t,r,n=d(),o=p();if(!o)return n;let i={value:o,prec:Ae(o)},s=d();s||Se(`Expected expression after ${o}`,a);const l=[n,i,s];o=p();for(;o&&(t=Ae(o),0!==t);){for(i={value:o,prec:t};l.length>2&&t<=l[l.length-2].prec;)s=l.pop(),o=l.pop().value,n=l.pop(),e=_e(o,n,s,ke(n.location,s.location)),l.push(e);e=d(),e||Se(`Expected expression after ${o}`,a),l.push(i,e),o=p()}r=l.length-1,e=l[r];for(;r>1;)e=_e(l[r-1].value,l[r-2],e,ke(l[r-2].location,e.location)),r-=2;return e}();h();const t=a;if(a<s&&63===c(a)){a++;const r=f();if(r||Se("Expected expression",a),h(),58===c(a)){a++;const n=f();return n||Se("Expected expression",a),{__id:pe,type:"ConditionalExpression",test:e,consequent:r,alternate:n,location:l(t)}}Se("Expected :",a)}return e}function p(){h();let t=e.substr(a,Re),r=t.length;for(;r>0;){if(Object.prototype.hasOwnProperty.call(Ee,t))return a+=r,t;t=t.substr(0,--r)}return!1}function d(){h();const t=c(a),r=a;if(Te(t)||46===t)return function(){let e="";const t=a;for(;Te(c(a));)e+=u(a++);if(c(a)===ge)for(e+=u(a++);Te(c(a));)e+=u(a++);let r=u(a);if("e"===r||"E"===r){for(e+=u(a++),r=u(a),"+"!==r&&"-"!==r||(e+=u(a++));Te(c(a));)e+=u(a++);Te(c(a-1))||Se(`Expected exponent (${e}${u(a)})`,a)}const n=c(a);Ce(n)?Se(`Variable names cannot start with a number (${e}${u(a)})`,a):n===ge&&Se("Unexpected period",a);return{__id:pe,type:"Literal",value:parseFloat(e),raw:e,location:l(t)}}();if(39===t||34===t)return g();if(Ce(t)||40===t)return function(){let e=c(a),t=e===ve?function(){a++;const e=f();if(h(),41===c(a))return a++,e;Se("Unclosed (",a)}():v();const r=a;h(),e=c(a);for(;e===ge||91===e||e===ve;)a++,e===ge?(h(),t={__id:pe,type:"MemberExpression",computed:!1,object:t,property:v(),location:l(r)}):91===e?(t={__id:pe,type:"MemberExpression",computed:!0,object:t,property:f(),location:l(r)},h(),e=c(a),93!==e&&Se("Unclosed [",a),a++):e===ve&&(t={__id:pe,type:"CallExpression",args:y(41),callTarget:t,location:l(r)}),h(),e=c(a);return t}();if(91===t)return function(){const e=a;return a++,{__id:pe,type:"ArrayExpression",elements:y(93),location:l(e)}}();if(n=t,o=c(a+1),n===ye&&o===ye)return function(){let e="",t=!1,r=1;const n=a;a+=2;for(;a<s;){const n=u(a++);if("}"===n&&c(a)===me){if(a++,r--,0===r){t=!0;break}e+="}}"}else"{"===n&&c(a)===ye?(r++,e+="{{",a++):e+=n}t||Se(`Unclosed brace after "${e}"`,a);return{__id:pe,type:"ModelRef",ref:e,location:l(n)}}();var n,o;if(t===ye)return function(){const e=[];let t,r,n,o=!1,i=!0;const u=a;for(++a;a<s;){if(h(),n=c(a),125===n){t&&Se("A key was defined but a value was not",a),a++,o=!0;break}i?(39!==n&&34!==n&&Se("An object must start wtih a key",a),t=g(),h(),58===c(a)?(a++,i=!1):Se("A colon must follow an object key",a)):(r=f(),e.push({key:t,value:r}),h(),n=c(a),44===n?a++:125!==n&&Se("Please add a comma to add another key",a),i=!0,t=void 0,r=void 0),n=c(a)}return o||Se("Unclosed brace in object",a),{__id:pe,type:"Object",attributes:e,location:l(u)}}();let i=e.substr(a,Oe),p=i.length;for(;p>0;){if(Object.prototype.hasOwnProperty.call(be,i))return a+=p,{__id:pe,type:"UnaryExpression",operator:i,argument:d(),prefix:!0,location:l(r)};i=i.substr(0,--p)}return!1}function g(){const e=u(a++);let t="",r=!1;const n=a;for(;a<s;){let n=u(a++);if(n===e){r=!0;break}if("\\"===n)switch(n=u(a++),n){case"n":t+="\n";break;case"r":t+="\r";break;case"t":t+="\t";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v"}else t+=n}return r||Se(`Unclosed quote after "${t}"`,a),{__id:pe,type:"Literal",value:t,raw:`${e}${t}${e}`,location:l(n)}}function v(){const t=a;let r=c(t);for(Ce(r)?a++:Se(`Unexpected ${u(a)}`,a);a<s&&(r=c(a),je(r));)a++;const n=e.slice(t,a);return Object.prototype.hasOwnProperty.call(Pe,n)?{__id:pe,type:"Literal",value:Pe[n],raw:n,location:l(t)}:"this"===n?{__id:pe,type:"ThisExpression",location:l(t)}:{__id:pe,type:"Identifier",name:n,location:l(t)}}function y(e){const t=[];let r,o;for(;a<s;){if(h(),r=c(a),r===e){a++;break}44!==r?(o=f(),o&&"Compound"!==o.type||Se("Expected comma",a),t.push(o)):a++}return n&&r!==e&&Se(`Expected ${String.fromCharCode(e)}`,a),t}const m=[];try{for(;a<s;){const e=c(a);if(59===e||44===e){a++;continue}const t=f();t?m.push(t):n&&a<s&&Se(`Unexpected "${u(a)}"`,a)}return 1===m.length?m[0]:{__id:pe,type:"Compound",body:m,location:l(0)}}catch(w){if(n||!(w instanceof Error))throw w;return{__id:pe,type:"Compound",body:m,location:l(0),error:w}}}const Be=(e,t,r,n)=>e.evaluate(t)?e.evaluate(r):n?e.evaluate(n):null;Be.resolveParams=!1;var Le=Object.freeze({__proto__:null,setDataVal:(e,t,r)=>{e.model.set([[t,r]])},getDataVal:(e,t)=>e.model.get(t),deleteDataVal:(e,t)=>e.model.delete(t),conditional:Be});function Ne(e){return!de(e)&&("object"===typeof e&&null!==e&&!Array.isArray(e)&&"value"in e)}var Ie=Object.defineProperty,De=Object.defineProperties,Me=Object.getOwnPropertyDescriptors,Ve=Object.getOwnPropertySymbols,Fe=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,He=(e,t,r)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ze=(e,t)=>{for(var r in t||(t={}))Fe.call(t,r)&&He(e,r,t[r]);if(Ve)for(var r of Ve(t))$e.call(t,r)&&He(e,r,t[r]);return e},We=(e,t)=>De(e,Me(t));const qe=(e,t,r)=>e.evaluate(t)&&e.evaluate(r);qe.resolveParams=!1;const Ye=(e,t,r)=>e.evaluate(t)||e.evaluate(r);Ye.resolveParams=!1;const Ke={"+":(e,t)=>e+t,"-":(e,t)=>e-t,"*":(e,t)=>e*t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,">":(e,t)=>e>t,">=":(e,t)=>e>=t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,"&&":qe,"||":Ye,"!==":(e,t)=>e!==t,"===":(e,t)=>e===t,"|":(e,t)=>e|t,"&":(e,t)=>e&t,"+=":(e,t)=>e+t,"-=":(e,t)=>e-t,"&=":(e,t)=>e&t,"|=":(e,t)=>e|t},Ze={"-":e=>-e,"+":e=>Number(e),"!":e=>!e};class Ge{constructor(e){this.vars={},this.hooks={resolve:new n.d,resolveOptions:new n.d,beforeEvaluate:new n.d,onError:new n.b},this.expressionsCache=new Map,this.operators={binary:new Map(Object.entries(Ke)),unary:new Map(Object.entries(Ze)),expressions:new Map(Object.entries(Le))},this.defaultHookOptions=We(ze({},e),{evaluate:e=>this.evaluate(e,this.defaultHookOptions),resolveNode:e=>this._execAST(e,this.defaultHookOptions)}),this.hooks.resolve.tap("ExpressionEvaluator",this._resolveNode.bind(this)),this.evaluate=this.evaluate.bind(this)}reset(){this.expressionsCache.clear()}evaluate(e,t){var r;const n=this.hooks.resolveOptions.call(We(ze(ze({},this.defaultHookOptions),t),{resolveNode:e=>this._execAST(e,n)}));let o=null!=(r=this.hooks.beforeEvaluate.call(e,n))?r:e;for(;Ne(o);)o=o.value;return"number"===typeof o||"boolean"===typeof o||void 0===o||null===o?o:de(o)?this._execAST(o,n):Array.isArray(o)?o.reduce(((e,r)=>this.evaluate(r,t)),null):this._execString(String(o),n)}addExpressionFunction(e,t){this.operators.expressions.set(e,t)}addBinaryOperator(e,t){this.operators.binary.set(e,t)}addUnaryOperator(e,t){this.operators.unary.set(e,t)}setExpressionVariable(e,t){this.vars[e]=t}getExpressionVariable(e){return this.vars[e]}_execAST(e,t){return this.hooks.resolve.call(void 0,e,t)}_execString(e,t){var r;if(""===e)return e;const n=e.match(/^@\[(.*)\]@$/);let i,s=e;n&&([,s]=Array.from(n));try{i=null!=(r=this.expressionsCache.get(s))?r:Ue(s,{strict:t.strict}),this.expressionsCache.set(s,i)}catch(a){if(t.throwErrors||!this.hooks.onError.call(a))throw new o.NestedError(`Error parsing expression: ${e}`,a);return}try{return this._execAST(i,t)}catch(a){if(t.throwErrors||!this.hooks.onError.call(a))throw new o.NestedError(`Error evaluating expression: ${e}`,a)}}_resolveNode(e,t,r){const{resolveNode:n,model:o}=r,i=We(ze({},r),{evaluate:e=>this.evaluate(e,r)});if("Literal"===t.type)return t.value;if("Identifier"===t.type)return this.vars[t.name];if("Compound"===t.type||"ThisExpression"===t.type)throw new Error(`Expression type: ${t.type} is not supported`);if("BinaryExpression"===t.type||"LogicalExpression"===t.type){const e=this.operators.binary.get(t.operator);return e?"resolveParams"in e?!1===e.resolveParams?e(i,t.left,t.right):e(i,n(t.left),n(t.right)):e(n(t.left),n(t.right)):void 0}if("UnaryExpression"===t.type){const e=this.operators.unary.get(t.operator);return e?"resolveParams"in e?e(i,!1===e.resolveParams?t.argument:n(t.argument)):e(n(t.argument)):void 0}if("Object"===t.type){const{attributes:e}=t,r={};return e.forEach((e=>{const t=n(e.key),o=n(e.value);r[t]=o})),r}if("CallExpression"===t.type){const e=t.callTarget.name,r=this.operators.expressions.get(e);if(!r)throw new Error(`Unknown expression function: ${e}`);if("resolveParams"in r&&!1===r.resolveParams)return r(i,...t.args);return r(i,...t.args.map((e=>n(e))))}if("ModelRef"===t.type)return o.get(t.ref,{context:{model:r.model}});if("MemberExpression"===t.type){return n(t.object)[n(t.property)]}if("Assignment"!==t.type){if("ConditionalExpression"===t.type){const e=n(t.test)?t.consequent:t.alternate;return n(e)}if("ArrayExpression"===t.type)return t.elements.map((e=>n(e)));if("Modification"===t.type){const e=this.operators.binary.get(t.operator);if(e){let r;return r="resolveParams"in e?!1===e.resolveParams?e(i,t.left,t.right):e(i,n(t.left),n(t.right)):e(n(t.left),n(t.right)),"ModelRef"===t.left.type?o.set([[t.left.ref,r]]):"Identifier"===t.left.type&&(this.vars[t.left.name]=r),r}return n(t.left)}}else{if("ModelRef"===t.left.type){const e=n(t.right);return o.set([[t.left.ref,e]]),e}if("Identifier"===t.left.type){const e=n(t.right);return this.vars[t.left.name]=e,e}}}}class Je{constructor(){this.hooks={trace:new n.c,debug:new n.c,info:new n.c,warn:new n.c,error:new n.c,log:new n.c},this.logHandlers=new Set,this.trace=this.createHandler("trace"),this.debug=this.createHandler("debug"),this.info=this.createHandler("info"),this.warn=this.createHandler("warn"),this.error=this.createHandler("error")}createHandler(e){return(...t)=>{this.hooks[e].call(t),this.hooks.log.call(e,t),this.logHandlers.forEach((r=>r[e](...t)))}}addHandler(e){this.logHandlers.add(e)}removeHandler(e){this.logHandlers.delete(e)}}class Qe{constructor(e){this.trace=this.createHandler("trace"),this.debug=this.createHandler("debug"),this.info=this.createHandler("info"),this.warn=this.createHandler("warn"),this.error=this.createHandler("error"),this.proxiedLoggerProvider=e}createHandler(e){return(...t)=>{const r=this.proxiedLoggerProvider();null==r||r[e](...t)}}}var Xe=Object.defineProperty,et=Object.defineProperties,tt=Object.getOwnPropertyDescriptors,rt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,it=(e,t,r)=>t in e?Xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,st=(e,t)=>{for(var r in t||(t={}))nt.call(t,r)&&it(e,r,t[r]);if(rt)for(var r of rt(t))ot.call(t,r)&&it(e,r,t[r]);return e};const at=e=>e;class lt{constructor(e){this.formatters=new Map,this.types=new Map,this.schema=new Map,this.bindingSchemaNormalizedCache=new Map,this.hooks={resolveTypeForBinding:new n.d},this.schema=e?function(e){const t=new Map;if(!e.ROOT)return t;const r=[{node:e.ROOT,path:[],visited:new Set}];for(;r.length>0;){const n=r.shift();if(!n)break;const{node:o,path:i,visited:s}=n;Object.entries(o).forEach((([n,o])=>{const a=[...i,n],l=a.join(".");if(t.has(l))throw new Error("Path has already been processed. There's either a loop somewhere or a bug");if(s.has(o.type))throw new Error(`Path already contained type: ${o.type}. This likely indicates a loop in the schema`);t.set(l,o),o.isArray&&a.push("[]"),o.isRecord&&a.push("{}"),o.type&&e[o.type]&&r.push({path:a,node:e[o.type],visited:new Set([...s,o.type])})}))}return t}(e):new Map}addFormatters(e){e.forEach((e=>{this.formatters.set(e.name,e)}))}addDataTypes(e){e.forEach((e=>{this.types.set(e.type,e)}))}getValidationsForBinding(e){var t;const r=this.getApparentType(e);if(null==(t=null==r?void 0:r.validation)?void 0:t.length)return r.validation.map((e=>st({severity:"error",trigger:"change"},e)))}normalizeBinding(e){const t=this.bindingSchemaNormalizedCache.get(e);if(t)return t;let r=e.asArray(),n=r.map((e=>"number"===typeof e?"[]":e)).join(".");return n&&(this.bindingSchemaNormalizedCache.set(e,n),r=n.split(".")),r.forEach((t=>{const o=r.map((e=>e===t?"{}":e)).join(".");this.schema.get(o)&&(this.bindingSchemaNormalizedCache.set(e,o),r=o.split("."),n=o)})),n}getType(e){return this.hooks.resolveTypeForBinding.call(this.schema.get(this.normalizeBinding(e)),e)}getApparentType(e){var t,r;const n=this.getType(e);if(void 0===n)return;const o=this.getTypeDefinition(null==n?void 0:n.type);return void 0===o?n:(i=st(st({},o),n),s={validation:[...null!=(t=n.validation)?t:[],...null!=(r=o.validation)?r:[]]},et(i,tt(s)));var i,s}getTypeDefinition(e){return this.types.get(e)}getFormatterForType(e){const t=e,{type:r}=t,n=((e,t)=>{var r={};for(var n in e)nt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&rt)for(var n of rt(e))t.indexOf(n)<0&&ot.call(e,n)&&(r[n]=e[n]);return r})(t,["type"]),o=this.formatters.get(r);if(o)return{format:o.format?e=>{var t;return null==(t=o.format)?void 0:t.call(o,e,n)}:at,deformat:o.deformat?e=>{var t;return null==(t=o.deformat)?void 0:t.call(o,e,n)}:at}}getFormatter(e){const t=this.getApparentType(e);if(null==t?void 0:t.format)return this.getFormatterForType(t.format)}}const ut="{{",ct="}}";function ht(e){const t=e.indexOf(ut);if(-1===t)return;let r=1,n=t+ut.length,o=e.substring(t+ut.length);for(;r>0&&o.length>0;){const e=o.indexOf(ct);if(-1===e)break;const t=o.indexOf(ut);-1!==t&&t<e?(r++,o=o.substring(t+ut.length),n+=t+ut.length):(r--,o=o.substring(e+ct.length),n+=e+ct.length)}if(0!==r)throw new Error(`Unbalanced {{ and }} in exp: ${e}`);return{start:t,end:n}}function ft(e,t){const{model:r,formatted:n=!0}=t;let o=function(e,{evaluate:t}){if(!t)return e;const r=/@\[.*?\]@/;let n=e,o=n.match(r);for(;null!==o;){const i=o[0],s=n.indexOf(i),a=t(i.substr("@[".length,i.length-"@[".length-"]@".length));if(0===s&&i===e&&"string"!==typeof a)return a;n=n.substr(0,s)+a+n.substr(s+i.length),o=n.match(r)}return n}(e,t);if(!r||"string"!==typeof o||-1===o.indexOf(ut))return o;for(;-1!==o.indexOf(ut);){const e=ht(o);if(!e)return o;const{start:t,end:i}=e,s=o.substring(t+ut.length,i-ut.length).trim(),a=r.get(s,{formatted:n});if(0===t&&i===o.length&&"string"!==typeof a)return a;o=o.substr(0,t)+a+o.substr(i)}return o}function pt(e,t){switch(typeof e){case"string":return ft(e,t);case"object":{if(!e)return e;const r=Object.keys(e);let n=e;return r.length>0&&r.forEach((r=>{n=Object(f.setIn)(n,[r],pt(e[r],t))})),n}default:return e}}function dt(e,t){return pt(e,t)}function gt(e,t){const r=new Map(e),n=t.parent(),o=t.key();if(r.forEach(((e,n)=>{(t===n||t.contains(n))&&r.delete(n)})),"number"===typeof o){Array.from(e.keys()).filter((e=>{if(n.contains(e)){const[t]=e.relative(n);return"number"===typeof t&&t>o}return!1})).sort().forEach((e=>{const[t,...o]=e.relative(n);if("number"===typeof t){const i=[t-1,...o],s=n.descendent(i);r.set(s,r.get(e)),r.delete(e)}}))}return r}var vt,yt,mt=Object.defineProperty,wt=Object.defineProperties,bt=Object.getOwnPropertyDescriptors,Et=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable,xt=(e,t,r)=>t in e?mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;class Ot{constructor(e,t){this.validator=e,this.shadowModelPaths=new Map,this.logger=null==t?void 0:t.logger,this.shouldIncludeInvalid=null==t?void 0:t.shouldIncludeInvalid}set(e,t,r){const n=ue(this,(o=((e,t)=>{for(var r in t||(t={}))St.call(t,r)&&xt(e,r,t[r]);if(Et)for(var r of Et(t))kt.call(t,r)&&xt(e,r,t[r]);return e})({},t),wt(o,bt({includeInvalid:!0}))),r);var o;const i=[],s=new Set;e.forEach((([e,t])=>{this.shadowModelPaths.set(e,t),s.add(e)}));const a=[];this.shadowModelPaths.forEach(((e,t)=>{var r;const o=this.validator(t,n);void 0===o?i.push([t,e]):o instanceof Set?o.forEach((r=>{a.push(r.binding),r.isStrong||r.binding.asString()!==t.asString()||i.push([r.binding,e])})):s.has(t)&&(a.push(t),null==(r=this.logger)||r.debug(`Invalid value for path: ${t.asString()} - ${o.severity} - ${o.message}`))}));let l=[];if(r&&i.length>0){i.forEach((([e])=>this.shadowModelPaths.delete(e)));const e=r.set(i,t);if(0===a.length)return e;l=e}const u=a.map((e=>({binding:e,oldValue:n.get(e),newValue:n.get(e),force:!0})));return[...l,...u]}get(e,t,r){var n,o;let i=null==r?void 0:r.get(e,t);return(null!=(o=null==(n=this.shouldIncludeInvalid)?void 0:n.call(this,t))?o:!0===(null==t?void 0:t.includeInvalid))&&this.shadowModelPaths.forEach(((t,r)=>{r!==e?e.contains(r)&&(i=Object(f.setIn)(i,r.relative(e),t)):i=t})),i}delete(e,t,r){return this.shadowModelPaths=gt(this.shadowModelPaths,e),null==r?void 0:r.delete(e,t)}}class Rt{constructor(){this.registry=new Map}get(e){return this.registry.get(e)}register(e,t){this.registry.set(e,t)}}function Pt(e){var t;if(e)return"value"in e&&"object"===typeof e.value&&"string"===typeof(null==(t=e.value)?void 0:t.id)?e.value.id:void 0}(yt=vt||(vt={})).Asset="asset",yt.View="view",yt.Applicability="applicability",yt.Template="template",yt.Value="value",yt.MultiNode="multi-node",yt.Switch="switch",yt.Async="async",yt.Unknown="unknown",yt.Empty="empty";var At=Object.defineProperty,_t=Object.defineProperties,Tt=Object.getOwnPropertyDescriptors,Ct=Object.getOwnPropertySymbols,jt=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable,Bt=(e,t,r)=>t in e?At(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Lt=(e,t)=>{for(var r in t||(t={}))jt.call(t,r)&&Bt(e,r,t[r]);if(Ct)for(var r of Ct(t))Ut.call(t,r)&&Bt(e,r,t[r]);return e},Nt=(e,t)=>_t(e,Tt(t));const It={type:vt.Empty};class Dt{constructor(){this.hooks={onParseObject:new n.d,onCreateASTNode:new n.d,determineNodeType:new n.b,parseNode:new n.b}}parseView(e){const t=this.parseObject(e,vt.View);if(!t)throw new Error("Unable to parse object into a view");return t}parseAsync(e,t,r){const n=this.parseObject(Object(f.omit)(e,"async"),t,r),o=Pt(n);return null!==n&&o?this.createASTNode({id:o,type:vt.Async,value:n},e):null}createASTNode(e,t){const r=this.hooks.onCreateASTNode.call(e,t);return void 0===r?e:r}hasTemplateValues(e,t){return Object.hasOwnProperty.call(e,"template")&&Array.isArray(null==e?void 0:e.template)&&e.template.length&&e.template.find((e=>e.output===t))}hasSwitchKey(e){return"staticSwitch"===e}parseObject(e,t=vt.Value,r={templateDepth:0}){var n;const o=this.hooks.determineNodeType.call(e);if(void 0!==o){const n=this.hooks.parseNode.call(e,t,r,o);if(n)return n}const i=(e,n,o=[])=>{if("object"!==typeof n||null===n)return{value:n,children:[]};const s=this.hooks.onParseObject.call(n,t);if(!s)return e;const a={children:[],value:e},l=(Array.isArray(s)?s.map(((e,t)=>[t,e])):[...Object.entries(s),...Object.getOwnPropertySymbols(s).map((e=>[e,s[e]]))]).reduce(((e,t)=>{var n;const a=e,{children:l}=a,u=((e,t)=>{var r={};for(var n in e)jt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ct)for(var n of Ct(e))t.indexOf(n)<0&&Ut.call(e,n)&&(r[n]=e[n]);return r})(a,["children"]),[c,h]=t;if("asset"===c&&"object"===typeof h){const e=this.parseObject(h,vt.Asset,r);if(e)return Nt(Lt({},u),{children:[...l,{path:[...o,"asset"],value:e}]})}else{if(this.hooks.determineNodeType.call(c)===vt.Template&&Array.isArray(h)){const e=h.map((e=>{var t,n;const i=this.hooks.onCreateASTNode.call({type:vt.Template,depth:null!=(t=r.templateDepth)?t:0,data:e.data,template:e.value,dynamic:null!=(n=e.dynamic)&&n},e);if((null==i?void 0:i.type)===vt.MultiNode&&i.values.forEach((e=>{e.parent=i})),i)return{path:[...o,e.output],value:i}})).filter((e=>!!e));return Nt(Lt({},u),{children:[...l,...e]})}if(h&&this.hooks.determineNodeType.call(h)===vt.Switch||this.hasSwitchKey(c)){const e=this.hooks.parseNode.call(this.hasSwitchKey(c)?{[c]:h}:h,vt.Value,r,vt.Switch);if(e&&e.type===vt.Value&&1===(null==(n=e.children)?void 0:n.length)&&void 0===e.value){const t=e.children[0];return Nt(Lt({},u),{children:[...l,{path:[...o,c,...t.path],value:t.value}]})}if(e)return Nt(Lt({},u),{children:[...l,{path:[...o,c],value:e}]})}else if(h&&function(e){return Object.prototype.hasOwnProperty.call(e,"async")}(h)){const e=this.parseAsync(h,vt.Value,r);e&&l.push({path:[...o,c],value:e})}else if(h&&Array.isArray(h)){const e=h.map((e=>this.parseObject(e,vt.Value,r))).filter((e=>!!e));if(e.length>0){const t=this.hooks.onCreateASTNode.call({type:vt.MultiNode,override:!this.hasTemplateValues(s,c),values:e},h);if((null==t?void 0:t.type)===vt.MultiNode&&t.values.forEach((e=>{e.parent=t})),t)return Nt(Lt({},u),{children:[...l,{path:[...o,c],value:t}]})}}else{if(!h||"object"!==typeof h){return{children:l,value:Object(f.setIn)(e.value,[...o,c],h)}}{const t=this.hooks.determineNodeType.call(h);if(t!==vt.Applicability){const t=i(e.value,h,[...o,c]);return{value:t.value,children:[...l,...t.children]}}{const e=this.hooks.parseNode.call(h,vt.Value,r,t);if(e)return Nt(Lt({},u),{children:[...l,{path:[...o,c],value:e}]})}}}}return e}),a);return l},{value:s,children:a}=i(void 0,e),l=void 0===s&&0===a.length?void 0:{type:t,value:s};if(void 0!==l&&a.length>0){const e=l;e.children=a,a.forEach((t=>{t.value.parent=e}))}return null!=(n=this.hooks.onCreateASTNode.call(l,e))?n:null}}var Mt=Object.defineProperty,Vt=Object.defineProperties,Ft=Object.getOwnPropertyDescriptors,$t=Object.getOwnPropertySymbols,Ht=Object.prototype.hasOwnProperty,zt=Object.prototype.propertyIsEnumerable,Wt=(e,t,r)=>t in e?Mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function qt(e,t){if(!e||!t)return!0;const r=Array.from(t.values()),n=Array.from(e.values());return void 0!==r.find((e=>!!n.find((t=>t===e||t.contains(e)||e.contains(t)))))}function Yt(e){return t=((e,t)=>{for(var r in t||(t={}))Ht.call(t,r)&&Wt(e,r,t[r]);if($t)for(var r of $t(t))zt.call(t,r)&&Wt(e,r,t[r]);return e})({},e),r={data:{model:e.model,formatValue:(t,r)=>e.formatValue?e.formatValue(t,r):r,format:(t,r)=>e.format?e.format(V(t)?t:e.parseBinding(t),r):r},evaluate:t=>e.evaluator.evaluate(t,e)},Vt(t,Ft(r));var t,r}function Kt(e,t){Array.isArray(e)?e.forEach((e=>{Kt(e,t)})):t.push(e)}var Zt=Object.defineProperty,Gt=Object.defineProperties,Jt=Object.getOwnPropertyDescriptors,Qt=Object.getOwnPropertySymbols,Xt=Object.prototype.hasOwnProperty,er=Object.prototype.propertyIsEnumerable,tr=(e,t,r)=>t in e?Zt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rr=(e,t)=>{for(var r in t||(t={}))Xt.call(t,r)&&tr(e,r,t[r]);if(Qt)for(var r of Qt(t))er.call(t,r)&&tr(e,r,t[r]);return e},nr=(e,t)=>Gt(e,Jt(t));class or{constructor(e,t){this.hooks={skipResolve:new n.d,beforeUpdate:new n.c,afterUpdate:new n.c,resolveOptions:new n.d,beforeResolve:new n.d,resolve:new n.d,afterResolve:new n.d,afterNodeUpdate:new n.c},this.root=e,this.options=t,this.resolveCache=new Map,this.ASTMap=new Map,this.logger=t.logger,this.idCache=new Set}getSourceNode(e){return this.ASTMap.get(e)}update(e){this.hooks.beforeUpdate.call(e);const t=new Map;this.idCache.clear();const r=new Map(this.ASTMap);this.ASTMap.clear();const n=this.computeTree(this.root,void 0,e,t,Yt(this.options),void 0,r);return this.resolveCache=t,this.hooks.afterUpdate.call(n.value),n.value}getResolveCache(){return new Map(this.resolveCache)}getPreviousResult(e){var t,r;if(!e)return;const n=0===this.resolveCache.size,o=Pt(e);if(o){if(this.idCache.has(o))return void(n&&(e.type===vt.Asset||e.type===vt.View?null==(t=this.logger)||t.error(`Cache conflict: Found Asset/View nodes that have conflicting ids: ${o}, may cause cache issues.`):e.type===vt.Value&&(null==(r=this.logger)||r.info(`Cache conflict: Found Value nodes that have conflicting ids: ${o}, may cause cache issues. To improve performance make value node IDs globally unique.`))));this.idCache.add(o)}return this.resolveCache.get(e)}cloneNode(e){const t=Object(f.clone)(e);return Object.keys(t).forEach((e=>{if("parent"===e)return;const r=t[e];"object"===typeof r&&null!==r&&(t[e]=Array.isArray(r)?[...r]:rr({},r))})),t}computeTree(e,t,r,n,o,i,s){var a,l,u;const c=new se(o.data.model);c.trackSubset("core");const d=(g=function(e,t){function r(r,n){const o=V(r)?r:t(r,{get:e.get,set:e.set,readOnly:n});if(!o)throw new Error("Unable to parse binding");return o}return{get:(t,n)=>e.get(r(t,!0),n),set:(t,n)=>e.set(t.map((([e,t])=>[r(e,!1),t])),n),delete:(t,n)=>e.delete(r(t,!1),n)}}(c,this.options.parseBinding),{get:(e,t)=>g.get(e,rr({context:{model:g}},t)),set:(e,t)=>g.set(e,rr({context:{model:g}},t)),delete:(e,t)=>g.delete(e,rr({context:{model:g}},t))});var g;const v=this.hooks.resolveOptions.call(nr(rr({},o),{data:nr(rr({},o.data),{model:d}),evaluate:e=>this.options.evaluator.evaluate(e,{model:d}),node:e}),e),y=this.getPreviousResult(e),m=null==y?void 0:y.dependencies,w=qt(r,m),b=this.hooks.skipResolve.call(!w,e,v),E=nr(rr({},this.cloneNode(e)),{parent:i}),S=null!=(a=this.hooks.beforeResolve.call(E,v))?a:{type:vt.Empty},k=S.type===vt.MultiNode&&(null==(l=null==i?void 0:i.parent)?void 0:l.type)===vt.MultiNode&&i.type===vt.Value;if(y&&b){const r=nr(rr({},y),{updated:!1}),o=(e,t,r)=>{var i;const{node:a}=e;this.ASTMap.set(a,t);const l=nr(rr({},e),{updated:!1});n.set(t,l);const u=e=>{var r;const n=null!=(r=s.get(e))?r:e,i=this.getPreviousResult(n);i&&o(i,n,t)};"children"in a?null==(i=a.children)||i.forEach((({value:e})=>u(e))):a.type===vt.MultiNode&&a.values.forEach(u),this.hooks.afterNodeUpdate.call(t,r,l)};return y.node.parent=i,o(y,e,t),r}S.parent=i,v.node=S,this.ASTMap.set(S,e);let x=this.hooks.resolve.call(void 0,S,v),O=!Object(p.a)(null==y?void 0:y.value,x);y&&!O&&(x=null==y?void 0:y.value);const R=new Set;if(c.trackSubset("children"),"children"in S){const t=null==(u=S.children)?void 0:u.map((t=>{const o=this.computeTree(t.value,e,r,n,v,S,s),{dependencies:i,node:a,updated:l,value:u}=o;if(i.forEach((e=>R.add(e))),u)if(a.type!==vt.MultiNode||a.override)x=Object(f.setIn)(x,t.path,u);else{const e=Object(f.addLast)(h()(x,t.path,[]),u);x=Object(f.setIn)(x,t.path,e)}return O=O||l,nr(rr({},t),{value:a})}));S.children=t}else if(S.type===vt.MultiNode){const t=[],o=k?null==i?void 0:i.parent:e,a=S.values.map((e=>{var i;const a=this.computeTree(e,o,r,n,v,S,s);return void 0!==a.value&&null!==a.value&&((null==(i=a.node.parent)?void 0:i.type)===vt.MultiNode&&Array.isArray(a.value)?a.value.forEach((e=>{Kt(e,t)})):t.push(a.value)),a.dependencies.forEach((e=>R.add(e))),O=O||a.updated,a.node}));S.values=a,x=t}R.forEach((e=>c.addChildReadDep(e))),c.trackSubset("core"),y&&!O&&(x=null==y?void 0:y.value),x=this.hooks.afterResolve.call(x,S,nr(rr({},v),{getDependencies:e=>c.getDependencies(e)}));const P={node:S,updated:O,value:x,dependencies:new Set([...c.getDependencies(),...R])};return this.hooks.afterNodeUpdate.call(e,k?null==i?void 0:i.parent:t,P),n.set(e,P),P}}class ir{constructor(e){this.hooks={resolveTemplateSubstitutions:new n.d},this.options=e}parseTemplate(e,t,r){const{template:n,depth:o}=t,i=r.data.model.get(t.data);if(!i)return null;if(!Array.isArray(i))throw new Error(`Template using '${t.data}' but is not an array`);const s=[];i.forEach(((r,i)=>{const a=this.hooks.resolveTemplateSubstitutions.call([{expression:new RegExp(`_index${o||""}_`),value:String(i)}],{depth:o,data:r,index:i});let l=JSON.stringify(n);for(const{expression:e,value:t}of a){let r="g";"object"===typeof e&&(r=`${e.flags}${e.global?"":"g"}`),l=l.replace(new RegExp(e,r),t)}const u=e(JSON.parse(l),vt.Value,{templateDepth:t.depth+1});u&&s.push(u)}));return{type:vt.MultiNode,override:!1,values:s}}applyParser(e){e.hooks.onCreateASTNode.tap("template",(t=>t&&t.type===vt.Template&&!t.dynamic?this.parseTemplate(e.parseObject.bind(e),t,this.options):t)),e.hooks.determineNodeType.tap("template",(e=>{if("template"===e)return vt.Template})),e.hooks.parseNode.tap("template",((t,r,n,o)=>{var i,s;if(o===vt.Template){const r=e.createASTNode({type:vt.Template,depth:null!=(i=n.templateDepth)?i:0,data:t.data,template:t.value,dynamic:null!=(s=t.dynamic)&&s},t);if(r)return r}}))}applyResolverHooks(e){e.hooks.beforeResolve.tap("template",((e,t)=>e&&e.type===vt.Template&&e.dynamic?this.parseTemplate(t.parseNode,e,t):e))}apply(e){e.hooks.parser.tap("template",this.applyParser.bind(this)),e.hooks.resolver.tap("template",this.applyResolverHooks.bind(this))}}const sr=(e,t)=>r=>{const n=r.indexOf(e);if(-1===n)return!1;const o=r.indexOf(t);return-1!==o&&n<o},ar=sr("{{","}}"),lr=sr("@[","]@");function ur(e,t){return function(e){return ar(e)||lr(e)}(e)?dt(e,{model:t.data.model,evaluate:t.evaluate}):e}function cr(e,t,r){if(null===e||void 0===e||"object"!==typeof e&&"string"!==typeof e)return e;if("string"===typeof e)return ur(e,t);let n=e;return Object.keys(e).forEach((o=>{if(r.has(o))return;const i=e[o];let s=i;"object"===typeof i?s=cr(i,t,r):"string"===typeof i&&(s=ur(i,t)),s!==i&&(n=Object(f.set)(n,o,s))})),n}const hr=(e,t)=>{var r,n,o;const i=e.parent;if(!i)return[];if("children"in i){const s=t.getSourceNode(e);return null!=(o=null==(n=null==(r=i.children)?void 0:r.find((e=>e.value===s)))?void 0:n.path)?o:[]}return i.type!==vt.MultiNode?[]:hr(i,t)};class fr{constructor(){this.propertiesToSkipCache=new Map}applyResolver(e){e.hooks.resolve.tap("string-resolver",((t,r,n)=>{var o,i,s,a,l,u,c,h,f,p;if(r.type===vt.Empty||r.type===vt.Unknown)return null;if(r.type===vt.Value||r.type===vt.Asset||r.type===vt.View){let t;r.type===vt.Asset||r.type===vt.View?(t=new Set(null!=(s=null==(i=null==(o=r.plugins)?void 0:o.stringResolver)?void 0:i.propertiesToSkip)?s:["exp"]),(null==(a=r.value)?void 0:a.id)&&this.propertiesToSkipCache.set(r.value.id,t)):t=(null==(l=r.parent)?void 0:l.type)===vt.MultiNode&&((null==(c=null==(u=r.parent)?void 0:u.parent)?void 0:c.type)===vt.Asset||(null==(f=null==(h=r.parent)?void 0:h.parent)?void 0:f.type)===vt.View)&&(null==(p=r.parent.parent.value)?void 0:p.id)&&this.propertiesToSkipCache.has(r.parent.parent.value.id)?this.propertiesToSkipCache.get(r.parent.parent.value.id):new Set(["exp"]);const d=hr(r,e);return d.length>0&&d.some((e=>t.has(e.toString())))?r.value:cr(r.value,n,t)}return t}))}apply(e){e.hooks.resolver.tap("string-resolver",this.applyResolver.bind(this))}}class pr{applyResolver(e){e.hooks.beforeResolve.tap("applicability",((e,t)=>{let r=e;if((null==e?void 0:e.type)===vt.Applicability){if(!1===t.evaluate(e.expression))return null;r=e.value}return r}))}applyParser(e){e.hooks.determineNodeType.tap("applicability",(e=>{if(Object.prototype.hasOwnProperty.call(e,"applicability"))return vt.Applicability})),e.hooks.parseNode.tap("applicability",((t,r,n,o)=>{if(o===vt.Applicability){const o=e.parseObject(Object(f.omit)(t,"applicability"),r,n);if(null!==o){const r=e.createASTNode({type:vt.Applicability,expression:t.applicability,value:o},t);return(null==r?void 0:r.type)===vt.Applicability&&(r.value.parent=r),r}}}))}apply(e){e.hooks.resolver.tap("applicability",this.applyResolver.bind(this)),e.hooks.parser.tap("applicability",this.applyParser.bind(this))}}var dr=Object.getOwnPropertySymbols,gr=Object.prototype.hasOwnProperty,vr=Object.prototype.propertyIsEnumerable;class yr{constructor(e){this.options=e}resolveSwitch(e,t){for(const r of e.cases){if(t.evaluate(r.case))return r.value}return It}applyParser(e){e.hooks.onCreateASTNode.tap("switch",(e=>e&&e.type===vt.Switch&&!e.dynamic?this.resolveSwitch(e,this.options):e)),e.hooks.determineNodeType.tap("switch",(e=>{if(Object.prototype.hasOwnProperty.call(e,"dynamicSwitch")||Object.prototype.hasOwnProperty.call(e,"staticSwitch"))return vt.Switch})),e.hooks.parseNode.tap("switch",((t,r,n,o)=>{if(o===vt.Switch){const r="dynamicSwitch"in t,o="dynamicSwitch"in t?t.dynamicSwitch:t.staticSwitch,i=[];o.forEach((t=>{const r=t,{case:o}=r,s=((e,t)=>{var r={};for(var n in e)gr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&dr)for(var n of dr(e))t.indexOf(n)<0&&vr.call(e,n)&&(r[n]=e[n]);return r})(r,["case"]),a=e.parseObject(s,vt.Value,n);a&&i.push({case:o,value:a})}));const s=e.hooks.onCreateASTNode.call({type:vt.Switch,dynamic:r,cases:i},t);return(null==s?void 0:s.type)===vt.Switch&&s.cases.forEach((e=>{e.value.parent=s})),(null==s?void 0:s.type)===vt.Empty?null:null!=s?s:null}}))}applyResolver(e){e.hooks.beforeResolve.tap("switch",((e,t)=>e&&e.type===vt.Switch&&e.dynamic?this.resolveSwitch(e,t):e))}apply(e){e.hooks.parser.tap("switch",this.applyParser.bind(this)),e.hooks.resolver.tap("switch",this.applyResolver.bind(this))}}var mr=Object.defineProperty,wr=Object.defineProperties,br=Object.getOwnPropertyDescriptors,Er=Object.getOwnPropertySymbols,Sr=Object.prototype.hasOwnProperty,kr=Object.prototype.propertyIsEnumerable,xr=(e,t,r)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Or=(e,t)=>{for(var r in t||(t={}))Sr.call(t,r)&&xr(e,r,t[r]);if(Er)for(var r of Er(t))kr.call(t,r)&&xr(e,r,t[r]);return e};class Rr{constructor(e,t,r){this.allValidations=new Set,this.byBinding=new Map,this.logger=r,this.parse(e,t)}parse(e,t){var r;const n=e.validation;void 0!==n&&(Array.isArray(n)?n.forEach((e=>{var r;const n=Or({trigger:"navigation",severity:"error"},e);this.allValidations.add(n);const{ref:o}=e;if(o){const e=t(o);this.byBinding.has(e)?null==(r=this.byBinding.get(e))||r.push(n):this.byBinding.set(e,[n])}})):null==(r=this.logger)||r.warn(`Unable to register view validations for id: ${e.id}. 'validation' property must be an Array.`))}getValidationsForBinding(e){return this.byBinding.get(e)}}class Pr{constructor(e,t){this.hooks={onUpdate:new n.c,parser:new n.c,resolver:new n.c,templatePlugin:new n.c},this.initialView=e,this.resolverOptions=t;const r=Yt(t);new yr(r).apply(this),(new pr).apply(this),(new fr).apply(this),this.templatePlugin=new ir(r),this.templatePlugin.apply(this)}updateAsync(){var e;const t=null==(e=this.resolver)?void 0:e.update();this.lastUpdate=t,this.hooks.onUpdate.call(t)}update(e){var t,r,n;if(void 0===this.rootNode){this.validationProvider=new Rr(this.initialView,this.resolverOptions.parseBinding,this.resolverOptions.logger),this.hooks.templatePlugin.call(this.templatePlugin);const e=new Dt;this.hooks.parser.call(e),this.rootNode=e.parseView(this.initialView),this.resolver=new or(this.rootNode,(r=Or({},this.resolverOptions),n={parseNode:e.parseObject.bind(e)},wr(r,br(n)))),this.hooks.resolver.call(this.resolver)}const o=null==(t=this.resolver)?void 0:t.update(e);return this.lastUpdate===o?this.lastUpdate:(this.lastUpdate=o,this.hooks.onUpdate.call(o),o)}getValidationsForBinding(e){var t;return null==(t=this.validationProvider)?void 0:t.getValidationsForBinding(e)}}var Ar=Object.defineProperty,_r=Object.getOwnPropertySymbols,Tr=Object.prototype.hasOwnProperty,Cr=Object.prototype.propertyIsEnumerable,jr=(e,t,r)=>t in e?Ar(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ur=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class Br{constructor(e,t,r){this.isTransitioning=!1,this.hooks={beforeStart:new n.b,onStart:new n.c,onEnd:new n.c,skipTransition:new n.b,beforeTransition:new n.d,resolveTransitionNode:new n.d,transition:new n.c,afterTransition:new n.c},this.id=e,this.flow=t,this.log=null==r?void 0:r.logger,this.history=[],this.hooks.transition.tap("startPromise",((e,t)=>Ur(this,null,(function*(){const e=t.value;this.flowPromise&&"END"===e.state_type&&this.flowPromise.resolve(e)}))))}start(){return Ur(this,null,(function*(){var e;if(this.flowPromise)return null==(e=this.log)||e.warn("Already called start for flow"),this.flowPromise.promise;this.flow=this.hooks.beforeStart.call(this.flow)||this.flow,this.flow.onStart&&this.hooks.onStart.call(this.flow.onStart);const t=this.flow.startState;return t?(this.flowPromise=g()(),this.pushHistory(t),this.flowPromise.promise):Promise.reject(new Error("No 'startState' defined for flow"))}))}transition(e,t){var r,n,o,i,s,a,l;if(this.isTransitioning)throw new Error(`Transitioning while ongoing transition from ${null==(r=this.currentState)?void 0:r.name} is in progress is not supported`);if("END"===(null==(n=this.currentState)?void 0:n.value.state_type))return void(null==(o=this.log)||o.warn(`Skipping transition using ${e}. Already at and END state`));if(void 0===this.currentState)throw new Error("Cannot transition when there's no current state");if(null==t?void 0:t.force)null==(i=this.log)||i.debug("Forced transition. Skipping validation checks");else{if(this.hooks.skipTransition.call(this.currentState))return void(null==(s=this.log)||s.debug(`Skipping transition from ${this.currentState.name} b/c hook told us to`))}const u=this.hooks.beforeTransition.call(this.currentState.value,e);if(!("transitions"in u))throw new Error(`No transitions defined for ${this.currentState.value}`);const{transitions:c}=u,h=c[e]||c["*"];if(void 0!==h)return null==(l=this.log)||l.debug(`Transitioning from ${this.currentState.name} to ${h} using ${e} `),this.pushHistory(h,t);null==(a=this.log)||a.warn(`No transition from ${this.currentState.name} using ${e} or *`)}pushHistory(e,t){var r;if(!Object.prototype.hasOwnProperty.call(this.flow,e))throw new Error(`No flow definition for: ${e} was found.`);let n=this.flow[e];if(!this.flow[e]||"object"!==typeof n||!("state_type"in n))return void(null==(r=this.log)||r.error(`Flow doesn't contain any states named: ${e}`));const o=this.currentState;this.isTransitioning=!0,n=this.hooks.resolveTransitionNode.call(n);const i={name:e,value:n};this.currentState=i,this.history.push(e),"END"===i.value.state_type&&this.flow.onEnd&&this.hooks.onEnd.call(this.flow.onEnd),this.hooks.transition.call(o,((e,t)=>{for(var r in t||(t={}))Tr.call(t,r)&&jr(e,r,t[r]);if(_r)for(var r of _r(t))Cr.call(t,r)&&jr(e,r,t[r]);return e})({},i)),this.isTransitioning=!1,this.hooks.afterTransition.call(this)}}var Lr=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class Nr{constructor(e,t){this.hooks={flow:new n.c},this.navigation=e,this.navStack=[],this.log=null==t?void 0:t.logger,this.start=this.start.bind(this),this.run=this.run.bind(this),this.transition=this.transition.bind(this),this.addNewFlow=this.addNewFlow.bind(this)}transition(e,t){if(void 0===this.current)throw new Error("Not currently in a flow. Cannot transition.");this.current.transition(e,t)}addNewFlow(e){this.navStack.push(e),this.current=e,this.hooks.flow.call(e)}run(e){return Lr(this,null,(function*(){var t;if(!Object.prototype.hasOwnProperty.call(this.navigation,e))return Promise.reject(new Error(`No flow defined for: ${e}`));const r=this.navigation[e];if(null===r||"object"!==typeof r)return Promise.reject(new Error(`Flow: ${e} needs to be an object`));null==(t=this.log)||t.debug(`Starting flow: ${e}`);const n=new Br(e,r,{logger:this.log});this.addNewFlow(n),n.hooks.afterTransition.tap("flow-controller",(e=>{var t,r,n;if("FLOW"===(null==(t=e.currentState)?void 0:t.value.state_type)){const t=null==(r=e.currentState)?void 0:r.value.ref;null==(n=this.log)||n.debug(`Loading subflow ${t}`),this.run(t).then((t=>{var r;null==(r=this.log)||r.debug(`Subflow ended. Using outcome: ${t.outcome}`),e.transition(null==t?void 0:t.outcome)}))}}));const o=yield n.start();if(this.navStack.pop(),this.navStack.length>0){const e=0;this.current=this.navStack[e]}return o}))}start(){return Lr(this,null,(function*(){return this.navigation.BEGIN?this.run(this.navigation.BEGIN):Promise.reject(new Error("Must supply a BEGIN state"))}))}}const Ir=/%([a-zA-Z]+)/g;var Dr=Object.defineProperty,Mr=Object.defineProperties,Vr=Object.getOwnPropertyDescriptors,Fr=Object.getOwnPropertySymbols,$r=Object.prototype.hasOwnProperty,Hr=Object.prototype.propertyIsEnumerable,zr=(e,t,r)=>t in e?Dr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wr=(e,t)=>{for(var r in t||(t={}))$r.call(t,r)&&zr(e,r,t[r]);if(Fr)for(var r of Fr(t))Hr.call(t,r)&&zr(e,r,t[r]);return e},qr=(e,t)=>Mr(e,Vr(t));const Yr="validation-binding-tracker";class Kr{constructor(e){this.trackedBindings=new Set,this.options=e}getBindings(){return this.trackedBindings}trackBinding(e){var t,r;this.trackedBindings.has(e)||(this.trackedBindings.add(e),null==(r=null==(t=this.options.callbacks)?void 0:t.onAdd)||r.call(t,e))}applyResolver(e){this.trackedBindings.clear();const t=new Map,r=new Map;let n;const o=new Map;let i=new Map,s=new Map;const a=new Map;e.hooks.beforeUpdate.tap(Yr,(e=>{n=e})),e.hooks.skipResolve.tap(Yr,((e,t)=>{const r=i.get(t);if(!e||!n||!r)return e;return 0===new Set([...n].filter((e=>r.has(e)))).size})),e.hooks.resolveOptions.tap(Yr,((e,n)=>{if(void 0===e.validation)return e;t.delete(n);const o=e=>{var o,i,s,a;const l=V(e)?e:this.options.parseBinding(e);t.has(n)?null==(o=t.get(n))||o.add(l):t.set(n,new Set([l]));let{parent:u}=n;for(;u;){if(r.has(u)){null==(i=r.get(u))||i.add(n);break}u=u.parent}this.trackedBindings.add(l),null==(a=null==(s=this.options.callbacks)?void 0:s.onAdd)||a.call(s,l)};return qr(Wr({},e),{validation:qr(Wr({},e.validation),{get:(t,r)=>{var n,i;(null==r?void 0:r.track)&&o(t);const s=null==(i=null==(n=e.validation)?void 0:n._getValidationForBinding(t))?void 0:i.getAll(r);return null==s?void 0:s.find((e=>"field"===e.displayTarget||void 0===e.displayTarget))},getValidationsForBinding(t,r){var n,i,s;return(null==r?void 0:r.track)&&o(t),null!=(s=null==(i=null==(n=e.validation)?void 0:n._getValidationForBinding(t))?void 0:i.getAll(r))?s:[]},getChildren:t=>{var r;const o=new Array;return null==(r=i.get(n))||r.forEach((r=>{var n,i;const s=null==(i=null==(n=e.validation)?void 0:n._getValidationForBinding(r))?void 0:i.get();!s||void 0!==t&&t!==s.displayTarget||o.push(s)})),o},getValidationsForSection:()=>{var t;const r=new Array;return null==(t=a.get(n))||t.forEach((t=>{var n,o;const i=null==(o=null==(n=e.validation)?void 0:n._getValidationForBinding(t))?void 0:o.get();i&&"section"===i.displayTarget&&r.push(i)})),r},register:e=>{"section"===(null==e?void 0:e.type)&&(r.has(n)||r.set(n,new Set))},track:o})})})),e.hooks.afterNodeUpdate.tap(Yr,((n,l,u)=>{var c,h;if(l&&function(e,t){var r;o.has(t)?null==(r=o.get(t))||r.add(e):o.set(t,new Set([e]))}(n,l),u.updated){const e=new Set(t.get(n));null==(c=o.get(n))||c.forEach((t=>{var r;null==(r=s.get(t))||r.forEach((t=>e.add(t)))})),s.set(n,e)}else s.set(n,null!=(h=i.get(n))?h:new Set);n===e.root&&(this.trackedBindings=new Set(s.get(n)),i=s,a.clear(),r.forEach(((e,r)=>{const n=new Set;e.forEach((e=>{var r;null==(r=t.get(e))||r.forEach(n.add,n)})),a.set(r,n)})),o.clear(),t.clear(),r.clear(),s=new Map)}))}apply(e){e.hooks.resolver.tap(Yr,this.applyResolver.bind(this))}}var Zr=Object.defineProperty,Gr=Object.defineProperties,Jr=Object.getOwnPropertyDescriptors,Qr=Object.getOwnPropertySymbols,Xr=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable,tn=(e,t,r)=>t in e?Zr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rn=(e,t)=>{for(var r in t||(t={}))Xr.call(t,r)&&tn(e,r,t[r]);if(Qr)for(var r of Qr(t))en.call(t,r)&&tn(e,r,t[r]);return e},nn=(e,t)=>Gr(e,Jr(t));const on=Symbol.for("validation-provider-name");class sn{constructor(e,t,r,n){this.applicableValidations=[],this.validationsByState={load:[],change:[],navigation:[]},this.onDismiss=t,e.forEach((e=>{const{trigger:t}=e;if(this.validationsByState[t]){const r={value:n=e,type:n.severity,state:"none",isBlockingNavigation:!1};this.validationsByState[t].push(r)}else null==r||r.warn(`Unknown validation trigger: ${t}`);var n})),this.weakBindings=null!=n?n:new Set}get allValidations(){return Object.values(this.validationsByState).flat()}checkIfBlocking(e){if("active"===e.state){const{isBlockingNavigation:t}=e;return t}return!1}getAll(){return this.applicableValidations.reduce(((e,t)=>("active"===t.state&&t.response&&e.push(nn(rn({},t.response),{blocking:this.checkIfBlocking(t)})),e)),[])}get(){const e=this.applicableValidations.find((e=>"active"===e.state&&e.response));if("active"===(null==e?void 0:e.state))return nn(rn({},e.response),{blocking:this.checkIfBlocking(e)})}runApplicableValidations(e,t,r){this.applicableValidations=this.applicableValidations.map((n=>{var o,i,s;if("dismissed"===n.state)return n;const a=null!=(o=n.value.blocking)?o:"warning"!==n.value.severity||"once",l=Object(f.setIn)(n,["value","blocking"],a),u=!0===a||"once"===a&&!t;if("navigation"===r&&"active"===l.state&&!0!==l.value.blocking&&"warning"===l.value.severity){const e=l;return!e.dismissable||!e.response.dismiss||"once"===e.response.blocking&&e.response.blocking?("once"===(null==e?void 0:e.response.blocking)&&(e.response.blocking=!1),e.dismissable=!0):e.response.dismiss(),e}const c=e(l.value),h={type:l.type,value:l.value,state:c?"active":"none",isBlockingNavigation:u,dismissable:"warning"===l.value.severity&&"navigation"===r,response:c?nn(rn({},l.value),{message:null!=(i=c.message)?i:"Something is broken",severity:l.value.severity,displayTarget:null!=(s=l.value.displayTarget)?s:"field"}):void 0};return"active"===h.state&&"warning"===l.value.severity&&(h.response.dismiss=()=>{var e;h.state="dismissed",null==(e=this.onDismiss)||e.call(this)}),h}))}update(e,t,r){const n=[];"load"===e&&void 0!==this.currentPhase||("navigation"!==this.currentPhase&&e!==this.currentPhase?("load"===e?(this.currentPhase="load",this.applicableValidations=[...this.validationsByState.load]):"change"===e&&"load"===this.currentPhase?(this.currentPhase="change",this.applicableValidations=[...this.applicableValidations,...this.validationsByState.change]):"navigation"!==e||"load"!==this.currentPhase&&"change"!==this.currentPhase||(this.applicableValidations.forEach((e=>{"error"===e.type&&"active"===e.state&&!1===e.isBlockingNavigation||n.push(e)})),this.applicableValidations=[...n,...this.validationsByState.navigation,..."load"===this.currentPhase?this.validationsByState.change:[]],this.currentPhase="navigation"),this.runApplicableValidations(r,t,e)):this.runApplicableValidations(r,t,e))}}class an{constructor(e,t){this.hooks={createValidatorRegistry:new n.c,onAddValidation:new n.d,onRemoveValidation:new n.d,resolveValidationProviders:new n.d,onTrackBinding:new n.c},this.validations=new Map,this.weakBindingTracker=new Set,this.schema=e,this.options=t,this.reset()}setOptions(e){this.options=e}getDataMiddleware(){return[{set:(e,t,r)=>{var n;return null!=(n=null==r?void 0:r.set(e,t))?n:[]},get:(e,t,r)=>null==r?void 0:r.get(e,t),delete:(e,t,r)=>(this.validations=gt(this.validations,e),null==r?void 0:r.delete(e,t))},new Ot((e=>{var t;if(!this.options)return;this.updateValidationsForBinding(e,"change",this.options);const r=this.getValidationForBinding(e);if("error"===(null==(t=null==r?void 0:r.get())?void 0:t.severity))return r.get();const n=new Set;return this.validations.forEach(((t,r)=>{var o;qt(new Set([e]),t.weakBindings)&&"error"===(null==(o=null==t?void 0:t.get())?void 0:o.severity)&&(null==t||t.weakBindings.forEach((e=>{e===r?n.add({binding:e,isStrong:!0}):n.add({binding:e,isStrong:!1})})))})),n.size>0?n:void 0}),{logger:new Qe((()=>{var e;return null==(e=this.options)?void 0:e.logger}))})]}getValidationProviders(){return this.providers||(this.providers=this.hooks.resolveValidationProviders.call([{source:"schema",provider:this.schema},{source:"view",provider:{getValidationsForBinding:e=>{var t,r;return null==(r=null==(t=this.viewValidationProvider)?void 0:t.getValidationsForBinding)?void 0:r.call(t,e)},getValidationsForView:()=>{var e,t;return null==(t=null==(e=this.viewValidationProvider)?void 0:e.getValidationsForView)?void 0:t.call(e)}}}])),this.providers}reset(){this.validations.clear(),this.tracker=void 0}onView(e){if(this.validations.clear(),!this.options)return;const t=new Kr(nn(rn({},this.options),{callbacks:{onAdd:t=>{if(!this.options||void 0!==this.getValidationForBinding(t))return;const r=this.options.model.get(t);r!==this.options.model.get(t,{ignoreDefaultValue:!0})&&this.options.model.set([[t,r]],{silent:!0}),this.updateValidationsForBinding(t,"load",this.options,(()=>{e.update(new Set([t]))})),this.hooks.onTrackBinding.call(t)}}}));this.tracker=t,this.viewValidationProvider=e,t.apply(e)}updateValidationsForBinding(e,t,r,n){var o;const i=null!=r?r:this.options;if(!i)throw new Error("Context is required for executing validations");if("load"===t){const t=this.getValidationProviders().reduce(((t,r)=>{var n,o,i,s;return t.push(...null!=(s=null==(i=null==(o=(n=r.provider).getValidationsForBinding)?void 0:o.call(n,e))?void 0:i.map((e=>nn(rn({},e),{[on]:r.source}))))?s:[]),t}),[]);if(0===t.length)return;this.validations.set(e,new sn(t,n,null==(o=this.options)?void 0:o.logger))}const s=this.validations.get(e);null==s||s.update(t,!0,(t=>{const r=this.validationRunner(t,e,i);if(this.weakBindingTracker.size>0){const t=this.validations.get(e);this.weakBindingTracker.forEach((e=>t.weakBindings.add(e)))}return r?{message:r.message}:void 0})),"load"!==t&&this.validations.forEach(((r,n)=>{n!==e&&qt(new Set([e]),r.weakBindings)&&r.update(t,!0,(e=>{const t=this.validationRunner(e,n,i);return t?{message:t.message}:void 0}))}))}validationRunner(e,t,r=this.options){var n;if(!r)throw new Error("No context provided to validation runner");const o=null!=(n=e.handler)?n:this.getValidator(e.type),i=new Set,s={get:(e,n)=>(i.add(V(e)?t:r.parseBinding(e)),r.model.get(e,nn(rn({},n),{includeInvalid:!0}))),set:r.model.set,delete:r.model.delete},a=null==o?void 0:o(nn(rn({},r),{evaluate:(e,t={model:s})=>r.evaluate(e,t),model:s,validation:e,schemaType:this.schema.getType(t)}),r.model.get(t,{includeInvalid:!0,formatted:"formatted"===e.dataTarget}),e);if(this.weakBindingTracker=i,a){let{message:t}=a;const{parameters:n}=a;return e.message&&(t=dt(e.message,{model:s,evaluate:r.evaluate}),n&&(t=function(e,t){return e.slice().replace(Ir,(e=>t[e.slice(1)]||e))}(t,n))),{message:t}}}updateValidationsForView(e){const t="navigation"===e,r=this.activeBindings,n=t=>{this.getBindings().forEach((r=>{var n;null==(n=this.validations.get(r))||n.update(e,t,(e=>{if(this.options)return this.validationRunner(e,r,this.options)}))}))};if(n(!t),t){const{activeBindings:e}=this;(function(e,t){if(e.size>t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0})(e,r)&&n(!0)}}get activeBindings(){return new Set(Array.from(this.getBindings()).filter((e=>{var t;return void 0!==(null==(t=this.validations.get(e))?void 0:t.get())})))}getValidator(e){if(this.validatorRegistry)return this.validatorRegistry.get(e);const t=new Rt;return this.hooks.createValidatorRegistry.call(t),this.validatorRegistry=t,t.get(e)}getBindings(){var e,t;return null!=(t=null==(e=this.tracker)?void 0:e.getBindings())?t:new Set}trackBinding(e){var t;null==(t=this.tracker)||t.trackBinding(e)}validateView(e="navigation"){this.updateValidationsForView(e);const t=new Map;let r=!0;return this.getBindings().forEach((n=>{var o;const i=null==(o=this.getValidationForBinding(n))?void 0:o.getAll();null==i||i.forEach((o=>{var i;"navigation"===e&&o.blocking&&(null==(i=this.options)||i.logger.debug(`Validation on binding: ${n.asString()} is preventing navigation. ${JSON.stringify(o)}`),r=!1),t.has(n)||t.set(n,o)}))})),{canTransition:r,validations:t.size?t:void 0}}getValidationForBinding(e){return this.validations.get(e)}forView(e){return{_getValidationForBinding:t=>this.getValidationForBinding(V(t)?t:e(t)),getAll:()=>{const e=this.getBindings();if(0===e.size)return;const t=new Map;return e.forEach((e=>{var r;const n=null==(r=this.getValidationForBinding(e))?void 0:r.get();n&&t.set(e,n)})),0===t.size?void 0:t},get(){throw new Error("Error Access be provided by the view plugin")},getValidationsForBinding(){throw new Error("Error rollup should be provided by the view plugin")},getChildren(){throw new Error("Error rollup should be provided by the view plugin")},getValidationsForSection(){throw new Error("Error rollup should be provided by the view plugin")},track:()=>{throw new Error("Tracking should be provided by the view plugin")},register:()=>{throw new Error("Section functionality should be provided by the view plugin")},type:t=>this.schema.getType(V(t)?t:e(t))}}}class ln{constructor(e){this.updateCallback=e,this.state=new Map}removeKey(e){this.state.delete(e)}reset(){this.state.clear()}useSharedState(e){return t=>(this.state.has(e)||this.state.set(e,t),[this.state.get(e),t=>{var r;const n=this.state.get(e);this.state.set(e,t),n!==t&&(null==(r=this.updateCallback)||r.call(this))}])}getLocalStateFunction(e,t){return r=>{this.state.has(e)||this.state.set(e,[]),this.state.has(t)||this.state.set(t,0);const n=this.state.get(e),o=this.state.get(t);this.state.set(t,o+1),n.length<=o&&n.push(r);return[n[o],e=>{var t;const r=n[o];n[o]=e,r!==e&&(null==(t=this.updateCallback)||t.call(this))}]}}}function un(e,t){return e===t||!!e.parent&&un(e.parent,t)}class cn{constructor(e){this.registry=e,this.stateStore=new Map,this.beforeResolveSymbol=Symbol("before resolve"),this.resolveSymbol=Symbol("resolve"),this.beforeResolveCountSymbol=Symbol("before resolve count"),this.resolveCountSymbol=Symbol("resolve count")}apply(e){e.hooks.view.tap("asset-transform",(e=>{this.stateStore.clear(),e.hooks.resolver.tap("asset-transform",(t=>{let r;const n=(t,n)=>{let o;const i=n===this.resolveSymbol?this.resolveCountSymbol:this.beforeResolveCountSymbol,s=this.stateStore.get(t);return s?(o=s,o.removeKey(i)):(o=new ln((()=>{(t=>{r=t,e.update(new Set)})(t)})),this.stateStore.set(t,o)),{useSharedState:e=>o.useSharedState(e),useLocalState:e=>o.getLocalStateFunction(n,i)(e)}};t.hooks.beforeResolve.tap("asset-transform",((e,t)=>{var r;if(e&&("asset"===e.type||"view"===e.type)){const o=this.registry.get(e.value);if(null==o?void 0:o.beforeResolve){const i=n(null!=(r=t.node)?r:e,this.beforeResolveSymbol);return o.beforeResolve(e,t,i)}}return e})),t.hooks.afterUpdate.tap("asset-transform",(()=>{r=void 0})),t.hooks.skipResolve.tap("asset-transform",((e,t)=>{if(!e||!r)return e;const n=un(r,t),o=un(t,r);return!n&&!o})),t.hooks.afterResolve.tap("asset-transform",((e,r,o)=>{if(r.type!==vt.Asset&&r.type!==vt.View)return e;const i=t.getSourceNode(r);if(!i)return e;const s=this.registry.get(e);if(null==s?void 0:s.resolve){const t=n(i,this.resolveSymbol);return null==s?void 0:s.resolve(e,o,t)}return e}))}))}))}}class hn{constructor(e,t){this.hooks={resolveView:new n.d,view:new n.c},this.transformRegistry=new m.a,this.optimizeUpdates=!0,this.viewOptions=t,this.viewMap=e.reduce(((e,t)=>(e[t.id]=t,e)),{}),new cn(this.transformRegistry).apply(this),t.flowController.hooks.flow.tap("viewController",(e=>{e.hooks.transition.tap("viewController",((e,t)=>{"VIEW"===t.value.state_type?this.onView(t.value):this.currentView=void 0}))}));const r=(e,t=!1)=>{this.currentView&&(this.optimizeUpdates?this.queueUpdate(e,t):this.currentView.update())};t.model.hooks.onUpdate.tap("viewController",((e,t)=>{var n;r(new Set(e.map((e=>e.binding))),null!=(n=null==t?void 0:t.silent)&&n)})),t.model.hooks.onDelete.tap("viewController",(e=>{const t=e.parent(),n=e.key();r("number"===typeof n&&t?new Set([t]):new Set([e]))}))}queueUpdate(e,t=!1){var r;(null==(r=this.pendingUpdate)?void 0:r.changedBindings)?this.pendingUpdate.changedBindings=new Set([...this.pendingUpdate.changedBindings,...e]):this.pendingUpdate={changedBindings:e,scheduled:!1},this.pendingUpdate.scheduled||t||(this.pendingUpdate.scheduled=!0,y()((()=>{var e,t;const r=null==(e=this.pendingUpdate)?void 0:e.changedBindings;this.pendingUpdate=void 0,null==(t=this.currentView)||t.update(r)})))}getViewForRef(e){if(this.viewMap[e])return this.viewMap[e];const t=Object.keys(this.viewMap).find((t=>e===ft(t,{model:this.viewOptions.model,evaluate:this.viewOptions.evaluator.evaluate})));return t&&this.viewMap[t]?this.viewMap[t]:void 0}onView(e){const t=e.ref,r=this.hooks.resolveView.call(this.getViewForRef(t),t,e);if(!r)throw new Error(`No view with id ${t}`);const n=new Pr(r,this.viewOptions);this.currentView=n,this.hooks.view.call(n),n.update()}}class fn{constructor(e,t){this.controller=e,this.logger=t}get(e,t){return this.controller.get(e,t)}set(e,t){var r;return null==(r=this.logger)||r.error("Error: Tried to set in a read only instance of the DataController"),[]}delete(e,t){var r;null==(r=this.logger)||r.error("Error: Tried to delete in a read only instance of the DataController")}}class pn{constructor(e,t){this.hooks={resolve:new n.d,resolveDataStages:new n.d,resolveDefaultValue:new n.b,onDelete:new n.c,onSet:new n.c,onGet:new n.c,onUpdate:new n.c,format:new n.d,deformat:new n.d,serialize:new n.d},this.logger=t.logger;const r=t.middleware||[];this.baseMiddleware=[new fe(e),...r],this.trash=new Set,this.pathResolver=t.pathResolver}getModel(){if(!this.model){const e=this.hooks.resolveDataStages.call(this.baseMiddleware),t=new he;t.setMiddleware(e),this.model=t}return this.model}resolveDataValue(e,t,r){return r?this.hooks.deformat.call(t,e):t}set(e,t){let r=[];r=Array.isArray(e)?e.map((([e,r])=>{const n=this.pathResolver.parse(e);return[n,this.resolveDataValue(n,r,Boolean(null==t?void 0:t.formatted))]})):Object.keys(e).map((r=>{const n=this.pathResolver.parse(r),o=e[r];return[n,this.resolveDataValue(n,o,Boolean(null==t?void 0:t.formatted))]}));const n=r.reduce(((e,[t,r])=>{var n,o;const i=this.get(t,{includeInvalid:!0}),s={binding:t,newValue:r,oldValue:i};return Object(p.a)(i,r)?null==(n=this.logger)||n.debug(`Skipping update for path: ${t.asString()}. Value was unchanged: ${i}`):(e.push(s),null==(o=this.logger)||o.debug(`Setting path: ${t.asString()} from: ${i} to: ${r}`)),e}),[]),o=this.getModel().set(r,t),i=new Set(n.map((e=>e.binding)));return o.forEach((e=>{var t;i.has(e.binding)||!0!==e.force&&Object(p.a)(e.oldValue,e.newValue)||(null==(t=this.logger)||t.debug(`Path: ${e.binding.asString()} was changed from: ${e.oldValue} to: ${e.newValue}`),n.push(e))})),this.hooks.onSet.call(r),n.length>0&&this.hooks.onUpdate.call(n,t),o}resolve(e,t){return Array.isArray(e)||"string"===typeof e?this.pathResolver.parse(e,{readOnly:t}):e}get(e,t){const r=e instanceof F?e:this.resolve(e,!0);let n=this.getModel().get(r,t);if(void 0===n&&!(null==t?void 0:t.ignoreDefaultValue)){const e=this.hooks.resolveDefaultValue.call(r);e!==n&&(n=e)}return(null==t?void 0:t.formatted)?n=this.hooks.format.call(n,r):!1===(null==t?void 0:t.formatted)&&(n=this.hooks.deformat.call(n,r)),this.hooks.onGet.call(e,n),n}delete(e,t){if("string"!==typeof e&&!Array.isArray(e)&&!(e instanceof F))throw new Error("Invalid arguments: delete expects a data path (string)");const r=e instanceof F?e:this.resolve(e,!1),n=r.parent(),o=r.key(),i=this.get(n),s="object"===typeof i&&null!==i&&Object.prototype.hasOwnProperty.call(i,o);this.getModel().delete(r,t),s&&!this.get(r)&&this.trash.add(r),this.hooks.onDelete.call(r)}serialize(){return this.hooks.serialize.call(this.get(""))}makeReadOnly(){return new fn(this,this.logger)}}var dn=Object.defineProperty,gn=Object.getOwnPropertySymbols,vn=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable,mn=(e,t,r)=>t in e?dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,wn=(e,t)=>{for(var r in t||(t={}))vn.call(t,r)&&mn(e,r,t[r]);if(gn)for(var r of gn(t))yn.call(t,r)&&mn(e,r,t[r]);return e};function bn(e,t=[],r="."){return Object.keys(e).reduce(((n,o)=>wn(wn({},n),"[object Object]"===Object.prototype.toString.call(e[o])?bn(e[o],t.concat([o])):{[t.concat([o]).join(r)]:e[o]})),{})}function En(e){const t=bn(e),r=[];return Object.keys(t).forEach((e=>{r.push([new F(e),t[e]])})),r}class Sn{constructor(){this.store=new Map,this.tempStore=new Map}addConstants(e,t){var r;this.store.has(t)?null==(r=this.store.get(t))||r.set(En(e)):this.store.set(t,new fe(e))}getConstants(e,t,r){var n,o,i,s;const a=new F(e);return null!=(s=null!=(i=null==(n=this.tempStore.get(t))?void 0:n.get(a))?i:null==(o=this.store.get(t))?void 0:o.get(a))?s:r}setTemporaryValues(e,t){var r;this.tempStore.has(t)?null==(r=this.tempStore.get(t))||r.set(En(e)):this.tempStore.set(t,new fe(e))}clearTemporaryValues(e){var t;e?null==(t=this.tempStore.get(e))||t.reset():this.tempStore.forEach((e=>{e.reset()}))}}class kn{constructor(){this.name="flow-exp-plugin"}apply(e){let t;const r=e=>{e&&("object"===typeof e&&"exp"in e?null==t||t.evaluate(e.exp):null==t||t.evaluate(e))};e.hooks.expressionEvaluator.tap(this.name,(e=>{t=e})),e.hooks.flowController.tap(this.name,(e=>{e.hooks.flow.tap(this.name,(e=>{e.hooks.onStart.tap(this.name,(e=>r(e))),e.hooks.onEnd.tap(this.name,(e=>r(e))),e.hooks.resolveTransitionNode.intercept({call:e=>{(null==e?void 0:e.onStart)&&r(e.onStart)}})}))}))}}class xn{constructor(){this.name="flow-exp-plugin"}apply(e){let t;e.hooks.schema.tap(this.name,(e=>{var r;r=e,t=(e,t,n)=>{var o,i;return null!=(i=null==(o=r.getFormatterForType({type:n}))?void 0:o.format(t))?i:t}})),e.hooks.expressionEvaluator.tap(this.name,(r=>{t&&r.addExpressionFunction("format",t),r.addExpressionFunction("log",((t,...r)=>{e.logger.info(...r)})),r.addExpressionFunction("debug",((t,...r)=>{e.logger.debug(...r)})),r.addExpressionFunction("eval",((e,...t)=>e.evaluate(...t)))}))}}const On={ref:Symbol("not-started"),status:"not-started"};var Rn=Object.defineProperty,Pn=Object.defineProperties,An=Object.getOwnPropertyDescriptors,_n=Object.getOwnPropertySymbols,Tn=Object.prototype.hasOwnProperty,Cn=Object.prototype.propertyIsEnumerable,jn=(e,t,r)=>t in e?Rn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Un=(e,t)=>{for(var r in t||(t={}))Tn.call(t,r)&&jn(e,r,t[r]);if(_n)for(var r of _n(t))Cn.call(t,r)&&jn(e,r,t[r]);return e};const Bn=class{constructor(e){var t;this.logger=new Je,this.constantsController=new Sn,this.state=On,this.hooks={flowController:new n.c,viewController:new n.c,view:new n.c,expressionEvaluator:new n.c,dataController:new n.c,schema:new n.c,validationController:new n.c,bindingParser:new n.c,state:new n.c,onStart:new n.c,onEnd:new n.c,resolveFlowContent:new n.d},(null==e?void 0:e.logger)&&this.logger.addHandler(e.logger),this.config=e||{},this.config.plugins=[new xn,...this.config.plugins||[],new kn],null==(t=this.config.plugins)||t.forEach((e=>{e.apply(this)}))}getPlugins(){var e;return null!=(e=this.config.plugins)?e:[]}findPlugin(e){var t;return null==(t=this.config.plugins)?void 0:t.find((t=>t.symbol===e))}applyTo(e,t){const r=this.findPlugin(e);r&&t(r)}registerPlugin(e){var t;e.apply(this),null==(t=this.config.plugins)||t.push(e)}getVersion(){return Bn.info.version}getCommit(){return Bn.info.commit}getState(){return this.state}setState(e){this.state=e,this.hooks.state.call(e)}setupFlow(e){const t=this.hooks.resolveFlowContent.call(e),r=new Nr(t.navigation,{logger:this.logger});let n,o;this.hooks.onStart.call(t),this.hooks.flowController.call(r);const i=new oe({get:e=>o.get(e),set:e=>o.set(e),evaluate:e=>n.evaluate(e)});this.hooks.bindingParser.call(i);const s=i.parse,a=g()(),l=new lt(t.schema);this.hooks.schema.call(l);const u=new an(l);let c;function h(e,t){return dt(e,{model:o,evaluate:n.evaluate,formatted:t})}var p,d;return this.hooks.validationController.call(u),o=new pn(t.data,{pathResolver:i,middleware:u.getDataMiddleware(),logger:this.logger}),o.hooks.format.tap("player",((e,t)=>{const r=l.getFormatter(t);return r?r.format(e):e})),o.hooks.deformat.tap("player",((e,t)=>{const r=l.getFormatter(t);return r?r.deformat(e):e})),o.hooks.resolveDefaultValue.tap("player",(e=>{var t;return null==(t=l.getApparentType(e))?void 0:t.default})),n=new Ge({model:o,logger:this.logger}),this.hooks.expressionEvaluator.call(n),n.hooks.onError.tap("player",(e=>(a.reject(e),!0))),r.hooks.flow.tap("player",(e=>{e.hooks.beforeTransition.tap("player",((e,t)=>{const r=e.transitions[t]?t:"*";return e.onEnd&&e.transitions[r]&&("object"===typeof e.onEnd&&"exp"in e.onEnd?null==n||n.evaluate(e.onEnd.exp):null==n||n.evaluate(e.onEnd)),"transitions"in e&&e.transitions[r]?Object(f.setIn)(e,["transitions",r],h(e.transitions[r])):e})),e.hooks.skipTransition.tap("validation",(e=>{var t;if("VIEW"===(null==e?void 0:e.value.state_type)){const{canTransition:e,validations:r}=u.validateView("navigation");if(!e&&r){const e=new Set(r.keys());return null==(t=null==c?void 0:c.currentView)||t.update(e),!0}}})),e.hooks.resolveTransitionNode.tap("player",(e=>{let t=e;return"ref"in e&&(t=Object(f.setIn)(e,["ref"],h(e.ref))),"param"in e&&(t=Object(f.setIn)(e,["param"],h(e.param,!1))),t})),e.hooks.transition.tap("player",((e,t)=>{"VIEW"!==t.value.state_type&&u.reset()})),e.hooks.afterTransition.tap("player",(e=>{var t;const o=null==(t=e.currentState)?void 0:t.value;if(o&&"ACTION"===o.state_type){const{exp:e}=o;null==r||r.transition(String(null==n?void 0:n.evaluate(e)))}n.reset()}))})),this.hooks.dataController.call(o),u.setOptions({parseBinding:s,model:o,logger:this.logger,evaluate:n.evaluate,constants:this.constantsController}),c=new hn(t.views||[],{evaluator:n,parseBinding:s,transition:r.transition,model:o,utils:{findPlugin:e=>this.findPlugin(e)},logger:this.logger,flowController:r,schema:l,format:(e,t)=>{const r=l.getFormatter(e);return(null==r?void 0:r.format)?r.format(t):t},formatValue:(e,t)=>{const r=l.getFormatterForType(e);return(null==r?void 0:r.format)?r.format(t):t},validation:(p=Un({},u.forView(s)),d={type:e=>l.getType(s(e))},Pn(p,An(d))),constants:this.constantsController}),c.hooks.view.tap("player",(e=>{u.onView(e),this.hooks.view.call(e)})),this.hooks.viewController.call(c),{start:()=>{r.start().then((e=>({endState:h(e,!1),data:o.serialize()}))).then(a.resolve).catch((e=>{throw this.logger.error(`Something went wrong: ${e.message}`),e})).catch(a.reject).finally((()=>this.hooks.onEnd.call()))},state:{status:"in-progress",flowResult:a.promise,controllers:{data:o,view:c,flow:r,schema:l,expression:n,binding:i,validation:u},fail:a.reject,flow:t,logger:this.logger}}}start(e){return t=this,r=null,n=function*(){var t;const r=Symbol(null!=(t=null==e?void 0:e.id)?t:"payload"),n=e=>this.state.ref!==r?(this.logger.warn("Received update for a flow that's not the current one"),e):(this.setState(e),e);this.setState({status:"not-started",ref:r});try{const{state:t,start:o}=this.setupFlow(e);this.setState(Un({ref:r},t)),o();const i={ref:r,status:"completed",flow:t.flow,controllers:{data:t.controllers.data.makeReadOnly()}};return n(Un(Un({},yield t.flowResult),i))}catch(o){throw n({status:"error",ref:r,flow:e,error:o}),o}},new Promise(((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())}));var t,r,n}};Bn.info={version:"0.7.4-next.1",commit:"5eab9a87e898ee0b01ccee09c158dbaeaec5563e"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(5);Object.defineProperty(t,"Parser",{enumerable:!0,get:function(){return n.Parser}});var o=r(7);Object.defineProperty(t,"TokenError",{enumerable:!0,get:function(){return o.TokenError}}),t.Grammars=r(21)},function(e,t,r){(function(t){let r;e.exports="function"===typeof queueMicrotask?queueMicrotask.bind("undefined"!==typeof window?window:t):e=>(r||(r=Promise.resolve())).then(e).catch((e=>setTimeout((()=>{throw e}),0)))}).call(this,r(10))},function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(15),o=r.n(n),i=r(4),s=r.n(i);function a(e,t=[],r=new Map){for(const n of Object.keys(e)){const o=e[n],i=[...t,n];"object"===typeof o?a(o,i,r):r.set(i,o)}return r}function l(e){const t=a(e),r=e=>{for(const r of t){const[t,n]=r;if(s()(e,t)!==n)return!1}return!0};return r.count=t.size,r}const u=()=>new o.a([],(e=>e.matcher.count));class c{constructor(e){this.store=u(),null==e||e.forEach((([e,t])=>{this.set(e,t)}))}set(e,t){const r="object"===typeof e?l(e):function(e){const t=t=>e===t;return t.count=1,t}(e);this.store.insert({key:e,value:t,matcher:r})}get(e){for(const t of this.store.array)if(t.matcher(e))return t.value}forEach(e){for(const t of this.store.array)e(t)}clear(){this.store=u()}}},function(e,t,r){var n,o=function(){var e=function(e){var t=e.constructor;return t.prototype=e,t}({constructor:function(e,r){this.array=[],this.compare=r||t;for(var n=e.length,o=0;o<n;)this.insert(e[o++])},insert:function(e){for(var t,r,n=this.array,o=this.compare,i=n.length-1,s=0,a=-1;i>=s;)if((r=o(n[t=(i+s)/2>>>0],e))<0)s=t+1;else{if(!(r>0)){a=t;break}i=t-1}for(-1===a&&(a=i),a++,i=n.length-1;a<i&&0===o(e,n[a]);)a++;for(t=n.length,n.push(e);t>a;)n[t]=n[--t];return n[a]=e,this},search:function(e){for(var t,r,n=this.array,o=this.compare,i=n.length-1,s=0;i>=s;)if((r=o(n[t=(i+s)/2>>>0],e))<0)s=t+1;else{if(!(r>0))return t;i=t-1}return-1},remove:function(e){var t=this.search(e);return t>=0&&this.array.splice(t,1),this}});return e.comparing=function(r,n){return new e(n,(function(e,n){return t(e[r],n[r])}))},e;function t(e,t){return e<t?-1:e>t?1:0}}();e.exports=o,void 0===(n=function(){return o}.call(t,r,t,e))||(e.exports=n)},,function(e,t,r){"use strict";(function(e){var n=r(18),o=r(19),i=r(20);function s(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(s()<t)throw new RangeError("Invalid typed array length");return l.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=l.prototype:(null===e&&(e=new l(t)),e.length=t),e}function l(e,t,r){if(!l.TYPED_ARRAY_SUPPORT&&!(this instanceof l))return new l(e,t,r);if("number"===typeof e){if("string"===typeof t)throw new Error("If encoding is specified then the first argument must be a string");return h(this,e)}return u(this,e,t,r)}function u(e,t,r,n){if("number"===typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!==typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n);l.TYPED_ARRAY_SUPPORT?(e=t).__proto__=l.prototype:e=f(e,t);return e}(e,t,r,n):"string"===typeof t?function(e,t,r){"string"===typeof r&&""!==r||(r="utf8");if(!l.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|d(t,r),o=(e=a(e,n)).write(t,r);o!==n&&(e=e.slice(0,o));return e}(e,t,r):function(e,t){if(l.isBuffer(t)){var r=0|p(t.length);return 0===(e=a(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!==typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!==typeof t.length||(n=t.length)!==n?a(e,0):f(e,t);if("Buffer"===t.type&&i(t.data))return f(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function c(e){if("number"!==typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function h(e,t){if(c(t),e=a(e,t<0?0:0|p(t)),!l.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function f(e,t){var r=t.length<0?0:0|p(t.length);e=a(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function p(e){if(e>=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function d(e,t){if(l.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return $(e).length;default:if(n)return F(e).length;t=(""+t).toLowerCase(),n=!0}}function g(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,r);case"utf8":case"utf-8":return R(this,t,r);case"ascii":return A(this,t,r);case"latin1":case"binary":return _(this,t,r);case"base64":return O(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function v(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function y(e,t,r,n,o){if(0===e.length)return-1;if("string"===typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"===typeof t&&(t=l.from(t,n)),l.isBuffer(t))return 0===t.length?-1:m(e,t,r,n,o);if("number"===typeof t)return t&=255,l.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):m(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function m(e,t,r,n,o){var i,s=1,a=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,l/=2,r/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){var c=-1;for(i=r;i<a;i++)if(u(e,i)===u(t,-1===c?0:i-c)){if(-1===c&&(c=i),i-c+1===l)return c*s}else-1!==c&&(i-=i-c),c=-1}else for(r+l>a&&(r=a-l),i=r;i>=0;i--){for(var h=!0,f=0;f<l;f++)if(u(e,i+f)!==u(t,f)){h=!1;break}if(h)return i}return-1}function w(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var i=t.length;if(i%2!==0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var s=0;s<n;++s){var a=parseInt(t.substr(2*s,2),16);if(isNaN(a))return s;e[r+s]=a}return s}function b(e,t,r,n){return H(F(t,e.length-r),e,r,n)}function E(e,t,r,n){return H(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function S(e,t,r,n){return E(e,t,r,n)}function k(e,t,r,n){return H($(t),e,r,n)}function x(e,t,r,n){return H(function(e,t){for(var r,n,o,i=[],s=0;s<e.length&&!((t-=2)<0);++s)n=(r=e.charCodeAt(s))>>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function O(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function R(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o<r;){var i,s,a,l,u=e[o],c=null,h=u>239?4:u>223?3:u>191?2:1;if(o+h<=r)switch(h){case 1:u<128&&(c=u);break;case 2:128===(192&(i=e[o+1]))&&(l=(31&u)<<6|63&i)>127&&(c=l);break;case 3:i=e[o+1],s=e[o+2],128===(192&i)&&128===(192&s)&&(l=(15&u)<<12|(63&i)<<6|63&s)>2047&&(l<55296||l>57343)&&(c=l);break;case 4:i=e[o+1],s=e[o+2],a=e[o+3],128===(192&i)&&128===(192&s)&&128===(192&a)&&(l=(15&u)<<18|(63&i)<<12|(63&s)<<6|63&a)>65535&&l<1114112&&(c=l)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),o+=h}return function(e){var t=e.length;if(t<=P)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=P));return r}(n)}t.Buffer=l,t.SlowBuffer=function(e){+e!=e&&(e=0);return l.alloc(+e)},t.INSPECT_MAX_BYTES=50,l.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"===typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}(),t.kMaxLength=s(),l.poolSize=8192,l._augment=function(e){return e.__proto__=l.prototype,e},l.from=function(e,t,r){return u(null,e,t,r)},l.TYPED_ARRAY_SUPPORT&&(l.prototype.__proto__=Uint8Array.prototype,l.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0})),l.alloc=function(e,t,r){return function(e,t,r,n){return c(t),t<=0?a(e,t):void 0!==r?"string"===typeof n?a(e,t).fill(r,n):a(e,t).fill(r):a(e,t)}(null,e,t,r)},l.allocUnsafe=function(e){return h(null,e)},l.allocUnsafeSlow=function(e){return h(null,e)},l.isBuffer=function(e){return!(null==e||!e._isBuffer)},l.compare=function(e,t){if(!l.isBuffer(e)||!l.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,o=0,i=Math.min(r,n);o<i;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},l.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return l.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=l.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var s=e[r];if(!l.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,o),o+=s.length}return n},l.byteLength=d,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},l.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},l.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},l.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?R(this,0,e):g.apply(this,arguments)},l.prototype.equals=function(e){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===l.compare(this,e)},l.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},l.prototype.compare=function(e,t,r,n,o){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0),a=Math.min(i,s),u=this.slice(n,o),c=e.slice(t,r),h=0;h<a;++h)if(u[h]!==c[h]){i=u[h],s=c[h];break}return i<s?-1:s<i?1:0},l.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},l.prototype.indexOf=function(e,t,r){return y(this,e,t,r,!0)},l.prototype.lastIndexOf=function(e,t,r){return y(this,e,t,r,!1)},l.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"===typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return b(this,e,t,r);case"ascii":return E(this,e,t,r);case"latin1":case"binary":return S(this,e,t,r);case"base64":return k(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var P=4096;function A(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(127&e[o]);return n}function _(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(e[o]);return n}function T(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var o="",i=t;i<r;++i)o+=V(e[i]);return o}function C(e,t,r){for(var n=e.slice(t,r),o="",i=0;i<n.length;i+=2)o+=String.fromCharCode(n[i]+256*n[i+1]);return o}function j(e,t,r){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function U(e,t,r,n,o,i){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function B(e,t,r,n){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-r,2);o<i;++o)e[r+o]=(t&255<<8*(n?o:1-o))>>>8*(n?o:1-o)}function L(e,t,r,n){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-r,4);o<i;++o)e[r+o]=t>>>8*(n?o:3-o)&255}function N(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function I(e,t,r,n,i){return i||N(e,0,r,4),o.write(e,t,r,n,23,4),r+4}function D(e,t,r,n,i){return i||N(e,0,r,8),o.write(e,t,r,n,52,8),r+8}l.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),l.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=l.prototype;else{var o=t-e;r=new l(o,void 0);for(var i=0;i<o;++i)r[i]=this[i+e]}return r},l.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=this[e],o=1,i=0;++i<t&&(o*=256);)n+=this[e+i]*o;return n},l.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},l.prototype.readUInt8=function(e,t){return t||j(e,1,this.length),this[e]},l.prototype.readUInt16LE=function(e,t){return t||j(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUInt16BE=function(e,t){return t||j(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUInt32LE=function(e,t){return t||j(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUInt32BE=function(e,t){return t||j(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=this[e],o=1,i=0;++i<t&&(o*=256);)n+=this[e+i]*o;return n>=(o*=128)&&(n-=Math.pow(2,8*t)),n},l.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=t,o=1,i=this[e+--n];n>0&&(o*=256);)i+=this[e+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},l.prototype.readInt8=function(e,t){return t||j(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){t||j(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt16BE=function(e,t){t||j(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt32LE=function(e,t){return t||j(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return t||j(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return t||j(e,4,this.length),o.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return t||j(e,4,this.length),o.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return t||j(e,8,this.length),o.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return t||j(e,8,this.length),o.read(this,e,!1,52,8)},l.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||U(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[t]=255&e;++i<r&&(o*=256);)this[t+i]=e/o&255;return t+r},l.prototype.writeUIntBE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||U(this,e,t,r,Math.pow(2,8*r)-1,0);var o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},l.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,255,0),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},l.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):B(this,e,t,!0),t+2},l.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):B(this,e,t,!1),t+2},l.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):L(this,e,t,!0),t+4},l.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):L(this,e,t,!1),t+4},l.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);U(this,e,t,r,o-1,-o)}var i=0,s=1,a=0;for(this[t]=255&e;++i<r&&(s*=256);)e<0&&0===a&&0!==this[t+i-1]&&(a=1),this[t+i]=(e/s>>0)-a&255;return t+r},l.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);U(this,e,t,r,o-1,-o)}var i=r-1,s=1,a=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/s>>0)-a&255;return t+r},l.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,127,-128),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):B(this,e,t,!0),t+2},l.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):B(this,e,t,!1),t+2},l.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):L(this,e,t,!0),t+4},l.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):L(this,e,t,!1),t+4},l.prototype.writeFloatLE=function(e,t,r){return I(this,e,t,!0,r)},l.prototype.writeFloatBE=function(e,t,r){return I(this,e,t,!1,r)},l.prototype.writeDoubleLE=function(e,t,r){return D(this,e,t,!0,r)},l.prototype.writeDoubleBE=function(e,t,r){return D(this,e,t,!1,r)},l.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var o,i=n-r;if(this===e&&r<t&&t<n)for(o=i-1;o>=0;--o)e[o+t]=this[o+r];else if(i<1e3||!l.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+i),t);return i},l.prototype.fill=function(e,t,r,n){if("string"===typeof e){if("string"===typeof t?(n=t,t=0,r=this.length):"string"===typeof r&&(n=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==n&&"string"!==typeof n)throw new TypeError("encoding must be a string");if("string"===typeof n&&!l.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"===typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var i;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"===typeof e)for(i=t;i<r;++i)this[i]=e;else{var s=l.isBuffer(e)?e:F(new l(e,n).toString()),a=s.length;for(i=0;i<r-t;++i)this[i+t]=s[i%a]}return this};var M=/[^+\/0-9A-Za-z-_]/g;function V(e){return e<16?"0"+e.toString(16):e.toString(16)}function F(e,t){var r;t=t||1/0;for(var n=e.length,o=null,i=[],s=0;s<n;++s){if((r=e.charCodeAt(s))>55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function $(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(M,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function H(e,t,r,n){for(var o=0;o<n&&!(o+r>=t.length||o>=e.length);++o)t[o+r]=e[o];return o}}).call(this,r(10))},function(e,t,r){"use strict";t.byteLength=function(e){var t=u(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,n=u(e),s=n[0],a=n[1],l=new i(function(e,t,r){return 3*(t+r)/4-r}(0,s,a)),c=0,h=a>0?s-4:s;for(r=0;r<h;r+=4)t=o[e.charCodeAt(r)]<<18|o[e.charCodeAt(r+1)]<<12|o[e.charCodeAt(r+2)]<<6|o[e.charCodeAt(r+3)],l[c++]=t>>16&255,l[c++]=t>>8&255,l[c++]=255&t;2===a&&(t=o[e.charCodeAt(r)]<<2|o[e.charCodeAt(r+1)]>>4,l[c++]=255&t);1===a&&(t=o[e.charCodeAt(r)]<<10|o[e.charCodeAt(r+1)]<<4|o[e.charCodeAt(r+2)]>>2,l[c++]=t>>8&255,l[c++]=255&t);return l},t.fromByteArray=function(e){for(var t,r=e.length,o=r%3,i=[],s=16383,a=0,l=r-o;a<l;a+=s)i.push(c(e,a,a+s>l?l:a+s));1===o?(t=e[r-1],i.push(n[t>>2]+n[t<<4&63]+"==")):2===o&&(t=(e[r-2]<<8)+e[r-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return i.join("")};for(var n=[],o=[],i="undefined"!==typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,l=s.length;a<l;++a)n[a]=s[a],o[s.charCodeAt(a)]=a;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,r){for(var o,i,s=[],a=t;a<r;a+=3)o=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),s.push(n[(i=o)>>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return s.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,r,n,o){var i,s,a=8*o-n-1,l=(1<<a)-1,u=l>>1,c=-7,h=r?o-1:0,f=r?-1:1,p=e[t+h];for(h+=f,i=p&(1<<-c)-1,p>>=-c,c+=a;c>0;i=256*i+e[t+h],h+=f,c-=8);for(s=i&(1<<-c)-1,i>>=-c,c+=n;c>0;s=256*s+e[t+h],h+=f,c-=8);if(0===i)i=1-u;else{if(i===l)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,n),i-=u}return(p?-1:1)*s*Math.pow(2,i-n)},t.write=function(e,t,r,n,o,i){var s,a,l,u=8*i-o-1,c=(1<<u)-1,h=c>>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,d=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),(t+=s+h>=1?f/l:f*Math.pow(2,1-h))*l>=2&&(s++,l/=2),s+h>=c?(a=0,s=c):s+h>=1?(a=(t*l-1)*Math.pow(2,o),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,o),s=0));o>=8;e[r+p]=255&a,p+=d,a/=256,o-=8);for(s=s<<o|a,u+=o;u>0;e[r+p]=255&s,p+=d,s/=256,u-=8);e[r+p-d]|=128*g}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(22);Object.defineProperty(t,"BNF",{enumerable:!0,get:function(){return n.default}});var o=r(24);Object.defineProperty(t,"W3C",{enumerable:!0,get:function(){return o.default}});var i=r(25);Object.defineProperty(t,"Custom",{enumerable:!0,get:function(){return i.default}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(23),o=r(5);var i;!function(e){function t(e){let r=n.findChildrenByType(e,"term").map((e=>n.findChildrenByType(e,"literal").concat(n.findChildrenByType(e,"rule-name"))[0].text));return n.findChildrenByType(e,"list").forEach((e=>{r=r.concat(t(e))})),r}function r(r,o=e.defaultParser){let i=o.getAST(r);if(!i)throw new Error("Could not parse "+r);if(i.errors&&i.errors.length)throw i.errors[0];let s=n.findChildrenByType(i,"rule").map((e=>{let r=n.findChildrenByType(e,"rule-name")[0].text,o=n.findChildrenByType(e,"firstExpression").concat(n.findChildrenByType(e,"otherExpression")),i=[];return o.forEach((e=>{i.push(t(e))})),{name:r,bnf:i}}));return s.some((e=>"EOL"==e.name))||s.push({name:"EOL",bnf:[['"\\r\\n"','"\\r"','"\\n"']]}),s}e.RULES=[{name:"syntax",bnf:[["RULE_EOL*","rule+"]]},{name:"rule",bnf:[['" "*','"<"',"rule-name",'">"','" "*','"::="',"firstExpression","otherExpression*",'" "*',"RULE_EOL+",'" "*']]},{name:"firstExpression",bnf:[['" "*',"list"]]},{name:"otherExpression",bnf:[['" "*','"|"','" "*',"list"]]},{name:"RULE_EOL",bnf:[['"\\r"'],['"\\n"']]},{name:"list",bnf:[["term",'" "*',"list"],["term"]]},{name:"term",bnf:[["literal"],['"<"',"rule-name",'">"']]},{name:"literal",bnf:[["'\"'","RULE_CHARACTER1*","'\"'"],['"\'"',"RULE_CHARACTER2*",'"\'"']]},{name:"RULE_CHARACTER",bnf:[['" "'],["RULE_LETTER"],["RULE_DIGIT"],["RULE_SYMBOL"]]},{name:"RULE_LETTER",bnf:[['"A"'],['"B"'],['"C"'],['"D"'],['"E"'],['"F"'],['"G"'],['"H"'],['"I"'],['"J"'],['"K"'],['"L"'],['"M"'],['"N"'],['"O"'],['"P"'],['"Q"'],['"R"'],['"S"'],['"T"'],['"U"'],['"V"'],['"W"'],['"X"'],['"Y"'],['"Z"'],['"a"'],['"b"'],['"c"'],['"d"'],['"e"'],['"f"'],['"g"'],['"h"'],['"i"'],['"j"'],['"k"'],['"l"'],['"m"'],['"n"'],['"o"'],['"p"'],['"q"'],['"r"'],['"s"'],['"t"'],['"u"'],['"v"'],['"w"'],['"x"'],['"y"'],['"z"']]},{name:"RULE_DIGIT",bnf:[['"0"'],['"1"'],['"2"'],['"3"'],['"4"'],['"5"'],['"6"'],['"7"'],['"8"'],['"9"']]},{name:"RULE_SYMBOL",bnf:[['"-"'],['"_"'],['"!"'],['"#"'],['"$"'],['"%"'],['"&"'],['"("'],['")"'],['"*"'],['"+"'],['","'],['"-"'],['"."'],['"/"'],['":"'],['";"'],['"<"'],['"="'],['">"'],['"?"'],['"@"'],['"["'],['"\\"'],['"]"'],['"^"'],['"_"'],['"`"'],['"{"'],['"|"'],['"}"'],['"~"']]},{name:"RULE_CHARACTER1",bnf:[["RULE_CHARACTER"],['"\'"']]},{name:"RULE_CHARACTER2",bnf:[["RULE_CHARACTER"],["'\"'"]]},{name:"rule-name",bnf:[["RULE_LETTER","RULE_CHAR*"]]},{name:"RULE_CHAR",bnf:[["RULE_LETTER"],["RULE_DIGIT"],['"_"'],['"-"']]}],e.defaultParser=new o.Parser(e.RULES,{debug:!1}),e.getRules=r,e.Transform=function(t,n=e.defaultParser){return r(t.join(""),n)};class i extends o.Parser{constructor(t,n){super(r(t,n&&!0===n.debugRulesParser?new o.Parser(e.RULES,{debug:!0}):e.defaultParser),n),this.source=t}emitSource(){return this.source}}e.Parser=i}(i||(i={})),t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findChildrenByType=void 0,t.findChildrenByType=function(e,t){return e.children?e.children.filter((e=>e.type==t)):[]}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5);var o;!function(e){e.RULES=[{name:"Grammar",bnf:[["RULE_S*","%Atomic*","EOF"]]},{name:"%Atomic",bnf:[["Production","RULE_S*"]],fragment:!0},{name:"Production",bnf:[["NCName","RULE_S*",'"::="',"RULE_WHITESPACE*","Choice","RULE_WHITESPACE*","RULE_EOL+","RULE_S*"]]},{name:"NCName",bnf:[[/[a-zA-Z][a-zA-Z_0-9]*/]]},{name:"Choice",bnf:[["SequenceOrDifference","%_Choice_1*"]],fragment:!0},{name:"%_Choice_1",bnf:[["RULE_WHITESPACE*",'"|"',"RULE_WHITESPACE*","SequenceOrDifference"]],fragment:!0},{name:"SequenceOrDifference",bnf:[["Item","RULE_WHITESPACE*","%_Item_1?"]]},{name:"%_Item_1",bnf:[["Minus","Item"],["Item*"]],fragment:!0},{name:"Minus",bnf:[['"-"']]},{name:"Item",bnf:[["RULE_WHITESPACE*","%Primary","PrimaryDecoration?"]],fragment:!0},{name:"PrimaryDecoration",bnf:[['"?"'],['"*"'],['"+"']]},{name:"DecorationName",bnf:[['"ebnf://"',/[^\x5D#]+/]]},{name:"%Primary",bnf:[["NCName"],["StringLiteral"],["CharCode"],["CharClass"],["SubItem"]],fragment:!0},{name:"SubItem",bnf:[['"("',"RULE_WHITESPACE*","Choice","RULE_WHITESPACE*",'")"']]},{name:"StringLiteral",bnf:[["'\"'",/[^"]*/,"'\"'"],['"\'"',/[^']*/,'"\'"']],pinned:1},{name:"CharCode",bnf:[['"#x"',/[0-9a-zA-Z]+/]]},{name:"CharClass",bnf:[["'['","'^'?","%RULE_CharClass_1+",'"]"']]},{name:"%RULE_CharClass_1",bnf:[["CharCodeRange"],["CharRange"],["CharCode"],["RULE_Char"]],fragment:!0},{name:"RULE_Char",bnf:[[/\x09/],[/\x0A/],[/\x0D/],[/[\x20-\x5c]/],[/[\x5e-\uD7FF]/],[/[\uE000-\uFFFD]/]]},{name:"CharRange",bnf:[["RULE_Char",'"-"',"RULE_Char"]]},{name:"CharCodeRange",bnf:[["CharCode",'"-"',"CharCode"]]},{name:"RULE_WHITESPACE",bnf:[["%RULE_WHITESPACE_CHAR*"],["Comment","RULE_WHITESPACE*"]]},{name:"RULE_S",bnf:[["RULE_WHITESPACE","RULE_S*"],["RULE_EOL","RULE_S*"]]},{name:"%RULE_WHITESPACE_CHAR",bnf:[[/\x09/],[/\x20/]],fragment:!0},{name:"Comment",bnf:[['"/*"',"%RULE_Comment_Body*",'"*/"']]},{name:"%RULE_Comment_Body",bnf:[['!"*/"',/[^*]/]],fragment:!0},{name:"RULE_EOL",bnf:[[/\x0D/,/\x0A/],[/\x0A/],[/\x0D/]]},{name:"Link",bnf:[["'['","Url","']'"]]},{name:"Url",bnf:[[/[^\x5D:/?#]/,'"://"',/[^\x5D#]+/,"%Url1?"]]},{name:"%Url1",bnf:[['"#"',"NCName"]],fragment:!0}],e.defaultParser=new n.Parser(e.RULES,{debug:!1});const t=/^(!|&)/,r=/(\?|\+|\*)$/,o=/^%/;function i(e,i){if("string"==typeof e){if(t.test(e))return"";if(o.test(e)){let t=r.exec(e),o=t?t[0]+" ":"",a=function(e,t){let r=n.findRuleByName(e,t);return r&&1==r.bnf.length&&1==r.bnf[0].length&&(r.bnf[0][0]instanceof RegExp||'"'==r.bnf[0][0][0]||"'"==r.bnf[0][0][0])}(e,i);return a?s(e,i)+o:"("+s(e,i)+")"+o}return e}return e.source.replace(/\\(?:x|u)([a-zA-Z0-9]+)/g,"#x$1").replace(/\[\\(?:x|u)([a-zA-Z0-9]+)-\\(?:x|u)([a-zA-Z0-9]+)\]/g,"[#x$1-#x$2]")}function s(e,t){let r=n.findRuleByName(e,t);return r?r.bnf.map((e=>function(e,t){return e.map((e=>i(e,t))).join(" ")}(e,t))).join(" | "):"RULE_NOT_FOUND {"+e+"}"}function a(e){let t=[];return e.grammarRules.forEach((r=>{if(!/^%/.test(r.name)){let n=r.recover?" /* { recoverUntil="+r.recover+" } */":"";t.push(r.name+" ::= "+s(r.name,e)+n)}})),t.join("\n")}e.emit=a;let l=0;function u(e){return new RegExp(e.replace(/#x([a-zA-Z0-9]{4})/g,"\\u$1").replace(/#x([a-zA-Z0-9]{3})/g,"\\u0$1").replace(/#x([a-zA-Z0-9]{2})/g,"\\x$1").replace(/#x([a-zA-Z0-9]{1})/g,"\\x0$1"))}function c(e,t,r){let n=null,o=[];return t.children.forEach(((i,s)=>{"Minus"==i.type&&function(e,t){throw console.log("reberia restar "+t+" a "+e),new Error("Difference not supported yet")}(n,i);let a=t.children[s+1];a=a&&"PrimaryDecoration"==a.type&&a.text||"";switch(i.type){case"SubItem":let t="%"+(r+l++);h(e,i,t),o.push(""+t+a);break;case"NCName":case"StringLiteral":o.push(""+i.text+a);break;case"CharCode":case"CharClass":if(a){let t={name:"%"+(r+l++),bnf:[[u(i.text)]]};e.push(t),o.push(""+t.name+a)}else o.push(u(i.text));break;case"PrimaryDecoration":break;default:throw new Error(" HOW SHOULD I PARSE THIS? "+i.type+" -> "+JSON.stringify(i.text))}n=i})),o}function h(e,t,r){let n=t.children.filter((e=>"SequenceOrDifference"==e.type)).map((t=>c(e,t,r))),o={name:r,bnf:n},i=null;n.forEach((e=>{i=i||e.recover,delete e.recover})),0==r.indexOf("%")&&(o.fragment=!0),i&&(o.recover=i),e.push(o)}function f(t,r=e.defaultParser){let n=r.getAST(t);if(!n)throw new Error("Could not parse "+t);if(n.errors&&n.errors.length)throw n.errors[0];let o=[];return n.children.filter((e=>"Production"==e.type)).map((e=>{let t=e.children.filter((e=>"NCName"==e.type))[0].text;h(o,e,t)})),o}e.getRules=f,e.Transform=function(t,r=e.defaultParser){return f(t.join(""),r)};class p extends n.Parser{constructor(t,r){super(f(t,r&&!0===r.debugRulesParser?new n.Parser(e.RULES,{debug:!0}):e.defaultParser),r)}emitSource(){return a(this)}}e.Parser=p}(o||(o={})),t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(7),o=r(5);var i;!function(e){e.RULES=[{name:"Grammar",bnf:[["RULE_S*","Attributes?","RULE_S*","%Atomic*","EOF"]]},{name:"%Atomic",bnf:[["Production","RULE_S*"]],fragment:!0},{name:"Production",bnf:[["NCName","RULE_S*",'"::="',"RULE_WHITESPACE*","%Choice","RULE_WHITESPACE*","Attributes?","RULE_EOL+","RULE_S*"]]},{name:"NCName",bnf:[[/[a-zA-Z][a-zA-Z_0-9]*/]]},{name:"Attributes",bnf:[['"{"',"Attribute","%Attributes*","RULE_S*",'"}"']]},{name:"%Attributes",bnf:[["RULE_S*",'","',"Attribute"]],fragment:!0},{name:"Attribute",bnf:[["RULE_S*","NCName","RULE_WHITESPACE*",'"="',"RULE_WHITESPACE*","AttributeValue"]]},{name:"AttributeValue",bnf:[["NCName"],[/[1-9][0-9]*/]]},{name:"%Choice",bnf:[["SequenceOrDifference","%_Choice_1*"]],fragment:!0},{name:"%_Choice_1",bnf:[["RULE_S*",'"|"',"RULE_S*","SequenceOrDifference"]],fragment:!0},{name:"SequenceOrDifference",bnf:[["%Item","RULE_WHITESPACE*","%_Item_1?"]]},{name:"%_Item_1",bnf:[["Minus","%Item"],["%Item*"]],fragment:!0},{name:"Minus",bnf:[['"-"']]},{name:"%Item",bnf:[["RULE_WHITESPACE*","PrimaryPreDecoration?","%Primary","PrimaryDecoration?"]],fragment:!0},{name:"PrimaryDecoration",bnf:[['"?"'],['"*"'],['"+"']]},{name:"PrimaryPreDecoration",bnf:[['"&"'],['"!"'],['"~"']]},{name:"%Primary",bnf:[["NCName"],["StringLiteral"],["CharCode"],["CharClass"],["SubItem"]],fragment:!0},{name:"SubItem",bnf:[['"("',"RULE_S*","%Choice","RULE_S*",'")"']]},{name:"StringLiteral",bnf:[["'\"'",/[^"]*/,"'\"'"],['"\'"',/[^']*/,'"\'"']]},{name:"CharCode",bnf:[['"#x"',/[0-9a-zA-Z]+/]]},{name:"CharClass",bnf:[["'['","'^'?","%RULE_CharClass_1+",'"]"']]},{name:"%RULE_CharClass_1",bnf:[["CharCodeRange"],["CharRange"],["CharCode"],["RULE_Char"]],fragment:!0},{name:"RULE_Char",bnf:[[/\x09/],[/\x0A/],[/\x0D/],[/[\x20-\x5c]/],[/[\x5e-\uD7FF]/],[/[\uE000-\uFFFD]/]]},{name:"CharRange",bnf:[["RULE_Char",'"-"',"RULE_Char"]]},{name:"CharCodeRange",bnf:[["CharCode",'"-"',"CharCode"]]},{name:"RULE_WHITESPACE",bnf:[["%RULE_WHITESPACE_CHAR*"],["Comment","RULE_WHITESPACE*"]]},{name:"RULE_S",bnf:[["RULE_WHITESPACE","RULE_S*"],["RULE_EOL","RULE_S*"]]},{name:"%RULE_WHITESPACE_CHAR",bnf:[[/\x09/],[/\x20/]],fragment:!0},{name:"Comment",bnf:[['"/*"',"%RULE_Comment_Body*",'"*/"']]},{name:"%RULE_Comment_Body",bnf:[[/[^*]/],['"*"+',/[^/]*/]],fragment:!0},{name:"RULE_EOL",bnf:[[/\x0D/,/\x0A/],[/\x0A/],[/\x0D/]]},{name:"Link",bnf:[["'['","Url","']'"]]},{name:"Url",bnf:[[/[^\x5D:/?#]/,'"://"',/[^\x5D#]+/,"%Url1?"]]},{name:"%Url1",bnf:[['"#"',"NCName"]],fragment:!0}],e.defaultParser=new o.Parser(e.RULES,{debug:!1});const t=/^(!|&)/,r=/(\?|\+|\*)$/,i=/^%/;function s(e,n){if("string"==typeof e){let s=r.exec(e),l=t.exec(e),u=l?l[0]:"",c=s?s[0]+" ":"";if(i.test(e)){let t=function(e,t){let r=o.findRuleByName(e,t);return r&&1==r.bnf.length&&1==r.bnf[0].length&&(r.bnf[0][0]instanceof RegExp||'"'==r.bnf[0][0][0]||"'"==r.bnf[0][0][0])}(e,n);return t?u+a(e,n)+c:u+"("+a(e,n)+")"+c}return e.replace(t,u)}return e.source.replace(/\\(?:x|u)([a-zA-Z0-9]+)/g,"#x$1").replace(/\[\\(?:x|u)([a-zA-Z0-9]+)-\\(?:x|u)([a-zA-Z0-9]+)\]/g,"[#x$1-#x$2]")}function a(e,t){let r=o.findRuleByName(e,t);return r?r.bnf.map((e=>function(e,t){return e.map((e=>s(e,t))).join(" ")}(e,t))).join(" | "):"RULE_NOT_FOUND {"+e+"}"}function l(e){let t=[];return e.grammarRules.forEach((r=>{if(!/^%/.test(r.name)){let n=r.recover?" { recoverUntil="+r.recover+" }":"";t.push(r.name+" ::= "+a(r.name,e)+n)}})),t.join("\n")}e.emit=l;let u=0;function c(e){return new RegExp(e.replace(/#x([a-zA-Z0-9]{4})/g,"\\u$1").replace(/#x([a-zA-Z0-9]{3})/g,"\\u0$1").replace(/#x([a-zA-Z0-9]{2})/g,"\\x$1").replace(/#x([a-zA-Z0-9]{1})/g,"\\x0$1"))}function h(e,t,r,n){let i=null,s=[];return t.children.forEach(((a,l)=>{"Minus"==a.type&&function(e,t){throw console.log("reberia restar "+t+" a "+e),new Error("Difference not supported yet")}(i,a);let h=t.children[l+1];h=h&&"PrimaryDecoration"==h.type&&h.text||"";let p="";i&&"PrimaryPreDecoration"==i.type&&(p=i.text);let d="~"==p?1:void 0;switch(d&&(p=""),a.type){case"SubItem":let t="%"+(r+u++);f(e,a,t,n),s.push(p+t+h);break;case"NCName":s.push(p+a.text+h);break;case"StringLiteral":if(h||p||!/^['"/()a-zA-Z0-9&_.:=,+*\-\^\\]+$/.test(a.text))s.push(p+a.text+h);else for(const e of a.text.slice(1,-1))n&&"true"==n.ignoreCase&&/[a-zA-Z]/.test(e)?s.push(new RegExp("["+e.toUpperCase()+e.toLowerCase()+"]")):s.push(new RegExp(o.escapeRegExp(e)));break;case"CharCode":case"CharClass":if(h||p){let t={name:"%"+(r+u++),bnf:[[c(a.text)]],pinned:d};e.push(t),s.push(p+t.name+h)}else s.push(c(a.text));break;case"PrimaryPreDecoration":case"PrimaryDecoration":break;default:throw new Error(" HOW SHOULD I PARSE THIS? "+a.type+" -> "+JSON.stringify(a.text))}i=a})),s}function f(e,t,r,o){let i=t.children.filter((e=>"Attributes"==e.type))[0],s={};i&&i.children.forEach((e=>{let t=e.children.filter((e=>"NCName"==e.type))[0].text;if(t in s)throw new n.TokenError("Duplicated attribute "+t,e);s[t]=e.children.filter((e=>"AttributeValue"==e.type))[0].text}));let a=t.children.filter((e=>"SequenceOrDifference"==e.type)).map((t=>h(e,t,r,o||s))),l={name:r,bnf:a};if(0==r.indexOf("%")&&(l.fragment=!0),s.recoverUntil&&(l.recover=s.recoverUntil,l.bnf.length>1))throw new n.TokenError("only one-option productions are suitable for error recovering",t);if("pin"in s){let e=parseInt(s.pin);if(isNaN(e)||(l.pinned=e),l.bnf.length>1)throw new n.TokenError("only one-option productions are suitable for pinning",t)}l.implicitWs="ws"in s?"explicit"!=s.ws:null,l.fragment=l.fragment||"true"==s.fragment,l.simplifyWhenOneChildren="true"==s.simplifyWhenOneChildren,e.push(l)}function p(t,r=e.defaultParser){let o=r.getAST(t);if(!o)throw new Error("Could not parse "+t);if(o.errors&&o.errors.length)throw o.errors[0];let i=null,s=o.children.filter((e=>"Attributes"==e.type))[0],a={};s&&s.children.forEach((e=>{let t=e.children.filter((e=>"NCName"==e.type))[0].text;if(t in a)throw new n.TokenError("Duplicated attribute "+t,e);a[t]=e.children.filter((e=>"AttributeValue"==e.type))[0].text})),i="implicit"==a.ws;let l=[];return o.children.filter((e=>"Production"==e.type)).map((e=>{let t=e.children.filter((e=>"NCName"==e.type))[0].text;f(l,e,t)})),l.forEach((e=>{null===e.implicitWs&&(e.implicitWs=i)})),l}e.getRules=p,e.Transform=function(t,r=e.defaultParser){return p(t.join(""),r)};class d extends o.Parser{constructor(t,r){super(p(t,r&&!0===r.debugRulesParser?new o.Parser(e.RULES,{debug:!0}):e.defaultParser),r)}emitSource(){return l(this)}}e.Parser=d}(i||(i={})),t.default=i},function(e,t,r){"use strict";r.r(t),r.d(t,"MetricsCorePlugin",(function(){return U})),r.d(t,"MetricsCorePluginSymbol",(function(){return v})),r.d(t,"MetricsViewBeaconPlugin",(function(){return C})),r.d(t,"MetricsViewBeaconPluginContextSymbol",(function(){return y})),r.d(t,"RequestTimeWebPlugin",(function(){return j})),r.d(t,"defaultGetTime",(function(){return A}));var n=r(0),o=r(11),i=r(2);const s=Symbol.for("BeaconPlugin");var a=Object.defineProperty,l=Object.defineProperties,u=Object.getOwnPropertyDescriptors,c=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,p=(e,t,r)=>t in e?a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const d=class{constructor(e){this.name="Beacon",this.symbol=d.Symbol,this.beaconContext={view:void 0},this.hooks={buildBeacon:new n.a,cancelBeacon:new n.b,publishBeacon:new n.c},(null==e?void 0:e.plugins)&&e.plugins.forEach((e=>{e.apply(this)})),(null==e?void 0:e.callback)&&this.hooks.publishBeacon.tap("BeaconCallback",(t=>{e.callback&&e.callback(t)}))}apply(e){this.player=e,this.logger=e.logger,e.hooks.state.tap(this.name,(e=>{"in-progress"===e.status&&(this.resolveDataRefs=t=>Object(o.resolveDataRefs)(t,{model:e.controllers.data,evaluate:e.controllers.expression.evaluate}))})),e.hooks.viewController.tap(this.name,(e=>{this.beaconContext={view:void 0},e.hooks.view.tap(this.name,(e=>{let t=!1;e.hooks.parser.tap(this.name,(e=>{e.hooks.onCreateASTNode.tap(this.name,(e=>{var t,r,n,o;if("asset"!==(null==e?void 0:e.type)&&"view"!==(null==e?void 0:e.type))return;const s=null!=(n=null==(r=null==(t=e.plugins)?void 0:t.stringResolver)?void 0:r.propertiesToSkip)?n:[];return s.includes("beacon")?void 0:(e.plugins=Object(i.setIn)(null!=(o=e.plugins)?o:{},["stringResolver","propertiesToSkip"],["beacon",...s]),e)}))})),e.hooks.onUpdate.tap(this.name,(e=>{this.beaconContext={view:e},t||(this.beacon({action:"viewed",element:"view",asset:e,view:e}),t=!0)}))}))})),e.hooks.expressionEvaluator.tap(this.name,(e=>{e.addExpressionFunction("beacon",((e,t,r)=>{const n=this.beaconContext.view||{};this.beacon({action:t,data:r,element:"view",asset:n,view:n})}))}))}beacon(e){const{action:t,element:r,asset:n,view:o}=e,{view:i}=this.beaconContext;setTimeout((()=>{return s=this,a=null,d=function*(){var s,a,d,g,v,y;const m=(null==e?void 0:e.data)||(null==(a=null==(s=e.asset)?void 0:s.metaData)?void 0:a.beacon),w=null!=(g=null==(d=this.resolveDataRefs)?void 0:d.call(this,m))?g:m,b={action:t,element:r,data:w,assetId:null==n?void 0:n.id,viewId:null==i?void 0:i.id},E=null==(v=this.player)?void 0:v.getState(),S=(k=((e,t)=>{for(var r in t||(t={}))h.call(t,r)&&p(e,r,t[r]);if(c)for(var r of c(t))f.call(t,r)&&p(e,r,t[r]);return e})({},e),x={data:w,state:E,view:null!=o?o:i,logger:this.logger},l(k,u(x)));var k,x;let O=(yield this.hooks.buildBeacon.call(b,S))||b;O!==b&&this.resolveDataRefs&&(O=this.resolveDataRefs(O)),this.hooks.cancelBeacon.call(S)||(null==(y=this.logger)||y.debug("Sending beacon event",O),this.hooks.publishBeacon.call(O))},new Promise(((e,t)=>{var r=e=>{try{o(d.next(e))}catch(r){t(r)}},n=e=>{try{o(d.throw(e))}catch(r){t(r)}},o=t=>t.done?e(t.value):Promise.resolve(t.value).then(r,n);o((d=d.apply(s,a)).next())}));var s,a,d}),0)}};let g=d;g.Symbol=s;const v=Symbol.for("MetricsCorePlugin"),y=Symbol.for("MetricsViewBeaconPluginContext");var m=Object.defineProperty,w=Object.defineProperties,b=Object.getOwnPropertyDescriptors,E=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,r)=>t in e?m(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,O=(e,t)=>{for(var r in t||(t={}))S.call(t,r)&&x(e,r,t[r]);if(E)for(var r of E(t))k.call(t,r)&&x(e,r,t[r]);return e},R=(e,t)=>w(e,b(t)),P=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const A="undefined"===typeof performance?()=>Date.now():()=>performance.now(),_=["onFlowBegin","onFlowEnd","onInteractive","onNodeStart","onNodeEnd","onRenderStart","onRenderEnd","onUpdateStart","onUpdateEnd","onUpdate"],T=class{constructor(e){this.symbol=T.Symbol,this.metricsPlugin=e,this.metricsPlugin.hooks.onRenderEnd.tap("MetricsViewBeaconPlugin",(e=>{e.completed&&this.resolvePendingRenderTime&&(this.resolvePendingRenderTime(e.duration),this.resolvePendingRenderTime=void 0)}))}apply(e){e.hooks.buildBeacon.intercept({context:!0,call:(e,t)=>{e&&"viewed"===t.action&&(e[this.symbol]=this.buildContext())}})}buildContext(){return P(this,null,(function*(){return{renderTime:yield this.getRenderTime(),requestTime:this.getRequestTime()}}))}getRenderTime(){return P(this,null,(function*(){const{flow:e}=this.metricsPlugin.getMetrics();if(e){const t=e.timeline[e.timeline.length-1];if("render"in t&&t.render.completed)return t.render.duration}return new Promise((e=>{this.resolvePendingRenderTime=e}))}))}getRequestTime(){const{flow:e}=this.metricsPlugin.getMetrics();return null==e?void 0:e.requestTime}};let C=T;C.Symbol=y;class j{constructor(e){this.name="RequestTimeWebPlugin",this.getRequestTime=e}apply(e){e.hooks.resolveRequestTime.tap(this.name,(()=>this.getRequestTime()))}}class U{constructor(e){var t,r,o;this.name="metrics",this.symbol=v,this.hooks={resolveRequestTime:new n.b,onFlowBegin:new n.c,onFlowEnd:new n.c,onInteractive:new n.c,onNodeStart:new n.c,onNodeEnd:new n.c,onRenderStart:new n.c,onRenderEnd:new n.c,onUpdateStart:new n.c,onUpdateEnd:new n.c,onUpdate:new n.c},this.metrics={},this.trackRender=null!=(t=null==e?void 0:e.trackRenderTime)&&t,this.trackUpdate=null!=(r=null==e?void 0:e.trackUpdateTime)&&r,this.getTime=null!=(o=null==e?void 0:e.getTime)?o:A;const i=()=>{this.hooks.onUpdate.call(this.metrics)};this.hooks.onFlowBegin.tap(this.name,i),this.hooks.onFlowEnd.tap(this.name,i),this.hooks.onInteractive.tap(this.name,i),this.hooks.onNodeStart.tap(this.name,i),this.hooks.onNodeEnd.tap(this.name,i),this.hooks.onRenderStart.tap(this.name,i),this.hooks.onRenderEnd.tap(this.name,i),this.hooks.onUpdateStart.tap(this.name,i),this.hooks.onUpdateEnd.tap(this.name,i),_.forEach((t=>{void 0!==(null==e?void 0:e[t])&&this.hooks[t].tap("options",null==e?void 0:e[t])}))}getMetrics(){return this.metrics}renderStart(){var e;const t=null==(e=this.metrics.flow)?void 0:e.timeline;if(!t||0===t.length)return;const r=t[t.length-1];if("updates"in r){if(r.updates.length>0){if(!1===r.updates[r.updates.length-1].completed)return}if(!r.render.completed)return;const e={completed:!1,startTime:A()};r.updates.push(e),this.hooks.onUpdateStart.call(e,r,this.metrics)}else{const e=R(O({},r),{render:{completed:!1,startTime:A()},updates:[]});t[t.length-1]=e,this.hooks.onRenderStart.call(e.render,e,this.metrics)}}renderEnd(){if(!this.trackRender)throw new Error("Must start the metrics-plugin with render tracking enabled");const{flow:e}=this.metrics;if(!e)return;const{timeline:t,interactive:r}=e;if(!t||!r||0===t.length)return;const n=t[t.length-1];if(!("render"in n))return;const o=A();if(n.render.completed){if(0===n.updates.length)return;const e=n.updates[n.updates.length-1];if(!0===e.completed)return;const t=R(O({},e),{completed:!0,endTime:o,duration:o-e.startTime});n.updates[n.updates.length-1]=t,this.hooks.onUpdateEnd.call(t,n,this.metrics)}else n.render=R(O({},n.render),{completed:!0,endTime:o,duration:o-n.startTime}),this.hooks.onRenderEnd.call(n.render,n,this.metrics),r.completed||(e.interactive=R(O({},r),{completed:!0,duration:o-r.startTime,endTime:o}),this.hooks.onInteractive.call(e.interactive,this.metrics))}apply(e){e.hooks.onStart.tap(this.name,(e=>{const t=this.hooks.resolveRequestTime.call(),r=A();this.metrics={flow:{id:e.id,requestTime:null!=t?t:void 0,timeline:[],startTime:r,completed:!1,interactive:{completed:!1,startTime:r}}},this.hooks.onFlowBegin.call(this.metrics)})),e.hooks.state.tap(this.name,(e=>{if("completed"===e.status||"error"===e.status){const e=A(),{flow:t}=this.metrics;if(void 0===t||!0===(null==t?void 0:t.completed))return;this.metrics={flow:R(O({},t),{completed:!0,endTime:e,duration:e-t.startTime})};const r=t.timeline[t.timeline.length-1];r&&!r.completed&&(this.metrics.flow.timeline[t.timeline.length-1]=R(O({},r),{completed:!0,endTime:e,duration:e-r.startTime})),this.hooks.onFlowEnd.call(this.metrics)}})),e.hooks.flowController.tap(this.name,(e=>{e.hooks.flow.tap(this.name,(e=>{e.hooks.transition.tap(this.name,((e,t)=>{const r=A(),{flow:n}=this.metrics;if(!n)return;const{timeline:o}=n;if(o.length>0){const e=o[o.length-1];if(e.completed)throw new Error("Completing a state that's already done.");o[o.length-1]=R(O({},e),{completed:!0,endTime:r,duration:r-e.startTime}),this.hooks.onNodeEnd.call(o[o.length-1])}const i={completed:!1,startTime:r,stateName:t.name,stateType:t.value.state_type};o.push(i),this.hooks.onNodeStart.call(i)}))}))})),this.trackRender&&(e.hooks.view.tap(this.name,(e=>{this.trackUpdate?e.hooks.onUpdate.tap(this.name,(()=>{this.renderStart()})):this.renderStart()})),e.applyTo(g.Symbol,(e=>new C(this).apply(e))))}}U.Symbol=v}])}));
|
|
2
|
+
!function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t():"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports.MetricsPlugin=t():e.MetricsPlugin=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=26)}([function(e,t,r){"use strict";function n(e,t,r){return e.context?e.callback(r,...t):e.callback(...t)}r.d(t,"a",(function(){return u})),r.d(t,"b",(function(){return a})),r.d(t,"c",(function(){return s})),r.d(t,"d",(function(){return l}));class o{constructor(){this.interceptions=[],this.interceptionKeySet=new Set}isUsed(){return this.interceptions.length>0}intercept(e){this.interceptions.push(e),Object.keys(e).forEach((e=>{this.interceptionKeySet.add(e)}))}tap(e){this.interceptionKeySet.has("tap")&&this.interceptions.forEach((t=>{var r;null==(r=t.tap)||r.call(t,e)}))}call(e,...t){this.interceptionKeySet.has("call")&&this.interceptions.forEach((r=>{var n,o;r.context?null==(n=r.call)||n.call(r,e,...t):null==(o=r.call)||o.call(r,...t)}))}loop(...e){this.interceptionKeySet.has("loop")&&this.interceptions.forEach((t=>{var r;null==(r=t.loop)||r.call(t,...e)}))}error(e){if(this.interceptionKeySet.has("error")&&e instanceof Error){const t=e;this.interceptions.forEach((e=>{var r;null==(r=e.error)||r.call(e,t)}))}}result(e){this.interceptionKeySet.has("result")&&this.interceptions.forEach((t=>{var r;null==(r=t.result)||r.call(t,e)}))}done(){this.interceptionKeySet.has("done")&&this.interceptions.forEach((e=>{var t;null==(t=e.done)||t.call(e)}))}}class i{constructor(){this.taps=[],this.interceptions=new o}tap(e,t){const r="string"===typeof e?{name:e,context:!1}:{context:!1,...e},n={key:Symbol(r.name),...r,callback:t};if(n.before){let e=this.taps.length;const t=new Set(Array.isArray(n.before)?n.before:[n.before]);for(;e>0&&t.size>0;e--){const r=this.taps[e-1];if(t.has(r.name)&&t.delete(r.name),r.before&&(o=n.name,i=r.before,Array.isArray(i)?i.includes(o):i===o))break}this.taps.splice(e,0,n)}else this.taps.push(n);var o,i;return this.interceptions.tap(n),n}untap(e){this.taps=this.taps.filter((t=>t.key!==e.key))}isUsed(){return this.taps.length>0||this.interceptions.isUsed()}intercept(e){this.interceptions.intercept(e)}}class s extends i{call(...e){if(!this.isUsed())return;const t={};this.interceptions.call(t,...e);try{this.taps.forEach((r=>{n(r,e,t)}))}catch(r){throw this.interceptions.error(r),r}this.interceptions.done()}}class a extends i{call(...e){if(!this.isUsed())return;const t={};this.interceptions.call(t,...e);for(let r=0;r<this.taps.length;r+=1){const o=n(this.taps[r],e,t);if(void 0!==o)return this.interceptions.result(o),o}this.interceptions.done()}}class l extends i{call(...e){const t={};this.interceptions.call(t,...e);let[r,...o]=e;for(let i=0;i<this.taps.length;i+=1){const e=n(this.taps[i],[r,...o],t);void 0!==e&&(r=e)}return this.interceptions.result(r),r}}class u extends i{async call(...e){let[t,...r]=e;const o={};this.interceptions.call(o,...e);try{for(let e=0;e<this.taps.length;e+=1){const i=await n(this.taps[e],[t,...r],o);void 0!==i&&(t=i)}}catch(i){throw this.interceptions.error(i),i}return this.interceptions.result(t),t}}},function(e,t,r){(function(t){"undefined"!=typeof self&&self,e.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},r.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,r,n){"use strict";function o(e){if(!(this instanceof o))return new o(e);this._=e}var i=o.prototype;function s(e,t){for(var r=0;r<e;r++)t(r)}function a(e,t,r){return function(e,t){s(t.length,(function(r){e(t[r],r,t)}))}((function(r,n,o){t=e(t,r,n,o)}),r),t}function l(e,t){return a((function(t,r,n,o){return t.concat([e(r,n,o)])}),[],t)}function u(e,r){var n={v:0,buf:r};return s(e,(function(){var e;n={v:n.v<<1|(e=n.buf,e[0]>>7),buf:function(e){var r=a((function(e,r,n,o){return e.concat(n===o.length-1?t.from([r,0]).readUInt16BE(0):o.readUInt16BE(n))}),[],e);return t.from(l((function(e){return(e<<1&65535)>>8}),r))}(n.buf)}})),n}function c(){return"undefined"!=typeof t}function h(){if(!c())throw new Error("Buffer global does not exist; please use webpack if you need to parse Buffers in the browser.")}function f(e){h();var t=a((function(e,t){return e+t}),0,e);if(t%8!=0)throw new Error("The bits ["+e.join(", ")+"] add up to "+t+" which is not an even number of bytes; the total should be divisible by 8");var r,n=t/8,i=(r=function(e){return e>48},a((function(e,t){return e||(r(t)?t:e)}),null,e));if(i)throw new Error(i+" bit range requested exceeds 48 bit (6 byte) Number max.");return new o((function(t,r){var o=n+r;return o>t.length?k(r,n.toString()+" bytes"):S(o,a((function(e,t){var r=u(t,e.buf);return{coll:e.coll.concat(r.v),buf:r.buf}}),{coll:[],buf:t.slice(r,o)},e).coll)}))}function p(e,t){return new o((function(r,n){return h(),n+t>r.length?k(n,t+" bytes for "+e):S(n+t,r.slice(n,n+t))}))}function d(e,t){if("number"!=typeof(r=t)||Math.floor(r)!==r||t<0||t>6)throw new Error(e+" requires integer length in range [0, 6].");var r}function g(e){return d("uintBE",e),p("uintBE("+e+")",e).map((function(t){return t.readUIntBE(0,e)}))}function v(e){return d("uintLE",e),p("uintLE("+e+")",e).map((function(t){return t.readUIntLE(0,e)}))}function y(e){return d("intBE",e),p("intBE("+e+")",e).map((function(t){return t.readIntBE(0,e)}))}function m(e){return d("intLE",e),p("intLE("+e+")",e).map((function(t){return t.readIntLE(0,e)}))}function w(e){return e instanceof o}function b(e){return"[object Array]"==={}.toString.call(e)}function E(e){return c()&&t.isBuffer(e)}function S(e,t){return{status:!0,index:e,value:t,furthest:-1,expected:[]}}function k(e,t){return b(t)||(t=[t]),{status:!1,index:-1,value:null,furthest:e,expected:t}}function x(e,t){if(!t)return e;if(e.furthest>t.furthest)return e;var r=e.furthest===t.furthest?function(e,t){if(function(){if(void 0!==o._supportsSet)return o._supportsSet;var e="undefined"!=typeof Set;return o._supportsSet=e,e}()&&Array.from){for(var r=new Set(e),n=0;n<t.length;n++)r.add(t[n]);var i=Array.from(r);return i.sort(),i}for(var s={},a=0;a<e.length;a++)s[e[a]]=!0;for(var l=0;l<t.length;l++)s[t[l]]=!0;var u=[];for(var c in s)({}).hasOwnProperty.call(s,c)&&u.push(c);return u.sort(),u}(e.expected,t.expected):t.expected;return{status:e.status,index:e.index,value:e.value,furthest:t.furthest,expected:r}}var O={};function R(e,t){if(E(e))return{offset:t,line:-1,column:-1};e in O||(O[e]={});for(var r=O[e],n=0,o=0,i=0,s=t;s>=0;){if(s in r){n=r[s].line,0===i&&(i=r[s].lineStart);break}("\n"===e.charAt(s)||"\r"===e.charAt(s)&&"\n"!==e.charAt(s+1))&&(o++,0===i&&(i=s+1)),s--}var a=n+o,l=t-i;return r[t]={line:a,lineStart:i},{offset:t,line:a+1,column:l+1}}function P(e){if(!w(e))throw new Error("not a parser: "+e)}function A(e,t){return"string"==typeof e?e.charAt(t):e[t]}function _(e){if("number"!=typeof e)throw new Error("not a number: "+e)}function T(e){if("function"!=typeof e)throw new Error("not a function: "+e)}function C(e){if("string"!=typeof e)throw new Error("not a string: "+e)}var j=2,U=3,B=8,L=5*B,N=4*B,I=" ";function D(e,t){return new Array(t+1).join(e)}function M(e,t,r){var n=t-e.length;return n<=0?e:D(r,n)+e}function V(e,t,r,n){return{from:e-t>0?e-t:0,to:e+r>n?n:e+r}}function F(e,t){var r,n,o,i,s,u=t.index,c=u.offset,h=1;if(c===e.length)return"Got the end of the input";if(E(e)){var f=c-c%B,p=c-f,d=V(f,L,N+B,e.length),g=l((function(e){return l((function(e){return M(e.toString(16),2,"0")}),e)}),function(e,t){var r=e.length,n=[],o=0;if(r<=t)return[e.slice()];for(var i=0;i<r;i++)n[o]||n.push([]),n[o].push(e[i]),(i+1)%t==0&&o++;return n}(e.slice(d.from,d.to).toJSON().data,B));i=function(e){return 0===e.from&&1===e.to?{from:e.from,to:e.to}:{from:e.from/B,to:Math.floor(e.to/B)}}(d),n=f/B,r=3*p,p>=4&&(r+=1),h=2,o=l((function(e){return e.length<=4?e.join(" "):e.slice(0,4).join(" ")+" "+e.slice(4).join(" ")}),g),(s=(8*(i.to>0?i.to-1:i.to)).toString(16).length)<2&&(s=2)}else{var v=e.split(/\r\n|[\n\r\u2028\u2029]/);r=u.column-1,n=u.line-1,i=V(n,j,U,v.length),o=v.slice(i.from,i.to),s=i.to.toString().length}var y=n-i.from;return E(e)&&(s=(8*(i.to>0?i.to-1:i.to)).toString(16).length)<2&&(s=2),a((function(t,n,o){var a,l=o===y,u=l?"> ":I;return a=E(e)?M((8*(i.from+o)).toString(16),s,"0"):M((i.from+o+1).toString(),s," "),[].concat(t,[u+a+" | "+n],l?[I+D(" ",s)+" | "+M("",r," ")+D("^",h)]:[])}),[],o).join("\n")}function $(e,t){return["\n","-- PARSING FAILED "+D("-",50),"\n\n",F(e,t),"\n\n",(r=t.expected,1===r.length?"Expected:\n\n"+r[0]:"Expected one of the following: \n\n"+r.join(", ")),"\n"].join("");var r}function H(e){return void 0!==e.flags?e.flags:[e.global?"g":"",e.ignoreCase?"i":"",e.multiline?"m":"",e.unicode?"u":"",e.sticky?"y":""].join("")}function z(){for(var e=[].slice.call(arguments),t=e.length,r=0;r<t;r+=1)P(e[r]);return o((function(r,n){for(var o,i=new Array(t),s=0;s<t;s+=1){if(!(o=x(e[s]._(r,n),o)).status)return o;i[s]=o.value,n=o.index}return x(S(n,i),o)}))}function W(){var e=[].slice.call(arguments);if(0===e.length)throw new Error("seqMap needs at least one argument");var t=e.pop();return T(t),z.apply(null,e).map((function(e){return t.apply(null,e)}))}function q(){var e=[].slice.call(arguments),t=e.length;if(0===t)return Q("zero alternates");for(var r=0;r<t;r+=1)P(e[r]);return o((function(t,r){for(var n,o=0;o<e.length;o+=1)if((n=x(e[o]._(t,r),n)).status)return n;return n}))}function Y(e,t){return K(e,t).or(J([]))}function K(e,t){return P(e),P(t),W(e,t.then(e).many(),(function(e,t){return[e].concat(t)}))}function Z(e){C(e);var t="'"+e+"'";return o((function(r,n){var o=n+e.length,i=r.slice(n,o);return i===e?S(o,i):k(n,t)}))}function G(e,t){!function(e){if(!(e instanceof RegExp))throw new Error("not a regexp: "+e);for(var t=H(e),r=0;r<t.length;r++){var n=t.charAt(r);if("i"!==n&&"m"!==n&&"u"!==n&&"s"!==n)throw new Error('unsupported regexp flag "'+n+'": '+e)}}(e),arguments.length>=2?_(t):t=0;var r=function(e){return RegExp("^(?:"+e.source+")",H(e))}(e),n=""+e;return o((function(e,o){var i=r.exec(e.slice(o));if(i){if(0<=t&&t<=i.length){var s=i[0],a=i[t];return S(o+s.length,a)}return k(o,"valid match group (0 to "+i.length+") in "+n)}return k(o,n)}))}function J(e){return o((function(t,r){return S(r,e)}))}function Q(e){return o((function(t,r){return k(r,e)}))}function X(e){if(w(e))return o((function(t,r){var n=e._(t,r);return n.index=r,n.value="",n}));if("string"==typeof e)return X(Z(e));if(e instanceof RegExp)return X(G(e));throw new Error("not a string, regexp, or parser: "+e)}function ee(e){return P(e),o((function(t,r){var n=e._(t,r),o=t.slice(r,n.index);return n.status?k(r,'not "'+o+'"'):S(r,null)}))}function te(e){return T(e),o((function(t,r){var n=A(t,r);return r<t.length&&e(n)?S(r+1,n):k(r,"a character/byte matching "+e)}))}function re(e,t){arguments.length<2&&(t=e,e=void 0);var r=o((function(e,n){return r._=t()._,r._(e,n)}));return e?r.desc(e):r}function ne(){return Q("fantasy-land/empty")}i.parse=function(e){if("string"!=typeof e&&!E(e))throw new Error(".parse must be called with a string or Buffer as its argument");var t,r=this.skip(ae)._(e,0);return t=r.status?{status:!0,value:r.value}:{status:!1,index:R(e,r.furthest),expected:r.expected},delete O[e],t},i.tryParse=function(e){var t=this.parse(e);if(t.status)return t.value;var r=$(e,t),n=new Error(r);throw n.type="ParsimmonError",n.result=t,n},i.assert=function(e,t){return this.chain((function(r){return e(r)?J(r):Q(t)}))},i.or=function(e){return q(this,e)},i.trim=function(e){return this.wrap(e,e)},i.wrap=function(e,t){return W(e,this,t,(function(e,t){return t}))},i.thru=function(e){return e(this)},i.then=function(e){return P(e),z(this,e).map((function(e){return e[1]}))},i.many=function(){var e=this;return o((function(t,r){for(var n=[],o=void 0;;){if(!(o=x(e._(t,r),o)).status)return x(S(r,n),o);if(r===o.index)throw new Error("infinite loop detected in .many() parser --- calling .many() on a parser which can accept zero characters is usually the cause");r=o.index,n.push(o.value)}}))},i.tieWith=function(e){return C(e),this.map((function(t){if(function(e){if(!b(e))throw new Error("not an array: "+e)}(t),t.length){C(t[0]);for(var r=t[0],n=1;n<t.length;n++)C(t[n]),r+=e+t[n];return r}return""}))},i.tie=function(){return this.tieWith("")},i.times=function(e,t){var r=this;return arguments.length<2&&(t=e),_(e),_(t),o((function(n,o){for(var i=[],s=void 0,a=void 0,l=0;l<e;l+=1){if(a=x(s=r._(n,o),a),!s.status)return a;o=s.index,i.push(s.value)}for(;l<t&&(a=x(s=r._(n,o),a),s.status);l+=1)o=s.index,i.push(s.value);return x(S(o,i),a)}))},i.result=function(e){return this.map((function(){return e}))},i.atMost=function(e){return this.times(0,e)},i.atLeast=function(e){return W(this.times(e),this.many(),(function(e,t){return e.concat(t)}))},i.map=function(e){T(e);var t=this;return o((function(r,n){var o=t._(r,n);return o.status?x(S(o.index,e(o.value)),o):o}))},i.contramap=function(e){T(e);var t=this;return o((function(r,n){var o=t.parse(e(r.slice(n)));return o.status?S(n+r.length,o.value):o}))},i.promap=function(e,t){return T(e),T(t),this.contramap(e).map(t)},i.skip=function(e){return z(this,e).map((function(e){return e[0]}))},i.mark=function(){return W(oe,this,oe,(function(e,t,r){return{start:e,value:t,end:r}}))},i.node=function(e){return W(oe,this,oe,(function(t,r,n){return{name:e,value:r,start:t,end:n}}))},i.sepBy=function(e){return Y(this,e)},i.sepBy1=function(e){return K(this,e)},i.lookahead=function(e){return this.skip(X(e))},i.notFollowedBy=function(e){return this.skip(ee(e))},i.desc=function(e){b(e)||(e=[e]);var t=this;return o((function(r,n){var o=t._(r,n);return o.status||(o.expected=e),o}))},i.fallback=function(e){return this.or(J(e))},i.ap=function(e){return W(e,this,(function(e,t){return e(t)}))},i.chain=function(e){var t=this;return o((function(r,n){var o=t._(r,n);return o.status?x(e(o.value)._(r,o.index),o):o}))},i.concat=i.or,i.empty=ne,i.of=J,i["fantasy-land/ap"]=i.ap,i["fantasy-land/chain"]=i.chain,i["fantasy-land/concat"]=i.concat,i["fantasy-land/empty"]=i.empty,i["fantasy-land/of"]=i.of,i["fantasy-land/map"]=i.map;var oe=o((function(e,t){return S(t,R(e,t))})),ie=o((function(e,t){return t>=e.length?k(t,"any character/byte"):S(t+1,A(e,t))})),se=o((function(e,t){return S(e.length,e.slice(t))})),ae=o((function(e,t){return t<e.length?k(t,"EOF"):S(t,null)})),le=G(/[0-9]/).desc("a digit"),ue=G(/[0-9]*/).desc("optional digits"),ce=G(/[a-z]/i).desc("a letter"),he=G(/[a-z]*/i).desc("optional letters"),fe=G(/\s*/).desc("optional whitespace"),pe=G(/\s+/).desc("whitespace"),de=Z("\r"),ge=Z("\n"),ve=Z("\r\n"),ye=q(ve,ge,de).desc("newline"),me=q(ye,ae);o.all=se,o.alt=q,o.any=ie,o.cr=de,o.createLanguage=function(e){var t={};for(var r in e)({}).hasOwnProperty.call(e,r)&&function(r){t[r]=re((function(){return e[r](t)}))}(r);return t},o.crlf=ve,o.custom=function(e){return o(e(S,k))},o.digit=le,o.digits=ue,o.empty=ne,o.end=me,o.eof=ae,o.fail=Q,o.formatError=$,o.index=oe,o.isParser=w,o.lazy=re,o.letter=ce,o.letters=he,o.lf=ge,o.lookahead=X,o.makeFailure=k,o.makeSuccess=S,o.newline=ye,o.noneOf=function(e){return te((function(t){return e.indexOf(t)<0})).desc("none of '"+e+"'")},o.notFollowedBy=ee,o.of=J,o.oneOf=function(e){for(var t=e.split(""),r=0;r<t.length;r++)t[r]="'"+t[r]+"'";return te((function(t){return e.indexOf(t)>=0})).desc(t)},o.optWhitespace=fe,o.Parser=o,o.range=function(e,t){return te((function(r){return e<=r&&r<=t})).desc(e+"-"+t)},o.regex=G,o.regexp=G,o.sepBy=Y,o.sepBy1=K,o.seq=z,o.seqMap=W,o.seqObj=function(){for(var e,t={},r=0,n=(e=arguments,Array.prototype.slice.call(e)),i=n.length,s=0;s<i;s+=1){var a=n[s];if(!w(a)){if(b(a)&&2===a.length&&"string"==typeof a[0]&&w(a[1])){var l=a[0];if(Object.prototype.hasOwnProperty.call(t,l))throw new Error("seqObj: duplicate key "+l);t[l]=!0,r++;continue}throw new Error("seqObj arguments must be parsers or [string, parser] array pairs.")}}if(0===r)throw new Error("seqObj expects at least one named parser, found zero");return o((function(e,t){for(var r,o={},s=0;s<i;s+=1){var a,l;if(b(n[s])?(a=n[s][0],l=n[s][1]):(a=null,l=n[s]),!(r=x(l._(e,t),r)).status)return r;a&&(o[a]=r.value),t=r.index}return x(S(t,o),r)}))},o.string=Z,o.succeed=J,o.takeWhile=function(e){return T(e),o((function(t,r){for(var n=r;n<t.length&&e(A(t,n));)n++;return S(n,t.slice(r,n))}))},o.test=te,o.whitespace=pe,o["fantasy-land/empty"]=ne,o["fantasy-land/of"]=J,o.Binary={bitSeq:f,bitSeqObj:function(e){h();var t={},r=0,n=l((function(e){if(b(e)){var n=e;if(2!==n.length)throw new Error("["+n.join(", ")+"] should be length 2, got length "+n.length);if(C(n[0]),_(n[1]),Object.prototype.hasOwnProperty.call(t,n[0]))throw new Error("duplicate key in bitSeqObj: "+n[0]);return t[n[0]]=!0,r++,n}return _(e),[null,e]}),e);if(r<1)throw new Error("bitSeqObj expects at least one named pair, got ["+e.join(", ")+"]");var o=l((function(e){return e[0]}),n);return f(l((function(e){return e[1]}),n)).map((function(e){return a((function(e,t){return null!==t[0]&&(e[t[0]]=t[1]),e}),{},l((function(t,r){return[t,e[r]]}),o))}))},byte:function(e){if(h(),_(e),e>255)throw new Error("Value specified to byte constructor ("+e+"=0x"+e.toString(16)+") is larger in value than a single byte.");var t=(e>15?"0x":"0x0")+e.toString(16);return o((function(r,n){var o=A(r,n);return o===e?S(n+1,o):k(n,t)}))},buffer:function(e){return p("buffer",e).map((function(e){return t.from(e)}))},encodedString:function(e,t){return p("string",t).map((function(t){return t.toString(e)}))},uintBE:g,uint8BE:g(1),uint16BE:g(2),uint32BE:g(4),uintLE:v,uint8LE:v(1),uint16LE:v(2),uint32LE:v(4),intBE:y,int8BE:y(1),int16BE:y(2),int32BE:y(4),intLE:m,int8LE:m(1),int16LE:m(2),int32LE:m(4),floatBE:p("floatBE",4).map((function(e){return e.readFloatBE(0)})),floatLE:p("floatLE",4).map((function(e){return e.readFloatLE(0)})),doubleBE:p("doubleBE",8).map((function(e){return e.readDoubleBE(0)})),doubleLE:p("doubleLE",8).map((function(e){return e.readDoubleLE(0)}))},e.exports=o}])}).call(this,r(17).Buffer)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.clone=a,t.addLast=u,t.addFirst=c,t.removeLast=h,t.removeFirst=f,t.insert=p,t.removeAt=d,t.replaceAt=g,t.getIn=v,t.set=y,t.setIn=m,t.update=b,t.updateIn=E,t.merge=S,t.mergeDeep=k,t.mergeIn=x,t.omit=O,t.addDefaults=R,t.default=void 0;const n="INVALID_ARGS";function o(e){throw new Error(e)}function i(e){const t=Object.keys(e);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t}const s={}.hasOwnProperty;function a(e){if(Array.isArray(e))return e.slice();const t=e,r=i(t),n={};for(let o=0;o<r.length;o++){const e=r[o];n[e]=t[e]}return n}function l(e){return null!=e&&"object"===typeof e}function u(e,t){return Array.isArray(t)?e.concat(t):e.concat([t])}function c(e,t){return Array.isArray(t)?t.concat(e):[t].concat(e)}function h(e){return e.length?e.slice(0,e.length-1):e}function f(e){return e.length?e.slice(1):e}function p(e,t,r){return e.slice(0,t).concat(Array.isArray(r)?r:[r]).concat(e.slice(t))}function d(e,t){return t>=e.length||t<0?e:e.slice(0,t).concat(e.slice(t+1))}function g(e,t,r){if(e[t]===r)return e;const n=e.length,o=Array(n);for(let i=0;i<n;i++)o[i]=e[i];return o[t]=r,o}function v(e,t){if(Array.isArray(t)||o(n),null==e)return;let r=e;for(let n=0;n<t.length;n++){const e=t[n];if(r=null!=r?r[e]:void 0,void 0===r)return r}return r}function y(e,t,r){let n=e;if(null==n&&(n="number"===typeof t?[]:{}),n[t]===r)return n;const o=a(n);return o[t]=r,o}function m(e,t,r){return t.length?w(e,t,r,0):r}function w(e,t,r,n){let o;const i=t[n];if(n===t.length-1)o=r;else{o=w(l(e)&&l(e[i])?e[i]:"number"===typeof t[n+1]?[]:{},t,r,n+1)}return y(e,i,o)}function b(e,t,r){return y(e,t,r(null==e?void 0:e[t]))}function E(e,t,r){return m(e,t,r(v(e,t)))}function S(e,t,r,n,o,i,...s){return s.length?P.call(null,!1,!1,e,t,r,n,o,i,...s):P(!1,!1,e,t,r,n,o,i)}function k(e,t,r,n,o,i,...s){return s.length?P.call(null,!1,!0,e,t,r,n,o,i,...s):P(!1,!0,e,t,r,n,o,i)}function x(e,t,r,n,o,i,s,...a){let l,u=v(e,t);return null==u&&(u={}),l=a.length?P.call(null,!1,!1,u,r,n,o,i,s,...a):P(!1,!1,u,r,n,o,i,s),m(e,t,l)}function O(e,t){const r=Array.isArray(t)?t:[t];let n=!1;for(let i=0;i<r.length;i++)if(s.call(e,r[i])){n=!0;break}if(!n)return e;const o={},a=i(e);for(let i=0;i<a.length;i++){const t=a[i];r.indexOf(t)>=0||(o[t]=e[t])}return o}function R(e,t,r,n,o,i,...s){return s.length?P.call(null,!0,!1,e,t,r,n,o,i,...s):P(!0,!1,e,t,r,n,o,i)}function P(e,t,r,...s){let u=r;null==u&&o(n);let c=!1;for(let n=0;n<s.length;n++){const r=s[n];if(null==r)continue;const o=i(r);if(o.length)for(let n=0;n<=o.length;n++){const i=o[n];if(e&&void 0!==u[i])continue;let s=r[i];t&&l(u[i])&&l(s)&&(s=P(e,t,u[i],s)),void 0!==s&&s!==u[i]&&(c||(c=!0,u=a(u)),u[i]=s)}}return u}var A={clone:a,addLast:u,addFirst:c,removeLast:h,removeFirst:f,insert:p,removeAt:d,replaceAt:g,getIn:v,set:y,setIn:m,update:b,updateIn:E,merge:S,mergeDeep:k,mergeIn:x,omit:O,addDefaults:R};t.default=A},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toError=t.NestedError=void 0;class n extends Error{constructor(e,...t){super(e);const r=n.getErrorReport(this);if(1===t.length){const e=o(t[0]);this.innerErrors=[e];const i=n.getErrorReport(e);return void(this.stack=`${r}\n\n======= INNER ERROR =======\n\n${i}`)}this.innerErrors=t.map((e=>o(e)));const i=this.innerErrors.map(((e,r)=>{const o=n.getErrorReport(e);return`======= INNER ERROR (${r+1} of ${t.length}) =======\n\n${o}`})).join("\n\n");this.stack=`${r}\n\n${i}`}get innerError(){return 0===this.innerErrors.length?null:this.innerErrors[0]}static rethrow(e){return(...t)=>{throw new this(e,...t)}}}function o(e){try{return e instanceof Error?e:new Error(`Value that is not an instance of Error was thrown: ${e}`)}catch{return new Error("Failed to stringify non-instance of Error that was thrown.This is possibly due to the fact that toString() method of the valuedoesn't return a primitive value.")}}t.NestedError=n,n.getErrorReport="string"===typeof(new Error).stack?e=>e.stack:e=>`${e.name}: ${e.message}`,n.prototype.name="NestedError",t.toError=o},function(e,t,r){e.exports=function(e,t,r,n,o){for(t=t.split?t.split("."):t,n=0;n<t.length;n++)e=e?e[t[n]]:o;return e===o?r:e}},function(module,exports,__webpack_require__){"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Parser=exports.findRuleByName=exports.parseRuleName=exports.escapeRegExp=exports.readToken=void 0;const UPPER_SNAKE_RE=/^[A-Z0-9_]+$/,decorationRE=/(\?|\+|\*)$/,preDecorationRE=/^(@|&|!)/,WS_RULE="WS",TokenError_1=__webpack_require__(7);function readToken(e,t){let r=t.exec(e);return r&&0==r.index?0==r[0].length&&t.source.length>0?null:{type:null,text:r[0],rest:e.substr(r[0].length),start:0,end:r[0].length-1,fullText:r[0],errors:[],children:[],parent:null}:null}function escapeRegExp(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function fixRest(e){e.rest="",e.children&&e.children.forEach((e=>fixRest(e)))}function fixPositions(e,t){e.start+=t,e.end+=t,e.children&&e.children.forEach((t=>fixPositions(t,e.start)))}function agregateErrors(e,t){t.errors&&t.errors.length&&t.errors.forEach((t=>e.push(t))),t.children&&t.children.forEach((t=>agregateErrors(e,t)))}function parseRuleName(e){let t=decorationRE.exec(e),r=preDecorationRE.exec(e),n=t&&t[0]||"",o=r&&r[0]||"",i={raw:e,name:e.replace(decorationRE,"").replace(preDecorationRE,""),isOptional:"?"==n||"*"==n,allowRepetition:"+"==n||"*"==n,atLeastOne:"+"==n,lookupPositive:"&"==o,lookupNegative:"!"==o,pinned:"@"==o,lookup:!1,isLiteral:!1};return i.isLiteral="'"==i.name[0]||'"'==i.name[0],i.lookup=i.lookupNegative||i.lookupPositive,i}function findRuleByName(e,t){let r=parseRuleName(e);return t.cachedRules[r.name]||null}function stripRules(e,t){if(e.children){let r=e.children.filter((e=>e.type&&t.test(e.type)));for(let t=0;t<r.length;t++){let n=e.children.indexOf(r[t]);-1!=n&&e.children.splice(n,1)}e.children.forEach((e=>stripRules(e,t)))}}exports.readToken=readToken,exports.escapeRegExp=escapeRegExp,exports.parseRuleName=parseRuleName,exports.findRuleByName=findRuleByName;const ignoreMissingRules=["EOF"];class Parser{constructor(e,t){this.grammarRules=e,this.options=t,this.cachedRules={},this.debug=!!t&&!0===t.debug;let r=[],n=[];if(e.forEach((e=>{let t=parseRuleName(e.name);if(t.name in this.cachedRules)r.push("Duplicated rule "+t.name);else{if(this.cachedRules[t.name]=e,e.bnf&&e.bnf.length)e.bnf.forEach((t=>{if("string"===typeof t[0]){if(parseRuleName(t[0]).name==e.name){let t="Left recursion is not allowed, rule: "+e.name;-1==r.indexOf(t)&&r.push(t)}}t.forEach((e=>{if("string"==typeof e){let t=parseRuleName(e);t.isLiteral||-1!=n.indexOf(t.name)||-1!=ignoreMissingRules.indexOf(t.name)||n.push(t.name)}}))}));else{let t="Missing rule content, rule: "+e.name;-1==r.indexOf(t)&&r.push(t)}WS_RULE==e.name&&(e.implicitWs=!1),e.implicitWs&&-1==n.indexOf(WS_RULE)&&n.push(WS_RULE),e.recover&&-1==n.indexOf(e.recover)&&n.push(e.recover)}})),n.forEach((e=>{e in this.cachedRules||r.push("Missing rule "+e)})),r.length)throw new Error(r.join("\n"))}getAST(e,t){t||(t=this.grammarRules.filter((e=>!e.fragment&&0!=e.name.indexOf("%")))[0].name);let r=this.parse(e,t);if(r){agregateErrors(r.errors,r),fixPositions(r,0),stripRules(r,/^%/),this.options&&this.options.keepUpperRules||stripRules(r,UPPER_SNAKE_RE);let e=r.rest;e&&new TokenError_1.TokenError("Unexpected end of input: \n"+e,r),fixRest(r),r.rest=e}return r}emitSource(){return"CANNOT EMIT SOURCE FROM BASE Parser"}parse(txt,target,recursion=0){let out=null,type=parseRuleName(target),expr,printable=this.debug&&!UPPER_SNAKE_RE.test(type.name);printable&&console.log(new Array(recursion).join("\u2502 ")+"Trying to get "+target+" from "+JSON.stringify(txt.split("\n")[0]));let realType=type.name,targetLex=findRuleByName(type.name,this);if("EOF"==type.name){if(txt.length)return null;if(0==txt.length)return{type:"EOF",text:"",rest:"",start:0,end:0,fullText:"",errors:[],children:[],parent:null}}try{if(!targetLex&&type.isLiteral){let src=eval(type.name);if(""===src)return{type:"%%EMPTY%%",text:"",rest:txt,start:0,end:0,fullText:"",errors:[],children:[],parent:null};expr=new RegExp(escapeRegExp(src)),realType=null}}catch(e){return e instanceof ReferenceError&&console.error(e),null}if(expr){let e=readToken(txt,expr);if(e)return e.type=realType,e}else{let e=targetLex.bnf;e instanceof Array&&e.forEach((e=>{if(out)return;let t=null,r={type:type.name,text:"",children:[],end:0,errors:[],fullText:"",parent:null,start:0,rest:txt};targetLex.fragment&&(r.fragment=!0);let n=txt,o=0,i=e.length>0,s=!1;for(let a=0;a<e.length;a++)if("string"==typeof e[a]){let l,u=parseRuleName(e[a]);i=i&&u.isOptional;let c=!1;do{if(l=null,targetLex.implicitWs&&(l=this.parse(n,u.name,recursion+1),!l)){let e;do{if(e=this.parse(n,WS_RULE,recursion+1),!e)break;r.text=r.text+e.text,r.end=r.text.length,e.parent=r,r.children.push(e),n=n.substr(e.text.length),o+=e.text.length}while(e&&e.text.length)}if(l=l||this.parse(n,u.name,recursion+1),u.lookupNegative){if(l)return;break}if(u.lookupPositive&&!l)return;if(!l){if(u.isOptional)break;if(u.atLeastOne&&c)break}if(l&&targetLex.pinned==a+1&&(t=l,printable&&console.log(new Array(recursion+1).join("\u2502 ")+"\u2514\u2500 "+l.type+" PINNED")),l||(l=this.parseRecovery(targetLex,n,recursion+1)),!l){if(!t)return;out=r,l={type:"SyntaxError",text:n,children:[],end:n.length,errors:[],fullText:"",parent:null,start:0,rest:""},n.length?new TokenError_1.TokenError(`Unexpected end of input. Expecting ${u.name} Got: ${n}`,l):new TokenError_1.TokenError(`Unexpected end of input. Missing ${u.name}`,l),printable&&console.log(new Array(recursion+1).join("\u2502 ")+"\u2514\u2500 "+l.type+" "+JSON.stringify(l.text))}if(c=!0,s=!0,"%%EMPTY%%"==l.type)break;l.start+=o,l.end+=o,!u.lookupPositive&&l.type&&(l.fragment?l.children&&l.children.forEach((e=>{e.start+=o,e.end+=o,e.parent=r,r.children.push(e)})):(l.parent=r,r.children.push(l))),u.lookup&&(l.lookup=!0),printable&&console.log(new Array(recursion+1).join("\u2502 ")+"\u2514\u2500 "+l.type+" "+JSON.stringify(l.text)),u.lookup||l.lookup||(r.text=r.text+l.text,r.end=r.text.length,n=n.substr(l.text.length),o+=l.text.length),r.rest=n}while(l&&u.allowRepetition&&n.length&&!l.lookup)}else{let t=readToken(n,e[a]);if(!t)return;printable&&console.log(new Array(recursion+1).join("\u2502 ")+"\u2514> "+JSON.stringify(t.text)+e[a].source),s=!0,t.start+=o,t.end+=o,r.text=r.text+t.text,r.end=r.text.length,n=n.substr(t.text.length),o+=t.text.length,r.rest=n}s&&(out=r,printable&&console.log(new Array(recursion).join("\u2502 ")+"\u251c<\u2500\u2534< PUSHING "+out.type+" "+JSON.stringify(out.text)))})),out&&targetLex.simplifyWhenOneChildren&&1==out.children.length&&(out=out.children[0])}return out||printable&&console.log(target+" NOT RESOLVED FROM "+txt),out}parseRecovery(e,t,r){if(e.recover&&t.length){let n=this.debug;n&&console.log(new Array(r+1).join("\u2502 ")+"Trying to recover until token "+e.recover+" from "+JSON.stringify(t.split("\n")[0]+t.split("\n")[1]));let o,i={type:"SyntaxError",text:"",children:[],end:0,errors:[],fullText:"",parent:null,start:0,rest:""};do{if(o=this.parse(t,e.recover,r+1),o){new TokenError_1.TokenError('Unexpected input: "'+i.text+`" Expecting: ${e.name}`,i);break}i.text=i.text+t[0],i.end=i.text.length,t=t.substr(1)}while(!o&&t.length>0);if(i.text.length>0&&o)return n&&console.log(new Array(r+1).join("\u2502 ")+"Recovered text: "+JSON.stringify(i.text)),i}return null}}exports.Parser=Parser,exports.default=Parser},function(e,t,r){"use strict";r.d(t,"a",(function(){return i}));var n=Object.prototype.hasOwnProperty;function o(e,t,r){for(r of e.keys())if(i(r,t))return r}function i(e,t){var r,s,a;if(e===t)return!0;if(e&&t&&(r=e.constructor)===t.constructor){if(r===Date)return e.getTime()===t.getTime();if(r===RegExp)return e.toString()===t.toString();if(r===Array){if((s=e.length)===t.length)for(;s--&&i(e[s],t[s]););return-1===s}if(r===Set){if(e.size!==t.size)return!1;for(s of e){if((a=s)&&"object"===typeof a&&!(a=o(t,a)))return!1;if(!t.has(a))return!1}return!0}if(r===Map){if(e.size!==t.size)return!1;for(s of e){if((a=s[0])&&"object"===typeof a&&!(a=o(t,a)))return!1;if(!i(s[1],t.get(a)))return!1}return!0}if(r===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(r===DataView){if((s=e.byteLength)===t.byteLength)for(;s--&&e.getInt8(s)===t.getInt8(s););return-1===s}if(ArrayBuffer.isView(e)){if((s=e.byteLength)===t.byteLength)for(;s--&&e[s]===t[s];);return-1===s}if(!r||"object"===typeof e){for(r in s=0,e){if(n.call(e,r)&&++s&&!n.call(t,r))return!1;if(!(r in t)||!i(e[r],t[r]))return!1}return Object.keys(t).length===s}}return e!==e&&t!==t}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TokenError=void 0;class n extends Error{constructor(e,t){if(super(e),this.message=e,this.token=t,!t||!t.errors)throw this;t.errors.push(this)}inspect(){return"SyntaxError: "+this.message}}t.TokenError=n},function(e,t,r){"use strict";function n(e,t){for(var r,o=0,i=e.length;o<i;o++)r=e[o],Array.isArray(r)?n(r,t):t.push(r);return t}e.exports=function(e){return n(e,[])}},function(e,t,r){"use strict";e.exports=()=>{const e={};return e.promise=new Promise(((t,r)=>{e.resolve=t,e.reject=r})),e}},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(n){"object"===typeof window&&(r=window)}e.exports=r},function(e,t,r){"use strict";r.d(t,"resolveDataRefs",(function(){return dt}));var n=r(0),o=r(3),i=r(8),s=r.n(i),a=r(1),l=r.n(a),u=r(12),c=r(4),h=r.n(c),f=r(2),p=r(6),d=r(9),g=r.n(d),v=r(13),y=r.n(v),m=r(14);const w=e=>({name:"Value",value:e}),b=e=>({name:"Expression",value:e}),E=e=>({name:"PathNode",path:e}),S=(e,t)=>({name:"Query",key:e,value:t}),k=e=>1===e.length?e[0]:{name:"Concatenated",value:e},x=l.a.string('"'),O=l.a.string("'"),R=l.a.string("`"),P=l.a.regex(/[\w\-@]+/).desc("identifier").map(w);let A;const _=l.a.lazy((()=>A)).trim(l.a.optWhitespace).wrap(l.a.string("{{"),l.a.string("}}")).map(E),T=l.a.regex(/[^`]*/).wrap(R,R).map(b),C=l.a.alt(P,_,T).atLeast(1).map(s.a).map(k),j=l.a.alt(l.a.regex(/[^"]*/).wrap(x,x).map(w),l.a.regex(/[^']*/).wrap(O,O).map(w),C),U=l.a.seq(j,l.a.string("=").times(1,3).trim(l.a.optWhitespace),j).map((([e,,t])=>S(e,t))),B=l.a.alt(U,j).trim(l.a.optWhitespace).wrap(l.a.string("["),l.a.string("]")).many(),L=l.a.seqMap(C,B,((e,t)=>[e,...t]));A=l.a.sepBy(L,l.a.string(".")).map(s.a),new u.Grammars.W3C.Parser('\nvalue ::= segment_and_bracket (SEGMENT_SEPARATOR segment_and_bracket)*\nsegment ::= concatenated | expression | modelRef | identifier \nconcatenated ::= (expression | modelRef | identifier)+ \nmodelRef ::= OPEN_CURL OPEN_CURL value CLOSE_CURL CLOSE_CURL \nidentifier ::= [\\w\\-@]+\nquery ::= WHITESPACE* optionally_quoted_segment WHITESPACE* EQUALS EQUALS? EQUALS? WHITESPACE* optionally_quoted_segment WHITESPACE*\nbrackets ::= OPEN_BRACKET WHITESPACE* (query | optionally_quoted_segment) WHITESPACE* CLOSE_BRACKET \nsegment_and_bracket ::= segment brackets*\nquoted_value ::= [^"\']*\noptionally_quoted_segment ::= WHITESPACE* SINGLE_QUOTE quoted_value SINGLE_QUOTE WHITESPACE* | WHITESPACE* DOUBLE_QUOTE quoted_value DOUBLE_QUOTE WHITESPACE* | WHITESPACE* segment WHITESPACE*\nexpression_value ::= [^`]*\nexpression ::= BACK_TICK expression_value BACK_TICK\n\nEQUALS ::= "="\nSEGMENT_SEPARATOR ::= "."\nSINGLE_QUOTE ::= "\'"\nDOUBLE_QUOTE ::= \'"\'\nWHITESPACE ::= " "\nOPEN_CURL ::= "{"\nCLOSE_CURL ::= "}" \nOPEN_BRACKET ::= "[" \nCLOSE_BRACKET ::= "]"\nBACK_TICK ::= "`" \n');const N="'",I="`",D=e=>{if(!e)return!1;const t=e.charCodeAt(0);return!(32===t||34===t||39===t||40===t||41===t||42===t||46===t||61===t||91===t||93===t||96===t||123===t||125===t)},M=e=>{let t=1,r=e.charAt(0);const n=n=>{if(n&&r!==n)throw new Error(`Expected char: ${n} but got: ${r}`);return r=e.charAt(t),t+=1,r},o=()=>{for(;" "===r;)n()},i=()=>{var e,t;return null!=(t=null!=(e=(()=>{if("{"===r){n("{"),n("{");const e=u();return n("}"),n("}"),e}})())?e:(()=>{if(r===I){n(I);let e=r;for(;n()&&r!==I;)e+=r;if(n(I),e)return b(e)}})())?t:(()=>{if(!D(r))return;let e=r;for(;n()&&D(r);)e+=r;return e?w(e):void 0})()},s=()=>{if(o(),r===N||'"'===r){const e=r===N;n(e?N:'"');const t=(e=>{if(!(null==r?void 0:r.match(e)))return;let t=r;for(;n()&&(null==r?void 0:r.match(e));)t+=r;return t?w(t):void 0})(/[^'"]+/);return n(e?N:'"'),t}return i()},a=()=>{if("["===r){n("["),o();let e=s();if(!e)throw new Error("Expected identifier");if(o(),(()=>{if("="!==r)return!1;for(;"="===r;)n();return!0})()){o();const t=s();e=S(e,t),o()}return e&&n("]"),e}},l=()=>{const e=[],t=(()=>{const e=[];let t=i();for(;void 0!==t;)e.push(t),t=i();if(0!==e.length)return k(e)})();if(t){e.push(t);let r=a();for(;void 0!==r;)e.push(r),r=a()}return e},u=()=>{const e=[];let t=l();for(;void 0!==t&&(e.push(...t),r&&"}"!==r);){if(0===t.length&&r)throw new Error(`Unexpected character: ${r}`);n("."),t=l()}return E(e)};try{return{status:!0,path:u()}}catch(c){return{status:!1,error:c.message}}};function V(e){return!("string"===typeof e||Array.isArray(e))}class F{constructor(e,t=(e=>new F(e))){const r=Array.isArray(e)?e:e.split(".");this.split=r.map((e=>{if("number"===typeof e)return e;const t=Number(e);return isNaN(t)?e:t})),Object.freeze(this.split),this.joined=this.split.join("."),this.factory=t}asArray(){return this.split}asString(){return this.joined}contains(e){const t=e.asArray();if(t.length<this.split.length)return!1;for(let r=0;r<this.split.length;r++)if(this.split[r]!==t[r])return!1;return!0}relative(e){return this.asArray().slice(e.asArray().length)}parent(){return this.factory(this.split.slice(0,-1))}key(){return this.split[this.split.length-1]}descendent(e){const t=(r=e,Array.isArray(r)?r:"string"===typeof r?r.split("."):r.asArray());var r;return this.factory(this.split.concat(t))}}var $=Object.defineProperty,H=Object.getOwnPropertySymbols,z=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable,q=(e,t,r)=>t in e?$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Y=(e,t)=>{for(var r in t||(t={}))z.call(t,r)&&q(e,r,t[r]);if(H)for(var r of H(t))W.call(t,r)&&q(e,r,t[r]);return e};function K(e,t,r){var n;const i={updates:{},path:[]};function s(e){if("Value"===e.name)return e.value;if("PathNode"===e.name){const n=K(e,t);n.updates&&(i.updates=Y(Y({},i.updates),n.updates));try{return t.convertToPath(t.getValue(n.path))}catch(r){throw new o.NestedError(`Unable to resolve path segment: ${n.path}`,r)}}if("Expression"===e.name)try{const r=t.evaluate(e.value);return t.convertToPath(r)}catch(r){throw new o.NestedError(`Unable to resolve path: ${e.value}`,r)}throw new Error(`Unable to resolve value for node: ${e.name}`)}function a(e){"string"===typeof e&&e.indexOf(".")>-1?e.split(".").forEach((e=>{i.path.push(function(e){const t=parseInt(e,10);return isNaN(t)?e:t}(e))})):i.path.push(e)}return e.path.forEach((function(e){var n,o;const l=null!=(n=null==r?void 0:r.beforeResolveNode.call(e,Y(Y({},i),t)))?n:e;switch(l.name){case"Expression":case"PathNode":a(s(l));break;case"Value":a(l.value);break;case"Query":{const e=null!=(o=t.getValue(i.path))?o:[],{key:r,value:n}=l,a=s(r),u=n&&s(n),c=function(e,t,r){return e.findIndex((e=>!(!e||"object"!==typeof e)&&e[t]==r))}(e,a,u);void 0===c||-1===c?(i.updates[[...i.path,e.length,a].join(".")]=u,i.path.push(e.length)):i.path.push(c);break}case"Concatenated":i.path.push(l.value.map(s).join(""));break;default:throw new Error(`Unsupported node type: ${l.name}`)}})),{path:i.path,updates:Object.keys(null!=(n=i.updates)?n:{}).length>0?i.updates:void 0}}var Z=Object.defineProperty,G=Object.getOwnPropertySymbols,J=Object.prototype.hasOwnProperty,Q=Object.prototype.propertyIsEnumerable,X=(e,t,r)=>t in e?Z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ee=(e,t)=>{for(var r in t||(t={}))J.call(t,r)&&X(e,r,t[r]);if(G)for(var r of G(t))Q.call(t,r)&&X(e,r,t[r]);return e};const te=/[\s()*=`{}'"[\]]/,re=/^[^.]+(\..+)*$/,ne={get:()=>{throw new Error("Not Implemented")},set:()=>{throw new Error("Not Implemented")},evaluate:()=>{throw new Error("Not Implemented")}};class oe{constructor(e){this.hooks={skipOptimization:new n.b,beforeResolveNode:new n.d},this.parserOptions=ee(ee({},ne),e),this.cache={},this.parseCache={},this.parse=this.parse.bind(this)}normalizePath(e,t){var r,n;if(!te.test(e)&&re.test(e)&&!0!==this.hooks.skipOptimization.call(e))return{path:e.split("."),updates:void 0};const i=null!=(r=this.parseCache[e])?r:M(e);if(this.parseCache[e]=i,"object"!==typeof i||!(null==i?void 0:i.status))throw new TypeError(`Cannot normalize path "${e}": ${null!=(n=null==i?void 0:i.error)?n:"Unknown Error."}`);try{return K(i.path,t,this.hooks)}catch(s){throw new o.NestedError(`Cannot resolve binding: ${e}`,s)}}getBindingForNormalizedResult(e){const t=e.path.join(".");if(this.cache[t])return this.cache[t];const r=new F(""===t?[]:e.path,this.parse);return this.cache[t]=r,r}parse(e,t={}){if(V(e))return e;const r=ee(ee({},this.parserOptions),t);let n={};const o=Array.isArray(e)?e.join("."):String(e),i={getValue:e=>{const t=this.normalizePath(e.join("."),i);return r.get(this.getBindingForNormalizedResult(t))},evaluate:e=>r.evaluate(e),convertToPath:e=>{if(void 0===e)throw new Error("Attempted to convert undefined value to binding path");if("string"!==typeof e&&"number"!==typeof e&&"boolean"!==typeof e)throw new Error(`Attempting to convert ${typeof e} to a binding path.`);const t=this.normalizePath(String(e),i);t.updates&&(n=ee(ee({},n),t.updates));const r=t.path.join(".");if(""===r)throw new Error("Nested path resolved to an empty path");return r}},s=this.normalizePath(o,i);s.updates&&(n=ee(ee({},n),s.updates));const a=Object.keys(n);if(!r.readOnly&&a.length>0){const e=a.map((e=>[this.parse(e),n[e]]));r.set(e)}return this.getBindingForNormalizedResult(s)}}class ie{constructor(){this.readDeps=new Set,this.writeDeps=new Set,this.namedDependencySets={},this.namedSet="core",this.createSubset("core"),this.createSubset("children")}createSubset(e,t=!1){!t&&this.namedDependencySets[e]||(this.namedDependencySets[e]={readDeps:new Set,writeDeps:new Set})}getDependencies(e){var t,r,n;return void 0!==e?null!=(n=null==(r=null==(t=this.namedDependencySets)?void 0:t[e])?void 0:r.readDeps)?n:new Set:this.readDeps}trackSubset(e){this.createSubset(e),this.namedSet=e}trackDefault(){this.namedSet="core"}getModified(e){var t,r,n;return void 0!==e?null!=(n=null==(r=null==(t=this.namedDependencySets)?void 0:t[e])?void 0:r.writeDeps)?n:new Set:this.writeDeps}readsBinding(e){return this.readDeps.has(e)}writesBinding(e){return this.writeDeps.has(e)}reset(){this.readDeps=new Set,this.writeDeps=new Set,this.namedDependencySets={},this.namedSet="core",this.createSubset("core",!0),this.createSubset("children",!0)}addReadDep(e,t=this.namedSet){var r,n;t&&(null==(n=null==(r=this.namedDependencySets)?void 0:r[t])||n.readDeps.add(e)),this.readDeps.add(e)}addWriteDep(e,t=this.namedSet){var r,n;t&&(null==(n=null==(r=this.namedDependencySets)?void 0:r[t])||n.writeDeps.add(e)),this.writeDeps.add(e)}addChildReadDep(e){this.addReadDep(e,"children")}}class se extends ie{constructor(e){super(),this.rootModel=e,this.set=this.set.bind(this),this.get=this.get.bind(this)}set(e,t){return e.forEach((([e])=>this.addWriteDep(e))),this.rootModel.set(e,t)}get(e,t){return this.addReadDep(e),this.rootModel.get(e,t)}delete(e,t){return this.addWriteDep(e),this.rootModel.delete(e,t)}}const ae=new class{get(){}set(){return[]}delete(){}},le=new F([]);function ue(e,t,r){return r?{get:(n,o)=>{const i=null!=o?o:t;return e.get?e.get(n,i,r):null==r?void 0:r.get(n,i)},set:(n,o)=>{const i=null!=o?o:t;return e.set?e.set(n,i,r):null==r?void 0:r.set(n,i)},delete:(n,o)=>{const i=null!=o?o:t;return e.delete?e.delete(n,i,r):null==r?void 0:r.delete(n,i)}}:e}function ce(e){if(0===e.length)return ae;if(1===e.length)return ue(e[0]);function t(t){var r;return null!=(r=e.reduce(((e,r)=>ue(r,t,e)),void 0))?r:ae}return{get:(e,r)=>{var n;return null==(n=t(r))?void 0:n.get(e,r)},set:(e,r)=>{var n;return null==(n=t(r))?void 0:n.set(e,r)},delete:(e,r)=>{var n;return null==(n=t(r))?void 0:n.delete(e,r)}}}class he{constructor(e=[]){this.hooks={onSet:new n.c},this.pipeline=e,this.effectiveDataModel=ce(this.pipeline)}setMiddleware(e){this.pipeline=e,this.effectiveDataModel=ce(e)}addMiddleware(e){this.pipeline=[...this.pipeline,e],this.effectiveDataModel=ce(this.pipeline)}reset(e={}){this.pipeline.forEach((e=>{var t;"reset"in e&&(null==(t=e.reset)||t.call(e))})),this.set([[le,e]])}set(e,t){const r=this.effectiveDataModel.set(e,t);return this.hooks.onSet.call(e),r}get(e,t){return this.effectiveDataModel.get(e,t)}delete(e,t){return this.effectiveDataModel.delete(e,t)}}class fe{constructor(e={}){this.model=e,this.get=this.get.bind(this),this.set=this.set.bind(this)}reset(e={}){this.model=e}get(e){return e&&e.asString()?h()(this.model,e.asArray()):this.model}set(e){const t=[];return e.forEach((([e,r])=>{const n=this.get(e);this.model=Object(f.setIn)(this.model,e.asArray(),r),t.push({binding:e,oldValue:n,newValue:r})})),t}delete(e){const t=e.parent();if(t){const r=this.get(t);void 0!==r&&(Array.isArray(r)?this.model=Object(f.setIn)(this.model,t.asArray(),Object(f.removeAt)(r,e.key())):this.model=Object(f.setIn)(this.model,t.asArray(),Object(f.omit)(r,e.key())))}}}const pe=Symbol("Expression Node ID");function de(e){return"object"===typeof e&&null!==e&&!Array.isArray(e)&&e.__id===pe}const ge=46,ve=40,ye=123,me=125,we=!0,be={"-":we,"!":we,"~":we,"+":we},Ee={"=":3,"+=":3,"-=":3,"&=":3,"|=":3,"||":5,"&&":6,"|":7,"^":8,"&":9,"==":10,"!=":10,"===":10,"!==":10,"<":11,">":11,"<=":11,">=":11,"<<":12,">>":12,">>>":12,"+":13,"-":13,"*":14,"/":14,"%":14};function Se(e,t){const r=new Error(`${e} at character ${t}`);throw r.index=t,r.description=e,r}function ke(e,t){if(e&&t)return{start:e.start,end:t.end}}function xe(e){let t=0;return Object.keys(e).forEach((r=>{r.length>t&&Object.prototype.hasOwnProperty.call(e,r)&&(t=r.length)})),t}const Oe=xe(be),Re=xe(Ee),Pe={true:!0,false:!1,null:null,undefined:void 0};function Ae(e){return Ee[e]||0}function _e(e,t,r,n){let o;return o="||"===e||"&&"===e?"LogicalExpression":"="===e?"Assignment":"+="===e||"-="===e||"&="===e||"|="===e?"Modification":"BinaryExpression",{__id:pe,type:o,operator:e,left:t,right:r,location:n}}function Te(e){return e>=48&&e<=57}function Ce(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122}function je(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57}function Ue(e,t){var r;const n=null==(r=null==t?void 0:t.strict)||r,o=e.charAt,i=e.charCodeAt,{length:s}=e;let a=0;const l=e=>({start:{character:e},end:{character:a}});function u(t){return o.call(e,t)}function c(t){return i.call(e,t)}function h(){let e=c(a);for(;32===e||9===e;)e=c(++a)}function f(){const e=function(){let e,t,r,n=d(),o=p();if(!o)return n;let i={value:o,prec:Ae(o)},s=d();s||Se(`Expected expression after ${o}`,a);const l=[n,i,s];o=p();for(;o&&(t=Ae(o),0!==t);){for(i={value:o,prec:t};l.length>2&&t<=l[l.length-2].prec;)s=l.pop(),o=l.pop().value,n=l.pop(),e=_e(o,n,s,ke(n.location,s.location)),l.push(e);e=d(),e||Se(`Expected expression after ${o}`,a),l.push(i,e),o=p()}r=l.length-1,e=l[r];for(;r>1;)e=_e(l[r-1].value,l[r-2],e,ke(l[r-2].location,e.location)),r-=2;return e}();h();const t=a;if(a<s&&63===c(a)){a++;const r=f();if(r||Se("Expected expression",a),h(),58===c(a)){a++;const n=f();return n||Se("Expected expression",a),{__id:pe,type:"ConditionalExpression",test:e,consequent:r,alternate:n,location:l(t)}}Se("Expected :",a)}return e}function p(){h();let t=e.substr(a,Re),r=t.length;for(;r>0;){if(Object.prototype.hasOwnProperty.call(Ee,t))return a+=r,t;t=t.substr(0,--r)}return!1}function d(){h();const t=c(a),r=a;if(Te(t)||46===t)return function(){let e="";const t=a;for(;Te(c(a));)e+=u(a++);if(c(a)===ge)for(e+=u(a++);Te(c(a));)e+=u(a++);let r=u(a);if("e"===r||"E"===r){for(e+=u(a++),r=u(a),"+"!==r&&"-"!==r||(e+=u(a++));Te(c(a));)e+=u(a++);Te(c(a-1))||Se(`Expected exponent (${e}${u(a)})`,a)}const n=c(a);Ce(n)?Se(`Variable names cannot start with a number (${e}${u(a)})`,a):n===ge&&Se("Unexpected period",a);return{__id:pe,type:"Literal",value:parseFloat(e),raw:e,location:l(t)}}();if(39===t||34===t)return g();if(Ce(t)||40===t)return function(){let e=c(a),t=e===ve?function(){a++;const e=f();if(h(),41===c(a))return a++,e;Se("Unclosed (",a)}():v();const r=a;h(),e=c(a);for(;e===ge||91===e||e===ve;)a++,e===ge?(h(),t={__id:pe,type:"MemberExpression",computed:!1,object:t,property:v(),location:l(r)}):91===e?(t={__id:pe,type:"MemberExpression",computed:!0,object:t,property:f(),location:l(r)},h(),e=c(a),93!==e&&Se("Unclosed [",a),a++):e===ve&&(t={__id:pe,type:"CallExpression",args:y(41),callTarget:t,location:l(r)}),h(),e=c(a);return t}();if(91===t)return function(){const e=a;return a++,{__id:pe,type:"ArrayExpression",elements:y(93),location:l(e)}}();if(n=t,o=c(a+1),n===ye&&o===ye)return function(){let e="",t=!1,r=1;const n=a;a+=2;for(;a<s;){const n=u(a++);if("}"===n&&c(a)===me){if(a++,r--,0===r){t=!0;break}e+="}}"}else"{"===n&&c(a)===ye?(r++,e+="{{",a++):e+=n}t||Se(`Unclosed brace after "${e}"`,a);return{__id:pe,type:"ModelRef",ref:e,location:l(n)}}();var n,o;if(t===ye)return function(){const e=[];let t,r,n,o=!1,i=!0;const u=a;for(++a;a<s;){if(h(),n=c(a),125===n){t&&Se("A key was defined but a value was not",a),a++,o=!0;break}i?(39!==n&&34!==n&&Se("An object must start wtih a key",a),t=g(),h(),58===c(a)?(a++,i=!1):Se("A colon must follow an object key",a)):(r=f(),e.push({key:t,value:r}),h(),n=c(a),44===n?a++:125!==n&&Se("Please add a comma to add another key",a),i=!0,t=void 0,r=void 0),n=c(a)}return o||Se("Unclosed brace in object",a),{__id:pe,type:"Object",attributes:e,location:l(u)}}();let i=e.substr(a,Oe),p=i.length;for(;p>0;){if(Object.prototype.hasOwnProperty.call(be,i))return a+=p,{__id:pe,type:"UnaryExpression",operator:i,argument:d(),prefix:!0,location:l(r)};i=i.substr(0,--p)}return!1}function g(){const e=u(a++);let t="",r=!1;const n=a;for(;a<s;){let n=u(a++);if(n===e){r=!0;break}if("\\"===n)switch(n=u(a++),n){case"n":t+="\n";break;case"r":t+="\r";break;case"t":t+="\t";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v"}else t+=n}return r||Se(`Unclosed quote after "${t}"`,a),{__id:pe,type:"Literal",value:t,raw:`${e}${t}${e}`,location:l(n)}}function v(){const t=a;let r=c(t);for(Ce(r)?a++:Se(`Unexpected ${u(a)}`,a);a<s&&(r=c(a),je(r));)a++;const n=e.slice(t,a);return Object.prototype.hasOwnProperty.call(Pe,n)?{__id:pe,type:"Literal",value:Pe[n],raw:n,location:l(t)}:"this"===n?{__id:pe,type:"ThisExpression",location:l(t)}:{__id:pe,type:"Identifier",name:n,location:l(t)}}function y(e){const t=[];let r,o;for(;a<s;){if(h(),r=c(a),r===e){a++;break}44!==r?(o=f(),o&&"Compound"!==o.type||Se("Expected comma",a),t.push(o)):a++}return n&&r!==e&&Se(`Expected ${String.fromCharCode(e)}`,a),t}const m=[];try{for(;a<s;){const e=c(a);if(59===e||44===e){a++;continue}const t=f();t?m.push(t):n&&a<s&&Se(`Unexpected "${u(a)}"`,a)}return 1===m.length?m[0]:{__id:pe,type:"Compound",body:m,location:l(0)}}catch(w){if(n||!(w instanceof Error))throw w;return{__id:pe,type:"Compound",body:m,location:l(0),error:w}}}const Be=(e,t,r,n)=>e.evaluate(t)?e.evaluate(r):n?e.evaluate(n):null;Be.resolveParams=!1;var Le=Object.freeze({__proto__:null,setDataVal:(e,t,r)=>{e.model.set([[t,r]])},getDataVal:(e,t)=>e.model.get(t),deleteDataVal:(e,t)=>e.model.delete(t),conditional:Be});function Ne(e){return!de(e)&&("object"===typeof e&&null!==e&&!Array.isArray(e)&&"value"in e)}var Ie=Object.defineProperty,De=Object.defineProperties,Me=Object.getOwnPropertyDescriptors,Ve=Object.getOwnPropertySymbols,Fe=Object.prototype.hasOwnProperty,$e=Object.prototype.propertyIsEnumerable,He=(e,t,r)=>t in e?Ie(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,ze=(e,t)=>{for(var r in t||(t={}))Fe.call(t,r)&&He(e,r,t[r]);if(Ve)for(var r of Ve(t))$e.call(t,r)&&He(e,r,t[r]);return e},We=(e,t)=>De(e,Me(t));const qe=(e,t,r)=>e.evaluate(t)&&e.evaluate(r);qe.resolveParams=!1;const Ye=(e,t,r)=>e.evaluate(t)||e.evaluate(r);Ye.resolveParams=!1;const Ke={"+":(e,t)=>e+t,"-":(e,t)=>e-t,"*":(e,t)=>e*t,"/":(e,t)=>e/t,"%":(e,t)=>e%t,"==":(e,t)=>e==t,"!=":(e,t)=>e!=t,">":(e,t)=>e>t,">=":(e,t)=>e>=t,"<":(e,t)=>e<t,"<=":(e,t)=>e<=t,"&&":qe,"||":Ye,"!==":(e,t)=>e!==t,"===":(e,t)=>e===t,"|":(e,t)=>e|t,"&":(e,t)=>e&t,"+=":(e,t)=>e+t,"-=":(e,t)=>e-t,"&=":(e,t)=>e&t,"|=":(e,t)=>e|t},Ze={"-":e=>-e,"+":e=>Number(e),"!":e=>!e};class Ge{constructor(e){this.vars={},this.hooks={resolve:new n.d,resolveOptions:new n.d,beforeEvaluate:new n.d,onError:new n.b},this.expressionsCache=new Map,this.operators={binary:new Map(Object.entries(Ke)),unary:new Map(Object.entries(Ze)),expressions:new Map(Object.entries(Le))},this.defaultHookOptions=We(ze({},e),{evaluate:e=>this.evaluate(e,this.defaultHookOptions),resolveNode:e=>this._execAST(e,this.defaultHookOptions)}),this.hooks.resolve.tap("ExpressionEvaluator",this._resolveNode.bind(this)),this.evaluate=this.evaluate.bind(this)}reset(){this.expressionsCache.clear()}evaluate(e,t){var r;const n=this.hooks.resolveOptions.call(We(ze(ze({},this.defaultHookOptions),t),{resolveNode:e=>this._execAST(e,n)}));let o=null!=(r=this.hooks.beforeEvaluate.call(e,n))?r:e;for(;Ne(o);)o=o.value;return"number"===typeof o||"boolean"===typeof o||void 0===o||null===o?o:de(o)?this._execAST(o,n):Array.isArray(o)?o.reduce(((e,r)=>this.evaluate(r,t)),null):this._execString(String(o),n)}addExpressionFunction(e,t){this.operators.expressions.set(e,t)}addBinaryOperator(e,t){this.operators.binary.set(e,t)}addUnaryOperator(e,t){this.operators.unary.set(e,t)}setExpressionVariable(e,t){this.vars[e]=t}getExpressionVariable(e){return this.vars[e]}_execAST(e,t){return this.hooks.resolve.call(void 0,e,t)}_execString(e,t){var r;if(""===e)return e;const n=e.match(/^@\[(.*)\]@$/);let i,s=e;n&&([,s]=Array.from(n));try{i=null!=(r=this.expressionsCache.get(s))?r:Ue(s,{strict:t.strict}),this.expressionsCache.set(s,i)}catch(a){if(t.throwErrors||!this.hooks.onError.call(a))throw new o.NestedError(`Error parsing expression: ${e}`,a);return}try{return this._execAST(i,t)}catch(a){if(t.throwErrors||!this.hooks.onError.call(a))throw new o.NestedError(`Error evaluating expression: ${e}`,a)}}_resolveNode(e,t,r){const{resolveNode:n,model:o}=r,i=We(ze({},r),{evaluate:e=>this.evaluate(e,r)});if("Literal"===t.type)return t.value;if("Identifier"===t.type)return this.vars[t.name];if("Compound"===t.type||"ThisExpression"===t.type)throw new Error(`Expression type: ${t.type} is not supported`);if("BinaryExpression"===t.type||"LogicalExpression"===t.type){const e=this.operators.binary.get(t.operator);return e?"resolveParams"in e?!1===e.resolveParams?e(i,t.left,t.right):e(i,n(t.left),n(t.right)):e(n(t.left),n(t.right)):void 0}if("UnaryExpression"===t.type){const e=this.operators.unary.get(t.operator);return e?"resolveParams"in e?e(i,!1===e.resolveParams?t.argument:n(t.argument)):e(n(t.argument)):void 0}if("Object"===t.type){const{attributes:e}=t,r={};return e.forEach((e=>{const t=n(e.key),o=n(e.value);r[t]=o})),r}if("CallExpression"===t.type){const e=t.callTarget.name,r=this.operators.expressions.get(e);if(!r)throw new Error(`Unknown expression function: ${e}`);if("resolveParams"in r&&!1===r.resolveParams)return r(i,...t.args);return r(i,...t.args.map((e=>n(e))))}if("ModelRef"===t.type)return o.get(t.ref,{context:{model:r.model}});if("MemberExpression"===t.type){return n(t.object)[n(t.property)]}if("Assignment"!==t.type){if("ConditionalExpression"===t.type){const e=n(t.test)?t.consequent:t.alternate;return n(e)}if("ArrayExpression"===t.type)return t.elements.map((e=>n(e)));if("Modification"===t.type){const e=this.operators.binary.get(t.operator);if(e){let r;return r="resolveParams"in e?!1===e.resolveParams?e(i,t.left,t.right):e(i,n(t.left),n(t.right)):e(n(t.left),n(t.right)),"ModelRef"===t.left.type?o.set([[t.left.ref,r]]):"Identifier"===t.left.type&&(this.vars[t.left.name]=r),r}return n(t.left)}}else{if("ModelRef"===t.left.type){const e=n(t.right);return o.set([[t.left.ref,e]]),e}if("Identifier"===t.left.type){const e=n(t.right);return this.vars[t.left.name]=e,e}}}}class Je{constructor(){this.hooks={trace:new n.c,debug:new n.c,info:new n.c,warn:new n.c,error:new n.c,log:new n.c},this.logHandlers=new Set,this.trace=this.createHandler("trace"),this.debug=this.createHandler("debug"),this.info=this.createHandler("info"),this.warn=this.createHandler("warn"),this.error=this.createHandler("error")}createHandler(e){return(...t)=>{this.hooks[e].call(t),this.hooks.log.call(e,t),this.logHandlers.forEach((r=>r[e](...t)))}}addHandler(e){this.logHandlers.add(e)}removeHandler(e){this.logHandlers.delete(e)}}class Qe{constructor(e){this.trace=this.createHandler("trace"),this.debug=this.createHandler("debug"),this.info=this.createHandler("info"),this.warn=this.createHandler("warn"),this.error=this.createHandler("error"),this.proxiedLoggerProvider=e}createHandler(e){return(...t)=>{const r=this.proxiedLoggerProvider();null==r||r[e](...t)}}}var Xe=Object.defineProperty,et=Object.defineProperties,tt=Object.getOwnPropertyDescriptors,rt=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,it=(e,t,r)=>t in e?Xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,st=(e,t)=>{for(var r in t||(t={}))nt.call(t,r)&&it(e,r,t[r]);if(rt)for(var r of rt(t))ot.call(t,r)&&it(e,r,t[r]);return e};const at=e=>e;class lt{constructor(e){this.formatters=new Map,this.types=new Map,this.schema=new Map,this.bindingSchemaNormalizedCache=new Map,this.hooks={resolveTypeForBinding:new n.d},this.schema=e?function(e){const t=new Map;if(!e.ROOT)return t;const r=[{node:e.ROOT,path:[],visited:new Set}];for(;r.length>0;){const n=r.shift();if(!n)break;const{node:o,path:i,visited:s}=n;Object.entries(o).forEach((([n,o])=>{const a=[...i,n],l=a.join(".");if(t.has(l))throw new Error("Path has already been processed. There's either a loop somewhere or a bug");if(s.has(o.type))throw new Error(`Path already contained type: ${o.type}. This likely indicates a loop in the schema`);t.set(l,o),o.isArray&&a.push("[]"),o.isRecord&&a.push("{}"),o.type&&e[o.type]&&r.push({path:a,node:e[o.type],visited:new Set([...s,o.type])})}))}return t}(e):new Map}addFormatters(e){e.forEach((e=>{this.formatters.set(e.name,e)}))}addDataTypes(e){e.forEach((e=>{this.types.set(e.type,e)}))}getValidationsForBinding(e){var t;const r=this.getApparentType(e);if(null==(t=null==r?void 0:r.validation)?void 0:t.length)return r.validation.map((e=>st({severity:"error",trigger:"change"},e)))}normalizeBinding(e){const t=this.bindingSchemaNormalizedCache.get(e);if(t)return t;let r=e.asArray(),n=r.map((e=>"number"===typeof e?"[]":e)).join(".");return n&&(this.bindingSchemaNormalizedCache.set(e,n),r=n.split(".")),r.forEach((t=>{const o=r.map((e=>e===t?"{}":e)).join(".");this.schema.get(o)&&(this.bindingSchemaNormalizedCache.set(e,o),r=o.split("."),n=o)})),n}getType(e){return this.hooks.resolveTypeForBinding.call(this.schema.get(this.normalizeBinding(e)),e)}getApparentType(e){var t,r;const n=this.getType(e);if(void 0===n)return;const o=this.getTypeDefinition(null==n?void 0:n.type);return void 0===o?n:(i=st(st({},o),n),s={validation:[...null!=(t=n.validation)?t:[],...null!=(r=o.validation)?r:[]]},et(i,tt(s)));var i,s}getTypeDefinition(e){return this.types.get(e)}getFormatterForType(e){const t=e,{type:r}=t,n=((e,t)=>{var r={};for(var n in e)nt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&rt)for(var n of rt(e))t.indexOf(n)<0&&ot.call(e,n)&&(r[n]=e[n]);return r})(t,["type"]),o=this.formatters.get(r);if(o)return{format:o.format?e=>{var t;return null==(t=o.format)?void 0:t.call(o,e,n)}:at,deformat:o.deformat?e=>{var t;return null==(t=o.deformat)?void 0:t.call(o,e,n)}:at}}getFormatter(e){const t=this.getApparentType(e);if(null==t?void 0:t.format)return this.getFormatterForType(t.format)}}const ut="{{",ct="}}";function ht(e){const t=e.indexOf(ut);if(-1===t)return;let r=1,n=t+ut.length,o=e.substring(t+ut.length);for(;r>0&&o.length>0;){const e=o.indexOf(ct);if(-1===e)break;const t=o.indexOf(ut);-1!==t&&t<e?(r++,o=o.substring(t+ut.length),n+=t+ut.length):(r--,o=o.substring(e+ct.length),n+=e+ct.length)}if(0!==r)throw new Error(`Unbalanced {{ and }} in exp: ${e}`);return{start:t,end:n}}function ft(e,t){const{model:r,formatted:n=!0}=t;let o=function(e,{evaluate:t}){if(!t)return e;const r=/@\[.*?\]@/;let n=e,o=n.match(r);for(;null!==o;){const i=o[0],s=n.indexOf(i),a=t(i.substr("@[".length,i.length-"@[".length-"]@".length));if(0===s&&i===e&&"string"!==typeof a)return a;n=n.substr(0,s)+a+n.substr(s+i.length),o=n.match(r)}return n}(e,t);if(!r||"string"!==typeof o||-1===o.indexOf(ut))return o;for(;-1!==o.indexOf(ut);){const e=ht(o);if(!e)return o;const{start:t,end:i}=e,s=o.substring(t+ut.length,i-ut.length).trim(),a=r.get(s,{formatted:n});if(0===t&&i===o.length&&"string"!==typeof a)return a;o=o.substr(0,t)+a+o.substr(i)}return o}function pt(e,t){switch(typeof e){case"string":return ft(e,t);case"object":{if(!e)return e;const r=Object.keys(e);let n=e;return r.length>0&&r.forEach((r=>{n=Object(f.setIn)(n,[r],pt(e[r],t))})),n}default:return e}}function dt(e,t){return pt(e,t)}function gt(e,t){const r=new Map(e),n=t.parent(),o=t.key();if(r.forEach(((e,n)=>{(t===n||t.contains(n))&&r.delete(n)})),"number"===typeof o){Array.from(e.keys()).filter((e=>{if(n.contains(e)){const[t]=e.relative(n);return"number"===typeof t&&t>o}return!1})).sort().forEach((e=>{const[t,...o]=e.relative(n);if("number"===typeof t){const i=[t-1,...o],s=n.descendent(i);r.set(s,r.get(e)),r.delete(e)}}))}return r}var vt,yt,mt=Object.defineProperty,wt=Object.defineProperties,bt=Object.getOwnPropertyDescriptors,Et=Object.getOwnPropertySymbols,St=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable,xt=(e,t,r)=>t in e?mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;class Ot{constructor(e,t){this.validator=e,this.shadowModelPaths=new Map,this.logger=null==t?void 0:t.logger,this.shouldIncludeInvalid=null==t?void 0:t.shouldIncludeInvalid}set(e,t,r){const n=ue(this,(o=((e,t)=>{for(var r in t||(t={}))St.call(t,r)&&xt(e,r,t[r]);if(Et)for(var r of Et(t))kt.call(t,r)&&xt(e,r,t[r]);return e})({},t),wt(o,bt({includeInvalid:!0}))),r);var o;const i=[],s=new Set;e.forEach((([e,t])=>{this.shadowModelPaths.set(e,t),s.add(e)}));const a=[];this.shadowModelPaths.forEach(((e,t)=>{var r;const o=this.validator(t,n);void 0===o?i.push([t,e]):o instanceof Set?o.forEach((r=>{a.push(r.binding),r.isStrong||r.binding.asString()!==t.asString()||i.push([r.binding,e])})):s.has(t)&&(a.push(t),null==(r=this.logger)||r.debug(`Invalid value for path: ${t.asString()} - ${o.severity} - ${o.message}`))}));let l=[];if(r&&i.length>0){i.forEach((([e])=>this.shadowModelPaths.delete(e)));const e=r.set(i,t);if(0===a.length)return e;l=e}const u=a.map((e=>({binding:e,oldValue:n.get(e),newValue:n.get(e),force:!0})));return[...l,...u]}get(e,t,r){var n,o;let i=null==r?void 0:r.get(e,t);return(null!=(o=null==(n=this.shouldIncludeInvalid)?void 0:n.call(this,t))?o:!0===(null==t?void 0:t.includeInvalid))&&this.shadowModelPaths.forEach(((t,r)=>{r!==e?e.contains(r)&&(i=Object(f.setIn)(i,r.relative(e),t)):i=t})),i}delete(e,t,r){return this.shadowModelPaths=gt(this.shadowModelPaths,e),null==r?void 0:r.delete(e,t)}}class Rt{constructor(){this.registry=new Map}get(e){return this.registry.get(e)}register(e,t){this.registry.set(e,t)}}function Pt(e){var t;if(e)return"value"in e&&"object"===typeof e.value&&"string"===typeof(null==(t=e.value)?void 0:t.id)?e.value.id:void 0}(yt=vt||(vt={})).Asset="asset",yt.View="view",yt.Applicability="applicability",yt.Template="template",yt.Value="value",yt.MultiNode="multi-node",yt.Switch="switch",yt.Async="async",yt.Unknown="unknown",yt.Empty="empty";var At=Object.defineProperty,_t=Object.defineProperties,Tt=Object.getOwnPropertyDescriptors,Ct=Object.getOwnPropertySymbols,jt=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable,Bt=(e,t,r)=>t in e?At(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Lt=(e,t)=>{for(var r in t||(t={}))jt.call(t,r)&&Bt(e,r,t[r]);if(Ct)for(var r of Ct(t))Ut.call(t,r)&&Bt(e,r,t[r]);return e},Nt=(e,t)=>_t(e,Tt(t));const It={type:vt.Empty};class Dt{constructor(){this.hooks={onParseObject:new n.d,onCreateASTNode:new n.d,determineNodeType:new n.b,parseNode:new n.b}}parseView(e){const t=this.parseObject(e,vt.View);if(!t)throw new Error("Unable to parse object into a view");return t}parseAsync(e,t,r){const n=this.parseObject(Object(f.omit)(e,"async"),t,r),o=Pt(n);return null!==n&&o?this.createASTNode({id:o,type:vt.Async,value:n},e):null}createASTNode(e,t){const r=this.hooks.onCreateASTNode.call(e,t);return void 0===r?e:r}hasTemplateValues(e,t){return Object.hasOwnProperty.call(e,"template")&&Array.isArray(null==e?void 0:e.template)&&e.template.length&&e.template.find((e=>e.output===t))}hasSwitchKey(e){return"staticSwitch"===e}parseObject(e,t=vt.Value,r={templateDepth:0}){var n;const o=this.hooks.determineNodeType.call(e);if(void 0!==o){const n=this.hooks.parseNode.call(e,t,r,o);if(n)return n}const i=(e,n,o=[])=>{if("object"!==typeof n||null===n)return{value:n,children:[]};const s=this.hooks.onParseObject.call(n,t);if(!s)return e;const a={children:[],value:e},l=(Array.isArray(s)?s.map(((e,t)=>[t,e])):[...Object.entries(s),...Object.getOwnPropertySymbols(s).map((e=>[e,s[e]]))]).reduce(((e,t)=>{var n;const a=e,{children:l}=a,u=((e,t)=>{var r={};for(var n in e)jt.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&Ct)for(var n of Ct(e))t.indexOf(n)<0&&Ut.call(e,n)&&(r[n]=e[n]);return r})(a,["children"]),[c,h]=t;if("asset"===c&&"object"===typeof h){const e=this.parseObject(h,vt.Asset,r);if(e)return Nt(Lt({},u),{children:[...l,{path:[...o,"asset"],value:e}]})}else{if(this.hooks.determineNodeType.call(c)===vt.Template&&Array.isArray(h)){const e=h.map((e=>{var t,n;const i=this.hooks.onCreateASTNode.call({type:vt.Template,depth:null!=(t=r.templateDepth)?t:0,data:e.data,template:e.value,dynamic:null!=(n=e.dynamic)&&n},e);if((null==i?void 0:i.type)===vt.MultiNode&&i.values.forEach((e=>{e.parent=i})),i)return{path:[...o,e.output],value:i}})).filter((e=>!!e));return Nt(Lt({},u),{children:[...l,...e]})}if(h&&this.hooks.determineNodeType.call(h)===vt.Switch||this.hasSwitchKey(c)){const e=this.hooks.parseNode.call(this.hasSwitchKey(c)?{[c]:h}:h,vt.Value,r,vt.Switch);if(e&&e.type===vt.Value&&1===(null==(n=e.children)?void 0:n.length)&&void 0===e.value){const t=e.children[0];return Nt(Lt({},u),{children:[...l,{path:[...o,c,...t.path],value:t.value}]})}if(e)return Nt(Lt({},u),{children:[...l,{path:[...o,c],value:e}]})}else if(h&&function(e){return Object.prototype.hasOwnProperty.call(e,"async")}(h)){const e=this.parseAsync(h,vt.Value,r);e&&l.push({path:[...o,c],value:e})}else if(h&&Array.isArray(h)){const e=h.map((e=>this.parseObject(e,vt.Value,r))).filter((e=>!!e));if(e.length>0){const t=this.hooks.onCreateASTNode.call({type:vt.MultiNode,override:!this.hasTemplateValues(s,c),values:e},h);if((null==t?void 0:t.type)===vt.MultiNode&&t.values.forEach((e=>{e.parent=t})),t)return Nt(Lt({},u),{children:[...l,{path:[...o,c],value:t}]})}}else{if(!h||"object"!==typeof h){return{children:l,value:Object(f.setIn)(e.value,[...o,c],h)}}{const t=this.hooks.determineNodeType.call(h);if(t!==vt.Applicability){const t=i(e.value,h,[...o,c]);return{value:t.value,children:[...l,...t.children]}}{const e=this.hooks.parseNode.call(h,vt.Value,r,t);if(e)return Nt(Lt({},u),{children:[...l,{path:[...o,c],value:e}]})}}}}return e}),a);return l},{value:s,children:a}=i(void 0,e),l=void 0===s&&0===a.length?void 0:{type:t,value:s};if(void 0!==l&&a.length>0){const e=l;e.children=a,a.forEach((t=>{t.value.parent=e}))}return null!=(n=this.hooks.onCreateASTNode.call(l,e))?n:null}}var Mt=Object.defineProperty,Vt=Object.defineProperties,Ft=Object.getOwnPropertyDescriptors,$t=Object.getOwnPropertySymbols,Ht=Object.prototype.hasOwnProperty,zt=Object.prototype.propertyIsEnumerable,Wt=(e,t,r)=>t in e?Mt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;function qt(e,t){if(!e||!t)return!0;const r=Array.from(t.values()),n=Array.from(e.values());return void 0!==r.find((e=>!!n.find((t=>t===e||t.contains(e)||e.contains(t)))))}function Yt(e){return t=((e,t)=>{for(var r in t||(t={}))Ht.call(t,r)&&Wt(e,r,t[r]);if($t)for(var r of $t(t))zt.call(t,r)&&Wt(e,r,t[r]);return e})({},e),r={data:{model:e.model,formatValue:(t,r)=>e.formatValue?e.formatValue(t,r):r,format:(t,r)=>e.format?e.format(V(t)?t:e.parseBinding(t),r):r},evaluate:t=>e.evaluator.evaluate(t,e)},Vt(t,Ft(r));var t,r}function Kt(e,t){Array.isArray(e)?e.forEach((e=>{Kt(e,t)})):t.push(e)}var Zt=Object.defineProperty,Gt=Object.defineProperties,Jt=Object.getOwnPropertyDescriptors,Qt=Object.getOwnPropertySymbols,Xt=Object.prototype.hasOwnProperty,er=Object.prototype.propertyIsEnumerable,tr=(e,t,r)=>t in e?Zt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rr=(e,t)=>{for(var r in t||(t={}))Xt.call(t,r)&&tr(e,r,t[r]);if(Qt)for(var r of Qt(t))er.call(t,r)&&tr(e,r,t[r]);return e},nr=(e,t)=>Gt(e,Jt(t));class or{constructor(e,t){this.hooks={skipResolve:new n.d,beforeUpdate:new n.c,afterUpdate:new n.c,resolveOptions:new n.d,beforeResolve:new n.d,resolve:new n.d,afterResolve:new n.d,afterNodeUpdate:new n.c},this.root=e,this.options=t,this.resolveCache=new Map,this.ASTMap=new Map,this.logger=t.logger,this.idCache=new Set}getSourceNode(e){return this.ASTMap.get(e)}update(e){this.hooks.beforeUpdate.call(e);const t=new Map;this.idCache.clear();const r=new Map(this.ASTMap);this.ASTMap.clear();const n=this.computeTree(this.root,void 0,e,t,Yt(this.options),void 0,r);return this.resolveCache=t,this.hooks.afterUpdate.call(n.value),n.value}getResolveCache(){return new Map(this.resolveCache)}getPreviousResult(e){var t,r;if(!e)return;const n=0===this.resolveCache.size,o=Pt(e);if(o){if(this.idCache.has(o))return void(n&&(e.type===vt.Asset||e.type===vt.View?null==(t=this.logger)||t.error(`Cache conflict: Found Asset/View nodes that have conflicting ids: ${o}, may cause cache issues.`):e.type===vt.Value&&(null==(r=this.logger)||r.info(`Cache conflict: Found Value nodes that have conflicting ids: ${o}, may cause cache issues. To improve performance make value node IDs globally unique.`))));this.idCache.add(o)}return this.resolveCache.get(e)}cloneNode(e){const t=Object(f.clone)(e);return Object.keys(t).forEach((e=>{if("parent"===e)return;const r=t[e];"object"===typeof r&&null!==r&&(t[e]=Array.isArray(r)?[...r]:rr({},r))})),t}computeTree(e,t,r,n,o,i,s){var a,l,u;const c=new se(o.data.model);c.trackSubset("core");const d=(g=function(e,t){function r(r,n){const o=V(r)?r:t(r,{get:e.get,set:e.set,readOnly:n});if(!o)throw new Error("Unable to parse binding");return o}return{get:(t,n)=>e.get(r(t,!0),n),set:(t,n)=>e.set(t.map((([e,t])=>[r(e,!1),t])),n),delete:(t,n)=>e.delete(r(t,!1),n)}}(c,this.options.parseBinding),{get:(e,t)=>g.get(e,rr({context:{model:g}},t)),set:(e,t)=>g.set(e,rr({context:{model:g}},t)),delete:(e,t)=>g.delete(e,rr({context:{model:g}},t))});var g;const v=this.hooks.resolveOptions.call(nr(rr({},o),{data:nr(rr({},o.data),{model:d}),evaluate:e=>this.options.evaluator.evaluate(e,{model:d}),node:e}),e),y=this.getPreviousResult(e),m=null==y?void 0:y.dependencies,w=qt(r,m),b=this.hooks.skipResolve.call(!w,e,v),E=nr(rr({},this.cloneNode(e)),{parent:i}),S=null!=(a=this.hooks.beforeResolve.call(E,v))?a:{type:vt.Empty},k=S.type===vt.MultiNode&&(null==(l=null==i?void 0:i.parent)?void 0:l.type)===vt.MultiNode&&i.type===vt.Value;if(y&&b){const r=nr(rr({},y),{updated:!1}),o=(e,t,r)=>{var i;const{node:a}=e;this.ASTMap.set(a,t);const l=nr(rr({},e),{updated:!1});n.set(t,l);const u=e=>{var r;const n=null!=(r=s.get(e))?r:e,i=this.getPreviousResult(n);i&&o(i,n,t)};"children"in a?null==(i=a.children)||i.forEach((({value:e})=>u(e))):a.type===vt.MultiNode&&a.values.forEach(u),this.hooks.afterNodeUpdate.call(t,r,l)};return y.node.parent=i,o(y,e,t),r}S.parent=i,v.node=S,this.ASTMap.set(S,e);let x=this.hooks.resolve.call(void 0,S,v),O=!Object(p.a)(null==y?void 0:y.value,x);y&&!O&&(x=null==y?void 0:y.value);const R=new Set;if(c.trackSubset("children"),"children"in S){const t=null==(u=S.children)?void 0:u.map((t=>{const o=this.computeTree(t.value,e,r,n,v,S,s),{dependencies:i,node:a,updated:l,value:u}=o;if(i.forEach((e=>R.add(e))),u)if(a.type!==vt.MultiNode||a.override)x=Object(f.setIn)(x,t.path,u);else{const e=Object(f.addLast)(h()(x,t.path,[]),u);x=Object(f.setIn)(x,t.path,e)}return O=O||l,nr(rr({},t),{value:a})}));S.children=t}else if(S.type===vt.MultiNode){const t=[],o=k?null==i?void 0:i.parent:e,a=S.values.map((e=>{var i;const a=this.computeTree(e,o,r,n,v,S,s);return void 0!==a.value&&null!==a.value&&((null==(i=a.node.parent)?void 0:i.type)===vt.MultiNode&&Array.isArray(a.value)?a.value.forEach((e=>{Kt(e,t)})):t.push(a.value)),a.dependencies.forEach((e=>R.add(e))),O=O||a.updated,a.node}));S.values=a,x=t}R.forEach((e=>c.addChildReadDep(e))),c.trackSubset("core"),y&&!O&&(x=null==y?void 0:y.value),x=this.hooks.afterResolve.call(x,S,nr(rr({},v),{getDependencies:e=>c.getDependencies(e)}));const P={node:S,updated:O,value:x,dependencies:new Set([...c.getDependencies(),...R])};return this.hooks.afterNodeUpdate.call(e,k?null==i?void 0:i.parent:t,P),n.set(e,P),P}}class ir{constructor(e){this.hooks={resolveTemplateSubstitutions:new n.d},this.options=e}parseTemplate(e,t,r){const{template:n,depth:o}=t,i=r.data.model.get(t.data);if(!i)return null;if(!Array.isArray(i))throw new Error(`Template using '${t.data}' but is not an array`);const s=[];i.forEach(((r,i)=>{const a=this.hooks.resolveTemplateSubstitutions.call([{expression:new RegExp(`_index${o||""}_`),value:String(i)}],{depth:o,data:r,index:i});let l=JSON.stringify(n);for(const{expression:e,value:t}of a){let r="g";"object"===typeof e&&(r=`${e.flags}${e.global?"":"g"}`),l=l.replace(new RegExp(e,r),t)}const u=e(JSON.parse(l),vt.Value,{templateDepth:t.depth+1});u&&s.push(u)}));return{type:vt.MultiNode,override:!1,values:s}}applyParser(e){e.hooks.onCreateASTNode.tap("template",(t=>t&&t.type===vt.Template&&!t.dynamic?this.parseTemplate(e.parseObject.bind(e),t,this.options):t)),e.hooks.determineNodeType.tap("template",(e=>{if("template"===e)return vt.Template})),e.hooks.parseNode.tap("template",((t,r,n,o)=>{var i,s;if(o===vt.Template){const r=e.createASTNode({type:vt.Template,depth:null!=(i=n.templateDepth)?i:0,data:t.data,template:t.value,dynamic:null!=(s=t.dynamic)&&s},t);if(r)return r}}))}applyResolverHooks(e){e.hooks.beforeResolve.tap("template",((e,t)=>e&&e.type===vt.Template&&e.dynamic?this.parseTemplate(t.parseNode,e,t):e))}apply(e){e.hooks.parser.tap("template",this.applyParser.bind(this)),e.hooks.resolver.tap("template",this.applyResolverHooks.bind(this))}}const sr=(e,t)=>r=>{const n=r.indexOf(e);if(-1===n)return!1;const o=r.indexOf(t);return-1!==o&&n<o},ar=sr("{{","}}"),lr=sr("@[","]@");function ur(e,t){return function(e){return ar(e)||lr(e)}(e)?dt(e,{model:t.data.model,evaluate:t.evaluate}):e}function cr(e,t,r){if(null===e||void 0===e||"object"!==typeof e&&"string"!==typeof e)return e;if("string"===typeof e)return ur(e,t);let n=e;return Object.keys(e).forEach((o=>{if(r.has(o))return;const i=e[o];let s=i;"object"===typeof i?s=cr(i,t,r):"string"===typeof i&&(s=ur(i,t)),s!==i&&(n=Object(f.set)(n,o,s))})),n}const hr=(e,t)=>{var r,n,o;const i=e.parent;if(!i)return[];if("children"in i){const s=t.getSourceNode(e);return null!=(o=null==(n=null==(r=i.children)?void 0:r.find((e=>e.value===s)))?void 0:n.path)?o:[]}return i.type!==vt.MultiNode?[]:hr(i,t)};class fr{constructor(){this.propertiesToSkipCache=new Map}applyResolver(e){e.hooks.resolve.tap("string-resolver",((t,r,n)=>{var o,i,s,a,l,u,c,h,f,p;if(r.type===vt.Empty||r.type===vt.Unknown)return null;if(r.type===vt.Value||r.type===vt.Asset||r.type===vt.View){let t;r.type===vt.Asset||r.type===vt.View?(t=new Set(null!=(s=null==(i=null==(o=r.plugins)?void 0:o.stringResolver)?void 0:i.propertiesToSkip)?s:["exp"]),(null==(a=r.value)?void 0:a.id)&&this.propertiesToSkipCache.set(r.value.id,t)):t=(null==(l=r.parent)?void 0:l.type)===vt.MultiNode&&((null==(c=null==(u=r.parent)?void 0:u.parent)?void 0:c.type)===vt.Asset||(null==(f=null==(h=r.parent)?void 0:h.parent)?void 0:f.type)===vt.View)&&(null==(p=r.parent.parent.value)?void 0:p.id)&&this.propertiesToSkipCache.has(r.parent.parent.value.id)?this.propertiesToSkipCache.get(r.parent.parent.value.id):new Set(["exp"]);const d=hr(r,e);return d.length>0&&d.some((e=>t.has(e.toString())))?r.value:cr(r.value,n,t)}return t}))}apply(e){e.hooks.resolver.tap("string-resolver",this.applyResolver.bind(this))}}class pr{applyResolver(e){e.hooks.beforeResolve.tap("applicability",((e,t)=>{let r=e;if((null==e?void 0:e.type)===vt.Applicability){if(!1===t.evaluate(e.expression))return null;r=e.value}return r}))}applyParser(e){e.hooks.determineNodeType.tap("applicability",(e=>{if(Object.prototype.hasOwnProperty.call(e,"applicability"))return vt.Applicability})),e.hooks.parseNode.tap("applicability",((t,r,n,o)=>{if(o===vt.Applicability){const o=e.parseObject(Object(f.omit)(t,"applicability"),r,n);if(null!==o){const r=e.createASTNode({type:vt.Applicability,expression:t.applicability,value:o},t);return(null==r?void 0:r.type)===vt.Applicability&&(r.value.parent=r),r}}}))}apply(e){e.hooks.resolver.tap("applicability",this.applyResolver.bind(this)),e.hooks.parser.tap("applicability",this.applyParser.bind(this))}}var dr=Object.getOwnPropertySymbols,gr=Object.prototype.hasOwnProperty,vr=Object.prototype.propertyIsEnumerable;class yr{constructor(e){this.options=e}resolveSwitch(e,t){for(const r of e.cases){if(t.evaluate(r.case))return r.value}return It}applyParser(e){e.hooks.onCreateASTNode.tap("switch",(e=>e&&e.type===vt.Switch&&!e.dynamic?this.resolveSwitch(e,this.options):e)),e.hooks.determineNodeType.tap("switch",(e=>{if(Object.prototype.hasOwnProperty.call(e,"dynamicSwitch")||Object.prototype.hasOwnProperty.call(e,"staticSwitch"))return vt.Switch})),e.hooks.parseNode.tap("switch",((t,r,n,o)=>{if(o===vt.Switch){const r="dynamicSwitch"in t,o="dynamicSwitch"in t?t.dynamicSwitch:t.staticSwitch,i=[];o.forEach((t=>{const r=t,{case:o}=r,s=((e,t)=>{var r={};for(var n in e)gr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&dr)for(var n of dr(e))t.indexOf(n)<0&&vr.call(e,n)&&(r[n]=e[n]);return r})(r,["case"]),a=e.parseObject(s,vt.Value,n);a&&i.push({case:o,value:a})}));const s=e.hooks.onCreateASTNode.call({type:vt.Switch,dynamic:r,cases:i},t);return(null==s?void 0:s.type)===vt.Switch&&s.cases.forEach((e=>{e.value.parent=s})),(null==s?void 0:s.type)===vt.Empty?null:null!=s?s:null}}))}applyResolver(e){e.hooks.beforeResolve.tap("switch",((e,t)=>e&&e.type===vt.Switch&&e.dynamic?this.resolveSwitch(e,t):e))}apply(e){e.hooks.parser.tap("switch",this.applyParser.bind(this)),e.hooks.resolver.tap("switch",this.applyResolver.bind(this))}}var mr=Object.defineProperty,wr=Object.defineProperties,br=Object.getOwnPropertyDescriptors,Er=Object.getOwnPropertySymbols,Sr=Object.prototype.hasOwnProperty,kr=Object.prototype.propertyIsEnumerable,xr=(e,t,r)=>t in e?mr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Or=(e,t)=>{for(var r in t||(t={}))Sr.call(t,r)&&xr(e,r,t[r]);if(Er)for(var r of Er(t))kr.call(t,r)&&xr(e,r,t[r]);return e};class Rr{constructor(e,t,r){this.allValidations=new Set,this.byBinding=new Map,this.logger=r,this.parse(e,t)}parse(e,t){var r;const n=e.validation;void 0!==n&&(Array.isArray(n)?n.forEach((e=>{var r;const n=Or({trigger:"navigation",severity:"error"},e);this.allValidations.add(n);const{ref:o}=e;if(o){const e=t(o);this.byBinding.has(e)?null==(r=this.byBinding.get(e))||r.push(n):this.byBinding.set(e,[n])}})):null==(r=this.logger)||r.warn(`Unable to register view validations for id: ${e.id}. 'validation' property must be an Array.`))}getValidationsForBinding(e){return this.byBinding.get(e)}}class Pr{constructor(e,t){this.hooks={onUpdate:new n.c,parser:new n.c,resolver:new n.c,templatePlugin:new n.c},this.initialView=e,this.resolverOptions=t;const r=Yt(t);new yr(r).apply(this),(new pr).apply(this),(new fr).apply(this),this.templatePlugin=new ir(r),this.templatePlugin.apply(this)}updateAsync(){var e;const t=null==(e=this.resolver)?void 0:e.update();this.lastUpdate=t,this.hooks.onUpdate.call(t)}update(e){var t,r,n;if(void 0===this.rootNode){this.validationProvider=new Rr(this.initialView,this.resolverOptions.parseBinding,this.resolverOptions.logger),this.hooks.templatePlugin.call(this.templatePlugin);const e=new Dt;this.hooks.parser.call(e),this.rootNode=e.parseView(this.initialView),this.resolver=new or(this.rootNode,(r=Or({},this.resolverOptions),n={parseNode:e.parseObject.bind(e)},wr(r,br(n)))),this.hooks.resolver.call(this.resolver)}const o=null==(t=this.resolver)?void 0:t.update(e);return this.lastUpdate===o?this.lastUpdate:(this.lastUpdate=o,this.hooks.onUpdate.call(o),o)}getValidationsForBinding(e){var t;return null==(t=this.validationProvider)?void 0:t.getValidationsForBinding(e)}}var Ar=Object.defineProperty,_r=Object.getOwnPropertySymbols,Tr=Object.prototype.hasOwnProperty,Cr=Object.prototype.propertyIsEnumerable,jr=(e,t,r)=>t in e?Ar(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Ur=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class Br{constructor(e,t,r){this.isTransitioning=!1,this.hooks={beforeStart:new n.b,onStart:new n.c,onEnd:new n.c,skipTransition:new n.b,beforeTransition:new n.d,resolveTransitionNode:new n.d,transition:new n.c,afterTransition:new n.c},this.id=e,this.flow=t,this.log=null==r?void 0:r.logger,this.history=[],this.hooks.transition.tap("startPromise",((e,t)=>Ur(this,null,(function*(){const e=t.value;this.flowPromise&&"END"===e.state_type&&this.flowPromise.resolve(e)}))))}start(){return Ur(this,null,(function*(){var e;if(this.flowPromise)return null==(e=this.log)||e.warn("Already called start for flow"),this.flowPromise.promise;this.flow=this.hooks.beforeStart.call(this.flow)||this.flow,this.flow.onStart&&this.hooks.onStart.call(this.flow.onStart);const t=this.flow.startState;return t?(this.flowPromise=g()(),this.pushHistory(t),this.flowPromise.promise):Promise.reject(new Error("No 'startState' defined for flow"))}))}transition(e,t){var r,n,o,i,s,a,l;if(this.isTransitioning)throw new Error(`Transitioning while ongoing transition from ${null==(r=this.currentState)?void 0:r.name} is in progress is not supported`);if("END"===(null==(n=this.currentState)?void 0:n.value.state_type))return void(null==(o=this.log)||o.warn(`Skipping transition using ${e}. Already at and END state`));if(void 0===this.currentState)throw new Error("Cannot transition when there's no current state");if(null==t?void 0:t.force)null==(i=this.log)||i.debug("Forced transition. Skipping validation checks");else{if(this.hooks.skipTransition.call(this.currentState))return void(null==(s=this.log)||s.debug(`Skipping transition from ${this.currentState.name} b/c hook told us to`))}const u=this.hooks.beforeTransition.call(this.currentState.value,e);if(!("transitions"in u))throw new Error(`No transitions defined for ${this.currentState.value}`);const{transitions:c}=u,h=c[e]||c["*"];if(void 0!==h)return null==(l=this.log)||l.debug(`Transitioning from ${this.currentState.name} to ${h} using ${e} `),this.pushHistory(h,t);null==(a=this.log)||a.warn(`No transition from ${this.currentState.name} using ${e} or *`)}pushHistory(e,t){var r;if(!Object.prototype.hasOwnProperty.call(this.flow,e))throw new Error(`No flow definition for: ${e} was found.`);let n=this.flow[e];if(!this.flow[e]||"object"!==typeof n||!("state_type"in n))return void(null==(r=this.log)||r.error(`Flow doesn't contain any states named: ${e}`));const o=this.currentState;this.isTransitioning=!0,n=this.hooks.resolveTransitionNode.call(n);const i={name:e,value:n};this.currentState=i,this.history.push(e),"END"===i.value.state_type&&this.flow.onEnd&&this.hooks.onEnd.call(this.flow.onEnd),this.hooks.transition.call(o,((e,t)=>{for(var r in t||(t={}))Tr.call(t,r)&&jr(e,r,t[r]);if(_r)for(var r of _r(t))Cr.call(t,r)&&jr(e,r,t[r]);return e})({},i)),this.isTransitioning=!1,this.hooks.afterTransition.call(this)}}var Lr=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));class Nr{constructor(e,t){this.hooks={flow:new n.c},this.navigation=e,this.navStack=[],this.log=null==t?void 0:t.logger,this.start=this.start.bind(this),this.run=this.run.bind(this),this.transition=this.transition.bind(this),this.addNewFlow=this.addNewFlow.bind(this)}transition(e,t){if(void 0===this.current)throw new Error("Not currently in a flow. Cannot transition.");this.current.transition(e,t)}addNewFlow(e){this.navStack.push(e),this.current=e,this.hooks.flow.call(e)}run(e){return Lr(this,null,(function*(){var t;if(!Object.prototype.hasOwnProperty.call(this.navigation,e))return Promise.reject(new Error(`No flow defined for: ${e}`));const r=this.navigation[e];if(null===r||"object"!==typeof r)return Promise.reject(new Error(`Flow: ${e} needs to be an object`));null==(t=this.log)||t.debug(`Starting flow: ${e}`);const n=new Br(e,r,{logger:this.log});this.addNewFlow(n),n.hooks.afterTransition.tap("flow-controller",(e=>{var t,r,n;if("FLOW"===(null==(t=e.currentState)?void 0:t.value.state_type)){const t=null==(r=e.currentState)?void 0:r.value.ref;null==(n=this.log)||n.debug(`Loading subflow ${t}`),this.run(t).then((t=>{var r;null==(r=this.log)||r.debug(`Subflow ended. Using outcome: ${t.outcome}`),e.transition(null==t?void 0:t.outcome)}))}}));const o=yield n.start();if(this.navStack.pop(),this.navStack.length>0){const e=0;this.current=this.navStack[e]}return o}))}start(){return Lr(this,null,(function*(){return this.navigation.BEGIN?this.run(this.navigation.BEGIN):Promise.reject(new Error("Must supply a BEGIN state"))}))}}const Ir=/%([a-zA-Z]+)/g;var Dr=Object.defineProperty,Mr=Object.defineProperties,Vr=Object.getOwnPropertyDescriptors,Fr=Object.getOwnPropertySymbols,$r=Object.prototype.hasOwnProperty,Hr=Object.prototype.propertyIsEnumerable,zr=(e,t,r)=>t in e?Dr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Wr=(e,t)=>{for(var r in t||(t={}))$r.call(t,r)&&zr(e,r,t[r]);if(Fr)for(var r of Fr(t))Hr.call(t,r)&&zr(e,r,t[r]);return e},qr=(e,t)=>Mr(e,Vr(t));const Yr="validation-binding-tracker";class Kr{constructor(e){this.trackedBindings=new Set,this.options=e}getBindings(){return this.trackedBindings}trackBinding(e){var t,r;this.trackedBindings.has(e)||(this.trackedBindings.add(e),null==(r=null==(t=this.options.callbacks)?void 0:t.onAdd)||r.call(t,e))}applyResolver(e){this.trackedBindings.clear();const t=new Map,r=new Map;let n;const o=new Map;let i=new Map,s=new Map;const a=new Map;e.hooks.beforeUpdate.tap(Yr,(e=>{n=e})),e.hooks.skipResolve.tap(Yr,((e,t)=>{const r=i.get(t);if(!e||!n||!r)return e;return 0===new Set([...n].filter((e=>r.has(e)))).size})),e.hooks.resolveOptions.tap(Yr,((e,n)=>{if(void 0===e.validation)return e;t.delete(n);const o=e=>{var o,i,s,a;const l=V(e)?e:this.options.parseBinding(e);t.has(n)?null==(o=t.get(n))||o.add(l):t.set(n,new Set([l]));let{parent:u}=n;for(;u;){if(r.has(u)){null==(i=r.get(u))||i.add(n);break}u=u.parent}this.trackedBindings.add(l),null==(a=null==(s=this.options.callbacks)?void 0:s.onAdd)||a.call(s,l)};return qr(Wr({},e),{validation:qr(Wr({},e.validation),{get:(t,r)=>{var n,i;(null==r?void 0:r.track)&&o(t);const s=null==(i=null==(n=e.validation)?void 0:n._getValidationForBinding(t))?void 0:i.getAll(r);return null==s?void 0:s.find((e=>"field"===e.displayTarget||void 0===e.displayTarget))},getValidationsForBinding(t,r){var n,i,s;return(null==r?void 0:r.track)&&o(t),null!=(s=null==(i=null==(n=e.validation)?void 0:n._getValidationForBinding(t))?void 0:i.getAll(r))?s:[]},getChildren:t=>{var r;const o=new Array;return null==(r=i.get(n))||r.forEach((r=>{var n,i;const s=null==(i=null==(n=e.validation)?void 0:n._getValidationForBinding(r))?void 0:i.get();!s||void 0!==t&&t!==s.displayTarget||o.push(s)})),o},getValidationsForSection:()=>{var t;const r=new Array;return null==(t=a.get(n))||t.forEach((t=>{var n,o;const i=null==(o=null==(n=e.validation)?void 0:n._getValidationForBinding(t))?void 0:o.get();i&&"section"===i.displayTarget&&r.push(i)})),r},register:e=>{"section"===(null==e?void 0:e.type)&&(r.has(n)||r.set(n,new Set))},track:o})})})),e.hooks.afterNodeUpdate.tap(Yr,((n,l,u)=>{var c,h;if(l&&function(e,t){var r;o.has(t)?null==(r=o.get(t))||r.add(e):o.set(t,new Set([e]))}(n,l),u.updated){const e=new Set(t.get(n));null==(c=o.get(n))||c.forEach((t=>{var r;null==(r=s.get(t))||r.forEach((t=>e.add(t)))})),s.set(n,e)}else s.set(n,null!=(h=i.get(n))?h:new Set);n===e.root&&(this.trackedBindings=new Set(s.get(n)),i=s,a.clear(),r.forEach(((e,r)=>{const n=new Set;e.forEach((e=>{var r;null==(r=t.get(e))||r.forEach(n.add,n)})),a.set(r,n)})),o.clear(),t.clear(),r.clear(),s=new Map)}))}apply(e){e.hooks.resolver.tap(Yr,this.applyResolver.bind(this))}}var Zr=Object.defineProperty,Gr=Object.defineProperties,Jr=Object.getOwnPropertyDescriptors,Qr=Object.getOwnPropertySymbols,Xr=Object.prototype.hasOwnProperty,en=Object.prototype.propertyIsEnumerable,tn=(e,t,r)=>t in e?Zr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,rn=(e,t)=>{for(var r in t||(t={}))Xr.call(t,r)&&tn(e,r,t[r]);if(Qr)for(var r of Qr(t))en.call(t,r)&&tn(e,r,t[r]);return e},nn=(e,t)=>Gr(e,Jr(t));const on=Symbol.for("validation-provider-name");class sn{constructor(e,t,r,n){this.applicableValidations=[],this.validationsByState={load:[],change:[],navigation:[]},this.onDismiss=t,e.forEach((e=>{const{trigger:t}=e;if(this.validationsByState[t]){const r={value:n=e,type:n.severity,state:"none",isBlockingNavigation:!1};this.validationsByState[t].push(r)}else null==r||r.warn(`Unknown validation trigger: ${t}`);var n})),this.weakBindings=null!=n?n:new Set}get allValidations(){return Object.values(this.validationsByState).flat()}checkIfBlocking(e){if("active"===e.state){const{isBlockingNavigation:t}=e;return t}return!1}getAll(){return this.applicableValidations.reduce(((e,t)=>("active"===t.state&&t.response&&e.push(nn(rn({},t.response),{blocking:this.checkIfBlocking(t)})),e)),[])}get(){const e=this.applicableValidations.find((e=>"active"===e.state&&e.response));if("active"===(null==e?void 0:e.state))return nn(rn({},e.response),{blocking:this.checkIfBlocking(e)})}runApplicableValidations(e,t,r){this.applicableValidations=this.applicableValidations.map((n=>{var o,i,s;if("dismissed"===n.state)return n;const a=null!=(o=n.value.blocking)?o:"warning"!==n.value.severity||"once",l=Object(f.setIn)(n,["value","blocking"],a),u=!0===a||"once"===a&&!t;if("navigation"===r&&"active"===l.state&&!0!==l.value.blocking&&"warning"===l.value.severity){const e=l;return!e.dismissable||!e.response.dismiss||"once"===e.response.blocking&&e.response.blocking?("once"===(null==e?void 0:e.response.blocking)&&(e.response.blocking=!1),e.dismissable=!0):e.response.dismiss(),e}const c=e(l.value),h={type:l.type,value:l.value,state:c?"active":"none",isBlockingNavigation:u,dismissable:"warning"===l.value.severity&&"navigation"===r,response:c?nn(rn({},l.value),{message:null!=(i=c.message)?i:"Something is broken",severity:l.value.severity,displayTarget:null!=(s=l.value.displayTarget)?s:"field"}):void 0};return"active"===h.state&&"warning"===l.value.severity&&(h.response.dismiss=()=>{var e;h.state="dismissed",null==(e=this.onDismiss)||e.call(this)}),h}))}update(e,t,r){const n=[];"load"===e&&void 0!==this.currentPhase||("navigation"!==this.currentPhase&&e!==this.currentPhase?("load"===e?(this.currentPhase="load",this.applicableValidations=[...this.validationsByState.load]):"change"===e&&"load"===this.currentPhase?(this.currentPhase="change",this.applicableValidations=[...this.applicableValidations,...this.validationsByState.change]):"navigation"!==e||"load"!==this.currentPhase&&"change"!==this.currentPhase||(this.applicableValidations.forEach((e=>{"error"===e.type&&"active"===e.state&&!1===e.isBlockingNavigation||n.push(e)})),this.applicableValidations=[...n,...this.validationsByState.navigation,..."load"===this.currentPhase?this.validationsByState.change:[]],this.currentPhase="navigation"),this.runApplicableValidations(r,t,e)):this.runApplicableValidations(r,t,e))}}class an{constructor(e,t){this.hooks={createValidatorRegistry:new n.c,onAddValidation:new n.d,onRemoveValidation:new n.d,resolveValidationProviders:new n.d,onTrackBinding:new n.c},this.validations=new Map,this.weakBindingTracker=new Set,this.schema=e,this.options=t,this.reset()}setOptions(e){this.options=e}getDataMiddleware(){return[{set:(e,t,r)=>{var n;return null!=(n=null==r?void 0:r.set(e,t))?n:[]},get:(e,t,r)=>null==r?void 0:r.get(e,t),delete:(e,t,r)=>(this.validations=gt(this.validations,e),null==r?void 0:r.delete(e,t))},new Ot((e=>{var t;if(!this.options)return;this.updateValidationsForBinding(e,"change",this.options);const r=this.getValidationForBinding(e);if("error"===(null==(t=null==r?void 0:r.get())?void 0:t.severity))return r.get();const n=new Set;return this.validations.forEach(((t,r)=>{var o;qt(new Set([e]),t.weakBindings)&&"error"===(null==(o=null==t?void 0:t.get())?void 0:o.severity)&&(null==t||t.weakBindings.forEach((e=>{e===r?n.add({binding:e,isStrong:!0}):n.add({binding:e,isStrong:!1})})))})),n.size>0?n:void 0}),{logger:new Qe((()=>{var e;return null==(e=this.options)?void 0:e.logger}))})]}getValidationProviders(){return this.providers||(this.providers=this.hooks.resolveValidationProviders.call([{source:"schema",provider:this.schema},{source:"view",provider:{getValidationsForBinding:e=>{var t,r;return null==(r=null==(t=this.viewValidationProvider)?void 0:t.getValidationsForBinding)?void 0:r.call(t,e)},getValidationsForView:()=>{var e,t;return null==(t=null==(e=this.viewValidationProvider)?void 0:e.getValidationsForView)?void 0:t.call(e)}}}])),this.providers}reset(){this.validations.clear(),this.tracker=void 0}onView(e){if(this.validations.clear(),!this.options)return;const t=new Kr(nn(rn({},this.options),{callbacks:{onAdd:t=>{if(!this.options||void 0!==this.getValidationForBinding(t))return;const r=this.options.model.get(t);r!==this.options.model.get(t,{ignoreDefaultValue:!0})&&this.options.model.set([[t,r]],{silent:!0}),this.updateValidationsForBinding(t,"load",this.options,(()=>{e.update(new Set([t]))})),this.hooks.onTrackBinding.call(t)}}}));this.tracker=t,this.viewValidationProvider=e,t.apply(e)}updateValidationsForBinding(e,t,r,n){var o;const i=null!=r?r:this.options;if(!i)throw new Error("Context is required for executing validations");if("load"===t){const t=this.getValidationProviders().reduce(((t,r)=>{var n,o,i,s;return t.push(...null!=(s=null==(i=null==(o=(n=r.provider).getValidationsForBinding)?void 0:o.call(n,e))?void 0:i.map((e=>nn(rn({},e),{[on]:r.source}))))?s:[]),t}),[]);if(0===t.length)return;this.validations.set(e,new sn(t,n,null==(o=this.options)?void 0:o.logger))}const s=this.validations.get(e);null==s||s.update(t,!0,(t=>{const r=this.validationRunner(t,e,i);if(this.weakBindingTracker.size>0){const t=this.validations.get(e);this.weakBindingTracker.forEach((e=>t.weakBindings.add(e)))}return r?{message:r.message}:void 0})),"load"!==t&&this.validations.forEach(((r,n)=>{n!==e&&qt(new Set([e]),r.weakBindings)&&r.update(t,!0,(e=>{const t=this.validationRunner(e,n,i);return t?{message:t.message}:void 0}))}))}validationRunner(e,t,r=this.options){var n;if(!r)throw new Error("No context provided to validation runner");const o=null!=(n=e.handler)?n:this.getValidator(e.type),i=new Set,s={get:(e,n)=>(i.add(V(e)?t:r.parseBinding(e)),r.model.get(e,nn(rn({},n),{includeInvalid:!0}))),set:r.model.set,delete:r.model.delete},a=null==o?void 0:o(nn(rn({},r),{evaluate:(e,t={model:s})=>r.evaluate(e,t),model:s,validation:e,schemaType:this.schema.getType(t)}),r.model.get(t,{includeInvalid:!0,formatted:"formatted"===e.dataTarget}),e);if(this.weakBindingTracker=i,a){let{message:t}=a;const{parameters:n}=a;return e.message&&(t=dt(e.message,{model:s,evaluate:r.evaluate}),n&&(t=function(e,t){return e.slice().replace(Ir,(e=>t[e.slice(1)]||e))}(t,n))),{message:t}}}updateValidationsForView(e){const t="navigation"===e,r=this.activeBindings,n=t=>{this.getBindings().forEach((r=>{var n;null==(n=this.validations.get(r))||n.update(e,t,(e=>{if(this.options)return this.validationRunner(e,r,this.options)}))}))};if(n(!t),t){const{activeBindings:e}=this;(function(e,t){if(e.size>t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0})(e,r)&&n(!0)}}get activeBindings(){return new Set(Array.from(this.getBindings()).filter((e=>{var t;return void 0!==(null==(t=this.validations.get(e))?void 0:t.get())})))}getValidator(e){if(this.validatorRegistry)return this.validatorRegistry.get(e);const t=new Rt;return this.hooks.createValidatorRegistry.call(t),this.validatorRegistry=t,t.get(e)}getBindings(){var e,t;return null!=(t=null==(e=this.tracker)?void 0:e.getBindings())?t:new Set}trackBinding(e){var t;null==(t=this.tracker)||t.trackBinding(e)}validateView(e="navigation"){this.updateValidationsForView(e);const t=new Map;let r=!0;return this.getBindings().forEach((n=>{var o;const i=null==(o=this.getValidationForBinding(n))?void 0:o.getAll();null==i||i.forEach((o=>{var i;"navigation"===e&&o.blocking&&(null==(i=this.options)||i.logger.debug(`Validation on binding: ${n.asString()} is preventing navigation. ${JSON.stringify(o)}`),r=!1),t.has(n)||t.set(n,o)}))})),{canTransition:r,validations:t.size?t:void 0}}getValidationForBinding(e){return this.validations.get(e)}forView(e){return{_getValidationForBinding:t=>this.getValidationForBinding(V(t)?t:e(t)),getAll:()=>{const e=this.getBindings();if(0===e.size)return;const t=new Map;return e.forEach((e=>{var r;const n=null==(r=this.getValidationForBinding(e))?void 0:r.get();n&&t.set(e,n)})),0===t.size?void 0:t},get(){throw new Error("Error Access be provided by the view plugin")},getValidationsForBinding(){throw new Error("Error rollup should be provided by the view plugin")},getChildren(){throw new Error("Error rollup should be provided by the view plugin")},getValidationsForSection(){throw new Error("Error rollup should be provided by the view plugin")},track:()=>{throw new Error("Tracking should be provided by the view plugin")},register:()=>{throw new Error("Section functionality should be provided by the view plugin")},type:t=>this.schema.getType(V(t)?t:e(t))}}}class ln{constructor(e){this.updateCallback=e,this.state=new Map}removeKey(e){this.state.delete(e)}reset(){this.state.clear()}useSharedState(e){return t=>(this.state.has(e)||this.state.set(e,t),[this.state.get(e),t=>{var r;const n=this.state.get(e);this.state.set(e,t),n!==t&&(null==(r=this.updateCallback)||r.call(this))}])}getLocalStateFunction(e,t){return r=>{this.state.has(e)||this.state.set(e,[]),this.state.has(t)||this.state.set(t,0);const n=this.state.get(e),o=this.state.get(t);this.state.set(t,o+1),n.length<=o&&n.push(r);return[n[o],e=>{var t;const r=n[o];n[o]=e,r!==e&&(null==(t=this.updateCallback)||t.call(this))}]}}}function un(e,t){return e===t||!!e.parent&&un(e.parent,t)}class cn{constructor(e){this.registry=e,this.stateStore=new Map,this.beforeResolveSymbol=Symbol("before resolve"),this.resolveSymbol=Symbol("resolve"),this.beforeResolveCountSymbol=Symbol("before resolve count"),this.resolveCountSymbol=Symbol("resolve count")}apply(e){e.hooks.view.tap("asset-transform",(e=>{this.stateStore.clear(),e.hooks.resolver.tap("asset-transform",(t=>{let r;const n=(t,n)=>{let o;const i=n===this.resolveSymbol?this.resolveCountSymbol:this.beforeResolveCountSymbol,s=this.stateStore.get(t);return s?(o=s,o.removeKey(i)):(o=new ln((()=>{(t=>{r=t,e.update(new Set)})(t)})),this.stateStore.set(t,o)),{useSharedState:e=>o.useSharedState(e),useLocalState:e=>o.getLocalStateFunction(n,i)(e)}};t.hooks.beforeResolve.tap("asset-transform",((e,t)=>{var r;if(e&&("asset"===e.type||"view"===e.type)){const o=this.registry.get(e.value);if(null==o?void 0:o.beforeResolve){const i=n(null!=(r=t.node)?r:e,this.beforeResolveSymbol);return o.beforeResolve(e,t,i)}}return e})),t.hooks.afterUpdate.tap("asset-transform",(()=>{r=void 0})),t.hooks.skipResolve.tap("asset-transform",((e,t)=>{if(!e||!r)return e;const n=un(r,t),o=un(t,r);return!n&&!o})),t.hooks.afterResolve.tap("asset-transform",((e,r,o)=>{if(r.type!==vt.Asset&&r.type!==vt.View)return e;const i=t.getSourceNode(r);if(!i)return e;const s=this.registry.get(e);if(null==s?void 0:s.resolve){const t=n(i,this.resolveSymbol);return null==s?void 0:s.resolve(e,o,t)}return e}))}))}))}}class hn{constructor(e,t){this.hooks={resolveView:new n.d,view:new n.c},this.transformRegistry=new m.a,this.optimizeUpdates=!0,this.viewOptions=t,this.viewMap=e.reduce(((e,t)=>(e[t.id]=t,e)),{}),new cn(this.transformRegistry).apply(this),t.flowController.hooks.flow.tap("viewController",(e=>{e.hooks.transition.tap("viewController",((e,t)=>{"VIEW"===t.value.state_type?this.onView(t.value):this.currentView=void 0}))}));const r=(e,t=!1)=>{this.currentView&&(this.optimizeUpdates?this.queueUpdate(e,t):this.currentView.update())};t.model.hooks.onUpdate.tap("viewController",((e,t)=>{var n;r(new Set(e.map((e=>e.binding))),null!=(n=null==t?void 0:t.silent)&&n)})),t.model.hooks.onDelete.tap("viewController",(e=>{const t=e.parent(),n=e.key();r("number"===typeof n&&t?new Set([t]):new Set([e]))}))}queueUpdate(e,t=!1){var r;(null==(r=this.pendingUpdate)?void 0:r.changedBindings)?this.pendingUpdate.changedBindings=new Set([...this.pendingUpdate.changedBindings,...e]):this.pendingUpdate={changedBindings:e,scheduled:!1},this.pendingUpdate.scheduled||t||(this.pendingUpdate.scheduled=!0,y()((()=>{var e,t;const r=null==(e=this.pendingUpdate)?void 0:e.changedBindings;this.pendingUpdate=void 0,null==(t=this.currentView)||t.update(r)})))}getViewForRef(e){if(this.viewMap[e])return this.viewMap[e];const t=Object.keys(this.viewMap).find((t=>e===ft(t,{model:this.viewOptions.model,evaluate:this.viewOptions.evaluator.evaluate})));return t&&this.viewMap[t]?this.viewMap[t]:void 0}onView(e){const t=e.ref,r=this.hooks.resolveView.call(this.getViewForRef(t),t,e);if(!r)throw new Error(`No view with id ${t}`);const n=new Pr(r,this.viewOptions);this.currentView=n,this.hooks.view.call(n),n.update()}}class fn{constructor(e,t){this.controller=e,this.logger=t}get(e,t){return this.controller.get(e,t)}set(e,t){var r;return null==(r=this.logger)||r.error("Error: Tried to set in a read only instance of the DataController"),[]}delete(e,t){var r;null==(r=this.logger)||r.error("Error: Tried to delete in a read only instance of the DataController")}}class pn{constructor(e,t){this.hooks={resolve:new n.d,resolveDataStages:new n.d,resolveDefaultValue:new n.b,onDelete:new n.c,onSet:new n.c,onGet:new n.c,onUpdate:new n.c,format:new n.d,deformat:new n.d,serialize:new n.d},this.logger=t.logger;const r=t.middleware||[];this.baseMiddleware=[new fe(e),...r],this.trash=new Set,this.pathResolver=t.pathResolver}getModel(){if(!this.model){const e=this.hooks.resolveDataStages.call(this.baseMiddleware),t=new he;t.setMiddleware(e),this.model=t}return this.model}resolveDataValue(e,t,r){return r?this.hooks.deformat.call(t,e):t}set(e,t){let r=[];r=Array.isArray(e)?e.map((([e,r])=>{const n=this.pathResolver.parse(e);return[n,this.resolveDataValue(n,r,Boolean(null==t?void 0:t.formatted))]})):Object.keys(e).map((r=>{const n=this.pathResolver.parse(r),o=e[r];return[n,this.resolveDataValue(n,o,Boolean(null==t?void 0:t.formatted))]}));const n=r.reduce(((e,[t,r])=>{var n,o;const i=this.get(t,{includeInvalid:!0}),s={binding:t,newValue:r,oldValue:i};return Object(p.a)(i,r)?null==(n=this.logger)||n.debug(`Skipping update for path: ${t.asString()}. Value was unchanged: ${i}`):(e.push(s),null==(o=this.logger)||o.debug(`Setting path: ${t.asString()} from: ${i} to: ${r}`)),e}),[]),o=this.getModel().set(r,t),i=new Set(n.map((e=>e.binding)));return o.forEach((e=>{var t;i.has(e.binding)||!0!==e.force&&Object(p.a)(e.oldValue,e.newValue)||(null==(t=this.logger)||t.debug(`Path: ${e.binding.asString()} was changed from: ${e.oldValue} to: ${e.newValue}`),n.push(e))})),this.hooks.onSet.call(r),n.length>0&&this.hooks.onUpdate.call(n,t),o}resolve(e,t){return Array.isArray(e)||"string"===typeof e?this.pathResolver.parse(e,{readOnly:t}):e}get(e,t){const r=e instanceof F?e:this.resolve(e,!0);let n=this.getModel().get(r,t);if(void 0===n&&!(null==t?void 0:t.ignoreDefaultValue)){const e=this.hooks.resolveDefaultValue.call(r);e!==n&&(n=e)}return(null==t?void 0:t.formatted)?n=this.hooks.format.call(n,r):!1===(null==t?void 0:t.formatted)&&(n=this.hooks.deformat.call(n,r)),this.hooks.onGet.call(e,n),n}delete(e,t){if("string"!==typeof e&&!Array.isArray(e)&&!(e instanceof F))throw new Error("Invalid arguments: delete expects a data path (string)");const r=e instanceof F?e:this.resolve(e,!1),n=r.parent(),o=r.key(),i=this.get(n),s="object"===typeof i&&null!==i&&Object.prototype.hasOwnProperty.call(i,o);this.getModel().delete(r,t),s&&!this.get(r)&&this.trash.add(r),this.hooks.onDelete.call(r)}serialize(){return this.hooks.serialize.call(this.get(""))}makeReadOnly(){return new fn(this,this.logger)}}var dn=Object.defineProperty,gn=Object.getOwnPropertySymbols,vn=Object.prototype.hasOwnProperty,yn=Object.prototype.propertyIsEnumerable,mn=(e,t,r)=>t in e?dn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,wn=(e,t)=>{for(var r in t||(t={}))vn.call(t,r)&&mn(e,r,t[r]);if(gn)for(var r of gn(t))yn.call(t,r)&&mn(e,r,t[r]);return e};function bn(e,t=[],r="."){return Object.keys(e).reduce(((n,o)=>wn(wn({},n),"[object Object]"===Object.prototype.toString.call(e[o])?bn(e[o],t.concat([o])):{[t.concat([o]).join(r)]:e[o]})),{})}function En(e){const t=bn(e),r=[];return Object.keys(t).forEach((e=>{r.push([new F(e),t[e]])})),r}class Sn{constructor(){this.store=new Map,this.tempStore=new Map}addConstants(e,t){var r;this.store.has(t)?null==(r=this.store.get(t))||r.set(En(e)):this.store.set(t,new fe(e))}getConstants(e,t,r){var n,o,i,s;const a=new F(e);return null!=(s=null!=(i=null==(n=this.tempStore.get(t))?void 0:n.get(a))?i:null==(o=this.store.get(t))?void 0:o.get(a))?s:r}setTemporaryValues(e,t){var r;this.tempStore.has(t)?null==(r=this.tempStore.get(t))||r.set(En(e)):this.tempStore.set(t,new fe(e))}clearTemporaryValues(e){var t;e?null==(t=this.tempStore.get(e))||t.reset():this.tempStore.forEach((e=>{e.reset()}))}}class kn{constructor(){this.name="flow-exp-plugin"}apply(e){let t;const r=e=>{e&&("object"===typeof e&&"exp"in e?null==t||t.evaluate(e.exp):null==t||t.evaluate(e))};e.hooks.expressionEvaluator.tap(this.name,(e=>{t=e})),e.hooks.flowController.tap(this.name,(e=>{e.hooks.flow.tap(this.name,(e=>{e.hooks.onStart.tap(this.name,(e=>r(e))),e.hooks.onEnd.tap(this.name,(e=>r(e))),e.hooks.resolveTransitionNode.intercept({call:e=>{(null==e?void 0:e.onStart)&&r(e.onStart)}})}))}))}}class xn{constructor(){this.name="flow-exp-plugin"}apply(e){let t;e.hooks.schema.tap(this.name,(e=>{var r;r=e,t=(e,t,n)=>{var o,i;return null!=(i=null==(o=r.getFormatterForType({type:n}))?void 0:o.format(t))?i:t}})),e.hooks.expressionEvaluator.tap(this.name,(r=>{t&&r.addExpressionFunction("format",t),r.addExpressionFunction("log",((t,...r)=>{e.logger.info(...r)})),r.addExpressionFunction("debug",((t,...r)=>{e.logger.debug(...r)})),r.addExpressionFunction("eval",((e,...t)=>e.evaluate(...t)))}))}}const On={ref:Symbol("not-started"),status:"not-started"};var Rn=Object.defineProperty,Pn=Object.defineProperties,An=Object.getOwnPropertyDescriptors,_n=Object.getOwnPropertySymbols,Tn=Object.prototype.hasOwnProperty,Cn=Object.prototype.propertyIsEnumerable,jn=(e,t,r)=>t in e?Rn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Un=(e,t)=>{for(var r in t||(t={}))Tn.call(t,r)&&jn(e,r,t[r]);if(_n)for(var r of _n(t))Cn.call(t,r)&&jn(e,r,t[r]);return e};const Bn=class{constructor(e){var t;this.logger=new Je,this.constantsController=new Sn,this.state=On,this.hooks={flowController:new n.c,viewController:new n.c,view:new n.c,expressionEvaluator:new n.c,dataController:new n.c,schema:new n.c,validationController:new n.c,bindingParser:new n.c,state:new n.c,onStart:new n.c,onEnd:new n.c,resolveFlowContent:new n.d},(null==e?void 0:e.logger)&&this.logger.addHandler(e.logger),this.config=e||{},this.config.plugins=[new xn,...this.config.plugins||[],new kn],null==(t=this.config.plugins)||t.forEach((e=>{e.apply(this)}))}getPlugins(){var e;return null!=(e=this.config.plugins)?e:[]}findPlugin(e){var t;return null==(t=this.config.plugins)?void 0:t.find((t=>t.symbol===e))}applyTo(e,t){const r=this.findPlugin(e);r&&t(r)}registerPlugin(e){var t;e.apply(this),null==(t=this.config.plugins)||t.push(e)}getVersion(){return Bn.info.version}getCommit(){return Bn.info.commit}getState(){return this.state}setState(e){this.state=e,this.hooks.state.call(e)}setupFlow(e){const t=this.hooks.resolveFlowContent.call(e),r=new Nr(t.navigation,{logger:this.logger});let n,o;this.hooks.onStart.call(t),this.hooks.flowController.call(r);const i=new oe({get:e=>o.get(e),set:e=>o.set(e),evaluate:e=>n.evaluate(e)});this.hooks.bindingParser.call(i);const s=i.parse,a=g()(),l=new lt(t.schema);this.hooks.schema.call(l);const u=new an(l);let c;function h(e,t){return dt(e,{model:o,evaluate:n.evaluate,formatted:t})}var p,d;return this.hooks.validationController.call(u),o=new pn(t.data,{pathResolver:i,middleware:u.getDataMiddleware(),logger:this.logger}),o.hooks.format.tap("player",((e,t)=>{const r=l.getFormatter(t);return r?r.format(e):e})),o.hooks.deformat.tap("player",((e,t)=>{const r=l.getFormatter(t);return r?r.deformat(e):e})),o.hooks.resolveDefaultValue.tap("player",(e=>{var t;return null==(t=l.getApparentType(e))?void 0:t.default})),n=new Ge({model:o,logger:this.logger}),this.hooks.expressionEvaluator.call(n),n.hooks.onError.tap("player",(e=>(a.reject(e),!0))),r.hooks.flow.tap("player",(e=>{e.hooks.beforeTransition.tap("player",((e,t)=>{const r=e.transitions[t]?t:"*";return e.onEnd&&e.transitions[r]&&("object"===typeof e.onEnd&&"exp"in e.onEnd?null==n||n.evaluate(e.onEnd.exp):null==n||n.evaluate(e.onEnd)),"transitions"in e&&e.transitions[r]?Object(f.setIn)(e,["transitions",r],h(e.transitions[r])):e})),e.hooks.skipTransition.tap("validation",(e=>{var t;if("VIEW"===(null==e?void 0:e.value.state_type)){const{canTransition:e,validations:r}=u.validateView("navigation");if(!e&&r){const e=new Set(r.keys());return null==(t=null==c?void 0:c.currentView)||t.update(e),!0}}})),e.hooks.resolveTransitionNode.tap("player",(e=>{let t=e;return"ref"in e&&(t=Object(f.setIn)(e,["ref"],h(e.ref))),"param"in e&&(t=Object(f.setIn)(e,["param"],h(e.param,!1))),t})),e.hooks.transition.tap("player",((e,t)=>{"VIEW"!==t.value.state_type&&u.reset()})),e.hooks.afterTransition.tap("player",(e=>{var t;const o=null==(t=e.currentState)?void 0:t.value;if(o&&"ACTION"===o.state_type){const{exp:e}=o;null==r||r.transition(String(null==n?void 0:n.evaluate(e)))}n.reset()}))})),this.hooks.dataController.call(o),u.setOptions({parseBinding:s,model:o,logger:this.logger,evaluate:n.evaluate,constants:this.constantsController}),c=new hn(t.views||[],{evaluator:n,parseBinding:s,transition:r.transition,model:o,utils:{findPlugin:e=>this.findPlugin(e)},logger:this.logger,flowController:r,schema:l,format:(e,t)=>{const r=l.getFormatter(e);return(null==r?void 0:r.format)?r.format(t):t},formatValue:(e,t)=>{const r=l.getFormatterForType(e);return(null==r?void 0:r.format)?r.format(t):t},validation:(p=Un({},u.forView(s)),d={type:e=>l.getType(s(e))},Pn(p,An(d))),constants:this.constantsController}),c.hooks.view.tap("player",(e=>{u.onView(e),this.hooks.view.call(e)})),this.hooks.viewController.call(c),{start:()=>{r.start().then((e=>({endState:h(e,!1),data:o.serialize()}))).then(a.resolve).catch((e=>{throw this.logger.error(`Something went wrong: ${e.message}`),e})).catch(a.reject).finally((()=>this.hooks.onEnd.call()))},state:{status:"in-progress",flowResult:a.promise,controllers:{data:o,view:c,flow:r,schema:l,expression:n,binding:i,validation:u},fail:a.reject,flow:t,logger:this.logger}}}start(e){return t=this,r=null,n=function*(){var t;const r=Symbol(null!=(t=null==e?void 0:e.id)?t:"payload"),n=e=>this.state.ref!==r?(this.logger.warn("Received update for a flow that's not the current one"),e):(this.setState(e),e);this.setState({status:"not-started",ref:r});try{const{state:t,start:o}=this.setupFlow(e);this.setState(Un({ref:r},t)),o();const i={ref:r,status:"completed",flow:t.flow,controllers:{data:t.controllers.data.makeReadOnly()}};return n(Un(Un({},yield t.flowResult),i))}catch(o){throw n({status:"error",ref:r,flow:e,error:o}),o}},new Promise(((e,o)=>{var i=e=>{try{a(n.next(e))}catch(t){o(t)}},s=e=>{try{a(n.throw(e))}catch(t){o(t)}},a=t=>t.done?e(t.value):Promise.resolve(t.value).then(i,s);a((n=n.apply(t,r)).next())}));var t,r,n}};Bn.info={version:"0.7.4-next.3",commit:"947d3bb0b3acb587041fa72b0990bab2ec1be633"}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(5);Object.defineProperty(t,"Parser",{enumerable:!0,get:function(){return n.Parser}});var o=r(7);Object.defineProperty(t,"TokenError",{enumerable:!0,get:function(){return o.TokenError}}),t.Grammars=r(21)},function(e,t,r){(function(t){let r;e.exports="function"===typeof queueMicrotask?queueMicrotask.bind("undefined"!==typeof window?window:t):e=>(r||(r=Promise.resolve())).then(e).catch((e=>setTimeout((()=>{throw e}),0)))}).call(this,r(10))},function(e,t,r){"use strict";r.d(t,"a",(function(){return c}));var n=r(15),o=r.n(n),i=r(4),s=r.n(i);function a(e,t=[],r=new Map){for(const n of Object.keys(e)){const o=e[n],i=[...t,n];"object"===typeof o?a(o,i,r):r.set(i,o)}return r}function l(e){const t=a(e),r=e=>{for(const r of t){const[t,n]=r;if(s()(e,t)!==n)return!1}return!0};return r.count=t.size,r}const u=()=>new o.a([],(e=>e.matcher.count));class c{constructor(e){this.store=u(),null==e||e.forEach((([e,t])=>{this.set(e,t)}))}set(e,t){const r="object"===typeof e?l(e):function(e){const t=t=>e===t;return t.count=1,t}(e);this.store.insert({key:e,value:t,matcher:r})}get(e){for(const t of this.store.array)if(t.matcher(e))return t.value}forEach(e){for(const t of this.store.array)e(t)}clear(){this.store=u()}}},function(e,t,r){var n,o=function(){var e=function(e){var t=e.constructor;return t.prototype=e,t}({constructor:function(e,r){this.array=[],this.compare=r||t;for(var n=e.length,o=0;o<n;)this.insert(e[o++])},insert:function(e){for(var t,r,n=this.array,o=this.compare,i=n.length-1,s=0,a=-1;i>=s;)if((r=o(n[t=(i+s)/2>>>0],e))<0)s=t+1;else{if(!(r>0)){a=t;break}i=t-1}for(-1===a&&(a=i),a++,i=n.length-1;a<i&&0===o(e,n[a]);)a++;for(t=n.length,n.push(e);t>a;)n[t]=n[--t];return n[a]=e,this},search:function(e){for(var t,r,n=this.array,o=this.compare,i=n.length-1,s=0;i>=s;)if((r=o(n[t=(i+s)/2>>>0],e))<0)s=t+1;else{if(!(r>0))return t;i=t-1}return-1},remove:function(e){var t=this.search(e);return t>=0&&this.array.splice(t,1),this}});return e.comparing=function(r,n){return new e(n,(function(e,n){return t(e[r],n[r])}))},e;function t(e,t){return e<t?-1:e>t?1:0}}();e.exports=o,void 0===(n=function(){return o}.call(t,r,t,e))||(e.exports=n)},,function(e,t,r){"use strict";(function(e){var n=r(18),o=r(19),i=r(20);function s(){return l.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(e,t){if(s()<t)throw new RangeError("Invalid typed array length");return l.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=l.prototype:(null===e&&(e=new l(t)),e.length=t),e}function l(e,t,r){if(!l.TYPED_ARRAY_SUPPORT&&!(this instanceof l))return new l(e,t,r);if("number"===typeof e){if("string"===typeof t)throw new Error("If encoding is specified then the first argument must be a string");return h(this,e)}return u(this,e,t,r)}function u(e,t,r,n){if("number"===typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!==typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n);l.TYPED_ARRAY_SUPPORT?(e=t).__proto__=l.prototype:e=f(e,t);return e}(e,t,r,n):"string"===typeof t?function(e,t,r){"string"===typeof r&&""!==r||(r="utf8");if(!l.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|d(t,r),o=(e=a(e,n)).write(t,r);o!==n&&(e=e.slice(0,o));return e}(e,t,r):function(e,t){if(l.isBuffer(t)){var r=0|p(t.length);return 0===(e=a(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!==typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!==typeof t.length||(n=t.length)!==n?a(e,0):f(e,t);if("Buffer"===t.type&&i(t.data))return f(e,t.data)}var n;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function c(e){if("number"!==typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function h(e,t){if(c(t),e=a(e,t<0?0:0|p(t)),!l.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function f(e,t){var r=t.length<0?0:0|p(t.length);e=a(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function p(e){if(e>=s())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s().toString(16)+" bytes");return 0|e}function d(e,t){if(l.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return $(e).length;default:if(n)return F(e).length;t=(""+t).toLowerCase(),n=!0}}function g(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,r);case"utf8":case"utf-8":return R(this,t,r);case"ascii":return A(this,t,r);case"latin1":case"binary":return _(this,t,r);case"base64":return O(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function v(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function y(e,t,r,n,o){if(0===e.length)return-1;if("string"===typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"===typeof t&&(t=l.from(t,n)),l.isBuffer(t))return 0===t.length?-1:m(e,t,r,n,o);if("number"===typeof t)return t&=255,l.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):m(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function m(e,t,r,n,o){var i,s=1,a=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,l/=2,r/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){var c=-1;for(i=r;i<a;i++)if(u(e,i)===u(t,-1===c?0:i-c)){if(-1===c&&(c=i),i-c+1===l)return c*s}else-1!==c&&(i-=i-c),c=-1}else for(r+l>a&&(r=a-l),i=r;i>=0;i--){for(var h=!0,f=0;f<l;f++)if(u(e,i+f)!==u(t,f)){h=!1;break}if(h)return i}return-1}function w(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var i=t.length;if(i%2!==0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var s=0;s<n;++s){var a=parseInt(t.substr(2*s,2),16);if(isNaN(a))return s;e[r+s]=a}return s}function b(e,t,r,n){return H(F(t,e.length-r),e,r,n)}function E(e,t,r,n){return H(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function S(e,t,r,n){return E(e,t,r,n)}function k(e,t,r,n){return H($(t),e,r,n)}function x(e,t,r,n){return H(function(e,t){for(var r,n,o,i=[],s=0;s<e.length&&!((t-=2)<0);++s)n=(r=e.charCodeAt(s))>>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function O(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function R(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o<r;){var i,s,a,l,u=e[o],c=null,h=u>239?4:u>223?3:u>191?2:1;if(o+h<=r)switch(h){case 1:u<128&&(c=u);break;case 2:128===(192&(i=e[o+1]))&&(l=(31&u)<<6|63&i)>127&&(c=l);break;case 3:i=e[o+1],s=e[o+2],128===(192&i)&&128===(192&s)&&(l=(15&u)<<12|(63&i)<<6|63&s)>2047&&(l<55296||l>57343)&&(c=l);break;case 4:i=e[o+1],s=e[o+2],a=e[o+3],128===(192&i)&&128===(192&s)&&128===(192&a)&&(l=(15&u)<<18|(63&i)<<12|(63&s)<<6|63&a)>65535&&l<1114112&&(c=l)}null===c?(c=65533,h=1):c>65535&&(c-=65536,n.push(c>>>10&1023|55296),c=56320|1023&c),n.push(c),o+=h}return function(e){var t=e.length;if(t<=P)return String.fromCharCode.apply(String,e);var r="",n=0;for(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=P));return r}(n)}t.Buffer=l,t.SlowBuffer=function(e){+e!=e&&(e=0);return l.alloc(+e)},t.INSPECT_MAX_BYTES=50,l.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"===typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}(),t.kMaxLength=s(),l.poolSize=8192,l._augment=function(e){return e.__proto__=l.prototype,e},l.from=function(e,t,r){return u(null,e,t,r)},l.TYPED_ARRAY_SUPPORT&&(l.prototype.__proto__=Uint8Array.prototype,l.__proto__=Uint8Array,"undefined"!==typeof Symbol&&Symbol.species&&l[Symbol.species]===l&&Object.defineProperty(l,Symbol.species,{value:null,configurable:!0})),l.alloc=function(e,t,r){return function(e,t,r,n){return c(t),t<=0?a(e,t):void 0!==r?"string"===typeof n?a(e,t).fill(r,n):a(e,t).fill(r):a(e,t)}(null,e,t,r)},l.allocUnsafe=function(e){return h(null,e)},l.allocUnsafeSlow=function(e){return h(null,e)},l.isBuffer=function(e){return!(null==e||!e._isBuffer)},l.compare=function(e,t){if(!l.isBuffer(e)||!l.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,o=0,i=Math.min(r,n);o<i;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},l.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(e,t){if(!i(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return l.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=l.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var s=e[r];if(!l.isBuffer(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(n,o),o+=s.length}return n},l.byteLength=d,l.prototype._isBuffer=!0,l.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)v(this,t,t+1);return this},l.prototype.swap32=function(){var e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},l.prototype.swap64=function(){var e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},l.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?R(this,0,e):g.apply(this,arguments)},l.prototype.equals=function(e){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===l.compare(this,e)},l.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},l.prototype.compare=function(e,t,r,n,o){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0),a=Math.min(i,s),u=this.slice(n,o),c=e.slice(t,r),h=0;h<a;++h)if(u[h]!==c[h]){i=u[h],s=c[h];break}return i<s?-1:s<i?1:0},l.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},l.prototype.indexOf=function(e,t,r){return y(this,e,t,r,!0)},l.prototype.lastIndexOf=function(e,t,r){return y(this,e,t,r,!1)},l.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"===typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return b(this,e,t,r);case"ascii":return E(this,e,t,r);case"latin1":case"binary":return S(this,e,t,r);case"base64":return k(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var P=4096;function A(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(127&e[o]);return n}function _(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(e[o]);return n}function T(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var o="",i=t;i<r;++i)o+=V(e[i]);return o}function C(e,t,r){for(var n=e.slice(t,r),o="",i=0;i<n.length;i+=2)o+=String.fromCharCode(n[i]+256*n[i+1]);return o}function j(e,t,r){if(e%1!==0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function U(e,t,r,n,o,i){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function B(e,t,r,n){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-r,2);o<i;++o)e[r+o]=(t&255<<8*(n?o:1-o))>>>8*(n?o:1-o)}function L(e,t,r,n){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-r,4);o<i;++o)e[r+o]=t>>>8*(n?o:3-o)&255}function N(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function I(e,t,r,n,i){return i||N(e,0,r,4),o.write(e,t,r,n,23,4),r+4}function D(e,t,r,n,i){return i||N(e,0,r,8),o.write(e,t,r,n,52,8),r+8}l.prototype.slice=function(e,t){var r,n=this.length;if((e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e),l.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=l.prototype;else{var o=t-e;r=new l(o,void 0);for(var i=0;i<o;++i)r[i]=this[i+e]}return r},l.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=this[e],o=1,i=0;++i<t&&(o*=256);)n+=this[e+i]*o;return n},l.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},l.prototype.readUInt8=function(e,t){return t||j(e,1,this.length),this[e]},l.prototype.readUInt16LE=function(e,t){return t||j(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUInt16BE=function(e,t){return t||j(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUInt32LE=function(e,t){return t||j(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUInt32BE=function(e,t){return t||j(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=this[e],o=1,i=0;++i<t&&(o*=256);)n+=this[e+i]*o;return n>=(o*=128)&&(n-=Math.pow(2,8*t)),n},l.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||j(e,t,this.length);for(var n=t,o=1,i=this[e+--n];n>0&&(o*=256);)i+=this[e+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},l.prototype.readInt8=function(e,t){return t||j(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){t||j(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt16BE=function(e,t){t||j(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt32LE=function(e,t){return t||j(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return t||j(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readFloatLE=function(e,t){return t||j(e,4,this.length),o.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return t||j(e,4,this.length),o.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return t||j(e,8,this.length),o.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return t||j(e,8,this.length),o.read(this,e,!1,52,8)},l.prototype.writeUIntLE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||U(this,e,t,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[t]=255&e;++i<r&&(o*=256);)this[t+i]=e/o&255;return t+r},l.prototype.writeUIntBE=function(e,t,r,n){(e=+e,t|=0,r|=0,n)||U(this,e,t,r,Math.pow(2,8*r)-1,0);var o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},l.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,255,0),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},l.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):B(this,e,t,!0),t+2},l.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,65535,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):B(this,e,t,!1),t+2},l.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):L(this,e,t,!0),t+4},l.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,4294967295,0),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):L(this,e,t,!1),t+4},l.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);U(this,e,t,r,o-1,-o)}var i=0,s=1,a=0;for(this[t]=255&e;++i<r&&(s*=256);)e<0&&0===a&&0!==this[t+i-1]&&(a=1),this[t+i]=(e/s>>0)-a&255;return t+r},l.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var o=Math.pow(2,8*r-1);U(this,e,t,r,o-1,-o)}var i=r-1,s=1,a=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/s>>0)-a&255;return t+r},l.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,1,127,-128),l.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):B(this,e,t,!0),t+2},l.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,2,32767,-32768),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):B(this,e,t,!1),t+2},l.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),l.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):L(this,e,t,!0),t+4},l.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||U(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),l.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):L(this,e,t,!1),t+4},l.prototype.writeFloatLE=function(e,t,r){return I(this,e,t,!0,r)},l.prototype.writeFloatBE=function(e,t,r){return I(this,e,t,!1,r)},l.prototype.writeDoubleLE=function(e,t,r){return D(this,e,t,!0,r)},l.prototype.writeDoubleBE=function(e,t,r){return D(this,e,t,!1,r)},l.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var o,i=n-r;if(this===e&&r<t&&t<n)for(o=i-1;o>=0;--o)e[o+t]=this[o+r];else if(i<1e3||!l.TYPED_ARRAY_SUPPORT)for(o=0;o<i;++o)e[o+t]=this[o+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+i),t);return i},l.prototype.fill=function(e,t,r,n){if("string"===typeof e){if("string"===typeof t?(n=t,t=0,r=this.length):"string"===typeof r&&(n=r,r=this.length),1===e.length){var o=e.charCodeAt(0);o<256&&(e=o)}if(void 0!==n&&"string"!==typeof n)throw new TypeError("encoding must be a string");if("string"===typeof n&&!l.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"===typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var i;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"===typeof e)for(i=t;i<r;++i)this[i]=e;else{var s=l.isBuffer(e)?e:F(new l(e,n).toString()),a=s.length;for(i=0;i<r-t;++i)this[i+t]=s[i%a]}return this};var M=/[^+\/0-9A-Za-z-_]/g;function V(e){return e<16?"0"+e.toString(16):e.toString(16)}function F(e,t){var r;t=t||1/0;for(var n=e.length,o=null,i=[],s=0;s<n;++s){if((r=e.charCodeAt(s))>55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function $(e){return n.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(M,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function H(e,t,r,n){for(var o=0;o<n&&!(o+r>=t.length||o>=e.length);++o)t[o+r]=e[o];return o}}).call(this,r(10))},function(e,t,r){"use strict";t.byteLength=function(e){var t=u(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,n=u(e),s=n[0],a=n[1],l=new i(function(e,t,r){return 3*(t+r)/4-r}(0,s,a)),c=0,h=a>0?s-4:s;for(r=0;r<h;r+=4)t=o[e.charCodeAt(r)]<<18|o[e.charCodeAt(r+1)]<<12|o[e.charCodeAt(r+2)]<<6|o[e.charCodeAt(r+3)],l[c++]=t>>16&255,l[c++]=t>>8&255,l[c++]=255&t;2===a&&(t=o[e.charCodeAt(r)]<<2|o[e.charCodeAt(r+1)]>>4,l[c++]=255&t);1===a&&(t=o[e.charCodeAt(r)]<<10|o[e.charCodeAt(r+1)]<<4|o[e.charCodeAt(r+2)]>>2,l[c++]=t>>8&255,l[c++]=255&t);return l},t.fromByteArray=function(e){for(var t,r=e.length,o=r%3,i=[],s=16383,a=0,l=r-o;a<l;a+=s)i.push(c(e,a,a+s>l?l:a+s));1===o?(t=e[r-1],i.push(n[t>>2]+n[t<<4&63]+"==")):2===o&&(t=(e[r-2]<<8)+e[r-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return i.join("")};for(var n=[],o=[],i="undefined"!==typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,l=s.length;a<l;++a)n[a]=s[a],o[s.charCodeAt(a)]=a;function u(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,r){for(var o,i,s=[],a=t;a<r;a+=3)o=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),s.push(n[(i=o)>>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return s.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,r,n,o){var i,s,a=8*o-n-1,l=(1<<a)-1,u=l>>1,c=-7,h=r?o-1:0,f=r?-1:1,p=e[t+h];for(h+=f,i=p&(1<<-c)-1,p>>=-c,c+=a;c>0;i=256*i+e[t+h],h+=f,c-=8);for(s=i&(1<<-c)-1,i>>=-c,c+=n;c>0;s=256*s+e[t+h],h+=f,c-=8);if(0===i)i=1-u;else{if(i===l)return s?NaN:1/0*(p?-1:1);s+=Math.pow(2,n),i-=u}return(p?-1:1)*s*Math.pow(2,i-n)},t.write=function(e,t,r,n,o,i){var s,a,l,u=8*i-o-1,c=(1<<u)-1,h=c>>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,d=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=c):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),(t+=s+h>=1?f/l:f*Math.pow(2,1-h))*l>=2&&(s++,l/=2),s+h>=c?(a=0,s=c):s+h>=1?(a=(t*l-1)*Math.pow(2,o),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,o),s=0));o>=8;e[r+p]=255&a,p+=d,a/=256,o-=8);for(s=s<<o|a,u+=o;u>0;e[r+p]=255&s,p+=d,s/=256,u-=8);e[r+p-d]|=128*g}},function(e,t){var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(22);Object.defineProperty(t,"BNF",{enumerable:!0,get:function(){return n.default}});var o=r(24);Object.defineProperty(t,"W3C",{enumerable:!0,get:function(){return o.default}});var i=r(25);Object.defineProperty(t,"Custom",{enumerable:!0,get:function(){return i.default}})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(23),o=r(5);var i;!function(e){function t(e){let r=n.findChildrenByType(e,"term").map((e=>n.findChildrenByType(e,"literal").concat(n.findChildrenByType(e,"rule-name"))[0].text));return n.findChildrenByType(e,"list").forEach((e=>{r=r.concat(t(e))})),r}function r(r,o=e.defaultParser){let i=o.getAST(r);if(!i)throw new Error("Could not parse "+r);if(i.errors&&i.errors.length)throw i.errors[0];let s=n.findChildrenByType(i,"rule").map((e=>{let r=n.findChildrenByType(e,"rule-name")[0].text,o=n.findChildrenByType(e,"firstExpression").concat(n.findChildrenByType(e,"otherExpression")),i=[];return o.forEach((e=>{i.push(t(e))})),{name:r,bnf:i}}));return s.some((e=>"EOL"==e.name))||s.push({name:"EOL",bnf:[['"\\r\\n"','"\\r"','"\\n"']]}),s}e.RULES=[{name:"syntax",bnf:[["RULE_EOL*","rule+"]]},{name:"rule",bnf:[['" "*','"<"',"rule-name",'">"','" "*','"::="',"firstExpression","otherExpression*",'" "*',"RULE_EOL+",'" "*']]},{name:"firstExpression",bnf:[['" "*',"list"]]},{name:"otherExpression",bnf:[['" "*','"|"','" "*',"list"]]},{name:"RULE_EOL",bnf:[['"\\r"'],['"\\n"']]},{name:"list",bnf:[["term",'" "*',"list"],["term"]]},{name:"term",bnf:[["literal"],['"<"',"rule-name",'">"']]},{name:"literal",bnf:[["'\"'","RULE_CHARACTER1*","'\"'"],['"\'"',"RULE_CHARACTER2*",'"\'"']]},{name:"RULE_CHARACTER",bnf:[['" "'],["RULE_LETTER"],["RULE_DIGIT"],["RULE_SYMBOL"]]},{name:"RULE_LETTER",bnf:[['"A"'],['"B"'],['"C"'],['"D"'],['"E"'],['"F"'],['"G"'],['"H"'],['"I"'],['"J"'],['"K"'],['"L"'],['"M"'],['"N"'],['"O"'],['"P"'],['"Q"'],['"R"'],['"S"'],['"T"'],['"U"'],['"V"'],['"W"'],['"X"'],['"Y"'],['"Z"'],['"a"'],['"b"'],['"c"'],['"d"'],['"e"'],['"f"'],['"g"'],['"h"'],['"i"'],['"j"'],['"k"'],['"l"'],['"m"'],['"n"'],['"o"'],['"p"'],['"q"'],['"r"'],['"s"'],['"t"'],['"u"'],['"v"'],['"w"'],['"x"'],['"y"'],['"z"']]},{name:"RULE_DIGIT",bnf:[['"0"'],['"1"'],['"2"'],['"3"'],['"4"'],['"5"'],['"6"'],['"7"'],['"8"'],['"9"']]},{name:"RULE_SYMBOL",bnf:[['"-"'],['"_"'],['"!"'],['"#"'],['"$"'],['"%"'],['"&"'],['"("'],['")"'],['"*"'],['"+"'],['","'],['"-"'],['"."'],['"/"'],['":"'],['";"'],['"<"'],['"="'],['">"'],['"?"'],['"@"'],['"["'],['"\\"'],['"]"'],['"^"'],['"_"'],['"`"'],['"{"'],['"|"'],['"}"'],['"~"']]},{name:"RULE_CHARACTER1",bnf:[["RULE_CHARACTER"],['"\'"']]},{name:"RULE_CHARACTER2",bnf:[["RULE_CHARACTER"],["'\"'"]]},{name:"rule-name",bnf:[["RULE_LETTER","RULE_CHAR*"]]},{name:"RULE_CHAR",bnf:[["RULE_LETTER"],["RULE_DIGIT"],['"_"'],['"-"']]}],e.defaultParser=new o.Parser(e.RULES,{debug:!1}),e.getRules=r,e.Transform=function(t,n=e.defaultParser){return r(t.join(""),n)};class i extends o.Parser{constructor(t,n){super(r(t,n&&!0===n.debugRulesParser?new o.Parser(e.RULES,{debug:!0}):e.defaultParser),n),this.source=t}emitSource(){return this.source}}e.Parser=i}(i||(i={})),t.default=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findChildrenByType=void 0,t.findChildrenByType=function(e,t){return e.children?e.children.filter((e=>e.type==t)):[]}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(5);var o;!function(e){e.RULES=[{name:"Grammar",bnf:[["RULE_S*","%Atomic*","EOF"]]},{name:"%Atomic",bnf:[["Production","RULE_S*"]],fragment:!0},{name:"Production",bnf:[["NCName","RULE_S*",'"::="',"RULE_WHITESPACE*","Choice","RULE_WHITESPACE*","RULE_EOL+","RULE_S*"]]},{name:"NCName",bnf:[[/[a-zA-Z][a-zA-Z_0-9]*/]]},{name:"Choice",bnf:[["SequenceOrDifference","%_Choice_1*"]],fragment:!0},{name:"%_Choice_1",bnf:[["RULE_WHITESPACE*",'"|"',"RULE_WHITESPACE*","SequenceOrDifference"]],fragment:!0},{name:"SequenceOrDifference",bnf:[["Item","RULE_WHITESPACE*","%_Item_1?"]]},{name:"%_Item_1",bnf:[["Minus","Item"],["Item*"]],fragment:!0},{name:"Minus",bnf:[['"-"']]},{name:"Item",bnf:[["RULE_WHITESPACE*","%Primary","PrimaryDecoration?"]],fragment:!0},{name:"PrimaryDecoration",bnf:[['"?"'],['"*"'],['"+"']]},{name:"DecorationName",bnf:[['"ebnf://"',/[^\x5D#]+/]]},{name:"%Primary",bnf:[["NCName"],["StringLiteral"],["CharCode"],["CharClass"],["SubItem"]],fragment:!0},{name:"SubItem",bnf:[['"("',"RULE_WHITESPACE*","Choice","RULE_WHITESPACE*",'")"']]},{name:"StringLiteral",bnf:[["'\"'",/[^"]*/,"'\"'"],['"\'"',/[^']*/,'"\'"']],pinned:1},{name:"CharCode",bnf:[['"#x"',/[0-9a-zA-Z]+/]]},{name:"CharClass",bnf:[["'['","'^'?","%RULE_CharClass_1+",'"]"']]},{name:"%RULE_CharClass_1",bnf:[["CharCodeRange"],["CharRange"],["CharCode"],["RULE_Char"]],fragment:!0},{name:"RULE_Char",bnf:[[/\x09/],[/\x0A/],[/\x0D/],[/[\x20-\x5c]/],[/[\x5e-\uD7FF]/],[/[\uE000-\uFFFD]/]]},{name:"CharRange",bnf:[["RULE_Char",'"-"',"RULE_Char"]]},{name:"CharCodeRange",bnf:[["CharCode",'"-"',"CharCode"]]},{name:"RULE_WHITESPACE",bnf:[["%RULE_WHITESPACE_CHAR*"],["Comment","RULE_WHITESPACE*"]]},{name:"RULE_S",bnf:[["RULE_WHITESPACE","RULE_S*"],["RULE_EOL","RULE_S*"]]},{name:"%RULE_WHITESPACE_CHAR",bnf:[[/\x09/],[/\x20/]],fragment:!0},{name:"Comment",bnf:[['"/*"',"%RULE_Comment_Body*",'"*/"']]},{name:"%RULE_Comment_Body",bnf:[['!"*/"',/[^*]/]],fragment:!0},{name:"RULE_EOL",bnf:[[/\x0D/,/\x0A/],[/\x0A/],[/\x0D/]]},{name:"Link",bnf:[["'['","Url","']'"]]},{name:"Url",bnf:[[/[^\x5D:/?#]/,'"://"',/[^\x5D#]+/,"%Url1?"]]},{name:"%Url1",bnf:[['"#"',"NCName"]],fragment:!0}],e.defaultParser=new n.Parser(e.RULES,{debug:!1});const t=/^(!|&)/,r=/(\?|\+|\*)$/,o=/^%/;function i(e,i){if("string"==typeof e){if(t.test(e))return"";if(o.test(e)){let t=r.exec(e),o=t?t[0]+" ":"",a=function(e,t){let r=n.findRuleByName(e,t);return r&&1==r.bnf.length&&1==r.bnf[0].length&&(r.bnf[0][0]instanceof RegExp||'"'==r.bnf[0][0][0]||"'"==r.bnf[0][0][0])}(e,i);return a?s(e,i)+o:"("+s(e,i)+")"+o}return e}return e.source.replace(/\\(?:x|u)([a-zA-Z0-9]+)/g,"#x$1").replace(/\[\\(?:x|u)([a-zA-Z0-9]+)-\\(?:x|u)([a-zA-Z0-9]+)\]/g,"[#x$1-#x$2]")}function s(e,t){let r=n.findRuleByName(e,t);return r?r.bnf.map((e=>function(e,t){return e.map((e=>i(e,t))).join(" ")}(e,t))).join(" | "):"RULE_NOT_FOUND {"+e+"}"}function a(e){let t=[];return e.grammarRules.forEach((r=>{if(!/^%/.test(r.name)){let n=r.recover?" /* { recoverUntil="+r.recover+" } */":"";t.push(r.name+" ::= "+s(r.name,e)+n)}})),t.join("\n")}e.emit=a;let l=0;function u(e){return new RegExp(e.replace(/#x([a-zA-Z0-9]{4})/g,"\\u$1").replace(/#x([a-zA-Z0-9]{3})/g,"\\u0$1").replace(/#x([a-zA-Z0-9]{2})/g,"\\x$1").replace(/#x([a-zA-Z0-9]{1})/g,"\\x0$1"))}function c(e,t,r){let n=null,o=[];return t.children.forEach(((i,s)=>{"Minus"==i.type&&function(e,t){throw console.log("reberia restar "+t+" a "+e),new Error("Difference not supported yet")}(n,i);let a=t.children[s+1];a=a&&"PrimaryDecoration"==a.type&&a.text||"";switch(i.type){case"SubItem":let t="%"+(r+l++);h(e,i,t),o.push(""+t+a);break;case"NCName":case"StringLiteral":o.push(""+i.text+a);break;case"CharCode":case"CharClass":if(a){let t={name:"%"+(r+l++),bnf:[[u(i.text)]]};e.push(t),o.push(""+t.name+a)}else o.push(u(i.text));break;case"PrimaryDecoration":break;default:throw new Error(" HOW SHOULD I PARSE THIS? "+i.type+" -> "+JSON.stringify(i.text))}n=i})),o}function h(e,t,r){let n=t.children.filter((e=>"SequenceOrDifference"==e.type)).map((t=>c(e,t,r))),o={name:r,bnf:n},i=null;n.forEach((e=>{i=i||e.recover,delete e.recover})),0==r.indexOf("%")&&(o.fragment=!0),i&&(o.recover=i),e.push(o)}function f(t,r=e.defaultParser){let n=r.getAST(t);if(!n)throw new Error("Could not parse "+t);if(n.errors&&n.errors.length)throw n.errors[0];let o=[];return n.children.filter((e=>"Production"==e.type)).map((e=>{let t=e.children.filter((e=>"NCName"==e.type))[0].text;h(o,e,t)})),o}e.getRules=f,e.Transform=function(t,r=e.defaultParser){return f(t.join(""),r)};class p extends n.Parser{constructor(t,r){super(f(t,r&&!0===r.debugRulesParser?new n.Parser(e.RULES,{debug:!0}):e.defaultParser),r)}emitSource(){return a(this)}}e.Parser=p}(o||(o={})),t.default=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(7),o=r(5);var i;!function(e){e.RULES=[{name:"Grammar",bnf:[["RULE_S*","Attributes?","RULE_S*","%Atomic*","EOF"]]},{name:"%Atomic",bnf:[["Production","RULE_S*"]],fragment:!0},{name:"Production",bnf:[["NCName","RULE_S*",'"::="',"RULE_WHITESPACE*","%Choice","RULE_WHITESPACE*","Attributes?","RULE_EOL+","RULE_S*"]]},{name:"NCName",bnf:[[/[a-zA-Z][a-zA-Z_0-9]*/]]},{name:"Attributes",bnf:[['"{"',"Attribute","%Attributes*","RULE_S*",'"}"']]},{name:"%Attributes",bnf:[["RULE_S*",'","',"Attribute"]],fragment:!0},{name:"Attribute",bnf:[["RULE_S*","NCName","RULE_WHITESPACE*",'"="',"RULE_WHITESPACE*","AttributeValue"]]},{name:"AttributeValue",bnf:[["NCName"],[/[1-9][0-9]*/]]},{name:"%Choice",bnf:[["SequenceOrDifference","%_Choice_1*"]],fragment:!0},{name:"%_Choice_1",bnf:[["RULE_S*",'"|"',"RULE_S*","SequenceOrDifference"]],fragment:!0},{name:"SequenceOrDifference",bnf:[["%Item","RULE_WHITESPACE*","%_Item_1?"]]},{name:"%_Item_1",bnf:[["Minus","%Item"],["%Item*"]],fragment:!0},{name:"Minus",bnf:[['"-"']]},{name:"%Item",bnf:[["RULE_WHITESPACE*","PrimaryPreDecoration?","%Primary","PrimaryDecoration?"]],fragment:!0},{name:"PrimaryDecoration",bnf:[['"?"'],['"*"'],['"+"']]},{name:"PrimaryPreDecoration",bnf:[['"&"'],['"!"'],['"~"']]},{name:"%Primary",bnf:[["NCName"],["StringLiteral"],["CharCode"],["CharClass"],["SubItem"]],fragment:!0},{name:"SubItem",bnf:[['"("',"RULE_S*","%Choice","RULE_S*",'")"']]},{name:"StringLiteral",bnf:[["'\"'",/[^"]*/,"'\"'"],['"\'"',/[^']*/,'"\'"']]},{name:"CharCode",bnf:[['"#x"',/[0-9a-zA-Z]+/]]},{name:"CharClass",bnf:[["'['","'^'?","%RULE_CharClass_1+",'"]"']]},{name:"%RULE_CharClass_1",bnf:[["CharCodeRange"],["CharRange"],["CharCode"],["RULE_Char"]],fragment:!0},{name:"RULE_Char",bnf:[[/\x09/],[/\x0A/],[/\x0D/],[/[\x20-\x5c]/],[/[\x5e-\uD7FF]/],[/[\uE000-\uFFFD]/]]},{name:"CharRange",bnf:[["RULE_Char",'"-"',"RULE_Char"]]},{name:"CharCodeRange",bnf:[["CharCode",'"-"',"CharCode"]]},{name:"RULE_WHITESPACE",bnf:[["%RULE_WHITESPACE_CHAR*"],["Comment","RULE_WHITESPACE*"]]},{name:"RULE_S",bnf:[["RULE_WHITESPACE","RULE_S*"],["RULE_EOL","RULE_S*"]]},{name:"%RULE_WHITESPACE_CHAR",bnf:[[/\x09/],[/\x20/]],fragment:!0},{name:"Comment",bnf:[['"/*"',"%RULE_Comment_Body*",'"*/"']]},{name:"%RULE_Comment_Body",bnf:[[/[^*]/],['"*"+',/[^/]*/]],fragment:!0},{name:"RULE_EOL",bnf:[[/\x0D/,/\x0A/],[/\x0A/],[/\x0D/]]},{name:"Link",bnf:[["'['","Url","']'"]]},{name:"Url",bnf:[[/[^\x5D:/?#]/,'"://"',/[^\x5D#]+/,"%Url1?"]]},{name:"%Url1",bnf:[['"#"',"NCName"]],fragment:!0}],e.defaultParser=new o.Parser(e.RULES,{debug:!1});const t=/^(!|&)/,r=/(\?|\+|\*)$/,i=/^%/;function s(e,n){if("string"==typeof e){let s=r.exec(e),l=t.exec(e),u=l?l[0]:"",c=s?s[0]+" ":"";if(i.test(e)){let t=function(e,t){let r=o.findRuleByName(e,t);return r&&1==r.bnf.length&&1==r.bnf[0].length&&(r.bnf[0][0]instanceof RegExp||'"'==r.bnf[0][0][0]||"'"==r.bnf[0][0][0])}(e,n);return t?u+a(e,n)+c:u+"("+a(e,n)+")"+c}return e.replace(t,u)}return e.source.replace(/\\(?:x|u)([a-zA-Z0-9]+)/g,"#x$1").replace(/\[\\(?:x|u)([a-zA-Z0-9]+)-\\(?:x|u)([a-zA-Z0-9]+)\]/g,"[#x$1-#x$2]")}function a(e,t){let r=o.findRuleByName(e,t);return r?r.bnf.map((e=>function(e,t){return e.map((e=>s(e,t))).join(" ")}(e,t))).join(" | "):"RULE_NOT_FOUND {"+e+"}"}function l(e){let t=[];return e.grammarRules.forEach((r=>{if(!/^%/.test(r.name)){let n=r.recover?" { recoverUntil="+r.recover+" }":"";t.push(r.name+" ::= "+a(r.name,e)+n)}})),t.join("\n")}e.emit=l;let u=0;function c(e){return new RegExp(e.replace(/#x([a-zA-Z0-9]{4})/g,"\\u$1").replace(/#x([a-zA-Z0-9]{3})/g,"\\u0$1").replace(/#x([a-zA-Z0-9]{2})/g,"\\x$1").replace(/#x([a-zA-Z0-9]{1})/g,"\\x0$1"))}function h(e,t,r,n){let i=null,s=[];return t.children.forEach(((a,l)=>{"Minus"==a.type&&function(e,t){throw console.log("reberia restar "+t+" a "+e),new Error("Difference not supported yet")}(i,a);let h=t.children[l+1];h=h&&"PrimaryDecoration"==h.type&&h.text||"";let p="";i&&"PrimaryPreDecoration"==i.type&&(p=i.text);let d="~"==p?1:void 0;switch(d&&(p=""),a.type){case"SubItem":let t="%"+(r+u++);f(e,a,t,n),s.push(p+t+h);break;case"NCName":s.push(p+a.text+h);break;case"StringLiteral":if(h||p||!/^['"/()a-zA-Z0-9&_.:=,+*\-\^\\]+$/.test(a.text))s.push(p+a.text+h);else for(const e of a.text.slice(1,-1))n&&"true"==n.ignoreCase&&/[a-zA-Z]/.test(e)?s.push(new RegExp("["+e.toUpperCase()+e.toLowerCase()+"]")):s.push(new RegExp(o.escapeRegExp(e)));break;case"CharCode":case"CharClass":if(h||p){let t={name:"%"+(r+u++),bnf:[[c(a.text)]],pinned:d};e.push(t),s.push(p+t.name+h)}else s.push(c(a.text));break;case"PrimaryPreDecoration":case"PrimaryDecoration":break;default:throw new Error(" HOW SHOULD I PARSE THIS? "+a.type+" -> "+JSON.stringify(a.text))}i=a})),s}function f(e,t,r,o){let i=t.children.filter((e=>"Attributes"==e.type))[0],s={};i&&i.children.forEach((e=>{let t=e.children.filter((e=>"NCName"==e.type))[0].text;if(t in s)throw new n.TokenError("Duplicated attribute "+t,e);s[t]=e.children.filter((e=>"AttributeValue"==e.type))[0].text}));let a=t.children.filter((e=>"SequenceOrDifference"==e.type)).map((t=>h(e,t,r,o||s))),l={name:r,bnf:a};if(0==r.indexOf("%")&&(l.fragment=!0),s.recoverUntil&&(l.recover=s.recoverUntil,l.bnf.length>1))throw new n.TokenError("only one-option productions are suitable for error recovering",t);if("pin"in s){let e=parseInt(s.pin);if(isNaN(e)||(l.pinned=e),l.bnf.length>1)throw new n.TokenError("only one-option productions are suitable for pinning",t)}l.implicitWs="ws"in s?"explicit"!=s.ws:null,l.fragment=l.fragment||"true"==s.fragment,l.simplifyWhenOneChildren="true"==s.simplifyWhenOneChildren,e.push(l)}function p(t,r=e.defaultParser){let o=r.getAST(t);if(!o)throw new Error("Could not parse "+t);if(o.errors&&o.errors.length)throw o.errors[0];let i=null,s=o.children.filter((e=>"Attributes"==e.type))[0],a={};s&&s.children.forEach((e=>{let t=e.children.filter((e=>"NCName"==e.type))[0].text;if(t in a)throw new n.TokenError("Duplicated attribute "+t,e);a[t]=e.children.filter((e=>"AttributeValue"==e.type))[0].text})),i="implicit"==a.ws;let l=[];return o.children.filter((e=>"Production"==e.type)).map((e=>{let t=e.children.filter((e=>"NCName"==e.type))[0].text;f(l,e,t)})),l.forEach((e=>{null===e.implicitWs&&(e.implicitWs=i)})),l}e.getRules=p,e.Transform=function(t,r=e.defaultParser){return p(t.join(""),r)};class d extends o.Parser{constructor(t,r){super(p(t,r&&!0===r.debugRulesParser?new o.Parser(e.RULES,{debug:!0}):e.defaultParser),r)}emitSource(){return l(this)}}e.Parser=d}(i||(i={})),t.default=i},function(e,t,r){"use strict";r.r(t),r.d(t,"MetricsCorePlugin",(function(){return U})),r.d(t,"MetricsCorePluginSymbol",(function(){return v})),r.d(t,"MetricsViewBeaconPlugin",(function(){return C})),r.d(t,"MetricsViewBeaconPluginContextSymbol",(function(){return y})),r.d(t,"RequestTimeWebPlugin",(function(){return j})),r.d(t,"defaultGetTime",(function(){return A}));var n=r(0),o=r(11),i=r(2);const s=Symbol.for("BeaconPlugin");var a=Object.defineProperty,l=Object.defineProperties,u=Object.getOwnPropertyDescriptors,c=Object.getOwnPropertySymbols,h=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable,p=(e,t,r)=>t in e?a(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;const d=class{constructor(e){this.name="Beacon",this.symbol=d.Symbol,this.beaconContext={view:void 0},this.hooks={buildBeacon:new n.a,cancelBeacon:new n.b,publishBeacon:new n.c},(null==e?void 0:e.plugins)&&e.plugins.forEach((e=>{e.apply(this)})),(null==e?void 0:e.callback)&&this.hooks.publishBeacon.tap("BeaconCallback",(t=>{e.callback&&e.callback(t)}))}apply(e){this.player=e,this.logger=e.logger,e.hooks.state.tap(this.name,(e=>{"in-progress"===e.status&&(this.resolveDataRefs=t=>Object(o.resolveDataRefs)(t,{model:e.controllers.data,evaluate:e.controllers.expression.evaluate}))})),e.hooks.viewController.tap(this.name,(e=>{this.beaconContext={view:void 0},e.hooks.view.tap(this.name,(e=>{let t=!1;e.hooks.parser.tap(this.name,(e=>{e.hooks.onCreateASTNode.tap(this.name,(e=>{var t,r,n,o;if("asset"!==(null==e?void 0:e.type)&&"view"!==(null==e?void 0:e.type))return;const s=null!=(n=null==(r=null==(t=e.plugins)?void 0:t.stringResolver)?void 0:r.propertiesToSkip)?n:[];return s.includes("beacon")?void 0:(e.plugins=Object(i.setIn)(null!=(o=e.plugins)?o:{},["stringResolver","propertiesToSkip"],["beacon",...s]),e)}))})),e.hooks.onUpdate.tap(this.name,(e=>{this.beaconContext={view:e},t||(this.beacon({action:"viewed",element:"view",asset:e,view:e}),t=!0)}))}))})),e.hooks.expressionEvaluator.tap(this.name,(e=>{e.addExpressionFunction("beacon",((e,t,r)=>{const n=this.beaconContext.view||{};this.beacon({action:t,data:r,element:"view",asset:n,view:n})}))}))}beacon(e){const{action:t,element:r,asset:n,view:o}=e,{view:i}=this.beaconContext;setTimeout((()=>{return s=this,a=null,d=function*(){var s,a,d,g,v,y;const m=(null==e?void 0:e.data)||(null==(a=null==(s=e.asset)?void 0:s.metaData)?void 0:a.beacon),w=null!=(g=null==(d=this.resolveDataRefs)?void 0:d.call(this,m))?g:m,b={action:t,element:r,data:w,assetId:null==n?void 0:n.id,viewId:null==i?void 0:i.id},E=null==(v=this.player)?void 0:v.getState(),S=(k=((e,t)=>{for(var r in t||(t={}))h.call(t,r)&&p(e,r,t[r]);if(c)for(var r of c(t))f.call(t,r)&&p(e,r,t[r]);return e})({},e),x={data:w,state:E,view:null!=o?o:i,logger:this.logger},l(k,u(x)));var k,x;let O=(yield this.hooks.buildBeacon.call(b,S))||b;O!==b&&this.resolveDataRefs&&(O=this.resolveDataRefs(O)),this.hooks.cancelBeacon.call(S)||(null==(y=this.logger)||y.debug("Sending beacon event",O),this.hooks.publishBeacon.call(O))},new Promise(((e,t)=>{var r=e=>{try{o(d.next(e))}catch(r){t(r)}},n=e=>{try{o(d.throw(e))}catch(r){t(r)}},o=t=>t.done?e(t.value):Promise.resolve(t.value).then(r,n);o((d=d.apply(s,a)).next())}));var s,a,d}),0)}};let g=d;g.Symbol=s;const v=Symbol.for("MetricsCorePlugin"),y=Symbol.for("MetricsViewBeaconPluginContext");var m=Object.defineProperty,w=Object.defineProperties,b=Object.getOwnPropertyDescriptors,E=Object.getOwnPropertySymbols,S=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,r)=>t in e?m(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,O=(e,t)=>{for(var r in t||(t={}))S.call(t,r)&&x(e,r,t[r]);if(E)for(var r of E(t))k.call(t,r)&&x(e,r,t[r]);return e},R=(e,t)=>w(e,b(t)),P=(e,t,r)=>new Promise(((n,o)=>{var i=e=>{try{a(r.next(e))}catch(t){o(t)}},s=e=>{try{a(r.throw(e))}catch(t){o(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(i,s);a((r=r.apply(e,t)).next())}));const A="undefined"===typeof performance?()=>Date.now():()=>performance.now(),_=["onFlowBegin","onFlowEnd","onInteractive","onNodeStart","onNodeEnd","onRenderStart","onRenderEnd","onUpdateStart","onUpdateEnd","onUpdate"],T=class{constructor(e){this.symbol=T.Symbol,this.metricsPlugin=e,this.metricsPlugin.hooks.onRenderEnd.tap("MetricsViewBeaconPlugin",(e=>{e.completed&&this.resolvePendingRenderTime&&(this.resolvePendingRenderTime(e.duration),this.resolvePendingRenderTime=void 0)}))}apply(e){e.hooks.buildBeacon.intercept({context:!0,call:(e,t)=>{e&&"viewed"===t.action&&(e[this.symbol]=this.buildContext())}})}buildContext(){return P(this,null,(function*(){return{renderTime:yield this.getRenderTime(),requestTime:this.getRequestTime()}}))}getRenderTime(){return P(this,null,(function*(){const{flow:e}=this.metricsPlugin.getMetrics();if(e){const t=e.timeline[e.timeline.length-1];if("render"in t&&t.render.completed)return t.render.duration}return new Promise((e=>{this.resolvePendingRenderTime=e}))}))}getRequestTime(){const{flow:e}=this.metricsPlugin.getMetrics();return null==e?void 0:e.requestTime}};let C=T;C.Symbol=y;class j{constructor(e){this.name="RequestTimeWebPlugin",this.getRequestTime=e}apply(e){e.hooks.resolveRequestTime.tap(this.name,(()=>this.getRequestTime()))}}class U{constructor(e){var t,r,o;this.name="metrics",this.symbol=v,this.hooks={resolveRequestTime:new n.b,onFlowBegin:new n.c,onFlowEnd:new n.c,onInteractive:new n.c,onNodeStart:new n.c,onNodeEnd:new n.c,onRenderStart:new n.c,onRenderEnd:new n.c,onUpdateStart:new n.c,onUpdateEnd:new n.c,onUpdate:new n.c},this.metrics={},this.trackRender=null!=(t=null==e?void 0:e.trackRenderTime)&&t,this.trackUpdate=null!=(r=null==e?void 0:e.trackUpdateTime)&&r,this.getTime=null!=(o=null==e?void 0:e.getTime)?o:A;const i=()=>{this.hooks.onUpdate.call(this.metrics)};this.hooks.onFlowBegin.tap(this.name,i),this.hooks.onFlowEnd.tap(this.name,i),this.hooks.onInteractive.tap(this.name,i),this.hooks.onNodeStart.tap(this.name,i),this.hooks.onNodeEnd.tap(this.name,i),this.hooks.onRenderStart.tap(this.name,i),this.hooks.onRenderEnd.tap(this.name,i),this.hooks.onUpdateStart.tap(this.name,i),this.hooks.onUpdateEnd.tap(this.name,i),_.forEach((t=>{void 0!==(null==e?void 0:e[t])&&this.hooks[t].tap("options",null==e?void 0:e[t])}))}getMetrics(){return this.metrics}renderStart(){var e;const t=null==(e=this.metrics.flow)?void 0:e.timeline;if(!t||0===t.length)return;const r=t[t.length-1];if("updates"in r){if(r.updates.length>0){if(!1===r.updates[r.updates.length-1].completed)return}if(!r.render.completed)return;const e={completed:!1,startTime:A()};r.updates.push(e),this.hooks.onUpdateStart.call(e,r,this.metrics)}else{const e=R(O({},r),{render:{completed:!1,startTime:A()},updates:[]});t[t.length-1]=e,this.hooks.onRenderStart.call(e.render,e,this.metrics)}}renderEnd(){if(!this.trackRender)throw new Error("Must start the metrics-plugin with render tracking enabled");const{flow:e}=this.metrics;if(!e)return;const{timeline:t,interactive:r}=e;if(!t||!r||0===t.length)return;const n=t[t.length-1];if(!("render"in n))return;const o=A();if(n.render.completed){if(0===n.updates.length)return;const e=n.updates[n.updates.length-1];if(!0===e.completed)return;const t=R(O({},e),{completed:!0,endTime:o,duration:o-e.startTime});n.updates[n.updates.length-1]=t,this.hooks.onUpdateEnd.call(t,n,this.metrics)}else n.render=R(O({},n.render),{completed:!0,endTime:o,duration:o-n.startTime}),this.hooks.onRenderEnd.call(n.render,n,this.metrics),r.completed||(e.interactive=R(O({},r),{completed:!0,duration:o-r.startTime,endTime:o}),this.hooks.onInteractive.call(e.interactive,this.metrics))}apply(e){e.hooks.onStart.tap(this.name,(e=>{const t=this.hooks.resolveRequestTime.call(),r=A();this.metrics={flow:{id:e.id,requestTime:null!=t?t:void 0,timeline:[],startTime:r,completed:!1,interactive:{completed:!1,startTime:r}}},this.hooks.onFlowBegin.call(this.metrics)})),e.hooks.state.tap(this.name,(e=>{if("completed"===e.status||"error"===e.status){const e=A(),{flow:t}=this.metrics;if(void 0===t||!0===(null==t?void 0:t.completed))return;this.metrics={flow:R(O({},t),{completed:!0,endTime:e,duration:e-t.startTime})};const r=t.timeline[t.timeline.length-1];r&&!r.completed&&(this.metrics.flow.timeline[t.timeline.length-1]=R(O({},r),{completed:!0,endTime:e,duration:e-r.startTime})),this.hooks.onFlowEnd.call(this.metrics)}})),e.hooks.flowController.tap(this.name,(e=>{e.hooks.flow.tap(this.name,(e=>{e.hooks.transition.tap(this.name,((e,t)=>{const r=A(),{flow:n}=this.metrics;if(!n)return;const{timeline:o}=n;if(o.length>0){const e=o[o.length-1];if(e.completed)throw new Error("Completing a state that's already done.");o[o.length-1]=R(O({},e),{completed:!0,endTime:r,duration:r-e.startTime}),this.hooks.onNodeEnd.call(o[o.length-1])}const i={completed:!1,startTime:r,stateName:t.name,stateType:t.value.state_type};o.push(i),this.hooks.onNodeStart.call(i)}))}))})),this.trackRender&&(e.hooks.view.tap(this.name,(e=>{this.trackUpdate?e.hooks.onUpdate.tap(this.name,(()=>{this.renderStart()})):this.renderStart()})),e.applyTo(g.Symbol,(e=>new C(this).apply(e))))}}U.Symbol=v}])}));
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@player-ui/metrics-plugin",
|
|
3
|
-
"version": "0.7.4-next.
|
|
3
|
+
"version": "0.7.4-next.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
7
7
|
},
|
|
8
8
|
"peerDependencies": {
|
|
9
|
-
"@player-ui/player": "0.7.4-next.
|
|
9
|
+
"@player-ui/player": "0.7.4-next.3"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@player-ui/beacon-plugin": "0.7.4-next.
|
|
12
|
+
"@player-ui/beacon-plugin": "0.7.4-next.3",
|
|
13
13
|
"tapable-ts": "^0.2.3",
|
|
14
14
|
"@babel/runtime": "7.15.4"
|
|
15
15
|
},
|