@k67/kaitai-struct-ts 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.mjs +272 -0
- package/dist/browser/index.mjs.map +1 -0
- package/dist/cli.js +1614 -923
- package/dist/index.d.mts +70 -7
- package/dist/index.d.ts +70 -7
- package/dist/index.js +704 -46
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +704 -46
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -3
@@ -0,0 +1,272 @@
|
|
1
|
+
var et=class n extends Error{constructor(e,i,s){super(n.formatMessage(e,i,s));this.position=i;this.context=s;this.name="KaitaiError",Object.setPrototypeOf(this,n.prototype);}static formatMessage(e,i,s){let r=e;if(i!==void 0&&(r+=` (at byte offset 0x${i.toString(16).toUpperCase()})`),s&&s.length>0){let o=n.formatHexContext(s,i);r+=`
|
2
|
+
${o}`;}return r}static formatHexContext(e,i){let r=Math.max(0,(i??0)-16),o=Math.min(e.length,(i??0)+16),a=e.slice(r,o),c=["Context:"],l=r;for(let f=0;f<a.length;f+=16){let d=a.slice(f,f+16),u=Array.from(d).map(m=>m.toString(16).padStart(2,"0")).join(" "),h=Array.from(d).map(m=>m>=32&&m<=126?String.fromCharCode(m):".").join(""),g=` ${(l+f).toString(16).padStart(8,"0")}`,p=i!==void 0&&i>=l+f&&i<l+f+d.length?" <--":"";c.push(`${g}: ${u.padEnd(48," ")} | ${h}${p}`);}return c.join(`
|
3
|
+
`)}},je=class n extends et{constructor(t,e,i){super(t,e,i),this.name="ValidationError",Object.setPrototypeOf(this,n.prototype);}},A=class n extends et{constructor(t,e,i){super(t,e,i),this.name="ParseError",Object.setPrototypeOf(this,n.prototype);}},kt=class n extends et{constructor(t="Unexpected end of stream",e,i){super(t,e,i),this.name="EOFError",Object.setPrototypeOf(this,n.prototype);}},Ss=class n extends et{constructor(t){super(`Feature not yet implemented: ${t}`),this.name="NotImplementedError",Object.setPrototypeOf(this,n.prototype);}};function ci(n,t){switch(t.toLowerCase().replace(/[-_]/g,"")){case "utf8":case "utf-8":return qo(n);case "ascii":case "usascii":return Vo(n);case "utf16":case "utf16le":case "utf-16le":return Ho(n);case "utf16be":case "utf-16be":return Yo(n);case "latin1":case "iso88591":case "iso-8859-1":return Zo(n);default:if(typeof TextDecoder<"u")try{return new TextDecoder(t).decode(n)}catch{throw new Error(`Unsupported encoding: ${t}`)}throw new Error(`Unsupported encoding: ${t}`)}}function qo(n){if(typeof TextDecoder<"u")return new TextDecoder("utf-8").decode(n);let t="",e=0;for(;e<n.length;){let i=n[e++];if(i<128)t+=String.fromCharCode(i);else if(i<224){let s=n[e++];t+=String.fromCharCode((i&31)<<6|s&63);}else if(i<240){let s=n[e++],r=n[e++];t+=String.fromCharCode((i&15)<<12|(s&63)<<6|r&63);}else {let s=n[e++],r=n[e++],o=n[e++],a=(i&7)<<18|(s&63)<<12|(r&63)<<6|o&63;a-=65536,t+=String.fromCharCode(55296+(a>>10),56320+(a&1023));}}return t}function Vo(n){let t="";for(let e=0;e<n.length;e++)t+=String.fromCharCode(n[e]&127);return t}function Zo(n){let t="";for(let e=0;e<n.length;e++)t+=String.fromCharCode(n[e]);return t}function Ho(n){if(typeof TextDecoder<"u")return new TextDecoder("utf-16le").decode(n);let t="";for(let e=0;e<n.length;e+=2){let i=n[e]|n[e+1]<<8;t+=String.fromCharCode(i);}return t}function Yo(n){if(typeof TextDecoder<"u")return new TextDecoder("utf-16be").decode(n);let t="";for(let e=0;e<n.length;e+=2){let i=n[e]<<8|n[e+1];t+=String.fromCharCode(i);}return t}var he=class n{constructor(t){this.i=0;this.l=0;this.s=0;t instanceof ArrayBuffer?(this.buffer=new Uint8Array(t),this.view=new DataView(t)):(this.buffer=t,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength));}get pos(){return this.i}set pos(t){this.i=t,this.s=0;}get size(){return this.buffer.length}isEof(){return this.i>=this.buffer.length}seek(t){if(t<0||t>this.buffer.length)throw new Error(`Invalid seek position: ${t}`);this.pos=t;}ensureBytes(t){if(this.i+t>this.buffer.length)throw new kt(`Requested ${t} bytes at position ${this.i}, but only ${this.buffer.length-this.i} bytes available`,this.i)}readU1(){return this.ensureBytes(1),this.buffer[this.i++]}readU2le(){this.ensureBytes(2);let t=this.view.getUint16(this.i,true);return this.i+=2,t}readU2be(){this.ensureBytes(2);let t=this.view.getUint16(this.i,false);return this.i+=2,t}readU4le(){this.ensureBytes(4);let t=this.view.getUint32(this.i,true);return this.i+=4,t}readU4be(){this.ensureBytes(4);let t=this.view.getUint32(this.i,false);return this.i+=4,t}readU8le(){this.ensureBytes(8);let t=this.view.getBigUint64(this.i,true);return this.i+=8,t}readU8be(){this.ensureBytes(8);let t=this.view.getBigUint64(this.i,false);return this.i+=8,t}readS1(){return this.ensureBytes(1),this.view.getInt8(this.i++)}readS2le(){this.ensureBytes(2);let t=this.view.getInt16(this.i,true);return this.i+=2,t}readS2be(){this.ensureBytes(2);let t=this.view.getInt16(this.i,false);return this.i+=2,t}readS4le(){this.ensureBytes(4);let t=this.view.getInt32(this.i,true);return this.i+=4,t}readS4be(){this.ensureBytes(4);let t=this.view.getInt32(this.i,false);return this.i+=4,t}readS8le(){this.ensureBytes(8);let t=this.view.getBigInt64(this.i,true);return this.i+=8,t}readS8be(){this.ensureBytes(8);let t=this.view.getBigInt64(this.i,false);return this.i+=8,t}readF4le(){this.ensureBytes(4);let t=this.view.getFloat32(this.i,true);return this.i+=4,t}readF4be(){this.ensureBytes(4);let t=this.view.getFloat32(this.i,false);return this.i+=4,t}readF8le(){this.ensureBytes(8);let t=this.view.getFloat64(this.i,true);return this.i+=8,t}readF8be(){this.ensureBytes(8);let t=this.view.getFloat64(this.i,false);return this.i+=8,t}readBytes(t){this.ensureBytes(t);let e=this.buffer.slice(this.i,this.i+t);return this.i+=t,e}readBytesFull(){let t=this.buffer.slice(this.i);return this.i=this.buffer.length,t}readBytesterm(t,e=false,i=true,s=true){let r=this.i,o=r;for(;o<this.buffer.length&&this.buffer[o]!==t;)o++;let a=o<this.buffer.length;if(!a&&s)throw new kt(`Terminator byte ${t} not found before end of stream`,this.i);let c=e&&a?o+1:o,l=this.buffer.slice(r,c);return a&&i?this.i=o+1:this.i=o,l}readStr(t,e="UTF-8"){let i=this.readBytes(t);return ci(i,e)}readStrz(t="UTF-8",e=0,i=false,s=true,r=true){let o=this.readBytesterm(e,i,s,r);return ci(o,t)}alignToByte(){this.s=0;}readBitsIntBe(t){if(t<1||t>64)throw new Error(`Invalid bit count: ${t}. Must be between 1 and 64`);let e=0n;for(let i=t;i>0;){this.s===0&&(this.l=this.readU1(),this.s=8);let s=Math.min(i,this.s),r=(1<<s)-1,o=this.s-s;e=e<<BigInt(s)|BigInt(this.l>>o&r),this.s-=s,i-=s;}return e}readBitsIntLe(t){if(t<1||t>64)throw new Error(`Invalid bit count: ${t}. Must be between 1 and 64`);let e=0n,i=0;for(let s=t;s>0;){this.s===0&&(this.l=this.readU1(),this.s=8);let r=Math.min(s,this.s),o=(1<<r)-1;e|=BigInt(this.l&o)<<BigInt(i),this.l>>=r,this.s-=r,s-=r,i+=r;}return e}getBuffer(){return this.buffer}substream(t){this.ensureBytes(t);let e=this.buffer.slice(this.i,this.i+t);return this.i+=t,new n(e)}};var ks=["u1","u2","u2le","u2be","u4","u4le","u4be","u8","u8le","u8be","s1","s2","s2le","s2be","s4","s4le","s4be","s8","s8le","s8be","f4","f4le","f4be","f8","f8le","f8be","str","strz"];function fi(n){return !!(ks.includes(n)||/^b\d+$/.test(n))}function ui(n){if(n.endsWith("le"))return "le";if(n.endsWith("be"))return "be"}function vt(n){return n.endsWith("le")||n.endsWith("be")?n.slice(0,-2):n}function hi(n){let t=vt(n);return /^[us][1248]$/.test(t)}function di(n){let t=vt(n);return /^f[48]$/.test(t)}function pi(n){return n==="str"||n==="strz"}var dn=Symbol.for("yaml.alias"),pn=Symbol.for("yaml.document"),ie=Symbol.for("yaml.map"),mi=Symbol.for("yaml.pair"),W=Symbol.for("yaml.scalar"),Ae=Symbol.for("yaml.seq"),Z=Symbol.for("yaml.node.type"),X=n=>!!n&&typeof n=="object"&&n[Z]===dn,de=n=>!!n&&typeof n=="object"&&n[Z]===pn,se=n=>!!n&&typeof n=="object"&&n[Z]===ie,C=n=>!!n&&typeof n=="object"&&n[Z]===mi,O=n=>!!n&&typeof n=="object"&&n[Z]===W,re=n=>!!n&&typeof n=="object"&&n[Z]===Ae;function B(n){if(n&&typeof n=="object")switch(n[Z]){case ie:case Ae:return true}return false}function R(n){if(n&&typeof n=="object")switch(n[Z]){case dn:case ie:case W:case Ae:return true}return false}var mn=n=>(O(n)||B(n))&&!!n.anchor;var Y=Symbol("break visit"),vs=Symbol("skip children"),pe=Symbol("remove node");function me(n,t){let e=As(t);de(n)?tt(null,n.contents,e,Object.freeze([n]))===pe&&(n.contents=null):tt(null,n,e,Object.freeze([]));}me.BREAK=Y;me.SKIP=vs;me.REMOVE=pe;function tt(n,t,e,i){let s=Es(n,t,e,i);if(R(s)||C(s))return Ns(n,i,s),tt(n,s,e,i);if(typeof s!="symbol"){if(B(t)){i=Object.freeze(i.concat(t));for(let r=0;r<t.items.length;++r){let o=tt(r,t.items[r],e,i);if(typeof o=="number")r=o-1;else {if(o===Y)return Y;o===pe&&(t.items.splice(r,1),r-=1);}}}else if(C(t)){i=Object.freeze(i.concat(t));let r=tt("key",t.key,e,i);if(r===Y)return Y;r===pe&&(t.key=null);let o=tt("value",t.value,e,i);if(o===Y)return Y;o===pe&&(t.value=null);}}return s}function As(n){return typeof n=="object"&&(n.Collection||n.Node||n.Value)?Object.assign({Alias:n.Node,Map:n.Node,Scalar:n.Node,Seq:n.Node},n.Value&&{Map:n.Value,Scalar:n.Value,Seq:n.Value},n.Collection&&{Map:n.Collection,Seq:n.Collection},n):n}function Es(n,t,e,i){if(typeof e=="function")return e(n,t,i);if(se(t))return e.Map?.(n,t,i);if(re(t))return e.Seq?.(n,t,i);if(C(t))return e.Pair?.(n,t,i);if(O(t))return e.Scalar?.(n,t,i);if(X(t))return e.Alias?.(n,t,i)}function Ns(n,t,e){let i=t[t.length-1];if(B(i))i.items[n]=e;else if(C(i))n==="key"?i.key=e:i.value=e;else if(de(i))i.contents=e;else {let s=X(i)?"alias":"scalar";throw new Error(`Cannot replace node with ${s} parent`)}}var Go={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Wo=n=>n.replace(/[!,[\]{}]/g,t=>Go[t]),ge=class n{constructor(t,e){this.docStart=null,this.docEnd=false,this.yaml=Object.assign({},n.defaultYaml,t),this.tags=Object.assign({},n.defaultTags,e);}clone(){let t=new n(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new n(this.yaml,this.tags);switch(this.yaml.version){case "1.1":this.atNextDocument=true;break;case "1.2":this.atNextDocument=false,this.yaml={explicit:n.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},n.defaultTags);break}return t}add(t,e){this.atNextDocument&&(this.yaml={explicit:n.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},n.defaultTags),this.atNextDocument=false);let i=t.trim().split(/[ \t]+/),s=i.shift();switch(s){case "%TAG":{if(i.length!==2&&(e(0,"%TAG directive should contain exactly two parts"),i.length<2))return false;let[r,o]=i;return this.tags[r]=o,true}case "%YAML":{if(this.yaml.explicit=true,i.length!==1)return e(0,"%YAML directive should contain exactly one part"),false;let[r]=i;if(r==="1.1"||r==="1.2")return this.yaml.version=r,true;{let o=/^\d+\.\d+$/.test(r);return e(6,`Unsupported YAML version ${r}`,o),false}}default:return e(0,`Unknown directive ${s}`,true),false}}tagName(t,e){if(t==="!")return "!";if(t[0]!=="!")return e(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let o=t.slice(2,-1);return o==="!"||o==="!!"?(e(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&e("Verbatim tags must end with a >"),o)}let[,i,s]=t.match(/^(.*!)([^!]*)$/s);s||e(`The ${t} tag has no suffix`);let r=this.tags[i];if(r)try{return r+decodeURIComponent(s)}catch(o){return e(String(o)),null}return i==="!"?t:(e(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[e,i]of Object.entries(this.tags))if(t.startsWith(i))return e+Wo(t.substring(i.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let e=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],i=Object.entries(this.tags),s;if(t&&i.length>0&&R(t.contents)){let r={};me(t.contents,(o,a)=>{R(a)&&a.tag&&(r[a.tag]=true);}),s=Object.keys(r);}else s=[];for(let[r,o]of i)r==="!!"&&o==="tag:yaml.org,2002:"||(!t||s.some(a=>a.startsWith(o)))&&e.push(`%TAG ${r} ${o}`);return e.join(`
|
4
|
+
`)}};ge.defaultYaml={explicit:false,version:"1.2"};ge.defaultTags={"!!":"tag:yaml.org,2002:"};function yn(n){if(/[\x00-\x19\s,[\]{}]/.test(n)){let e=`Anchor must not contain whitespace or control characters: ${JSON.stringify(n)}`;throw new Error(e)}return true}function gi(n){let t=new Set;return me(n,{Value(e,i){i.anchor&&t.add(i.anchor);}}),t}function yi(n,t){for(let e=1;;++e){let i=`${n}${e}`;if(!t.has(i))return i}}function xs(n,t){let e=[],i=new Map,s=null;return {onAnchor:r=>{e.push(r),s??(s=gi(n));let o=yi(t,s);return s.add(o),o},setAnchors:()=>{for(let r of e){let o=i.get(r);if(typeof o=="object"&&o.anchor&&(O(o.node)||B(o.node)))o.node.anchor=o.anchor;else {let a=new Error("Failed to resolve repeated object (this should not happen)");throw a.source=r,a}}},sourceObjects:i}}function Le(n,t,e,i){if(i&&typeof i=="object")if(Array.isArray(i))for(let s=0,r=i.length;s<r;++s){let o=i[s],a=Le(n,i,String(s),o);a===void 0?delete i[s]:a!==o&&(i[s]=a);}else if(i instanceof Map)for(let s of Array.from(i.keys())){let r=i.get(s),o=Le(n,i,s,r);o===void 0?i.delete(s):o!==r&&i.set(s,o);}else if(i instanceof Set)for(let s of Array.from(i)){let r=Le(n,i,s,s);r===void 0?i.delete(s):r!==s&&(i.delete(s),i.add(r));}else for(let[s,r]of Object.entries(i)){let o=Le(n,i,s,r);o===void 0?delete i[s]:o!==r&&(i[s]=o);}return n.call(t,e,i)}function K(n,t,e){if(Array.isArray(n))return n.map((i,s)=>K(i,String(s),e));if(n&&typeof n.toJSON=="function"){if(!e||!mn(n))return n.toJSON(t,e);let i={aliasCount:0,count:1,res:void 0};e.anchors.set(n,i),e.onCreate=r=>{i.res=r,delete e.onCreate;};let s=n.toJSON(t,e);return e.onCreate&&e.onCreate(s),s}return typeof n=="bigint"&&!e?.keep?Number(n):n}var Ce=class{constructor(t){Object.defineProperty(this,Z,{value:t});}clone(){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:e,maxAliasCount:i,onAnchor:s,reviver:r}={}){if(!de(t))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:t,keep:true,mapAsMap:e===true,mapKeyWarned:false,maxAliasCount:typeof i=="number"?i:100},a=K(this,"",o);if(typeof s=="function")for(let{count:c,res:l}of o.anchors.values())s(l,c);return typeof r=="function"?Le(r,{"":a},"",a):a}};var Ee=class extends Ce{constructor(t){super(dn),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}});}resolve(t,e){let i;e?.aliasResolveCache?i=e.aliasResolveCache:(i=[],me(t,{Node:(r,o)=>{(X(o)||mn(o))&&i.push(o);}}),e&&(e.aliasResolveCache=i));let s;for(let r of i){if(r===this)break;r.anchor===this.source&&(s=r);}return s}toJSON(t,e){if(!e)return {source:this.source};let{anchors:i,doc:s,maxAliasCount:r}=e,o=this.resolve(s,e);if(!o){let c=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(c)}let a=i.get(o);if(a||(K(o,null,e),a=i.get(o)),!a||a.res===void 0){let c="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(c)}if(r>=0&&(a.count+=1,a.aliasCount===0&&(a.aliasCount=bn(s,o,i)),a.count*a.aliasCount>r)){let c="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(c)}return a.res}toString(t,e,i){let s=`*${this.source}`;if(t){if(yn(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){let r=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(r)}if(t.implicitKey)return `${s} `}return s}};function bn(n,t,e){if(X(t)){let i=t.resolve(n),s=e&&i&&e.get(i);return s?s.count*s.aliasCount:0}else if(B(t)){let i=0;for(let s of t.items){let r=bn(n,s,e);r>i&&(i=r);}return i}else if(C(t)){let i=bn(n,t.key,e),s=bn(n,t.value,e);return Math.max(i,s)}return 1}var wn=n=>!n||typeof n!="function"&&typeof n!="object",E=class extends Ce{constructor(t){super(W),this.value=t;}toJSON(t,e){return e?.keep?this.value:K(this.value,t,e)}toString(){return String(this.value)}};E.BLOCK_FOLDED="BLOCK_FOLDED";E.BLOCK_LITERAL="BLOCK_LITERAL";E.PLAIN="PLAIN";E.QUOTE_DOUBLE="QUOTE_DOUBLE";E.QUOTE_SINGLE="QUOTE_SINGLE";var Jo="tag:yaml.org,2002:";function Qo(n,t,e){if(t){let i=e.filter(r=>r.tag===t),s=i.find(r=>!r.format)??i[0];if(!s)throw new Error(`Tag ${t} not found`);return s}return e.find(i=>i.identify?.(n)&&!i.format)}function Ne(n,t,e){if(de(n)&&(n=n.contents),R(n))return n;if(C(n)){let d=e.schema[ie].createNode?.(e.schema,null,e);return d.items.push(n),d}(n instanceof String||n instanceof Number||n instanceof Boolean||typeof BigInt<"u"&&n instanceof BigInt)&&(n=n.valueOf());let{aliasDuplicateObjects:i,onAnchor:s,onTagObj:r,schema:o,sourceObjects:a}=e,c;if(i&&n&&typeof n=="object"){if(c=a.get(n),c)return c.anchor??(c.anchor=s(n)),new Ee(c.anchor);c={anchor:null,node:null},a.set(n,c);}t?.startsWith("!!")&&(t=Jo+t.slice(2));let l=Qo(n,t,o.tags);if(!l){if(n&&typeof n.toJSON=="function"&&(n=n.toJSON()),!n||typeof n!="object"){let d=new E(n);return c&&(c.node=d),d}l=n instanceof Map?o[ie]:Symbol.iterator in Object(n)?o[Ae]:o[ie];}r&&(r(l),delete e.onTagObj);let f=l?.createNode?l.createNode(e.schema,n,e):typeof l?.nodeClass?.from=="function"?l.nodeClass.from(e.schema,n,e):new E(n);return t?f.tag=t:l.default||(f.tag=l.tag),c&&(c.node=f),f}function At(n,t,e){let i=e;for(let s=t.length-1;s>=0;--s){let r=t[s];if(typeof r=="number"&&Number.isInteger(r)&&r>=0){let o=[];o[r]=i,i=o;}else i=new Map([[r,i]]);}return Ne(i,void 0,{aliasDuplicateObjects:false,keepUndefined:false,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:n,sourceObjects:new Map})}var st=n=>n==null||typeof n=="object"&&!!n[Symbol.iterator]().next().done,it=class extends Ce{constructor(t,e){super(t),Object.defineProperty(this,"schema",{value:e,configurable:true,enumerable:false,writable:true});}clone(t){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(e.schema=t),e.items=e.items.map(i=>R(i)||C(i)?i.clone(t):i),this.range&&(e.range=this.range.slice()),e}addIn(t,e){if(st(t))this.add(e);else {let[i,...s]=t,r=this.get(i,true);if(B(r))r.addIn(s,e);else if(r===void 0&&this.schema)this.set(i,At(this.schema,s,e));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${s}`)}}deleteIn(t){let[e,...i]=t;if(i.length===0)return this.delete(e);let s=this.get(e,true);if(B(s))return s.deleteIn(i);throw new Error(`Expected YAML collection at ${e}. Remaining path: ${i}`)}getIn(t,e){let[i,...s]=t,r=this.get(i,true);return s.length===0?!e&&O(r)?r.value:r:B(r)?r.getIn(s,e):void 0}hasAllNullValues(t){return this.items.every(e=>{if(!C(e))return false;let i=e.value;return i==null||t&&O(i)&&i.value==null&&!i.commentBefore&&!i.comment&&!i.tag})}hasIn(t){let[e,...i]=t;if(i.length===0)return this.has(e);let s=this.get(e,true);return B(s)?s.hasIn(i):false}setIn(t,e){let[i,...s]=t;if(s.length===0)this.set(i,e);else {let r=this.get(i,true);if(B(r))r.setIn(s,e);else if(r===void 0&&this.schema)this.set(i,At(this.schema,s,e));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${s}`)}}};var Ts=n=>n.replace(/^(?!$)(?: $)?/gm,"#");function ee(n,t){return /^\n+$/.test(n)?n.substring(1):t?n.replace(/^(?! *$)/gm,t):n}var ye=(n,t,e)=>n.endsWith(`
|
5
|
+
`)?ee(e,t):e.includes(`
|
6
|
+
`)?`
|
7
|
+
`+ee(e,t):(n.endsWith(" ")?"":" ")+e;var bi="flow",_n="block",Et="quoted";function Nt(n,t,e="flow",{indentAtStart:i,lineWidth:s=80,minContentWidth:r=20,onFold:o,onOverflow:a}={}){if(!s||s<0)return n;s<r&&(r=0);let c=Math.max(1+r,1+s-t.length);if(n.length<=c)return n;let l=[],f={},d=s-t.length;typeof i=="number"&&(i>s-Math.max(2,r)?l.push(0):d=s-i);let u,h,g=false,p=-1,m=-1,b=-1;e===_n&&(p=Is(n,p,t.length),p!==-1&&(d=p+c));for(let S;S=n[p+=1];){if(e===Et&&S==="\\"){switch(m=p,n[p+1]){case "x":p+=3;break;case "u":p+=5;break;case "U":p+=9;break;default:p+=1;}b=p;}if(S===`
|
8
|
+
`)e===_n&&(p=Is(n,p,t.length)),d=p+t.length+c,u=void 0;else {if(S===" "&&h&&h!==" "&&h!==`
|
9
|
+
`&&h!==" "){let y=n[p+1];y&&y!==" "&&y!==`
|
10
|
+
`&&y!==" "&&(u=p);}if(p>=d)if(u)l.push(u),d=u+c,u=void 0;else if(e===Et){for(;h===" "||h===" ";)h=S,S=n[p+=1],g=true;let y=p>b+1?p-2:m-1;if(f[y])return n;l.push(y),f[y]=true,d=y+c,u=void 0;}else g=true;}h=S;}if(g&&a&&a(),l.length===0)return n;o&&o();let _=n.slice(0,l[0]);for(let S=0;S<l.length;++S){let y=l[S],v=l[S+1]||n.length;y===0?_=`
|
11
|
+
${t}${n.slice(0,v)}`:(e===Et&&f[y]&&(_+=`${n[y]}\\`),_+=`
|
12
|
+
${t}${n.slice(y+1,v)}`);}return _}function Is(n,t,e){let i=t,s=t+1,r=n[s];for(;r===" "||r===" ";)if(t<s+e)r=n[++t];else {do r=n[++t];while(r&&r!==`
|
13
|
+
`);i=t,s=t+1,r=n[s];}return i}var kn=(n,t)=>({indentAtStart:t?n.indent.length:n.indentAtStart,lineWidth:n.options.lineWidth,minContentWidth:n.options.minContentWidth}),vn=n=>/^(%|---|\.\.\.)/m.test(n);function Xo(n,t,e){if(!t||t<0)return false;let i=t-e,s=n.length;if(s<=i)return false;for(let r=0,o=0;r<s;++r)if(n[r]===`
|
14
|
+
`){if(r-o>i)return true;if(o=r+1,s-o<=i)return false}return true}function xt(n,t){let e=JSON.stringify(n);if(t.options.doubleQuotedAsJSON)return e;let{implicitKey:i}=t,s=t.options.doubleQuotedMinMultiLineLength,r=t.indent||(vn(n)?" ":""),o="",a=0;for(let c=0,l=e[c];l;l=e[++c])if(l===" "&&e[c+1]==="\\"&&e[c+2]==="n"&&(o+=e.slice(a,c)+"\\ ",c+=1,a=c,l="\\"),l==="\\")switch(e[c+1]){case "u":{o+=e.slice(a,c);let f=e.substr(c+2,4);switch(f){case "0000":o+="\\0";break;case "0007":o+="\\a";break;case "000b":o+="\\v";break;case "001b":o+="\\e";break;case "0085":o+="\\N";break;case "00a0":o+="\\_";break;case "2028":o+="\\L";break;case "2029":o+="\\P";break;default:f.substr(0,2)==="00"?o+="\\x"+f.substr(2):o+=e.substr(c,6);}c+=5,a=c+1;}break;case "n":if(i||e[c+2]==='"'||e.length<s)c+=1;else {for(o+=e.slice(a,c)+`
|
15
|
+
|
16
|
+
`;e[c+2]==="\\"&&e[c+3]==="n"&&e[c+4]!=='"';)o+=`
|
17
|
+
`,c+=2;o+=r,e[c+2]===" "&&(o+="\\"),c+=1,a=c+1;}break;default:c+=1;}return o=a?o+e.slice(a):e,i?o:Nt(o,r,Et,kn(t,false))}function wi(n,t){if(t.options.singleQuote===false||t.implicitKey&&n.includes(`
|
18
|
+
`)||/[ \t]\n|\n[ \t]/.test(n))return xt(n,t);let e=t.indent||(vn(n)?" ":""),i="'"+n.replace(/'/g,"''").replace(/\n+/g,`$&
|
19
|
+
${e}`)+"'";return t.implicitKey?i:Nt(i,e,bi,kn(t,false))}function rt(n,t){let{singleQuote:e}=t.options,i;if(e===false)i=xt;else {let s=n.includes('"'),r=n.includes("'");s&&!r?i=wi:r&&!s?i=xt:i=e?wi:xt;}return i(n,t)}var _i;try{_i=new RegExp(`(^|(?<!
|
20
|
+
))
|
21
|
+
+(?!
|
22
|
+
|$)`,"g");}catch{_i=/\n+(?!\n|$)/g;}function Sn({comment:n,type:t,value:e},i,s,r){let{blockQuote:o,commentString:a,lineWidth:c}=i.options;if(!o||/\n[\t ]+$/.test(e))return rt(e,i);let l=i.indent||(i.forceBlockIndent||vn(e)?" ":""),f=o==="literal"?true:o==="folded"||t===E.BLOCK_FOLDED?false:t===E.BLOCK_LITERAL?true:!Xo(e,c,l.length);if(!e)return f?`|
|
23
|
+
`:`>
|
24
|
+
`;let d,u;for(u=e.length;u>0;--u){let v=e[u-1];if(v!==`
|
25
|
+
`&&v!==" "&&v!==" ")break}let h=e.substring(u),g=h.indexOf(`
|
26
|
+
`);g===-1?d="-":e===h||g!==h.length-1?(d="+",r&&r()):d="",h&&(e=e.slice(0,-h.length),h[h.length-1]===`
|
27
|
+
`&&(h=h.slice(0,-1)),h=h.replace(_i,`$&${l}`));let p=false,m,b=-1;for(m=0;m<e.length;++m){let v=e[m];if(v===" ")p=true;else if(v===`
|
28
|
+
`)b=m;else break}let _=e.substring(0,b<m?b+1:m);_&&(e=e.substring(_.length),_=_.replace(/\n+/g,`$&${l}`));let y=(p?l?"2":"1":"")+d;if(n&&(y+=" "+a(n.replace(/ ?[\r\n]+/g," ")),s&&s()),!f){let v=e.replace(/\n+/g,`
|
29
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${l}`),N=false,k=kn(i,true);o!=="folded"&&t!==E.BLOCK_FOLDED&&(k.onOverflow=()=>{N=true;});let w=Nt(`${_}${v}${h}`,l,_n,k);if(!N)return `>${y}
|
30
|
+
${l}${w}`}return e=e.replace(/\n+/g,`$&${l}`),`|${y}
|
31
|
+
${l}${_}${e}${h}`}function ea(n,t,e,i){let{type:s,value:r}=n,{actualString:o,implicitKey:a,indent:c,indentStep:l,inFlow:f}=t;if(a&&r.includes(`
|
32
|
+
`)||f&&/[[\]{},]/.test(r))return rt(r,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(r))return a||f||!r.includes(`
|
33
|
+
`)?rt(r,t):Sn(n,t,e,i);if(!a&&!f&&s!==E.PLAIN&&r.includes(`
|
34
|
+
`))return Sn(n,t,e,i);if(vn(r)){if(c==="")return t.forceBlockIndent=true,Sn(n,t,e,i);if(a&&c===l)return rt(r,t)}let d=r.replace(/\n+/g,`$&
|
35
|
+
${c}`);if(o){let u=p=>p.default&&p.tag!=="tag:yaml.org,2002:str"&&p.test?.test(d),{compat:h,tags:g}=t.doc.schema;if(g.some(u)||h?.some(u))return rt(r,t)}return a?d:Nt(d,c,bi,kn(t,false))}function qe(n,t,e,i){let{implicitKey:s,inFlow:r}=t,o=typeof n.value=="string"?n:Object.assign({},n,{value:String(n.value)}),{type:a}=n;a!==E.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(a=E.QUOTE_DOUBLE);let c=f=>{switch(f){case E.BLOCK_FOLDED:case E.BLOCK_LITERAL:return s||r?rt(o.value,t):Sn(o,t,e,i);case E.QUOTE_DOUBLE:return xt(o.value,t);case E.QUOTE_SINGLE:return wi(o.value,t);case E.PLAIN:return ea(o,t,e,i);default:return null}},l=c(a);if(l===null){let{defaultKeyType:f,defaultStringType:d}=t.options,u=s&&f||d;if(l=c(u),l===null)throw new Error(`Unsupported default string type ${u}`)}return l}function An(n,t){let e=Object.assign({blockQuote:true,commentString:Ts,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:false,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:true,indentSeq:true,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:false,singleQuote:null,trueStr:"true",verifyAliasOrder:true},n.schema.toStringOptions,t),i;switch(e.collectionStyle){case "block":i=false;break;case "flow":i=true;break;default:i=null;}return {anchors:new Set,doc:n,flowCollectionPadding:e.flowCollectionPadding?" ":"",indent:"",indentStep:typeof e.indent=="number"?" ".repeat(e.indent):" ",inFlow:i,options:e}}function ta(n,t){if(t.tag){let s=n.filter(r=>r.tag===t.tag);if(s.length>0)return s.find(r=>r.format===t.format)??s[0]}let e,i;if(O(t)){i=t.value;let s=n.filter(r=>r.identify?.(i));if(s.length>1){let r=s.filter(o=>o.test);r.length>0&&(s=r);}e=s.find(r=>r.format===t.format)??s.find(r=>!r.format);}else i=t,e=n.find(s=>s.nodeClass&&i instanceof s.nodeClass);if(!e){let s=i?.constructor?.name??(i===null?"null":typeof i);throw new Error(`Tag not resolved for ${s} value`)}return e}function na(n,t,{anchors:e,doc:i}){if(!i.directives)return "";let s=[],r=(O(n)||B(n))&&n.anchor;r&&yn(r)&&(e.add(r),s.push(`&${r}`));let o=n.tag??(t.default?null:t.tag);return o&&s.push(i.directives.tagString(o)),s.join(" ")}function xe(n,t,e,i){if(C(n))return n.toString(t,e,i);if(X(n)){if(t.doc.directives)return n.toString(t);if(t.resolvedAliases?.has(n))throw new TypeError("Cannot stringify circular structure without alias nodes");t.resolvedAliases?t.resolvedAliases.add(n):t.resolvedAliases=new Set([n]),n=n.resolve(t.doc);}let s,r=R(n)?n:t.doc.createNode(n,{onTagObj:c=>s=c});s??(s=ta(t.doc.schema.tags,r));let o=na(r,s,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let a=typeof s.stringify=="function"?s.stringify(r,t,e,i):O(r)?qe(r,t,e,i):r.toString(t,e,i);return o?O(r)||a[0]==="{"||a[0]==="["?`${o} ${a}`:`${o}
|
36
|
+
${t.indent}${a}`:a}function Os({key:n,value:t},e,i,s){let{allNullValues:r,doc:o,indent:a,indentStep:c,options:{commentString:l,indentSeq:f,simpleKeys:d}}=e,u=R(n)&&n.comment||null;if(d){if(u)throw new Error("With simple keys, key nodes cannot have comments");if(B(n)||!R(n)&&typeof n=="object"){let k="With simple keys, collection cannot be used as a key value";throw new Error(k)}}let h=!d&&(!n||u&&t==null&&!e.inFlow||B(n)||(O(n)?n.type===E.BLOCK_FOLDED||n.type===E.BLOCK_LITERAL:typeof n=="object"));e=Object.assign({},e,{allNullValues:false,implicitKey:!h&&(d||!r),indent:a+c});let g=false,p=false,m=xe(n,e,()=>g=true,()=>p=true);if(!h&&!e.inFlow&&m.length>1024){if(d)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");h=true;}if(e.inFlow){if(r||t==null)return g&&i&&i(),m===""?"?":h?`? ${m}`:m}else if(r&&!d||t==null&&h)return m=`? ${m}`,u&&!g?m+=ye(m,e.indent,l(u)):p&&s&&s(),m;g&&(u=null),h?(u&&(m+=ye(m,e.indent,l(u))),m=`? ${m}
|
37
|
+
${a}:`):(m=`${m}:`,u&&(m+=ye(m,e.indent,l(u))));let b,_,S;R(t)?(b=!!t.spaceBefore,_=t.commentBefore,S=t.comment):(b=false,_=null,S=null,t&&typeof t=="object"&&(t=o.createNode(t))),e.implicitKey=false,!h&&!u&&O(t)&&(e.indentAtStart=m.length+1),p=false,!f&&c.length>=2&&!e.inFlow&&!h&&re(t)&&!t.flow&&!t.tag&&!t.anchor&&(e.indent=e.indent.substring(2));let y=false,v=xe(t,e,()=>y=true,()=>p=true),N=" ";if(u||b||_){if(N=b?`
|
38
|
+
`:"",_){let k=l(_);N+=`
|
39
|
+
${ee(k,e.indent)}`;}v===""&&!e.inFlow?N===`
|
40
|
+
`&&(N=`
|
41
|
+
|
42
|
+
`):N+=`
|
43
|
+
${e.indent}`;}else if(!h&&B(t)){let k=v[0],w=v.indexOf(`
|
44
|
+
`),x=w!==-1,T=e.inFlow??t.flow??t.items.length===0;if(x||!T){let I=false;if(x&&(k==="&"||k==="!")){let M=v.indexOf(" ");k==="&"&&M!==-1&&M<w&&v[M+1]==="!"&&(M=v.indexOf(" ",M+1)),(M===-1||w<M)&&(I=true);}I||(N=`
|
45
|
+
${e.indent}`);}}else (v===""||v[0]===`
|
46
|
+
`)&&(N="");return m+=N+v,e.inFlow?y&&i&&i():S&&!y?m+=ye(m,e.indent,l(S)):p&&s&&s(),m}var En="<<",oe={identify:n=>n===En||typeof n=="symbol"&&n.description===En,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new E(Symbol(En)),{addToJSMap:ki}),stringify:()=>En},Ls=(n,t)=>(oe.identify(t)||O(t)&&(!t.type||t.type===E.PLAIN)&&oe.identify(t.value))&&n?.doc.schema.tags.some(e=>e.tag===oe.tag&&e.default);function ki(n,t,e){if(e=n&&X(e)?e.resolve(n.doc):e,re(e))for(let i of e.items)Si(n,t,i);else if(Array.isArray(e))for(let i of e)Si(n,t,i);else Si(n,t,e);}function Si(n,t,e){let i=n&&X(e)?e.resolve(n.doc):e;if(!se(i))throw new Error("Merge sources must be maps or map aliases");let s=i.toJSON(null,n,Map);for(let[r,o]of s)t instanceof Map?t.has(r)||t.set(r,o):t instanceof Set?t.add(r):Object.prototype.hasOwnProperty.call(t,r)||Object.defineProperty(t,r,{value:o,writable:true,enumerable:true,configurable:true});return t}function Nn(n,t,{key:e,value:i}){if(R(e)&&e.addToJSMap)e.addToJSMap(n,t,i);else if(Ls(n,e))ki(n,t,i);else {let s=K(e,"",n);if(t instanceof Map)t.set(s,K(i,s,n));else if(t instanceof Set)t.add(s);else {let r=sa(e,s,n),o=K(i,r,n);r in t?Object.defineProperty(t,r,{value:o,writable:true,enumerable:true,configurable:true}):t[r]=o;}}return t}function sa(n,t,e){if(t===null)return "";if(typeof t!="object")return String(t);if(R(n)&&e?.doc){let i=An(e.doc,{});i.anchors=new Set;for(let r of e.anchors.keys())i.anchors.add(r.anchor);i.inFlow=true,i.inStringifyKey=true;let s=n.toString(i);if(!e.mapKeyWarned){let r=JSON.stringify(s);r.length>40&&(r=r.substring(0,36)+'..."'),e.doc.options.logLevel,e.mapKeyWarned=true;}return s}return JSON.stringify(t)}function ot(n,t,e){let i=Ne(n,void 0,e),s=Ne(t,void 0,e);return new P(i,s)}var P=class n{constructor(t,e=null){Object.defineProperty(this,Z,{value:mi}),this.key=t,this.value=e;}clone(t){let{key:e,value:i}=this;return R(e)&&(e=e.clone(t)),R(i)&&(i=i.clone(t)),new n(e,i)}toJSON(t,e){let i=e?.mapAsMap?new Map:{};return Nn(e,i,this)}toString(t,e,i){return t?.doc?Os(this,t,e,i):JSON.stringify(this)}};function Tn(n,t,e){return (t.inFlow??n.flow?oa:ra)(n,t,e)}function ra({comment:n,items:t},e,{blockItemPrefix:i,flowChars:s,itemIndent:r,onChompKeep:o,onComment:a}){let{indent:c,options:{commentString:l}}=e,f=Object.assign({},e,{indent:r,type:null}),d=false,u=[];for(let g=0;g<t.length;++g){let p=t[g],m=null;if(R(p))!d&&p.spaceBefore&&u.push(""),xn(e,u,p.commentBefore,d),p.comment&&(m=p.comment);else if(C(p)){let _=R(p.key)?p.key:null;_&&(!d&&_.spaceBefore&&u.push(""),xn(e,u,_.commentBefore,d));}d=false;let b=xe(p,f,()=>m=null,()=>d=true);m&&(b+=ye(b,r,l(m))),d&&m&&(d=false),u.push(i+b);}let h;if(u.length===0)h=s.start+s.end;else {h=u[0];for(let g=1;g<u.length;++g){let p=u[g];h+=p?`
|
47
|
+
${c}${p}`:`
|
48
|
+
`;}}return n?(h+=`
|
49
|
+
`+ee(l(n),c),a&&a()):d&&o&&o(),h}function oa({items:n},t,{flowChars:e,itemIndent:i}){let{indent:s,indentStep:r,flowCollectionPadding:o,options:{commentString:a}}=t;i+=r;let c=Object.assign({},t,{indent:i,inFlow:true,type:null}),l=false,f=0,d=[];for(let g=0;g<n.length;++g){let p=n[g],m=null;if(R(p))p.spaceBefore&&d.push(""),xn(t,d,p.commentBefore,false),p.comment&&(m=p.comment);else if(C(p)){let _=R(p.key)?p.key:null;_&&(_.spaceBefore&&d.push(""),xn(t,d,_.commentBefore,false),_.comment&&(l=true));let S=R(p.value)?p.value:null;S?(S.comment&&(m=S.comment),S.commentBefore&&(l=true)):p.value==null&&_?.comment&&(m=_.comment);}m&&(l=true);let b=xe(p,c,()=>m=null);g<n.length-1&&(b+=","),m&&(b+=ye(b,i,a(m))),!l&&(d.length>f||b.includes(`
|
50
|
+
`))&&(l=true),d.push(b),f=d.length;}let{start:u,end:h}=e;if(d.length===0)return u+h;if(!l){let g=d.reduce((p,m)=>p+m.length+2,2);l=t.options.lineWidth>0&&g>t.options.lineWidth;}if(l){let g=u;for(let p of d)g+=p?`
|
51
|
+
${r}${s}${p}`:`
|
52
|
+
`;return `${g}
|
53
|
+
${s}${h}`}else return `${u}${o}${d.join(" ")}${o}${h}`}function xn({indent:n,options:{commentString:t}},e,i,s){if(i&&s&&(i=i.replace(/^\n+/,"")),i){let r=ee(t(i),n);e.push(r.trimStart());}}function Re(n,t){let e=O(t)?t.value:t;for(let i of n)if(C(i)&&(i.key===t||i.key===e||O(i.key)&&i.key.value===e))return i}var z=class extends it{static get tagName(){return "tag:yaml.org,2002:map"}constructor(t){super(ie,t),this.items=[];}static from(t,e,i){let{keepUndefined:s,replacer:r}=i,o=new this(t),a=(c,l)=>{if(typeof r=="function")l=r.call(e,c,l);else if(Array.isArray(r)&&!r.includes(c))return;(l!==void 0||s)&&o.items.push(ot(c,l,i));};if(e instanceof Map)for(let[c,l]of e)a(c,l);else if(e&&typeof e=="object")for(let c of Object.keys(e))a(c,e[c]);return typeof t.sortMapEntries=="function"&&o.items.sort(t.sortMapEntries),o}add(t,e){let i;C(t)?i=t:!t||typeof t!="object"||!("key"in t)?i=new P(t,t?.value):i=new P(t.key,t.value);let s=Re(this.items,i.key),r=this.schema?.sortMapEntries;if(s){if(!e)throw new Error(`Key ${i.key} already set`);O(s.value)&&wn(i.value)?s.value.value=i.value:s.value=i.value;}else if(r){let o=this.items.findIndex(a=>r(i,a)<0);o===-1?this.items.push(i):this.items.splice(o,0,i);}else this.items.push(i);}delete(t){let e=Re(this.items,t);return e?this.items.splice(this.items.indexOf(e),1).length>0:false}get(t,e){let s=Re(this.items,t)?.value;return (!e&&O(s)?s.value:s)??void 0}has(t){return !!Re(this.items,t)}set(t,e){this.add(new P(t,e),true);}toJSON(t,e,i){let s=i?new i:e?.mapAsMap?new Map:{};e?.onCreate&&e.onCreate(s);for(let r of this.items)Nn(e,s,r);return s}toString(t,e,i){if(!t)return JSON.stringify(this);for(let s of this.items)if(!C(s))throw new Error(`Map items must all be pairs; found ${JSON.stringify(s)} instead`);return !t.allNullValues&&this.hasAllNullValues(false)&&(t=Object.assign({},t,{allNullValues:true})),Tn(this,t,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:t.indent||"",onChompKeep:i,onComment:e})}};var ae={collection:"map",default:true,nodeClass:z,tag:"tag:yaml.org,2002:map",resolve(n,t){return se(n)||t("Expected a mapping for this tag"),n},createNode:(n,t,e)=>z.from(n,t,e)};var q=class extends it{static get tagName(){return "tag:yaml.org,2002:seq"}constructor(t){super(Ae,t),this.items=[];}add(t){this.items.push(t);}delete(t){let e=In(t);return typeof e!="number"?false:this.items.splice(e,1).length>0}get(t,e){let i=In(t);if(typeof i!="number")return;let s=this.items[i];return !e&&O(s)?s.value:s}has(t){let e=In(t);return typeof e=="number"&&e<this.items.length}set(t,e){let i=In(t);if(typeof i!="number")throw new Error(`Expected a valid index, not ${t}.`);let s=this.items[i];O(s)&&wn(e)?s.value=e:this.items[i]=e;}toJSON(t,e){let i=[];e?.onCreate&&e.onCreate(i);let s=0;for(let r of this.items)i.push(K(r,String(s++),e));return i}toString(t,e,i){return t?Tn(this,t,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(t.indent||"")+" ",onChompKeep:i,onComment:e}):JSON.stringify(this)}static from(t,e,i){let{replacer:s}=i,r=new this(t);if(e&&Symbol.iterator in Object(e)){let o=0;for(let a of e){if(typeof s=="function"){let c=e instanceof Set?a:String(o++);a=s.call(e,c,a);}r.items.push(Ne(a,void 0,i));}}return r}};function In(n){let t=O(n)?n.value:n;return t&&typeof t=="string"&&(t=Number(t)),typeof t=="number"&&Number.isInteger(t)&&t>=0?t:null}var le={collection:"seq",default:true,nodeClass:q,tag:"tag:yaml.org,2002:seq",resolve(n,t){return re(n)||t("Expected a sequence for this tag"),n},createNode:(n,t,e)=>q.from(n,t,e)};var $e={identify:n=>typeof n=="string",default:true,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify(n,t,e,i){return t=Object.assign({actualString:true},t),qe(n,t,e,i)}};var Ve={identify:n=>n==null,createNode:()=>new E(null),default:true,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new E(null),stringify:({source:n},t)=>typeof n=="string"&&Ve.test.test(n)?n:t.options.nullStr};var Tt={identify:n=>typeof n=="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:n=>new E(n[0]==="t"||n[0]==="T"),stringify({source:n,value:t},e){if(n&&Tt.test.test(n)){let i=n[0]==="t"||n[0]==="T";if(t===i)return n}return t?e.options.trueStr:e.options.falseStr}};function V({format:n,minFractionDigits:t,tag:e,value:i}){if(typeof i=="bigint")return String(i);let s=typeof i=="number"?i:Number(i);if(!isFinite(s))return isNaN(s)?".nan":s<0?"-.inf":".inf";let r=JSON.stringify(i);if(!n&&t&&(!e||e==="tag:yaml.org,2002:float")&&/^\d/.test(r)){let o=r.indexOf(".");o<0&&(o=r.length,r+=".");let a=t-(r.length-o-1);for(;a-- >0;)r+="0";}return r}var On={identify:n=>typeof n=="number",default:true,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:V},Ln={identify:n=>typeof n=="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n),stringify(n){let t=Number(n.value);return isFinite(t)?t.toExponential():V(n)}},Cn={identify:n=>typeof n=="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(n){let t=new E(parseFloat(n)),e=n.indexOf(".");return e!==-1&&n[n.length-1]==="0"&&(t.minFractionDigits=n.length-e-1),t},stringify:V};var Rn=n=>typeof n=="bigint"||Number.isInteger(n),vi=(n,t,e,{intAsBigInt:i})=>i?BigInt(n):parseInt(n.substring(t),e);function Cs(n,t,e){let{value:i}=n;return Rn(i)&&i>=0?e+i.toString(t):V(n)}var $n={identify:n=>Rn(n)&&n>=0,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(n,t,e)=>vi(n,2,8,e),stringify:n=>Cs(n,8,"0o")},Bn={identify:Rn,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(n,t,e)=>vi(n,0,10,e),stringify:V},Dn={identify:n=>Rn(n)&&n>=0,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(n,t,e)=>vi(n,2,16,e),stringify:n=>Cs(n,16,"0x")};var Rs=[ae,le,$e,Ve,Tt,$n,Bn,Dn,On,Ln,Cn];function $s(n){return typeof n=="bigint"||Number.isInteger(n)}var Mn=({value:n})=>JSON.stringify(n),aa=[{identify:n=>typeof n=="string",default:true,tag:"tag:yaml.org,2002:str",resolve:n=>n,stringify:Mn},{identify:n=>n==null,createNode:()=>new E(null),default:true,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Mn},{identify:n=>typeof n=="boolean",default:true,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:n=>n==="true",stringify:Mn},{identify:$s,default:true,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(n,t,{intAsBigInt:e})=>e?BigInt(n):parseInt(n,10),stringify:({value:n})=>$s(n)?n.toString():JSON.stringify(n)},{identify:n=>typeof n=="number",default:true,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:n=>parseFloat(n),stringify:Mn}],la={default:true,tag:"",test:/^/,resolve(n,t){return t(`Unresolved plain scalar ${JSON.stringify(n)}`),n}},Bs=[ae,le].concat(aa,la);var It={identify:n=>n instanceof Uint8Array,default:false,tag:"tag:yaml.org,2002:binary",resolve(n,t){if(typeof atob=="function"){let e=atob(n.replace(/[\n\r]/g,"")),i=new Uint8Array(e.length);for(let s=0;s<e.length;++s)i[s]=e.charCodeAt(s);return i}else return t("This environment does not support reading binary tags; either Buffer or atob is required"),n},stringify({comment:n,type:t,value:e},i,s,r){if(!e)return "";let o=e,a;if(typeof btoa=="function"){let c="";for(let l=0;l<o.length;++l)c+=String.fromCharCode(o[l]);a=btoa(c);}else throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");if(t??(t=E.BLOCK_LITERAL),t!==E.QUOTE_DOUBLE){let c=Math.max(i.options.lineWidth-i.indent.length,i.options.minContentWidth),l=Math.ceil(a.length/c),f=new Array(l);for(let d=0,u=0;d<l;++d,u+=c)f[d]=a.substr(u,c);a=f.join(t===E.BLOCK_LITERAL?`
|
54
|
+
`:" ");}return qe({comment:n,type:t,value:a},i,s,r)}};function Ai(n,t){if(re(n))for(let e=0;e<n.items.length;++e){let i=n.items[e];if(!C(i)){if(se(i)){i.items.length>1&&t("Each pair must have its own sequence indicator");let s=i.items[0]||new P(new E(null));if(i.commentBefore&&(s.key.commentBefore=s.key.commentBefore?`${i.commentBefore}
|
55
|
+
${s.key.commentBefore}`:i.commentBefore),i.comment){let r=s.value??s.key;r.comment=r.comment?`${i.comment}
|
56
|
+
${r.comment}`:i.comment;}i=s;}n.items[e]=C(i)?i:new P(i);}}else t("Expected a sequence for this tag");return n}function Ei(n,t,e){let{replacer:i}=e,s=new q(n);s.tag="tag:yaml.org,2002:pairs";let r=0;if(t&&Symbol.iterator in Object(t))for(let o of t){typeof i=="function"&&(o=i.call(t,String(r++),o));let a,c;if(Array.isArray(o))if(o.length===2)a=o[0],c=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let l=Object.keys(o);if(l.length===1)a=l[0],c=o[a];else throw new TypeError(`Expected tuple with one key, not ${l.length} keys`)}else a=o;s.items.push(ot(a,c,e));}return s}var Ot={collection:"seq",default:false,tag:"tag:yaml.org,2002:pairs",resolve:Ai,createNode:Ei};var at=class n extends q{constructor(){super(),this.add=z.prototype.add.bind(this),this.delete=z.prototype.delete.bind(this),this.get=z.prototype.get.bind(this),this.has=z.prototype.has.bind(this),this.set=z.prototype.set.bind(this),this.tag=n.tag;}toJSON(t,e){if(!e)return super.toJSON(t);let i=new Map;e?.onCreate&&e.onCreate(i);for(let s of this.items){let r,o;if(C(s)?(r=K(s.key,"",e),o=K(s.value,r,e)):r=K(s,"",e),i.has(r))throw new Error("Ordered maps must not include duplicate keys");i.set(r,o);}return i}static from(t,e,i){let s=Ei(t,e,i),r=new this;return r.items=s.items,r}};at.tag="tag:yaml.org,2002:omap";var Lt={collection:"seq",identify:n=>n instanceof Map,nodeClass:at,default:false,tag:"tag:yaml.org,2002:omap",resolve(n,t){let e=Ai(n,t),i=[];for(let{key:s}of e.items)O(s)&&(i.includes(s.value)?t(`Ordered maps must not include duplicate keys: ${s.value}`):i.push(s.value));return Object.assign(new at,e)},createNode:(n,t,e)=>at.from(n,t,e)};function Ds({value:n,source:t},e){return t&&(n?Ni:xi).test.test(t)?t:n?e.options.trueStr:e.options.falseStr}var Ni={identify:n=>n===true,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new E(true),stringify:Ds},xi={identify:n=>n===false,default:true,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new E(false),stringify:Ds};var Ms={identify:n=>typeof n=="number",default:true,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:n=>n.slice(-3).toLowerCase()==="nan"?NaN:n[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:V},Us={identify:n=>typeof n=="number",default:true,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:n=>parseFloat(n.replace(/_/g,"")),stringify(n){let t=Number(n.value);return isFinite(t)?t.toExponential():V(n)}},Ps={identify:n=>typeof n=="number",default:true,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(n){let t=new E(parseFloat(n.replace(/_/g,""))),e=n.indexOf(".");if(e!==-1){let i=n.substring(e+1).replace(/_/g,"");i[i.length-1]==="0"&&(t.minFractionDigits=i.length);}return t},stringify:V};var Ct=n=>typeof n=="bigint"||Number.isInteger(n);function Un(n,t,e,{intAsBigInt:i}){let s=n[0];if((s==="-"||s==="+")&&(t+=1),n=n.substring(t).replace(/_/g,""),i){switch(e){case 2:n=`0b${n}`;break;case 8:n=`0o${n}`;break;case 16:n=`0x${n}`;break}let o=BigInt(n);return s==="-"?BigInt(-1)*o:o}let r=parseInt(n,e);return s==="-"?-1*r:r}function Ti(n,t,e){let{value:i}=n;if(Ct(i)){let s=i.toString(t);return i<0?"-"+e+s.substr(1):e+s}return V(n)}var zs={identify:Ct,default:true,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(n,t,e)=>Un(n,2,2,e),stringify:n=>Ti(n,2,"0b")},Ks={identify:Ct,default:true,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(n,t,e)=>Un(n,1,8,e),stringify:n=>Ti(n,8,"0")},Fs={identify:Ct,default:true,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(n,t,e)=>Un(n,0,10,e),stringify:V},js={identify:Ct,default:true,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(n,t,e)=>Un(n,2,16,e),stringify:n=>Ti(n,16,"0x")};var lt=class n extends z{constructor(t){super(t),this.tag=n.tag;}add(t){let e;C(t)?e=t:t&&typeof t=="object"&&"key"in t&&"value"in t&&t.value===null?e=new P(t.key,null):e=new P(t,null),Re(this.items,e.key)||this.items.push(e);}get(t,e){let i=Re(this.items,t);return !e&&C(i)?O(i.key)?i.key.value:i.key:i}set(t,e){if(typeof e!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof e}`);let i=Re(this.items,t);i&&!e?this.items.splice(this.items.indexOf(i),1):!i&&e&&this.items.push(new P(t));}toJSON(t,e){return super.toJSON(t,e,Set)}toString(t,e,i){if(!t)return JSON.stringify(this);if(this.hasAllNullValues(true))return super.toString(Object.assign({},t,{allNullValues:true}),e,i);throw new Error("Set items must all have null values")}static from(t,e,i){let{replacer:s}=i,r=new this(t);if(e&&Symbol.iterator in Object(e))for(let o of e)typeof s=="function"&&(o=s.call(e,o,o)),r.items.push(ot(o,null,i));return r}};lt.tag="tag:yaml.org,2002:set";var Rt={collection:"map",identify:n=>n instanceof Set,nodeClass:lt,default:false,tag:"tag:yaml.org,2002:set",createNode:(n,t,e)=>lt.from(n,t,e),resolve(n,t){if(se(n)){if(n.hasAllNullValues(true))return Object.assign(new lt,n);t("Set items must all have null values");}else t("Expected a mapping for this tag");return n}};function Ii(n,t){let e=n[0],i=e==="-"||e==="+"?n.substring(1):n,s=o=>t?BigInt(o):Number(o),r=i.replace(/_/g,"").split(":").reduce((o,a)=>o*s(60)+s(a),s(0));return e==="-"?s(-1)*r:r}function qs(n){let{value:t}=n,e=o=>o;if(typeof t=="bigint")e=o=>BigInt(o);else if(isNaN(t)||!isFinite(t))return V(n);let i="";t<0&&(i="-",t*=e(-1));let s=e(60),r=[t%s];return t<60?r.unshift(0):(t=(t-r[0])/s,r.unshift(t%s),t>=60&&(t=(t-r[0])/s,r.unshift(t))),i+r.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Pn={identify:n=>typeof n=="bigint"||Number.isInteger(n),default:true,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(n,t,{intAsBigInt:e})=>Ii(n,e),stringify:qs},zn={identify:n=>typeof n=="number",default:true,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:n=>Ii(n,false),stringify:qs},ct={identify:n=>n instanceof Date,default:true,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(n){let t=n.match(ct.test);if(!t)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,e,i,s,r,o,a]=t.map(Number),c=t[7]?Number((t[7]+"00").substr(1,3)):0,l=Date.UTC(e,i-1,s,r||0,o||0,a||0,c),f=t[8];if(f&&f!=="Z"){let d=Ii(f,false);Math.abs(d)<30&&(d*=60),l-=6e4*d;}return new Date(l)},stringify:({value:n})=>n?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};var Oi=[ae,le,$e,Ve,Ni,xi,zs,Ks,Fs,js,Ms,Us,Ps,It,oe,Lt,Ot,Rt,Pn,zn,ct];var Vs=new Map([["core",Rs],["failsafe",[ae,le,$e]],["json",Bs],["yaml11",Oi],["yaml-1.1",Oi]]),Zs={binary:It,bool:Tt,float:Cn,floatExp:Ln,floatNaN:On,floatTime:zn,int:Bn,intHex:Dn,intOct:$n,intTime:Pn,map:ae,merge:oe,null:Ve,omap:Lt,pairs:Ot,seq:le,set:Rt,timestamp:ct},Hs={"tag:yaml.org,2002:binary":It,"tag:yaml.org,2002:merge":oe,"tag:yaml.org,2002:omap":Lt,"tag:yaml.org,2002:pairs":Ot,"tag:yaml.org,2002:set":Rt,"tag:yaml.org,2002:timestamp":ct};function Kn(n,t,e){let i=Vs.get(t);if(i&&!n)return e&&!i.includes(oe)?i.concat(oe):i.slice();let s=i;if(!s)if(Array.isArray(n))s=[];else {let r=Array.from(Vs.keys()).filter(o=>o!=="yaml11").map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown schema "${t}"; use one of ${r} or define customTags array`)}if(Array.isArray(n))for(let r of n)s=s.concat(r);else typeof n=="function"&&(s=n(s.slice()));return e&&(s=s.concat(oe)),s.reduce((r,o)=>{let a=typeof o=="string"?Zs[o]:o;if(!a){let c=JSON.stringify(o),l=Object.keys(Zs).map(f=>JSON.stringify(f)).join(", ");throw new Error(`Unknown custom tag ${c}; use one of ${l}`)}return r.includes(a)||r.push(a),r},[])}var ca=(n,t)=>n.key<t.key?-1:n.key>t.key?1:0,$t=class n{constructor({compat:t,customTags:e,merge:i,resolveKnownTags:s,schema:r,sortMapEntries:o,toStringDefaults:a}){this.compat=Array.isArray(t)?Kn(t,"compat"):t?Kn(null,t):null,this.name=typeof r=="string"&&r||"core",this.knownTags=s?Hs:{},this.tags=Kn(e,this.name,i),this.toStringOptions=a??null,Object.defineProperty(this,ie,{value:ae}),Object.defineProperty(this,W,{value:$e}),Object.defineProperty(this,Ae,{value:le}),this.sortMapEntries=typeof o=="function"?o:o===true?ca:null;}clone(){let t=Object.create(n.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}};function Ys(n,t){let e=[],i=t.directives===true;if(t.directives!==false&&n.directives){let c=n.directives.toString(n);c?(e.push(c),i=true):n.directives.docStart&&(i=true);}i&&e.push("---");let s=An(n,t),{commentString:r}=s.options;if(n.commentBefore){e.length!==1&&e.unshift("");let c=r(n.commentBefore);e.unshift(ee(c,""));}let o=false,a=null;if(n.contents){if(R(n.contents)){if(n.contents.spaceBefore&&i&&e.push(""),n.contents.commentBefore){let f=r(n.contents.commentBefore);e.push(ee(f,""));}s.forceBlockIndent=!!n.comment,a=n.contents.comment;}let c=a?void 0:()=>o=true,l=xe(n.contents,s,()=>a=null,c);a&&(l+=ye(l,"",r(a))),(l[0]==="|"||l[0]===">")&&e[e.length-1]==="---"?e[e.length-1]=`--- ${l}`:e.push(l);}else e.push(xe(n.contents,s));if(n.directives?.docEnd)if(n.comment){let c=r(n.comment);c.includes(`
|
57
|
+
`)?(e.push("..."),e.push(ee(c,""))):e.push(`... ${c}`);}else e.push("...");else {let c=n.comment;c&&o&&(c=c.replace(/^\n+/,"")),c&&((!o||a)&&e[e.length-1]!==""&&e.push(""),e.push(ee(r(c),"")));}return e.join(`
|
58
|
+
`)+`
|
59
|
+
`}var Be=class n{constructor(t,e,i){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Z,{value:pn});let s=null;typeof e=="function"||Array.isArray(e)?s=e:i===void 0&&e&&(i=e,e=void 0);let r=Object.assign({intAsBigInt:false,keepSourceTokens:false,logLevel:"warn",prettyErrors:true,strict:true,stringKeys:false,uniqueKeys:true,version:"1.2"},i);this.options=r;let{version:o}=r;i?.p?(this.directives=i.p.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new ge({version:o}),this.setSchema(o,i),this.contents=t===void 0?null:this.createNode(t,s,i);}clone(){let t=Object.create(n.prototype,{[Z]:{value:pn}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=R(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(t){ft(this.contents)&&this.contents.add(t);}addIn(t,e){ft(this.contents)&&this.contents.addIn(t,e);}createAlias(t,e){if(!t.anchor){let i=gi(this);t.anchor=!e||i.has(e)?yi(e||"a",i):e;}return new Ee(t.anchor)}createNode(t,e,i){let s;if(typeof e=="function")t=e.call({"":t},"",t),s=e;else if(Array.isArray(e)){let m=_=>typeof _=="number"||_ instanceof String||_ instanceof Number,b=e.filter(m).map(String);b.length>0&&(e=e.concat(b)),s=e;}else i===void 0&&e&&(i=e,e=void 0);let{aliasDuplicateObjects:r,anchorPrefix:o,flow:a,keepUndefined:c,onTagObj:l,tag:f}=i??{},{onAnchor:d,setAnchors:u,sourceObjects:h}=xs(this,o||"a"),g={aliasDuplicateObjects:r??true,keepUndefined:c??false,onAnchor:d,onTagObj:l,replacer:s,schema:this.schema,sourceObjects:h},p=Ne(t,f,g);return a&&B(p)&&(p.flow=true),u(),p}createPair(t,e,i={}){let s=this.createNode(t,null,i),r=this.createNode(e,null,i);return new P(s,r)}delete(t){return ft(this.contents)?this.contents.delete(t):false}deleteIn(t){return st(t)?this.contents==null?false:(this.contents=null,true):ft(this.contents)?this.contents.deleteIn(t):false}get(t,e){return B(this.contents)?this.contents.get(t,e):void 0}getIn(t,e){return st(t)?!e&&O(this.contents)?this.contents.value:this.contents:B(this.contents)?this.contents.getIn(t,e):void 0}has(t){return B(this.contents)?this.contents.has(t):false}hasIn(t){return st(t)?this.contents!==void 0:B(this.contents)?this.contents.hasIn(t):false}set(t,e){this.contents==null?this.contents=At(this.schema,[t],e):ft(this.contents)&&this.contents.set(t,e);}setIn(t,e){st(t)?this.contents=e:this.contents==null?this.contents=At(this.schema,Array.from(t),e):ft(this.contents)&&this.contents.setIn(t,e);}setSchema(t,e={}){typeof t=="number"&&(t=String(t));let i;switch(t){case "1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new ge({version:"1.1"}),i={resolveKnownTags:false,schema:"yaml-1.1"};break;case "1.2":case "next":this.directives?this.directives.yaml.version=t:this.directives=new ge({version:t}),i={resolveKnownTags:true,schema:"core"};break;case null:this.directives&&delete this.directives,i=null;break;default:{let s=JSON.stringify(t);throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${s}`)}}if(e.schema instanceof Object)this.schema=e.schema;else if(i)this.schema=new $t(Object.assign(i,e));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:t,jsonArg:e,mapAsMap:i,maxAliasCount:s,onAnchor:r,reviver:o}={}){let a={anchors:new Map,doc:this,keep:!t,mapAsMap:i===true,mapKeyWarned:false,maxAliasCount:typeof s=="number"?s:100},c=K(this.contents,e??"",a);if(typeof r=="function")for(let{count:l,res:f}of a.anchors.values())r(f,l);return typeof o=="function"?Le(o,{"":c},"",c):c}toJSON(t,e){return this.toJS({json:true,jsonArg:t,mapAsMap:false,onAnchor:e})}toString(t={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in t&&(!Number.isInteger(t.indent)||Number(t.indent)<=0)){let e=JSON.stringify(t.indent);throw new Error(`"indent" option must be a positive integer, not ${e}`)}return Ys(this,t)}};function ft(n){if(B(n))return true;throw new Error("Expected a YAML collection as document contents")}var Bt=class extends Error{constructor(t,e,i,s){super(),this.name=t,this.code=i,this.message=s,this.pos=e;}},ce=class extends Bt{constructor(t,e,i){super("YAMLParseError",t,e,i);}},Dt=class extends Bt{constructor(t,e,i){super("YAMLWarning",t,e,i);}},Li=(n,t)=>e=>{if(e.pos[0]===-1)return;e.linePos=e.pos.map(a=>t.linePos(a));let{line:i,col:s}=e.linePos[0];e.message+=` at line ${i}, column ${s}`;let r=s-1,o=n.substring(t.lineStarts[i-1],t.lineStarts[i]).replace(/[\n\r]+$/,"");if(r>=60&&o.length>80){let a=Math.min(r-39,o.length-79);o="\u2026"+o.substring(a),r-=a-1;}if(o.length>80&&(o=o.substring(0,79)+"\u2026"),i>1&&/^ *$/.test(o.substring(0,r))){let a=n.substring(t.lineStarts[i-2],t.lineStarts[i-1]);a.length>80&&(a=a.substring(0,79)+`\u2026
|
60
|
+
`),o=a+o;}if(/[^ ]/.test(o)){let a=1,c=e.linePos[1];c&&c.line===i&&c.col>s&&(a=Math.max(1,Math.min(c.col-s,80-r)));let l=" ".repeat(r)+"^".repeat(a);e.message+=`:
|
61
|
+
|
62
|
+
${o}
|
63
|
+
${l}
|
64
|
+
`;}};function be(n,{flow:t,indicator:e,next:i,offset:s,onError:r,parentIndent:o,startOnNewline:a}){let c=false,l=a,f=a,d="",u="",h=false,g=false,p=null,m=null,b=null,_=null,S=null,y=null,v=null;for(let w of n)switch(g&&(w.type!=="space"&&w.type!=="newline"&&w.type!=="comma"&&r(w.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),g=false),p&&(l&&w.type!=="comment"&&w.type!=="newline"&&r(p,"TAB_AS_INDENT","Tabs are not allowed as indentation"),p=null),w.type){case "space":!t&&(e!=="doc-start"||i?.type!=="flow-collection")&&w.source.includes(" ")&&(p=w),f=true;break;case "comment":{f||r(w,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let x=w.source.substring(1)||" ";d?d+=u+x:d=x,u="",l=false;break}case "newline":l?d?d+=w.source:(!y||e!=="seq-item-ind")&&(c=true):u+=w.source,l=true,h=true,(m||b)&&(_=w),f=true;break;case "anchor":m&&r(w,"MULTIPLE_ANCHORS","A node can have at most one anchor"),w.source.endsWith(":")&&r(w.offset+w.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",true),m=w,v??(v=w.offset),l=false,f=false,g=true;break;case "tag":{b&&r(w,"MULTIPLE_TAGS","A node can have at most one tag"),b=w,v??(v=w.offset),l=false,f=false,g=true;break}case e:(m||b)&&r(w,"BAD_PROP_ORDER",`Anchors and tags must be after the ${w.source} indicator`),y&&r(w,"UNEXPECTED_TOKEN",`Unexpected ${w.source} in ${t??"collection"}`),y=w,l=e==="seq-item-ind"||e==="explicit-key-ind",f=false;break;case "comma":if(t){S&&r(w,"UNEXPECTED_TOKEN",`Unexpected , in ${t}`),S=w,l=false,f=false;break}default:r(w,"UNEXPECTED_TOKEN",`Unexpected ${w.type} token`),l=false,f=false;}let N=n[n.length-1],k=N?N.offset+N.source.length:s;return g&&i&&i.type!=="space"&&i.type!=="newline"&&i.type!=="comma"&&(i.type!=="scalar"||i.source!=="")&&r(i.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),p&&(l&&p.indent<=o||i?.type==="block-map"||i?.type==="block-seq")&&r(p,"TAB_AS_INDENT","Tabs are not allowed as indentation"),{comma:S,found:y,spaceBefore:c,comment:d,hasNewline:h,anchor:m,tag:b,newlineAfterProp:_,end:k,start:v??k}}function De(n){if(!n)return null;switch(n.type){case "alias":case "scalar":case "double-quoted-scalar":case "single-quoted-scalar":if(n.source.includes(`
|
65
|
+
`))return true;if(n.end){for(let t of n.end)if(t.type==="newline")return true}return false;case "flow-collection":for(let t of n.items){for(let e of t.start)if(e.type==="newline")return true;if(t.sep){for(let e of t.sep)if(e.type==="newline")return true}if(De(t.key)||De(t.value))return true}return false;default:return true}}function Mt(n,t,e){if(t?.type==="flow-collection"){let i=t.end[0];i.indent===n&&(i.source==="]"||i.source==="}")&&De(t)&&e(i,"BAD_INDENT","Flow end indicator should be more indented than parent",true);}}function Fn(n,t,e){let{uniqueKeys:i}=n.options;if(i===false)return false;let s=typeof i=="function"?i:(r,o)=>r===o||O(r)&&O(o)&&r.value===o.value;return t.some(r=>s(r.key,e))}var Gs="All mapping items must start at the same column";function Ws({composeNode:n,composeEmptyNode:t},e,i,s,r){let o=r?.nodeClass??z,a=new o(e.schema);e.atRoot&&(e.atRoot=false);let c=i.offset,l=null;for(let f of i.items){let{start:d,key:u,sep:h,value:g}=f,p=be(d,{indicator:"explicit-key-ind",next:u??h?.[0],offset:c,onError:s,parentIndent:i.indent,startOnNewline:true}),m=!p.found;if(m){if(u&&(u.type==="block-seq"?s(c,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in u&&u.indent!==i.indent&&s(c,"BAD_INDENT",Gs)),!p.anchor&&!p.tag&&!h){l=p.end,p.comment&&(a.comment?a.comment+=`
|
66
|
+
`+p.comment:a.comment=p.comment);continue}(p.newlineAfterProp||De(u))&&s(u??d[d.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line");}else p.found?.indent!==i.indent&&s(c,"BAD_INDENT",Gs);e.atKey=true;let b=p.end,_=u?n(e,u,p,s):t(e,b,d,null,p,s);e.schema.compat&&Mt(i.indent,u,s),e.atKey=false,Fn(e,a.items,_)&&s(b,"DUPLICATE_KEY","Map keys must be unique");let S=be(h??[],{indicator:"map-value-ind",next:g,offset:_.range[2],onError:s,parentIndent:i.indent,startOnNewline:!u||u.type==="block-scalar"});if(c=S.end,S.found){m&&(g?.type==="block-map"&&!S.hasNewline&&s(c,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),e.options.strict&&p.start<S.found.offset-1024&&s(_.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key"));let y=g?n(e,g,S,s):t(e,c,h,null,S,s);e.schema.compat&&Mt(i.indent,g,s),c=y.range[2];let v=new P(_,y);e.options.keepSourceTokens&&(v.srcToken=f),a.items.push(v);}else {m&&s(_.range,"MISSING_CHAR","Implicit map keys need to be followed by map values"),S.comment&&(_.comment?_.comment+=`
|
67
|
+
`+S.comment:_.comment=S.comment);let y=new P(_);e.options.keepSourceTokens&&(y.srcToken=f),a.items.push(y);}}return l&&l<c&&s(l,"IMPOSSIBLE","Map comment with trailing content"),a.range=[i.offset,c,l??c],a}function Js({composeNode:n,composeEmptyNode:t},e,i,s,r){let o=r?.nodeClass??q,a=new o(e.schema);e.atRoot&&(e.atRoot=false),e.atKey&&(e.atKey=false);let c=i.offset,l=null;for(let{start:f,value:d}of i.items){let u=be(f,{indicator:"seq-item-ind",next:d,offset:c,onError:s,parentIndent:i.indent,startOnNewline:true});if(!u.found)if(u.anchor||u.tag||d)d&&d.type==="block-seq"?s(u.end,"BAD_INDENT","All sequence items must start at the same column"):s(c,"MISSING_CHAR","Sequence item without - indicator");else {l=u.end,u.comment&&(a.comment=u.comment);continue}let h=d?n(e,d,u,s):t(e,u.end,f,null,u,s);e.schema.compat&&Mt(i.indent,d,s),c=h.range[2],a.items.push(h);}return a.range=[i.offset,c,l??c],a}function we(n,t,e,i){let s="";if(n){let r=false,o="";for(let a of n){let{source:c,type:l}=a;switch(l){case "space":r=true;break;case "comment":{e&&!r&&i(a,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let f=c.substring(1)||" ";s?s+=o+f:s=f,o="";break}case "newline":s&&(o+=c),r=true;break;default:i(a,"UNEXPECTED_TOKEN",`Unexpected ${l} at node end`);}t+=c.length;}}return {comment:s,offset:t}}var Ci="Block collections are not allowed within flow collections",Ri=n=>n&&(n.type==="block-map"||n.type==="block-seq");function Qs({composeNode:n,composeEmptyNode:t},e,i,s,r){let o=i.start.source==="{",a=o?"flow map":"flow sequence",c=r?.nodeClass??(o?z:q),l=new c(e.schema);l.flow=true;let f=e.atRoot;f&&(e.atRoot=false),e.atKey&&(e.atKey=false);let d=i.offset+i.start.source.length;for(let m=0;m<i.items.length;++m){let b=i.items[m],{start:_,key:S,sep:y,value:v}=b,N=be(_,{flow:a,indicator:"explicit-key-ind",next:S??y?.[0],offset:d,onError:s,parentIndent:i.indent,startOnNewline:false});if(!N.found){if(!N.anchor&&!N.tag&&!y&&!v){m===0&&N.comma?s(N.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`):m<i.items.length-1&&s(N.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${a}`),N.comment&&(l.comment?l.comment+=`
|
68
|
+
`+N.comment:l.comment=N.comment),d=N.end;continue}!o&&e.options.strict&&De(S)&&s(S,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");}if(m===0)N.comma&&s(N.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${a}`);else if(N.comma||s(N.start,"MISSING_CHAR",`Missing , between ${a} items`),N.comment){let k="";e:for(let w of _)switch(w.type){case "comma":case "space":break;case "comment":k=w.source.substring(1);break e;default:break e}if(k){let w=l.items[l.items.length-1];C(w)&&(w=w.value??w.key),w.comment?w.comment+=`
|
69
|
+
`+k:w.comment=k,N.comment=N.comment.substring(k.length+1);}}if(!o&&!y&&!N.found){let k=v?n(e,v,N,s):t(e,N.end,y,null,N,s);l.items.push(k),d=k.range[2],Ri(v)&&s(k.range,"BLOCK_IN_FLOW",Ci);}else {e.atKey=true;let k=N.end,w=S?n(e,S,N,s):t(e,k,_,null,N,s);Ri(S)&&s(w.range,"BLOCK_IN_FLOW",Ci),e.atKey=false;let x=be(y??[],{flow:a,indicator:"map-value-ind",next:v,offset:w.range[2],onError:s,parentIndent:i.indent,startOnNewline:false});if(x.found){if(!o&&!N.found&&e.options.strict){if(y)for(let M of y){if(M===x.found)break;if(M.type==="newline"){s(M,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}N.start<x.found.offset-1024&&s(x.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key");}}else v&&("source"in v&&v.source&&v.source[0]===":"?s(v,"MISSING_CHAR",`Missing space after : in ${a}`):s(x.start,"MISSING_CHAR",`Missing , or : between ${a} items`));let T=v?n(e,v,x,s):x.found?t(e,x.end,y,null,x,s):null;T?Ri(v)&&s(T.range,"BLOCK_IN_FLOW",Ci):x.comment&&(w.comment?w.comment+=`
|
70
|
+
`+x.comment:w.comment=x.comment);let I=new P(w,T);if(e.options.keepSourceTokens&&(I.srcToken=b),o){let M=l;Fn(e,M.items,w)&&s(k,"DUPLICATE_KEY","Map keys must be unique"),M.items.push(I);}else {let M=new z(e.schema);M.flow=true,M.items.push(I);let St=(T??w).range;M.range=[w.range[0],St[1],St[2]],l.items.push(M);}d=T?T.range[2]:x.end;}}let u=o?"}":"]",[h,...g]=i.end,p=d;if(h&&h.source===u)p=h.offset+h.source.length;else {let m=a[0].toUpperCase()+a.substring(1),b=f?`${m} must end with a ${u}`:`${m} in block collection must be sufficiently indented and end with a ${u}`;s(d,f?"MISSING_CHAR":"BAD_INDENT",b),h&&h.source.length!==1&&g.unshift(h);}if(g.length>0){let m=we(g,p,e.options.strict,s);m.comment&&(l.comment?l.comment+=`
|
71
|
+
`+m.comment:l.comment=m.comment),l.range=[i.offset,p,m.offset];}else l.range=[i.offset,p,p];return l}function $i(n,t,e,i,s,r){let o=e.type==="block-map"?Ws(n,t,e,i,r):e.type==="block-seq"?Js(n,t,e,i,r):Qs(n,t,e,i,r),a=o.constructor;return s==="!"||s===a.tagName?(o.tag=a.tagName,o):(s&&(o.tag=s),o)}function Xs(n,t,e,i,s){let r=i.tag,o=r?t.directives.tagName(r.source,u=>s(r,"TAG_RESOLVE_FAILED",u)):null;if(e.type==="block-seq"){let{anchor:u,newlineAfterProp:h}=i,g=u&&r?u.offset>r.offset?u:r:u??r;g&&(!h||h.offset<g.offset)&&s(g,"MISSING_CHAR","Missing newline after block sequence props");}let a=e.type==="block-map"?"map":e.type==="block-seq"?"seq":e.start.source==="{"?"map":"seq";if(!r||!o||o==="!"||o===z.tagName&&a==="map"||o===q.tagName&&a==="seq")return $i(n,t,e,s,o);let c=t.schema.tags.find(u=>u.tag===o&&u.collection===a);if(!c){let u=t.schema.knownTags[o];if(u&&u.collection===a)t.schema.tags.push(Object.assign({},u,{default:false})),c=u;else return u?s(r,"BAD_COLLECTION_TYPE",`${u.tag} used for ${a} collection, but expects ${u.collection??"scalar"}`,true):s(r,"TAG_RESOLVE_FAILED",`Unresolved tag: ${o}`,true),$i(n,t,e,s,o)}let l=$i(n,t,e,s,o,c),f=c.resolve?.(l,u=>s(r,"TAG_RESOLVE_FAILED",u),t.options)??l,d=R(f)?f:new E(f);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}function Bi(n,t,e){let i=t.offset,s=fa(t,n.options.strict,e);if(!s)return {value:"",type:null,comment:"",range:[i,i,i]};let r=s.mode===">"?E.BLOCK_FOLDED:E.BLOCK_LITERAL,o=t.source?ua(t.source):[],a=o.length;for(let p=o.length-1;p>=0;--p){let m=o[p][1];if(m===""||m==="\r")a=p;else break}if(a===0){let p=s.chomp==="+"&&o.length>0?`
|
72
|
+
`.repeat(Math.max(1,o.length-1)):"",m=i+s.length;return t.source&&(m+=t.source.length),{value:p,type:r,comment:s.comment,range:[i,m,m]}}let c=t.indent+s.indent,l=t.offset+s.length,f=0;for(let p=0;p<a;++p){let[m,b]=o[p];if(b===""||b==="\r")s.indent===0&&m.length>c&&(c=m.length);else {m.length<c&&e(l+m.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator"),s.indent===0&&(c=m.length),f=p,c===0&&!n.atRoot&&e(l,"BAD_INDENT","Block scalar values in collections must be indented");break}l+=m.length+b.length+1;}for(let p=o.length-1;p>=a;--p)o[p][0].length>c&&(a=p+1);let d="",u="",h=false;for(let p=0;p<f;++p)d+=o[p][0].slice(c)+`
|
73
|
+
`;for(let p=f;p<a;++p){let[m,b]=o[p];l+=m.length+b.length+1;let _=b[b.length-1]==="\r";if(_&&(b=b.slice(0,-1)),b&&m.length<c){let y=`Block scalar lines must not be less indented than their ${s.indent?"explicit indentation indicator":"first line"}`;e(l-b.length-(_?2:1),"BAD_INDENT",y),m="";}r===E.BLOCK_LITERAL?(d+=u+m.slice(c)+b,u=`
|
74
|
+
`):m.length>c||b[0]===" "?(u===" "?u=`
|
75
|
+
`:!h&&u===`
|
76
|
+
`&&(u=`
|
77
|
+
|
78
|
+
`),d+=u+m.slice(c)+b,u=`
|
79
|
+
`,h=true):b===""?u===`
|
80
|
+
`?d+=`
|
81
|
+
`:u=`
|
82
|
+
`:(d+=u+b,u=" ",h=false);}switch(s.chomp){case "-":break;case "+":for(let p=a;p<o.length;++p)d+=`
|
83
|
+
`+o[p][0].slice(c);d[d.length-1]!==`
|
84
|
+
`&&(d+=`
|
85
|
+
`);break;default:d+=`
|
86
|
+
`;}let g=i+s.length+t.source.length;return {value:d,type:r,comment:s.comment,range:[i,g,g]}}function fa({offset:n,props:t},e,i){if(t[0].type!=="block-scalar-header")return i(t[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:s}=t[0],r=s[0],o=0,a="",c=-1;for(let u=1;u<s.length;++u){let h=s[u];if(!a&&(h==="-"||h==="+"))a=h;else {let g=Number(h);!o&&g?o=g:c===-1&&(c=n+u);}}c!==-1&&i(c,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${s}`);let l=false,f="",d=s.length;for(let u=1;u<t.length;++u){let h=t[u];switch(h.type){case "space":l=true;case "newline":d+=h.source.length;break;case "comment":e&&!l&&i(h,"MISSING_CHAR","Comments must be separated from other tokens by white space characters"),d+=h.source.length,f=h.source.substring(1);break;case "error":i(h,"UNEXPECTED_TOKEN",h.message),d+=h.source.length;break;default:{let g=`Unexpected token in block scalar header: ${h.type}`;i(h,"UNEXPECTED_TOKEN",g);let p=h.source;p&&typeof p=="string"&&(d+=p.length);}}}return {mode:r,indent:o,chomp:a,comment:f,length:d}}function ua(n){let t=n.split(/\n( *)/),e=t[0],i=e.match(/^( *)/),r=[i?.[1]?[i[1],e.slice(i[1].length)]:["",e]];for(let o=1;o<t.length;o+=2)r.push([t[o],t[o+1]]);return r}function Di(n,t,e){let{offset:i,type:s,source:r,end:o}=n,a,c,l=(u,h,g)=>e(i+u,h,g);switch(s){case "scalar":a=E.PLAIN,c=ha(r,l);break;case "single-quoted-scalar":a=E.QUOTE_SINGLE,c=da(r,l);break;case "double-quoted-scalar":a=E.QUOTE_DOUBLE,c=pa(r,l);break;default:return e(n,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${s}`),{value:"",type:null,comment:"",range:[i,i+r.length,i+r.length]}}let f=i+r.length,d=we(o,f,t,e);return {value:c,type:a,comment:d.comment,range:[i,f,d.offset]}}function ha(n,t){let e="";switch(n[0]){case " ":e="a tab character";break;case ",":e="flow indicator character ,";break;case "%":e="directive indicator character %";break;case "|":case ">":{e=`block scalar indicator ${n[0]}`;break}case "@":case "`":{e=`reserved character ${n[0]}`;break}}return e&&t(0,"BAD_SCALAR_START",`Plain value cannot start with ${e}`),er(n)}function da(n,t){return (n[n.length-1]!=="'"||n.length===1)&&t(n.length,"MISSING_CHAR","Missing closing 'quote"),er(n.slice(1,-1)).replace(/''/g,"'")}function er(n){let t,e;try{t=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
87
|
+
`,"sy"),e=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
88
|
+
`,"sy");}catch{t=/(.*?)[ \t]*\r?\n/sy,e=/[ \t]*(.*?)[ \t]*\r?\n/sy;}let i=t.exec(n);if(!i)return n;let s=i[1],r=" ",o=t.lastIndex;for(e.lastIndex=o;i=e.exec(n);)i[1]===""?r===`
|
89
|
+
`?s+=r:r=`
|
90
|
+
`:(s+=r+i[1],r=" "),o=e.lastIndex;let a=/[ \t]*(.*)/sy;return a.lastIndex=o,i=a.exec(n),s+r+(i?.[1]??"")}function pa(n,t){let e="";for(let i=1;i<n.length-1;++i){let s=n[i];if(!(s==="\r"&&n[i+1]===`
|
91
|
+
`))if(s===`
|
92
|
+
`){let{fold:r,offset:o}=ma(n,i);e+=r,i=o;}else if(s==="\\"){let r=n[++i],o=ga[r];if(o)e+=o;else if(r===`
|
93
|
+
`)for(r=n[i+1];r===" "||r===" ";)r=n[++i+1];else if(r==="\r"&&n[i+1]===`
|
94
|
+
`)for(r=n[++i+1];r===" "||r===" ";)r=n[++i+1];else if(r==="x"||r==="u"||r==="U"){let a={x:2,u:4,U:8}[r];e+=ya(n,i+1,a,t),i+=a;}else {let a=n.substr(i-1,2);t(i-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),e+=a;}}else if(s===" "||s===" "){let r=i,o=n[i+1];for(;o===" "||o===" ";)o=n[++i+1];o!==`
|
95
|
+
`&&!(o==="\r"&&n[i+2]===`
|
96
|
+
`)&&(e+=i>r?n.slice(r,i+1):s);}else e+=s;}return (n[n.length-1]!=='"'||n.length===1)&&t(n.length,"MISSING_CHAR",'Missing closing "quote'),e}function ma(n,t){let e="",i=n[t+1];for(;(i===" "||i===" "||i===`
|
97
|
+
`||i==="\r")&&!(i==="\r"&&n[t+2]!==`
|
98
|
+
`);)i===`
|
99
|
+
`&&(e+=`
|
100
|
+
`),t+=1,i=n[t+1];return e||(e=" "),{fold:e,offset:t}}var ga={0:"\0",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
101
|
+
`,r:"\r",t:" ",v:"\v",N:"\x85",S:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\"," ":" "};function ya(n,t,e,i){let s=n.substr(t,e),o=s.length===e&&/^[0-9a-fA-F]+$/.test(s)?parseInt(s,16):NaN;if(isNaN(o)){let a=n.substr(t-2,e+2);return i(t-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${a}`),a}return String.fromCodePoint(o)}function Mi(n,t,e,i){let{value:s,type:r,comment:o,range:a}=t.type==="block-scalar"?Bi(n,t,i):Di(t,n.options.strict,i),c=e?n.directives.tagName(e.source,d=>i(e,"TAG_RESOLVE_FAILED",d)):null,l;n.options.stringKeys&&n.atKey?l=n.schema[W]:c?l=ba(n.schema,s,c,e,i):t.type==="scalar"?l=wa(n,s,t,i):l=n.schema[W];let f;try{let d=l.resolve(s,u=>i(e??t,"TAG_RESOLVE_FAILED",u),n.options);f=O(d)?d:new E(d);}catch(d){let u=d instanceof Error?d.message:String(d);i(e??t,"TAG_RESOLVE_FAILED",u),f=new E(s);}return f.range=a,f.source=s,r&&(f.type=r),c&&(f.tag=c),l.format&&(f.format=l.format),o&&(f.comment=o),f}function ba(n,t,e,i,s){if(e==="!")return n[W];let r=[];for(let a of n.tags)if(!a.collection&&a.tag===e)if(a.default&&a.test)r.push(a);else return a;for(let a of r)if(a.test?.test(t))return a;let o=n.knownTags[e];return o&&!o.collection?(n.tags.push(Object.assign({},o,{default:false,test:void 0})),o):(s(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${e}`,e!=="tag:yaml.org,2002:str"),n[W])}function wa({atKey:n,directives:t,schema:e},i,s,r){let o=e.tags.find(a=>(a.default===true||n&&a.default==="key")&&a.test?.test(i))||e[W];if(e.compat){let a=e.compat.find(c=>c.default&&c.test?.test(i))??e[W];if(o.tag!==a.tag){let c=t.tagString(o.tag),l=t.tagString(a.tag),f=`Value may be parsed as either ${c} or ${l}`;r(s,"TAG_RESOLVE_FAILED",f,true);}}return o}function tr(n,t,e){if(t){e??(e=t.length);for(let i=e-1;i>=0;--i){let s=t[i];switch(s.type){case "space":case "comment":case "newline":n-=s.source.length;continue}for(s=t[++i];s?.type==="space";)n+=s.source.length,s=t[++i];break}}return n}var _a={composeNode:Ui,composeEmptyNode:jn};function Ui(n,t,e,i){let s=n.atKey,{spaceBefore:r,comment:o,anchor:a,tag:c}=e,l,f=true;switch(t.type){case "alias":l=Sa(n,t,i),(a||c)&&i(t,"ALIAS_PROPS","An alias node must not specify any properties");break;case "scalar":case "single-quoted-scalar":case "double-quoted-scalar":case "block-scalar":l=Mi(n,t,c,i),a&&(l.anchor=a.source.substring(1));break;case "block-map":case "block-seq":case "flow-collection":l=Xs(_a,n,t,e,i),a&&(l.anchor=a.source.substring(1));break;default:{let d=t.type==="error"?t.message:`Unsupported token (type: ${t.type})`;i(t,"UNEXPECTED_TOKEN",d),l=jn(n,t.offset,void 0,null,e,i),f=false;}}return a&&l.anchor===""&&i(a,"BAD_ALIAS","Anchor cannot be an empty string"),s&&n.options.stringKeys&&(!O(l)||typeof l.value!="string"||l.tag&&l.tag!=="tag:yaml.org,2002:str")&&i(c??t,"NON_STRING_KEY","With stringKeys, all keys must be strings"),r&&(l.spaceBefore=true),o&&(t.type==="scalar"&&t.source===""?l.comment=o:l.commentBefore=o),n.options.keepSourceTokens&&f&&(l.srcToken=t),l}function jn(n,t,e,i,{spaceBefore:s,comment:r,anchor:o,tag:a,end:c},l){let f={type:"scalar",offset:tr(t,e,i),indent:-1,source:""},d=Mi(n,f,a,l);return o&&(d.anchor=o.source.substring(1),d.anchor===""&&l(o,"BAD_ALIAS","Anchor cannot be an empty string")),s&&(d.spaceBefore=true),r&&(d.comment=r,d.range[2]=c),d}function Sa({options:n},{offset:t,source:e,end:i},s){let r=new Ee(e.substring(1));r.source===""&&s(t,"BAD_ALIAS","Alias cannot be an empty string"),r.source.endsWith(":")&&s(t+e.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",true);let o=t+e.length,a=we(i,o,n.strict,s);return r.range=[t,o,a.offset],a.comment&&(r.comment=a.comment),r}function nr(n,t,{offset:e,start:i,value:s,end:r},o){let a=Object.assign({p:t},n),c=new Be(void 0,a),l={atKey:false,atRoot:true,directives:c.directives,options:c.options,schema:c.schema},f=be(i,{indicator:"doc-start",next:s??r?.[0],offset:e,onError:o,parentIndent:0,startOnNewline:true});f.found&&(c.directives.docStart=true,s&&(s.type==="block-map"||s.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),c.contents=s?Ui(l,s,f,o):jn(l,f.end,i,null,f,o);let d=c.contents.range[2],u=we(r,d,false,o);return u.comment&&(c.comment=u.comment),c.range=[e,d,u.offset],c}function Ut(n){if(typeof n=="number")return [n,n+1];if(Array.isArray(n))return n.length===2?n:[n[0],n[1]];let{offset:t,source:e}=n;return [t,t+(typeof e=="string"?e.length:1)]}function ir(n){let t="",e=false,i=false;for(let s=0;s<n.length;++s){let r=n[s];switch(r[0]){case "#":t+=(t===""?"":i?`
|
102
|
+
|
103
|
+
`:`
|
104
|
+
`)+(r.substring(1)||" "),e=true,i=false;break;case "%":n[s+1]?.[0]!=="#"&&(s+=1),e=false;break;default:e||(i=true),e=false;}}return {comment:t,afterEmptyLine:i}}var Pt=class{constructor(t={}){this.doc=null,this.atDirectives=false,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,i,s,r)=>{let o=Ut(e);r?this.warnings.push(new Dt(o,i,s)):this.errors.push(new ce(o,i,s));},this.directives=new ge({version:t.version||"1.2"}),this.options=t;}decorate(t,e){let{comment:i,afterEmptyLine:s}=ir(this.prelude);if(i){let r=t.contents;if(e)t.comment=t.comment?`${t.comment}
|
105
|
+
${i}`:i;else if(s||t.directives.docStart||!r)t.commentBefore=i;else if(B(r)&&!r.flow&&r.items.length>0){let o=r.items[0];C(o)&&(o=o.key);let a=o.commentBefore;o.commentBefore=a?`${i}
|
106
|
+
${a}`:i;}else {let o=r.commentBefore;r.commentBefore=o?`${i}
|
107
|
+
${o}`:i;}}e?(Array.prototype.push.apply(t.errors,this.errors),Array.prototype.push.apply(t.warnings,this.warnings)):(t.errors=this.errors,t.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[];}streamInfo(){return {comment:ir(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(t,e=false,i=-1){for(let s of t)yield*this.next(s);yield*this.end(e,i);}*next(t){switch(t.type){case "directive":this.directives.add(t.source,(e,i,s)=>{let r=Ut(t);r[0]+=e,this.onError(r,"BAD_DIRECTIVE",i,s);}),this.prelude.push(t.source),this.atDirectives=true;break;case "document":{let e=nr(this.options,this.directives,t,this.onError);this.atDirectives&&!e.directives.docStart&&this.onError(t,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(e,false),this.doc&&(yield this.doc),this.doc=e,this.atDirectives=false;break}case "byte-order-mark":case "space":break;case "comment":case "newline":this.prelude.push(t.source);break;case "error":{let e=t.source?`${t.message}: ${JSON.stringify(t.source)}`:t.message,i=new ce(Ut(t),"UNEXPECTED_TOKEN",e);this.atDirectives||!this.doc?this.errors.push(i):this.doc.errors.push(i);break}case "doc-end":{if(!this.doc){let i="Unexpected doc-end without preceding document";this.errors.push(new ce(Ut(t),"UNEXPECTED_TOKEN",i));break}this.doc.directives.docEnd=true;let e=we(t.end,t.offset+t.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,true),e.comment){let i=this.doc.comment;this.doc.comment=i?`${i}
|
108
|
+
${e.comment}`:e.comment;}this.doc.range[2]=e.offset;break}default:this.errors.push(new ce(Ut(t),"UNEXPECTED_TOKEN",`Unsupported token ${t.type}`));}}*end(t=false,e=-1){if(this.doc)this.decorate(this.doc,true),yield this.doc,this.doc=null;else if(t){let i=Object.assign({p:this.directives},this.options),s=new Be(void 0,i);this.atDirectives&&this.onError(e,"MISSING_CHAR","Missing directives-end indicator line"),s.range=[0,e,e],this.decorate(s,false),yield s;}}};var zi="\uFEFF",Ki="",Fi="",qn="";function or(n){switch(n){case zi:return "byte-order-mark";case Ki:return "doc-mode";case Fi:return "flow-error-end";case qn:return "scalar";case "---":return "doc-start";case "...":return "doc-end";case "":case `
|
109
|
+
`:case `\r
|
110
|
+
`:return "newline";case "-":return "seq-item-ind";case "?":return "explicit-key-ind";case ":":return "map-value-ind";case "{":return "flow-map-start";case "}":return "flow-map-end";case "[":return "flow-seq-start";case "]":return "flow-seq-end";case ",":return "comma"}switch(n[0]){case " ":case " ":return "space";case "#":return "comment";case "%":return "directive-line";case "*":return "alias";case "&":return "anchor";case "!":return "tag";case "'":return "single-quoted-scalar";case '"':return "double-quoted-scalar";case "|":case ">":return "block-scalar-header"}return null}function fe(n){switch(n){case void 0:case " ":case `
|
111
|
+
`:case "\r":case " ":return true;default:return false}}var ar=new Set("0123456789ABCDEFabcdef"),Aa=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),Vn=new Set(",[]{}"),Ea=new Set(` ,[]{}
|
112
|
+
\r `),ji=n=>!n||Ea.has(n),zt=class{constructor(){this.atEnd=false,this.blockScalarIndent=-1,this.blockScalarKeep=false,this.buffer="",this.flowKey=false,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0;}*lex(t,e=false){if(t){if(typeof t!="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+t:t,this.lineEndPos=null;}this.atEnd=!e;let i=this.next??"stream";for(;i&&(e||this.hasChars(1));)i=yield*this.parseNext(i);}atLineEnd(){let t=this.pos,e=this.buffer[t];for(;e===" "||e===" ";)e=this.buffer[++t];return !e||e==="#"||e===`
|
113
|
+
`?true:e==="\r"?this.buffer[t+1]===`
|
114
|
+
`:false}charAt(t){return this.buffer[this.pos+t]}continueScalar(t){let e=this.buffer[t];if(this.indentNext>0){let i=0;for(;e===" ";)e=this.buffer[++i+t];if(e==="\r"){let s=this.buffer[i+t+1];if(s===`
|
115
|
+
`||!s&&!this.atEnd)return t+i+1}return e===`
|
116
|
+
`||i>=this.indentNext||!e&&!this.atEnd?t+i:-1}if(e==="-"||e==="."){let i=this.buffer.substr(t,3);if((i==="---"||i==="...")&&fe(this.buffer[t+3]))return -1}return t}getLine(){let t=this.lineEndPos;return (typeof t!="number"||t!==-1&&t<this.pos)&&(t=this.buffer.indexOf(`
|
117
|
+
`,this.pos),this.lineEndPos=t),t===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[t-1]==="\r"&&(t-=1),this.buffer.substring(this.pos,t))}hasChars(t){return this.pos+t<=this.buffer.length}setNext(t){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=t,null}peek(t){return this.buffer.substr(this.pos,t)}*parseNext(t){switch(t){case "stream":return yield*this.parseStream();case "line-start":return yield*this.parseLineStart();case "block-start":return yield*this.parseBlockStart();case "doc":return yield*this.parseDocument();case "flow":return yield*this.parseFlowCollection();case "quoted-scalar":return yield*this.parseQuotedScalar();case "block-scalar":return yield*this.parseBlockScalar();case "plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let t=this.getLine();if(t===null)return this.setNext("stream");if(t[0]===zi&&(yield*this.pushCount(1),t=t.substring(1)),t[0]==="%"){let e=t.length,i=t.indexOf("#");for(;i!==-1;){let r=t[i-1];if(r===" "||r===" "){e=i-1;break}else i=t.indexOf("#",i+1);}for(;;){let r=t[e-1];if(r===" "||r===" ")e-=1;else break}let s=(yield*this.pushCount(e))+(yield*this.pushSpaces(true));return yield*this.pushCount(t.length-s),this.pushNewline(),"stream"}if(this.atLineEnd()){let e=yield*this.pushSpaces(true);return yield*this.pushCount(t.length-e),yield*this.pushNewline(),"stream"}return yield Ki,yield*this.parseLineStart()}*parseLineStart(){let t=this.charAt(0);if(!t&&!this.atEnd)return this.setNext("line-start");if(t==="-"||t==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let e=this.peek(3);if((e==="---"||e==="...")&&fe(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,e==="---"?"doc":"stream"}return this.indentValue=yield*this.pushSpaces(false),this.indentNext>this.indentValue&&!fe(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[t,e]=this.peek(2);if(!e&&!this.atEnd)return this.setNext("block-start");if((t==="-"||t==="?"||t===":")&&fe(e)){let i=(yield*this.pushCount(1))+(yield*this.pushSpaces(true));return this.indentNext=this.indentValue+1,this.indentValue+=i,yield*this.parseBlockStart()}return "doc"}*parseDocument(){yield*this.pushSpaces(true);let t=this.getLine();if(t===null)return this.setNext("doc");let e=yield*this.pushIndicators();switch(t[e]){case "#":yield*this.pushCount(t.length-e);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case "{":case "[":return yield*this.pushCount(1),this.flowKey=false,this.flowLevel=1,"flow";case "}":case "]":return yield*this.pushCount(1),"doc";case "*":return yield*this.pushUntil(ji),"doc";case '"':case "'":return yield*this.parseQuotedScalar();case "|":case ">":return e+=yield*this.parseBlockScalarHeader(),e+=yield*this.pushSpaces(true),yield*this.pushCount(t.length-e),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let t,e,i=-1;do t=yield*this.pushNewline(),t>0?(e=yield*this.pushSpaces(false),this.indentValue=i=e):e=0,e+=yield*this.pushSpaces(true);while(t+e>0);let s=this.getLine();if(s===null)return this.setNext("flow");if((i!==-1&&i<this.indentNext&&s[0]!=="#"||i===0&&(s.startsWith("---")||s.startsWith("..."))&&fe(s[3]))&&!(i===this.indentNext-1&&this.flowLevel===1&&(s[0]==="]"||s[0]==="}")))return this.flowLevel=0,yield Fi,yield*this.parseLineStart();let r=0;for(;s[r]===",";)r+=yield*this.pushCount(1),r+=yield*this.pushSpaces(true),this.flowKey=false;switch(r+=yield*this.pushIndicators(),s[r]){case void 0:return "flow";case "#":return yield*this.pushCount(s.length-r),"flow";case "{":case "[":return yield*this.pushCount(1),this.flowKey=false,this.flowLevel+=1,"flow";case "}":case "]":return yield*this.pushCount(1),this.flowKey=true,this.flowLevel-=1,this.flowLevel?"flow":"doc";case "*":return yield*this.pushUntil(ji),"flow";case '"':case "'":return this.flowKey=true,yield*this.parseQuotedScalar();case ":":{let o=this.charAt(1);if(this.flowKey||fe(o)||o===",")return this.flowKey=false,yield*this.pushCount(1),yield*this.pushSpaces(true),"flow"}default:return this.flowKey=false,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let t=this.charAt(0),e=this.buffer.indexOf(t,this.pos+1);if(t==="'")for(;e!==-1&&this.buffer[e+1]==="'";)e=this.buffer.indexOf("'",e+2);else for(;e!==-1;){let r=0;for(;this.buffer[e-1-r]==="\\";)r+=1;if(r%2===0)break;e=this.buffer.indexOf('"',e+1);}let i=this.buffer.substring(0,e),s=i.indexOf(`
|
118
|
+
`,this.pos);if(s!==-1){for(;s!==-1;){let r=this.continueScalar(s+1);if(r===-1)break;s=i.indexOf(`
|
119
|
+
`,r);}s!==-1&&(e=s-(i[s-1]==="\r"?2:1));}if(e===-1){if(!this.atEnd)return this.setNext("quoted-scalar");e=this.buffer.length;}return yield*this.pushToIndex(e+1,false),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=false;let t=this.pos;for(;;){let e=this.buffer[++t];if(e==="+")this.blockScalarKeep=true;else if(e>"0"&&e<="9")this.blockScalarIndent=Number(e)-1;else if(e!=="-")break}return yield*this.pushUntil(e=>fe(e)||e==="#")}*parseBlockScalar(){let t=this.pos-1,e=0,i;e:for(let r=this.pos;i=this.buffer[r];++r)switch(i){case " ":e+=1;break;case `
|
120
|
+
`:t=r,e=0;break;case "\r":{let o=this.buffer[r+1];if(!o&&!this.atEnd)return this.setNext("block-scalar");if(o===`
|
121
|
+
`)break}default:break e}if(!i&&!this.atEnd)return this.setNext("block-scalar");if(e>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=e:this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let r=this.continueScalar(t+1);if(r===-1)break;t=this.buffer.indexOf(`
|
122
|
+
`,r);}while(t!==-1);if(t===-1){if(!this.atEnd)return this.setNext("block-scalar");t=this.buffer.length;}}let s=t+1;for(i=this.buffer[s];i===" ";)i=this.buffer[++s];if(i===" "){for(;i===" "||i===" "||i==="\r"||i===`
|
123
|
+
`;)i=this.buffer[++s];t=s-1;}else if(!this.blockScalarKeep)do{let r=t-1,o=this.buffer[r];o==="\r"&&(o=this.buffer[--r]);let a=r;for(;o===" ";)o=this.buffer[--r];if(o===`
|
124
|
+
`&&r>=this.pos&&r+1+e>a)t=r;else break}while(true);return yield qn,yield*this.pushToIndex(t+1,true),yield*this.parseLineStart()}*parsePlainScalar(){let t=this.flowLevel>0,e=this.pos-1,i=this.pos-1,s;for(;s=this.buffer[++i];)if(s===":"){let r=this.buffer[i+1];if(fe(r)||t&&Vn.has(r))break;e=i;}else if(fe(s)){let r=this.buffer[i+1];if(s==="\r"&&(r===`
|
125
|
+
`?(i+=1,s=`
|
126
|
+
`,r=this.buffer[i+1]):e=i),r==="#"||t&&Vn.has(r))break;if(s===`
|
127
|
+
`){let o=this.continueScalar(i+1);if(o===-1)break;i=Math.max(i,o-2);}}else {if(t&&Vn.has(s))break;e=i;}return !s&&!this.atEnd?this.setNext("plain-scalar"):(yield qn,yield*this.pushToIndex(e+1,true),t?"flow":"doc")}*pushCount(t){return t>0?(yield this.buffer.substr(this.pos,t),this.pos+=t,t):0}*pushToIndex(t,e){let i=this.buffer.slice(this.pos,t);return i?(yield i,this.pos+=i.length,i.length):(e&&(yield ""),0)}*pushIndicators(){switch(this.charAt(0)){case "!":return (yield*this.pushTag())+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case "&":return (yield*this.pushUntil(ji))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators());case "-":case "?":case ":":{let t=this.flowLevel>0,e=this.charAt(1);if(fe(e)||t&&Vn.has(e))return t?this.flowKey&&(this.flowKey=false):this.indentNext=this.indentValue+1,(yield*this.pushCount(1))+(yield*this.pushSpaces(true))+(yield*this.pushIndicators())}}return 0}*pushTag(){if(this.charAt(1)==="<"){let t=this.pos+2,e=this.buffer[t];for(;!fe(e)&&e!==">";)e=this.buffer[++t];return yield*this.pushToIndex(e===">"?t+1:t,false)}else {let t=this.pos+1,e=this.buffer[t];for(;e;)if(Aa.has(e))e=this.buffer[++t];else if(e==="%"&&ar.has(this.buffer[t+1])&&ar.has(this.buffer[t+2]))e=this.buffer[t+=3];else break;return yield*this.pushToIndex(t,false)}}*pushNewline(){let t=this.buffer[this.pos];return t===`
|
128
|
+
`?yield*this.pushCount(1):t==="\r"&&this.charAt(1)===`
|
129
|
+
`?yield*this.pushCount(2):0}*pushSpaces(t){let e=this.pos-1,i;do i=this.buffer[++e];while(i===" "||t&&i===" ");let s=e-this.pos;return s>0&&(yield this.buffer.substr(this.pos,s),this.pos=e),s}*pushUntil(t){let e=this.pos,i=this.buffer[e];for(;!t(i);)i=this.buffer[++e];return yield*this.pushToIndex(e,false)}};var Kt=class{constructor(){this.lineStarts=[],this.addNewLine=t=>this.lineStarts.push(t),this.linePos=t=>{let e=0,i=this.lineStarts.length;for(;e<i;){let r=e+i>>1;this.lineStarts[r]<t?e=r+1:i=r;}if(this.lineStarts[e]===t)return {line:e+1,col:1};if(e===0)return {line:0,col:t};let s=this.lineStarts[e-1];return {line:e,col:t-s+1}};}};function Me(n,t){for(let e=0;e<n.length;++e)if(n[e].type===t)return true;return false}function lr(n){for(let t=0;t<n.length;++t)switch(n[t].type){case "space":case "comment":case "newline":break;default:return t}return -1}function fr(n){switch(n?.type){case "alias":case "scalar":case "single-quoted-scalar":case "double-quoted-scalar":case "flow-collection":return true;default:return false}}function Zn(n){switch(n.type){case "document":return n.start;case "block-map":{let t=n.items[n.items.length-1];return t.sep??t.start}case "block-seq":return n.items[n.items.length-1].start;default:return []}}function ut(n){if(n.length===0)return [];let t=n.length;e:for(;--t>=0;)switch(n[t].type){case "doc-start":case "explicit-key-ind":case "map-value-ind":case "seq-item-ind":case "newline":break e}for(;n[++t]?.type==="space";);return n.splice(t,n.length)}function cr(n){if(n.start.type==="flow-seq-start")for(let t of n.items)t.sep&&!t.value&&!Me(t.start,"explicit-key-ind")&&!Me(t.sep,"map-value-ind")&&(t.key&&(t.value=t.key),delete t.key,fr(t.value)?t.value.end?Array.prototype.push.apply(t.value.end,t.sep):t.value.end=t.sep:Array.prototype.push.apply(t.start,t.sep),delete t.sep);}var Ft=class{constructor(t){this.atNewLine=true,this.atScalar=false,this.indent=0,this.offset=0,this.onKeyLine=false,this.stack=[],this.source="",this.type="",this.lexer=new zt,this.onNewLine=t;}*parse(t,e=false){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let i of this.lexer.lex(t,e))yield*this.next(i);e||(yield*this.end());}*next(t){if(this.source=t,this.atScalar){this.atScalar=false,yield*this.step(),this.offset+=t.length;return}let e=or(t);if(e)if(e==="scalar")this.atNewLine=false,this.atScalar=true,this.type="scalar";else {switch(this.type=e,yield*this.step(),e){case "newline":this.atNewLine=true,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+t.length);break;case "space":this.atNewLine&&t[0]===" "&&(this.indent+=t.length);break;case "explicit-key-ind":case "map-value-ind":case "seq-item-ind":this.atNewLine&&(this.indent+=t.length);break;case "doc-mode":case "flow-error-end":return;default:this.atNewLine=false;}this.offset+=t.length;}else {let i=`Not a YAML token: ${t}`;yield*this.pop({type:"error",offset:this.offset,message:i,source:t}),this.offset+=t.length;}}*end(){for(;this.stack.length>0;)yield*this.pop();}get sourceToken(){return {type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let t=this.peek(1);if(this.type==="doc-end"&&(!t||t.type!=="doc-end")){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!t)return yield*this.stream();switch(t.type){case "document":return yield*this.document(t);case "alias":case "scalar":case "single-quoted-scalar":case "double-quoted-scalar":return yield*this.scalar(t);case "block-scalar":return yield*this.blockScalar(t);case "block-map":return yield*this.blockMap(t);case "block-seq":return yield*this.blockSequence(t);case "flow-collection":return yield*this.flowCollection(t);case "doc-end":return yield*this.documentEnd(t)}yield*this.pop();}peek(t){return this.stack[this.stack.length-t]}*pop(t){let e=t??this.stack.pop();if(!e)yield {type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield e;else {let i=this.peek(1);switch(e.type==="block-scalar"?e.indent="indent"in i?i.indent:0:e.type==="flow-collection"&&i.type==="document"&&(e.indent=0),e.type==="flow-collection"&&cr(e),i.type){case "document":i.value=e;break;case "block-scalar":i.props.push(e);break;case "block-map":{let s=i.items[i.items.length-1];if(s.value){i.items.push({start:[],key:e,sep:[]}),this.onKeyLine=true;return}else if(s.sep)s.value=e;else {Object.assign(s,{key:e,sep:[]}),this.onKeyLine=!s.explicitKey;return}break}case "block-seq":{let s=i.items[i.items.length-1];s.value?i.items.push({start:[],value:e}):s.value=e;break}case "flow-collection":{let s=i.items[i.items.length-1];!s||s.value?i.items.push({start:[],key:e,sep:[]}):s.sep?s.value=e:Object.assign(s,{key:e,sep:[]});return}default:yield*this.pop(),yield*this.pop(e);}if((i.type==="document"||i.type==="block-map"||i.type==="block-seq")&&(e.type==="block-map"||e.type==="block-seq")){let s=e.items[e.items.length-1];s&&!s.sep&&!s.value&&s.start.length>0&&lr(s.start)===-1&&(e.indent===0||s.start.every(r=>r.type!=="comment"||r.indent<e.indent))&&(i.type==="document"?i.end=s.start:i.items.push({start:s.start}),e.items.splice(-1,1));}}}*stream(){switch(this.type){case "directive-line":yield {type:"directive",offset:this.offset,source:this.source};return;case "byte-order-mark":case "space":case "comment":case "newline":yield this.sourceToken;return;case "doc-mode":case "doc-start":{let t={type:"document",offset:this.offset,start:[]};this.type==="doc-start"&&t.start.push(this.sourceToken),this.stack.push(t);return}}yield {type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source};}*document(t){if(t.value)return yield*this.lineEnd(t);switch(this.type){case "doc-start":{lr(t.start)!==-1?(yield*this.pop(),yield*this.step()):t.start.push(this.sourceToken);return}case "anchor":case "tag":case "space":case "comment":case "newline":t.start.push(this.sourceToken);return}let e=this.startBlockValue(t);e?this.stack.push(e):yield {type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source};}*scalar(t){if(this.type==="map-value-ind"){let e=Zn(this.peek(2)),i=ut(e),s;t.end?(s=t.end,s.push(this.sourceToken),delete t.end):s=[this.sourceToken];let r={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:i,key:t,sep:s}]};this.onKeyLine=true,this.stack[this.stack.length-1]=r;}else yield*this.lineEnd(t);}*blockScalar(t){switch(this.type){case "space":case "comment":case "newline":t.props.push(this.sourceToken);return;case "scalar":if(t.source=this.source,this.atNewLine=true,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
|
130
|
+
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
131
|
+
`,e)+1;}yield*this.pop();break;default:yield*this.pop(),yield*this.step();}}*blockMap(t){let e=t.items[t.items.length-1];switch(this.type){case "newline":if(this.onKeyLine=false,e.value){let i="end"in e.value?e.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):t.items.push({start:[this.sourceToken]});}else e.sep?e.sep.push(this.sourceToken):e.start.push(this.sourceToken);return;case "space":case "comment":if(e.value)t.items.push({start:[this.sourceToken]});else if(e.sep)e.sep.push(this.sourceToken);else {if(this.atIndentedComment(e.start,t.indent)){let s=t.items[t.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,e.start),s.push(this.sourceToken),t.items.pop();return}}e.start.push(this.sourceToken);}return}if(this.indent>=t.indent){let i=!this.onKeyLine&&this.indent===t.indent,s=i&&(e.sep||e.explicitKey)&&this.type!=="seq-item-ind",r=[];if(s&&e.sep&&!e.value){let o=[];for(let a=0;a<e.sep.length;++a){let c=e.sep[a];switch(c.type){case "newline":o.push(a);break;case "space":break;case "comment":c.indent>t.indent&&(o.length=0);break;default:o.length=0;}}o.length>=2&&(r=e.sep.splice(o[1]));}switch(this.type){case "anchor":case "tag":s||e.value?(r.push(this.sourceToken),t.items.push({start:r}),this.onKeyLine=true):e.sep?e.sep.push(this.sourceToken):e.start.push(this.sourceToken);return;case "explicit-key-ind":!e.sep&&!e.explicitKey?(e.start.push(this.sourceToken),e.explicitKey=true):s||e.value?(r.push(this.sourceToken),t.items.push({start:r,explicitKey:true})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:true}]}),this.onKeyLine=true;return;case "map-value-ind":if(e.explicitKey)if(e.sep)if(e.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Me(e.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]});else if(fr(e.key)&&!Me(e.sep,"newline")){let o=ut(e.start),a=e.key,c=e.sep;c.push(this.sourceToken),delete e.key,delete e.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:a,sep:c}]});}else r.length>0?e.sep=e.sep.concat(r,this.sourceToken):e.sep.push(this.sourceToken);else if(Me(e.start,"newline"))Object.assign(e,{key:null,sep:[this.sourceToken]});else {let o=ut(e.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});}else e.sep?e.value||s?t.items.push({start:r,key:null,sep:[this.sourceToken]}):Me(e.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):e.sep.push(this.sourceToken):Object.assign(e,{key:null,sep:[this.sourceToken]});this.onKeyLine=true;return;case "alias":case "scalar":case "single-quoted-scalar":case "double-quoted-scalar":{let o=this.flowScalar(this.type);s||e.value?(t.items.push({start:r,key:o,sep:[]}),this.onKeyLine=true):e.sep?this.stack.push(o):(Object.assign(e,{key:o,sep:[]}),this.onKeyLine=true);return}default:{let o=this.startBlockValue(t);if(o){if(o.type==="block-seq"){if(!e.explicitKey&&e.sep&&!Me(e.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&t.items.push({start:r});this.stack.push(o);return}}}}yield*this.pop(),yield*this.step();}*blockSequence(t){let e=t.items[t.items.length-1];switch(this.type){case "newline":if(e.value){let i="end"in e.value?e.value.end:void 0;(Array.isArray(i)?i[i.length-1]:void 0)?.type==="comment"?i?.push(this.sourceToken):t.items.push({start:[this.sourceToken]});}else e.start.push(this.sourceToken);return;case "space":case "comment":if(e.value)t.items.push({start:[this.sourceToken]});else {if(this.atIndentedComment(e.start,t.indent)){let s=t.items[t.items.length-2]?.value?.end;if(Array.isArray(s)){Array.prototype.push.apply(s,e.start),s.push(this.sourceToken),t.items.pop();return}}e.start.push(this.sourceToken);}return;case "anchor":case "tag":if(e.value||this.indent<=t.indent)break;e.start.push(this.sourceToken);return;case "seq-item-ind":if(this.indent!==t.indent)break;e.value||Me(e.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):e.start.push(this.sourceToken);return}if(this.indent>t.indent){let i=this.startBlockValue(t);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step();}*flowCollection(t){let e=t.items[t.items.length-1];if(this.type==="flow-error-end"){let i;do yield*this.pop(),i=this.peek(1);while(i&&i.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case "comma":case "explicit-key-ind":!e||e.sep?t.items.push({start:[this.sourceToken]}):e.start.push(this.sourceToken);return;case "map-value-ind":!e||e.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):e.sep?e.sep.push(this.sourceToken):Object.assign(e,{key:null,sep:[this.sourceToken]});return;case "space":case "comment":case "newline":case "anchor":case "tag":!e||e.value?t.items.push({start:[this.sourceToken]}):e.sep?e.sep.push(this.sourceToken):e.start.push(this.sourceToken);return;case "alias":case "scalar":case "single-quoted-scalar":case "double-quoted-scalar":{let s=this.flowScalar(this.type);!e||e.value?t.items.push({start:[],key:s,sep:[]}):e.sep?this.stack.push(s):Object.assign(e,{key:s,sep:[]});return}case "flow-map-end":case "flow-seq-end":t.end.push(this.sourceToken);return}let i=this.startBlockValue(t);i?this.stack.push(i):(yield*this.pop(),yield*this.step());}else {let i=this.peek(2);if(i.type==="block-map"&&(this.type==="map-value-ind"&&i.indent===t.indent||this.type==="newline"&&!i.items[i.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&i.type!=="flow-collection"){let s=Zn(i),r=ut(s);cr(t);let o=t.end.splice(1,t.end.length);o.push(this.sourceToken);let a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:r,key:t,sep:o}]};this.onKeyLine=true,this.stack[this.stack.length-1]=a;}else yield*this.lineEnd(t);}}flowScalar(t){if(this.onNewLine){let e=this.source.indexOf(`
|
132
|
+
`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
|
133
|
+
`,e)+1;}return {type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case "alias":case "scalar":case "single-quoted-scalar":case "double-quoted-scalar":return this.flowScalar(this.type);case "block-scalar-header":return {type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case "flow-map-start":case "flow-seq-start":return {type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case "seq-item-ind":return {type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case "explicit-key-ind":{this.onKeyLine=true;let e=Zn(t),i=ut(e);return i.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,explicitKey:true}]}}case "map-value-ind":{this.onKeyLine=true;let e=Zn(t),i=ut(e);return {type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,e){return this.type!=="comment"||this.indent<=e?false:t.every(i=>i.type==="newline"||i.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()));}*lineEnd(t){switch(this.type){case "comma":case "doc-start":case "doc-end":case "flow-seq-end":case "flow-map-end":case "map-value-ind":yield*this.pop(),yield*this.step();break;case "newline":this.onKeyLine=false;case "space":case "comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop());}}};function Na(n){let t=n.prettyErrors!==false;return {lineCounter:n.lineCounter||t&&new Kt||null,prettyErrors:t}}function ur(n,t={}){let{lineCounter:e,prettyErrors:i}=Na(t),s=new Ft(e?.addNewLine),r=new Pt(t),o=null;for(let a of r.compose(s.parse(n),true,n.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new ce(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return i&&e&&(o.errors.forEach(Li(n,e)),o.warnings.forEach(Li(n,e))),o}function qi(n,t,e){let i;let s=ur(n,e);if(!s)return null;if(s.warnings.forEach(r=>(s.options.logLevel,void 0)),s.errors.length>0){if(s.options.logLevel!=="silent")throw s.errors[0];s.errors=[];}return s.toJS(Object.assign({reviver:i},e))}var jt=class{parse(t,e={}){let{validate:i=true,strict:s=false}=e,r;try{r=qi(t);}catch(a){throw new A(`Failed to parse YAML: ${a instanceof Error?a.message:String(a)}`)}if(typeof r!="object"||r===null)throw new A("KSY file must contain an object");let o=r;if(i){let a=this.validate(o,{strict:s});if(!a.valid){let c=a.errors.map(l=>l.message).join("; ");throw new je(`Schema validation failed: ${c}`)}a.warnings.length>0;}return o}validate(t,e={}){let{strict:i=false,isNested:s=false}=e,r=[],o=[];return !t.meta&&!s?r.push({message:'Missing required "meta" section',path:[],code:"MISSING_META"}):t.meta&&(t.meta.id?typeof t.meta.id!="string"?r.push({message:'"meta.id" must be a string',path:["meta","id"],code:"INVALID_META_ID_TYPE"}):/^[a-z][a-z0-9_]*$/.test(t.meta.id)||o.push({message:'"meta.id" should follow snake_case naming convention',path:["meta","id"],code:"META_ID_NAMING"}):r.push({message:'Missing required "meta.id" field',path:["meta"],code:"MISSING_META_ID"}),t.meta.endian&&typeof t.meta.endian=="string"&&t.meta.endian!=="le"&&t.meta.endian!=="be"&&r.push({message:'"meta.endian" must be "le" or "be"',path:["meta","endian"],code:"INVALID_ENDIAN"})),t.seq&&(Array.isArray(t.seq)?t.seq.forEach((a,c)=>{this.validateAttribute(a,["seq",String(c)],r,o,i);}):r.push({message:'"seq" must be an array',path:["seq"],code:"INVALID_SEQ_TYPE"})),t.instances&&(typeof t.instances!="object"?r.push({message:'"instances" must be an object',path:["instances"],code:"INVALID_INSTANCES_TYPE"}):Object.entries(t.instances).forEach(([a,c])=>{this.validateAttribute(c,["instances",a],r,o,i);})),t.types&&(typeof t.types!="object"?r.push({message:'"types" must be an object',path:["types"],code:"INVALID_TYPES_TYPE"}):Object.entries(t.types).forEach(([a,c])=>{let l=this.validate(c,{...e,isNested:true});r.push(...l.errors.map(f=>({...f,path:["types",a,...f.path]}))),o.push(...l.warnings.map(f=>({...f,path:["types",a,...f.path]})));})),t.enums&&typeof t.enums!="object"&&r.push({message:'"enums" must be an object',path:["enums"],code:"INVALID_ENUMS_TYPE"}),{valid:r.length===0&&(i?o.length===0:true),errors:r,warnings:o}}validateAttribute(t,e,i,s,r){t.id&&typeof t.id=="string"&&(/^[a-z][a-z0-9_]*$/.test(t.id)||s.push({message:`Field "${t.id}" should follow snake_case naming convention`,path:[...e,"id"],code:"FIELD_ID_NAMING"})),t.repeat&&(t.repeat!=="expr"&&t.repeat!=="eos"&&t.repeat!=="until"&&i.push({message:'"repeat" must be "expr", "eos", or "until"',path:[...e,"repeat"],code:"INVALID_REPEAT"}),t.repeat==="expr"&&!t["repeat-expr"]&&i.push({message:'"repeat-expr" is required when repeat is "expr"',path:[...e,"repeat-expr"],code:"MISSING_REPEAT_EXPR"}),t.repeat==="until"&&!t["repeat-until"]&&i.push({message:'"repeat-until" is required when repeat is "until"',path:[...e,"repeat-until"],code:"MISSING_REPEAT_UNTIL"})),t["size-eos"]&&t.size&&s.push({message:'"size-eos" and "size" are mutually exclusive',path:[...e],code:"SIZE_EOS_WITH_SIZE"}),t.contents&&!Array.isArray(t.contents)&&typeof t.contents!="string"&&i.push({message:'"contents" must be an array or string',path:[...e,"contents"],code:"INVALID_CONTENTS_TYPE"});}parseWithImports(t,e,i={}){let s=this.parse(t,i);if(!s.meta.imports||s.meta.imports.length===0)return s;let r={};for(let o of s.meta.imports){if(!e.has(o))throw new A(`Import not found: ${o}. Available imports: ${Array.from(e.keys()).join(", ")}`);let a=e.get(o),c=this.parse(a,{...i,validate:false}),l=this.extractNamespace(o);if(c.types)for(let[f,d]of Object.entries(c.types)){let u=`${l}::${f}`;r[u]=d;}if(r[l]={meta:c.meta,seq:c.seq,instances:c.instances,types:c.types,enums:c.enums},c.enums){s.enums||(s.enums={});for(let[f,d]of Object.entries(c.enums)){let u=`${l}::${f}`;s.enums[u]=d;}}}return Object.keys(r).length>0&&(s.types={...r,...s.types}),s}extractNamespace(t){let i=(t.startsWith("/")?t.slice(1):t).split("/");return i[i.length-1]}};var qt=class n{constructor(t,e=null,i=null,s){this.h=t;this.d=e;this.parentStack=[];this.o={};this.c={};i!==null&&this.parentStack.push(i),s&&(this.c=s);}get io(){return this.h}get root(){return this.d}get parent(){return this.parentStack.length>0?this.parentStack[this.parentStack.length-1]:null}get current(){return this.o}set current(t){this.o=t;}pushParent(t){this.parentStack.push(t);}popParent(){return this.parentStack.pop()}resolve(t){switch(t){case "_io":return this.h;case "_root":return this.d;case "_parent":return this.parent;case "_index":return this.o._index;default:return t in this.o?this.o[t]:void 0}}set(t,e){this.o[t]=e;}getEnumValue(t,e){let i=this.c[t];if(i){for(let[s,r]of Object.entries(i))if(r===e){let o=Number(s);return isNaN(o)?s:o}}}hasEnum(t){return t in this.c}createChild(t){return new n(t||this.h,this.d||this.o,this.o,this.c)}clone(){let t=new n(this.h,this.d,this.parent,this.c);return t.o={...this.o},t.parentStack=[...this.parentStack],t}};function L(n,t=null,e=0){return {type:n,value:t,position:e}}var Hn=class{constructor(t){this.position=0;this.current=null;this.input=t,this.current=t.length>0?t[0]:null;}tokenize(){let t=[];for(;this.current!==null;){if(this.isWhitespace(this.current)){this.skipWhitespace();continue}if(this.isDigit(this.current)){t.push(this.readNumber());continue}if(this.isIdentifierStart(this.current)){t.push(this.readIdentifierOrKeyword());continue}if(this.current==='"'||this.current==="'"){t.push(this.readString());continue}let e=this.readOperator();if(e){t.push(e);continue}throw new A(`Unexpected character: ${this.current}`,this.position)}return t.push(L("EOF",null,this.position)),t}advance(){this.position++,this.current=this.position<this.input.length?this.input[this.position]:null;}peek(t=1){let e=this.position+t;return e<this.input.length?this.input[e]:null}isWhitespace(t){return /\s/.test(t)}isDigit(t){return /[0-9]/.test(t)}isIdentifierStart(t){return /[a-zA-Z_]/.test(t)}isIdentifierPart(t){return /[a-zA-Z0-9_]/.test(t)}skipWhitespace(){for(;this.current!==null&&this.isWhitespace(this.current);)this.advance();}readNumber(){let t=this.position,e="";if(this.current==="0"&&this.peek()==="x"){for(e+=this.current,this.advance(),e+=this.current,this.advance();this.current!==null&&/[0-9a-fA-F]/.test(this.current);)e+=this.current,this.advance();return L("NUMBER",parseInt(e,16),t)}if(this.current==="0"&&this.peek()==="b"){for(e+=this.current,this.advance(),e+=this.current,this.advance();this.current!==null&&/[01]/.test(this.current);)e+=this.current,this.advance();return L("NUMBER",parseInt(e,2),t)}for(;this.current!==null&&this.isDigit(this.current);)e+=this.current,this.advance();if(this.current==="."&&this.peek()&&this.isDigit(this.peek())){for(e+=this.current,this.advance();this.current!==null&&this.isDigit(this.current);)e+=this.current,this.advance();return L("NUMBER",parseFloat(e),t)}return L("NUMBER",parseInt(e,10),t)}readIdentifierOrKeyword(){let t=this.position,e="";for(;this.current!==null&&this.isIdentifierPart(this.current);)e+=this.current,this.advance();switch(e){case "true":return L("BOOLEAN",true,t);case "false":return L("BOOLEAN",false,t);case "and":return L("AND",e,t);case "or":return L("OR",e,t);case "not":return L("NOT",e,t);default:return L("IDENTIFIER",e,t)}}readString(){let t=this.position,e=this.current,i="";for(this.advance();this.current!==null&&this.current!==e;){if(this.current==="\\"){if(this.advance(),this.current===null)throw new A("Unterminated string",t);let s=this.current;s==="n"?i+=`
|
134
|
+
`:s==="t"?i+=" ":s==="r"?i+="\r":s==="\\"?i+="\\":s==='"'?i+='"':s==="'"?i+="'":i+=s;}else i+=this.current;this.advance();}if(this.current===null)throw new A("Unterminated string",t);return this.advance(),L("STRING",i,t)}readOperator(){let t=this.position,e=this.current;switch(e){case "+":return this.advance(),L("PLUS",e,t);case "-":return this.advance(),L("MINUS",e,t);case "*":return this.advance(),L("STAR",e,t);case "/":return this.advance(),L("SLASH",e,t);case "%":return this.advance(),L("PERCENT",e,t);case "<":return this.advance(),this.current==="="?(this.advance(),L("LE","<=",t)):this.current==="<"?(this.advance(),L("LSHIFT","<<",t)):L("LT","<",t);case ">":return this.advance(),this.current==="="?(this.advance(),L("GE",">=",t)):this.current===">"?(this.advance(),L("RSHIFT",">>",t)):L("GT",">",t);case "=":if(this.advance(),this.current==="=")return this.advance(),L("EQ","==",t);throw new A("Expected == for equality",t);case "!":if(this.advance(),this.current==="=")return this.advance(),L("NE","!=",t);throw new A("Expected != for inequality",t);case "&":return this.advance(),L("AMPERSAND",e,t);case "|":return this.advance(),L("PIPE",e,t);case "^":return this.advance(),L("CARET",e,t);case "?":return this.advance(),L("QUESTION",e,t);case ":":return this.advance(),this.current===":"?(this.advance(),L("DOUBLE_COLON","::",t)):L("COLON",e,t);case "(":return this.advance(),L("LPAREN",e,t);case ")":return this.advance(),L("RPAREN",e,t);case "[":return this.advance(),L("LBRACKET",e,t);case "]":return this.advance(),L("RBRACKET",e,t);case ".":return this.advance(),L("DOT",e,t);case ",":return this.advance(),L("COMMA",e,t);default:return null}}};function hr(n){return {kind:"Literal",value:n}}function dr(n){return {kind:"Identifier",name:n}}function ue(n,t,e){return {kind:"BinaryOp",operator:n,left:t,right:e}}function pr(n,t){return {kind:"UnaryOp",operator:n,operand:t}}function mr(n,t,e){return {kind:"Ternary",condition:n,ifTrue:t,ifFalse:e}}function gr(n,t){return {kind:"MemberAccess",object:n,property:t}}function yr(n,t){return {kind:"IndexAccess",object:n,index:t}}function br(n,t,e){return {kind:"MethodCall",object:n,method:t,args:e}}function wr(n,t){return {kind:"EnumAccess",enumName:n,value:t}}function _r(n){return {kind:"ArrayLiteral",elements:n}}var Yn=class{constructor(t){this.position=0;this.tokens=t;}parse(){let t=this.parseTernary();if(!this.isAtEnd())throw new A(`Unexpected token: ${this.current().type}`,this.current().position);return t}current(){return this.tokens[this.position]}isAtEnd(){return this.current().type==="EOF"}advance(){return this.isAtEnd()||this.position++,this.tokens[this.position-1]}match(...t){for(let e of t)if(this.current().type===e)return this.advance(),true;return false}expect(t,e){if(this.current().type!==t)throw new A(e,this.current().position);return this.advance()}parseTernary(){let t=this.parseLogicalOr();if(this.match("QUESTION")){let e=this.parseTernary();this.expect("COLON","Expected : in ternary expression");let i=this.parseTernary();return mr(t,e,i)}return t}parseLogicalOr(){let t=this.parseLogicalAnd();for(;this.match("OR");){let i=this.parseLogicalAnd();t=ue("or",t,i);}return t}parseLogicalAnd(){let t=this.parseBitwiseOr();for(;this.match("AND");){let i=this.parseBitwiseOr();t=ue("and",t,i);}return t}parseBitwiseOr(){let t=this.parseBitwiseXor();for(;this.match("PIPE");){let i=this.parseBitwiseXor();t=ue("|",t,i);}return t}parseBitwiseXor(){let t=this.parseBitwiseAnd();for(;this.match("CARET");){let i=this.parseBitwiseAnd();t=ue("^",t,i);}return t}parseBitwiseAnd(){let t=this.parseEquality();for(;this.match("AMPERSAND");){let i=this.parseEquality();t=ue("&",t,i);}return t}parseEquality(){let t=this.parseRelational();for(;this.match("EQ","NE");){let e=this.tokens[this.position-1].value,i=this.parseRelational();t=ue(e,t,i);}return t}parseRelational(){let t=this.parseBitShift();for(;this.match("LT","LE","GT","GE");){let e=this.tokens[this.position-1].value,i=this.parseBitShift();t=ue(e,t,i);}return t}parseBitShift(){let t=this.parseAdditive();for(;this.match("LSHIFT","RSHIFT");){let e=this.tokens[this.position-1].value,i=this.parseAdditive();t=ue(e,t,i);}return t}parseAdditive(){let t=this.parseMultiplicative();for(;this.match("PLUS","MINUS");){let e=this.tokens[this.position-1].value,i=this.parseMultiplicative();t=ue(e,t,i);}return t}parseMultiplicative(){let t=this.parseUnary();for(;this.match("STAR","SLASH","PERCENT");){let e=this.tokens[this.position-1].value,i=this.parseUnary();t=ue(e,t,i);}return t}parseUnary(){if(this.match("MINUS","NOT")){let t=this.tokens[this.position-1].value,e=this.parseUnary();return pr(t,e)}return this.parsePostfix()}parsePostfix(){let t=this.parsePrimary();for(;;)if(this.match("DOT")){let e=this.expect("IDENTIFIER","Expected property name after .");t=gr(t,e.value);}else if(this.match("LBRACKET")){let e=this.parseTernary();this.expect("RBRACKET","Expected ] after array index"),t=yr(t,e);}else if(this.current().type==="LPAREN")if(t.kind==="MemberAccess"){this.advance();let e=[];if(this.current().type!=="RPAREN")for(e.push(this.parseTernary());this.match("COMMA");)e.push(this.parseTernary());this.expect("RPAREN","Expected ) after arguments");let i=t;t=br(i.object,i.property,e);}else break;else break;return t}parsePrimary(){if(this.match("NUMBER","STRING","BOOLEAN")){let t=this.tokens[this.position-1];return hr(t.value)}if(this.match("IDENTIFIER")){let t=this.tokens[this.position-1].value;if(this.match("DOUBLE_COLON")){let e=this.expect("IDENTIFIER","Expected enum value after ::");return wr(t,e.value)}return dr(t)}if(this.match("LPAREN")){let t=this.parseTernary();return this.expect("RPAREN","Expected ) after expression"),t}if(this.match("LBRACKET")){let t=[];if(this.current().type!=="RBRACKET")for(t.push(this.parseTernary());this.match("COMMA");)t.push(this.parseTernary());return this.expect("RBRACKET","Expected ] after array literal"),_r(t)}throw new A(`Unexpected token: ${this.current().type}`,this.current().position)}};var Gn=class{evaluate(t,e){let i=t;switch(t.kind){case "Literal":return i.value;case "Identifier":return this.evaluateIdentifier(i.name,e);case "BinaryOp":return this.evaluateBinaryOp(i.operator,i.left,i.right,e);case "UnaryOp":return this.evaluateUnaryOp(i.operator,i.operand,e);case "Ternary":return this.evaluateTernary(i.condition,i.ifTrue,i.ifFalse,e);case "MemberAccess":return this.evaluateMemberAccess(i.object,i.property,e);case "IndexAccess":return this.evaluateIndexAccess(i.object,i.index,e);case "MethodCall":return this.evaluateMethodCall(i.object,i.method,i.args,e);case "EnumAccess":return this.evaluateEnumAccess(i.enumName,i.value,e);case "ArrayLiteral":return this.evaluateArrayLiteral(i.elements,e);default:throw new A(`Unknown AST node kind: ${t.kind}`)}}evaluateIdentifier(t,e){return e.resolve(t)}evaluateBinaryOp(t,e,i,s){let r=this.evaluate(e,s),o=this.evaluate(i,s);switch(t){case "+":return this.add(r,o);case "-":return this.toNumber(r)-this.toNumber(o);case "*":return this.toNumber(r)*this.toNumber(o);case "/":return this.toNumber(r)/this.toNumber(o);case "%":return this.modulo(this.toNumber(r),this.toNumber(o));case "<":return this.compare(r,o)<0;case "<=":return this.compare(r,o)<=0;case ">":return this.compare(r,o)>0;case ">=":return this.compare(r,o)>=0;case "==":return this.equals(r,o);case "!=":return !this.equals(r,o);case "<<":return this.bitwiseOp(r,o,(a,c)=>a<<c);case ">>":return this.bitwiseOp(r,o,(a,c)=>a>>c);case "&":return this.bitwiseOp(r,o,(a,c)=>a&c);case "|":return this.bitwiseOp(r,o,(a,c)=>a|c);case "^":return this.bitwiseOp(r,o,(a,c)=>a^c);case "and":return this.toBoolean(r)&&this.toBoolean(o);case "or":return this.toBoolean(r)||this.toBoolean(o);default:throw new A(`Unknown binary operator: ${t}`)}}evaluateUnaryOp(t,e,i){let s=this.evaluate(e,i);switch(t){case "-":return -this.toNumber(s);case "not":return !this.toBoolean(s);default:throw new A(`Unknown unary operator: ${t}`)}}evaluateTernary(t,e,i,s){let r=this.evaluate(t,s);return this.toBoolean(r)?this.evaluate(e,s):this.evaluate(i,s)}evaluateMemberAccess(t,e,i){let s=this.evaluate(t,i);if(s==null)throw new A(`Cannot access property ${e} of null/undefined`);if(e==="to_i")return typeof s=="number"?Math.floor(s):typeof s=="bigint"?Number(s):typeof s=="string"?parseInt(s,10):typeof s=="boolean"?s?1:0:this.toInt(s);if(e==="to_s")return String(s);if(typeof s=="object")return s[e];throw new A(`Cannot access property ${e} of non-object`)}evaluateIndexAccess(t,e,i){let s=this.evaluate(t,i),r=this.evaluate(e,i);if(Array.isArray(s)){let o=this.toInt(r);return s[o]}if(s instanceof Uint8Array){let o=this.toInt(r);return s[o]}throw new A("Index access requires an array")}evaluateMethodCall(t,e,i,s){let r=this.evaluate(t,s),o=i.map(a=>this.evaluate(a,s));if(e==="length"||e==="size"){if(Array.isArray(r)||r instanceof Uint8Array||typeof r=="string")return r.length;throw new A(`Object does not have a ${e} property`)}if(e==="to_i"){let a=o.length>0?this.toInt(o[0]):10;return typeof r=="string"?parseInt(r,a):this.toInt(r)}if(e==="to_s")return String(r);if(typeof r=="string")return this.evaluateStringMethod(r,e,o);if(Array.isArray(r)||r instanceof Uint8Array)return this.evaluateArrayMethod(r,e,o);throw new A(`Unknown method: ${e}`)}evaluateStringMethod(t,e,i){switch(e){case "substring":{let s=i.length>0?this.toInt(i[0]):0,r=i.length>1?this.toInt(i[1]):void 0;return t.substring(s,r)}case "substr":{let s=i.length>0?this.toInt(i[0]):0,r=i.length>1?this.toInt(i[1]):void 0;return t.substr(s,r)}case "reverse":return t.split("").reverse().join("");case "to_i":{let s=i.length>0?this.toInt(i[0]):10;return parseInt(t,s)}case "length":case "size":return t.length;case "upcase":case "to_upper":return t.toUpperCase();case "downcase":case "to_lower":return t.toLowerCase();case "capitalize":return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase();case "strip":case "trim":return t.trim();case "lstrip":case "trim_start":return t.trimStart();case "rstrip":case "trim_end":return t.trimEnd();case "starts_with":case "startsWith":{if(i.length===0)throw new A("starts_with requires 1 argument");return t.startsWith(String(i[0]))}case "ends_with":case "endsWith":{if(i.length===0)throw new A("ends_with requires 1 argument");return t.endsWith(String(i[0]))}case "includes":case "contains":{if(i.length===0)throw new A("includes requires 1 argument");return t.includes(String(i[0]))}case "index_of":case "indexOf":{if(i.length===0)throw new A("index_of requires 1 argument");return t.indexOf(String(i[0]))}case "split":{if(i.length===0)throw new A("split requires 1 argument");return t.split(String(i[0]))}case "replace":{if(i.length<2)throw new A("replace requires 2 arguments");return t.replace(String(i[0]),String(i[1]))}case "replace_all":case "replaceAll":{if(i.length<2)throw new A("replace_all requires 2 arguments");let s=String(i[0]),r=String(i[1]);return t.split(s).join(r)}case "pad_left":case "padStart":{if(i.length===0)throw new A("pad_left requires at least 1 argument");let s=this.toInt(i[0]),r=i.length>1?String(i[1]):" ";return t.padStart(s,r)}case "pad_right":case "padEnd":{if(i.length===0)throw new A("pad_right requires at least 1 argument");let s=this.toInt(i[0]),r=i.length>1?String(i[1]):" ";return t.padEnd(s,r)}default:throw new A(`Unknown string method: ${e}`)}}evaluateArrayMethod(t,e,i){let s=Array.isArray(t)?t:Array.from(t);switch(e){case "length":case "size":return s.length;case "first":return s[0];case "last":return s[s.length-1];case "min":return Math.min(...s.map(r=>this.toNumber(r)));case "max":return Math.max(...s.map(r=>this.toNumber(r)));case "reverse":return [...s].reverse();case "sort":return [...s].sort((r,o)=>this.compare(r,o));case "includes":case "contains":{if(i.length===0)throw new A("includes requires 1 argument");return s.some(r=>this.equals(r,i[0]))}case "index_of":case "indexOf":{if(i.length===0)throw new A("index_of requires 1 argument");return s.findIndex(r=>this.equals(r,i[0]))}case "slice":{let r=i.length>0?this.toInt(i[0]):0,o=i.length>1?this.toInt(i[1]):void 0;return s.slice(r,o)}default:throw new A(`Unknown array method: ${e}`)}}evaluateEnumAccess(t,e,i){let s=i.getEnumValue(t,e);if(s===void 0)throw new A(`Enum value "${t}::${e}" not found`);return s}add(t,e){return typeof t=="string"||typeof e=="string"?String(t)+String(e):this.toNumber(t)+this.toNumber(e)}modulo(t,e){let i=t%e;return i<0?i+e:i}bitwiseOp(t,e,i){if(typeof t=="bigint"||typeof e=="bigint"){let s=typeof t=="bigint"?t:BigInt(t),r=typeof e=="bigint"?e:BigInt(e);if(i.toString().includes("<<"))return s<<BigInt(Number(r));if(i.toString().includes(">>"))return s>>BigInt(Number(r));if(i.toString().includes("&"))return s&r;if(i.toString().includes("|"))return s|r;if(i.toString().includes("^"))return s^r}if(t==null||e===void 0||e===null)throw new A("Cannot perform bitwise operation on null/undefined");return i(this.toInt(t),this.toInt(e))}compare(t,e){if(typeof t=="string"&&typeof e=="string")return t<e?-1:t>e?1:0;let i=this.toNumber(t),s=this.toNumber(e);return i<s?-1:i>s?1:0}equals(t,e){if(typeof t=="bigint"||typeof e=="bigint")return BigInt(t)===BigInt(e);let i=o=>Array.isArray(o)?o.map(a=>typeof a=="bigint"?Number(a):a):o instanceof Uint8Array?Array.from(o):null,s=i(t),r=i(e);if(s&&r){if(s.length!==r.length)return false;for(let o=0;o<s.length;o++)if(s[o]!==r[o])return false;return true}return t===e}evaluateArrayLiteral(t,e){return t.map(i=>this.evaluate(i,e))}toNumber(t){if(typeof t=="number")return t;if(typeof t=="bigint")return Number(t);if(typeof t=="boolean")return t?1:0;if(typeof t=="string")return parseFloat(t);throw new A(`Cannot convert ${typeof t} to number`)}toInt(t){return Math.floor(this.toNumber(t))}toBoolean(t){return typeof t=="boolean"?t:typeof t=="number"?t!==0:typeof t=="bigint"?t!==0n:typeof t=="string"?t.length>0:t!=null}};function Sr(n,t){let e=n.replace(/\.as<[^>]+>/g,""),s=new Hn(e).tokenize(),o=new Yn(s).parse();return new Gn().evaluate(o,t)}function yt(n){let t=n.length;for(;--t>=0;)n[t]=0;}var La=3,Ca=258,ps=29,on=256,Jt=on+1+ps,pt=30,Ba=512,Ie=new Array((Jt+2)*2);yt(Ie);var Yt=new Array(pt*2);yt(Yt);var Qt=new Array(Ba);yt(Qt);var Xt=new Array(Ca-La+1);yt(Xt);var ys=new Array(ps);yt(ys);var ni=new Array(pt);yt(ni);var Qa=(n,t,e,i)=>{let s=n&65535|0,r=n>>>16&65535|0,o=0;for(;e!==0;){o=e>2e3?2e3:e,e-=o;do s=s+t[i++]|0,r=r+s|0;while(--o);s%=65521,r%=65521;}return s|r<<16|0},tn=Qa,Xa=()=>{let n,t=[];for(var e=0;e<256;e++){n=e;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;t[e]=n;}return t},el=new Uint32Array(Xa()),tl=(n,t,e,i)=>{let s=el,r=i+e;n^=-1;for(let o=i;o<r;o++)n=n>>>8^s[(n^t[o])&255];return n^-1},F=tl,We={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},bt={Z_NO_FLUSH:0,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_DEFLATED:8};var Vl=(n,t)=>Object.prototype.hasOwnProperty.call(n,t),Zl=function(n){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let e=t.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(let i in e)Vl(e,i)&&(n[i]=e[i]);}}return n},Hl=n=>{let t=0;for(let i=0,s=n.length;i<s;i++)t+=n[i].length;let e=new Uint8Array(t);for(let i=0,s=0,r=n.length;i<r;i++){let o=n[i];e.set(o,s),s+=o.length;}return e},oi={assign:Zl,flattenChunks:Hl},xo=true;try{String.fromCharCode.apply(null,new Uint8Array(1));}catch{xo=false;}var nn=new Uint8Array(256);for(let n=0;n<256;n++)nn[n]=n>=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;nn[254]=nn[254]=1;var Yl=n=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let t,e,i,s,r,o=n.length,a=0;for(s=0;s<o;s++)e=n.charCodeAt(s),(e&64512)===55296&&s+1<o&&(i=n.charCodeAt(s+1),(i&64512)===56320&&(e=65536+(e-55296<<10)+(i-56320),s++)),a+=e<128?1:e<2048?2:e<65536?3:4;for(t=new Uint8Array(a),r=0,s=0;r<a;s++)e=n.charCodeAt(s),(e&64512)===55296&&s+1<o&&(i=n.charCodeAt(s+1),(i&64512)===56320&&(e=65536+(e-55296<<10)+(i-56320),s++)),e<128?t[r++]=e:e<2048?(t[r++]=192|e>>>6,t[r++]=128|e&63):e<65536?(t[r++]=224|e>>>12,t[r++]=128|e>>>6&63,t[r++]=128|e&63):(t[r++]=240|e>>>18,t[r++]=128|e>>>12&63,t[r++]=128|e>>>6&63,t[r++]=128|e&63);return t},Gl=(n,t)=>{if(t<65534&&n.subarray&&xo)return String.fromCharCode.apply(null,n.length===t?n:n.subarray(0,t));let e="";for(let i=0;i<t;i++)e+=String.fromCharCode(n[i]);return e},Wl=(n,t)=>{let e=t||n.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,t));let i,s,r=new Array(e*2);for(s=0,i=0;i<e;){let o=n[i++];if(o<128){r[s++]=o;continue}let a=nn[o];if(a>4){r[s++]=65533,i+=a-1;continue}for(o&=a===2?31:a===3?15:7;a>1&&i<e;)o=o<<6|n[i++]&63,a--;if(a>1){r[s++]=65533;continue}o<65536?r[s++]=o:(o-=65536,r[s++]=55296|o>>10&1023,r[s++]=56320|o&1023);}return Gl(r,s)},Jl=(n,t)=>{t=t||n.length,t>n.length&&(t=n.length);let e=t-1;for(;e>=0&&(n[e]&192)===128;)e--;return e<0||e===0?t:e+nn[n[e]]>t?e:t},sn={string2buf:Yl,buf2string:Wl,utf8border:Jl};function Ql(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;}var To=Ql;var Jn=16209,mc=16191,gc=function(t,e){let i,s,r,o,a,c,l,f,d,u,h,g,p,m,b,_,S,y,v,N,k,w,x,T,I=t.state;i=t.next_in,x=t.input,s=i+(t.avail_in-5),r=t.next_out,T=t.output,o=r-(e-t.avail_out),a=r+(t.avail_out-257),c=I.dmax,l=I.wsize,f=I.whave,d=I.wnext,u=I.window,h=I.hold,g=I.bits,p=I.lencode,m=I.distcode,b=(1<<I.lenbits)-1,_=(1<<I.distbits)-1;e:do{g<15&&(h+=x[i++]<<g,g+=8,h+=x[i++]<<g,g+=8),S=p[h&b];t:for(;;){if(y=S>>>24,h>>>=y,g-=y,y=S>>>16&255,y===0)T[r++]=S&65535;else if(y&16){v=S&65535,y&=15,y&&(g<y&&(h+=x[i++]<<g,g+=8),v+=h&(1<<y)-1,h>>>=y,g-=y),g<15&&(h+=x[i++]<<g,g+=8,h+=x[i++]<<g,g+=8),S=m[h&_];n:for(;;){if(y=S>>>24,h>>>=y,g-=y,y=S>>>16&255,y&16){if(N=S&65535,y&=15,g<y&&(h+=x[i++]<<g,g+=8,g<y&&(h+=x[i++]<<g,g+=8)),N+=h&(1<<y)-1,N>c){t.msg="invalid distance too far back",I.mode=Jn;break e}if(h>>>=y,g-=y,y=r-o,N>y){if(y=N-y,y>f&&I.sane){t.msg="invalid distance too far back",I.mode=Jn;break e}if(k=0,w=u,d===0){if(k+=l-y,y<v){v-=y;do T[r++]=u[k++];while(--y);k=r-N,w=T;}}else if(d<y){if(k+=l+d-y,y-=d,y<v){v-=y;do T[r++]=u[k++];while(--y);if(k=0,d<v){y=d,v-=y;do T[r++]=u[k++];while(--y);k=r-N,w=T;}}}else if(k+=d-y,y<v){v-=y;do T[r++]=u[k++];while(--y);k=r-N,w=T;}for(;v>2;)T[r++]=w[k++],T[r++]=w[k++],T[r++]=w[k++],v-=3;v&&(T[r++]=w[k++],v>1&&(T[r++]=w[k++]));}else {k=r-N;do T[r++]=T[k++],T[r++]=T[k++],T[r++]=T[k++],v-=3;while(v>2);v&&(T[r++]=T[k++],v>1&&(T[r++]=T[k++]));}}else if((y&64)===0){S=m[(S&65535)+(h&(1<<y)-1)];continue n}else {t.msg="invalid distance code",I.mode=Jn;break e}break}}else if((y&64)===0){S=p[(S&65535)+(h&(1<<y)-1)];continue t}else if(y&32){I.mode=mc;break e}else {t.msg="invalid literal/length code",I.mode=Jn;break e}break}}while(i<s&&r<a);v=g>>3,i-=v,g-=v<<3,h&=(1<<g)-1,t.next_in=i,t.next_out=r,t.avail_in=i<s?5+(s-i):5-(i-s),t.avail_out=r<a?257+(a-r):257-(r-a),I.hold=h,I.bits=g;},dt=15,Or=852,Lr=592,Cr=0,Ji=1,Rr=2,yc=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),bc=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),wc=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),_c=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Sc=(n,t,e,i,s,r,o,a)=>{let c=a.bits,l=0,f=0,d=0,u=0,h=0,g=0,p=0,m=0,b=0,_=0,S,y,v,N,k,w=null,x,T=new Uint16Array(dt+1),I=new Uint16Array(dt+1),M=null,St,un,hn;for(l=0;l<=dt;l++)T[l]=0;for(f=0;f<i;f++)T[t[e+f]]++;for(h=c,u=dt;u>=1&&T[u]===0;u--);if(h>u&&(h=u),u===0)return s[r++]=1<<24|64<<16|0,s[r++]=1<<24|64<<16|0,a.bits=1,0;for(d=1;d<u&&T[d]===0;d++);for(h<d&&(h=d),m=1,l=1;l<=dt;l++)if(m<<=1,m-=T[l],m<0)return -1;if(m>0&&(n===Cr||u!==1))return -1;for(I[1]=0,l=1;l<dt;l++)I[l+1]=I[l]+T[l];for(f=0;f<i;f++)t[e+f]!==0&&(o[I[t[e+f]]++]=f);if(n===Cr?(w=M=o,x=20):n===Ji?(w=yc,M=bc,x=257):(w=wc,M=_c,x=0),_=0,f=0,l=d,k=r,g=h,p=0,v=-1,b=1<<h,N=b-1,n===Ji&&b>Or||n===Rr&&b>Lr)return 1;for(;;){St=l-p,o[f]+1<x?(un=0,hn=o[f]):o[f]>=x?(un=M[o[f]-x],hn=w[o[f]-x]):(un=96,hn=0),S=1<<l-p,y=1<<g,d=y;do y-=S,s[k+(_>>p)+y]=St<<24|un<<16|hn|0;while(y!==0);for(S=1<<l-1;_&S;)S>>=1;if(S!==0?(_&=S-1,_+=S):_=0,f++,--T[l]===0){if(l===u)break;l=t[e+o[f]];}if(l>h&&(_&N)!==v){for(p===0&&(p=h),k+=d,g=l-p,m=1<<g;g+p<u&&(m-=T[g+p],!(m<=0));)g++,m<<=1;if(b+=1<<g,n===Ji&&b>Or||n===Rr&&b>Lr)return 1;v=_&N,s[v]=h<<24|g<<16|k-r|0;}}return _!==0&&(s[k+_]=l-p<<24|64<<16|0),a.bits=h,0},Wt=Sc,kc=0,Oo=1,Lo=2,{Z_FINISH:$r,Z_BLOCK:vc,Z_TREES:Qn,Z_OK:Qe,Z_STREAM_END:Ac,Z_NEED_DICT:Ec,Z_STREAM_ERROR:ne,Z_DATA_ERROR:Co,Z_MEM_ERROR:Ro,Z_BUF_ERROR:Nc,Z_DEFLATED:Br}=bt,ai=16180,Dr=16181,Mr=16182,Ur=16183,Pr=16184,zr=16185,Kr=16186,Fr=16187,jr=16188,qr=16189,si=16190,Te=16191,Qi=16192,Vr=16193,Xi=16194,Zr=16195,Hr=16196,Yr=16197,Gr=16198,Xn=16199,ei=16200,Wr=16201,Jr=16202,Qr=16203,Xr=16204,eo=16205,es=16206,to=16207,no=16208,U=16209,$o=16210,Bo=16211,xc=852,Tc=592,Ic=15,Oc=Ic,io=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function Lc(){this.strm=null,this.mode=0,this.last=false,this.wrap=0,this.havedict=false,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}var Xe=n=>{if(!n)return 1;let t=n.state;return !t||t.strm!==n||t.mode<ai||t.mode>Bo?1:0},Do=n=>{if(Xe(n))return ne;let t=n.state;return n.total_in=n.total_out=t.total=0,n.msg="",t.wrap&&(n.adler=t.wrap&1),t.mode=ai,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(xc),t.distcode=t.distdyn=new Int32Array(Tc),t.sane=1,t.back=-1,Qe},Mo=n=>{if(Xe(n))return ne;let t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,Do(n)},Uo=(n,t)=>{let e;if(Xe(n))return ne;let i=n.state;return t<0?(e=0,t=-t):(e=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?ne:(i.window!==null&&i.wbits!==t&&(i.window=null),i.wrap=e,i.wbits=t,Mo(n))},Po=(n,t)=>{if(!n)return ne;let e=new Lc;n.state=e,e.strm=n,e.window=null,e.mode=ai;let i=Uo(n,t);return i!==Qe&&(n.state=null),i},Cc=n=>Po(n,Oc),so=true,ts,ns,Rc=n=>{if(so){ts=new Int32Array(512),ns=new Int32Array(32);let t=0;for(;t<144;)n.lens[t++]=8;for(;t<256;)n.lens[t++]=9;for(;t<280;)n.lens[t++]=7;for(;t<288;)n.lens[t++]=8;for(Wt(Oo,n.lens,0,288,ts,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;Wt(Lo,n.lens,0,32,ns,0,n.work,{bits:5}),so=false;}n.lencode=ts,n.lenbits=9,n.distcode=ns,n.distbits=5;},zo=(n,t,e,i)=>{let s,r=n.state;return r.window===null&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(t.subarray(e-r.wsize,e),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>i&&(s=i),r.window.set(t.subarray(e-i,e-i+s),r.wnext),i-=s,i?(r.window.set(t.subarray(e-i,e),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0},$c=(n,t)=>{let e,i,s,r,o,a,c,l,f,d,u,h,g,p,m=0,b,_,S,y,v,N,k,w,x=new Uint8Array(4),T,I,M=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Xe(n)||!n.output||!n.input&&n.avail_in!==0)return ne;e=n.state,e.mode===Te&&(e.mode=Qi),o=n.next_out,s=n.output,c=n.avail_out,r=n.next_in,i=n.input,a=n.avail_in,l=e.hold,f=e.bits,d=a,u=c,w=Qe;e:for(;;)switch(e.mode){case ai:if(e.wrap===0){e.mode=Qi;break}for(;f<16;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if(e.wrap&2&&l===35615){e.wbits===0&&(e.wbits=15),e.check=0,x[0]=l&255,x[1]=l>>>8&255,e.check=F(e.check,x,2,0),l=0,f=0,e.mode=Dr;break}if(e.head&&(e.head.done=false),!(e.wrap&1)||(((l&255)<<8)+(l>>8))%31){n.msg="incorrect header check",e.mode=U;break}if((l&15)!==Br){n.msg="unknown compression method",e.mode=U;break}if(l>>>=4,f-=4,k=(l&15)+8,e.wbits===0&&(e.wbits=k),k>15||k>e.wbits){n.msg="invalid window size",e.mode=U;break}e.dmax=1<<e.wbits,e.flags=0,n.adler=e.check=1,e.mode=l&512?qr:Te,l=0,f=0;break;case Dr:for(;f<16;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if(e.flags=l,(e.flags&255)!==Br){n.msg="unknown compression method",e.mode=U;break}if(e.flags&57344){n.msg="unknown header flags set",e.mode=U;break}e.head&&(e.head.text=l>>8&1),e.flags&512&&e.wrap&4&&(x[0]=l&255,x[1]=l>>>8&255,e.check=F(e.check,x,2,0)),l=0,f=0,e.mode=Mr;case Mr:for(;f<32;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}e.head&&(e.head.time=l),e.flags&512&&e.wrap&4&&(x[0]=l&255,x[1]=l>>>8&255,x[2]=l>>>16&255,x[3]=l>>>24&255,e.check=F(e.check,x,4,0)),l=0,f=0,e.mode=Ur;case Ur:for(;f<16;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}e.head&&(e.head.xflags=l&255,e.head.os=l>>8),e.flags&512&&e.wrap&4&&(x[0]=l&255,x[1]=l>>>8&255,e.check=F(e.check,x,2,0)),l=0,f=0,e.mode=Pr;case Pr:if(e.flags&1024){for(;f<16;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}e.length=l,e.head&&(e.head.extra_len=l),e.flags&512&&e.wrap&4&&(x[0]=l&255,x[1]=l>>>8&255,e.check=F(e.check,x,2,0)),l=0,f=0;}else e.head&&(e.head.extra=null);e.mode=zr;case zr:if(e.flags&1024&&(h=e.length,h>a&&(h=a),h&&(e.head&&(k=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(i.subarray(r,r+h),k)),e.flags&512&&e.wrap&4&&(e.check=F(e.check,i,h,r)),a-=h,r+=h,e.length-=h),e.length))break e;e.length=0,e.mode=Kr;case Kr:if(e.flags&2048){if(a===0)break e;h=0;do k=i[r+h++],e.head&&k&&e.length<65536&&(e.head.name+=String.fromCharCode(k));while(k&&h<a);if(e.flags&512&&e.wrap&4&&(e.check=F(e.check,i,h,r)),a-=h,r+=h,k)break e}else e.head&&(e.head.name=null);e.length=0,e.mode=Fr;case Fr:if(e.flags&4096){if(a===0)break e;h=0;do k=i[r+h++],e.head&&k&&e.length<65536&&(e.head.comment+=String.fromCharCode(k));while(k&&h<a);if(e.flags&512&&e.wrap&4&&(e.check=F(e.check,i,h,r)),a-=h,r+=h,k)break e}else e.head&&(e.head.comment=null);e.mode=jr;case jr:if(e.flags&512){for(;f<16;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if(e.wrap&4&&l!==(e.check&65535)){n.msg="header crc mismatch",e.mode=U;break}l=0,f=0;}e.head&&(e.head.hcrc=e.flags>>9&1,e.head.done=true),n.adler=e.check=0,e.mode=Te;break;case qr:for(;f<32;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}n.adler=e.check=io(l),l=0,f=0,e.mode=si;case si:if(e.havedict===0)return n.next_out=o,n.avail_out=c,n.next_in=r,n.avail_in=a,e.hold=l,e.bits=f,Ec;n.adler=e.check=1,e.mode=Te;case Te:if(t===vc||t===Qn)break e;case Qi:if(e.last){l>>>=f&7,f-=f&7,e.mode=es;break}for(;f<3;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}switch(e.last=l&1,l>>>=1,f-=1,l&3){case 0:e.mode=Vr;break;case 1:if(Rc(e),e.mode=Xn,t===Qn){l>>>=2,f-=2;break e}break;case 2:e.mode=Hr;break;case 3:n.msg="invalid block type",e.mode=U;}l>>>=2,f-=2;break;case Vr:for(l>>>=f&7,f-=f&7;f<32;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if((l&65535)!==(l>>>16^65535)){n.msg="invalid stored block lengths",e.mode=U;break}if(e.length=l&65535,l=0,f=0,e.mode=Xi,t===Qn)break e;case Xi:e.mode=Zr;case Zr:if(h=e.length,h){if(h>a&&(h=a),h>c&&(h=c),h===0)break e;s.set(i.subarray(r,r+h),o),a-=h,r+=h,c-=h,o+=h,e.length-=h;break}e.mode=Te;break;case Hr:for(;f<14;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if(e.nlen=(l&31)+257,l>>>=5,f-=5,e.ndist=(l&31)+1,l>>>=5,f-=5,e.ncode=(l&15)+4,l>>>=4,f-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=U;break}e.have=0,e.mode=Yr;case Yr:for(;e.have<e.ncode;){for(;f<3;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}e.lens[M[e.have++]]=l&7,l>>>=3,f-=3;}for(;e.have<19;)e.lens[M[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,T={bits:e.lenbits},w=Wt(kc,e.lens,0,19,e.lencode,0,e.work,T),e.lenbits=T.bits,w){n.msg="invalid code lengths set",e.mode=U;break}e.have=0,e.mode=Gr;case Gr:for(;e.have<e.nlen+e.ndist;){for(;m=e.lencode[l&(1<<e.lenbits)-1],b=m>>>24,_=m>>>16&255,S=m&65535,!(b<=f);){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if(S<16)l>>>=b,f-=b,e.lens[e.have++]=S;else {if(S===16){for(I=b+2;f<I;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if(l>>>=b,f-=b,e.have===0){n.msg="invalid bit length repeat",e.mode=U;break}k=e.lens[e.have-1],h=3+(l&3),l>>>=2,f-=2;}else if(S===17){for(I=b+3;f<I;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}l>>>=b,f-=b,k=0,h=3+(l&7),l>>>=3,f-=3;}else {for(I=b+7;f<I;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}l>>>=b,f-=b,k=0,h=11+(l&127),l>>>=7,f-=7;}if(e.have+h>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=U;break}for(;h--;)e.lens[e.have++]=k;}}if(e.mode===U)break;if(e.lens[256]===0){n.msg="invalid code -- missing end-of-block",e.mode=U;break}if(e.lenbits=9,T={bits:e.lenbits},w=Wt(Oo,e.lens,0,e.nlen,e.lencode,0,e.work,T),e.lenbits=T.bits,w){n.msg="invalid literal/lengths set",e.mode=U;break}if(e.distbits=6,e.distcode=e.distdyn,T={bits:e.distbits},w=Wt(Lo,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,T),e.distbits=T.bits,w){n.msg="invalid distances set",e.mode=U;break}if(e.mode=Xn,t===Qn)break e;case Xn:e.mode=ei;case ei:if(a>=6&&c>=258){n.next_out=o,n.avail_out=c,n.next_in=r,n.avail_in=a,e.hold=l,e.bits=f,gc(n,u),o=n.next_out,s=n.output,c=n.avail_out,r=n.next_in,i=n.input,a=n.avail_in,l=e.hold,f=e.bits,e.mode===Te&&(e.back=-1);break}for(e.back=0;m=e.lencode[l&(1<<e.lenbits)-1],b=m>>>24,_=m>>>16&255,S=m&65535,!(b<=f);){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if(_&&(_&240)===0){for(y=b,v=_,N=S;m=e.lencode[N+((l&(1<<y+v)-1)>>y)],b=m>>>24,_=m>>>16&255,S=m&65535,!(y+b<=f);){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}l>>>=y,f-=y,e.back+=y;}if(l>>>=b,f-=b,e.back+=b,e.length=S,_===0){e.mode=eo;break}if(_&32){e.back=-1,e.mode=Te;break}if(_&64){n.msg="invalid literal/length code",e.mode=U;break}e.extra=_&15,e.mode=Wr;case Wr:if(e.extra){for(I=e.extra;f<I;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}e.length+=l&(1<<e.extra)-1,l>>>=e.extra,f-=e.extra,e.back+=e.extra;}e.was=e.length,e.mode=Jr;case Jr:for(;m=e.distcode[l&(1<<e.distbits)-1],b=m>>>24,_=m>>>16&255,S=m&65535,!(b<=f);){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if((_&240)===0){for(y=b,v=_,N=S;m=e.distcode[N+((l&(1<<y+v)-1)>>y)],b=m>>>24,_=m>>>16&255,S=m&65535,!(y+b<=f);){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}l>>>=y,f-=y,e.back+=y;}if(l>>>=b,f-=b,e.back+=b,_&64){n.msg="invalid distance code",e.mode=U;break}e.offset=S,e.extra=_&15,e.mode=Qr;case Qr:if(e.extra){for(I=e.extra;f<I;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}e.offset+=l&(1<<e.extra)-1,l>>>=e.extra,f-=e.extra,e.back+=e.extra;}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=U;break}e.mode=Xr;case Xr:if(c===0)break e;if(h=u-c,e.offset>h){if(h=e.offset-h,h>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=U;break}h>e.wnext?(h-=e.wnext,g=e.wsize-h):g=e.wnext-h,h>e.length&&(h=e.length),p=e.window;}else p=s,g=o-e.offset,h=e.length;h>c&&(h=c),c-=h,e.length-=h;do s[o++]=p[g++];while(--h);e.length===0&&(e.mode=ei);break;case eo:if(c===0)break e;s[o++]=e.length,c--,e.mode=ei;break;case es:if(e.wrap){for(;f<32;){if(a===0)break e;a--,l|=i[r++]<<f,f+=8;}if(u-=c,n.total_out+=u,e.total+=u,e.wrap&4&&u&&(n.adler=e.check=e.flags?F(e.check,s,u,o-u):tn(e.check,s,u,o-u)),u=c,e.wrap&4&&(e.flags?l:io(l))!==e.check){n.msg="incorrect data check",e.mode=U;break}l=0,f=0;}e.mode=to;case to:if(e.wrap&&e.flags){for(;f<32;){if(a===0)break e;a--,l+=i[r++]<<f,f+=8;}if(e.wrap&4&&l!==(e.total&4294967295)){n.msg="incorrect length check",e.mode=U;break}l=0,f=0;}e.mode=no;case no:w=Ac;break e;case U:w=Co;break e;case $o:return Ro;case Bo:default:return ne}return n.next_out=o,n.avail_out=c,n.next_in=r,n.avail_in=a,e.hold=l,e.bits=f,(e.wsize||u!==n.avail_out&&e.mode<U&&(e.mode<es||t!==$r))&&zo(n,n.output,n.next_out,u-n.avail_out),d-=n.avail_in,u-=n.avail_out,n.total_in+=d,n.total_out+=u,e.total+=u,e.wrap&4&&u&&(n.adler=e.check=e.flags?F(e.check,s,u,n.next_out-u):tn(e.check,s,u,n.next_out-u)),n.data_type=e.bits+(e.last?64:0)+(e.mode===Te?128:0)+(e.mode===Xn||e.mode===Xi?256:0),(d===0&&u===0||t===$r)&&w===Qe&&(w=Nc),w},Bc=n=>{if(Xe(n))return ne;let t=n.state;return t.window&&(t.window=null),n.state=null,Qe},Dc=(n,t)=>{if(Xe(n))return ne;let e=n.state;return (e.wrap&2)===0?ne:(e.head=t,t.done=false,Qe)},Mc=(n,t)=>{let e=t.length,i,s,r;return Xe(n)||(i=n.state,i.wrap!==0&&i.mode!==si)?ne:i.mode===si&&(s=1,s=tn(s,t,e,0),s!==i.check)?Co:(r=zo(n,t,e,e),r?(i.mode=$o,Ro):(i.havedict=1,Qe))},Uc=Mo,Pc=Uo,zc=Do,Kc=Cc,Fc=Po,jc=$c,qc=Bc,Vc=Dc,Zc=Mc,Hc="pako inflate (from Nodeca project)",Oe={inflateReset:Uc,inflateReset2:Pc,inflateResetKeep:zc,inflateInit:Kc,inflateInit2:Fc,inflate:jc,inflateEnd:qc,inflateGetHeader:Vc,inflateSetDictionary:Zc,inflateInfo:Hc};function Yc(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=false;}var Gc=Yc,Ko=Object.prototype.toString,{Z_NO_FLUSH:Wc,Z_FINISH:Jc,Z_OK:rn,Z_STREAM_END:is,Z_NEED_DICT:ss,Z_STREAM_ERROR:Qc,Z_DATA_ERROR:ro,Z_MEM_ERROR:Xc}=bt;function cn(n){this.options=oi.assign({chunkSize:1024*64,windowBits:15,to:""},n||{});let t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(n&&n.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=false,this.chunks=[],this.strm=new To,this.strm.avail_out=0;let e=Oe.inflateInit2(this.strm,t.windowBits);if(e!==rn)throw new Error(We[e]);if(this.header=new Gc,Oe.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=sn.string2buf(t.dictionary):Ko.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Oe.inflateSetDictionary(this.strm,t.dictionary),e!==rn)))throw new Error(We[e])}cn.prototype.push=function(n,t){let e=this.strm,i=this.options.chunkSize,s=this.options.dictionary,r,o,a;if(this.ended)return false;for(t===~~t?o=t:o=t===true?Jc:Wc,Ko.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(i),e.next_out=0,e.avail_out=i),r=Oe.inflate(e,o),r===ss&&s&&(r=Oe.inflateSetDictionary(e,s),r===rn?r=Oe.inflate(e,o):r===ro&&(r=ss));e.avail_in>0&&r===is&&e.state.wrap>0&&n[e.next_in]!==0;)Oe.inflateReset(e),r=Oe.inflate(e,o);switch(r){case Qc:case ro:case ss:case Xc:return this.onEnd(r),this.ended=true,false}if(a=e.avail_out,e.next_out&&(e.avail_out===0||r===is))if(this.options.to==="string"){let c=sn.utf8border(e.output,e.next_out),l=e.next_out-c,f=sn.buf2string(e.output,c);e.next_out=l,e.avail_out=i-l,l&&e.output.set(e.output.subarray(c,c+l),0),this.onData(f);}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(r===rn&&a===0)){if(r===is)return r=Oe.inflateEnd(this.strm),this.onEnd(r),this.ended=true,true;if(e.avail_in===0)break}}return true};cn.prototype.onData=function(n){this.chunks.push(n);};cn.prototype.onEnd=function(n){n===rn&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=oi.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg;};function _s(n,t){let e=new cn(t);if(e.push(n),e.err)throw e.msg||We[e.err];return e.result}var nf=_s,af={inflate:nf},{inflate:lf}=af;var Fo=lf;function jo(n,t){let e=typeof t=="string"?{algorithm:t}:t,i=e.algorithm;if(!i)throw new A("Process specification missing algorithm");switch(i){case "zlib":return cf(n);case "xor":return ff(n,e.key);case "rol":return uf(n,e.amount,e.group);case "ror":return hf(n,e.amount,e.group);case "bswap2":return li(n,2);case "bswap4":return li(n,4);case "bswap8":return li(n,8);case "bswap16":return li(n,16);default:throw new A(`Unknown process algorithm: ${i}. Supported: zlib, xor, rol, ror, bswap2, bswap4, bswap8, bswap16`)}}function cf(n){try{return Fo(n)}catch(t){throw new A(`Zlib decompression failed: ${t instanceof Error?t.message:String(t)}`)}}function ff(n,t){if(t===void 0)throw new A("XOR process requires a key parameter");let e=new Uint8Array(n.length),i=Array.isArray(t)?t:[t];if(i.length===0)throw new A("XOR key cannot be empty");for(let s=0;s<n.length;s++)e[s]=n[s]^i[s%i.length];return e}function uf(n,t,e){let i=t??1,s=e??1;if(i<0||i>7)throw new A("ROL amount must be between 0 and 7");if(s!==1)throw new A("ROL with group size > 1 not yet supported");let r=new Uint8Array(n.length);for(let o=0;o<n.length;o++){let a=n[o];r[o]=(a<<i|a>>8-i)&255;}return r}function hf(n,t,e){let i=t??1,s=e??1;if(i<0||i>7)throw new A("ROR amount must be between 0 and 7");if(s!==1)throw new A("ROR with group size > 1 not yet supported");let r=new Uint8Array(n.length);for(let o=0;o<n.length;o++){let a=n[o];r[o]=(a>>i|a<<8-i)&255;}return r}function li(n,t){if(![2,4,8,16].includes(t))throw new A(`Invalid byteswap group size: ${t}. Must be 2, 4, 8, or 16`);if(n.length%t!==0)throw new A(`Data length ${n.length} is not aligned to group size ${t}`);let e=new Uint8Array(n.length);for(let i=0;i<n.length;i+=t)for(let s=0;s<t;s++)e[i+s]=n[i+t-1-s];return e}var fn=class n{constructor(t,e){this.schema=t;this.parentMeta=e;if(!t.meta&&!e)throw new A("Schema must have meta section");if(t.meta&&!t.meta.id&&!e)throw new A("Root schema must have meta.id")}static getKaitaiIO(t){if(t&&typeof t=="object"){let i=t._io;if(i instanceof he)return i}return null}parse(t,e,i,s){let r={},o=s||r,a=new qt(t,o,e,this.schema.enums);a.current=r;let c=t.pos;if(r._io=t,s&&(r._root=s),i&&this.schema.params)for(let f=0;f<this.schema.params.length&&f<i.length;f++){let d=this.schema.params[f],u=i[f],h=typeof u=="string"?this.evaluateValue(u,a):u;a.set(d.id,h);}if(this.schema.instances&&this.setupInstances(r,t,a),this.schema.seq)for(let f of this.schema.seq){let d=this.parseAttribute(f,a);f.id&&(r[f.id]=d);}let l=t.pos;return r._sizeof=l-c,r}setupInstances(t,e,i){if(this.schema.instances)for(let[s,r]of Object.entries(this.schema.instances)){let o,a=false;Object.defineProperty(t,s,{get:()=>(a||(o=this.parseInstance(r,e,i),a=true),o),enumerable:true,configurable:true});}}parseInstance(t,e,i){if("value"in t)return this.evaluateValue(t.value,i);let s=e.pos;try{if(t.pos!==void 0){let o=this.evaluateValue(t.pos,i);if(typeof o=="number")e.seek(o);else if(typeof o=="bigint")e.seek(Number(o));else throw new A(`pos must evaluate to a number, got ${typeof o}`)}return this.parseAttribute(t,i)}finally{t.pos!==void 0&&e.seek(s);}}parseAttribute(t,e){let i=e.io;if(t.io!==void 0){let r=this.evaluateValue(t.io,e);if(r instanceof he)i=r;else {let o=n.getKaitaiIO(r);if(o)i=o;else throw new A("io must evaluate to a KaitaiStream or an object with _io")}}if(t.if&&!this.evaluateValue(t.if,e))return;if(t.pos!==void 0){let r=this.evaluateValue(t.pos,e);if(typeof r=="number")i.seek(r);else if(typeof r=="bigint")i.seek(Number(r));else throw new A(`pos must evaluate to a number, got ${typeof r}`)}return t.repeat?this.parseRepeated(t,e):t.contents?this.parseContents(t,e):this.parseValue(t,e)}parseRepeated(t,e){let i=e.io,s=[];switch(t.repeat){case "expr":{let r=this.evaluateValue(t["repeat-expr"],e),o=typeof r=="number"?r:typeof r=="bigint"?Number(r):0;if(o<0)throw new A(`repeat-expr must be non-negative, got ${o}`);for(let a=0;a<o;a++){e.set("_index",a);let c=this.parseAttribute({...t,repeat:void 0,"repeat-expr":void 0},e);s.push(c);}break}case "eos":{for(;!i.isEof();)e.set("_index",s.length),s.push(this.parseValue(t,e));break}case "until":{if(!t["repeat-until"])throw new A("repeat-until expression is required");let r=0;for(;;){e.set("_index",r);let o=this.parseAttribute({...t,repeat:void 0,"repeat-until":void 0},e);if(s.push(o),e.set("_",o),this.evaluateValue(t["repeat-until"],e)||i.isEof())break;r++;}break}default:throw new A(`Unknown repeat type: ${t.repeat}`)}return s}parseContents(t,e){let i=e.io,s=t.contents;if(Array.isArray(s)){let r=i.readBytes(s.length);for(let o=0;o<s.length;o++)if(r[o]!==s[o])throw new je(`Contents mismatch at byte ${o}: expected ${s[o]}, got ${r[o]}`,i.pos-s.length+o);return r}else {let r=t.encoding||this.schema.meta?.encoding||this.parentMeta?.encoding||"UTF-8",o=i.readStr(s.length,r);if(o!==s)throw new je(`Contents mismatch: expected "${s}", got "${o}"`,i.pos-s.length);return o}}parseValue(t,e){let i=e.io,s=t.type;if(t.size!==void 0){let r=this.evaluateValue(t.size,e),o=typeof r=="number"?r:typeof r=="bigint"?Number(r):0;if(o<0)throw new A(`size must be non-negative, got ${o}`);if(s==="str"||!s){let a=t.encoding||this.schema.meta?.encoding||this.parentMeta?.encoding||"UTF-8",c;return s==="str"?(c=i.readBytes(o),t.process&&(c=this.applyProcessing(c,t.process)),new TextDecoder(a).decode(c)):(c=i.readBytes(o),t.process&&(c=this.applyProcessing(c,t.process)),c)}else {let a=i.readBytes(o);t.process&&(a=this.applyProcessing(a,t.process));let c=new he(a);return this.parseType(s,c,e,t["type-args"])}}if(t["size-eos"])if(s==="str"){let r=t.encoding||this.schema.meta?.encoding||this.parentMeta?.encoding||"UTF-8",o=i.readBytesFull();return new TextDecoder(r).decode(o)}else {let r=i.readBytesFull();if(t.process&&(r=this.applyProcessing(r,t.process)),s){let o=new he(r);return this.parseType(s,o,e,t["type-args"])}return r}if(!s)throw new A("Attribute must have either type, size, or contents");return this.parseType(s,i,e,t["type-args"])}parseType(t,e,i,s){if(typeof t=="object")return this.parseSwitchType(t,e,i);let{typeName:r,args:o}=this.parseParameterizedType(t,i),a=o.length>0?o:s;if(fi(r))return this.parseBuiltinType(r,e,i);if(this.schema.types&&r in this.schema.types){let c=this.schema.types[r],l=this.schema.meta||this.parentMeta;return this.schema.enums&&!c.enums&&(c.enums=this.schema.enums),this.schema.types&&!c.types&&(c.types=this.schema.types),new n(c,l).parse(e,i.current,a,i.root)}throw new A(`Unknown type: ${r}`)}parseParameterizedType(t,e){let i=t.match(/^([a-z_][a-z0-9_]*)\((.*)\)$/i);if(!i)return {typeName:t,args:[]};let s=i[1],r=i[2].trim();if(!r)return {typeName:s,args:[]};let o=[],a="",c=false,l="",f=0;for(let d=0;d<r.length;d++){let u=r[d];c?(a+=u,u===l&&r[d-1]!=="\\"&&(c=false)):u==='"'||u==="'"?(c=true,l=u,a+=u):u==="("?(f++,a+=u):u===")"?(f--,a+=u):u===","&&f===0?(o.push(this.parseArgument(a.trim(),e)),a=""):a+=u;}return a.trim()&&o.push(this.parseArgument(a.trim(),e)),{typeName:s,args:o}}parseArgument(t,e){if(t==="true")return true;if(t==="false")return false;if(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'"))return t.slice(1,-1);if(/^-?\d+$/.test(t))return parseInt(t,10);if(/^-?\d+\.\d+$/.test(t))return parseFloat(t);if(/^0x[0-9a-f]+$/i.test(t))return parseInt(t,16);try{let i=this.evaluateValue(t,e);return typeof i=="string"||typeof i=="number"||typeof i=="boolean"?i:Number(i)}catch{return t}}parseSwitchType(t,e,i){let s=t["switch-on"],r=t.cases,o=t.default;if(!s||typeof s!="string")throw new A("switch-on expression is required for switch types");if(!r)throw new A("cases are required for switch types");let a=this.evaluateValue(s,i),c=String(a),l=r[c];if(l===void 0&&o&&(l=o),l===void 0)throw new A(`No matching case for switch value "${c}" and no default type specified`);return this.parseType(l,e,i)}parseBuiltinType(t,e,i){let s=vt(t),r=ui(t),a=(this.schema.meta||this.parentMeta)?.endian,c;if(r?c=r:typeof a=="string"?c=a:a&&typeof a=="object"?c=this.evaluateEndianExpression(a,i):c="le",hi(t))return this.readInteger(s,c,e);if(di(t))return this.readFloat(s,c,e);if(/^b\d+$/.test(t)){let l=parseInt(t.slice(1),10),f=e.readBitsIntBe(l),d=BigInt(Number.MAX_SAFE_INTEGER);return f<=d?Number(f):f}if(pi(t)){let l=this.schema.meta?.encoding||"UTF-8";if(t==="strz")return e.readStrz(l,0,false,true,true);if(t==="str")throw new A("str type requires size, size-eos, or terminator attribute")}throw new A(`Unknown built-in type: ${t}`)}readInteger(t,e,i){switch(t){case "u1":return i.readU1();case "u2":return e==="le"?i.readU2le():i.readU2be();case "u4":return e==="le"?i.readU4le():i.readU4be();case "u8":return e==="le"?i.readU8le():i.readU8be();case "s1":return i.readS1();case "s2":return e==="le"?i.readS2le():i.readS2be();case "s4":return e==="le"?i.readS4le():i.readS4be();case "s8":return e==="le"?i.readS8le():i.readS8be();default:throw new A(`Unknown integer type: ${t}`)}}readFloat(t,e,i){switch(t){case "f4":return e==="le"?i.readF4le():i.readF4be();case "f8":return e==="le"?i.readF8le():i.readF8be();default:throw new A(`Unknown float type: ${t}`)}}applyProcessing(t,e){return jo(t,e)}evaluateEndianExpression(t,e){let i=t["switch-on"],s=t.cases;if(!i||typeof i!="string")throw new A('Endian expression missing "switch-on" field');if(!s||typeof s!="object")throw new A('Endian expression missing "cases" field');let r=this.evaluateValue(i,e),o=String(r);if(o in s){let a=s[o];if(a!=="le"&&a!=="be")throw new A(`Invalid endianness value: ${a}`);return a}return "le"}evaluateValue(t,e){if(t!==void 0){if(typeof t=="number"||typeof t=="boolean")return t;if(typeof t=="string")try{return Sr(t,e)}catch(i){throw new A(`Failed to evaluate expression "${t}": ${i instanceof Error?i.message:String(i)}`)}return t}}};function r0(n,t,e={}){let{validate:i=true,strict:s=false}=e,o=new jt().parse(n,{validate:i,strict:s}),a=new he(t);return new fn(o).parse(a)}/**
|
135
|
+
* @fileoverview Custom error classes for Kaitai Struct parsing and validation
|
136
|
+
* @module utils/errors
|
137
|
+
* @author Fabiano Pinto
|
138
|
+
* @license MIT
|
139
|
+
*/
|
140
|
+
/**
|
141
|
+
* @fileoverview String encoding and decoding utilities for binary data
|
142
|
+
* @module utils/encoding
|
143
|
+
* @author Fabiano Pinto
|
144
|
+
* @license MIT
|
145
|
+
*/
|
146
|
+
/**
|
147
|
+
* @fileoverview Binary stream reader for Kaitai Struct
|
148
|
+
* @module stream/KaitaiStream
|
149
|
+
* @author Fabiano Pinto
|
150
|
+
* @license MIT
|
151
|
+
*/
|
152
|
+
/**
|
153
|
+
* @fileoverview Binary stream reading functionality
|
154
|
+
* @module stream
|
155
|
+
* @author Fabiano Pinto
|
156
|
+
* @license MIT
|
157
|
+
*/
|
158
|
+
/**
|
159
|
+
* @fileoverview Type definitions for Kaitai Struct YAML schema (.ksy files)
|
160
|
+
* @module parser/schema
|
161
|
+
* @author Fabiano Pinto
|
162
|
+
* @license MIT
|
163
|
+
*/
|
164
|
+
/**
|
165
|
+
* @fileoverview Parser for Kaitai Struct YAML (.ksy) files
|
166
|
+
* @module parser/KsyParser
|
167
|
+
* @author Fabiano Pinto
|
168
|
+
* @license MIT
|
169
|
+
*/
|
170
|
+
/**
|
171
|
+
* @fileoverview Parser module for Kaitai Struct YAML files
|
172
|
+
* @module parser
|
173
|
+
* @author Fabiano Pinto
|
174
|
+
* @license MIT
|
175
|
+
*/
|
176
|
+
/**
|
177
|
+
* @fileoverview Execution context for Kaitai Struct parsing
|
178
|
+
* @module interpreter/Context
|
179
|
+
* @author Fabiano Pinto
|
180
|
+
* @license MIT
|
181
|
+
*/
|
182
|
+
/**
|
183
|
+
* @fileoverview Token types for Kaitai Struct expression language
|
184
|
+
* @module expression/Token
|
185
|
+
* @author Fabiano Pinto
|
186
|
+
* @license MIT
|
187
|
+
*/
|
188
|
+
/**
|
189
|
+
* @fileoverview Lexer for Kaitai Struct expression language
|
190
|
+
* @module expression/Lexer
|
191
|
+
* @author Fabiano Pinto
|
192
|
+
* @license MIT
|
193
|
+
*/
|
194
|
+
/**
|
195
|
+
* @fileoverview Abstract Syntax Tree nodes for expression language
|
196
|
+
* @module expression/AST
|
197
|
+
* @author Fabiano Pinto
|
198
|
+
* @license MIT
|
199
|
+
*/
|
200
|
+
/**
|
201
|
+
* @fileoverview Parser for Kaitai Struct expression language
|
202
|
+
* @module expression/Parser
|
203
|
+
* @author Fabiano Pinto
|
204
|
+
* @license MIT
|
205
|
+
*/
|
206
|
+
/**
|
207
|
+
* @fileoverview Evaluator for Kaitai Struct expression AST
|
208
|
+
* @module expression/Evaluator
|
209
|
+
* @author Fabiano Pinto
|
210
|
+
* @license MIT
|
211
|
+
*/
|
212
|
+
/**
|
213
|
+
* @fileoverview Expression evaluation module
|
214
|
+
* @module expression
|
215
|
+
* @author Fabiano Pinto
|
216
|
+
* @license MIT
|
217
|
+
*/
|
218
|
+
/**
|
219
|
+
* @fileoverview Data processing utilities for Kaitai Struct
|
220
|
+
* @module utils/process
|
221
|
+
* @author Fabiano Pinto
|
222
|
+
* @license MIT
|
223
|
+
*/
|
224
|
+
/**
|
225
|
+
* @fileoverview Type interpreter for executing Kaitai Struct schemas
|
226
|
+
* @module interpreter/TypeInterpreter
|
227
|
+
* @author Fabiano Pinto
|
228
|
+
* @license MIT
|
229
|
+
*/
|
230
|
+
/**
|
231
|
+
* @fileoverview Interpreter module for executing Kaitai Struct schemas
|
232
|
+
* @module interpreter
|
233
|
+
* @author Fabiano Pinto
|
234
|
+
* @license MIT
|
235
|
+
*/
|
236
|
+
/**
|
237
|
+
* @fileoverview Main entry point for kaitai-struct-ts library
|
238
|
+
* @module kaitai-struct-ts
|
239
|
+
* @author Fabiano Pinto
|
240
|
+
* @license MIT
|
241
|
+
* @version 0.2.0
|
242
|
+
*
|
243
|
+
* @description
|
244
|
+
* A runtime interpreter for Kaitai Struct binary format definitions in TypeScript.
|
245
|
+
* Parse any binary data format by providing a .ksy (Kaitai Struct YAML) definition file.
|
246
|
+
*
|
247
|
+
* @example
|
248
|
+
* ```typescript
|
249
|
+
* import { parse } from 'kaitai-struct-ts'
|
250
|
+
*
|
251
|
+
* const ksyDefinition = `
|
252
|
+
* meta:
|
253
|
+
* id: my_format
|
254
|
+
* endian: le
|
255
|
+
* seq:
|
256
|
+
* - id: magic
|
257
|
+
* contents: [0x4D, 0x5A]
|
258
|
+
* - id: version
|
259
|
+
* type: u2
|
260
|
+
* `
|
261
|
+
*
|
262
|
+
* const buffer = new Uint8Array([0x4D, 0x5A, 0x01, 0x00])
|
263
|
+
* const result = parse(ksyDefinition, buffer)
|
264
|
+
* console.log(result.version) // 1
|
265
|
+
* ```
|
266
|
+
*/
|
267
|
+
/*! Bundled license information:
|
268
|
+
|
269
|
+
pako/dist/pako.esm.mjs:
|
270
|
+
(*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
|
271
|
+
*/export{ks as BUILTIN_TYPES,qt as Context,kt as EOFError,et as KaitaiError,he as KaitaiStream,jt as KsyParser,Ss as NotImplementedError,A as ParseError,fn as TypeInterpreter,je as ValidationError,vt as getBaseType,ui as getTypeEndianness,fi as isBuiltinType,di as isFloatType,hi as isIntegerType,pi as isStringType,r0 as parse};//# sourceMappingURL=index.mjs.map
|
272
|
+
//# sourceMappingURL=index.mjs.map
|