acbridge 1.0.1 → 1.1.1

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.
@@ -6,7 +6,7 @@ var xw=Object.create;var el=Object.defineProperty;var $w=Object.getOwnPropertyDe
6
6
  || ${a} === "boolean" || ${r} === null`).assign(s,(0,M._)`[${r}]`)}}}function FE({gen:e,parentData:t,parentDataProperty:n},o){e.if((0,M._)`${t} !== undefined`,()=>e.assign((0,M._)`${t}[${n}]`,o))}function Zm(e,t,n,o=Nn.Correct){let r=o===Nn.Correct?M.operators.EQ:M.operators.NEQ,i;switch(e){case"null":return(0,M._)`${t} ${r} null`;case"array":i=(0,M._)`Array.isArray(${t})`;break;case"object":i=(0,M._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":i=a((0,M._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":i=a();break;default:return(0,M._)`typeof ${t} ${r} ${e}`}return o===Nn.Correct?i:(0,M.not)(i);function a(s=M.nil){return(0,M.and)((0,M._)`typeof ${t} == "number"`,s,n?(0,M._)`isFinite(${t})`:M.nil)}}Re.checkDataType=Zm;function qm(e,t,n,o){if(e.length===1)return Zm(e[0],t,n,o);let r,i=(0,T_.toHash)(e);if(i.array&&i.object){let a=(0,M._)`typeof ${t} != "object"`;r=i.null?a:(0,M._)`!${t} || ${a}`,delete i.null,delete i.array,delete i.object}else r=M.nil;i.number&&delete i.integer;for(let a in i)r=(0,M.and)(r,Zm(a,t,n,o));return r}Re.checkDataTypes=qm;var ZE={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,M._)`{type: ${e}}`:(0,M._)`{type: ${t}}`};function Bm(e){let t=qE(e);(0,DE.reportError)(t,ZE)}Re.reportTypeError=Bm;function qE(e){let{gen:t,data:n,schema:o}=e,r=(0,T_.schemaRefOrVal)(e,o,"type");return{gen:t,keyword:"type",data:n,schema:o.type,schemaCode:r,schemaValue:r,parentSchema:o,params:{},it:e}}});var N_=z(Ys=>{"use strict";Object.defineProperty(Ys,"__esModule",{value:!0});Ys.assignDefaults=void 0;var Dn=L(),BE=H();function VE(e,t){let{properties:n,items:o}=e.schema;if(t==="object"&&n)for(let r in n)C_(e,r,n[r].default);else t==="array"&&Array.isArray(o)&&o.forEach((r,i)=>C_(e,i,r.default))}Ys.assignDefaults=VE;function C_(e,t,n){let{gen:o,compositeRule:r,data:i,opts:a}=e;if(n===void 0)return;let s=(0,Dn._)`${i}${(0,Dn.getProperty)(t)}`;if(r){(0,BE.checkStrictMode)(e,`default is ignored for: ${s}`);return}let l=(0,Dn._)`${s} === undefined`;a.useDefaults==="empty"&&(l=(0,Dn._)`${l} || ${s} === null || ${s} === ""`),o.if(l,(0,Dn._)`${s} = ${(0,Dn.stringify)(n)}`)}});var st=z(ae=>{"use strict";Object.defineProperty(ae,"__esModule",{value:!0});ae.validateUnion=ae.validateArray=ae.usePattern=ae.callValidateCode=ae.schemaProperties=ae.allSchemaProperties=ae.noPropertyInData=ae.propertyInData=ae.isOwnProperty=ae.hasPropFunc=ae.reportMissingProp=ae.checkMissingProp=ae.checkReportMissingProp=void 0;var de=L(),Vm=H(),pr=Mt(),JE=H();function HE(e,t){let{gen:n,data:o,it:r}=e;n.if(Hm(n,o,t,r.opts.ownProperties),()=>{e.setParams({missingProperty:(0,de._)`${t}`},!0),e.error()})}ae.checkReportMissingProp=HE;function GE({gen:e,data:t,it:{opts:n}},o,r){return(0,de.or)(...o.map(i=>(0,de.and)(Hm(e,t,i,n.ownProperties),(0,de._)`${r} = ${i}`)))}ae.checkMissingProp=GE;function WE(e,t){e.setParams({missingProperty:t},!0),e.error()}ae.reportMissingProp=WE;function D_(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,de._)`Object.prototype.hasOwnProperty`})}ae.hasPropFunc=D_;function Jm(e,t,n){return(0,de._)`${D_(e)}.call(${t}, ${n})`}ae.isOwnProperty=Jm;function KE(e,t,n,o){let r=(0,de._)`${t}${(0,de.getProperty)(n)} !== undefined`;return o?(0,de._)`${r} && ${Jm(e,t,n)}`:r}ae.propertyInData=KE;function Hm(e,t,n,o){let r=(0,de._)`${t}${(0,de.getProperty)(n)} === undefined`;return o?(0,de.or)(r,(0,de.not)(Jm(e,t,n))):r}ae.noPropertyInData=Hm;function R_(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}ae.allSchemaProperties=R_;function QE(e,t){return R_(t).filter(n=>!(0,Vm.alwaysValidSchema)(e,t[n]))}ae.schemaProperties=QE;function YE({schemaCode:e,data:t,it:{gen:n,topSchemaRef:o,schemaPath:r,errorPath:i},it:a},s,l,u){let d=u?(0,de._)`${e}, ${t}, ${o}${r}`:t,p=[[pr.default.instancePath,(0,de.strConcat)(pr.default.instancePath,i)],[pr.default.parentData,a.parentData],[pr.default.parentDataProperty,a.parentDataProperty],[pr.default.rootData,pr.default.rootData]];a.opts.dynamicRef&&p.push([pr.default.dynamicAnchors,pr.default.dynamicAnchors]);let m=(0,de._)`${d}, ${n.object(...p)}`;return l!==de.nil?(0,de._)`${s}.call(${l}, ${m})`:(0,de._)`${s}(${m})`}ae.callValidateCode=YE;var XE=(0,de._)`new RegExp`;function eA({gen:e,it:{opts:t}},n){let o=t.unicodeRegExp?"u":"",{regExp:r}=t.code,i=r(n,o);return e.scopeValue("pattern",{key:i.toString(),ref:i,code:(0,de._)`${r.code==="new RegExp"?XE:(0,JE.useFunc)(e,r)}(${n}, ${o})`})}ae.usePattern=eA;function tA(e){let{gen:t,data:n,keyword:o,it:r}=e,i=t.name("valid");if(r.allErrors){let s=t.let("valid",!0);return a(()=>t.assign(s,!1)),s}return t.var(i,!0),a(()=>t.break()),i;function a(s){let l=t.const("len",(0,de._)`${n}.length`);t.forRange("i",0,l,u=>{e.subschema({keyword:o,dataProp:u,dataPropType:Vm.Type.Num},i),t.if((0,de.not)(i),s)})}}ae.validateArray=tA;function rA(e){let{gen:t,schema:n,keyword:o,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(n.some(l=>(0,Vm.alwaysValidSchema)(r,l))&&!r.opts.unevaluated)return;let a=t.let("valid",!1),s=t.name("_valid");t.block(()=>n.forEach((l,u)=>{let d=e.subschema({keyword:o,schemaProp:u,compositeRule:!0},s);t.assign(a,(0,de._)`${a} || ${s}`),e.mergeValidEvaluated(d,s)||t.if((0,de.not)(a))})),e.result(a,()=>e.reset(),()=>e.error(!0))}ae.validateUnion=rA});var L_=z(zt=>{"use strict";Object.defineProperty(zt,"__esModule",{value:!0});zt.validateKeywordUsage=zt.validSchemaType=zt.funcKeywordCode=zt.macroKeywordCode=void 0;var qe=L(),Or=Mt(),nA=st(),oA=di();function iA(e,t){let{gen:n,keyword:o,schema:r,parentSchema:i,it:a}=e,s=t.macro.call(a.self,r,i,a),l=M_(n,o,s);a.opts.validateSchema!==!1&&a.self.validateSchema(s,!0);let u=n.name("valid");e.subschema({schema:s,schemaPath:qe.nil,errSchemaPath:`${a.errSchemaPath}/${o}`,topSchemaRef:l,compositeRule:!0},u),e.pass(u,()=>e.error(!0))}zt.macroKeywordCode=iA;function aA(e,t){var n;let{gen:o,keyword:r,schema:i,parentSchema:a,$data:s,it:l}=e;cA(l,t);let u=!s&&t.compile?t.compile.call(l.self,i,a,l):t.validate,d=M_(o,r,u),p=o.let("valid");e.block$data(p,m),e.ok((n=t.valid)!==null&&n!==void 0?n:p);function m(){if(t.errors===!1)h(),t.modifying&&U_(e),b(()=>e.error());else{let $=t.async?f():g();t.modifying&&U_(e),b(()=>sA(e,$))}}function f(){let $=o.let("ruleErrs",null);return o.try(()=>h((0,qe._)`await `),P=>o.assign(p,!1).if((0,qe._)`${P} instanceof ${l.ValidationError}`,()=>o.assign($,(0,qe._)`${P}.errors`),()=>o.throw(P))),$}function g(){let $=(0,qe._)`${d}.errors`;return o.assign($,null),h(qe.nil),$}function h($=t.async?(0,qe._)`await `:qe.nil){let P=l.opts.passContext?Or.default.this:Or.default.self,I=!("compile"in t&&!s||t.schema===!1);o.assign(p,(0,qe._)`${$}${(0,nA.callValidateCode)(e,d,P,I)}`,t.modifying)}function b($){var P;o.if((0,qe.not)((P=t.valid)!==null&&P!==void 0?P:p),$)}}zt.funcKeywordCode=aA;function U_(e){let{gen:t,data:n,it:o}=e;t.if(o.parentData,()=>t.assign(n,(0,qe._)`${o.parentData}[${o.parentDataProperty}]`))}function sA(e,t){let{gen:n}=e;n.if((0,qe._)`Array.isArray(${t})`,()=>{n.assign(Or.default.vErrors,(0,qe._)`${Or.default.vErrors} === null ? ${t} : ${Or.default.vErrors}.concat(${t})`).assign(Or.default.errors,(0,qe._)`${Or.default.vErrors}.length`),(0,oA.extendErrors)(e)},()=>e.error())}function cA({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function M_(e,t,n){if(n===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof n=="function"?{ref:n}:{ref:n,code:(0,qe.stringify)(n)})}function lA(e,t,n=!1){return!t.length||t.some(o=>o==="array"?Array.isArray(e):o==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==o||n&&typeof e>"u")}zt.validSchemaType=lA;function uA({schema:e,opts:t,self:n,errSchemaPath:o},r,i){if(Array.isArray(r.keyword)?!r.keyword.includes(i):r.keyword!==i)throw new Error("ajv implementation error");let a=r.dependencies;if(a?.some(s=>!Object.prototype.hasOwnProperty.call(e,s)))throw new Error(`parent schema must have dependencies of ${i}: ${a.join(",")}`);if(r.validateSchema&&!r.validateSchema(e[i])){let l=`keyword "${i}" value is invalid at path "${o}": `+n.errorsText(r.validateSchema.errors);if(t.validateSchema==="log")n.logger.error(l);else throw new Error(l)}}zt.validateKeywordUsage=uA});var Z_=z(fr=>{"use strict";Object.defineProperty(fr,"__esModule",{value:!0});fr.extendSubschemaMode=fr.extendSubschemaData=fr.getSubschema=void 0;var It=L(),F_=H();function dA(e,{keyword:t,schemaProp:n,schema:o,schemaPath:r,errSchemaPath:i,topSchemaRef:a}){if(t!==void 0&&o!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let s=e.schema[t];return n===void 0?{schema:s,schemaPath:(0,It._)`${e.schemaPath}${(0,It.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:s[n],schemaPath:(0,It._)`${e.schemaPath}${(0,It.getProperty)(t)}${(0,It.getProperty)(n)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,F_.escapeFragment)(n)}`}}if(o!==void 0){if(r===void 0||i===void 0||a===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:o,schemaPath:r,topSchemaRef:a,errSchemaPath:i}}throw new Error('either "keyword" or "schema" must be passed')}fr.getSubschema=dA;function pA(e,t,{dataProp:n,dataPropType:o,data:r,dataTypes:i,propertyName:a}){if(r!==void 0&&n!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:s}=t;if(n!==void 0){let{errorPath:u,dataPathArr:d,opts:p}=t,m=s.let("data",(0,It._)`${t.data}${(0,It.getProperty)(n)}`,!0);l(m),e.errorPath=(0,It.str)`${u}${(0,F_.getErrorPath)(n,o,p.jsPropertySyntax)}`,e.parentDataProperty=(0,It._)`${n}`,e.dataPathArr=[...d,e.parentDataProperty]}if(r!==void 0){let u=r instanceof It.Name?r:s.let("data",r,!0);l(u),a!==void 0&&(e.propertyName=a)}i&&(e.dataTypes=i);function l(u){e.data=u,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,u]}}fr.extendSubschemaData=pA;function fA(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:o,createErrors:r,allErrors:i}){o!==void 0&&(e.compositeRule=o),r!==void 0&&(e.createErrors=r),i!==void 0&&(e.allErrors=i),e.jtdDiscriminator=t,e.jtdMetadata=n}fr.extendSubschemaMode=fA});var Gm=z((AF,q_)=>{"use strict";q_.exports=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var o,r,i;if(Array.isArray(t)){if(o=t.length,o!=n.length)return!1;for(r=o;r--!==0;)if(!e(t[r],n[r]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(i=Object.keys(t),o=i.length,o!==Object.keys(n).length)return!1;for(r=o;r--!==0;)if(!Object.prototype.hasOwnProperty.call(n,i[r]))return!1;for(r=o;r--!==0;){var a=i[r];if(!e(t[a],n[a]))return!1}return!0}return t!==t&&n!==n}});var V_=z((TF,B_)=>{"use strict";var mr=B_.exports=function(e,t,n){typeof t=="function"&&(n=t,t={}),n=t.cb||n;var o=typeof n=="function"?n:n.pre||function(){},r=n.post||function(){};Xs(t,o,r,e,"",e)};mr.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};mr.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};mr.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};mr.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function Xs(e,t,n,o,r,i,a,s,l,u){if(o&&typeof o=="object"&&!Array.isArray(o)){t(o,r,i,a,s,l,u);for(var d in o){var p=o[d];if(Array.isArray(p)){if(d in mr.arrayKeywords)for(var m=0;m<p.length;m++)Xs(e,t,n,p[m],r+"/"+d+"/"+m,i,r,d,o,m)}else if(d in mr.propsKeywords){if(p&&typeof p=="object")for(var f in p)Xs(e,t,n,p[f],r+"/"+d+"/"+mA(f),i,r,d,o,f)}else(d in mr.keywords||e.allKeys&&!(d in mr.skipKeywords))&&Xs(e,t,n,p,r+"/"+d,i,r,d,o)}n(o,r,i,a,s,l,u)}}function mA(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}});var fi=z(We=>{"use strict";Object.defineProperty(We,"__esModule",{value:!0});We.getSchemaRefs=We.resolveUrl=We.normalizeId=We._getFullPath=We.getFullPath=We.inlineRef=void 0;var gA=H(),hA=Gm(),vA=V_(),yA=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function bA(e,t=!0){return typeof e=="boolean"?!0:t===!0?!Wm(e):t?J_(e)<=t:!1}We.inlineRef=bA;var _A=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function Wm(e){for(let t in e){if(_A.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(Wm)||typeof n=="object"&&Wm(n))return!0}return!1}function J_(e){let t=0;for(let n in e){if(n==="$ref")return 1/0;if(t++,!yA.has(n)&&(typeof e[n]=="object"&&(0,gA.eachItem)(e[n],o=>t+=J_(o)),t===1/0))return 1/0}return t}function H_(e,t="",n){n!==!1&&(t=Rn(t));let o=e.parse(t);return G_(e,o)}We.getFullPath=H_;function G_(e,t){return e.serialize(t).split("#")[0]+"#"}We._getFullPath=G_;var xA=/#\/?$/;function Rn(e){return e?e.replace(xA,""):""}We.normalizeId=Rn;function $A(e,t,n){return n=Rn(n),e.resolve(t,n)}We.resolveUrl=$A;var kA=/^[a-z_][-a-z0-9._]*$/i;function SA(e,t){if(typeof e=="boolean")return{};let{schemaId:n,uriResolver:o}=this.opts,r=Rn(e[n]||t),i={"":r},a=H_(o,r,!1),s={},l=new Set;return vA(e,{allKeys:!0},(p,m,f,g)=>{if(g===void 0)return;let h=a+m,b=i[g];typeof p[n]=="string"&&(b=$.call(this,p[n])),P.call(this,p.$anchor),P.call(this,p.$dynamicAnchor),i[m]=b;function $(I){let j=this.opts.uriResolver.resolve;if(I=Rn(b?j(b,I):I),l.has(I))throw d(I);l.add(I);let E=this.refs[I];return typeof E=="string"&&(E=this.refs[E]),typeof E=="object"?u(p,E.schema,I):I!==Rn(h)&&(I[0]==="#"?(u(p,s[I],I),s[I]=p):this.refs[I]=h),I}function P(I){if(typeof I=="string"){if(!kA.test(I))throw new Error(`invalid anchor "${I}"`);$.call(this,`#${I}`)}}}),s;function u(p,m,f){if(m!==void 0&&!hA(p,m))throw d(f)}function d(p){return new Error(`reference "${p}" resolves to more than one schema`)}}We.getSchemaRefs=SA});var hi=z(gr=>{"use strict";Object.defineProperty(gr,"__esModule",{value:!0});gr.getData=gr.KeywordCxt=gr.validateFunctionCode=void 0;var X_=P_(),W_=pi(),Qm=Fm(),ec=pi(),wA=N_(),gi=L_(),Km=Z_(),C=L(),D=Mt(),zA=fi(),Lt=H(),mi=di();function IA(e){if(rx(e)&&(nx(e),tx(e))){AA(e);return}ex(e,()=>(0,X_.topBoolOrEmptySchema)(e))}gr.validateFunctionCode=IA;function ex({gen:e,validateName:t,schema:n,schemaEnv:o,opts:r},i){r.code.es5?e.func(t,(0,C._)`${D.default.data}, ${D.default.valCxt}`,o.$async,()=>{e.code((0,C._)`"use strict"; ${K_(n,r)}`),EA(e,r),e.code(i)}):e.func(t,(0,C._)`${D.default.data}, ${PA(r)}`,o.$async,()=>e.code(K_(n,r)).code(i))}function PA(e){return(0,C._)`{${D.default.instancePath}="", ${D.default.parentData}, ${D.default.parentDataProperty}, ${D.default.rootData}=${D.default.data}${e.dynamicRef?(0,C._)`, ${D.default.dynamicAnchors}={}`:C.nil}}={}`}function EA(e,t){e.if(D.default.valCxt,()=>{e.var(D.default.instancePath,(0,C._)`${D.default.valCxt}.${D.default.instancePath}`),e.var(D.default.parentData,(0,C._)`${D.default.valCxt}.${D.default.parentData}`),e.var(D.default.parentDataProperty,(0,C._)`${D.default.valCxt}.${D.default.parentDataProperty}`),e.var(D.default.rootData,(0,C._)`${D.default.valCxt}.${D.default.rootData}`),t.dynamicRef&&e.var(D.default.dynamicAnchors,(0,C._)`${D.default.valCxt}.${D.default.dynamicAnchors}`)},()=>{e.var(D.default.instancePath,(0,C._)`""`),e.var(D.default.parentData,(0,C._)`undefined`),e.var(D.default.parentDataProperty,(0,C._)`undefined`),e.var(D.default.rootData,D.default.data),t.dynamicRef&&e.var(D.default.dynamicAnchors,(0,C._)`{}`)})}function AA(e){let{schema:t,opts:n,gen:o}=e;ex(e,()=>{n.$comment&&t.$comment&&ix(e),NA(e),o.let(D.default.vErrors,null),o.let(D.default.errors,0),n.unevaluated&&TA(e),ox(e),UA(e)})}function TA(e){let{gen:t,validateName:n}=e;e.evaluated=t.const("evaluated",(0,C._)`${n}.evaluated`),t.if((0,C._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,C._)`${e.evaluated}.props`,(0,C._)`undefined`)),t.if((0,C._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,C._)`${e.evaluated}.items`,(0,C._)`undefined`))}function K_(e,t){let n=typeof e=="object"&&e[t.schemaId];return n&&(t.code.source||t.code.process)?(0,C._)`/*# sourceURL=${n} */`:C.nil}function jA(e,t){if(rx(e)&&(nx(e),tx(e))){OA(e,t);return}(0,X_.boolOrEmptySchema)(e,t)}function tx({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let n in e)if(t.RULES.all[n])return!0;return!1}function rx(e){return typeof e.schema!="boolean"}function OA(e,t){let{schema:n,gen:o,opts:r}=e;r.$comment&&n.$comment&&ix(e),DA(e),RA(e);let i=o.const("_errs",D.default.errors);ox(e,i),o.var(t,(0,C._)`${i} === ${D.default.errors}`)}function nx(e){(0,Lt.checkUnknownRules)(e),CA(e)}function ox(e,t){if(e.opts.jtd)return Q_(e,[],!1,t);let n=(0,W_.getSchemaTypes)(e.schema),o=(0,W_.coerceAndCheckDataType)(e,n);Q_(e,n,!o,t)}function CA(e){let{schema:t,errSchemaPath:n,opts:o,self:r}=e;t.$ref&&o.ignoreKeywordsWithRef&&(0,Lt.schemaHasRulesButRef)(t,r.RULES)&&r.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function NA(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,Lt.checkStrictMode)(e,"default is ignored in the schema root")}function DA(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,zA.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function RA(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function ix({gen:e,schemaEnv:t,schema:n,errSchemaPath:o,opts:r}){let i=n.$comment;if(r.$comment===!0)e.code((0,C._)`${D.default.self}.logger.log(${i})`);else if(typeof r.$comment=="function"){let a=(0,C.str)`${o}/$comment`,s=e.scopeValue("root",{ref:t.root});e.code((0,C._)`${D.default.self}.opts.$comment(${i}, ${a}, ${s}.schema)`)}}function UA(e){let{gen:t,schemaEnv:n,validateName:o,ValidationError:r,opts:i}=e;n.$async?t.if((0,C._)`${D.default.errors} === 0`,()=>t.return(D.default.data),()=>t.throw((0,C._)`new ${r}(${D.default.vErrors})`)):(t.assign((0,C._)`${o}.errors`,D.default.vErrors),i.unevaluated&&MA(e),t.return((0,C._)`${D.default.errors} === 0`))}function MA({gen:e,evaluated:t,props:n,items:o}){n instanceof C.Name&&e.assign((0,C._)`${t}.props`,n),o instanceof C.Name&&e.assign((0,C._)`${t}.items`,o)}function Q_(e,t,n,o){let{gen:r,schema:i,data:a,allErrors:s,opts:l,self:u}=e,{RULES:d}=u;if(i.$ref&&(l.ignoreKeywordsWithRef||!(0,Lt.schemaHasRulesButRef)(i,d))){r.block(()=>sx(e,"$ref",d.all.$ref.definition));return}l.jtd||LA(e,t),r.block(()=>{for(let m of d.rules)p(m);p(d.post)});function p(m){(0,Qm.shouldUseGroup)(i,m)&&(m.type?(r.if((0,ec.checkDataType)(m.type,a,l.strictNumbers)),Y_(e,m),t.length===1&&t[0]===m.type&&n&&(r.else(),(0,ec.reportTypeError)(e)),r.endIf()):Y_(e,m),s||r.if((0,C._)`${D.default.errors} === ${o||0}`))}}function Y_(e,t){let{gen:n,schema:o,opts:{useDefaults:r}}=e;r&&(0,wA.assignDefaults)(e,t.type),n.block(()=>{for(let i of t.rules)(0,Qm.shouldUseRule)(o,i)&&sx(e,i.keyword,i.definition,t.type)})}function LA(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(FA(e,t),e.opts.allowUnionTypes||ZA(e,t),qA(e,e.dataTypes))}function FA(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(n=>{ax(e.dataTypes,n)||Ym(e,`type "${n}" not allowed by context "${e.dataTypes.join(",")}"`)}),VA(e,t)}}function ZA(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&Ym(e,"use allowUnionTypes to allow union type keyword")}function qA(e,t){let n=e.self.RULES.all;for(let o in n){let r=n[o];if(typeof r=="object"&&(0,Qm.shouldUseRule)(e.schema,r)){let{type:i}=r.definition;i.length&&!i.some(a=>BA(t,a))&&Ym(e,`missing type "${i.join(",")}" for keyword "${o}"`)}}}function BA(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function ax(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function VA(e,t){let n=[];for(let o of e.dataTypes)ax(t,o)?n.push(o):t.includes("integer")&&o==="number"&&n.push("integer");e.dataTypes=n}function Ym(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,Lt.checkStrictMode)(e,t,e.opts.strictTypes)}var tc=class{constructor(t,n,o){if((0,gi.validateKeywordUsage)(t,n,o),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=o,this.data=t.data,this.schema=t.schema[o],this.$data=n.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,Lt.schemaRefOrVal)(t,this.schema,o,this.$data),this.schemaType=n.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=n,this.$data)this.schemaCode=t.gen.const("vSchema",cx(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,gi.validSchemaType)(this.schema,n.schemaType,n.allowUndefined))throw new Error(`${o} value must be ${JSON.stringify(n.schemaType)}`);("code"in n?n.trackErrors:n.errors!==!1)&&(this.errsCount=t.gen.const("_errs",D.default.errors))}result(t,n,o){this.failResult((0,C.not)(t),n,o)}failResult(t,n,o){this.gen.if(t),o?o():this.error(),n?(this.gen.else(),n(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,n){this.failResult((0,C.not)(t),void 0,n)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:n}=this;this.fail((0,C._)`${n} !== undefined && (${(0,C.or)(this.invalid$data(),t)})`)}error(t,n,o){if(n){this.setParams(n),this._error(t,o),this.setParams({});return}this._error(t,o)}_error(t,n){(t?mi.reportExtraError:mi.reportError)(this,this.def.error,n)}$dataError(){(0,mi.reportError)(this,this.def.$dataError||mi.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,mi.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,n){n?Object.assign(this.params,t):this.params=t}block$data(t,n,o=C.nil){this.gen.block(()=>{this.check$data(t,o),n()})}check$data(t=C.nil,n=C.nil){if(!this.$data)return;let{gen:o,schemaCode:r,schemaType:i,def:a}=this;o.if((0,C.or)((0,C._)`${r} === undefined`,n)),t!==C.nil&&o.assign(t,!0),(i.length||a.validateSchema)&&(o.elseIf(this.invalid$data()),this.$dataError(),t!==C.nil&&o.assign(t,!1)),o.else()}invalid$data(){let{gen:t,schemaCode:n,schemaType:o,def:r,it:i}=this;return(0,C.or)(a(),s());function a(){if(o.length){if(!(n instanceof C.Name))throw new Error("ajv implementation error");let l=Array.isArray(o)?o:[o];return(0,C._)`${(0,ec.checkDataTypes)(l,n,i.opts.strictNumbers,ec.DataType.Wrong)}`}return C.nil}function s(){if(r.validateSchema){let l=t.scopeValue("validate$data",{ref:r.validateSchema});return(0,C._)`!${l}(${n})`}return C.nil}}subschema(t,n){let o=(0,Km.getSubschema)(this.it,t);(0,Km.extendSubschemaData)(o,this.it,t),(0,Km.extendSubschemaMode)(o,t);let r={...this.it,...o,items:void 0,props:void 0};return jA(r,n),r}mergeEvaluated(t,n){let{it:o,gen:r}=this;o.opts.unevaluated&&(o.props!==!0&&t.props!==void 0&&(o.props=Lt.mergeEvaluated.props(r,t.props,o.props,n)),o.items!==!0&&t.items!==void 0&&(o.items=Lt.mergeEvaluated.items(r,t.items,o.items,n)))}mergeValidEvaluated(t,n){let{it:o,gen:r}=this;if(o.opts.unevaluated&&(o.props!==!0||o.items!==!0))return r.if(n,()=>this.mergeEvaluated(t,C.Name)),!0}};gr.KeywordCxt=tc;function sx(e,t,n,o){let r=new tc(e,n,t);"code"in n?n.code(r,o):r.$data&&n.validate?(0,gi.funcKeywordCode)(r,n):"macro"in n?(0,gi.macroKeywordCode)(r,n):(n.compile||n.validate)&&(0,gi.funcKeywordCode)(r,n)}var JA=/^\/(?:[^~]|~0|~1)*$/,HA=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function cx(e,{dataLevel:t,dataNames:n,dataPathArr:o}){let r,i;if(e==="")return D.default.rootData;if(e[0]==="/"){if(!JA.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);r=e,i=D.default.rootData}else{let u=HA.exec(e);if(!u)throw new Error(`Invalid JSON-pointer: ${e}`);let d=+u[1];if(r=u[2],r==="#"){if(d>=t)throw new Error(l("property/index",d));return o[t-d]}if(d>t)throw new Error(l("data",d));if(i=n[t-d],!r)return i}let a=i,s=r.split("/");for(let u of s)u&&(i=(0,C._)`${i}${(0,C.getProperty)((0,Lt.unescapeJsonPointer)(u))}`,a=(0,C._)`${a} && ${i}`);return a;function l(u,d){return`Cannot access ${u} ${d} levels up, current level is ${t}`}}gr.getData=cx});var rc=z(eg=>{"use strict";Object.defineProperty(eg,"__esModule",{value:!0});var Xm=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};eg.default=Xm});var vi=z(ng=>{"use strict";Object.defineProperty(ng,"__esModule",{value:!0});var tg=fi(),rg=class extends Error{constructor(t,n,o,r){super(r||`can't resolve reference ${o} from id ${n}`),this.missingRef=(0,tg.resolveUrl)(t,n,o),this.missingSchema=(0,tg.normalizeId)((0,tg.getFullPath)(t,this.missingRef))}};ng.default=rg});var oc=z(ct=>{"use strict";Object.defineProperty(ct,"__esModule",{value:!0});ct.resolveSchema=ct.getCompilingSchema=ct.resolveRef=ct.compileSchema=ct.SchemaEnv=void 0;var ht=L(),GA=rc(),Cr=Mt(),vt=fi(),lx=H(),WA=hi(),Un=class{constructor(t){var n;this.refs={},this.dynamicAnchors={};let o;typeof t.schema=="object"&&(o=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(n=t.baseId)!==null&&n!==void 0?n:(0,vt.normalizeId)(o?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=o?.$async,this.refs={}}};ct.SchemaEnv=Un;function ig(e){let t=ux.call(this,e);if(t)return t;let n=(0,vt.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:o,lines:r}=this.opts.code,{ownProperties:i}=this.opts,a=new ht.CodeGen(this.scope,{es5:o,lines:r,ownProperties:i}),s;e.$async&&(s=a.scopeValue("Error",{ref:GA.default,code:(0,ht._)`require("ajv/dist/runtime/validation_error").default`}));let l=a.scopeName("validate");e.validateName=l;let u={gen:a,allErrors:this.opts.allErrors,data:Cr.default.data,parentData:Cr.default.parentData,parentDataProperty:Cr.default.parentDataProperty,dataNames:[Cr.default.data],dataPathArr:[ht.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:a.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,ht.stringify)(e.schema)}:{ref:e.schema}),validateName:l,ValidationError:s,schema:e.schema,schemaEnv:e,rootId:n,baseId:e.baseId||n,schemaPath:ht.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,ht._)`""`,opts:this.opts,self:this},d;try{this._compilations.add(e),(0,WA.validateFunctionCode)(u),a.optimize(this.opts.code.optimize);let p=a.toString();d=`${a.scopeRefs(Cr.default.scope)}return ${p}`,this.opts.code.process&&(d=this.opts.code.process(d,e));let f=new Function(`${Cr.default.self}`,`${Cr.default.scope}`,d)(this,this.scope.get());if(this.scope.value(l,{ref:f}),f.errors=null,f.schema=e.schema,f.schemaEnv=e,e.$async&&(f.$async=!0),this.opts.code.source===!0&&(f.source={validateName:l,validateCode:p,scopeValues:a._values}),this.opts.unevaluated){let{props:g,items:h}=u;f.evaluated={props:g instanceof ht.Name?void 0:g,items:h instanceof ht.Name?void 0:h,dynamicProps:g instanceof ht.Name,dynamicItems:h instanceof ht.Name},f.source&&(f.source.evaluated=(0,ht.stringify)(f.evaluated))}return e.validate=f,e}catch(p){throw delete e.validate,delete e.validateName,d&&this.logger.error("Error compiling schema, function code:",d),p}finally{this._compilations.delete(e)}}ct.compileSchema=ig;function KA(e,t,n){var o;n=(0,vt.resolveUrl)(this.opts.uriResolver,t,n);let r=e.refs[n];if(r)return r;let i=XA.call(this,e,n);if(i===void 0){let a=(o=e.localRefs)===null||o===void 0?void 0:o[n],{schemaId:s}=this.opts;a&&(i=new Un({schema:a,schemaId:s,root:e,baseId:t}))}if(i!==void 0)return e.refs[n]=QA.call(this,i)}ct.resolveRef=KA;function QA(e){return(0,vt.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:ig.call(this,e)}function ux(e){for(let t of this._compilations)if(YA(t,e))return t}ct.getCompilingSchema=ux;function YA(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function XA(e,t){let n;for(;typeof(n=this.refs[t])=="string";)t=n;return n||this.schemas[t]||nc.call(this,e,t)}function nc(e,t){let n=this.opts.uriResolver.parse(t),o=(0,vt._getFullPath)(this.opts.uriResolver,n),r=(0,vt.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&o===r)return og.call(this,n,e);let i=(0,vt.normalizeId)(o),a=this.refs[i]||this.schemas[i];if(typeof a=="string"){let s=nc.call(this,e,a);return typeof s?.schema!="object"?void 0:og.call(this,n,s)}if(typeof a?.schema=="object"){if(a.validate||ig.call(this,a),i===(0,vt.normalizeId)(t)){let{schema:s}=a,{schemaId:l}=this.opts,u=s[l];return u&&(r=(0,vt.resolveUrl)(this.opts.uriResolver,r,u)),new Un({schema:s,schemaId:l,root:e,baseId:r})}return og.call(this,n,a)}}ct.resolveSchema=nc;var eT=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function og(e,{baseId:t,schema:n,root:o}){var r;if(((r=e.fragment)===null||r===void 0?void 0:r[0])!=="/")return;for(let s of e.fragment.slice(1).split("/")){if(typeof n=="boolean")return;let l=n[(0,lx.unescapeFragment)(s)];if(l===void 0)return;n=l;let u=typeof n=="object"&&n[this.opts.schemaId];!eT.has(s)&&u&&(t=(0,vt.resolveUrl)(this.opts.uriResolver,t,u))}let i;if(typeof n!="boolean"&&n.$ref&&!(0,lx.schemaHasRulesButRef)(n,this.RULES)){let s=(0,vt.resolveUrl)(this.opts.uriResolver,t,n.$ref);i=nc.call(this,o,s)}let{schemaId:a}=this.opts;if(i=i||new Un({schema:n,schemaId:a,root:o,baseId:t}),i.schema!==i.root.schema)return i}});var dx=z((RF,tT)=>{tT.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var cg=z((UF,vx)=>{"use strict";var rT=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),fx=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u),ag=RegExp.prototype.test.bind(/^[\da-f]{2}$/iu),mx=RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu),nT=RegExp.prototype.test.bind(/^[\da-z\-._~!$&'()*+,;=:@/]$/iu);function sg(e){let t="",n=0,o=0;for(o=0;o<e.length;o++)if(n=e[o].charCodeAt(0),n!==48){if(!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[o];break}for(o+=1;o<e.length;o++){if(n=e[o].charCodeAt(0),!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return"";t+=e[o]}return t}var oT=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function px(e){return e.length=0,!0}function iT(e,t,n){if(e.length){let o=sg(e);if(o!=="")t.push(o);else return n.error=!0,!1;e.length=0}return!0}function aT(e){let t=0,n={error:!1,address:"",zone:""},o=[],r=[],i=!1,a=!1,s=iT;for(let l=0;l<e.length;l++){let u=e[l];if(!(u==="["||u==="]"))if(u===":"){if(i===!0&&(a=!0),!s(r,o,n))break;if(++t>7){n.error=!0;break}l>0&&e[l-1]===":"&&(i=!0),o.push(":");continue}else if(u==="%"){if(!s(r,o,n))break;s=px}else{r.push(u);continue}}return r.length&&(s===px?n.zone=r.join(""):a?o.push(r.join("")):o.push(sg(r))),n.address=o.join(""),n}function gx(e){if(sT(e,":")<2)return{host:e,isIPV6:!1};let t=aT(e);if(t.error)return{host:e,isIPV6:!1};{let n=t.address,o=t.address;return t.zone&&(n+="%"+t.zone,o+="%25"+t.zone),{host:n,isIPV6:!0,escapedHost:o}}}function sT(e,t){let n=0;for(let o=0;o<e.length;o++)e[o]===t&&n++;return n}function cT(e){let t=e,n=[],o=-1,r=0;for(;r=t.length;){if(r===1){if(t===".")break;if(t==="/"){n.push("/");break}else{n.push(t);break}}else if(r===2){if(t[0]==="."){if(t[1]===".")break;if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&(t[1]==="."||t[1]==="/")){n.push("/");break}}else if(r===3&&t==="/.."){n.length!==0&&n.pop(),n.push("/");break}if(t[0]==="."){if(t[1]==="."){if(t[2]==="/"){t=t.slice(3);continue}}else if(t[1]==="/"){t=t.slice(2);continue}}else if(t[0]==="/"&&t[1]==="."){if(t[2]==="/"){t=t.slice(2);continue}else if(t[2]==="."&&t[3]==="/"){t=t.slice(3),n.length!==0&&n.pop();continue}}if((o=t.indexOf("/",1))===-1){n.push(t);break}else n.push(t.slice(0,o)),t=t.slice(o)}return n.join("")}var lT={"@":"%40","/":"%2F","?":"%3F","#":"%23",":":"%3A"},uT=/[@/?#:]/g,dT=/[@/?#]/g;function hx(e,t){let n=t?dT:uT;return n.lastIndex=0,e.replace(n,o=>lT[o])}function pT(e,t=!1){if(e.indexOf("%")===-1)return e;let n="";for(let o=0;o<e.length;o++){if(e[o]==="%"&&o+2<e.length){let r=e.slice(o+1,o+3);if(ag(r)){let i=r.toUpperCase(),a=String.fromCharCode(parseInt(i,16));t&&mx(a)?n+=a:n+="%"+i,o+=2;continue}}n+=e[o]}return n}function fT(e){let t="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let o=e.slice(n+1,n+3);if(ag(o)){let r=o.toUpperCase(),i=String.fromCharCode(parseInt(r,16));i!=="."&&mx(i)?t+=i:t+="%"+r,n+=2;continue}}nT(e[n])?t+=e[n]:t+=escape(e[n])}return t}function mT(e){let t="";for(let n=0;n<e.length;n++){if(e[n]==="%"&&n+2<e.length){let o=e.slice(n+1,n+3);if(ag(o)){t+="%"+o.toUpperCase(),n+=2;continue}}t+=escape(e[n])}return t}function gT(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push("@")),e.host!==void 0){let n=unescape(e.host);if(!fx(n)){let o=gx(n);o.isIPV6===!0?n=`[${o.escapedHost}]`:n=hx(n,!1)}t.push(n)}return(typeof e.port=="number"||typeof e.port=="string")&&(t.push(":"),t.push(String(e.port))),t.length?t.join(""):void 0}vx.exports={nonSimpleDomain:oT,recomposeAuthority:gT,reescapeHostDelimiters:hx,normalizePercentEncoding:pT,normalizePathEncoding:fT,escapePreservingEscapes:mT,removeDotSegments:cT,isIPv4:fx,isUUID:rT,normalizeIPv6:gx,stringArrayToHexStripped:sg}});var $x=z((MF,xx)=>{"use strict";var{isUUID:hT}=cg(),vT=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,yT=["http","https","ws","wss","urn","urn:uuid"];function bT(e){return yT.indexOf(e)!==-1}function lg(e){return e.secure===!0?!0:e.secure===!1?!1:e.scheme?e.scheme.length===3&&(e.scheme[0]==="w"||e.scheme[0]==="W")&&(e.scheme[1]==="s"||e.scheme[1]==="S")&&(e.scheme[2]==="s"||e.scheme[2]==="S"):!1}function yx(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function bx(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function _T(e){return e.secure=lg(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function xT(e){if((e.port===(lg(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,n]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=n,e.resourceName=void 0}return e.fragment=void 0,e}function $T(e,t){if(!e.path)return e.error="URN can not be parsed",e;let n=e.path.match(vT);if(n){let o=t.scheme||e.scheme||"urn";e.nid=n[1].toLowerCase(),e.nss=n[2];let r=`${o}:${t.nid||e.nid}`,i=ug(r);e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function kT(e,t){if(e.nid===void 0)throw new Error("URN without nid cannot be serialized");let n=t.scheme||e.scheme||"urn",o=e.nid.toLowerCase(),r=`${n}:${t.nid||o}`,i=ug(r);i&&(e=i.serialize(e,t));let a=e,s=e.nss;return a.path=`${o||t.nid}:${s}`,t.skipEscape=!0,a}function ST(e,t){let n=e;return n.uuid=n.nss,n.nss=void 0,!t.tolerant&&(!n.uuid||!hT(n.uuid))&&(n.error=n.error||"UUID is not valid."),n}function wT(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var _x={scheme:"http",domainHost:!0,parse:yx,serialize:bx},zT={scheme:"https",domainHost:_x.domainHost,parse:yx,serialize:bx},ic={scheme:"ws",domainHost:!0,parse:_T,serialize:xT},IT={scheme:"wss",domainHost:ic.domainHost,parse:ic.parse,serialize:ic.serialize},PT={scheme:"urn",parse:$T,serialize:kT,skipNormalize:!0},ET={scheme:"urn:uuid",parse:ST,serialize:wT,skipNormalize:!0},ac={http:_x,https:zT,ws:ic,wss:IT,urn:PT,"urn:uuid":ET};Object.setPrototypeOf(ac,null);function ug(e){return e&&(ac[e]||ac[e.toLowerCase()])||void 0}xx.exports={wsIsSecure:lg,SCHEMES:ac,isValidSchemeName:bT,getSchemeHandler:ug}});var Px=z((LF,sc)=>{"use strict";var{normalizeIPv6:AT,removeDotSegments:yi,recomposeAuthority:TT,normalizePercentEncoding:jT,normalizePathEncoding:OT,escapePreservingEscapes:CT,reescapeHostDelimiters:NT,isIPv4:DT,nonSimpleDomain:RT}=cg(),{SCHEMES:UT,getSchemeHandler:Sx}=$x();function MT(e,t){return typeof e=="string"?e=VT(e,t):typeof e=="object"&&(e=Mn(Nr(e,t),t)),e}function LT(e,t,n){let o=n?Object.assign({scheme:"null"},n):{scheme:"null"},r=wx(Mn(e,o),Mn(t,o),o,!0);return o.skipEscape=!0,Nr(r,o)}function wx(e,t,n,o){let r={};return o||(e=Mn(Nr(e,n),n),t=Mn(Nr(t,n),n)),n=n||{},!n.tolerant&&t.scheme?(r.scheme=t.scheme,r.userinfo=t.userinfo,r.host=t.host,r.port=t.port,r.path=yi(t.path||""),r.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(r.userinfo=t.userinfo,r.host=t.host,r.port=t.port,r.path=yi(t.path||""),r.query=t.query):(t.path?(t.path[0]==="/"?r.path=yi(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?r.path="/"+t.path:e.path?r.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:r.path=t.path,r.path=yi(r.path)),r.query=t.query):(r.path=e.path,t.query!==void 0?r.query=t.query:r.query=e.query),r.userinfo=e.userinfo,r.host=e.host,r.port=e.port),r.scheme=e.scheme),r.fragment=t.fragment,r}function FT(e,t,n){let o=kx(e,n),r=kx(t,n);return o!==void 0&&r!==void 0&&o.toLowerCase()===r.toLowerCase()}function Nr(e,t){let n={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},o=Object.assign({},t),r=[],i=Sx(o.scheme||n.scheme);i&&i.serialize&&i.serialize(n,o),n.path!==void 0&&(o.skipEscape?n.path=jT(n.path):(n.path=CT(n.path),n.scheme!==void 0&&(n.path=n.path.split("%3A").join(":")))),o.reference!=="suffix"&&n.scheme&&r.push(n.scheme,":");let a=TT(n);if(a!==void 0&&(o.reference!=="suffix"&&r.push("//"),r.push(a),n.path&&n.path[0]!=="/"&&r.push("/")),n.path!==void 0){let s=n.path;!o.absolutePath&&(!i||!i.absolutePath)&&(s=yi(s)),a===void 0&&s[0]==="/"&&s[1]==="/"&&(s="/%2F"+s.slice(2)),r.push(s)}return n.query!==void 0&&r.push("?",n.query),n.fragment!==void 0&&r.push("#",n.fragment),r.join("")}var ZT=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u,qT=/^(?:[^#/:?]+:)?\/\/([^/?#]*)/;function BT(e,t){if(t[2]!==void 0&&e.path&&e.path[0]!=="/")return'URI path must start with "/" when authority is present.';if(typeof e.port=="number"&&(e.port<0||e.port>65535))return"URI port is malformed."}function zx(e,t){let n=Object.assign({},t),o={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},r=!1,i=!1;n.reference==="suffix"&&(n.scheme?e=n.scheme+":"+e:e="//"+e);let a=e.match(qT);a!==null&&a[1].indexOf("\\")!==-1&&(o.error="URI authority must not contain a literal backslash.",r=!0);let s=e.match(ZT);if(s){o.scheme=s[1],o.userinfo=s[3],o.host=s[4],o.port=parseInt(s[5],10),o.path=s[6]||"",o.query=s[7],o.fragment=s[8],isNaN(o.port)&&(o.port=s[5]);let l=BT(o,s);if(l!==void 0&&(o.error=o.error||l,r=!0),o.host)if(DT(o.host)===!1){let p=AT(o.host);o.host=p.host.toLowerCase(),i=p.isIPV6}else i=!0;o.scheme===void 0&&o.userinfo===void 0&&o.host===void 0&&o.port===void 0&&o.query===void 0&&!o.path?o.reference="same-document":o.scheme===void 0?o.reference="relative":o.fragment===void 0?o.reference="absolute":o.reference="uri",n.reference&&n.reference!=="suffix"&&n.reference!==o.reference&&(o.error=o.error||"URI is not a "+n.reference+" reference.");let u=Sx(n.scheme||o.scheme);if(!n.unicodeSupport&&(!u||!u.unicodeSupport)&&o.host&&(n.domainHost||u&&u.domainHost)&&i===!1&&RT(o.host))try{o.host=new URL("http://"+o.host).hostname}catch(d){o.error=o.error||"Host's domain name can not be converted to ASCII: "+d}if((!u||u&&!u.skipNormalize)&&(e.indexOf("%")!==-1&&(o.scheme!==void 0&&(o.scheme=unescape(o.scheme)),o.host!==void 0&&(o.host=NT(unescape(o.host),i))),o.path&&(o.path=OT(o.path)),o.fragment))try{o.fragment=encodeURI(decodeURIComponent(o.fragment))}catch{o.error=o.error||"URI malformed"}u&&u.parse&&u.parse(o,n)}else o.error=o.error||"URI can not be parsed.";return{parsed:o,malformedAuthorityOrPort:r}}function Mn(e,t){return zx(e,t).parsed}function VT(e,t){return Ix(e,t).normalized}function Ix(e,t){let{parsed:n,malformedAuthorityOrPort:o}=zx(e,t);return{normalized:o?e:Nr(n,t),malformedAuthorityOrPort:o}}function kx(e,t){if(typeof e=="string"){let{normalized:n,malformedAuthorityOrPort:o}=Ix(e,t);return o?void 0:n}if(typeof e=="object")return Nr(e,t)}var dg={SCHEMES:UT,normalize:MT,resolve:LT,resolveComponent:wx,equal:FT,serialize:Nr,parse:Mn};sc.exports=dg;sc.exports.default=dg;sc.exports.fastUri=dg});var Ax=z(pg=>{"use strict";Object.defineProperty(pg,"__esModule",{value:!0});var Ex=Px();Ex.code='require("ajv/dist/runtime/uri").default';pg.default=Ex});var Ux=z(je=>{"use strict";Object.defineProperty(je,"__esModule",{value:!0});je.CodeGen=je.Name=je.nil=je.stringify=je.str=je._=je.KeywordCxt=void 0;var JT=hi();Object.defineProperty(je,"KeywordCxt",{enumerable:!0,get:function(){return JT.KeywordCxt}});var Ln=L();Object.defineProperty(je,"_",{enumerable:!0,get:function(){return Ln._}});Object.defineProperty(je,"str",{enumerable:!0,get:function(){return Ln.str}});Object.defineProperty(je,"stringify",{enumerable:!0,get:function(){return Ln.stringify}});Object.defineProperty(je,"nil",{enumerable:!0,get:function(){return Ln.nil}});Object.defineProperty(je,"Name",{enumerable:!0,get:function(){return Ln.Name}});Object.defineProperty(je,"CodeGen",{enumerable:!0,get:function(){return Ln.CodeGen}});var HT=rc(),Nx=vi(),GT=Lm(),bi=oc(),WT=L(),_i=fi(),cc=pi(),mg=H(),Tx=dx(),KT=Ax(),Dx=(e,t)=>new RegExp(e,t);Dx.code="new RegExp";var QT=["removeAdditional","useDefaults","coerceTypes"],YT=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),XT={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},ej={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},jx=200;function tj(e){var t,n,o,r,i,a,s,l,u,d,p,m,f,g,h,b,$,P,I,j,E,_e,xe,ke,Ye;let pt=e.strict,Xc=(t=e.code)===null||t===void 0?void 0:t.optimize,Jh=Xc===!0||Xc===void 0?1:Xc||0,Hh=(o=(n=e.code)===null||n===void 0?void 0:n.regExp)!==null&&o!==void 0?o:Dx,_w=(r=e.uriResolver)!==null&&r!==void 0?r:KT.default;return{strictSchema:(a=(i=e.strictSchema)!==null&&i!==void 0?i:pt)!==null&&a!==void 0?a:!0,strictNumbers:(l=(s=e.strictNumbers)!==null&&s!==void 0?s:pt)!==null&&l!==void 0?l:!0,strictTypes:(d=(u=e.strictTypes)!==null&&u!==void 0?u:pt)!==null&&d!==void 0?d:"log",strictTuples:(m=(p=e.strictTuples)!==null&&p!==void 0?p:pt)!==null&&m!==void 0?m:"log",strictRequired:(g=(f=e.strictRequired)!==null&&f!==void 0?f:pt)!==null&&g!==void 0?g:!1,code:e.code?{...e.code,optimize:Jh,regExp:Hh}:{optimize:Jh,regExp:Hh},loopRequired:(h=e.loopRequired)!==null&&h!==void 0?h:jx,loopEnum:(b=e.loopEnum)!==null&&b!==void 0?b:jx,meta:($=e.meta)!==null&&$!==void 0?$:!0,messages:(P=e.messages)!==null&&P!==void 0?P:!0,inlineRefs:(I=e.inlineRefs)!==null&&I!==void 0?I:!0,schemaId:(j=e.schemaId)!==null&&j!==void 0?j:"$id",addUsedSchema:(E=e.addUsedSchema)!==null&&E!==void 0?E:!0,validateSchema:(_e=e.validateSchema)!==null&&_e!==void 0?_e:!0,validateFormats:(xe=e.validateFormats)!==null&&xe!==void 0?xe:!0,unicodeRegExp:(ke=e.unicodeRegExp)!==null&&ke!==void 0?ke:!0,int32range:(Ye=e.int32range)!==null&&Ye!==void 0?Ye:!0,uriResolver:_w}}var xi=class{constructor(t={}){this.schemas={},this.refs={},this.formats=Object.create(null),this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...tj(t)};let{es5:n,lines:o}=this.opts.code;this.scope=new WT.ValueScope({scope:{},prefixes:YT,es5:n,lines:o}),this.logger=sj(t.logger);let r=t.validateFormats;t.validateFormats=!1,this.RULES=(0,GT.getRules)(),Ox.call(this,XT,t,"NOT SUPPORTED"),Ox.call(this,ej,t,"DEPRECATED","warn"),this._metaOpts=ij.call(this),t.formats&&nj.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&oj.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),rj.call(this),t.validateFormats=r}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:n,schemaId:o}=this.opts,r=Tx;o==="id"&&(r={...Tx},r.id=r.$id,delete r.$id),n&&t&&this.addMetaSchema(r,r[o],!1)}defaultMeta(){let{meta:t,schemaId:n}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[n]||t:void 0}validate(t,n){let o;if(typeof t=="string"){if(o=this.getSchema(t),!o)throw new Error(`no schema with key or ref "${t}"`)}else o=this.compile(t);let r=o(n);return"$async"in o||(this.errors=o.errors),r}compile(t,n){let o=this._addSchema(t,n);return o.validate||this._compileSchemaEnv(o)}compileAsync(t,n){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:o}=this.opts;return r.call(this,t,n);async function r(d,p){await i.call(this,d.$schema);let m=this._addSchema(d,p);return m.validate||a.call(this,m)}async function i(d){d&&!this.getSchema(d)&&await r.call(this,{$ref:d},!0)}async function a(d){try{return this._compileSchemaEnv(d)}catch(p){if(!(p instanceof Nx.default))throw p;return s.call(this,p),await l.call(this,p.missingSchema),a.call(this,d)}}function s({missingSchema:d,missingRef:p}){if(this.refs[d])throw new Error(`AnySchema ${d} is loaded but ${p} cannot be resolved`)}async function l(d){let p=await u.call(this,d);this.refs[d]||await i.call(this,p.$schema),this.refs[d]||this.addSchema(p,d,n)}async function u(d){let p=this._loading[d];if(p)return p;try{return await(this._loading[d]=o(d))}finally{delete this._loading[d]}}}addSchema(t,n,o,r=this.opts.validateSchema){if(Array.isArray(t)){for(let a of t)this.addSchema(a,void 0,o,r);return this}let i;if(typeof t=="object"){let{schemaId:a}=this.opts;if(i=t[a],i!==void 0&&typeof i!="string")throw new Error(`schema ${a} must be string`)}return n=(0,_i.normalizeId)(n||i),this._checkUnique(n),this.schemas[n]=this._addSchema(t,o,n,r,!0),this}addMetaSchema(t,n,o=this.opts.validateSchema){return this.addSchema(t,n,!0,o),this}validateSchema(t,n){if(typeof t=="boolean")return!0;let o;if(o=t.$schema,o!==void 0&&typeof o!="string")throw new Error("$schema must be a string");if(o=o||this.opts.defaultMeta||this.defaultMeta(),!o)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let r=this.validate(o,t);if(!r&&n){let i="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(i);else throw new Error(i)}return r}getSchema(t){let n;for(;typeof(n=Cx.call(this,t))=="string";)t=n;if(n===void 0){let{schemaId:o}=this.opts,r=new bi.SchemaEnv({schema:{},schemaId:o});if(n=bi.resolveSchema.call(this,r,t),!n)return;this.refs[t]=n}return n.validate||this._compileSchemaEnv(n)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let n=Cx.call(this,t);return typeof n=="object"&&this._cache.delete(n.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let n=t;this._cache.delete(n);let o=t[this.opts.schemaId];return o&&(o=(0,_i.normalizeId)(o),delete this.schemas[o],delete this.refs[o]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let n of t)this.addKeyword(n);return this}addKeyword(t,n){let o;if(typeof t=="string")o=t,typeof n=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),n.keyword=o);else if(typeof t=="object"&&n===void 0){if(n=t,o=n.keyword,Array.isArray(o)&&!o.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(lj.call(this,o,n),!n)return(0,mg.eachItem)(o,i=>fg.call(this,i)),this;dj.call(this,n);let r={...n,type:(0,cc.getJSONTypes)(n.type),schemaType:(0,cc.getJSONTypes)(n.schemaType)};return(0,mg.eachItem)(o,r.type.length===0?i=>fg.call(this,i,r):i=>r.type.forEach(a=>fg.call(this,i,r,a))),this}getKeyword(t){let n=this.RULES.all[t];return typeof n=="object"?n.definition:!!n}removeKeyword(t){let{RULES:n}=this;delete n.keywords[t],delete n.all[t];for(let o of n.rules){let r=o.rules.findIndex(i=>i.keyword===t);r>=0&&o.rules.splice(r,1)}return this}addFormat(t,n){return typeof n=="string"&&(n=new RegExp(n)),this.formats[t]=n,this}errorsText(t=this.errors,{separator:n=", ",dataVar:o="data"}={}){return!t||t.length===0?"No errors":t.map(r=>`${o}${r.instancePath} ${r.message}`).reduce((r,i)=>r+n+i)}$dataMetaSchema(t,n){let o=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let r of n){let i=r.split("/").slice(1),a=t;for(let s of i)a=a[s];for(let s in o){let l=o[s];if(typeof l!="object")continue;let{$data:u}=l.definition,d=a[s];u&&d&&(a[s]=Rx(d))}}return t}_removeAllSchemas(t,n){for(let o in t){let r=t[o];(!n||n.test(o))&&(typeof r=="string"?delete t[o]:r&&!r.meta&&(this._cache.delete(r.schema),delete t[o]))}}_addSchema(t,n,o,r=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof t=="object")a=t[s];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let l=this._cache.get(t);if(l!==void 0)return l;o=(0,_i.normalizeId)(a||o);let u=_i.getSchemaRefs.call(this,t,o);return l=new bi.SchemaEnv({schema:t,schemaId:s,meta:n,baseId:o,localRefs:u}),this._cache.set(l.schema,l),i&&!o.startsWith("#")&&(o&&this._checkUnique(o),this.refs[o]=l),r&&this.validateSchema(t,!0),l}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):bi.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let n=this.opts;this.opts=this._metaOpts;try{bi.compileSchema.call(this,t)}finally{this.opts=n}}};xi.ValidationError=HT.default;xi.MissingRefError=Nx.default;je.default=xi;function Ox(e,t,n,o="error"){for(let r in e){let i=r;i in t&&this.logger[o](`${n}: option ${r}. ${e[i]}`)}}function Cx(e){return e=(0,_i.normalizeId)(e),this.schemas[e]||this.refs[e]}function rj(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function nj(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function oj(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let n=e[t];n.keyword||(n.keyword=t),this.addKeyword(n)}}function ij(){let e={...this.opts};for(let t of QT)delete e[t];return e}var aj={log(){},warn(){},error(){}};function sj(e){if(e===!1)return aj;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var cj=/^[a-z_$][a-z0-9_$:-]*$/i;function lj(e,t){let{RULES:n}=this;if((0,mg.eachItem)(e,o=>{if(n.keywords[o])throw new Error(`Keyword ${o} is already defined`);if(!cj.test(o))throw new Error(`Keyword ${o} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function fg(e,t,n){var o;let r=t?.post;if(n&&r)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:i}=this,a=r?i.post:i.rules.find(({type:l})=>l===n);if(a||(a={type:n,rules:[]},i.rules.push(a)),i.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,cc.getJSONTypes)(t.type),schemaType:(0,cc.getJSONTypes)(t.schemaType)}};t.before?uj.call(this,a,s,t.before):a.rules.push(s),i.all[e]=s,(o=t.implements)===null||o===void 0||o.forEach(l=>this.addKeyword(l))}function uj(e,t,n){let o=e.rules.findIndex(r=>r.keyword===n);o>=0?e.rules.splice(o,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function dj(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=Rx(t)),e.validateSchema=this.compile(t,!0))}var pj={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function Rx(e){return{anyOf:[e,pj]}}});var Mx=z(gg=>{"use strict";Object.defineProperty(gg,"__esModule",{value:!0});var fj={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};gg.default=fj});var qx=z(Dr=>{"use strict";Object.defineProperty(Dr,"__esModule",{value:!0});Dr.callRef=Dr.getValidate=void 0;var mj=vi(),Lx=st(),Ke=L(),Fn=Mt(),Fx=oc(),lc=H(),gj={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:n,it:o}=e,{baseId:r,schemaEnv:i,validateName:a,opts:s,self:l}=o,{root:u}=i;if((n==="#"||n==="#/")&&r===u.baseId)return p();let d=Fx.resolveRef.call(l,u,r,n);if(d===void 0)throw new mj.default(o.opts.uriResolver,r,n);if(d instanceof Fx.SchemaEnv)return m(d);return f(d);function p(){if(i===u)return uc(e,a,i,i.$async);let g=t.scopeValue("root",{ref:u});return uc(e,(0,Ke._)`${g}.validate`,u,u.$async)}function m(g){let h=Zx(e,g);uc(e,h,g,g.$async)}function f(g){let h=t.scopeValue("schema",s.code.source===!0?{ref:g,code:(0,Ke.stringify)(g)}:{ref:g}),b=t.name("valid"),$=e.subschema({schema:g,dataTypes:[],schemaPath:Ke.nil,topSchemaRef:h,errSchemaPath:n},b);e.mergeEvaluated($),e.ok(b)}}};function Zx(e,t){let{gen:n}=e;return t.validate?n.scopeValue("validate",{ref:t.validate}):(0,Ke._)`${n.scopeValue("wrapper",{ref:t})}.validate`}Dr.getValidate=Zx;function uc(e,t,n,o){let{gen:r,it:i}=e,{allErrors:a,schemaEnv:s,opts:l}=i,u=l.passContext?Fn.default.this:Ke.nil;o?d():p();function d(){if(!s.$async)throw new Error("async schema referenced by sync schema");let g=r.let("valid");r.try(()=>{r.code((0,Ke._)`await ${(0,Lx.callValidateCode)(e,t,u)}`),f(t),a||r.assign(g,!0)},h=>{r.if((0,Ke._)`!(${h} instanceof ${i.ValidationError})`,()=>r.throw(h)),m(h),a||r.assign(g,!1)}),e.ok(g)}function p(){e.result((0,Lx.callValidateCode)(e,t,u),()=>f(t),()=>m(t))}function m(g){let h=(0,Ke._)`${g}.errors`;r.assign(Fn.default.vErrors,(0,Ke._)`${Fn.default.vErrors} === null ? ${h} : ${Fn.default.vErrors}.concat(${h})`),r.assign(Fn.default.errors,(0,Ke._)`${Fn.default.vErrors}.length`)}function f(g){var h;if(!i.opts.unevaluated)return;let b=(h=n?.validate)===null||h===void 0?void 0:h.evaluated;if(i.props!==!0)if(b&&!b.dynamicProps)b.props!==void 0&&(i.props=lc.mergeEvaluated.props(r,b.props,i.props));else{let $=r.var("props",(0,Ke._)`${g}.evaluated.props`);i.props=lc.mergeEvaluated.props(r,$,i.props,Ke.Name)}if(i.items!==!0)if(b&&!b.dynamicItems)b.items!==void 0&&(i.items=lc.mergeEvaluated.items(r,b.items,i.items));else{let $=r.var("items",(0,Ke._)`${g}.evaluated.items`);i.items=lc.mergeEvaluated.items(r,$,i.items,Ke.Name)}}}Dr.callRef=uc;Dr.default=gj});var Bx=z(hg=>{"use strict";Object.defineProperty(hg,"__esModule",{value:!0});var hj=Mx(),vj=qx(),yj=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",hj.default,vj.default];hg.default=yj});var Vx=z(vg=>{"use strict";Object.defineProperty(vg,"__esModule",{value:!0});var dc=L(),hr=dc.operators,pc={maximum:{okStr:"<=",ok:hr.LTE,fail:hr.GT},minimum:{okStr:">=",ok:hr.GTE,fail:hr.LT},exclusiveMaximum:{okStr:"<",ok:hr.LT,fail:hr.GTE},exclusiveMinimum:{okStr:">",ok:hr.GT,fail:hr.LTE}},bj={message:({keyword:e,schemaCode:t})=>(0,dc.str)`must be ${pc[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,dc._)`{comparison: ${pc[e].okStr}, limit: ${t}}`},_j={keyword:Object.keys(pc),type:"number",schemaType:"number",$data:!0,error:bj,code(e){let{keyword:t,data:n,schemaCode:o}=e;e.fail$data((0,dc._)`${n} ${pc[t].fail} ${o} || isNaN(${n})`)}};vg.default=_j});var Jx=z(yg=>{"use strict";Object.defineProperty(yg,"__esModule",{value:!0});var $i=L(),xj={message:({schemaCode:e})=>(0,$i.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,$i._)`{multipleOf: ${e}}`},$j={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:xj,code(e){let{gen:t,data:n,schemaCode:o,it:r}=e,i=r.opts.multipleOfPrecision,a=t.let("res"),s=i?(0,$i._)`Math.abs(Math.round(${a}) - ${a}) > 1e-${i}`:(0,$i._)`${a} !== parseInt(${a})`;e.fail$data((0,$i._)`(${o} === 0 || (${a} = ${n}/${o}, ${s}))`)}};yg.default=$j});var Gx=z(bg=>{"use strict";Object.defineProperty(bg,"__esModule",{value:!0});function Hx(e){let t=e.length,n=0,o=0,r;for(;o<t;)n++,r=e.charCodeAt(o++),r>=55296&&r<=56319&&o<t&&(r=e.charCodeAt(o),(r&64512)===56320&&o++);return n}bg.default=Hx;Hx.code='require("ajv/dist/runtime/ucs2length").default'});var Wx=z(_g=>{"use strict";Object.defineProperty(_g,"__esModule",{value:!0});var Rr=L(),kj=H(),Sj=Gx(),wj={message({keyword:e,schemaCode:t}){let n=e==="maxLength"?"more":"fewer";return(0,Rr.str)`must NOT have ${n} than ${t} characters`},params:({schemaCode:e})=>(0,Rr._)`{limit: ${e}}`},zj={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:wj,code(e){let{keyword:t,data:n,schemaCode:o,it:r}=e,i=t==="maxLength"?Rr.operators.GT:Rr.operators.LT,a=r.opts.unicode===!1?(0,Rr._)`${n}.length`:(0,Rr._)`${(0,kj.useFunc)(e.gen,Sj.default)}(${n})`;e.fail$data((0,Rr._)`${a} ${i} ${o}`)}};_g.default=zj});var Kx=z(xg=>{"use strict";Object.defineProperty(xg,"__esModule",{value:!0});var Ij=st(),Pj=H(),Zn=L(),Ej={message:({schemaCode:e})=>(0,Zn.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,Zn._)`{pattern: ${e}}`},Aj={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:Ej,code(e){let{gen:t,data:n,$data:o,schema:r,schemaCode:i,it:a}=e,s=a.opts.unicodeRegExp?"u":"";if(o){let{regExp:l}=a.opts.code,u=l.code==="new RegExp"?(0,Zn._)`new RegExp`:(0,Pj.useFunc)(t,l),d=t.let("valid");t.try(()=>t.assign(d,(0,Zn._)`${u}(${i}, ${s}).test(${n})`),()=>t.assign(d,!1)),e.fail$data((0,Zn._)`!${d}`)}else{let l=(0,Ij.usePattern)(e,r);e.fail$data((0,Zn._)`!${l}.test(${n})`)}}};xg.default=Aj});var Qx=z($g=>{"use strict";Object.defineProperty($g,"__esModule",{value:!0});var ki=L(),Tj={message({keyword:e,schemaCode:t}){let n=e==="maxProperties"?"more":"fewer";return(0,ki.str)`must NOT have ${n} than ${t} properties`},params:({schemaCode:e})=>(0,ki._)`{limit: ${e}}`},jj={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:Tj,code(e){let{keyword:t,data:n,schemaCode:o}=e,r=t==="maxProperties"?ki.operators.GT:ki.operators.LT;e.fail$data((0,ki._)`Object.keys(${n}).length ${r} ${o}`)}};$g.default=jj});var Yx=z(kg=>{"use strict";Object.defineProperty(kg,"__esModule",{value:!0});var Si=st(),wi=L(),Oj=H(),Cj={message:({params:{missingProperty:e}})=>(0,wi.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,wi._)`{missingProperty: ${e}}`},Nj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Cj,code(e){let{gen:t,schema:n,schemaCode:o,data:r,$data:i,it:a}=e,{opts:s}=a;if(!i&&n.length===0)return;let l=n.length>=s.loopRequired;if(a.allErrors?u():d(),s.strictRequired){let f=e.parentSchema.properties,{definedProperties:g}=e.it;for(let h of n)if(f?.[h]===void 0&&!g.has(h)){let b=a.schemaEnv.baseId+a.errSchemaPath,$=`required property "${h}" is not defined at "${b}" (strictRequired)`;(0,Oj.checkStrictMode)(a,$,a.opts.strictRequired)}}function u(){if(l||i)e.block$data(wi.nil,p);else for(let f of n)(0,Si.checkReportMissingProp)(e,f)}function d(){let f=t.let("missing");if(l||i){let g=t.let("valid",!0);e.block$data(g,()=>m(f,g)),e.ok(g)}else t.if((0,Si.checkMissingProp)(e,n,f)),(0,Si.reportMissingProp)(e,f),t.else()}function p(){t.forOf("prop",o,f=>{e.setParams({missingProperty:f}),t.if((0,Si.noPropertyInData)(t,r,f,s.ownProperties),()=>e.error())})}function m(f,g){e.setParams({missingProperty:f}),t.forOf(f,o,()=>{t.assign(g,(0,Si.propertyInData)(t,r,f,s.ownProperties)),t.if((0,wi.not)(g),()=>{e.error(),t.break()})},wi.nil)}}};kg.default=Nj});var Xx=z(Sg=>{"use strict";Object.defineProperty(Sg,"__esModule",{value:!0});var zi=L(),Dj={message({keyword:e,schemaCode:t}){let n=e==="maxItems"?"more":"fewer";return(0,zi.str)`must NOT have ${n} than ${t} items`},params:({schemaCode:e})=>(0,zi._)`{limit: ${e}}`},Rj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:Dj,code(e){let{keyword:t,data:n,schemaCode:o}=e,r=t==="maxItems"?zi.operators.GT:zi.operators.LT;e.fail$data((0,zi._)`${n}.length ${r} ${o}`)}};Sg.default=Rj});var fc=z(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});var e$=Gm();e$.code='require("ajv/dist/runtime/equal").default';wg.default=e$});var t$=z(Ig=>{"use strict";Object.defineProperty(Ig,"__esModule",{value:!0});var zg=pi(),Oe=L(),Uj=H(),Mj=fc(),Lj={message:({params:{i:e,j:t}})=>(0,Oe.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,Oe._)`{i: ${e}, j: ${t}}`},Fj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Lj,code(e){let{gen:t,data:n,$data:o,schema:r,parentSchema:i,schemaCode:a,it:s}=e;if(!o&&!r)return;let l=t.let("valid"),u=i.items?(0,zg.getSchemaTypes)(i.items):[];e.block$data(l,d,(0,Oe._)`${a} === false`),e.ok(l);function d(){let g=t.let("i",(0,Oe._)`${n}.length`),h=t.let("j");e.setParams({i:g,j:h}),t.assign(l,!0),t.if((0,Oe._)`${g} > 1`,()=>(p()?m:f)(g,h))}function p(){return u.length>0&&!u.some(g=>g==="object"||g==="array")}function m(g,h){let b=t.name("item"),$=(0,zg.checkDataTypes)(u,b,s.opts.strictNumbers,zg.DataType.Wrong),P=t.const("indices",(0,Oe._)`{}`);t.for((0,Oe._)`;${g}--;`,()=>{t.let(b,(0,Oe._)`${n}[${g}]`),t.if($,(0,Oe._)`continue`),u.length>1&&t.if((0,Oe._)`typeof ${b} == "string"`,(0,Oe._)`${b} += "_"`),t.if((0,Oe._)`typeof ${P}[${b}] == "number"`,()=>{t.assign(h,(0,Oe._)`${P}[${b}]`),e.error(),t.assign(l,!1).break()}).code((0,Oe._)`${P}[${b}] = ${g}`)})}function f(g,h){let b=(0,Uj.useFunc)(t,Mj.default),$=t.name("outer");t.label($).for((0,Oe._)`;${g}--;`,()=>t.for((0,Oe._)`${h} = ${g}; ${h}--;`,()=>t.if((0,Oe._)`${b}(${n}[${g}], ${n}[${h}])`,()=>{e.error(),t.assign(l,!1).break($)})))}}};Ig.default=Fj});var r$=z(Eg=>{"use strict";Object.defineProperty(Eg,"__esModule",{value:!0});var Pg=L(),Zj=H(),qj=fc(),Bj={message:"must be equal to constant",params:({schemaCode:e})=>(0,Pg._)`{allowedValue: ${e}}`},Vj={keyword:"const",$data:!0,error:Bj,code(e){let{gen:t,data:n,$data:o,schemaCode:r,schema:i}=e;o||i&&typeof i=="object"?e.fail$data((0,Pg._)`!${(0,Zj.useFunc)(t,qj.default)}(${n}, ${r})`):e.fail((0,Pg._)`${i} !== ${n}`)}};Eg.default=Vj});var n$=z(Ag=>{"use strict";Object.defineProperty(Ag,"__esModule",{value:!0});var Ii=L(),Jj=H(),Hj=fc(),Gj={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,Ii._)`{allowedValues: ${e}}`},Wj={keyword:"enum",schemaType:"array",$data:!0,error:Gj,code(e){let{gen:t,data:n,$data:o,schema:r,schemaCode:i,it:a}=e;if(!o&&r.length===0)throw new Error("enum must have non-empty array");let s=r.length>=a.opts.loopEnum,l,u=()=>l??(l=(0,Jj.useFunc)(t,Hj.default)),d;if(s||o)d=t.let("valid"),e.block$data(d,p);else{if(!Array.isArray(r))throw new Error("ajv implementation error");let f=t.const("vSchema",i);d=(0,Ii.or)(...r.map((g,h)=>m(f,h)))}e.pass(d);function p(){t.assign(d,!1),t.forOf("v",i,f=>t.if((0,Ii._)`${u()}(${n}, ${f})`,()=>t.assign(d,!0).break()))}function m(f,g){let h=r[g];return typeof h=="object"&&h!==null?(0,Ii._)`${u()}(${n}, ${f}[${g}])`:(0,Ii._)`${n} === ${h}`}}};Ag.default=Wj});var o$=z(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0});var Kj=Vx(),Qj=Jx(),Yj=Wx(),Xj=Kx(),eO=Qx(),tO=Yx(),rO=Xx(),nO=t$(),oO=r$(),iO=n$(),aO=[Kj.default,Qj.default,Yj.default,Xj.default,eO.default,tO.default,rO.default,nO.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},oO.default,iO.default];Tg.default=aO});var Og=z(Pi=>{"use strict";Object.defineProperty(Pi,"__esModule",{value:!0});Pi.validateAdditionalItems=void 0;var Ur=L(),jg=H(),sO={message:({params:{len:e}})=>(0,Ur.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,Ur._)`{limit: ${e}}`},cO={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:sO,code(e){let{parentSchema:t,it:n}=e,{items:o}=t;if(!Array.isArray(o)){(0,jg.checkStrictMode)(n,'"additionalItems" is ignored when "items" is not an array of schemas');return}i$(e,o)}};function i$(e,t){let{gen:n,schema:o,data:r,keyword:i,it:a}=e;a.items=!0;let s=n.const("len",(0,Ur._)`${r}.length`);if(o===!1)e.setParams({len:t.length}),e.pass((0,Ur._)`${s} <= ${t.length}`);else if(typeof o=="object"&&!(0,jg.alwaysValidSchema)(a,o)){let u=n.var("valid",(0,Ur._)`${s} <= ${t.length}`);n.if((0,Ur.not)(u),()=>l(u)),e.ok(u)}function l(u){n.forRange("i",t.length,s,d=>{e.subschema({keyword:i,dataProp:d,dataPropType:jg.Type.Num},u),a.allErrors||n.if((0,Ur.not)(u),()=>n.break())})}}Pi.validateAdditionalItems=i$;Pi.default=cO});var Cg=z(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.validateTuple=void 0;var a$=L(),mc=H(),lO=st(),uO={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:n}=e;if(Array.isArray(t))return s$(e,"additionalItems",t);n.items=!0,!(0,mc.alwaysValidSchema)(n,t)&&e.ok((0,lO.validateArray)(e))}};function s$(e,t,n=e.schema){let{gen:o,parentSchema:r,data:i,keyword:a,it:s}=e;d(r),s.opts.unevaluated&&n.length&&s.items!==!0&&(s.items=mc.mergeEvaluated.items(o,n.length,s.items));let l=o.name("valid"),u=o.const("len",(0,a$._)`${i}.length`);n.forEach((p,m)=>{(0,mc.alwaysValidSchema)(s,p)||(o.if((0,a$._)`${u} > ${m}`,()=>e.subschema({keyword:a,schemaProp:m,dataProp:m},l)),e.ok(l))});function d(p){let{opts:m,errSchemaPath:f}=s,g=n.length,h=g===p.minItems&&(g===p.maxItems||p[t]===!1);if(m.strictTuples&&!h){let b=`"${a}" is ${g}-tuple, but minItems or maxItems/${t} are not specified or different at path "${f}"`;(0,mc.checkStrictMode)(s,b,m.strictTuples)}}}Ei.validateTuple=s$;Ei.default=uO});var c$=z(Ng=>{"use strict";Object.defineProperty(Ng,"__esModule",{value:!0});var dO=Cg(),pO={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,dO.validateTuple)(e,"items")};Ng.default=pO});var u$=z(Dg=>{"use strict";Object.defineProperty(Dg,"__esModule",{value:!0});var l$=L(),fO=H(),mO=st(),gO=Og(),hO={message:({params:{len:e}})=>(0,l$.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,l$._)`{limit: ${e}}`},vO={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:hO,code(e){let{schema:t,parentSchema:n,it:o}=e,{prefixItems:r}=n;o.items=!0,!(0,fO.alwaysValidSchema)(o,t)&&(r?(0,gO.validateAdditionalItems)(e,r):e.ok((0,mO.validateArray)(e)))}};Dg.default=vO});var d$=z(Rg=>{"use strict";Object.defineProperty(Rg,"__esModule",{value:!0});var lt=L(),gc=H(),yO={message:({params:{min:e,max:t}})=>t===void 0?(0,lt.str)`must contain at least ${e} valid item(s)`:(0,lt.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,lt._)`{minContains: ${e}}`:(0,lt._)`{minContains: ${e}, maxContains: ${t}}`},bO={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:yO,code(e){let{gen:t,schema:n,parentSchema:o,data:r,it:i}=e,a,s,{minContains:l,maxContains:u}=o;i.opts.next?(a=l===void 0?1:l,s=u):a=1;let d=t.const("len",(0,lt._)`${r}.length`);if(e.setParams({min:a,max:s}),s===void 0&&a===0){(0,gc.checkStrictMode)(i,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(s!==void 0&&a>s){(0,gc.checkStrictMode)(i,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,gc.alwaysValidSchema)(i,n)){let h=(0,lt._)`${d} >= ${a}`;s!==void 0&&(h=(0,lt._)`${h} && ${d} <= ${s}`),e.pass(h);return}i.items=!0;let p=t.name("valid");s===void 0&&a===1?f(p,()=>t.if(p,()=>t.break())):a===0?(t.let(p,!0),s!==void 0&&t.if((0,lt._)`${r}.length > 0`,m)):(t.let(p,!1),m()),e.result(p,()=>e.reset());function m(){let h=t.name("_valid"),b=t.let("count",0);f(h,()=>t.if(h,()=>g(b)))}function f(h,b){t.forRange("i",0,d,$=>{e.subschema({keyword:"contains",dataProp:$,dataPropType:gc.Type.Num,compositeRule:!0},h),b()})}function g(h){t.code((0,lt._)`${h}++`),s===void 0?t.if((0,lt._)`${h} >= ${a}`,()=>t.assign(p,!0).break()):(t.if((0,lt._)`${h} > ${s}`,()=>t.assign(p,!1).break()),a===1?t.assign(p,!0):t.if((0,lt._)`${h} >= ${a}`,()=>t.assign(p,!0)))}}};Rg.default=bO});var m$=z(Pt=>{"use strict";Object.defineProperty(Pt,"__esModule",{value:!0});Pt.validateSchemaDeps=Pt.validatePropertyDeps=Pt.error=void 0;var Ug=L(),_O=H(),Ai=st();Pt.error={message:({params:{property:e,depsCount:t,deps:n}})=>{let o=t===1?"property":"properties";return(0,Ug.str)`must have ${o} ${n} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:n,missingProperty:o}})=>(0,Ug._)`{property: ${e},
7
7
  missingProperty: ${o},
8
8
  depsCount: ${t},
9
- deps: ${n}}`};var xO={keyword:"dependencies",type:"object",schemaType:"object",error:Pt.error,code(e){let[t,n]=$O(e);p$(e,t),f$(e,n)}};function $O({schema:e}){let t={},n={};for(let o in e){if(o==="__proto__")continue;let r=Array.isArray(e[o])?t:n;r[o]=e[o]}return[t,n]}function p$(e,t=e.schema){let{gen:n,data:o,it:r}=e;if(Object.keys(t).length===0)return;let i=n.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let l=(0,Ai.propertyInData)(n,o,a,r.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),r.allErrors?n.if(l,()=>{for(let u of s)(0,Ai.checkReportMissingProp)(e,u)}):(n.if((0,Ug._)`${l} && (${(0,Ai.checkMissingProp)(e,s,i)})`),(0,Ai.reportMissingProp)(e,i),n.else())}}Pt.validatePropertyDeps=p$;function f$(e,t=e.schema){let{gen:n,data:o,keyword:r,it:i}=e,a=n.name("valid");for(let s in t)(0,_O.alwaysValidSchema)(i,t[s])||(n.if((0,Ai.propertyInData)(n,o,s,i.opts.ownProperties),()=>{let l=e.subschema({keyword:r,schemaProp:s},a);e.mergeValidEvaluated(l,a)},()=>n.var(a,!0)),e.ok(a))}Pt.validateSchemaDeps=f$;Pt.default=xO});var h$=z(Mg=>{"use strict";Object.defineProperty(Mg,"__esModule",{value:!0});var g$=L(),kO=H(),SO={message:"property name must be valid",params:({params:e})=>(0,g$._)`{propertyName: ${e.propertyName}}`},wO={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:SO,code(e){let{gen:t,schema:n,data:o,it:r}=e;if((0,kO.alwaysValidSchema)(r,n))return;let i=t.name("valid");t.forIn("key",o,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,g$.not)(i),()=>{e.error(!0),r.allErrors||t.break()})}),e.ok(i)}};Mg.default=wO});var Fg=z(Lg=>{"use strict";Object.defineProperty(Lg,"__esModule",{value:!0});var hc=st(),yt=L(),zO=Mt(),vc=H(),IO={message:"must NOT have additional properties",params:({params:e})=>(0,yt._)`{additionalProperty: ${e.additionalProperty}}`},PO={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:IO,code(e){let{gen:t,schema:n,parentSchema:o,data:r,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:l}=a;if(a.props=!0,l.removeAdditional!=="all"&&(0,vc.alwaysValidSchema)(a,n))return;let u=(0,hc.allSchemaProperties)(o.properties),d=(0,hc.allSchemaProperties)(o.patternProperties);p(),e.ok((0,yt._)`${i} === ${zO.default.errors}`);function p(){t.forIn("key",r,b=>{!u.length&&!d.length?g(b):t.if(m(b),()=>g(b))})}function m(b){let $;if(u.length>8){let P=(0,vc.schemaRefOrVal)(a,o.properties,"properties");$=(0,hc.isOwnProperty)(t,P,b)}else u.length?$=(0,yt.or)(...u.map(P=>(0,yt._)`${b} === ${P}`)):$=yt.nil;return d.length&&($=(0,yt.or)($,...d.map(P=>(0,yt._)`${(0,hc.usePattern)(e,P)}.test(${b})`))),(0,yt.not)($)}function f(b){t.code((0,yt._)`delete ${r}[${b}]`)}function g(b){if(l.removeAdditional==="all"||l.removeAdditional&&n===!1){f(b);return}if(n===!1){e.setParams({additionalProperty:b}),e.error(),s||t.break();return}if(typeof n=="object"&&!(0,vc.alwaysValidSchema)(a,n)){let $=t.name("valid");l.removeAdditional==="failing"?(h(b,$,!1),t.if((0,yt.not)($),()=>{e.reset(),f(b)})):(h(b,$),s||t.if((0,yt.not)($),()=>t.break()))}}function h(b,$,P){let I={keyword:"additionalProperties",dataProp:b,dataPropType:vc.Type.Str};P===!1&&Object.assign(I,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(I,$)}}};Lg.default=PO});var b$=z(qg=>{"use strict";Object.defineProperty(qg,"__esModule",{value:!0});var EO=hi(),v$=st(),Zg=H(),y$=Fg(),AO={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,parentSchema:o,data:r,it:i}=e;i.opts.removeAdditional==="all"&&o.additionalProperties===void 0&&y$.default.code(new EO.KeywordCxt(i,y$.default,"additionalProperties"));let a=(0,v$.allSchemaProperties)(n);for(let p of a)i.definedProperties.add(p);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=Zg.mergeEvaluated.props(t,(0,Zg.toHash)(a),i.props));let s=a.filter(p=>!(0,Zg.alwaysValidSchema)(i,n[p]));if(s.length===0)return;let l=t.name("valid");for(let p of s)u(p)?d(p):(t.if((0,v$.propertyInData)(t,r,p,i.opts.ownProperties)),d(p),i.allErrors||t.else().var(l,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(l);function u(p){return i.opts.useDefaults&&!i.compositeRule&&n[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},l)}}};qg.default=AO});var k$=z(Bg=>{"use strict";Object.defineProperty(Bg,"__esModule",{value:!0});var _$=st(),yc=L(),x$=H(),$$=H(),TO={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,data:o,parentSchema:r,it:i}=e,{opts:a}=i,s=(0,_$.allSchemaProperties)(n),l=s.filter(h=>(0,x$.alwaysValidSchema)(i,n[h]));if(s.length===0||l.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let u=a.strictSchema&&!a.allowMatchingProperties&&r.properties,d=t.name("valid");i.props!==!0&&!(i.props instanceof yc.Name)&&(i.props=(0,$$.evaluatedPropsToName)(t,i.props));let{props:p}=i;m();function m(){for(let h of s)u&&f(h),i.allErrors?g(h):(t.var(d,!0),g(h),t.if(d))}function f(h){for(let b in u)new RegExp(h).test(b)&&(0,x$.checkStrictMode)(i,`property ${b} matches pattern ${h} (use allowMatchingProperties)`)}function g(h){t.forIn("key",o,b=>{t.if((0,yc._)`${(0,_$.usePattern)(e,h)}.test(${b})`,()=>{let $=l.includes(h);$||e.subschema({keyword:"patternProperties",schemaProp:h,dataProp:b,dataPropType:$$.Type.Str},d),i.opts.unevaluated&&p!==!0?t.assign((0,yc._)`${p}[${b}]`,!0):!$&&!i.allErrors&&t.if((0,yc.not)(d),()=>t.break())})})}}};Bg.default=TO});var S$=z(Vg=>{"use strict";Object.defineProperty(Vg,"__esModule",{value:!0});var jO=H(),OO={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:o}=e;if((0,jO.alwaysValidSchema)(o,n)){e.fail();return}let r=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},r),e.failResult(r,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Vg.default=OO});var w$=z(Jg=>{"use strict";Object.defineProperty(Jg,"__esModule",{value:!0});var CO=st(),NO={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:CO.validateUnion,error:{message:"must match a schema in anyOf"}};Jg.default=NO});var z$=z(Hg=>{"use strict";Object.defineProperty(Hg,"__esModule",{value:!0});var bc=L(),DO=H(),RO={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,bc._)`{passingSchemas: ${e.passing}}`},UO={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:RO,code(e){let{gen:t,schema:n,parentSchema:o,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(r.opts.discriminator&&o.discriminator)return;let i=n,a=t.let("valid",!1),s=t.let("passing",null),l=t.name("_valid");e.setParams({passing:s}),t.block(u),e.result(a,()=>e.reset(),()=>e.error(!0));function u(){i.forEach((d,p)=>{let m;(0,DO.alwaysValidSchema)(r,d)?t.var(l,!0):m=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},l),p>0&&t.if((0,bc._)`${l} && ${a}`).assign(a,!1).assign(s,(0,bc._)`[${s}, ${p}]`).else(),t.if(l,()=>{t.assign(a,!0),t.assign(s,p),m&&e.mergeEvaluated(m,bc.Name)})})}}};Hg.default=UO});var I$=z(Gg=>{"use strict";Object.defineProperty(Gg,"__esModule",{value:!0});var MO=H(),LO={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:n,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");let r=t.name("valid");n.forEach((i,a)=>{if((0,MO.alwaysValidSchema)(o,i))return;let s=e.subschema({keyword:"allOf",schemaProp:a},r);e.ok(r),e.mergeEvaluated(s)})}};Gg.default=LO});var A$=z(Wg=>{"use strict";Object.defineProperty(Wg,"__esModule",{value:!0});var _c=L(),E$=H(),FO={message:({params:e})=>(0,_c.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,_c._)`{failingKeyword: ${e.ifClause}}`},ZO={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:FO,code(e){let{gen:t,parentSchema:n,it:o}=e;n.then===void 0&&n.else===void 0&&(0,E$.checkStrictMode)(o,'"if" without "then" and "else" is ignored');let r=P$(o,"then"),i=P$(o,"else");if(!r&&!i)return;let a=t.let("valid",!0),s=t.name("_valid");if(l(),e.reset(),r&&i){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,u("then",d),u("else",d))}else r?t.if(s,u("then")):t.if((0,_c.not)(s),u("else"));e.pass(a,()=>e.error(!0));function l(){let d=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(d)}function u(d,p){return()=>{let m=e.subschema({keyword:d},s);t.assign(a,s),e.mergeValidEvaluated(m,a),p?t.assign(p,(0,_c._)`${d}`):e.setParams({ifClause:d})}}}};function P$(e,t){let n=e.schema[t];return n!==void 0&&!(0,E$.alwaysValidSchema)(e,n)}Wg.default=ZO});var T$=z(Kg=>{"use strict";Object.defineProperty(Kg,"__esModule",{value:!0});var qO=H(),BO={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,qO.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Kg.default=BO});var j$=z(Qg=>{"use strict";Object.defineProperty(Qg,"__esModule",{value:!0});var VO=Og(),JO=c$(),HO=Cg(),GO=u$(),WO=d$(),KO=m$(),QO=h$(),YO=Fg(),XO=b$(),e1=k$(),t1=S$(),r1=w$(),n1=z$(),o1=I$(),i1=A$(),a1=T$();function s1(e=!1){let t=[t1.default,r1.default,n1.default,o1.default,i1.default,a1.default,QO.default,YO.default,KO.default,XO.default,e1.default];return e?t.push(JO.default,GO.default):t.push(VO.default,HO.default),t.push(WO.default),t}Qg.default=s1});var O$=z(Yg=>{"use strict";Object.defineProperty(Yg,"__esModule",{value:!0});var be=L(),c1={message:({schemaCode:e})=>(0,be.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,be._)`{format: ${e}}`},l1={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:c1,code(e,t){let{gen:n,data:o,$data:r,schema:i,schemaCode:a,it:s}=e,{opts:l,errSchemaPath:u,schemaEnv:d,self:p}=s;if(!l.validateFormats)return;r?m():f();function m(){let g=n.scopeValue("formats",{ref:p.formats,code:l.code.formats}),h=n.const("fDef",(0,be._)`${g}[${a}]`),b=n.let("fType"),$=n.let("format");n.if((0,be._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>n.assign(b,(0,be._)`${h}.type || "string"`).assign($,(0,be._)`${h}.validate`),()=>n.assign(b,(0,be._)`"string"`).assign($,h)),e.fail$data((0,be.or)(P(),I()));function P(){return l.strictSchema===!1?be.nil:(0,be._)`${a} && !${$}`}function I(){let j=d.$async?(0,be._)`(${h}.async ? await ${$}(${o}) : ${$}(${o}))`:(0,be._)`${$}(${o})`,E=(0,be._)`(typeof ${$} == "function" ? ${j} : ${$}.test(${o}))`;return(0,be._)`${$} && ${$} !== true && ${b} === ${t} && !${E}`}}function f(){let g=p.formats[i];if(!g){P();return}if(g===!0)return;let[h,b,$]=I(g);h===t&&e.pass(j());function P(){if(l.strictSchema===!1){p.logger.warn(E());return}throw new Error(E());function E(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function I(E){let _e=E instanceof RegExp?(0,be.regexpCode)(E):l.code.formats?(0,be._)`${l.code.formats}${(0,be.getProperty)(i)}`:void 0,xe=n.scopeValue("formats",{key:i,ref:E,code:_e});return typeof E=="object"&&!(E instanceof RegExp)?[E.type||"string",E.validate,(0,be._)`${xe}.validate`]:["string",E,xe]}function j(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!d.$async)throw new Error("async format in sync schema");return(0,be._)`await ${$}(${o})`}return typeof b=="function"?(0,be._)`${$}(${o})`:(0,be._)`${$}.test(${o})`}}}};Yg.default=l1});var C$=z(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});var u1=O$(),d1=[u1.default];Xg.default=d1});var N$=z(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.contentVocabulary=qn.metadataVocabulary=void 0;qn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];qn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var R$=z(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var p1=Bx(),f1=o$(),m1=j$(),g1=C$(),D$=N$(),h1=[p1.default,f1.default,(0,m1.default)(),g1.default,D$.metadataVocabulary,D$.contentVocabulary];eh.default=h1});var M$=z(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.DiscrError=void 0;var U$;(function(e){e.Tag="tag",e.Mapping="mapping"})(U$||(xc.DiscrError=U$={}))});var F$=z(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var Bn=L(),th=M$(),L$=oc(),v1=vi(),y1=H(),b1={message:({params:{discrError:e,tagName:t}})=>e===th.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,Bn._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},_1={keyword:"discriminator",type:"object",schemaType:"object",error:b1,code(e){let{gen:t,data:n,schema:o,parentSchema:r,it:i}=e,{oneOf:a}=r;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=o.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(o.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let l=t.let("valid",!1),u=t.const("tag",(0,Bn._)`${n}${(0,Bn.getProperty)(s)}`);t.if((0,Bn._)`typeof ${u} == "string"`,()=>d(),()=>e.error(!1,{discrError:th.DiscrError.Tag,tag:u,tagName:s})),e.ok(l);function d(){let f=m();t.if(!1);for(let g in f)t.elseIf((0,Bn._)`${u} === ${g}`),t.assign(l,p(f[g]));t.else(),e.error(!1,{discrError:th.DiscrError.Mapping,tag:u,tagName:s}),t.endIf()}function p(f){let g=t.name("valid"),h=e.subschema({keyword:"oneOf",schemaProp:f},g);return e.mergeEvaluated(h,Bn.Name),g}function m(){var f;let g={},h=$(r),b=!0;for(let j=0;j<a.length;j++){let E=a[j];if(E?.$ref&&!(0,y1.schemaHasRulesButRef)(E,i.self.RULES)){let xe=E.$ref;if(E=L$.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,xe),E instanceof L$.SchemaEnv&&(E=E.schema),E===void 0)throw new v1.default(i.opts.uriResolver,i.baseId,xe)}let _e=(f=E?.properties)===null||f===void 0?void 0:f[s];if(typeof _e!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);b=b&&(h||$(E)),P(_e,j)}if(!b)throw new Error(`discriminator: "${s}" must be required`);return g;function $({required:j}){return Array.isArray(j)&&j.includes(s)}function P(j,E){if(j.const)I(j.const,E);else if(j.enum)for(let _e of j.enum)I(_e,E);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function I(j,E){if(typeof j!="string"||j in g)throw new Error(`discriminator: "${s}" values must be unique strings`);g[j]=E}}}};rh.default=_1});var Z$=z((PZ,x1)=>{x1.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var oh=z((pe,nh)=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.MissingRefError=pe.ValidationError=pe.CodeGen=pe.Name=pe.nil=pe.stringify=pe.str=pe._=pe.KeywordCxt=pe.Ajv=void 0;var $1=Ux(),k1=R$(),S1=F$(),q$=Z$(),w1=["/properties"],$c="http://json-schema.org/draft-07/schema",Vn=class extends $1.default{_addVocabularies(){super._addVocabularies(),k1.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(S1.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(q$,w1):q$;this.addMetaSchema(t,$c,!1),this.refs["http://json-schema.org/schema"]=$c}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema($c)?$c:void 0)}};pe.Ajv=Vn;nh.exports=pe=Vn;nh.exports.Ajv=Vn;Object.defineProperty(pe,"__esModule",{value:!0});pe.default=Vn;var z1=hi();Object.defineProperty(pe,"KeywordCxt",{enumerable:!0,get:function(){return z1.KeywordCxt}});var Jn=L();Object.defineProperty(pe,"_",{enumerable:!0,get:function(){return Jn._}});Object.defineProperty(pe,"str",{enumerable:!0,get:function(){return Jn.str}});Object.defineProperty(pe,"stringify",{enumerable:!0,get:function(){return Jn.stringify}});Object.defineProperty(pe,"nil",{enumerable:!0,get:function(){return Jn.nil}});Object.defineProperty(pe,"Name",{enumerable:!0,get:function(){return Jn.Name}});Object.defineProperty(pe,"CodeGen",{enumerable:!0,get:function(){return Jn.CodeGen}});var I1=rc();Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return I1.default}});var P1=vi();Object.defineProperty(pe,"MissingRefError",{enumerable:!0,get:function(){return P1.default}})});var Q$=z(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.formatNames=At.fastFormats=At.fullFormats=void 0;function Et(e,t){return{validate:e,compare:t}}At.fullFormats={date:Et(H$,ch),time:Et(ah(!0),lh),"date-time":Et(B$(!0),W$),"iso-time":Et(ah(),G$),"iso-date-time":Et(B$(),K$),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:C1,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:F1,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:N1,int32:{type:"number",validate:U1},int64:{type:"number",validate:M1},float:{type:"number",validate:J$},double:{type:"number",validate:J$},password:!0,binary:!0};At.fastFormats={...At.fullFormats,date:Et(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,ch),time:Et(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,lh),"date-time":Et(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,W$),"iso-time":Et(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,G$),"iso-date-time":Et(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,K$),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};At.formatNames=Object.keys(At.fullFormats);function E1(e){return e%4===0&&(e%100!==0||e%400===0)}var A1=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,T1=[0,31,28,31,30,31,30,31,31,30,31,30,31];function H$(e){let t=A1.exec(e);if(!t)return!1;let n=+t[1],o=+t[2],r=+t[3];return o>=1&&o<=12&&r>=1&&r<=(o===2&&E1(n)?29:T1[o])}function ch(e,t){if(e&&t)return e>t?1:e<t?-1:0}var ih=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function ah(e){return function(n){let o=ih.exec(n);if(!o)return!1;let r=+o[1],i=+o[2],a=+o[3],s=o[4],l=o[5]==="-"?-1:1,u=+(o[6]||0),d=+(o[7]||0);if(u>23||d>59||e&&!s)return!1;if(r<=23&&i<=59&&a<60)return!0;let p=i-d*l,m=r-u*l-(p<0?1:0);return(m===23||m===-1)&&(p===59||p===-1)&&a<61}}function lh(e,t){if(!(e&&t))return;let n=new Date("2020-01-01T"+e).valueOf(),o=new Date("2020-01-01T"+t).valueOf();if(n&&o)return n-o}function G$(e,t){if(!(e&&t))return;let n=ih.exec(e),o=ih.exec(t);if(n&&o)return e=n[1]+n[2]+n[3],t=o[1]+o[2]+o[3],e>t?1:e<t?-1:0}var sh=/t|\s/i;function B$(e){let t=ah(e);return function(o){let r=o.split(sh);return r.length===2&&H$(r[0])&&t(r[1])}}function W$(e,t){if(!(e&&t))return;let n=new Date(e).valueOf(),o=new Date(t).valueOf();if(n&&o)return n-o}function K$(e,t){if(!(e&&t))return;let[n,o]=e.split(sh),[r,i]=t.split(sh),a=ch(n,r);if(a!==void 0)return a||lh(o,i)}var j1=/\/|:/,O1=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function C1(e){return j1.test(e)&&O1.test(e)}var V$=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function N1(e){return V$.lastIndex=0,V$.test(e)}var D1=-(2**31),R1=2**31-1;function U1(e){return Number.isInteger(e)&&e<=R1&&e>=D1}function M1(e){return Number.isInteger(e)}function J$(){return!0}var L1=/[^\\]\\Z/;function F1(e){if(L1.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var Y$=z(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.formatLimitDefinition=void 0;var Z1=oh(),bt=L(),vr=bt.operators,kc={formatMaximum:{okStr:"<=",ok:vr.LTE,fail:vr.GT},formatMinimum:{okStr:">=",ok:vr.GTE,fail:vr.LT},formatExclusiveMaximum:{okStr:"<",ok:vr.LT,fail:vr.GTE},formatExclusiveMinimum:{okStr:">",ok:vr.GT,fail:vr.LTE}},q1={message:({keyword:e,schemaCode:t})=>(0,bt.str)`should be ${kc[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,bt._)`{comparison: ${kc[e].okStr}, limit: ${t}}`};Hn.formatLimitDefinition={keyword:Object.keys(kc),type:"string",schemaType:"string",$data:!0,error:q1,code(e){let{gen:t,data:n,schemaCode:o,keyword:r,it:i}=e,{opts:a,self:s}=i;if(!a.validateFormats)return;let l=new Z1.KeywordCxt(i,s.RULES.all.format.definition,"format");l.$data?u():d();function u(){let m=t.scopeValue("formats",{ref:s.formats,code:a.code.formats}),f=t.const("fmt",(0,bt._)`${m}[${l.schemaCode}]`);e.fail$data((0,bt.or)((0,bt._)`typeof ${f} != "object"`,(0,bt._)`${f} instanceof RegExp`,(0,bt._)`typeof ${f}.compare != "function"`,p(f)))}function d(){let m=l.schema,f=s.formats[m];if(!f||f===!0)return;if(typeof f!="object"||f instanceof RegExp||typeof f.compare!="function")throw new Error(`"${r}": format "${m}" does not define "compare" function`);let g=t.scopeValue("formats",{key:m,ref:f,code:a.code.formats?(0,bt._)`${a.code.formats}${(0,bt.getProperty)(m)}`:void 0});e.fail$data(p(g))}function p(m){return(0,bt._)`${m}.compare(${n}, ${o}) ${kc[r].fail} 0`}},dependencies:["format"]};var B1=e=>(e.addKeyword(Hn.formatLimitDefinition),e);Hn.default=B1});var rk=z((Ti,tk)=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});var Gn=Q$(),V1=Y$(),uh=L(),X$=new uh.Name("fullFormats"),J1=new uh.Name("fastFormats"),dh=(e,t={keywords:!0})=>{if(Array.isArray(t))return ek(e,t,Gn.fullFormats,X$),e;let[n,o]=t.mode==="fast"?[Gn.fastFormats,J1]:[Gn.fullFormats,X$],r=t.formats||Gn.formatNames;return ek(e,r,n,o),t.keywords&&(0,V1.default)(e),e};dh.get=(e,t="full")=>{let o=(t==="fast"?Gn.fastFormats:Gn.fullFormats)[e];if(!o)throw new Error(`Unknown format "${e}"`);return o};function ek(e,t,n,o){var r,i;(r=(i=e.opts.code).formats)!==null&&r!==void 0||(i.formats=(0,uh._)`require("ajv-formats/dist/formats").${o}`);for(let a of t)e.addFormat(a,n[a])}tk.exports=Ti=dh;Object.defineProperty(Ti,"__esModule",{value:!0});Ti.default=dh});var Jt=z((b5,Zk)=>{"use strict";var Lk=["nodebuffer","arraybuffer","fragments"],Fk=typeof Blob<"u";Fk&&Lk.push("blob");Zk.exports={BINARY_TYPES:Lk,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:Fk,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var Ui=z((_5,Dc)=>{"use strict";var{EMPTY_BUFFER:yN}=Jt(),kh=Buffer[Symbol.species];function bN(e,t){if(e.length===0)return yN;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),o=0;for(let r=0;r<e.length;r++){let i=e[r];n.set(i,o),o+=i.length}return o<t?new kh(n.buffer,n.byteOffset,o):n}function qk(e,t,n,o,r){for(let i=0;i<r;i++)n[o+i]=e[i]^t[i&3]}function Bk(e,t){for(let n=0;n<e.length;n++)e[n]^=t[n&3]}function _N(e){return e.length===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.length)}function Sh(e){if(Sh.readOnly=!0,Buffer.isBuffer(e))return e;let t;return e instanceof ArrayBuffer?t=new kh(e):ArrayBuffer.isView(e)?t=new kh(e.buffer,e.byteOffset,e.byteLength):(t=Buffer.from(e),Sh.readOnly=!1),t}Dc.exports={concat:bN,mask:qk,toArrayBuffer:_N,toBuffer:Sh,unmask:Bk};if(!process.env.WS_NO_BUFFER_UTIL)try{let e=ge("bufferutil");Dc.exports.mask=function(t,n,o,r,i){i<48?qk(t,n,o,r,i):e.mask(t,n,o,r,i)},Dc.exports.unmask=function(t,n){t.length<32?Bk(t,n):e.unmask(t,n)}}catch{}});var Hk=z((x5,Jk)=>{"use strict";var Vk=Symbol("kDone"),wh=Symbol("kRun"),zh=class{constructor(t){this[Vk]=()=>{this.pending--,this[wh]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[wh]()}[wh](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[Vk])}}};Jk.exports=zh});var ro=z(($5,Qk)=>{"use strict";var Mi=ge("zlib"),Gk=Ui(),xN=Hk(),{kStatusCode:Wk}=Jt(),$N=Buffer[Symbol.species],kN=Buffer.from([0,0,255,255]),Uc=Symbol("permessage-deflate"),Ht=Symbol("total-length"),eo=Symbol("callback"),yr=Symbol("buffers"),to=Symbol("error"),Rc,Ih=class{constructor(t){if(this._options=t||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!Rc){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;Rc=new xN(n)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[eo];this._deflate.close(),this._deflate=null,t&&t(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let n=this._options,o=t.find(r=>!(n.serverNoContextTakeover===!1&&r.server_no_context_takeover||r.server_max_window_bits&&(n.serverMaxWindowBits===!1||typeof n.serverMaxWindowBits=="number"&&n.serverMaxWindowBits>r.server_max_window_bits)||typeof n.clientMaxWindowBits=="number"&&!r.client_max_window_bits));if(!o)throw new Error("None of the extension offers can be accepted");return n.serverNoContextTakeover&&(o.server_no_context_takeover=!0),n.clientNoContextTakeover&&(o.client_no_context_takeover=!0),typeof n.serverMaxWindowBits=="number"&&(o.server_max_window_bits=n.serverMaxWindowBits),typeof n.clientMaxWindowBits=="number"?o.client_max_window_bits=n.clientMaxWindowBits:(o.client_max_window_bits===!0||n.clientMaxWindowBits===!1)&&delete o.client_max_window_bits,o}acceptAsClient(t){let n=t[0];if(this._options.clientNoContextTakeover===!1&&n.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!n.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(n.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&n.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return n}normalizeParams(t){return t.forEach(n=>{Object.keys(n).forEach(o=>{let r=n[o];if(r.length>1)throw new Error(`Parameter "${o}" must have only a single value`);if(r=r[0],o==="client_max_window_bits"){if(r!==!0){let i=+r;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${o}": ${r}`);r=i}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${o}": ${r}`)}else if(o==="server_max_window_bits"){let i=+r;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${o}": ${r}`);r=i}else if(o==="client_no_context_takeover"||o==="server_no_context_takeover"){if(r!==!0)throw new TypeError(`Invalid value for parameter "${o}": ${r}`)}else throw new Error(`Unknown parameter "${o}"`);n[o]=r})}),t}decompress(t,n,o){Rc.add(r=>{this._decompress(t,n,(i,a)=>{r(),o(i,a)})})}compress(t,n,o){Rc.add(r=>{this._compress(t,n,(i,a)=>{r(),o(i,a)})})}_decompress(t,n,o){let r=this._isServer?"client":"server";if(!this._inflate){let i=`${r}_max_window_bits`,a=typeof this.params[i]!="number"?Mi.Z_DEFAULT_WINDOWBITS:this.params[i];this._inflate=Mi.createInflateRaw({...this._options.zlibInflateOptions,windowBits:a}),this._inflate[Uc]=this,this._inflate[Ht]=0,this._inflate[yr]=[],this._inflate.on("error",wN),this._inflate.on("data",Kk)}this._inflate[eo]=o,this._inflate.write(t),n&&this._inflate.write(kN),this._inflate.flush(()=>{let i=this._inflate[to];if(i){this._inflate.close(),this._inflate=null,o(i);return}let a=Gk.concat(this._inflate[yr],this._inflate[Ht]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Ht]=0,this._inflate[yr]=[],n&&this.params[`${r}_no_context_takeover`]&&this._inflate.reset()),o(null,a)})}_compress(t,n,o){let r=this._isServer?"server":"client";if(!this._deflate){let i=`${r}_max_window_bits`,a=typeof this.params[i]!="number"?Mi.Z_DEFAULT_WINDOWBITS:this.params[i];this._deflate=Mi.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:a}),this._deflate[Ht]=0,this._deflate[yr]=[],this._deflate.on("data",SN)}this._deflate[eo]=o,this._deflate.write(t),this._deflate.flush(Mi.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let i=Gk.concat(this._deflate[yr],this._deflate[Ht]);n&&(i=new $N(i.buffer,i.byteOffset,i.length-4)),this._deflate[eo]=null,this._deflate[Ht]=0,this._deflate[yr]=[],n&&this.params[`${r}_no_context_takeover`]&&this._deflate.reset(),o(null,i)})}};Qk.exports=Ih;function SN(e){this[yr].push(e),this[Ht]+=e.length}function Kk(e){if(this[Ht]+=e.length,this[Uc]._maxPayload<1||this[Ht]<=this[Uc]._maxPayload){this[yr].push(e);return}this[to]=new RangeError("Max payload size exceeded"),this[to].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[to][Wk]=1009,this.removeListener("data",Kk),this.reset()}function wN(e){if(this[Uc]._inflate=null,this[to]){this[eo](this[to]);return}e[Wk]=1007,this[eo](e)}});var no=z((k5,Mc)=>{"use strict";var{isUtf8:Yk}=ge("buffer"),{hasBlob:zN}=Jt(),IN=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function PN(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function Ph(e){let t=e.length,n=0;for(;n<t;)if((e[n]&128)===0)n++;else if((e[n]&224)===192){if(n+1===t||(e[n+1]&192)!==128||(e[n]&254)===192)return!1;n+=2}else if((e[n]&240)===224){if(n+2>=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||e[n]===224&&(e[n+1]&224)===128||e[n]===237&&(e[n+1]&224)===160)return!1;n+=3}else if((e[n]&248)===240){if(n+3>=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||(e[n+3]&192)!==128||e[n]===240&&(e[n+1]&240)===128||e[n]===244&&e[n+1]>143||e[n]>244)return!1;n+=4}else return!1;return!0}function EN(e){return zN&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}Mc.exports={isBlob:EN,isValidStatusCode:PN,isValidUTF8:Ph,tokenChars:IN};if(Yk)Mc.exports.isValidUTF8=function(e){return e.length<24?Ph(e):Yk(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=ge("utf-8-validate");Mc.exports.isValidUTF8=function(t){return t.length<32?Ph(t):e(t)}}catch{}});var Oh=z((S5,iS)=>{"use strict";var{Writable:AN}=ge("stream"),Xk=ro(),{BINARY_TYPES:TN,EMPTY_BUFFER:eS,kStatusCode:jN,kWebSocket:ON}=Jt(),{concat:Eh,toArrayBuffer:CN,unmask:NN}=Ui(),{isValidStatusCode:DN,isValidUTF8:tS}=no(),Lc=Buffer[Symbol.species],ut=0,rS=1,nS=2,oS=3,Ah=4,Th=5,Fc=6,jh=class extends AN{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||TN[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxBufferedChunks=t.maxBufferedChunks|0,this._maxFragments=t.maxFragments|0,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[ON]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=ut}_write(t,n,o){if(this._opcode===8&&this._state==ut)return o();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){o(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(o)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t<this._buffers[0].length){let o=this._buffers[0];return this._buffers[0]=new Lc(o.buffer,o.byteOffset+t,o.length-t),new Lc(o.buffer,o.byteOffset,t)}let n=Buffer.allocUnsafe(t);do{let o=this._buffers[0],r=n.length-t;t>=o.length?n.set(this._buffers.shift(),r):(n.set(new Uint8Array(o.buffer,o.byteOffset,t),r),this._buffers[0]=new Lc(o.buffer,o.byteOffset+t,o.length-t)),t-=o.length}while(t>0);return n}startLoop(t){this._loop=!0;do switch(this._state){case ut:this.getInfo(t);break;case rS:this.getPayloadLength16(t);break;case nS:this.getPayloadLength64(t);break;case oS:this.getMask();break;case Ah:this.getData(t);break;case Th:case Fc:this._loop=!1;return}while(this._loop);this._errored||t()}getInfo(t){if(this._bufferedBytes<2){this._loop=!1;return}let n=this.consume(2);if((n[0]&48)!==0){let r=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");t(r);return}let o=(n[0]&64)===64;if(o&&!this._extensions[Xk.extensionName]){let r=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(r);return}if(this._fin=(n[0]&128)===128,this._opcode=n[0]&15,this._payloadLength=n[1]&127,this._opcode===0){if(o){let r=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(r);return}if(!this._fragmented){let r=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");t(r);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let r=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(r);return}this._compressed=o}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let r=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");t(r);return}if(o){let r=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(r);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let r=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");t(r);return}}else{let r=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(r);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(n[1]&128)===128,this._isServer){if(!this._masked){let r=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");t(r);return}}else if(this._masked){let r=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");t(r);return}this._payloadLength===126?this._state=rS:this._payloadLength===127?this._state=nS:this.haveLength(t)}getPayloadLength16(t){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(t)}getPayloadLength64(t){if(this._bufferedBytes<8){this._loop=!1;return}let n=this.consume(8),o=n.readUInt32BE(0);if(o>Math.pow(2,21)-1){let r=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");t(r);return}this._payloadLength=o*Math.pow(2,32)+n.readUInt32BE(4),this.haveLength(t)}haveLength(t){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let n=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(n);return}this._masked?this._state=oS:this._state=Ah}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Ah}getData(t){let n=eS;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}n=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&NN(n,this._mask)}if(this._opcode>7){this.controlMessage(n,t);return}if(this._compressed){this._state=Th,this.decompress(n,t);return}if(n.length){if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let o=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");t(o);return}this._messageLength=this._totalPayloadLength,this._fragments.push(n)}this.dataMessage(t)}decompress(t,n){this._extensions[Xk.extensionName].decompress(t,this._fin,(r,i)=>{if(r)return n(r);if(i.length){if(this._messageLength+=i.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let a=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");n(a);return}if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let a=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");n(a);return}this._fragments.push(i)}this.dataMessage(n),this._state===ut&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=ut;return}let n=this._messageLength,o=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let r;this._binaryType==="nodebuffer"?r=Eh(o,n):this._binaryType==="arraybuffer"?r=CN(Eh(o,n)):this._binaryType==="blob"?r=new Blob(o):r=o,this._allowSynchronousEvents?(this.emit("message",r,!0),this._state=ut):(this._state=Fc,setImmediate(()=>{this.emit("message",r,!0),this._state=ut,this.startLoop(t)}))}else{let r=Eh(o,n);if(!this._skipUTF8Validation&&!tS(r)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(i);return}this._state===Th||this._allowSynchronousEvents?(this.emit("message",r,!1),this._state=ut):(this._state=Fc,setImmediate(()=>{this.emit("message",r,!1),this._state=ut,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,eS),this.end();else{let o=t.readUInt16BE(0);if(!DN(o)){let i=this.createError(RangeError,`invalid status code ${o}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(i);return}let r=new Lc(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!tS(r)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");n(i);return}this._loop=!1,this.emit("conclude",o,r),this.end()}this._state=ut;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=ut):(this._state=Fc,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=ut,this.startLoop(n)}))}createError(t,n,o,r,i){this._loop=!1,this._errored=!0;let a=new t(o?`Invalid WebSocket frame: ${n}`:n);return Error.captureStackTrace(a,this.createError),a.code=i,a[jN]=r,a}};iS.exports=jh});var Dh=z((z5,cS)=>{"use strict";var{Duplex:w5}=ge("stream"),{randomFillSync:RN}=ge("crypto"),{types:{isUint8Array:UN}}=ge("util"),aS=ro(),{EMPTY_BUFFER:MN,kWebSocket:LN,NOOP:FN}=Jt(),{isBlob:oo,isValidStatusCode:ZN}=no(),{mask:sS,toBuffer:Fr}=Ui(),dt=Symbol("kByteLength"),qN=Buffer.alloc(4),Zc=8*1024,Zr,io=Zc,_t=0,BN=1,VN=2,Ch=class e{constructor(t,n,o){this._extensions=n||{},o&&(this._generateMask=o,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=_t,this.onerror=FN,this[LN]=void 0}static frame(t,n){let o,r=!1,i=2,a=!1;n.mask&&(o=n.maskBuffer||qN,n.generateMask?n.generateMask(o):(io===Zc&&(Zr===void 0&&(Zr=Buffer.alloc(Zc)),RN(Zr,0,Zc),io=0),o[0]=Zr[io++],o[1]=Zr[io++],o[2]=Zr[io++],o[3]=Zr[io++]),a=(o[0]|o[1]|o[2]|o[3])===0,i=6);let s;typeof t=="string"?(!n.mask||a)&&n[dt]!==void 0?s=n[dt]:(t=Buffer.from(t),s=t.length):(s=t.length,r=n.mask&&n.readOnly&&!a);let l=s;s>=65536?(i+=8,l=127):s>125&&(i+=2,l=126);let u=Buffer.allocUnsafe(r?s+i:i);return u[0]=n.fin?n.opcode|128:n.opcode,n.rsv1&&(u[0]|=64),u[1]=l,l===126?u.writeUInt16BE(s,2):l===127&&(u[2]=u[3]=0,u.writeUIntBE(s,4,6)),n.mask?(u[1]|=128,u[i-4]=o[0],u[i-3]=o[1],u[i-2]=o[2],u[i-1]=o[3],a?[u,t]:r?(sS(t,o,u,i,s),[u]):(sS(t,o,t,0,s),[u,t])):[u,t]}close(t,n,o,r){let i;if(t===void 0)i=MN;else{if(typeof t!="number"||!ZN(t))throw new TypeError("First argument must be a valid error code number");if(n===void 0||!n.length)i=Buffer.allocUnsafe(2),i.writeUInt16BE(t,0);else{let s=Buffer.byteLength(n);if(s>123)throw new RangeError("The message must not be greater than 123 bytes");if(i=Buffer.allocUnsafe(2+s),i.writeUInt16BE(t,0),typeof n=="string")i.write(n,2);else if(UN(n))i.set(n,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let a={[dt]:i.length,fin:!0,generateMask:this._generateMask,mask:o,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==_t?this.enqueue([this.dispatch,i,!1,a,r]):this.sendFrame(e.frame(i,a),r)}ping(t,n,o){let r,i;if(typeof t=="string"?(r=Buffer.byteLength(t),i=!1):oo(t)?(r=t.size,i=!1):(t=Fr(t),r=t.length,i=Fr.readOnly),r>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[dt]:r,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};oo(t)?this._state!==_t?this.enqueue([this.getBlobData,t,!1,a,o]):this.getBlobData(t,!1,a,o):this._state!==_t?this.enqueue([this.dispatch,t,!1,a,o]):this.sendFrame(e.frame(t,a),o)}pong(t,n,o){let r,i;if(typeof t=="string"?(r=Buffer.byteLength(t),i=!1):oo(t)?(r=t.size,i=!1):(t=Fr(t),r=t.length,i=Fr.readOnly),r>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[dt]:r,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};oo(t)?this._state!==_t?this.enqueue([this.getBlobData,t,!1,a,o]):this.getBlobData(t,!1,a,o):this._state!==_t?this.enqueue([this.dispatch,t,!1,a,o]):this.sendFrame(e.frame(t,a),o)}send(t,n,o){let r=this._extensions[aS.extensionName],i=n.binary?2:1,a=n.compress,s,l;typeof t=="string"?(s=Buffer.byteLength(t),l=!1):oo(t)?(s=t.size,l=!1):(t=Fr(t),s=t.length,l=Fr.readOnly),this._firstFragment?(this._firstFragment=!1,a&&r&&r.params[r._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(a=s>=r._threshold),this._compress=a):(a=!1,i=0),n.fin&&(this._firstFragment=!0);let u={[dt]:s,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:i,readOnly:l,rsv1:a};oo(t)?this._state!==_t?this.enqueue([this.getBlobData,t,this._compress,u,o]):this.getBlobData(t,this._compress,u,o):this._state!==_t?this.enqueue([this.dispatch,t,this._compress,u,o]):this.dispatch(t,this._compress,u,o)}getBlobData(t,n,o,r){this._bufferedBytes+=o[dt],this._state=VN,t.arrayBuffer().then(i=>{if(this._socket.destroyed){let s=new Error("The socket was closed while the blob was being read");process.nextTick(Nh,this,s,r);return}this._bufferedBytes-=o[dt];let a=Fr(i);n?this.dispatch(a,n,o,r):(this._state=_t,this.sendFrame(e.frame(a,o),r),this.dequeue())}).catch(i=>{process.nextTick(JN,this,i,r)})}dispatch(t,n,o,r){if(!n){this.sendFrame(e.frame(t,o),r);return}let i=this._extensions[aS.extensionName];this._bufferedBytes+=o[dt],this._state=BN,i.compress(t,o.fin,(a,s)=>{if(this._socket.destroyed){let l=new Error("The socket was closed while data was being compressed");Nh(this,l,r);return}this._bufferedBytes-=o[dt],this._state=_t,o.readOnly=!1,this.sendFrame(e.frame(s,o),r),this.dequeue()})}dequeue(){for(;this._state===_t&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][dt],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][dt],this._queue.push(t)}sendFrame(t,n){t.length===2?(this._socket.cork(),this._socket.write(t[0]),this._socket.write(t[1],n),this._socket.uncork()):this._socket.write(t[0],n)}};cS.exports=Ch;function Nh(e,t,n){typeof n=="function"&&n(t);for(let o=0;o<e._queue.length;o++){let r=e._queue[o],i=r[r.length-1];typeof i=="function"&&i(t)}}function JN(e,t,n){Nh(e,t,n),e.onerror(t)}});var vS=z((I5,hS)=>{"use strict";var{kForOnEventAttribute:Li,kListener:Rh}=Jt(),lS=Symbol("kCode"),uS=Symbol("kData"),dS=Symbol("kError"),pS=Symbol("kMessage"),fS=Symbol("kReason"),ao=Symbol("kTarget"),mS=Symbol("kType"),gS=Symbol("kWasClean"),Gt=class{constructor(t){this[ao]=null,this[mS]=t}get target(){return this[ao]}get type(){return this[mS]}};Object.defineProperty(Gt.prototype,"target",{enumerable:!0});Object.defineProperty(Gt.prototype,"type",{enumerable:!0});var qr=class extends Gt{constructor(t,n={}){super(t),this[lS]=n.code===void 0?0:n.code,this[fS]=n.reason===void 0?"":n.reason,this[gS]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[lS]}get reason(){return this[fS]}get wasClean(){return this[gS]}};Object.defineProperty(qr.prototype,"code",{enumerable:!0});Object.defineProperty(qr.prototype,"reason",{enumerable:!0});Object.defineProperty(qr.prototype,"wasClean",{enumerable:!0});var so=class extends Gt{constructor(t,n={}){super(t),this[dS]=n.error===void 0?null:n.error,this[pS]=n.message===void 0?"":n.message}get error(){return this[dS]}get message(){return this[pS]}};Object.defineProperty(so.prototype,"error",{enumerable:!0});Object.defineProperty(so.prototype,"message",{enumerable:!0});var Fi=class extends Gt{constructor(t,n={}){super(t),this[uS]=n.data===void 0?null:n.data}get data(){return this[uS]}};Object.defineProperty(Fi.prototype,"data",{enumerable:!0});var HN={addEventListener(e,t,n={}){for(let r of this.listeners(e))if(!n[Li]&&r[Rh]===t&&!r[Li])return;let o;if(e==="message")o=function(i,a){let s=new Fi("message",{data:a?i:i.toString()});s[ao]=this,qc(t,this,s)};else if(e==="close")o=function(i,a){let s=new qr("close",{code:i,reason:a.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});s[ao]=this,qc(t,this,s)};else if(e==="error")o=function(i){let a=new so("error",{error:i,message:i.message});a[ao]=this,qc(t,this,a)};else if(e==="open")o=function(){let i=new Gt("open");i[ao]=this,qc(t,this,i)};else return;o[Li]=!!n[Li],o[Rh]=t,n.once?this.once(e,o):this.on(e,o)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[Rh]===t&&!n[Li]){this.removeListener(e,n);break}}};hS.exports={CloseEvent:qr,ErrorEvent:so,Event:Gt,EventTarget:HN,MessageEvent:Fi};function qc(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var Bc=z((P5,yS)=>{"use strict";var{tokenChars:Zi}=no();function Tt(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function GN(e){let t=Object.create(null),n=Object.create(null),o=!1,r=!1,i=!1,a,s,l=-1,u=-1,d=-1,p=0;for(;p<e.length;p++)if(u=e.charCodeAt(p),a===void 0)if(d===-1&&Zi[u]===1)l===-1&&(l=p);else if(p!==0&&(u===32||u===9))d===-1&&l!==-1&&(d=p);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${p}`);d===-1&&(d=p);let f=e.slice(l,d);u===44?(Tt(t,f,n),n=Object.create(null)):a=f,l=d=-1}else throw new SyntaxError(`Unexpected character at index ${p}`);else if(s===void 0)if(d===-1&&Zi[u]===1)l===-1&&(l=p);else if(u===32||u===9)d===-1&&l!==-1&&(d=p);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${p}`);d===-1&&(d=p),Tt(n,e.slice(l,d),!0),u===44&&(Tt(t,a,n),n=Object.create(null),a=void 0),l=d=-1}else if(u===61&&l!==-1&&d===-1)s=e.slice(l,p),l=d=-1;else throw new SyntaxError(`Unexpected character at index ${p}`);else if(r){if(Zi[u]!==1)throw new SyntaxError(`Unexpected character at index ${p}`);l===-1?l=p:o||(o=!0),r=!1}else if(i)if(Zi[u]===1)l===-1&&(l=p);else if(u===34&&l!==-1)i=!1,d=p;else if(u===92)r=!0;else throw new SyntaxError(`Unexpected character at index ${p}`);else if(u===34&&e.charCodeAt(p-1)===61)i=!0;else if(d===-1&&Zi[u]===1)l===-1&&(l=p);else if(l!==-1&&(u===32||u===9))d===-1&&(d=p);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${p}`);d===-1&&(d=p);let f=e.slice(l,d);o&&(f=f.replace(/\\/g,""),o=!1),Tt(n,s,f),u===44&&(Tt(t,a,n),n=Object.create(null),a=void 0),s=void 0,l=d=-1}else throw new SyntaxError(`Unexpected character at index ${p}`);if(l===-1||i||u===32||u===9)throw new SyntaxError("Unexpected end of input");d===-1&&(d=p);let m=e.slice(l,d);return a===void 0?Tt(t,m,n):(s===void 0?Tt(n,m,!0):o?Tt(n,s,m.replace(/\\/g,"")):Tt(n,s,m),Tt(t,a,n)),t}function WN(e){return Object.keys(e).map(t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(o=>[t].concat(Object.keys(o).map(r=>{let i=o[r];return Array.isArray(i)||(i=[i]),i.map(a=>a===!0?r:`${r}=${a}`).join("; ")})).join("; ")).join(", ")}).join(", ")}yS.exports={format:WN,parse:GN}});var Gc=z((T5,AS)=>{"use strict";var KN=ge("events"),QN=ge("https"),YN=ge("http"),xS=ge("net"),XN=ge("tls"),{randomBytes:eD,createHash:tD}=ge("crypto"),{Duplex:E5,Readable:A5}=ge("stream"),{URL:Uh}=ge("url"),br=ro(),rD=Oh(),nD=Dh(),{isBlob:oD}=no(),{BINARY_TYPES:bS,CLOSE_TIMEOUT:iD,EMPTY_BUFFER:Vc,GUID:aD,kForOnEventAttribute:Mh,kListener:sD,kStatusCode:cD,kWebSocket:Se,NOOP:$S}=Jt(),{EventTarget:{addEventListener:lD,removeEventListener:uD}}=vS(),{format:dD,parse:pD}=Bc(),{toBuffer:fD}=Ui(),kS=Symbol("kAborted"),Lh=[8,13],Wt=["CONNECTING","OPEN","CLOSING","CLOSED"],mD=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,fe=class e extends KN{constructor(t,n,o){super(),this._binaryType=bS[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=Vc,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,t!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,n===void 0?n=[]:Array.isArray(n)||(typeof n=="object"&&n!==null?(o=n,n=[]):n=[n]),SS(this,t,n,o)):(this._autoPong=o.autoPong,this._closeTimeout=o.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){bS.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,n,o){let r=new rD({allowSynchronousEvents:o.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:o.maxBufferedChunks,maxFragments:o.maxFragments,maxPayload:o.maxPayload,skipUTF8Validation:o.skipUTF8Validation}),i=new nD(t,this._extensions,o.generateMask);this._receiver=r,this._sender=i,this._socket=t,r[Se]=this,i[Se]=this,t[Se]=this,r.on("conclude",vD),r.on("drain",yD),r.on("error",bD),r.on("message",_D),r.on("ping",xD),r.on("pong",$D),i.onerror=kD,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",IS),t.on("data",Hc),t.on("end",PS),t.on("error",ES),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[br.extensionName]&&this._extensions[br.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){rt(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,o=>{o||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),zS(this)}}pause(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!0,this._socket.pause())}ping(t,n,o){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(o=t,t=n=void 0):typeof n=="function"&&(o=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Fh(this,t,o);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||Vc,n,o)}pong(t,n,o){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(o=t,t=n=void 0):typeof n=="function"&&(o=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Fh(this,t,o);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||Vc,n,o)}resume(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,o){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof n=="function"&&(o=n,n={}),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Fh(this,t,o);return}let r={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[br.extensionName]||(r.compress=!1),this._sender.send(t||Vc,r,o)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){rt(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(fe,"CONNECTING",{enumerable:!0,value:Wt.indexOf("CONNECTING")});Object.defineProperty(fe.prototype,"CONNECTING",{enumerable:!0,value:Wt.indexOf("CONNECTING")});Object.defineProperty(fe,"OPEN",{enumerable:!0,value:Wt.indexOf("OPEN")});Object.defineProperty(fe.prototype,"OPEN",{enumerable:!0,value:Wt.indexOf("OPEN")});Object.defineProperty(fe,"CLOSING",{enumerable:!0,value:Wt.indexOf("CLOSING")});Object.defineProperty(fe.prototype,"CLOSING",{enumerable:!0,value:Wt.indexOf("CLOSING")});Object.defineProperty(fe,"CLOSED",{enumerable:!0,value:Wt.indexOf("CLOSED")});Object.defineProperty(fe.prototype,"CLOSED",{enumerable:!0,value:Wt.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(fe.prototype,e,{enumerable:!0})});["open","error","close","message"].forEach(e=>{Object.defineProperty(fe.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[Mh])return t[sD];return null},set(t){for(let n of this.listeners(e))if(n[Mh]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[Mh]:!0})}})});fe.prototype.addEventListener=lD;fe.prototype.removeEventListener=uD;AS.exports=fe;function SS(e,t,n,o){let r={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:iD,protocolVersion:Lh[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...o,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(e._autoPong=r.autoPong,e._closeTimeout=r.closeTimeout,!Lh.includes(r.protocolVersion))throw new RangeError(`Unsupported protocol version: ${r.protocolVersion} (supported versions: ${Lh.join(", ")})`);let i;if(t instanceof Uh)i=t;else try{i=new Uh(t)}catch{throw new SyntaxError(`Invalid URL: ${t}`)}i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),e._url=i.href;let a=i.protocol==="wss:",s=i.protocol==="ws+unix:",l;if(i.protocol!=="ws:"&&!a&&!s?l=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:s&&!i.pathname?l="The URL's pathname is empty":i.hash&&(l="The URL contains a fragment identifier"),l){let h=new SyntaxError(l);if(e._redirects===0)throw h;Jc(e,h);return}let u=a?443:80,d=eD(16).toString("base64"),p=a?QN.request:YN.request,m=new Set,f;if(r.createConnection=r.createConnection||(a?hD:gD),r.defaultPort=r.defaultPort||u,r.port=i.port||u,r.host=i.hostname.startsWith("[")?i.hostname.slice(1,-1):i.hostname,r.headers={...r.headers,"Sec-WebSocket-Version":r.protocolVersion,"Sec-WebSocket-Key":d,Connection:"Upgrade",Upgrade:"websocket"},r.path=i.pathname+i.search,r.timeout=r.handshakeTimeout,r.perMessageDeflate&&(f=new br({...r.perMessageDeflate,isServer:!1,maxPayload:r.maxPayload}),r.headers["Sec-WebSocket-Extensions"]=dD({[br.extensionName]:f.offer()})),n.length){for(let h of n){if(typeof h!="string"||!mD.test(h)||m.has(h))throw new SyntaxError("An invalid or duplicated subprotocol was specified");m.add(h)}r.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(r.origin&&(r.protocolVersion<13?r.headers["Sec-WebSocket-Origin"]=r.origin:r.headers.Origin=r.origin),(i.username||i.password)&&(r.auth=`${i.username}:${i.password}`),s){let h=r.path.split(":");r.socketPath=h[0],r.path=h[1]}let g;if(r.followRedirects){if(e._redirects===0){e._originalIpc=s,e._originalSecure=a,e._originalHostOrSocketPath=s?r.socketPath:i.host;let h=o&&o.headers;if(o={...o,headers:{}},h)for(let[b,$]of Object.entries(h))o.headers[b.toLowerCase()]=$}else if(e.listenerCount("redirect")===0){let h=s?e._originalIpc?r.socketPath===e._originalHostOrSocketPath:!1:e._originalIpc?!1:i.host===e._originalHostOrSocketPath;(!h||e._originalSecure&&!a)&&(delete r.headers.authorization,delete r.headers.cookie,h||delete r.headers.host,r.auth=void 0)}r.auth&&!o.headers.authorization&&(o.headers.authorization="Basic "+Buffer.from(r.auth).toString("base64")),g=e._req=p(r),e._redirects&&e.emit("redirect",e.url,g)}else g=e._req=p(r);r.timeout&&g.on("timeout",()=>{rt(e,g,"Opening handshake has timed out")}),g.on("error",h=>{g===null||g[kS]||(g=e._req=null,Jc(e,h))}),g.on("response",h=>{let b=h.headers.location,$=h.statusCode;if(b&&r.followRedirects&&$>=300&&$<400){if(++e._redirects>r.maxRedirects){rt(e,g,"Maximum redirects exceeded");return}g.abort();let P;try{P=new Uh(b,t)}catch{let j=new SyntaxError(`Invalid URL: ${b}`);Jc(e,j);return}SS(e,P,n,o)}else e.emit("unexpected-response",g,h)||rt(e,g,`Unexpected server response: ${h.statusCode}`)}),g.on("upgrade",(h,b,$)=>{if(e.emit("upgrade",h),e.readyState!==fe.CONNECTING)return;g=e._req=null;let P=h.headers.upgrade;if(P===void 0||P.toLowerCase()!=="websocket"){rt(e,b,"Invalid Upgrade header");return}let I=tD("sha1").update(d+aD).digest("base64");if(h.headers["sec-websocket-accept"]!==I){rt(e,b,"Invalid Sec-WebSocket-Accept header");return}let j=h.headers["sec-websocket-protocol"],E;if(j!==void 0?m.size?m.has(j)||(E="Server sent an invalid subprotocol"):E="Server sent a subprotocol but none was requested":m.size&&(E="Server sent no subprotocol"),E){rt(e,b,E);return}j&&(e._protocol=j);let _e=h.headers["sec-websocket-extensions"];if(_e!==void 0){if(!f){rt(e,b,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let xe;try{xe=pD(_e)}catch{rt(e,b,"Invalid Sec-WebSocket-Extensions header");return}let ke=Object.keys(xe);if(ke.length!==1||ke[0]!==br.extensionName){rt(e,b,"Server indicated an extension that was not requested");return}try{f.accept(xe[br.extensionName])}catch{rt(e,b,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[br.extensionName]=f}e.setSocket(b,$,{allowSynchronousEvents:r.allowSynchronousEvents,generateMask:r.generateMask,maxBufferedChunks:r.maxBufferedChunks,maxFragments:r.maxFragments,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation})}),r.finishRequest?r.finishRequest(g,e):g.end()}function Jc(e,t){e._readyState=fe.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function gD(e){return e.path=e.socketPath,xS.connect(e)}function hD(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=xS.isIP(e.host)?"":e.host),XN.connect(e)}function rt(e,t,n){e._readyState=fe.CLOSING;let o=new Error(n);Error.captureStackTrace(o,rt),t.setHeader?(t[kS]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(Jc,e,o)):(t.destroy(o),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function Fh(e,t,n){if(t){let o=oD(t)?t.size:fD(t).length;e._socket?e._sender._bufferedBytes+=o:e._bufferedAmount+=o}if(n){let o=new Error(`WebSocket is not open: readyState ${e.readyState} (${Wt[e.readyState]})`);process.nextTick(n,o)}}function vD(e,t){let n=this[Se];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Se]!==void 0&&(n._socket.removeListener("data",Hc),process.nextTick(wS,n._socket),e===1005?n.close():n.close(e,t))}function yD(){let e=this[Se];e.isPaused||e._socket.resume()}function bD(e){let t=this[Se];t._socket[Se]!==void 0&&(t._socket.removeListener("data",Hc),process.nextTick(wS,t._socket),t.close(e[cD])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function _S(){this[Se].emitClose()}function _D(e,t){this[Se].emit("message",e,t)}function xD(e){let t=this[Se];t._autoPong&&t.pong(e,!this._isServer,$S),t.emit("ping",e)}function $D(e){this[Se].emit("pong",e)}function wS(e){e.resume()}function kD(e){let t=this[Se];t.readyState!==fe.CLOSED&&(t.readyState===fe.OPEN&&(t._readyState=fe.CLOSING,zS(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function zS(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function IS(){let e=this[Se];if(this.removeListener("close",IS),this.removeListener("data",Hc),this.removeListener("end",PS),e._readyState=fe.CLOSING,!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){let t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end(),this[Se]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",_S),e._receiver.on("finish",_S))}function Hc(e){this[Se]._receiver.write(e)||this.pause()}function PS(){let e=this[Se];e._readyState=fe.CLOSING,e._receiver.end(),this.end()}function ES(){let e=this[Se];this.removeListener("error",ES),this.on("error",$S),e&&(e._readyState=fe.CLOSING,this.destroy())}});var CS=z((O5,OS)=>{"use strict";var j5=Gc(),{Duplex:SD}=ge("stream");function TS(e){e.emit("close")}function wD(){!this.destroyed&&this._writableState.finished&&this.destroy()}function jS(e){this.removeListener("error",jS),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function zD(e,t){let n=!0,o=new SD({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(i,a){let s=!a&&o._readableState.objectMode?i.toString():i;o.push(s)||e.pause()}),e.once("error",function(i){o.destroyed||(n=!1,o.destroy(i))}),e.once("close",function(){o.destroyed||o.push(null)}),o._destroy=function(r,i){if(e.readyState===e.CLOSED){i(r),process.nextTick(TS,o);return}let a=!1;e.once("error",function(l){a=!0,i(l)}),e.once("close",function(){a||i(r),process.nextTick(TS,o)}),n&&e.terminate()},o._final=function(r){if(e.readyState===e.CONNECTING){e.once("open",function(){o._final(r)});return}e._socket!==null&&(e._socket._writableState.finished?(r(),o._readableState.endEmitted&&o.destroy()):(e._socket.once("finish",function(){r()}),e.close()))},o._read=function(){e.isPaused&&e.resume()},o._write=function(r,i,a){if(e.readyState===e.CONNECTING){e.once("open",function(){o._write(r,i,a)});return}e.send(r,a)},o.on("end",wD),o.on("error",jS),o}OS.exports=zD});var Zh=z((C5,NS)=>{"use strict";var{tokenChars:ID}=no();function PD(e){let t=new Set,n=-1,o=-1,r=0;for(r;r<e.length;r++){let a=e.charCodeAt(r);if(o===-1&&ID[a]===1)n===-1&&(n=r);else if(r!==0&&(a===32||a===9))o===-1&&n!==-1&&(o=r);else if(a===44){if(n===-1)throw new SyntaxError(`Unexpected character at index ${r}`);o===-1&&(o=r);let s=e.slice(n,o);if(t.has(s))throw new SyntaxError(`The "${s}" subprotocol is duplicated`);t.add(s),n=o=-1}else throw new SyntaxError(`Unexpected character at index ${r}`)}if(n===-1||o!==-1)throw new SyntaxError("Unexpected end of input");let i=e.slice(n,r);if(t.has(i))throw new SyntaxError(`The "${i}" subprotocol is duplicated`);return t.add(i),t}NS.exports={parse:PD}});var ZS=z((D5,FS)=>{"use strict";var ED=ge("events"),Wc=ge("http"),{Duplex:N5}=ge("stream"),{createHash:AD}=ge("crypto"),DS=Bc(),Br=ro(),TD=Zh(),jD=Gc(),{CLOSE_TIMEOUT:OD,GUID:CD,kWebSocket:ND}=Jt(),DD=/^[+/0-9A-Za-z]{22}==$/,RS=0,US=1,LS=2,qh=class extends ED{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1024*1024,maxFragments:128*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:OD,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:jD,...t},t.port==null&&!t.server&&!t.noServer||t.port!=null&&(t.server||t.noServer)||t.server&&t.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(t.port!=null?(this._server=Wc.createServer((o,r)=>{let i=Wc.STATUS_CODES[426];r.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),r.end(i)}),this._server.listen(t.port,t.host,t.backlog,n)):t.server&&(this._server=t.server),this._server){let o=this.emit.bind(this,"connection");this._removeListeners=RD(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(r,i,a)=>{this.handleUpgrade(r,i,a,o)}})}t.perMessageDeflate===!0&&(t.perMessageDeflate={}),t.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=t,this._state=RS}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(t){if(this._state===LS){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(qi,this);return}if(t&&this.once("close",t),this._state!==US)if(this._state=US,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(qi,this):process.nextTick(qi,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{qi(this)})}}shouldHandle(t){if(this.options.path){let n=t.url.indexOf("?");if((n!==-1?t.url.slice(0,n):t.url)!==this.options.path)return!1}return!0}handleUpgrade(t,n,o,r){n.on("error",MS);let i=t.headers["sec-websocket-key"],a=t.headers.upgrade,s=+t.headers["sec-websocket-version"];if(t.method!=="GET"){Vr(this,t,n,405,"Invalid HTTP method");return}if(a===void 0||a.toLowerCase()!=="websocket"){Vr(this,t,n,400,"Invalid Upgrade header");return}if(i===void 0||!DD.test(i)){Vr(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(s!==13&&s!==8){Vr(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){Bi(n,400);return}let l=t.headers["sec-websocket-protocol"],u=new Set;if(l!==void 0)try{u=TD.parse(l)}catch{Vr(this,t,n,400,"Invalid Sec-WebSocket-Protocol header");return}let d=t.headers["sec-websocket-extensions"],p={};if(this.options.perMessageDeflate&&d!==void 0){let m=new Br({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let f=DS.parse(d);f[Br.extensionName]&&(m.accept(f[Br.extensionName]),p[Br.extensionName]=m)}catch{Vr(this,t,n,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let m={origin:t.headers[`${s===8?"sec-websocket-origin":"origin"}`],secure:!!(t.socket.authorized||t.socket.encrypted),req:t};if(this.options.verifyClient.length===2){this.options.verifyClient(m,(f,g,h,b)=>{if(!f)return Bi(n,g||401,h,b);this.completeUpgrade(p,i,u,t,n,o,r)});return}if(!this.options.verifyClient(m))return Bi(n,401)}this.completeUpgrade(p,i,u,t,n,o,r)}completeUpgrade(t,n,o,r,i,a,s){if(!i.readable||!i.writable)return i.destroy();if(i[ND])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>RS)return Bi(i,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${AD("sha1").update(n+CD).digest("base64")}`],d=new this.options.WebSocket(null,void 0,this.options);if(o.size){let p=this.options.handleProtocols?this.options.handleProtocols(o,r):o.values().next().value;p&&(u.push(`Sec-WebSocket-Protocol: ${p}`),d._protocol=p)}if(t[Br.extensionName]){let p=t[Br.extensionName].params,m=DS.format({[Br.extensionName]:[p]});u.push(`Sec-WebSocket-Extensions: ${m}`),d._extensions=t}this.emit("headers",u,r),i.write(u.concat(`\r
9
+ deps: ${n}}`};var xO={keyword:"dependencies",type:"object",schemaType:"object",error:Pt.error,code(e){let[t,n]=$O(e);p$(e,t),f$(e,n)}};function $O({schema:e}){let t={},n={};for(let o in e){if(o==="__proto__")continue;let r=Array.isArray(e[o])?t:n;r[o]=e[o]}return[t,n]}function p$(e,t=e.schema){let{gen:n,data:o,it:r}=e;if(Object.keys(t).length===0)return;let i=n.let("missing");for(let a in t){let s=t[a];if(s.length===0)continue;let l=(0,Ai.propertyInData)(n,o,a,r.opts.ownProperties);e.setParams({property:a,depsCount:s.length,deps:s.join(", ")}),r.allErrors?n.if(l,()=>{for(let u of s)(0,Ai.checkReportMissingProp)(e,u)}):(n.if((0,Ug._)`${l} && (${(0,Ai.checkMissingProp)(e,s,i)})`),(0,Ai.reportMissingProp)(e,i),n.else())}}Pt.validatePropertyDeps=p$;function f$(e,t=e.schema){let{gen:n,data:o,keyword:r,it:i}=e,a=n.name("valid");for(let s in t)(0,_O.alwaysValidSchema)(i,t[s])||(n.if((0,Ai.propertyInData)(n,o,s,i.opts.ownProperties),()=>{let l=e.subschema({keyword:r,schemaProp:s},a);e.mergeValidEvaluated(l,a)},()=>n.var(a,!0)),e.ok(a))}Pt.validateSchemaDeps=f$;Pt.default=xO});var h$=z(Mg=>{"use strict";Object.defineProperty(Mg,"__esModule",{value:!0});var g$=L(),kO=H(),SO={message:"property name must be valid",params:({params:e})=>(0,g$._)`{propertyName: ${e.propertyName}}`},wO={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:SO,code(e){let{gen:t,schema:n,data:o,it:r}=e;if((0,kO.alwaysValidSchema)(r,n))return;let i=t.name("valid");t.forIn("key",o,a=>{e.setParams({propertyName:a}),e.subschema({keyword:"propertyNames",data:a,dataTypes:["string"],propertyName:a,compositeRule:!0},i),t.if((0,g$.not)(i),()=>{e.error(!0),r.allErrors||t.break()})}),e.ok(i)}};Mg.default=wO});var Fg=z(Lg=>{"use strict";Object.defineProperty(Lg,"__esModule",{value:!0});var hc=st(),yt=L(),zO=Mt(),vc=H(),IO={message:"must NOT have additional properties",params:({params:e})=>(0,yt._)`{additionalProperty: ${e.additionalProperty}}`},PO={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:IO,code(e){let{gen:t,schema:n,parentSchema:o,data:r,errsCount:i,it:a}=e;if(!i)throw new Error("ajv implementation error");let{allErrors:s,opts:l}=a;if(a.props=!0,l.removeAdditional!=="all"&&(0,vc.alwaysValidSchema)(a,n))return;let u=(0,hc.allSchemaProperties)(o.properties),d=(0,hc.allSchemaProperties)(o.patternProperties);p(),e.ok((0,yt._)`${i} === ${zO.default.errors}`);function p(){t.forIn("key",r,b=>{!u.length&&!d.length?g(b):t.if(m(b),()=>g(b))})}function m(b){let $;if(u.length>8){let P=(0,vc.schemaRefOrVal)(a,o.properties,"properties");$=(0,hc.isOwnProperty)(t,P,b)}else u.length?$=(0,yt.or)(...u.map(P=>(0,yt._)`${b} === ${P}`)):$=yt.nil;return d.length&&($=(0,yt.or)($,...d.map(P=>(0,yt._)`${(0,hc.usePattern)(e,P)}.test(${b})`))),(0,yt.not)($)}function f(b){t.code((0,yt._)`delete ${r}[${b}]`)}function g(b){if(l.removeAdditional==="all"||l.removeAdditional&&n===!1){f(b);return}if(n===!1){e.setParams({additionalProperty:b}),e.error(),s||t.break();return}if(typeof n=="object"&&!(0,vc.alwaysValidSchema)(a,n)){let $=t.name("valid");l.removeAdditional==="failing"?(h(b,$,!1),t.if((0,yt.not)($),()=>{e.reset(),f(b)})):(h(b,$),s||t.if((0,yt.not)($),()=>t.break()))}}function h(b,$,P){let I={keyword:"additionalProperties",dataProp:b,dataPropType:vc.Type.Str};P===!1&&Object.assign(I,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(I,$)}}};Lg.default=PO});var b$=z(qg=>{"use strict";Object.defineProperty(qg,"__esModule",{value:!0});var EO=hi(),v$=st(),Zg=H(),y$=Fg(),AO={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,parentSchema:o,data:r,it:i}=e;i.opts.removeAdditional==="all"&&o.additionalProperties===void 0&&y$.default.code(new EO.KeywordCxt(i,y$.default,"additionalProperties"));let a=(0,v$.allSchemaProperties)(n);for(let p of a)i.definedProperties.add(p);i.opts.unevaluated&&a.length&&i.props!==!0&&(i.props=Zg.mergeEvaluated.props(t,(0,Zg.toHash)(a),i.props));let s=a.filter(p=>!(0,Zg.alwaysValidSchema)(i,n[p]));if(s.length===0)return;let l=t.name("valid");for(let p of s)u(p)?d(p):(t.if((0,v$.propertyInData)(t,r,p,i.opts.ownProperties)),d(p),i.allErrors||t.else().var(l,!0),t.endIf()),e.it.definedProperties.add(p),e.ok(l);function u(p){return i.opts.useDefaults&&!i.compositeRule&&n[p].default!==void 0}function d(p){e.subschema({keyword:"properties",schemaProp:p,dataProp:p},l)}}};qg.default=AO});var k$=z(Bg=>{"use strict";Object.defineProperty(Bg,"__esModule",{value:!0});var _$=st(),yc=L(),x$=H(),$$=H(),TO={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:n,data:o,parentSchema:r,it:i}=e,{opts:a}=i,s=(0,_$.allSchemaProperties)(n),l=s.filter(h=>(0,x$.alwaysValidSchema)(i,n[h]));if(s.length===0||l.length===s.length&&(!i.opts.unevaluated||i.props===!0))return;let u=a.strictSchema&&!a.allowMatchingProperties&&r.properties,d=t.name("valid");i.props!==!0&&!(i.props instanceof yc.Name)&&(i.props=(0,$$.evaluatedPropsToName)(t,i.props));let{props:p}=i;m();function m(){for(let h of s)u&&f(h),i.allErrors?g(h):(t.var(d,!0),g(h),t.if(d))}function f(h){for(let b in u)new RegExp(h).test(b)&&(0,x$.checkStrictMode)(i,`property ${b} matches pattern ${h} (use allowMatchingProperties)`)}function g(h){t.forIn("key",o,b=>{t.if((0,yc._)`${(0,_$.usePattern)(e,h)}.test(${b})`,()=>{let $=l.includes(h);$||e.subschema({keyword:"patternProperties",schemaProp:h,dataProp:b,dataPropType:$$.Type.Str},d),i.opts.unevaluated&&p!==!0?t.assign((0,yc._)`${p}[${b}]`,!0):!$&&!i.allErrors&&t.if((0,yc.not)(d),()=>t.break())})})}}};Bg.default=TO});var S$=z(Vg=>{"use strict";Object.defineProperty(Vg,"__esModule",{value:!0});var jO=H(),OO={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:n,it:o}=e;if((0,jO.alwaysValidSchema)(o,n)){e.fail();return}let r=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},r),e.failResult(r,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};Vg.default=OO});var w$=z(Jg=>{"use strict";Object.defineProperty(Jg,"__esModule",{value:!0});var CO=st(),NO={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:CO.validateUnion,error:{message:"must match a schema in anyOf"}};Jg.default=NO});var z$=z(Hg=>{"use strict";Object.defineProperty(Hg,"__esModule",{value:!0});var bc=L(),DO=H(),RO={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,bc._)`{passingSchemas: ${e.passing}}`},UO={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:RO,code(e){let{gen:t,schema:n,parentSchema:o,it:r}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");if(r.opts.discriminator&&o.discriminator)return;let i=n,a=t.let("valid",!1),s=t.let("passing",null),l=t.name("_valid");e.setParams({passing:s}),t.block(u),e.result(a,()=>e.reset(),()=>e.error(!0));function u(){i.forEach((d,p)=>{let m;(0,DO.alwaysValidSchema)(r,d)?t.var(l,!0):m=e.subschema({keyword:"oneOf",schemaProp:p,compositeRule:!0},l),p>0&&t.if((0,bc._)`${l} && ${a}`).assign(a,!1).assign(s,(0,bc._)`[${s}, ${p}]`).else(),t.if(l,()=>{t.assign(a,!0),t.assign(s,p),m&&e.mergeEvaluated(m,bc.Name)})})}}};Hg.default=UO});var I$=z(Gg=>{"use strict";Object.defineProperty(Gg,"__esModule",{value:!0});var MO=H(),LO={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:n,it:o}=e;if(!Array.isArray(n))throw new Error("ajv implementation error");let r=t.name("valid");n.forEach((i,a)=>{if((0,MO.alwaysValidSchema)(o,i))return;let s=e.subschema({keyword:"allOf",schemaProp:a},r);e.ok(r),e.mergeEvaluated(s)})}};Gg.default=LO});var A$=z(Wg=>{"use strict";Object.defineProperty(Wg,"__esModule",{value:!0});var _c=L(),E$=H(),FO={message:({params:e})=>(0,_c.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,_c._)`{failingKeyword: ${e.ifClause}}`},ZO={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:FO,code(e){let{gen:t,parentSchema:n,it:o}=e;n.then===void 0&&n.else===void 0&&(0,E$.checkStrictMode)(o,'"if" without "then" and "else" is ignored');let r=P$(o,"then"),i=P$(o,"else");if(!r&&!i)return;let a=t.let("valid",!0),s=t.name("_valid");if(l(),e.reset(),r&&i){let d=t.let("ifClause");e.setParams({ifClause:d}),t.if(s,u("then",d),u("else",d))}else r?t.if(s,u("then")):t.if((0,_c.not)(s),u("else"));e.pass(a,()=>e.error(!0));function l(){let d=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},s);e.mergeEvaluated(d)}function u(d,p){return()=>{let m=e.subschema({keyword:d},s);t.assign(a,s),e.mergeValidEvaluated(m,a),p?t.assign(p,(0,_c._)`${d}`):e.setParams({ifClause:d})}}}};function P$(e,t){let n=e.schema[t];return n!==void 0&&!(0,E$.alwaysValidSchema)(e,n)}Wg.default=ZO});var T$=z(Kg=>{"use strict";Object.defineProperty(Kg,"__esModule",{value:!0});var qO=H(),BO={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:n}){t.if===void 0&&(0,qO.checkStrictMode)(n,`"${e}" without "if" is ignored`)}};Kg.default=BO});var j$=z(Qg=>{"use strict";Object.defineProperty(Qg,"__esModule",{value:!0});var VO=Og(),JO=c$(),HO=Cg(),GO=u$(),WO=d$(),KO=m$(),QO=h$(),YO=Fg(),XO=b$(),e1=k$(),t1=S$(),r1=w$(),n1=z$(),o1=I$(),i1=A$(),a1=T$();function s1(e=!1){let t=[t1.default,r1.default,n1.default,o1.default,i1.default,a1.default,QO.default,YO.default,KO.default,XO.default,e1.default];return e?t.push(JO.default,GO.default):t.push(VO.default,HO.default),t.push(WO.default),t}Qg.default=s1});var O$=z(Yg=>{"use strict";Object.defineProperty(Yg,"__esModule",{value:!0});var be=L(),c1={message:({schemaCode:e})=>(0,be.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,be._)`{format: ${e}}`},l1={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:c1,code(e,t){let{gen:n,data:o,$data:r,schema:i,schemaCode:a,it:s}=e,{opts:l,errSchemaPath:u,schemaEnv:d,self:p}=s;if(!l.validateFormats)return;r?m():f();function m(){let g=n.scopeValue("formats",{ref:p.formats,code:l.code.formats}),h=n.const("fDef",(0,be._)`${g}[${a}]`),b=n.let("fType"),$=n.let("format");n.if((0,be._)`typeof ${h} == "object" && !(${h} instanceof RegExp)`,()=>n.assign(b,(0,be._)`${h}.type || "string"`).assign($,(0,be._)`${h}.validate`),()=>n.assign(b,(0,be._)`"string"`).assign($,h)),e.fail$data((0,be.or)(P(),I()));function P(){return l.strictSchema===!1?be.nil:(0,be._)`${a} && !${$}`}function I(){let j=d.$async?(0,be._)`(${h}.async ? await ${$}(${o}) : ${$}(${o}))`:(0,be._)`${$}(${o})`,E=(0,be._)`(typeof ${$} == "function" ? ${j} : ${$}.test(${o}))`;return(0,be._)`${$} && ${$} !== true && ${b} === ${t} && !${E}`}}function f(){let g=p.formats[i];if(!g){P();return}if(g===!0)return;let[h,b,$]=I(g);h===t&&e.pass(j());function P(){if(l.strictSchema===!1){p.logger.warn(E());return}throw new Error(E());function E(){return`unknown format "${i}" ignored in schema at path "${u}"`}}function I(E){let _e=E instanceof RegExp?(0,be.regexpCode)(E):l.code.formats?(0,be._)`${l.code.formats}${(0,be.getProperty)(i)}`:void 0,xe=n.scopeValue("formats",{key:i,ref:E,code:_e});return typeof E=="object"&&!(E instanceof RegExp)?[E.type||"string",E.validate,(0,be._)`${xe}.validate`]:["string",E,xe]}function j(){if(typeof g=="object"&&!(g instanceof RegExp)&&g.async){if(!d.$async)throw new Error("async format in sync schema");return(0,be._)`await ${$}(${o})`}return typeof b=="function"?(0,be._)`${$}(${o})`:(0,be._)`${$}.test(${o})`}}}};Yg.default=l1});var C$=z(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});var u1=O$(),d1=[u1.default];Xg.default=d1});var N$=z(qn=>{"use strict";Object.defineProperty(qn,"__esModule",{value:!0});qn.contentVocabulary=qn.metadataVocabulary=void 0;qn.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];qn.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var R$=z(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});var p1=Bx(),f1=o$(),m1=j$(),g1=C$(),D$=N$(),h1=[p1.default,f1.default,(0,m1.default)(),g1.default,D$.metadataVocabulary,D$.contentVocabulary];eh.default=h1});var M$=z(xc=>{"use strict";Object.defineProperty(xc,"__esModule",{value:!0});xc.DiscrError=void 0;var U$;(function(e){e.Tag="tag",e.Mapping="mapping"})(U$||(xc.DiscrError=U$={}))});var F$=z(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});var Bn=L(),th=M$(),L$=oc(),v1=vi(),y1=H(),b1={message:({params:{discrError:e,tagName:t}})=>e===th.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:n}})=>(0,Bn._)`{error: ${e}, tag: ${n}, tagValue: ${t}}`},_1={keyword:"discriminator",type:"object",schemaType:"object",error:b1,code(e){let{gen:t,data:n,schema:o,parentSchema:r,it:i}=e,{oneOf:a}=r;if(!i.opts.discriminator)throw new Error("discriminator: requires discriminator option");let s=o.propertyName;if(typeof s!="string")throw new Error("discriminator: requires propertyName");if(o.mapping)throw new Error("discriminator: mapping is not supported");if(!a)throw new Error("discriminator: requires oneOf keyword");let l=t.let("valid",!1),u=t.const("tag",(0,Bn._)`${n}${(0,Bn.getProperty)(s)}`);t.if((0,Bn._)`typeof ${u} == "string"`,()=>d(),()=>e.error(!1,{discrError:th.DiscrError.Tag,tag:u,tagName:s})),e.ok(l);function d(){let f=m();t.if(!1);for(let g in f)t.elseIf((0,Bn._)`${u} === ${g}`),t.assign(l,p(f[g]));t.else(),e.error(!1,{discrError:th.DiscrError.Mapping,tag:u,tagName:s}),t.endIf()}function p(f){let g=t.name("valid"),h=e.subschema({keyword:"oneOf",schemaProp:f},g);return e.mergeEvaluated(h,Bn.Name),g}function m(){var f;let g={},h=$(r),b=!0;for(let j=0;j<a.length;j++){let E=a[j];if(E?.$ref&&!(0,y1.schemaHasRulesButRef)(E,i.self.RULES)){let xe=E.$ref;if(E=L$.resolveRef.call(i.self,i.schemaEnv.root,i.baseId,xe),E instanceof L$.SchemaEnv&&(E=E.schema),E===void 0)throw new v1.default(i.opts.uriResolver,i.baseId,xe)}let _e=(f=E?.properties)===null||f===void 0?void 0:f[s];if(typeof _e!="object")throw new Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${s}"`);b=b&&(h||$(E)),P(_e,j)}if(!b)throw new Error(`discriminator: "${s}" must be required`);return g;function $({required:j}){return Array.isArray(j)&&j.includes(s)}function P(j,E){if(j.const)I(j.const,E);else if(j.enum)for(let _e of j.enum)I(_e,E);else throw new Error(`discriminator: "properties/${s}" must have "const" or "enum"`)}function I(j,E){if(typeof j!="string"||j in g)throw new Error(`discriminator: "${s}" values must be unique strings`);g[j]=E}}}};rh.default=_1});var Z$=z((PZ,x1)=>{x1.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var oh=z((pe,nh)=>{"use strict";Object.defineProperty(pe,"__esModule",{value:!0});pe.MissingRefError=pe.ValidationError=pe.CodeGen=pe.Name=pe.nil=pe.stringify=pe.str=pe._=pe.KeywordCxt=pe.Ajv=void 0;var $1=Ux(),k1=R$(),S1=F$(),q$=Z$(),w1=["/properties"],$c="http://json-schema.org/draft-07/schema",Vn=class extends $1.default{_addVocabularies(){super._addVocabularies(),k1.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(S1.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(q$,w1):q$;this.addMetaSchema(t,$c,!1),this.refs["http://json-schema.org/schema"]=$c}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema($c)?$c:void 0)}};pe.Ajv=Vn;nh.exports=pe=Vn;nh.exports.Ajv=Vn;Object.defineProperty(pe,"__esModule",{value:!0});pe.default=Vn;var z1=hi();Object.defineProperty(pe,"KeywordCxt",{enumerable:!0,get:function(){return z1.KeywordCxt}});var Jn=L();Object.defineProperty(pe,"_",{enumerable:!0,get:function(){return Jn._}});Object.defineProperty(pe,"str",{enumerable:!0,get:function(){return Jn.str}});Object.defineProperty(pe,"stringify",{enumerable:!0,get:function(){return Jn.stringify}});Object.defineProperty(pe,"nil",{enumerable:!0,get:function(){return Jn.nil}});Object.defineProperty(pe,"Name",{enumerable:!0,get:function(){return Jn.Name}});Object.defineProperty(pe,"CodeGen",{enumerable:!0,get:function(){return Jn.CodeGen}});var I1=rc();Object.defineProperty(pe,"ValidationError",{enumerable:!0,get:function(){return I1.default}});var P1=vi();Object.defineProperty(pe,"MissingRefError",{enumerable:!0,get:function(){return P1.default}})});var Q$=z(At=>{"use strict";Object.defineProperty(At,"__esModule",{value:!0});At.formatNames=At.fastFormats=At.fullFormats=void 0;function Et(e,t){return{validate:e,compare:t}}At.fullFormats={date:Et(H$,ch),time:Et(ah(!0),lh),"date-time":Et(B$(!0),W$),"iso-time":Et(ah(),G$),"iso-date-time":Et(B$(),K$),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:C1,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:F1,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:N1,int32:{type:"number",validate:U1},int64:{type:"number",validate:M1},float:{type:"number",validate:J$},double:{type:"number",validate:J$},password:!0,binary:!0};At.fastFormats={...At.fullFormats,date:Et(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,ch),time:Et(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,lh),"date-time":Et(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,W$),"iso-time":Et(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,G$),"iso-date-time":Et(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,K$),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};At.formatNames=Object.keys(At.fullFormats);function E1(e){return e%4===0&&(e%100!==0||e%400===0)}var A1=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,T1=[0,31,28,31,30,31,30,31,31,30,31,30,31];function H$(e){let t=A1.exec(e);if(!t)return!1;let n=+t[1],o=+t[2],r=+t[3];return o>=1&&o<=12&&r>=1&&r<=(o===2&&E1(n)?29:T1[o])}function ch(e,t){if(e&&t)return e>t?1:e<t?-1:0}var ih=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function ah(e){return function(n){let o=ih.exec(n);if(!o)return!1;let r=+o[1],i=+o[2],a=+o[3],s=o[4],l=o[5]==="-"?-1:1,u=+(o[6]||0),d=+(o[7]||0);if(u>23||d>59||e&&!s)return!1;if(r<=23&&i<=59&&a<60)return!0;let p=i-d*l,m=r-u*l-(p<0?1:0);return(m===23||m===-1)&&(p===59||p===-1)&&a<61}}function lh(e,t){if(!(e&&t))return;let n=new Date("2020-01-01T"+e).valueOf(),o=new Date("2020-01-01T"+t).valueOf();if(n&&o)return n-o}function G$(e,t){if(!(e&&t))return;let n=ih.exec(e),o=ih.exec(t);if(n&&o)return e=n[1]+n[2]+n[3],t=o[1]+o[2]+o[3],e>t?1:e<t?-1:0}var sh=/t|\s/i;function B$(e){let t=ah(e);return function(o){let r=o.split(sh);return r.length===2&&H$(r[0])&&t(r[1])}}function W$(e,t){if(!(e&&t))return;let n=new Date(e).valueOf(),o=new Date(t).valueOf();if(n&&o)return n-o}function K$(e,t){if(!(e&&t))return;let[n,o]=e.split(sh),[r,i]=t.split(sh),a=ch(n,r);if(a!==void 0)return a||lh(o,i)}var j1=/\/|:/,O1=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function C1(e){return j1.test(e)&&O1.test(e)}var V$=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function N1(e){return V$.lastIndex=0,V$.test(e)}var D1=-(2**31),R1=2**31-1;function U1(e){return Number.isInteger(e)&&e<=R1&&e>=D1}function M1(e){return Number.isInteger(e)}function J$(){return!0}var L1=/[^\\]\\Z/;function F1(e){if(L1.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var Y$=z(Hn=>{"use strict";Object.defineProperty(Hn,"__esModule",{value:!0});Hn.formatLimitDefinition=void 0;var Z1=oh(),bt=L(),vr=bt.operators,kc={formatMaximum:{okStr:"<=",ok:vr.LTE,fail:vr.GT},formatMinimum:{okStr:">=",ok:vr.GTE,fail:vr.LT},formatExclusiveMaximum:{okStr:"<",ok:vr.LT,fail:vr.GTE},formatExclusiveMinimum:{okStr:">",ok:vr.GT,fail:vr.LTE}},q1={message:({keyword:e,schemaCode:t})=>(0,bt.str)`should be ${kc[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,bt._)`{comparison: ${kc[e].okStr}, limit: ${t}}`};Hn.formatLimitDefinition={keyword:Object.keys(kc),type:"string",schemaType:"string",$data:!0,error:q1,code(e){let{gen:t,data:n,schemaCode:o,keyword:r,it:i}=e,{opts:a,self:s}=i;if(!a.validateFormats)return;let l=new Z1.KeywordCxt(i,s.RULES.all.format.definition,"format");l.$data?u():d();function u(){let m=t.scopeValue("formats",{ref:s.formats,code:a.code.formats}),f=t.const("fmt",(0,bt._)`${m}[${l.schemaCode}]`);e.fail$data((0,bt.or)((0,bt._)`typeof ${f} != "object"`,(0,bt._)`${f} instanceof RegExp`,(0,bt._)`typeof ${f}.compare != "function"`,p(f)))}function d(){let m=l.schema,f=s.formats[m];if(!f||f===!0)return;if(typeof f!="object"||f instanceof RegExp||typeof f.compare!="function")throw new Error(`"${r}": format "${m}" does not define "compare" function`);let g=t.scopeValue("formats",{key:m,ref:f,code:a.code.formats?(0,bt._)`${a.code.formats}${(0,bt.getProperty)(m)}`:void 0});e.fail$data(p(g))}function p(m){return(0,bt._)`${m}.compare(${n}, ${o}) ${kc[r].fail} 0`}},dependencies:["format"]};var B1=e=>(e.addKeyword(Hn.formatLimitDefinition),e);Hn.default=B1});var rk=z((Ti,tk)=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});var Gn=Q$(),V1=Y$(),uh=L(),X$=new uh.Name("fullFormats"),J1=new uh.Name("fastFormats"),dh=(e,t={keywords:!0})=>{if(Array.isArray(t))return ek(e,t,Gn.fullFormats,X$),e;let[n,o]=t.mode==="fast"?[Gn.fastFormats,J1]:[Gn.fullFormats,X$],r=t.formats||Gn.formatNames;return ek(e,r,n,o),t.keywords&&(0,V1.default)(e),e};dh.get=(e,t="full")=>{let o=(t==="fast"?Gn.fastFormats:Gn.fullFormats)[e];if(!o)throw new Error(`Unknown format "${e}"`);return o};function ek(e,t,n,o){var r,i;(r=(i=e.opts.code).formats)!==null&&r!==void 0||(i.formats=(0,uh._)`require("ajv-formats/dist/formats").${o}`);for(let a of t)e.addFormat(a,n[a])}tk.exports=Ti=dh;Object.defineProperty(Ti,"__esModule",{value:!0});Ti.default=dh});var Jt=z((x5,Zk)=>{"use strict";var Lk=["nodebuffer","arraybuffer","fragments"],Fk=typeof Blob<"u";Fk&&Lk.push("blob");Zk.exports={BINARY_TYPES:Lk,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:Fk,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var Ui=z(($5,Dc)=>{"use strict";var{EMPTY_BUFFER:yN}=Jt(),kh=Buffer[Symbol.species];function bN(e,t){if(e.length===0)return yN;if(e.length===1)return e[0];let n=Buffer.allocUnsafe(t),o=0;for(let r=0;r<e.length;r++){let i=e[r];n.set(i,o),o+=i.length}return o<t?new kh(n.buffer,n.byteOffset,o):n}function qk(e,t,n,o,r){for(let i=0;i<r;i++)n[o+i]=e[i]^t[i&3]}function Bk(e,t){for(let n=0;n<e.length;n++)e[n]^=t[n&3]}function _N(e){return e.length===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.length)}function Sh(e){if(Sh.readOnly=!0,Buffer.isBuffer(e))return e;let t;return e instanceof ArrayBuffer?t=new kh(e):ArrayBuffer.isView(e)?t=new kh(e.buffer,e.byteOffset,e.byteLength):(t=Buffer.from(e),Sh.readOnly=!1),t}Dc.exports={concat:bN,mask:qk,toArrayBuffer:_N,toBuffer:Sh,unmask:Bk};if(!process.env.WS_NO_BUFFER_UTIL)try{let e=ge("bufferutil");Dc.exports.mask=function(t,n,o,r,i){i<48?qk(t,n,o,r,i):e.mask(t,n,o,r,i)},Dc.exports.unmask=function(t,n){t.length<32?Bk(t,n):e.unmask(t,n)}}catch{}});var Hk=z((k5,Jk)=>{"use strict";var Vk=Symbol("kDone"),wh=Symbol("kRun"),zh=class{constructor(t){this[Vk]=()=>{this.pending--,this[wh]()},this.concurrency=t||1/0,this.jobs=[],this.pending=0}add(t){this.jobs.push(t),this[wh]()}[wh](){if(this.pending!==this.concurrency&&this.jobs.length){let t=this.jobs.shift();this.pending++,t(this[Vk])}}};Jk.exports=zh});var ro=z((S5,Qk)=>{"use strict";var Mi=ge("zlib"),Gk=Ui(),xN=Hk(),{kStatusCode:Wk}=Jt(),$N=Buffer[Symbol.species],kN=Buffer.from([0,0,255,255]),Uc=Symbol("permessage-deflate"),Ht=Symbol("total-length"),eo=Symbol("callback"),yr=Symbol("buffers"),to=Symbol("error"),Rc,Ih=class{constructor(t){if(this._options=t||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!Rc){let n=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;Rc=new xN(n)}}static get extensionName(){return"permessage-deflate"}offer(){let t={};return this._options.serverNoContextTakeover&&(t.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(t.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(t.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?t.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(t.client_max_window_bits=!0),t}accept(t){return t=this.normalizeParams(t),this.params=this._isServer?this.acceptAsServer(t):this.acceptAsClient(t),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let t=this._deflate[eo];this._deflate.close(),this._deflate=null,t&&t(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(t){let n=this._options,o=t.find(r=>!(n.serverNoContextTakeover===!1&&r.server_no_context_takeover||r.server_max_window_bits&&(n.serverMaxWindowBits===!1||typeof n.serverMaxWindowBits=="number"&&n.serverMaxWindowBits>r.server_max_window_bits)||typeof n.clientMaxWindowBits=="number"&&!r.client_max_window_bits));if(!o)throw new Error("None of the extension offers can be accepted");return n.serverNoContextTakeover&&(o.server_no_context_takeover=!0),n.clientNoContextTakeover&&(o.client_no_context_takeover=!0),typeof n.serverMaxWindowBits=="number"&&(o.server_max_window_bits=n.serverMaxWindowBits),typeof n.clientMaxWindowBits=="number"?o.client_max_window_bits=n.clientMaxWindowBits:(o.client_max_window_bits===!0||n.clientMaxWindowBits===!1)&&delete o.client_max_window_bits,o}acceptAsClient(t){let n=t[0];if(this._options.clientNoContextTakeover===!1&&n.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!n.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(n.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&n.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return n}normalizeParams(t){return t.forEach(n=>{Object.keys(n).forEach(o=>{let r=n[o];if(r.length>1)throw new Error(`Parameter "${o}" must have only a single value`);if(r=r[0],o==="client_max_window_bits"){if(r!==!0){let i=+r;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${o}": ${r}`);r=i}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${o}": ${r}`)}else if(o==="server_max_window_bits"){let i=+r;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${o}": ${r}`);r=i}else if(o==="client_no_context_takeover"||o==="server_no_context_takeover"){if(r!==!0)throw new TypeError(`Invalid value for parameter "${o}": ${r}`)}else throw new Error(`Unknown parameter "${o}"`);n[o]=r})}),t}decompress(t,n,o){Rc.add(r=>{this._decompress(t,n,(i,a)=>{r(),o(i,a)})})}compress(t,n,o){Rc.add(r=>{this._compress(t,n,(i,a)=>{r(),o(i,a)})})}_decompress(t,n,o){let r=this._isServer?"client":"server";if(!this._inflate){let i=`${r}_max_window_bits`,a=typeof this.params[i]!="number"?Mi.Z_DEFAULT_WINDOWBITS:this.params[i];this._inflate=Mi.createInflateRaw({...this._options.zlibInflateOptions,windowBits:a}),this._inflate[Uc]=this,this._inflate[Ht]=0,this._inflate[yr]=[],this._inflate.on("error",wN),this._inflate.on("data",Kk)}this._inflate[eo]=o,this._inflate.write(t),n&&this._inflate.write(kN),this._inflate.flush(()=>{let i=this._inflate[to];if(i){this._inflate.close(),this._inflate=null,o(i);return}let a=Gk.concat(this._inflate[yr],this._inflate[Ht]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[Ht]=0,this._inflate[yr]=[],n&&this.params[`${r}_no_context_takeover`]&&this._inflate.reset()),o(null,a)})}_compress(t,n,o){let r=this._isServer?"server":"client";if(!this._deflate){let i=`${r}_max_window_bits`,a=typeof this.params[i]!="number"?Mi.Z_DEFAULT_WINDOWBITS:this.params[i];this._deflate=Mi.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:a}),this._deflate[Ht]=0,this._deflate[yr]=[],this._deflate.on("data",SN)}this._deflate[eo]=o,this._deflate.write(t),this._deflate.flush(Mi.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let i=Gk.concat(this._deflate[yr],this._deflate[Ht]);n&&(i=new $N(i.buffer,i.byteOffset,i.length-4)),this._deflate[eo]=null,this._deflate[Ht]=0,this._deflate[yr]=[],n&&this.params[`${r}_no_context_takeover`]&&this._deflate.reset(),o(null,i)})}};Qk.exports=Ih;function SN(e){this[yr].push(e),this[Ht]+=e.length}function Kk(e){if(this[Ht]+=e.length,this[Uc]._maxPayload<1||this[Ht]<=this[Uc]._maxPayload){this[yr].push(e);return}this[to]=new RangeError("Max payload size exceeded"),this[to].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[to][Wk]=1009,this.removeListener("data",Kk),this.reset()}function wN(e){if(this[Uc]._inflate=null,this[to]){this[eo](this[to]);return}e[Wk]=1007,this[eo](e)}});var no=z((w5,Mc)=>{"use strict";var{isUtf8:Yk}=ge("buffer"),{hasBlob:zN}=Jt(),IN=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function PN(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function Ph(e){let t=e.length,n=0;for(;n<t;)if((e[n]&128)===0)n++;else if((e[n]&224)===192){if(n+1===t||(e[n+1]&192)!==128||(e[n]&254)===192)return!1;n+=2}else if((e[n]&240)===224){if(n+2>=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||e[n]===224&&(e[n+1]&224)===128||e[n]===237&&(e[n+1]&224)===160)return!1;n+=3}else if((e[n]&248)===240){if(n+3>=t||(e[n+1]&192)!==128||(e[n+2]&192)!==128||(e[n+3]&192)!==128||e[n]===240&&(e[n+1]&240)===128||e[n]===244&&e[n+1]>143||e[n]>244)return!1;n+=4}else return!1;return!0}function EN(e){return zN&&typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&(e[Symbol.toStringTag]==="Blob"||e[Symbol.toStringTag]==="File")}Mc.exports={isBlob:EN,isValidStatusCode:PN,isValidUTF8:Ph,tokenChars:IN};if(Yk)Mc.exports.isValidUTF8=function(e){return e.length<24?Ph(e):Yk(e)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let e=ge("utf-8-validate");Mc.exports.isValidUTF8=function(t){return t.length<32?Ph(t):e(t)}}catch{}});var Oh=z((z5,iS)=>{"use strict";var{Writable:AN}=ge("stream"),Xk=ro(),{BINARY_TYPES:TN,EMPTY_BUFFER:eS,kStatusCode:jN,kWebSocket:ON}=Jt(),{concat:Eh,toArrayBuffer:CN,unmask:NN}=Ui(),{isValidStatusCode:DN,isValidUTF8:tS}=no(),Lc=Buffer[Symbol.species],ut=0,rS=1,nS=2,oS=3,Ah=4,Th=5,Fc=6,jh=class extends AN{constructor(t={}){super(),this._allowSynchronousEvents=t.allowSynchronousEvents!==void 0?t.allowSynchronousEvents:!0,this._binaryType=t.binaryType||TN[0],this._extensions=t.extensions||{},this._isServer=!!t.isServer,this._maxBufferedChunks=t.maxBufferedChunks|0,this._maxFragments=t.maxFragments|0,this._maxPayload=t.maxPayload|0,this._skipUTF8Validation=!!t.skipUTF8Validation,this[ON]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=ut}_write(t,n,o){if(this._opcode===8&&this._state==ut)return o();if(this._maxBufferedChunks>0&&this._buffers.length>=this._maxBufferedChunks){o(this.createError(RangeError,"Too many buffered chunks",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS"));return}this._bufferedBytes+=t.length,this._buffers.push(t),this.startLoop(o)}consume(t){if(this._bufferedBytes-=t,t===this._buffers[0].length)return this._buffers.shift();if(t<this._buffers[0].length){let o=this._buffers[0];return this._buffers[0]=new Lc(o.buffer,o.byteOffset+t,o.length-t),new Lc(o.buffer,o.byteOffset,t)}let n=Buffer.allocUnsafe(t);do{let o=this._buffers[0],r=n.length-t;t>=o.length?n.set(this._buffers.shift(),r):(n.set(new Uint8Array(o.buffer,o.byteOffset,t),r),this._buffers[0]=new Lc(o.buffer,o.byteOffset+t,o.length-t)),t-=o.length}while(t>0);return n}startLoop(t){this._loop=!0;do switch(this._state){case ut:this.getInfo(t);break;case rS:this.getPayloadLength16(t);break;case nS:this.getPayloadLength64(t);break;case oS:this.getMask();break;case Ah:this.getData(t);break;case Th:case Fc:this._loop=!1;return}while(this._loop);this._errored||t()}getInfo(t){if(this._bufferedBytes<2){this._loop=!1;return}let n=this.consume(2);if((n[0]&48)!==0){let r=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");t(r);return}let o=(n[0]&64)===64;if(o&&!this._extensions[Xk.extensionName]){let r=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(r);return}if(this._fin=(n[0]&128)===128,this._opcode=n[0]&15,this._payloadLength=n[1]&127,this._opcode===0){if(o){let r=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(r);return}if(!this._fragmented){let r=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");t(r);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let r=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(r);return}this._compressed=o}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let r=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");t(r);return}if(o){let r=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");t(r);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let r=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");t(r);return}}else{let r=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");t(r);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(n[1]&128)===128,this._isServer){if(!this._masked){let r=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");t(r);return}}else if(this._masked){let r=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");t(r);return}this._payloadLength===126?this._state=rS:this._payloadLength===127?this._state=nS:this.haveLength(t)}getPayloadLength16(t){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(t)}getPayloadLength64(t){if(this._bufferedBytes<8){this._loop=!1;return}let n=this.consume(8),o=n.readUInt32BE(0);if(o>Math.pow(2,21)-1){let r=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");t(r);return}this._payloadLength=o*Math.pow(2,32)+n.readUInt32BE(4),this.haveLength(t)}haveLength(t){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let n=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(n);return}this._masked?this._state=oS:this._state=Ah}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Ah}getData(t){let n=eS;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}n=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&NN(n,this._mask)}if(this._opcode>7){this.controlMessage(n,t);return}if(this._compressed){this._state=Th,this.decompress(n,t);return}if(n.length){if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let o=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");t(o);return}this._messageLength=this._totalPayloadLength,this._fragments.push(n)}this.dataMessage(t)}decompress(t,n){this._extensions[Xk.extensionName].decompress(t,this._fin,(r,i)=>{if(r)return n(r);if(i.length){if(this._messageLength+=i.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let a=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");n(a);return}if(this._maxFragments>0&&this._fragments.length>=this._maxFragments){let a=this.createError(RangeError,"Too many message fragments",!1,1008,"WS_ERR_TOO_MANY_BUFFERED_PARTS");n(a);return}this._fragments.push(i)}this.dataMessage(n),this._state===ut&&this.startLoop(n)})}dataMessage(t){if(!this._fin){this._state=ut;return}let n=this._messageLength,o=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let r;this._binaryType==="nodebuffer"?r=Eh(o,n):this._binaryType==="arraybuffer"?r=CN(Eh(o,n)):this._binaryType==="blob"?r=new Blob(o):r=o,this._allowSynchronousEvents?(this.emit("message",r,!0),this._state=ut):(this._state=Fc,setImmediate(()=>{this.emit("message",r,!0),this._state=ut,this.startLoop(t)}))}else{let r=Eh(o,n);if(!this._skipUTF8Validation&&!tS(r)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(i);return}this._state===Th||this._allowSynchronousEvents?(this.emit("message",r,!1),this._state=ut):(this._state=Fc,setImmediate(()=>{this.emit("message",r,!1),this._state=ut,this.startLoop(t)}))}}controlMessage(t,n){if(this._opcode===8){if(t.length===0)this._loop=!1,this.emit("conclude",1005,eS),this.end();else{let o=t.readUInt16BE(0);if(!DN(o)){let i=this.createError(RangeError,`invalid status code ${o}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");n(i);return}let r=new Lc(t.buffer,t.byteOffset+2,t.length-2);if(!this._skipUTF8Validation&&!tS(r)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");n(i);return}this._loop=!1,this.emit("conclude",o,r),this.end()}this._state=ut;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",t),this._state=ut):(this._state=Fc,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",t),this._state=ut,this.startLoop(n)}))}createError(t,n,o,r,i){this._loop=!1,this._errored=!0;let a=new t(o?`Invalid WebSocket frame: ${n}`:n);return Error.captureStackTrace(a,this.createError),a.code=i,a[jN]=r,a}};iS.exports=jh});var Dh=z((P5,cS)=>{"use strict";var{Duplex:I5}=ge("stream"),{randomFillSync:RN}=ge("crypto"),{types:{isUint8Array:UN}}=ge("util"),aS=ro(),{EMPTY_BUFFER:MN,kWebSocket:LN,NOOP:FN}=Jt(),{isBlob:oo,isValidStatusCode:ZN}=no(),{mask:sS,toBuffer:Fr}=Ui(),dt=Symbol("kByteLength"),qN=Buffer.alloc(4),Zc=8*1024,Zr,io=Zc,_t=0,BN=1,VN=2,Ch=class e{constructor(t,n,o){this._extensions=n||{},o&&(this._generateMask=o,this._maskBuffer=Buffer.alloc(4)),this._socket=t,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=_t,this.onerror=FN,this[LN]=void 0}static frame(t,n){let o,r=!1,i=2,a=!1;n.mask&&(o=n.maskBuffer||qN,n.generateMask?n.generateMask(o):(io===Zc&&(Zr===void 0&&(Zr=Buffer.alloc(Zc)),RN(Zr,0,Zc),io=0),o[0]=Zr[io++],o[1]=Zr[io++],o[2]=Zr[io++],o[3]=Zr[io++]),a=(o[0]|o[1]|o[2]|o[3])===0,i=6);let s;typeof t=="string"?(!n.mask||a)&&n[dt]!==void 0?s=n[dt]:(t=Buffer.from(t),s=t.length):(s=t.length,r=n.mask&&n.readOnly&&!a);let l=s;s>=65536?(i+=8,l=127):s>125&&(i+=2,l=126);let u=Buffer.allocUnsafe(r?s+i:i);return u[0]=n.fin?n.opcode|128:n.opcode,n.rsv1&&(u[0]|=64),u[1]=l,l===126?u.writeUInt16BE(s,2):l===127&&(u[2]=u[3]=0,u.writeUIntBE(s,4,6)),n.mask?(u[1]|=128,u[i-4]=o[0],u[i-3]=o[1],u[i-2]=o[2],u[i-1]=o[3],a?[u,t]:r?(sS(t,o,u,i,s),[u]):(sS(t,o,t,0,s),[u,t])):[u,t]}close(t,n,o,r){let i;if(t===void 0)i=MN;else{if(typeof t!="number"||!ZN(t))throw new TypeError("First argument must be a valid error code number");if(n===void 0||!n.length)i=Buffer.allocUnsafe(2),i.writeUInt16BE(t,0);else{let s=Buffer.byteLength(n);if(s>123)throw new RangeError("The message must not be greater than 123 bytes");if(i=Buffer.allocUnsafe(2+s),i.writeUInt16BE(t,0),typeof n=="string")i.write(n,2);else if(UN(n))i.set(n,2);else throw new TypeError("Second argument must be a string or a Uint8Array")}}let a={[dt]:i.length,fin:!0,generateMask:this._generateMask,mask:o,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==_t?this.enqueue([this.dispatch,i,!1,a,r]):this.sendFrame(e.frame(i,a),r)}ping(t,n,o){let r,i;if(typeof t=="string"?(r=Buffer.byteLength(t),i=!1):oo(t)?(r=t.size,i=!1):(t=Fr(t),r=t.length,i=Fr.readOnly),r>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[dt]:r,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};oo(t)?this._state!==_t?this.enqueue([this.getBlobData,t,!1,a,o]):this.getBlobData(t,!1,a,o):this._state!==_t?this.enqueue([this.dispatch,t,!1,a,o]):this.sendFrame(e.frame(t,a),o)}pong(t,n,o){let r,i;if(typeof t=="string"?(r=Buffer.byteLength(t),i=!1):oo(t)?(r=t.size,i=!1):(t=Fr(t),r=t.length,i=Fr.readOnly),r>125)throw new RangeError("The data size must not be greater than 125 bytes");let a={[dt]:r,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};oo(t)?this._state!==_t?this.enqueue([this.getBlobData,t,!1,a,o]):this.getBlobData(t,!1,a,o):this._state!==_t?this.enqueue([this.dispatch,t,!1,a,o]):this.sendFrame(e.frame(t,a),o)}send(t,n,o){let r=this._extensions[aS.extensionName],i=n.binary?2:1,a=n.compress,s,l;typeof t=="string"?(s=Buffer.byteLength(t),l=!1):oo(t)?(s=t.size,l=!1):(t=Fr(t),s=t.length,l=Fr.readOnly),this._firstFragment?(this._firstFragment=!1,a&&r&&r.params[r._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(a=s>=r._threshold),this._compress=a):(a=!1,i=0),n.fin&&(this._firstFragment=!0);let u={[dt]:s,fin:n.fin,generateMask:this._generateMask,mask:n.mask,maskBuffer:this._maskBuffer,opcode:i,readOnly:l,rsv1:a};oo(t)?this._state!==_t?this.enqueue([this.getBlobData,t,this._compress,u,o]):this.getBlobData(t,this._compress,u,o):this._state!==_t?this.enqueue([this.dispatch,t,this._compress,u,o]):this.dispatch(t,this._compress,u,o)}getBlobData(t,n,o,r){this._bufferedBytes+=o[dt],this._state=VN,t.arrayBuffer().then(i=>{if(this._socket.destroyed){let s=new Error("The socket was closed while the blob was being read");process.nextTick(Nh,this,s,r);return}this._bufferedBytes-=o[dt];let a=Fr(i);n?this.dispatch(a,n,o,r):(this._state=_t,this.sendFrame(e.frame(a,o),r),this.dequeue())}).catch(i=>{process.nextTick(JN,this,i,r)})}dispatch(t,n,o,r){if(!n){this.sendFrame(e.frame(t,o),r);return}let i=this._extensions[aS.extensionName];this._bufferedBytes+=o[dt],this._state=BN,i.compress(t,o.fin,(a,s)=>{if(this._socket.destroyed){let l=new Error("The socket was closed while data was being compressed");Nh(this,l,r);return}this._bufferedBytes-=o[dt],this._state=_t,o.readOnly=!1,this.sendFrame(e.frame(s,o),r),this.dequeue()})}dequeue(){for(;this._state===_t&&this._queue.length;){let t=this._queue.shift();this._bufferedBytes-=t[3][dt],Reflect.apply(t[0],this,t.slice(1))}}enqueue(t){this._bufferedBytes+=t[3][dt],this._queue.push(t)}sendFrame(t,n){t.length===2?(this._socket.cork(),this._socket.write(t[0]),this._socket.write(t[1],n),this._socket.uncork()):this._socket.write(t[0],n)}};cS.exports=Ch;function Nh(e,t,n){typeof n=="function"&&n(t);for(let o=0;o<e._queue.length;o++){let r=e._queue[o],i=r[r.length-1];typeof i=="function"&&i(t)}}function JN(e,t,n){Nh(e,t,n),e.onerror(t)}});var vS=z((E5,hS)=>{"use strict";var{kForOnEventAttribute:Li,kListener:Rh}=Jt(),lS=Symbol("kCode"),uS=Symbol("kData"),dS=Symbol("kError"),pS=Symbol("kMessage"),fS=Symbol("kReason"),ao=Symbol("kTarget"),mS=Symbol("kType"),gS=Symbol("kWasClean"),Gt=class{constructor(t){this[ao]=null,this[mS]=t}get target(){return this[ao]}get type(){return this[mS]}};Object.defineProperty(Gt.prototype,"target",{enumerable:!0});Object.defineProperty(Gt.prototype,"type",{enumerable:!0});var qr=class extends Gt{constructor(t,n={}){super(t),this[lS]=n.code===void 0?0:n.code,this[fS]=n.reason===void 0?"":n.reason,this[gS]=n.wasClean===void 0?!1:n.wasClean}get code(){return this[lS]}get reason(){return this[fS]}get wasClean(){return this[gS]}};Object.defineProperty(qr.prototype,"code",{enumerable:!0});Object.defineProperty(qr.prototype,"reason",{enumerable:!0});Object.defineProperty(qr.prototype,"wasClean",{enumerable:!0});var so=class extends Gt{constructor(t,n={}){super(t),this[dS]=n.error===void 0?null:n.error,this[pS]=n.message===void 0?"":n.message}get error(){return this[dS]}get message(){return this[pS]}};Object.defineProperty(so.prototype,"error",{enumerable:!0});Object.defineProperty(so.prototype,"message",{enumerable:!0});var Fi=class extends Gt{constructor(t,n={}){super(t),this[uS]=n.data===void 0?null:n.data}get data(){return this[uS]}};Object.defineProperty(Fi.prototype,"data",{enumerable:!0});var HN={addEventListener(e,t,n={}){for(let r of this.listeners(e))if(!n[Li]&&r[Rh]===t&&!r[Li])return;let o;if(e==="message")o=function(i,a){let s=new Fi("message",{data:a?i:i.toString()});s[ao]=this,qc(t,this,s)};else if(e==="close")o=function(i,a){let s=new qr("close",{code:i,reason:a.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});s[ao]=this,qc(t,this,s)};else if(e==="error")o=function(i){let a=new so("error",{error:i,message:i.message});a[ao]=this,qc(t,this,a)};else if(e==="open")o=function(){let i=new Gt("open");i[ao]=this,qc(t,this,i)};else return;o[Li]=!!n[Li],o[Rh]=t,n.once?this.once(e,o):this.on(e,o)},removeEventListener(e,t){for(let n of this.listeners(e))if(n[Rh]===t&&!n[Li]){this.removeListener(e,n);break}}};hS.exports={CloseEvent:qr,ErrorEvent:so,Event:Gt,EventTarget:HN,MessageEvent:Fi};function qc(e,t,n){typeof e=="object"&&e.handleEvent?e.handleEvent.call(e,n):e.call(t,n)}});var Bc=z((A5,yS)=>{"use strict";var{tokenChars:Zi}=no();function Tt(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}function GN(e){let t=Object.create(null),n=Object.create(null),o=!1,r=!1,i=!1,a,s,l=-1,u=-1,d=-1,p=0;for(;p<e.length;p++)if(u=e.charCodeAt(p),a===void 0)if(d===-1&&Zi[u]===1)l===-1&&(l=p);else if(p!==0&&(u===32||u===9))d===-1&&l!==-1&&(d=p);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${p}`);d===-1&&(d=p);let f=e.slice(l,d);u===44?(Tt(t,f,n),n=Object.create(null)):a=f,l=d=-1}else throw new SyntaxError(`Unexpected character at index ${p}`);else if(s===void 0)if(d===-1&&Zi[u]===1)l===-1&&(l=p);else if(u===32||u===9)d===-1&&l!==-1&&(d=p);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${p}`);d===-1&&(d=p),Tt(n,e.slice(l,d),!0),u===44&&(Tt(t,a,n),n=Object.create(null),a=void 0),l=d=-1}else if(u===61&&l!==-1&&d===-1)s=e.slice(l,p),l=d=-1;else throw new SyntaxError(`Unexpected character at index ${p}`);else if(r){if(Zi[u]!==1)throw new SyntaxError(`Unexpected character at index ${p}`);l===-1?l=p:o||(o=!0),r=!1}else if(i)if(Zi[u]===1)l===-1&&(l=p);else if(u===34&&l!==-1)i=!1,d=p;else if(u===92)r=!0;else throw new SyntaxError(`Unexpected character at index ${p}`);else if(u===34&&e.charCodeAt(p-1)===61)i=!0;else if(d===-1&&Zi[u]===1)l===-1&&(l=p);else if(l!==-1&&(u===32||u===9))d===-1&&(d=p);else if(u===59||u===44){if(l===-1)throw new SyntaxError(`Unexpected character at index ${p}`);d===-1&&(d=p);let f=e.slice(l,d);o&&(f=f.replace(/\\/g,""),o=!1),Tt(n,s,f),u===44&&(Tt(t,a,n),n=Object.create(null),a=void 0),s=void 0,l=d=-1}else throw new SyntaxError(`Unexpected character at index ${p}`);if(l===-1||i||u===32||u===9)throw new SyntaxError("Unexpected end of input");d===-1&&(d=p);let m=e.slice(l,d);return a===void 0?Tt(t,m,n):(s===void 0?Tt(n,m,!0):o?Tt(n,s,m.replace(/\\/g,"")):Tt(n,s,m),Tt(t,a,n)),t}function WN(e){return Object.keys(e).map(t=>{let n=e[t];return Array.isArray(n)||(n=[n]),n.map(o=>[t].concat(Object.keys(o).map(r=>{let i=o[r];return Array.isArray(i)||(i=[i]),i.map(a=>a===!0?r:`${r}=${a}`).join("; ")})).join("; ")).join(", ")}).join(", ")}yS.exports={format:WN,parse:GN}});var Gc=z((O5,AS)=>{"use strict";var KN=ge("events"),QN=ge("https"),YN=ge("http"),xS=ge("net"),XN=ge("tls"),{randomBytes:eD,createHash:tD}=ge("crypto"),{Duplex:T5,Readable:j5}=ge("stream"),{URL:Uh}=ge("url"),br=ro(),rD=Oh(),nD=Dh(),{isBlob:oD}=no(),{BINARY_TYPES:bS,CLOSE_TIMEOUT:iD,EMPTY_BUFFER:Vc,GUID:aD,kForOnEventAttribute:Mh,kListener:sD,kStatusCode:cD,kWebSocket:Se,NOOP:$S}=Jt(),{EventTarget:{addEventListener:lD,removeEventListener:uD}}=vS(),{format:dD,parse:pD}=Bc(),{toBuffer:fD}=Ui(),kS=Symbol("kAborted"),Lh=[8,13],Wt=["CONNECTING","OPEN","CLOSING","CLOSED"],mD=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,fe=class e extends KN{constructor(t,n,o){super(),this._binaryType=bS[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=Vc,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=e.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,t!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,n===void 0?n=[]:Array.isArray(n)||(typeof n=="object"&&n!==null?(o=n,n=[]):n=[n]),SS(this,t,n,o)):(this._autoPong=o.autoPong,this._closeTimeout=o.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(t){bS.includes(t)&&(this._binaryType=t,this._receiver&&(this._receiver._binaryType=t))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(t,n,o){let r=new rD({allowSynchronousEvents:o.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxBufferedChunks:o.maxBufferedChunks,maxFragments:o.maxFragments,maxPayload:o.maxPayload,skipUTF8Validation:o.skipUTF8Validation}),i=new nD(t,this._extensions,o.generateMask);this._receiver=r,this._sender=i,this._socket=t,r[Se]=this,i[Se]=this,t[Se]=this,r.on("conclude",vD),r.on("drain",yD),r.on("error",bD),r.on("message",_D),r.on("ping",xD),r.on("pong",$D),i.onerror=kD,t.setTimeout&&t.setTimeout(0),t.setNoDelay&&t.setNoDelay(),n.length>0&&t.unshift(n),t.on("close",IS),t.on("data",Hc),t.on("end",PS),t.on("error",ES),this._readyState=e.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[br.extensionName]&&this._extensions[br.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=e.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(t,n){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){rt(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===e.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=e.CLOSING,this._sender.close(t,n,!this._isServer,o=>{o||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),zS(this)}}pause(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!0,this._socket.pause())}ping(t,n,o){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(o=t,t=n=void 0):typeof n=="function"&&(o=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Fh(this,t,o);return}n===void 0&&(n=!this._isServer),this._sender.ping(t||Vc,n,o)}pong(t,n,o){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"?(o=t,t=n=void 0):typeof n=="function"&&(o=n,n=void 0),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Fh(this,t,o);return}n===void 0&&(n=!this._isServer),this._sender.pong(t||Vc,n,o)}resume(){this.readyState===e.CONNECTING||this.readyState===e.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(t,n,o){if(this.readyState===e.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof n=="function"&&(o=n,n={}),typeof t=="number"&&(t=t.toString()),this.readyState!==e.OPEN){Fh(this,t,o);return}let r={binary:typeof t!="string",mask:!this._isServer,compress:!0,fin:!0,...n};this._extensions[br.extensionName]||(r.compress=!1),this._sender.send(t||Vc,r,o)}terminate(){if(this.readyState!==e.CLOSED){if(this.readyState===e.CONNECTING){rt(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=e.CLOSING,this._socket.destroy())}}};Object.defineProperty(fe,"CONNECTING",{enumerable:!0,value:Wt.indexOf("CONNECTING")});Object.defineProperty(fe.prototype,"CONNECTING",{enumerable:!0,value:Wt.indexOf("CONNECTING")});Object.defineProperty(fe,"OPEN",{enumerable:!0,value:Wt.indexOf("OPEN")});Object.defineProperty(fe.prototype,"OPEN",{enumerable:!0,value:Wt.indexOf("OPEN")});Object.defineProperty(fe,"CLOSING",{enumerable:!0,value:Wt.indexOf("CLOSING")});Object.defineProperty(fe.prototype,"CLOSING",{enumerable:!0,value:Wt.indexOf("CLOSING")});Object.defineProperty(fe,"CLOSED",{enumerable:!0,value:Wt.indexOf("CLOSED")});Object.defineProperty(fe.prototype,"CLOSED",{enumerable:!0,value:Wt.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(e=>{Object.defineProperty(fe.prototype,e,{enumerable:!0})});["open","error","close","message"].forEach(e=>{Object.defineProperty(fe.prototype,`on${e}`,{enumerable:!0,get(){for(let t of this.listeners(e))if(t[Mh])return t[sD];return null},set(t){for(let n of this.listeners(e))if(n[Mh]){this.removeListener(e,n);break}typeof t=="function"&&this.addEventListener(e,t,{[Mh]:!0})}})});fe.prototype.addEventListener=lD;fe.prototype.removeEventListener=uD;AS.exports=fe;function SS(e,t,n,o){let r={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:iD,protocolVersion:Lh[1],maxBufferedChunks:1048576,maxFragments:131072,maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...o,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(e._autoPong=r.autoPong,e._closeTimeout=r.closeTimeout,!Lh.includes(r.protocolVersion))throw new RangeError(`Unsupported protocol version: ${r.protocolVersion} (supported versions: ${Lh.join(", ")})`);let i;if(t instanceof Uh)i=t;else try{i=new Uh(t)}catch{throw new SyntaxError(`Invalid URL: ${t}`)}i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),e._url=i.href;let a=i.protocol==="wss:",s=i.protocol==="ws+unix:",l;if(i.protocol!=="ws:"&&!a&&!s?l=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:s&&!i.pathname?l="The URL's pathname is empty":i.hash&&(l="The URL contains a fragment identifier"),l){let h=new SyntaxError(l);if(e._redirects===0)throw h;Jc(e,h);return}let u=a?443:80,d=eD(16).toString("base64"),p=a?QN.request:YN.request,m=new Set,f;if(r.createConnection=r.createConnection||(a?hD:gD),r.defaultPort=r.defaultPort||u,r.port=i.port||u,r.host=i.hostname.startsWith("[")?i.hostname.slice(1,-1):i.hostname,r.headers={...r.headers,"Sec-WebSocket-Version":r.protocolVersion,"Sec-WebSocket-Key":d,Connection:"Upgrade",Upgrade:"websocket"},r.path=i.pathname+i.search,r.timeout=r.handshakeTimeout,r.perMessageDeflate&&(f=new br({...r.perMessageDeflate,isServer:!1,maxPayload:r.maxPayload}),r.headers["Sec-WebSocket-Extensions"]=dD({[br.extensionName]:f.offer()})),n.length){for(let h of n){if(typeof h!="string"||!mD.test(h)||m.has(h))throw new SyntaxError("An invalid or duplicated subprotocol was specified");m.add(h)}r.headers["Sec-WebSocket-Protocol"]=n.join(",")}if(r.origin&&(r.protocolVersion<13?r.headers["Sec-WebSocket-Origin"]=r.origin:r.headers.Origin=r.origin),(i.username||i.password)&&(r.auth=`${i.username}:${i.password}`),s){let h=r.path.split(":");r.socketPath=h[0],r.path=h[1]}let g;if(r.followRedirects){if(e._redirects===0){e._originalIpc=s,e._originalSecure=a,e._originalHostOrSocketPath=s?r.socketPath:i.host;let h=o&&o.headers;if(o={...o,headers:{}},h)for(let[b,$]of Object.entries(h))o.headers[b.toLowerCase()]=$}else if(e.listenerCount("redirect")===0){let h=s?e._originalIpc?r.socketPath===e._originalHostOrSocketPath:!1:e._originalIpc?!1:i.host===e._originalHostOrSocketPath;(!h||e._originalSecure&&!a)&&(delete r.headers.authorization,delete r.headers.cookie,h||delete r.headers.host,r.auth=void 0)}r.auth&&!o.headers.authorization&&(o.headers.authorization="Basic "+Buffer.from(r.auth).toString("base64")),g=e._req=p(r),e._redirects&&e.emit("redirect",e.url,g)}else g=e._req=p(r);r.timeout&&g.on("timeout",()=>{rt(e,g,"Opening handshake has timed out")}),g.on("error",h=>{g===null||g[kS]||(g=e._req=null,Jc(e,h))}),g.on("response",h=>{let b=h.headers.location,$=h.statusCode;if(b&&r.followRedirects&&$>=300&&$<400){if(++e._redirects>r.maxRedirects){rt(e,g,"Maximum redirects exceeded");return}g.abort();let P;try{P=new Uh(b,t)}catch{let j=new SyntaxError(`Invalid URL: ${b}`);Jc(e,j);return}SS(e,P,n,o)}else e.emit("unexpected-response",g,h)||rt(e,g,`Unexpected server response: ${h.statusCode}`)}),g.on("upgrade",(h,b,$)=>{if(e.emit("upgrade",h),e.readyState!==fe.CONNECTING)return;g=e._req=null;let P=h.headers.upgrade;if(P===void 0||P.toLowerCase()!=="websocket"){rt(e,b,"Invalid Upgrade header");return}let I=tD("sha1").update(d+aD).digest("base64");if(h.headers["sec-websocket-accept"]!==I){rt(e,b,"Invalid Sec-WebSocket-Accept header");return}let j=h.headers["sec-websocket-protocol"],E;if(j!==void 0?m.size?m.has(j)||(E="Server sent an invalid subprotocol"):E="Server sent a subprotocol but none was requested":m.size&&(E="Server sent no subprotocol"),E){rt(e,b,E);return}j&&(e._protocol=j);let _e=h.headers["sec-websocket-extensions"];if(_e!==void 0){if(!f){rt(e,b,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let xe;try{xe=pD(_e)}catch{rt(e,b,"Invalid Sec-WebSocket-Extensions header");return}let ke=Object.keys(xe);if(ke.length!==1||ke[0]!==br.extensionName){rt(e,b,"Server indicated an extension that was not requested");return}try{f.accept(xe[br.extensionName])}catch{rt(e,b,"Invalid Sec-WebSocket-Extensions header");return}e._extensions[br.extensionName]=f}e.setSocket(b,$,{allowSynchronousEvents:r.allowSynchronousEvents,generateMask:r.generateMask,maxBufferedChunks:r.maxBufferedChunks,maxFragments:r.maxFragments,maxPayload:r.maxPayload,skipUTF8Validation:r.skipUTF8Validation})}),r.finishRequest?r.finishRequest(g,e):g.end()}function Jc(e,t){e._readyState=fe.CLOSING,e._errorEmitted=!0,e.emit("error",t),e.emitClose()}function gD(e){return e.path=e.socketPath,xS.connect(e)}function hD(e){return e.path=void 0,!e.servername&&e.servername!==""&&(e.servername=xS.isIP(e.host)?"":e.host),XN.connect(e)}function rt(e,t,n){e._readyState=fe.CLOSING;let o=new Error(n);Error.captureStackTrace(o,rt),t.setHeader?(t[kS]=!0,t.abort(),t.socket&&!t.socket.destroyed&&t.socket.destroy(),process.nextTick(Jc,e,o)):(t.destroy(o),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function Fh(e,t,n){if(t){let o=oD(t)?t.size:fD(t).length;e._socket?e._sender._bufferedBytes+=o:e._bufferedAmount+=o}if(n){let o=new Error(`WebSocket is not open: readyState ${e.readyState} (${Wt[e.readyState]})`);process.nextTick(n,o)}}function vD(e,t){let n=this[Se];n._closeFrameReceived=!0,n._closeMessage=t,n._closeCode=e,n._socket[Se]!==void 0&&(n._socket.removeListener("data",Hc),process.nextTick(wS,n._socket),e===1005?n.close():n.close(e,t))}function yD(){let e=this[Se];e.isPaused||e._socket.resume()}function bD(e){let t=this[Se];t._socket[Se]!==void 0&&(t._socket.removeListener("data",Hc),process.nextTick(wS,t._socket),t.close(e[cD])),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e))}function _S(){this[Se].emitClose()}function _D(e,t){this[Se].emit("message",e,t)}function xD(e){let t=this[Se];t._autoPong&&t.pong(e,!this._isServer,$S),t.emit("ping",e)}function $D(e){this[Se].emit("pong",e)}function wS(e){e.resume()}function kD(e){let t=this[Se];t.readyState!==fe.CLOSED&&(t.readyState===fe.OPEN&&(t._readyState=fe.CLOSING,zS(t)),this._socket.end(),t._errorEmitted||(t._errorEmitted=!0,t.emit("error",e)))}function zS(e){e._closeTimer=setTimeout(e._socket.destroy.bind(e._socket),e._closeTimeout)}function IS(){let e=this[Se];if(this.removeListener("close",IS),this.removeListener("data",Hc),this.removeListener("end",PS),e._readyState=fe.CLOSING,!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&this._readableState.length!==0){let t=this.read(this._readableState.length);e._receiver.write(t)}e._receiver.end(),this[Se]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",_S),e._receiver.on("finish",_S))}function Hc(e){this[Se]._receiver.write(e)||this.pause()}function PS(){let e=this[Se];e._readyState=fe.CLOSING,e._receiver.end(),this.end()}function ES(){let e=this[Se];this.removeListener("error",ES),this.on("error",$S),e&&(e._readyState=fe.CLOSING,this.destroy())}});var CS=z((N5,OS)=>{"use strict";var C5=Gc(),{Duplex:SD}=ge("stream");function TS(e){e.emit("close")}function wD(){!this.destroyed&&this._writableState.finished&&this.destroy()}function jS(e){this.removeListener("error",jS),this.destroy(),this.listenerCount("error")===0&&this.emit("error",e)}function zD(e,t){let n=!0,o=new SD({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(i,a){let s=!a&&o._readableState.objectMode?i.toString():i;o.push(s)||e.pause()}),e.once("error",function(i){o.destroyed||(n=!1,o.destroy(i))}),e.once("close",function(){o.destroyed||o.push(null)}),o._destroy=function(r,i){if(e.readyState===e.CLOSED){i(r),process.nextTick(TS,o);return}let a=!1;e.once("error",function(l){a=!0,i(l)}),e.once("close",function(){a||i(r),process.nextTick(TS,o)}),n&&e.terminate()},o._final=function(r){if(e.readyState===e.CONNECTING){e.once("open",function(){o._final(r)});return}e._socket!==null&&(e._socket._writableState.finished?(r(),o._readableState.endEmitted&&o.destroy()):(e._socket.once("finish",function(){r()}),e.close()))},o._read=function(){e.isPaused&&e.resume()},o._write=function(r,i,a){if(e.readyState===e.CONNECTING){e.once("open",function(){o._write(r,i,a)});return}e.send(r,a)},o.on("end",wD),o.on("error",jS),o}OS.exports=zD});var Zh=z((D5,NS)=>{"use strict";var{tokenChars:ID}=no();function PD(e){let t=new Set,n=-1,o=-1,r=0;for(r;r<e.length;r++){let a=e.charCodeAt(r);if(o===-1&&ID[a]===1)n===-1&&(n=r);else if(r!==0&&(a===32||a===9))o===-1&&n!==-1&&(o=r);else if(a===44){if(n===-1)throw new SyntaxError(`Unexpected character at index ${r}`);o===-1&&(o=r);let s=e.slice(n,o);if(t.has(s))throw new SyntaxError(`The "${s}" subprotocol is duplicated`);t.add(s),n=o=-1}else throw new SyntaxError(`Unexpected character at index ${r}`)}if(n===-1||o!==-1)throw new SyntaxError("Unexpected end of input");let i=e.slice(n,r);if(t.has(i))throw new SyntaxError(`The "${i}" subprotocol is duplicated`);return t.add(i),t}NS.exports={parse:PD}});var ZS=z((U5,FS)=>{"use strict";var ED=ge("events"),Wc=ge("http"),{Duplex:R5}=ge("stream"),{createHash:AD}=ge("crypto"),DS=Bc(),Br=ro(),TD=Zh(),jD=Gc(),{CLOSE_TIMEOUT:OD,GUID:CD,kWebSocket:ND}=Jt(),DD=/^[+/0-9A-Za-z]{22}==$/,RS=0,US=1,LS=2,qh=class extends ED{constructor(t,n){if(super(),t={allowSynchronousEvents:!0,autoPong:!0,maxBufferedChunks:1024*1024,maxFragments:128*1024,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:OD,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:jD,...t},t.port==null&&!t.server&&!t.noServer||t.port!=null&&(t.server||t.noServer)||t.server&&t.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(t.port!=null?(this._server=Wc.createServer((o,r)=>{let i=Wc.STATUS_CODES[426];r.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),r.end(i)}),this._server.listen(t.port,t.host,t.backlog,n)):t.server&&(this._server=t.server),this._server){let o=this.emit.bind(this,"connection");this._removeListeners=RD(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(r,i,a)=>{this.handleUpgrade(r,i,a,o)}})}t.perMessageDeflate===!0&&(t.perMessageDeflate={}),t.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=t,this._state=RS}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(t){if(this._state===LS){t&&this.once("close",()=>{t(new Error("The server is not running"))}),process.nextTick(qi,this);return}if(t&&this.once("close",t),this._state!==US)if(this._state=US,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(qi,this):process.nextTick(qi,this);else{let n=this._server;this._removeListeners(),this._removeListeners=this._server=null,n.close(()=>{qi(this)})}}shouldHandle(t){if(this.options.path){let n=t.url.indexOf("?");if((n!==-1?t.url.slice(0,n):t.url)!==this.options.path)return!1}return!0}handleUpgrade(t,n,o,r){n.on("error",MS);let i=t.headers["sec-websocket-key"],a=t.headers.upgrade,s=+t.headers["sec-websocket-version"];if(t.method!=="GET"){Vr(this,t,n,405,"Invalid HTTP method");return}if(a===void 0||a.toLowerCase()!=="websocket"){Vr(this,t,n,400,"Invalid Upgrade header");return}if(i===void 0||!DD.test(i)){Vr(this,t,n,400,"Missing or invalid Sec-WebSocket-Key header");return}if(s!==13&&s!==8){Vr(this,t,n,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(t)){Bi(n,400);return}let l=t.headers["sec-websocket-protocol"],u=new Set;if(l!==void 0)try{u=TD.parse(l)}catch{Vr(this,t,n,400,"Invalid Sec-WebSocket-Protocol header");return}let d=t.headers["sec-websocket-extensions"],p={};if(this.options.perMessageDeflate&&d!==void 0){let m=new Br({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let f=DS.parse(d);f[Br.extensionName]&&(m.accept(f[Br.extensionName]),p[Br.extensionName]=m)}catch{Vr(this,t,n,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let m={origin:t.headers[`${s===8?"sec-websocket-origin":"origin"}`],secure:!!(t.socket.authorized||t.socket.encrypted),req:t};if(this.options.verifyClient.length===2){this.options.verifyClient(m,(f,g,h,b)=>{if(!f)return Bi(n,g||401,h,b);this.completeUpgrade(p,i,u,t,n,o,r)});return}if(!this.options.verifyClient(m))return Bi(n,401)}this.completeUpgrade(p,i,u,t,n,o,r)}completeUpgrade(t,n,o,r,i,a,s){if(!i.readable||!i.writable)return i.destroy();if(i[ND])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>RS)return Bi(i,503);let u=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${AD("sha1").update(n+CD).digest("base64")}`],d=new this.options.WebSocket(null,void 0,this.options);if(o.size){let p=this.options.handleProtocols?this.options.handleProtocols(o,r):o.values().next().value;p&&(u.push(`Sec-WebSocket-Protocol: ${p}`),d._protocol=p)}if(t[Br.extensionName]){let p=t[Br.extensionName].params,m=DS.format({[Br.extensionName]:[p]});u.push(`Sec-WebSocket-Extensions: ${m}`),d._extensions=t}this.emit("headers",u,r),i.write(u.concat(`\r
10
10
  `).join(`\r
11
11
  `)),i.removeListener("error",MS),d.setSocket(i,a,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxBufferedChunks:this.options.maxBufferedChunks,maxFragments:this.options.maxFragments,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(d),d.on("close",()=>{this.clients.delete(d),this._shouldEmitClose&&!this.clients.size&&process.nextTick(qi,this)})),s(d,r)}};FS.exports=qh;function RD(e,t){for(let n of Object.keys(t))e.on(n,t[n]);return function(){for(let o of Object.keys(t))e.removeListener(o,t[o])}}function qi(e){e._state=LS,e.emit("close")}function MS(){this.destroy()}function Bi(e,t,n,o){n=n||Wc.STATUS_CODES[t],o={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(n),...o},e.once("finish",e.destroy),e.end(`HTTP/1.1 ${t} ${Wc.STATUS_CODES[t]}\r
12
12
  `+Object.keys(o).map(r=>`${r}: ${o[r]}`).join(`\r
@@ -78,7 +78,7 @@ var xw=Object.create;var el=Object.defineProperty;var $w=Object.getOwnPropertyDe
78
78
 
79
79
  Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let a of e.seen.entries()){let s=a[1];if(t===a[0]){i(a);continue}if(e.external){let u=e.external.registry.get(a[0])?.id;if(t!==a[0]&&u){i(a);continue}}if(e.metadataRegistry.get(a[0])?.id){i(a);continue}if(s.cycle){i(a);continue}if(s.count>1&&e.reused==="ref"){i(a);continue}}}function ir(e,t){let n=e.seen.get(t);if(!n)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=s=>{let l=e.seen.get(s);if(l.ref===null)return;let u=l.def??l.schema,d={...u},p=l.ref;if(l.ref=null,p){o(p);let f=e.seen.get(p),g=f.schema;if(g.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(g)):Object.assign(u,g),Object.assign(u,d),s._zod.parent===p)for(let b in u)b==="$ref"||b==="allOf"||b in d||delete u[b];if(g.$ref&&f.def)for(let b in u)b==="$ref"||b==="allOf"||b in f.def&&JSON.stringify(u[b])===JSON.stringify(f.def[b])&&delete u[b]}let m=s._zod.parent;if(m&&m!==p){o(m);let f=e.seen.get(m);if(f?.schema.$ref&&(u.$ref=f.schema.$ref,f.def))for(let g in u)g==="$ref"||g==="allOf"||g in f.def&&JSON.stringify(u[g])===JSON.stringify(f.def[g])&&delete u[g]}e.override({zodSchema:s,jsonSchema:u,path:l.path??[]})};for(let s of[...e.seen.entries()].reverse())o(s[0]);let r={};if(e.target==="draft-2020-12"?r.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?r.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?r.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let s=e.external.registry.get(t)?.id;if(!s)throw new Error("Schema is missing an `id` property");r.$id=e.external.uri(s)}Object.assign(r,n.def??n.schema);let i=e.metadataRegistry.get(t)?.id;i!==void 0&&r.id===i&&delete r.id;let a=e.external?.defs??{};for(let s of e.seen.entries()){let l=s[1];l.def&&l.defId&&(l.def.id===l.defId&&delete l.def.id,a[l.defId]=l.def)}e.external||Object.keys(a).length>0&&(e.target==="draft-2020-12"?r.$defs=a:r.definitions=a);try{let s=JSON.parse(JSON.stringify(r));return Object.defineProperty(s,"~standard",{value:{...t["~standard"],jsonSchema:{input:vn(t,"input",e.processors),output:vn(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function Fe(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let o=e._zod.def;if(o.type==="transform")return!0;if(o.type==="array")return Fe(o.element,n);if(o.type==="set")return Fe(o.valueType,n);if(o.type==="lazy")return Fe(o.getter(),n);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault")return Fe(o.innerType,n);if(o.type==="intersection")return Fe(o.left,n)||Fe(o.right,n);if(o.type==="record"||o.type==="map")return Fe(o.keyType,n)||Fe(o.valueType,n);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:Fe(o.in,n)||Fe(o.out,n);if(o.type==="object"){for(let r in o.shape)if(Fe(o.shape[r],n))return!0;return!1}if(o.type==="union"){for(let r of o.options)if(Fe(r,n))return!0;return!1}if(o.type==="tuple"){for(let r of o.items)if(Fe(r,n))return!0;return!!(o.rest&&Fe(o.rest,n))}return!1}var sp=(e,t={})=>n=>{let o=nr({...n,processors:t});return Y(e,o),or(o,e),ir(o,e)},vn=(e,t,n={})=>o=>{let{libraryOptions:r,target:i}=o??{},a=nr({...r??{},target:i,io:t,processors:n});return Y(e,a),or(a,e),ir(a,e)};var Hz={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},cp=(e,t,n,o)=>{let r=n;r.type="string";let{minimum:i,maximum:a,format:s,patterns:l,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(r.minLength=i),typeof a=="number"&&(r.maxLength=a),s&&(r.format=Hz[s]??s,r.format===""&&delete r.format,s==="time"&&delete r.format),u&&(r.contentEncoding=u),l&&l.size>0){let d=[...l];d.length===1?r.pattern=d[0].source:d.length>1&&(r.allOf=[...d.map(p=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:p.source}))])}},lp=(e,t,n,o)=>{let r=n,{minimum:i,maximum:a,format:s,multipleOf:l,exclusiveMaximum:u,exclusiveMinimum:d}=e._zod.bag;typeof s=="string"&&s.includes("int")?r.type="integer":r.type="number";let p=typeof d=="number"&&d>=(i??Number.NEGATIVE_INFINITY),m=typeof u=="number"&&u<=(a??Number.POSITIVE_INFINITY),f=t.target==="draft-04"||t.target==="openapi-3.0";p?f?(r.minimum=d,r.exclusiveMinimum=!0):r.exclusiveMinimum=d:typeof i=="number"&&(r.minimum=i),m?f?(r.maximum=u,r.exclusiveMaximum=!0):r.exclusiveMaximum=u:typeof a=="number"&&(r.maximum=a),typeof l=="number"&&(r.multipleOf=l)},up=(e,t,n,o)=>{n.type="boolean"},dp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("BigInt cannot be represented in JSON Schema")},pp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Symbols cannot be represented in JSON Schema")},fp=(e,t,n,o)=>{t.target==="openapi-3.0"?(n.type="string",n.nullable=!0,n.enum=[null]):n.type="null"},mp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Undefined cannot be represented in JSON Schema")},gp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Void cannot be represented in JSON Schema")},hp=(e,t,n,o)=>{n.not={}},vp=(e,t,n,o)=>{},yp=(e,t,n,o)=>{},bp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Date cannot be represented in JSON Schema")},_p=(e,t,n,o)=>{let r=e._zod.def,i=lo(r.entries);i.every(a=>typeof a=="number")&&(n.type="number"),i.every(a=>typeof a=="string")&&(n.type="string"),n.enum=i},xp=(e,t,n,o)=>{let r=e._zod.def,i=[];for(let a of r.values)if(a===void 0){if(t.unrepresentable==="throw")throw new Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof a=="bigint"){if(t.unrepresentable==="throw")throw new Error("BigInt literals cannot be represented in JSON Schema");i.push(Number(a))}else i.push(a);if(i.length!==0)if(i.length===1){let a=i[0];n.type=a===null?"null":typeof a,t.target==="draft-04"||t.target==="openapi-3.0"?n.enum=[a]:n.const=a}else i.every(a=>typeof a=="number")&&(n.type="number"),i.every(a=>typeof a=="string")&&(n.type="string"),i.every(a=>typeof a=="boolean")&&(n.type="boolean"),i.every(a=>a===null)&&(n.type="null"),n.enum=i},$p=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("NaN cannot be represented in JSON Schema")},kp=(e,t,n,o)=>{let r=n,i=e._zod.pattern;if(!i)throw new Error("Pattern not found in template literal");r.type="string",r.pattern=i.source},Sp=(e,t,n,o)=>{let r=n,i={type:"string",format:"binary",contentEncoding:"binary"},{minimum:a,maximum:s,mime:l}=e._zod.bag;a!==void 0&&(i.minLength=a),s!==void 0&&(i.maxLength=s),l?l.length===1?(i.contentMediaType=l[0],Object.assign(r,i)):(Object.assign(r,i),r.anyOf=l.map(u=>({contentMediaType:u}))):Object.assign(r,i)},wp=(e,t,n,o)=>{n.type="boolean"},zp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Ip=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Function types cannot be represented in JSON Schema")},Pp=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Ep=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Map cannot be represented in JSON Schema")},Ap=(e,t,n,o)=>{if(t.unrepresentable==="throw")throw new Error("Set cannot be represented in JSON Schema")},Tp=(e,t,n,o)=>{let r=n,i=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;typeof a=="number"&&(r.minItems=a),typeof s=="number"&&(r.maxItems=s),r.type="array",r.items=Y(i.element,t,{...o,path:[...o.path,"items"]})},jp=(e,t,n,o)=>{let r=n,i=e._zod.def;r.type="object",r.properties={};let a=i.shape;for(let u in a)r.properties[u]=Y(a[u],t,{...o,path:[...o.path,"properties",u]});let s=new Set(Object.keys(a)),l=new Set([...s].filter(u=>{let d=i.shape[u]._zod;return t.io==="input"?d.optin===void 0:d.optout===void 0}));l.size>0&&(r.required=Array.from(l)),i.catchall?._zod.def.type==="never"?r.additionalProperties=!1:i.catchall?i.catchall&&(r.additionalProperties=Y(i.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):t.io==="output"&&(r.additionalProperties=!1)},Ga=(e,t,n,o)=>{let r=e._zod.def,i=r.inclusive===!1,a=r.options.map((s,l)=>Y(s,t,{...o,path:[...o.path,i?"oneOf":"anyOf",l]}));i?n.oneOf=a:n.anyOf=a},Op=(e,t,n,o)=>{let r=e._zod.def,i=Y(r.left,t,{...o,path:[...o.path,"allOf",0]}),a=Y(r.right,t,{...o,path:[...o.path,"allOf",1]}),s=u=>"allOf"in u&&Object.keys(u).length===1,l=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]];n.allOf=l},Cp=(e,t,n,o)=>{let r=n,i=e._zod.def;r.type="array";let a=t.target==="draft-2020-12"?"prefixItems":"items",s=t.target==="draft-2020-12"||t.target==="openapi-3.0"?"items":"additionalItems",l=i.items.map((m,f)=>Y(m,t,{...o,path:[...o.path,a,f]})),u=i.rest?Y(i.rest,t,{...o,path:[...o.path,s,...t.target==="openapi-3.0"?[i.items.length]:[]]}):null;t.target==="draft-2020-12"?(r.prefixItems=l,u&&(r.items=u)):t.target==="openapi-3.0"?(r.items={anyOf:l},u&&r.items.anyOf.push(u),r.minItems=l.length,u||(r.maxItems=l.length)):(r.items=l,u&&(r.additionalItems=u));let{minimum:d,maximum:p}=e._zod.bag;typeof d=="number"&&(r.minItems=d),typeof p=="number"&&(r.maxItems=p)},Np=(e,t,n,o)=>{let r=n,i=e._zod.def;r.type="object";let a=i.keyType,l=a._zod.bag?.patterns;if(i.mode==="loose"&&l&&l.size>0){let d=Y(i.valueType,t,{...o,path:[...o.path,"patternProperties","*"]});r.patternProperties={};for(let p of l)r.patternProperties[p.source]=d}else(t.target==="draft-07"||t.target==="draft-2020-12")&&(r.propertyNames=Y(i.keyType,t,{...o,path:[...o.path,"propertyNames"]})),r.additionalProperties=Y(i.valueType,t,{...o,path:[...o.path,"additionalProperties"]});let u=a._zod.values;if(u){let d=[...u].filter(p=>typeof p=="string"||typeof p=="number");d.length>0&&(r.required=d)}},Dp=(e,t,n,o)=>{let r=e._zod.def,i=Y(r.innerType,t,o),a=t.seen.get(e);t.target==="openapi-3.0"?(a.ref=r.innerType,n.nullable=!0):n.anyOf=[i,{type:"null"}]},Rp=(e,t,n,o)=>{let r=e._zod.def;Y(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType},Up=(e,t,n,o)=>{let r=e._zod.def;Y(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType,n.default=JSON.parse(JSON.stringify(r.defaultValue))},Mp=(e,t,n,o)=>{let r=e._zod.def;Y(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType,t.io==="input"&&(n._prefault=JSON.parse(JSON.stringify(r.defaultValue)))},Lp=(e,t,n,o)=>{let r=e._zod.def;Y(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType;let a;try{a=r.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}n.default=a},Fp=(e,t,n,o)=>{let r=e._zod.def,i=r.in._zod.traits.has("$ZodTransform"),a=t.io==="input"?i?r.out:r.in:r.out;Y(a,t,o);let s=t.seen.get(e);s.ref=a},Zp=(e,t,n,o)=>{let r=e._zod.def;Y(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType,n.readOnly=!0},qp=(e,t,n,o)=>{let r=e._zod.def;Y(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType},Wa=(e,t,n,o)=>{let r=e._zod.def;Y(r.innerType,t,o);let i=t.seen.get(e);i.ref=r.innerType},Bp=(e,t,n,o)=>{let r=e._zod.innerType;Y(r,t,o);let i=t.seen.get(e);i.ref=r},Ha={string:cp,number:lp,boolean:up,bigint:dp,symbol:pp,null:fp,undefined:mp,void:gp,never:hp,any:vp,unknown:yp,date:bp,enum:_p,literal:xp,nan:$p,template_literal:kp,file:Sp,success:wp,custom:zp,function:Ip,transform:Pp,map:Ep,set:Ap,array:Tp,object:jp,union:Ga,intersection:Op,tuple:Cp,record:Np,nullable:Dp,nonoptional:Rp,default:Up,prefault:Mp,catch:Lp,pipe:Fp,readonly:Zp,promise:qp,optional:Wa,lazy:Bp};function Ka(e,t){if("_idmap"in e){let o=e,r=nr({...t,processors:Ha}),i={};for(let l of o._idmap.entries()){let[u,d]=l;Y(d,r)}let a={},s={registry:o,uri:t?.uri,defs:i};r.external=s;for(let l of o._idmap.entries()){let[u,d]=l;or(r,d),a[u]=ir(r,d)}if(Object.keys(i).length>0){let l=r.target==="draft-2020-12"?"$defs":"definitions";a.__shared={[l]:i}}return{schemas:a}}let n=nr({...t,processors:Ha});return Y(e,n),or(n,e),ir(n,e)}var Qa=class{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(t){this.ctx.counter=t}get seen(){return this.ctx.seen}constructor(t){let n=t?.target??"draft-2020-12";n==="draft-4"&&(n="draft-04"),n==="draft-7"&&(n="draft-07"),this.ctx=nr({processors:Ha,target:n,...t?.metadata&&{metadata:t.metadata},...t?.unrepresentable&&{unrepresentable:t.unrepresentable},...t?.override&&{override:t.override},...t?.io&&{io:t.io}})}process(t,n={path:[],schemaPath:[]}){return Y(t,this.ctx,n)}emit(t,n){n&&(n.cycles&&(this.ctx.cycles=n.cycles),n.reused&&(this.ctx.reused=n.reused),n.external&&(this.ctx.external=n.external)),or(this.ctx,t);let o=ir(this.ctx,t),{"~standard":r,...i}=o;return i}};var Cy={};function yn(e){return!!e._zod}function ar(e,t){return yn(e)?Xr(e,t):e.safeParse(t)}function Ya(e){if(!e)return;let t;if(yn(e)?t=e._zod?.def?.shape:t=e.shape,!!t){if(typeof t=="function")try{return t()}catch{return}return t}}function Ny(e){if(yn(e)){let i=e._zod?.def;if(i){if(i.value!==void 0)return i.value;if(Array.isArray(i.values)&&i.values.length>0)return i.values[0]}}let n=e._def;if(n){if(n.value!==void 0)return n.value;if(Array.isArray(n.values)&&n.values.length>0)return n.values[0]}let o=e.value;if(o!==void 0)return o}var c={};jt(c,{$brand:()=>rl,$input:()=>xd,$output:()=>_d,NEVER:()=>tl,TimePrecision:()=>wd,ZodAny:()=>pf,ZodArray:()=>hf,ZodBase64:()=>bs,ZodBase64URL:()=>_s,ZodBigInt:()=>wn,ZodBigIntFormat:()=>ks,ZodBoolean:()=>Sn,ZodCIDRv4:()=>vs,ZodCIDRv6:()=>ys,ZodCUID:()=>us,ZodCUID2:()=>ds,ZodCatch:()=>Df,ZodCodec:()=>Zo,ZodCustom:()=>qo,ZodCustomStringFormat:()=>$n,ZodDate:()=>Ro,ZodDefault:()=>Af,ZodDiscriminatedUnion:()=>yf,ZodE164:()=>xs,ZodEmail:()=>ss,ZodEmoji:()=>cs,ZodEnum:()=>_n,ZodError:()=>Wz,ZodExactOptional:()=>If,ZodFile:()=>wf,ZodFirstPartyTypeKind:()=>Wf,ZodFunction:()=>Jf,ZodGUID:()=>jo,ZodIPv4:()=>gs,ZodIPv6:()=>hs,ZodISODate:()=>ts,ZodISODateTime:()=>es,ZodISODuration:()=>ns,ZodISOTime:()=>rs,ZodIntersection:()=>bf,ZodIssueCode:()=>Qz,ZodJWT:()=>$s,ZodKSUID:()=>ms,ZodLazy:()=>qf,ZodLiteral:()=>Sf,ZodMAC:()=>cf,ZodMap:()=>$f,ZodNaN:()=>Uf,ZodNanoID:()=>ls,ZodNever:()=>mf,ZodNonOptional:()=>Is,ZodNull:()=>df,ZodNullable:()=>Ef,ZodNumber:()=>kn,ZodNumberFormat:()=>Ir,ZodObject:()=>Uo,ZodOptional:()=>zs,ZodPipe:()=>Fo,ZodPrefault:()=>jf,ZodPreprocess:()=>Mf,ZodPromise:()=>Vf,ZodReadonly:()=>Lf,ZodRealError:()=>Je,ZodRecord:()=>bn,ZodSet:()=>kf,ZodString:()=>xn,ZodStringFormat:()=>ne,ZodSuccess:()=>Nf,ZodSymbol:()=>lf,ZodTemplateLiteral:()=>Zf,ZodTransform:()=>zf,ZodTuple:()=>_f,ZodType:()=>R,ZodULID:()=>ps,ZodURL:()=>No,ZodUUID:()=>wt,ZodUndefined:()=>uf,ZodUnion:()=>Mo,ZodUnknown:()=>ff,ZodVoid:()=>gf,ZodXID:()=>fs,ZodXor:()=>vf,_ZodString:()=>as,_default:()=>Tf,_function:()=>Lb,any:()=>xb,array:()=>Z,base64:()=>ob,base64url:()=>ib,bigint:()=>hb,boolean:()=>ye,catch:()=>Rf,check:()=>Fb,cidrv4:()=>rb,cidrv6:()=>nb,clone:()=>Ue,codec:()=>Db,coerce:()=>Kf,config:()=>he,core:()=>Nt,cuid:()=>Gy,cuid2:()=>Wy,custom:()=>Ps,date:()=>kb,decode:()=>ef,decodeAsync:()=>rf,describe:()=>Zb,discriminatedUnion:()=>Lo,e164:()=>ab,email:()=>Uy,emoji:()=>Jy,encode:()=>Xp,encodeAsync:()=>tf,endsWith:()=>ln,enum:()=>Pe,exactOptional:()=>Pf,file:()=>jb,flattenError:()=>ho,float32:()=>pb,float64:()=>fb,formatError:()=>vo,fromJSONSchema:()=>Gb,function:()=>Lb,getErrorMap:()=>Xz,globalRegistry:()=>ze,gt:()=>kt,gte:()=>Le,guid:()=>My,hash:()=>db,hex:()=>ub,hostname:()=>lb,httpUrl:()=>Vy,includes:()=>sn,instanceof:()=>Bb,int:()=>os,int32:()=>mb,int64:()=>vb,intersection:()=>zn,invertCodec:()=>Rb,ipv4:()=>Xy,ipv6:()=>tb,iso:()=>sr,json:()=>Jb,jwt:()=>sb,keyof:()=>Sb,ksuid:()=>Yy,lazy:()=>Bf,length:()=>zr,literal:()=>O,locales:()=>Po,looseObject:()=>Ie,looseRecord:()=>Pb,lowercase:()=>on,lt:()=>$t,lte:()=>et,mac:()=>eb,map:()=>Eb,maxLength:()=>wr,maxSize:()=>rr,meta:()=>qb,mime:()=>un,minLength:()=>Ct,minSize:()=>St,multipleOf:()=>tr,nan:()=>Nb,nanoid:()=>Hy,nativeEnum:()=>Tb,negative:()=>qa,never:()=>Ss,nonnegative:()=>Va,nonoptional:()=>Cf,nonpositive:()=>Ba,normalize:()=>dn,null:()=>Do,nullable:()=>Oo,nullish:()=>Ob,number:()=>W,object:()=>T,optional:()=>ce,overwrite:()=>mt,parse:()=>Wp,parseAsync:()=>Kp,partialRecord:()=>Ib,pipe:()=>is,positive:()=>Za,prefault:()=>Of,preprocess:()=>Bo,prettifyError:()=>gl,promise:()=>Mb,property:()=>Ja,readonly:()=>Ff,record:()=>te,refine:()=>Hf,regex:()=>nn,regexes:()=>Xe,registry:()=>xa,safeDecode:()=>of,safeDecodeAsync:()=>sf,safeEncode:()=>nf,safeEncodeAsync:()=>af,safeParse:()=>Qp,safeParseAsync:()=>Yp,set:()=>Ab,setErrorMap:()=>Yz,size:()=>Sr,slugify:()=>gn,startsWith:()=>cn,strictObject:()=>wb,string:()=>_,stringFormat:()=>cb,stringbool:()=>Vb,success:()=>Cb,superRefine:()=>Gf,symbol:()=>bb,templateLiteral:()=>Ub,toJSONSchema:()=>Ka,toLowerCase:()=>fn,toUpperCase:()=>mn,transform:()=>ws,treeifyError:()=>ml,trim:()=>pn,tuple:()=>xf,uint32:()=>gb,uint64:()=>yb,ulid:()=>Ky,undefined:()=>_b,union:()=>ie,unknown:()=>oe,uppercase:()=>an,url:()=>By,util:()=>S,uuid:()=>Ly,uuidv4:()=>Fy,uuidv6:()=>Zy,uuidv7:()=>qy,void:()=>$b,xid:()=>Qy,xor:()=>zb});var To={};jt(To,{ZodAny:()=>pf,ZodArray:()=>hf,ZodBase64:()=>bs,ZodBase64URL:()=>_s,ZodBigInt:()=>wn,ZodBigIntFormat:()=>ks,ZodBoolean:()=>Sn,ZodCIDRv4:()=>vs,ZodCIDRv6:()=>ys,ZodCUID:()=>us,ZodCUID2:()=>ds,ZodCatch:()=>Df,ZodCodec:()=>Zo,ZodCustom:()=>qo,ZodCustomStringFormat:()=>$n,ZodDate:()=>Ro,ZodDefault:()=>Af,ZodDiscriminatedUnion:()=>yf,ZodE164:()=>xs,ZodEmail:()=>ss,ZodEmoji:()=>cs,ZodEnum:()=>_n,ZodExactOptional:()=>If,ZodFile:()=>wf,ZodFunction:()=>Jf,ZodGUID:()=>jo,ZodIPv4:()=>gs,ZodIPv6:()=>hs,ZodIntersection:()=>bf,ZodJWT:()=>$s,ZodKSUID:()=>ms,ZodLazy:()=>qf,ZodLiteral:()=>Sf,ZodMAC:()=>cf,ZodMap:()=>$f,ZodNaN:()=>Uf,ZodNanoID:()=>ls,ZodNever:()=>mf,ZodNonOptional:()=>Is,ZodNull:()=>df,ZodNullable:()=>Ef,ZodNumber:()=>kn,ZodNumberFormat:()=>Ir,ZodObject:()=>Uo,ZodOptional:()=>zs,ZodPipe:()=>Fo,ZodPrefault:()=>jf,ZodPreprocess:()=>Mf,ZodPromise:()=>Vf,ZodReadonly:()=>Lf,ZodRecord:()=>bn,ZodSet:()=>kf,ZodString:()=>xn,ZodStringFormat:()=>ne,ZodSuccess:()=>Nf,ZodSymbol:()=>lf,ZodTemplateLiteral:()=>Zf,ZodTransform:()=>zf,ZodTuple:()=>_f,ZodType:()=>R,ZodULID:()=>ps,ZodURL:()=>No,ZodUUID:()=>wt,ZodUndefined:()=>uf,ZodUnion:()=>Mo,ZodUnknown:()=>ff,ZodVoid:()=>gf,ZodXID:()=>fs,ZodXor:()=>vf,_ZodString:()=>as,_default:()=>Tf,_function:()=>Lb,any:()=>xb,array:()=>Z,base64:()=>ob,base64url:()=>ib,bigint:()=>hb,boolean:()=>ye,catch:()=>Rf,check:()=>Fb,cidrv4:()=>rb,cidrv6:()=>nb,codec:()=>Db,cuid:()=>Gy,cuid2:()=>Wy,custom:()=>Ps,date:()=>kb,describe:()=>Zb,discriminatedUnion:()=>Lo,e164:()=>ab,email:()=>Uy,emoji:()=>Jy,enum:()=>Pe,exactOptional:()=>Pf,file:()=>jb,float32:()=>pb,float64:()=>fb,function:()=>Lb,guid:()=>My,hash:()=>db,hex:()=>ub,hostname:()=>lb,httpUrl:()=>Vy,instanceof:()=>Bb,int:()=>os,int32:()=>mb,int64:()=>vb,intersection:()=>zn,invertCodec:()=>Rb,ipv4:()=>Xy,ipv6:()=>tb,json:()=>Jb,jwt:()=>sb,keyof:()=>Sb,ksuid:()=>Yy,lazy:()=>Bf,literal:()=>O,looseObject:()=>Ie,looseRecord:()=>Pb,mac:()=>eb,map:()=>Eb,meta:()=>qb,nan:()=>Nb,nanoid:()=>Hy,nativeEnum:()=>Tb,never:()=>Ss,nonoptional:()=>Cf,null:()=>Do,nullable:()=>Oo,nullish:()=>Ob,number:()=>W,object:()=>T,optional:()=>ce,partialRecord:()=>Ib,pipe:()=>is,prefault:()=>Of,preprocess:()=>Bo,promise:()=>Mb,readonly:()=>Ff,record:()=>te,refine:()=>Hf,set:()=>Ab,strictObject:()=>wb,string:()=>_,stringFormat:()=>cb,stringbool:()=>Vb,success:()=>Cb,superRefine:()=>Gf,symbol:()=>bb,templateLiteral:()=>Ub,transform:()=>ws,tuple:()=>xf,uint32:()=>gb,uint64:()=>yb,ulid:()=>Ky,undefined:()=>_b,union:()=>ie,unknown:()=>oe,url:()=>By,uuid:()=>Ly,uuidv4:()=>Fy,uuidv6:()=>Zy,uuidv7:()=>qy,void:()=>$b,xid:()=>Qy,xor:()=>zb});var Xa={};jt(Xa,{endsWith:()=>ln,gt:()=>kt,gte:()=>Le,includes:()=>sn,length:()=>zr,lowercase:()=>on,lt:()=>$t,lte:()=>et,maxLength:()=>wr,maxSize:()=>rr,mime:()=>un,minLength:()=>Ct,minSize:()=>St,multipleOf:()=>tr,negative:()=>qa,nonnegative:()=>Va,nonpositive:()=>Ba,normalize:()=>dn,overwrite:()=>mt,positive:()=>Za,property:()=>Ja,regex:()=>nn,size:()=>Sr,slugify:()=>gn,startsWith:()=>cn,toLowerCase:()=>fn,toUpperCase:()=>mn,trim:()=>pn,uppercase:()=>an});var sr={};jt(sr,{ZodISODate:()=>ts,ZodISODateTime:()=>es,ZodISODuration:()=>ns,ZodISOTime:()=>rs,date:()=>Jp,datetime:()=>Vp,duration:()=>Gp,time:()=>Hp});var es=v("ZodISODateTime",(e,t)=>{$u.init(e,t),ne.init(e,t)});function Vp(e){return zd(es,e)}var ts=v("ZodISODate",(e,t)=>{ku.init(e,t),ne.init(e,t)});function Jp(e){return Id(ts,e)}var rs=v("ZodISOTime",(e,t)=>{Su.init(e,t),ne.init(e,t)});function Hp(e){return Pd(rs,e)}var ns=v("ZodISODuration",(e,t)=>{wu.init(e,t),ne.init(e,t)});function Gp(e){return Ed(ns,e)}var Dy=(e,t)=>{go.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:n=>vo(e,n)},flatten:{value:n=>ho(e,n)},addIssue:{value:n=>{e.issues.push(n),e.message=JSON.stringify(e.issues,Hr,2)}},addIssues:{value:n=>{e.issues.push(...n),e.message=JSON.stringify(e.issues,Hr,2)}},isEmpty:{get(){return e.issues.length===0}}})},Wz=v("ZodError",Dy),Je=v("ZodError",Dy,{Parent:Error});var Wp=Kr(Je),Kp=Qr(Je),Qp=Yr(Je),Yp=en(Je),Xp=Ki(Je),ef=Qi(Je),tf=Yi(Je),rf=Xi(Je),nf=ea(Je),of=ta(Je),af=ra(Je),sf=na(Je);var Ry=new WeakMap;function Co(e,t,n){let o=Object.getPrototypeOf(e),r=Ry.get(o);if(r||(r=new Set,Ry.set(o,r)),!r.has(t)){r.add(t);for(let i in n){let a=n[i];Object.defineProperty(o,i,{configurable:!0,enumerable:!1,get(){let s=a.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:s}),s},set(s){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:s})}})}}}var R=v("ZodType",(e,t)=>(N.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:vn(e,"input"),output:vn(e,"output")}}),e.toJSONSchema=sp(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(n,o)=>Wp(e,n,o,{callee:e.parse}),e.safeParse=(n,o)=>Qp(e,n,o),e.parseAsync=async(n,o)=>Kp(e,n,o,{callee:e.parseAsync}),e.safeParseAsync=async(n,o)=>Yp(e,n,o),e.spa=e.safeParseAsync,e.encode=(n,o)=>Xp(e,n,o),e.decode=(n,o)=>ef(e,n,o),e.encodeAsync=async(n,o)=>tf(e,n,o),e.decodeAsync=async(n,o)=>rf(e,n,o),e.safeEncode=(n,o)=>nf(e,n,o),e.safeDecode=(n,o)=>of(e,n,o),e.safeEncodeAsync=async(n,o)=>af(e,n,o),e.safeDecodeAsync=async(n,o)=>sf(e,n,o),Co(e,"ZodType",{check(...n){let o=this.def;return this.clone(S.mergeDefs(o,{checks:[...o.checks??[],...n.map(r=>typeof r=="function"?{_zod:{check:r,def:{check:"custom"},onattach:[]}}:r)]}),{parent:!0})},with(...n){return this.check(...n)},clone(n,o){return Ue(this,n,o)},brand(){return this},register(n,o){return n.add(this,o),this},refine(n,o){return this.check(Hf(n,o))},superRefine(n,o){return this.check(Gf(n,o))},overwrite(n){return this.check(mt(n))},optional(){return ce(this)},exactOptional(){return Pf(this)},nullable(){return Oo(this)},nullish(){return ce(Oo(this))},nonoptional(n){return Cf(this,n)},array(){return Z(this)},or(n){return ie([this,n])},and(n){return zn(this,n)},transform(n){return is(this,ws(n))},default(n){return Tf(this,n)},prefault(n){return Of(this,n)},catch(n){return Rf(this,n)},pipe(n){return is(this,n)},readonly(){return Ff(this)},describe(n){let o=this.clone();return ze.add(o,{description:n}),o},meta(...n){if(n.length===0)return ze.get(this);let o=this.clone();return ze.add(o,n[0]),o},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(n){return n(this)}}),Object.defineProperty(e,"description",{get(){return ze.get(e)?.description},configurable:!0}),e)),as=v("_ZodString",(e,t)=>{kr.init(e,t),R.init(e,t),e._zod.processJSONSchema=(o,r,i)=>cp(e,o,r,i);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,Co(e,"_ZodString",{regex(...o){return this.check(nn(...o))},includes(...o){return this.check(sn(...o))},startsWith(...o){return this.check(cn(...o))},endsWith(...o){return this.check(ln(...o))},min(...o){return this.check(Ct(...o))},max(...o){return this.check(wr(...o))},length(...o){return this.check(zr(...o))},nonempty(...o){return this.check(Ct(1,...o))},lowercase(o){return this.check(on(o))},uppercase(o){return this.check(an(o))},trim(){return this.check(pn())},normalize(...o){return this.check(dn(...o))},toLowerCase(){return this.check(fn())},toUpperCase(){return this.check(mn())},slugify(){return this.check(gn())}})}),xn=v("ZodString",(e,t)=>{kr.init(e,t),as.init(e,t),e.email=n=>e.check($a(ss,n)),e.url=n=>e.check(Ao(No,n)),e.jwt=n=>e.check(Fa($s,n)),e.emoji=n=>e.check(Ia(cs,n)),e.guid=n=>e.check(Eo(jo,n)),e.uuid=n=>e.check(ka(wt,n)),e.uuidv4=n=>e.check(Sa(wt,n)),e.uuidv6=n=>e.check(wa(wt,n)),e.uuidv7=n=>e.check(za(wt,n)),e.nanoid=n=>e.check(Pa(ls,n)),e.guid=n=>e.check(Eo(jo,n)),e.cuid=n=>e.check(Ea(us,n)),e.cuid2=n=>e.check(Aa(ds,n)),e.ulid=n=>e.check(Ta(ps,n)),e.base64=n=>e.check(Ua(bs,n)),e.base64url=n=>e.check(Ma(_s,n)),e.xid=n=>e.check(ja(fs,n)),e.ksuid=n=>e.check(Oa(ms,n)),e.ipv4=n=>e.check(Ca(gs,n)),e.ipv6=n=>e.check(Na(hs,n)),e.cidrv4=n=>e.check(Da(vs,n)),e.cidrv6=n=>e.check(Ra(ys,n)),e.e164=n=>e.check(La(xs,n)),e.datetime=n=>e.check(Vp(n)),e.date=n=>e.check(Jp(n)),e.time=n=>e.check(Hp(n)),e.duration=n=>e.check(Gp(n))});function _(e){return $d(xn,e)}var ne=v("ZodStringFormat",(e,t)=>{re.init(e,t),as.init(e,t)}),ss=v("ZodEmail",(e,t)=>{fu.init(e,t),ne.init(e,t)});function Uy(e){return $a(ss,e)}var jo=v("ZodGUID",(e,t)=>{du.init(e,t),ne.init(e,t)});function My(e){return Eo(jo,e)}var wt=v("ZodUUID",(e,t)=>{pu.init(e,t),ne.init(e,t)});function Ly(e){return ka(wt,e)}function Fy(e){return Sa(wt,e)}function Zy(e){return wa(wt,e)}function qy(e){return za(wt,e)}var No=v("ZodURL",(e,t)=>{mu.init(e,t),ne.init(e,t)});function By(e){return Ao(No,e)}function Vy(e){return Ao(No,{protocol:Xe.httpProtocol,hostname:Xe.domain,...S.normalizeParams(e)})}var cs=v("ZodEmoji",(e,t)=>{gu.init(e,t),ne.init(e,t)});function Jy(e){return Ia(cs,e)}var ls=v("ZodNanoID",(e,t)=>{hu.init(e,t),ne.init(e,t)});function Hy(e){return Pa(ls,e)}var us=v("ZodCUID",(e,t)=>{vu.init(e,t),ne.init(e,t)});function Gy(e){return Ea(us,e)}var ds=v("ZodCUID2",(e,t)=>{yu.init(e,t),ne.init(e,t)});function Wy(e){return Aa(ds,e)}var ps=v("ZodULID",(e,t)=>{bu.init(e,t),ne.init(e,t)});function Ky(e){return Ta(ps,e)}var fs=v("ZodXID",(e,t)=>{_u.init(e,t),ne.init(e,t)});function Qy(e){return ja(fs,e)}var ms=v("ZodKSUID",(e,t)=>{xu.init(e,t),ne.init(e,t)});function Yy(e){return Oa(ms,e)}var gs=v("ZodIPv4",(e,t)=>{zu.init(e,t),ne.init(e,t)});function Xy(e){return Ca(gs,e)}var cf=v("ZodMAC",(e,t)=>{Pu.init(e,t),ne.init(e,t)});function eb(e){return Sd(cf,e)}var hs=v("ZodIPv6",(e,t)=>{Iu.init(e,t),ne.init(e,t)});function tb(e){return Na(hs,e)}var vs=v("ZodCIDRv4",(e,t)=>{Eu.init(e,t),ne.init(e,t)});function rb(e){return Da(vs,e)}var ys=v("ZodCIDRv6",(e,t)=>{Au.init(e,t),ne.init(e,t)});function nb(e){return Ra(ys,e)}var bs=v("ZodBase64",(e,t)=>{ju.init(e,t),ne.init(e,t)});function ob(e){return Ua(bs,e)}var _s=v("ZodBase64URL",(e,t)=>{Ou.init(e,t),ne.init(e,t)});function ib(e){return Ma(_s,e)}var xs=v("ZodE164",(e,t)=>{Cu.init(e,t),ne.init(e,t)});function ab(e){return La(xs,e)}var $s=v("ZodJWT",(e,t)=>{Nu.init(e,t),ne.init(e,t)});function sb(e){return Fa($s,e)}var $n=v("ZodCustomStringFormat",(e,t)=>{Du.init(e,t),ne.init(e,t)});function cb(e,t,n={}){return hn($n,e,t,n)}function lb(e){return hn($n,"hostname",Xe.hostname,e)}function ub(e){return hn($n,"hex",Xe.hex,e)}function db(e,t){let n=t?.enc??"hex",o=`${e}_${n}`,r=Xe[o];if(!r)throw new Error(`Unrecognized hash format: ${o}`);return hn($n,o,r,t)}var kn=v("ZodNumber",(e,t)=>{pa.init(e,t),R.init(e,t),e._zod.processJSONSchema=(o,r,i)=>lp(e,o,r,i),Co(e,"ZodNumber",{gt(o,r){return this.check(kt(o,r))},gte(o,r){return this.check(Le(o,r))},min(o,r){return this.check(Le(o,r))},lt(o,r){return this.check($t(o,r))},lte(o,r){return this.check(et(o,r))},max(o,r){return this.check(et(o,r))},int(o){return this.check(os(o))},safe(o){return this.check(os(o))},positive(o){return this.check(kt(0,o))},nonnegative(o){return this.check(Le(0,o))},negative(o){return this.check($t(0,o))},nonpositive(o){return this.check(et(0,o))},multipleOf(o,r){return this.check(tr(o,r))},step(o,r){return this.check(tr(o,r))},finite(){return this}});let n=e._zod.bag;e.minValue=Math.max(n.minimum??Number.NEGATIVE_INFINITY,n.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(n.maximum??Number.POSITIVE_INFINITY,n.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(n.format??"").includes("int")||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function W(e){return Ad(kn,e)}var Ir=v("ZodNumberFormat",(e,t)=>{Ru.init(e,t),kn.init(e,t)});function os(e){return jd(Ir,e)}function pb(e){return Od(Ir,e)}function fb(e){return Cd(Ir,e)}function mb(e){return Nd(Ir,e)}function gb(e){return Dd(Ir,e)}var Sn=v("ZodBoolean",(e,t)=>{So.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>up(e,n,o,r)});function ye(e){return Rd(Sn,e)}var wn=v("ZodBigInt",(e,t)=>{fa.init(e,t),R.init(e,t),e._zod.processJSONSchema=(o,r,i)=>dp(e,o,r,i),e.gte=(o,r)=>e.check(Le(o,r)),e.min=(o,r)=>e.check(Le(o,r)),e.gt=(o,r)=>e.check(kt(o,r)),e.gte=(o,r)=>e.check(Le(o,r)),e.min=(o,r)=>e.check(Le(o,r)),e.lt=(o,r)=>e.check($t(o,r)),e.lte=(o,r)=>e.check(et(o,r)),e.max=(o,r)=>e.check(et(o,r)),e.positive=o=>e.check(kt(BigInt(0),o)),e.negative=o=>e.check($t(BigInt(0),o)),e.nonpositive=o=>e.check(et(BigInt(0),o)),e.nonnegative=o=>e.check(Le(BigInt(0),o)),e.multipleOf=(o,r)=>e.check(tr(o,r));let n=e._zod.bag;e.minValue=n.minimum??null,e.maxValue=n.maximum??null,e.format=n.format??null});function hb(e){return Md(wn,e)}var ks=v("ZodBigIntFormat",(e,t)=>{Uu.init(e,t),wn.init(e,t)});function vb(e){return Fd(ks,e)}function yb(e){return Zd(ks,e)}var lf=v("ZodSymbol",(e,t)=>{Mu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>pp(e,n,o,r)});function bb(e){return qd(lf,e)}var uf=v("ZodUndefined",(e,t)=>{Lu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>mp(e,n,o,r)});function _b(e){return Bd(uf,e)}var df=v("ZodNull",(e,t)=>{Fu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>fp(e,n,o,r)});function Do(e){return Vd(df,e)}var pf=v("ZodAny",(e,t)=>{Zu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>vp(e,n,o,r)});function xb(){return Jd(pf)}var ff=v("ZodUnknown",(e,t)=>{qu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>yp(e,n,o,r)});function oe(){return Hd(ff)}var mf=v("ZodNever",(e,t)=>{Bu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>hp(e,n,o,r)});function Ss(e){return Gd(mf,e)}var gf=v("ZodVoid",(e,t)=>{Vu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>gp(e,n,o,r)});function $b(e){return Wd(gf,e)}var Ro=v("ZodDate",(e,t)=>{Ju.init(e,t),R.init(e,t),e._zod.processJSONSchema=(o,r,i)=>bp(e,o,r,i),e.min=(o,r)=>e.check(Le(o,r)),e.max=(o,r)=>e.check(et(o,r));let n=e._zod.bag;e.minDate=n.minimum?new Date(n.minimum):null,e.maxDate=n.maximum?new Date(n.maximum):null});function kb(e){return Kd(Ro,e)}var hf=v("ZodArray",(e,t)=>{Hu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Tp(e,n,o,r),e.element=t.element,Co(e,"ZodArray",{min(n,o){return this.check(Ct(n,o))},nonempty(n){return this.check(Ct(1,n))},max(n,o){return this.check(wr(n,o))},length(n,o){return this.check(zr(n,o))},unwrap(){return this.element}})});function Z(e,t){return Xd(hf,e,t)}function Sb(e){let t=e._zod.def.shape;return Pe(Object.keys(t))}var Uo=v("ZodObject",(e,t)=>{Gu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>jp(e,n,o,r),S.defineLazy(e,"shape",()=>t.shape),Co(e,"ZodObject",{keyof(){return Pe(Object.keys(this._zod.def.shape))},catchall(n){return this.clone({...this._zod.def,catchall:n})},passthrough(){return this.clone({...this._zod.def,catchall:oe()})},loose(){return this.clone({...this._zod.def,catchall:oe()})},strict(){return this.clone({...this._zod.def,catchall:Ss()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(n){return S.extend(this,n)},safeExtend(n){return S.safeExtend(this,n)},merge(n){return S.merge(this,n)},pick(n){return S.pick(this,n)},omit(n){return S.omit(this,n)},partial(...n){return S.partial(zs,this,n[0])},required(...n){return S.required(Is,this,n[0])}})});function T(e,t){let n={type:"object",shape:e??{},...S.normalizeParams(t)};return new Uo(n)}function wb(e,t){return new Uo({type:"object",shape:e,catchall:Ss(),...S.normalizeParams(t)})}function Ie(e,t){return new Uo({type:"object",shape:e,catchall:oe(),...S.normalizeParams(t)})}var Mo=v("ZodUnion",(e,t)=>{wo.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ga(e,n,o,r),e.options=t.options});function ie(e,t){return new Mo({type:"union",options:e,...S.normalizeParams(t)})}var vf=v("ZodXor",(e,t)=>{Mo.init(e,t),Wu.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ga(e,n,o,r),e.options=t.options});function zb(e,t){return new vf({type:"union",options:e,inclusive:!1,...S.normalizeParams(t)})}var yf=v("ZodDiscriminatedUnion",(e,t)=>{Mo.init(e,t),Ku.init(e,t)});function Lo(e,t,n){return new yf({type:"union",options:t,discriminator:e,...S.normalizeParams(n)})}var bf=v("ZodIntersection",(e,t)=>{Qu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Op(e,n,o,r)});function zn(e,t){return new bf({type:"intersection",left:e,right:t})}var _f=v("ZodTuple",(e,t)=>{ma.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Cp(e,n,o,r),e.rest=n=>e.clone({...e._zod.def,rest:n})});function xf(e,t,n){let o=t instanceof N,r=o?n:t,i=o?t:null;return new _f({type:"tuple",items:e,rest:i,...S.normalizeParams(r)})}var bn=v("ZodRecord",(e,t)=>{Yu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Np(e,n,o,r),e.keyType=t.keyType,e.valueType=t.valueType});function te(e,t,n){return!t||!t._zod?new bn({type:"record",keyType:_(),valueType:e,...S.normalizeParams(t)}):new bn({type:"record",keyType:e,valueType:t,...S.normalizeParams(n)})}function Ib(e,t,n){let o=Ue(e);return o._zod.values=void 0,new bn({type:"record",keyType:o,valueType:t,...S.normalizeParams(n)})}function Pb(e,t,n){return new bn({type:"record",keyType:e,valueType:t,mode:"loose",...S.normalizeParams(n)})}var $f=v("ZodMap",(e,t)=>{Xu.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ep(e,n,o,r),e.keyType=t.keyType,e.valueType=t.valueType,e.min=(...n)=>e.check(St(...n)),e.nonempty=n=>e.check(St(1,n)),e.max=(...n)=>e.check(rr(...n)),e.size=(...n)=>e.check(Sr(...n))});function Eb(e,t,n){return new $f({type:"map",keyType:e,valueType:t,...S.normalizeParams(n)})}var kf=v("ZodSet",(e,t)=>{ed.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ap(e,n,o,r),e.min=(...n)=>e.check(St(...n)),e.nonempty=n=>e.check(St(1,n)),e.max=(...n)=>e.check(rr(...n)),e.size=(...n)=>e.check(Sr(...n))});function Ab(e,t){return new kf({type:"set",valueType:e,...S.normalizeParams(t)})}var _n=v("ZodEnum",(e,t)=>{td.init(e,t),R.init(e,t),e._zod.processJSONSchema=(o,r,i)=>_p(e,o,r,i),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(o,r)=>{let i={};for(let a of o)if(n.has(a))i[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new _n({...t,checks:[],...S.normalizeParams(r),entries:i})},e.exclude=(o,r)=>{let i={...t.entries};for(let a of o)if(n.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new _n({...t,checks:[],...S.normalizeParams(r),entries:i})}});function Pe(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new _n({type:"enum",entries:n,...S.normalizeParams(t)})}function Tb(e,t){return new _n({type:"enum",entries:e,...S.normalizeParams(t)})}var Sf=v("ZodLiteral",(e,t)=>{rd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>xp(e,n,o,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw new Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function O(e,t){return new Sf({type:"literal",values:Array.isArray(e)?e:[e],...S.normalizeParams(t)})}var wf=v("ZodFile",(e,t)=>{nd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Sp(e,n,o,r),e.min=(n,o)=>e.check(St(n,o)),e.max=(n,o)=>e.check(rr(n,o)),e.mime=(n,o)=>e.check(un(Array.isArray(n)?n:[n],o))});function jb(e){return ep(wf,e)}var zf=v("ZodTransform",(e,t)=>{od.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Pp(e,n,o,r),e._zod.parse=(n,o)=>{if(o.direction==="backward")throw new Kt(e.constructor.name);n.addIssue=i=>{if(typeof i=="string")n.issues.push(S.issue(i,n.value,t));else{let a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=n.value),a.inst??(a.inst=e),n.issues.push(S.issue(a))}};let r=t.transform(n.value,n);return r instanceof Promise?r.then(i=>(n.value=i,n.fallback=!0,n)):(n.value=r,n.fallback=!0,n)}});function ws(e){return new zf({type:"transform",transform:e})}var zs=v("ZodOptional",(e,t)=>{ga.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Wa(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function ce(e){return new zs({type:"optional",innerType:e})}var If=v("ZodExactOptional",(e,t)=>{id.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Wa(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Pf(e){return new If({type:"optional",innerType:e})}var Ef=v("ZodNullable",(e,t)=>{ad.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Dp(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Oo(e){return new Ef({type:"nullable",innerType:e})}function Ob(e){return ce(Oo(e))}var Af=v("ZodDefault",(e,t)=>{sd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Up(e,n,o,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Tf(e,t){return new Af({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():S.shallowClone(t)}})}var jf=v("ZodPrefault",(e,t)=>{cd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Mp(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Of(e,t){return new jf({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():S.shallowClone(t)}})}var Is=v("ZodNonOptional",(e,t)=>{ld.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Rp(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Cf(e,t){return new Is({type:"nonoptional",innerType:e,...S.normalizeParams(t)})}var Nf=v("ZodSuccess",(e,t)=>{ud.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>wp(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Cb(e){return new Nf({type:"success",innerType:e})}var Df=v("ZodCatch",(e,t)=>{dd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Lp(e,n,o,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Rf(e,t){return new Df({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var Uf=v("ZodNaN",(e,t)=>{pd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>$p(e,n,o,r)});function Nb(e){return Yd(Uf,e)}var Fo=v("ZodPipe",(e,t)=>{ha.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Fp(e,n,o,r),e.in=t.in,e.out=t.out});function is(e,t){return new Fo({type:"pipe",in:e,out:t})}var Zo=v("ZodCodec",(e,t)=>{Fo.init(e,t),zo.init(e,t)});function Db(e,t,n){return new Zo({type:"pipe",in:e,out:t,transform:n.decode,reverseTransform:n.encode})}function Rb(e){let t=e._zod.def;return new Zo({type:"pipe",in:t.out,out:t.in,transform:t.reverseTransform,reverseTransform:t.transform})}var Mf=v("ZodPreprocess",(e,t)=>{Fo.init(e,t),fd.init(e,t)}),Lf=v("ZodReadonly",(e,t)=>{md.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Zp(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Ff(e){return new Lf({type:"readonly",innerType:e})}var Zf=v("ZodTemplateLiteral",(e,t)=>{gd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>kp(e,n,o,r)});function Ub(e,t){return new Zf({type:"template_literal",parts:e,...S.normalizeParams(t)})}var qf=v("ZodLazy",(e,t)=>{yd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Bp(e,n,o,r),e.unwrap=()=>e._zod.def.getter()});function Bf(e){return new qf({type:"lazy",getter:e})}var Vf=v("ZodPromise",(e,t)=>{vd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>qp(e,n,o,r),e.unwrap=()=>e._zod.def.innerType});function Mb(e){return new Vf({type:"promise",innerType:e})}var Jf=v("ZodFunction",(e,t)=>{hd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>Ip(e,n,o,r)});function Lb(e){return new Jf({type:"function",input:Array.isArray(e?.input)?xf(e?.input):e?.input??Z(oe()),output:e?.output??oe()})}var qo=v("ZodCustom",(e,t)=>{bd.init(e,t),R.init(e,t),e._zod.processJSONSchema=(n,o,r)=>zp(e,n,o,r)});function Fb(e){let t=new se({check:"custom"});return t._zod.check=e,t}function Ps(e,t){return tp(qo,e??(()=>!0),t)}function Hf(e,t={}){return rp(qo,e,t)}function Gf(e,t){return np(e,t)}var Zb=op,qb=ip;function Bb(e,t={}){let n=new qo({type:"custom",check:"custom",fn:o=>o instanceof e,abort:!0,...S.normalizeParams(t)});return n._zod.bag.Class=e,n._zod.check=o=>{o.value instanceof e||o.issues.push({code:"invalid_type",expected:e.name,input:o.value,inst:n,path:[...n._zod.def.path??[]]})},n}var Vb=(...e)=>ap({Codec:Zo,Boolean:Sn,String:xn},...e);function Jb(e){let t=Bf(()=>ie([_(e),W(),ye(),Do(),Z(t),te(_(),t)]));return t}function Bo(e,t){return new Mf({type:"pipe",in:ws(e),out:t})}var Qz={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Yz(e){he({customError:e})}function Xz(){return he().customError}var Wf;Wf||(Wf={});var A={...To,...Xa,iso:sr},eI=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function tI(e,t){let n=e.$schema;return n==="https://json-schema.org/draft/2020-12/schema"?"draft-2020-12":n==="http://json-schema.org/draft-07/schema#"?"draft-7":n==="http://json-schema.org/draft-04/schema#"?"draft-4":t??"draft-2020-12"}function rI(e,t){if(!e.startsWith("#"))throw new Error("External $ref is not supported, only local refs (#/...) are allowed");let n=e.slice(1).split("/").filter(Boolean);if(n.length===0)return t.rootSchema;let o=t.version==="draft-2020-12"?"$defs":"definitions";if(n[0]===o){let r=n[1];if(!r||!t.defs[r])throw new Error(`Reference not found: ${e}`);return t.defs[r]}throw new Error(`Reference not found: ${e}`)}function Hb(e,t){if(e.not!==void 0){if(typeof e.not=="object"&&Object.keys(e.not).length===0)return A.never();throw new Error("not is not supported in Zod (except { not: {} } for never)")}if(e.unevaluatedItems!==void 0)throw new Error("unevaluatedItems is not supported");if(e.unevaluatedProperties!==void 0)throw new Error("unevaluatedProperties is not supported");if(e.if!==void 0||e.then!==void 0||e.else!==void 0)throw new Error("Conditional schemas (if/then/else) are not supported");if(e.dependentSchemas!==void 0||e.dependentRequired!==void 0)throw new Error("dependentSchemas and dependentRequired are not supported");if(e.$ref){let r=e.$ref;if(t.refs.has(r))return t.refs.get(r);if(t.processing.has(r))return A.lazy(()=>{if(!t.refs.has(r))throw new Error(`Circular reference not resolved: ${r}`);return t.refs.get(r)});t.processing.add(r);let i=rI(r,t),a=Ce(i,t);return t.refs.set(r,a),t.processing.delete(r),a}if(e.enum!==void 0){let r=e.enum;if(t.version==="openapi-3.0"&&e.nullable===!0&&r.length===1&&r[0]===null)return A.null();if(r.length===0)return A.never();if(r.length===1)return A.literal(r[0]);if(r.every(a=>typeof a=="string"))return A.enum(r);let i=r.map(a=>A.literal(a));return i.length<2?i[0]:A.union([i[0],i[1],...i.slice(2)])}if(e.const!==void 0)return A.literal(e.const);let n=e.type;if(Array.isArray(n)){let r=n.map(i=>{let a={...e,type:i};return Hb(a,t)});return r.length===0?A.never():r.length===1?r[0]:A.union(r)}if(!n)return A.any();let o;switch(n){case"string":{let r=A.string();if(e.format){let i=e.format;i==="email"?r=r.check(A.email()):i==="uri"||i==="uri-reference"?r=r.check(A.url()):i==="uuid"||i==="guid"?r=r.check(A.uuid()):i==="date-time"?r=r.check(A.iso.datetime()):i==="date"?r=r.check(A.iso.date()):i==="time"?r=r.check(A.iso.time()):i==="duration"?r=r.check(A.iso.duration()):i==="ipv4"?r=r.check(A.ipv4()):i==="ipv6"?r=r.check(A.ipv6()):i==="mac"?r=r.check(A.mac()):i==="cidr"?r=r.check(A.cidrv4()):i==="cidr-v6"?r=r.check(A.cidrv6()):i==="base64"?r=r.check(A.base64()):i==="base64url"?r=r.check(A.base64url()):i==="e164"?r=r.check(A.e164()):i==="jwt"?r=r.check(A.jwt()):i==="emoji"?r=r.check(A.emoji()):i==="nanoid"?r=r.check(A.nanoid()):i==="cuid"?r=r.check(A.cuid()):i==="cuid2"?r=r.check(A.cuid2()):i==="ulid"?r=r.check(A.ulid()):i==="xid"?r=r.check(A.xid()):i==="ksuid"&&(r=r.check(A.ksuid()))}typeof e.minLength=="number"&&(r=r.min(e.minLength)),typeof e.maxLength=="number"&&(r=r.max(e.maxLength)),e.pattern&&(r=r.regex(new RegExp(e.pattern))),o=r;break}case"number":case"integer":{let r=n==="integer"?A.number().int():A.number();typeof e.minimum=="number"&&(r=r.min(e.minimum)),typeof e.maximum=="number"&&(r=r.max(e.maximum)),typeof e.exclusiveMinimum=="number"?r=r.gt(e.exclusiveMinimum):e.exclusiveMinimum===!0&&typeof e.minimum=="number"&&(r=r.gt(e.minimum)),typeof e.exclusiveMaximum=="number"?r=r.lt(e.exclusiveMaximum):e.exclusiveMaximum===!0&&typeof e.maximum=="number"&&(r=r.lt(e.maximum)),typeof e.multipleOf=="number"&&(r=r.multipleOf(e.multipleOf)),o=r;break}case"boolean":{o=A.boolean();break}case"null":{o=A.null();break}case"object":{let r={},i=e.properties||{},a=new Set(e.required||[]);for(let[l,u]of Object.entries(i)){let d=Ce(u,t);r[l]=a.has(l)?d:d.optional()}if(e.propertyNames){let l=Ce(e.propertyNames,t),u=e.additionalProperties&&typeof e.additionalProperties=="object"?Ce(e.additionalProperties,t):A.any();if(Object.keys(r).length===0){o=A.record(l,u);break}let d=A.object(r).passthrough(),p=A.looseRecord(l,u);o=A.intersection(d,p);break}if(e.patternProperties){let l=e.patternProperties,u=Object.keys(l),d=[];for(let m of u){let f=Ce(l[m],t),g=A.string().regex(new RegExp(m));d.push(A.looseRecord(g,f))}let p=[];if(Object.keys(r).length>0&&p.push(A.object(r).passthrough()),p.push(...d),p.length===0)o=A.object({}).passthrough();else if(p.length===1)o=p[0];else{let m=A.intersection(p[0],p[1]);for(let f=2;f<p.length;f++)m=A.intersection(m,p[f]);o=m}break}let s=A.object(r);e.additionalProperties===!1?o=s.strict():typeof e.additionalProperties=="object"?o=s.catchall(Ce(e.additionalProperties,t)):o=s.passthrough();break}case"array":{let r=e.prefixItems,i=e.items;if(r&&Array.isArray(r)){let a=r.map(l=>Ce(l,t)),s=i&&typeof i=="object"&&!Array.isArray(i)?Ce(i,t):void 0;s?o=A.tuple(a).rest(s):o=A.tuple(a),typeof e.minItems=="number"&&(o=o.check(A.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(A.maxLength(e.maxItems)))}else if(Array.isArray(i)){let a=i.map(l=>Ce(l,t)),s=e.additionalItems&&typeof e.additionalItems=="object"?Ce(e.additionalItems,t):void 0;s?o=A.tuple(a).rest(s):o=A.tuple(a),typeof e.minItems=="number"&&(o=o.check(A.minLength(e.minItems))),typeof e.maxItems=="number"&&(o=o.check(A.maxLength(e.maxItems)))}else if(i!==void 0){let a=Ce(i,t),s=A.array(a);typeof e.minItems=="number"&&(s=s.min(e.minItems)),typeof e.maxItems=="number"&&(s=s.max(e.maxItems)),o=s}else o=A.array(A.any());break}default:throw new Error(`Unsupported type: ${n}`)}return o}function Ce(e,t){if(typeof e=="boolean")return e?A.any():A.never();let n=Hb(e,t),o=e.type||e.enum!==void 0||e.const!==void 0;if(e.anyOf&&Array.isArray(e.anyOf)){let s=e.anyOf.map(u=>Ce(u,t)),l=A.union(s);n=o?A.intersection(n,l):l}if(e.oneOf&&Array.isArray(e.oneOf)){let s=e.oneOf.map(u=>Ce(u,t)),l=A.xor(s);n=o?A.intersection(n,l):l}if(e.allOf&&Array.isArray(e.allOf))if(e.allOf.length===0)n=o?n:A.any();else{let s=o?n:Ce(e.allOf[0],t),l=o?0:1;for(let u=l;u<e.allOf.length;u++)s=A.intersection(s,Ce(e.allOf[u],t));n=s}e.nullable===!0&&t.version==="openapi-3.0"&&(n=A.nullable(n)),e.readOnly===!0&&(n=A.readonly(n)),e.default!==void 0&&(n=n.default(e.default));let r={},i=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let s of i)s in e&&(r[s]=e[s]);let a=["contentEncoding","contentMediaType","contentSchema"];for(let s of a)s in e&&(r[s]=e[s]);for(let s of Object.keys(e))eI.has(s)||(r[s]=e[s]);return Object.keys(r).length>0&&t.registry.add(n,r),e.description&&(n=n.describe(e.description)),n}function Gb(e,t){if(typeof e=="boolean")return e?A.any():A.never();let n;try{n=JSON.parse(JSON.stringify(e))}catch{throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas")}let o=tI(n,t?.defaultTarget),r=n.$defs||n.definitions||{},i={version:o,defs:r,refs:new Map,processing:new Set,rootSchema:n,registry:t?.registry??ze};return Ce(n,i)}var Kf={};jt(Kf,{bigint:()=>aI,boolean:()=>iI,date:()=>sI,number:()=>oI,string:()=>nI});function nI(e){return kd(xn,e)}function oI(e){return Td(kn,e)}function iI(e){return Ud(Sn,e)}function aI(e){return Ld(wn,e)}function sI(e){return Qd(Ro,e)}he(va());var Yf="2025-11-25";var Wb=[Yf,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],cr="io.modelcontextprotocol/related-task",As="2.0",$e=Ps(e=>e!==null&&(typeof e=="object"||typeof e=="function")),Kb=ie([_(),W().int()]),Qb=_(),P6=Ie({ttl:W().optional(),pollInterval:W().optional()}),cI=T({ttl:W().optional()}),lI=T({taskId:_()}),Xf=Ie({progressToken:Kb.optional(),[cr]:lI.optional()}),tt=T({_meta:Xf.optional()}),Vo=tt.extend({task:cI.optional()}),Yb=e=>Vo.safeParse(e).success,Ee=T({method:_(),params:tt.loose().optional()}),ot=T({_meta:Xf.optional()}),it=T({method:_(),params:ot.loose().optional()}),Ae=Ie({_meta:Xf.optional()}),Ts=ie([_(),W().int()]),Xb=T({jsonrpc:O(As),id:Ts,...Ee.shape}).strict(),em=e=>Xb.safeParse(e).success,e_=T({jsonrpc:O(As),...it.shape}).strict(),t_=e=>e_.safeParse(e).success,tm=T({jsonrpc:O(As),id:Ts,result:Ae}).strict(),Jo=e=>tm.safeParse(e).success;var V;(function(e){e[e.ConnectionClosed=-32e3]="ConnectionClosed",e[e.RequestTimeout=-32001]="RequestTimeout",e[e.ParseError=-32700]="ParseError",e[e.InvalidRequest=-32600]="InvalidRequest",e[e.MethodNotFound=-32601]="MethodNotFound",e[e.InvalidParams=-32602]="InvalidParams",e[e.InternalError=-32603]="InternalError",e[e.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(V||(V={}));var rm=T({jsonrpc:O(As),id:Ts.optional(),error:T({code:W().int(),message:_(),data:oe().optional()})}).strict();var r_=e=>rm.safeParse(e).success;var n_=ie([Xb,e_,tm,rm]),E6=ie([tm,rm]),js=Ae.strict(),uI=ot.extend({requestId:Ts.optional(),reason:_().optional()}),Os=it.extend({method:O("notifications/cancelled"),params:uI}),dI=T({src:_(),mimeType:_().optional(),sizes:Z(_()).optional(),theme:Pe(["light","dark"]).optional()}),Ho=T({icons:Z(dI).optional()}),In=T({name:_(),title:_().optional()}),o_=In.extend({...In.shape,...Ho.shape,version:_(),websiteUrl:_().optional(),description:_().optional()}),pI=zn(T({applyDefaults:ye().optional()}),te(_(),oe())),fI=Bo(e=>e&&typeof e=="object"&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,zn(T({form:pI.optional(),url:$e.optional()}),te(_(),oe()).optional())),mI=Ie({list:$e.optional(),cancel:$e.optional(),requests:Ie({sampling:Ie({createMessage:$e.optional()}).optional(),elicitation:Ie({create:$e.optional()}).optional()}).optional()}),gI=Ie({list:$e.optional(),cancel:$e.optional(),requests:Ie({tools:Ie({call:$e.optional()}).optional()}).optional()}),hI=T({experimental:te(_(),$e).optional(),sampling:T({context:$e.optional(),tools:$e.optional()}).optional(),elicitation:fI.optional(),roots:T({listChanged:ye().optional()}).optional(),tasks:mI.optional(),extensions:te(_(),$e).optional()}),vI=tt.extend({protocolVersion:_(),capabilities:hI,clientInfo:o_}),nm=Ee.extend({method:O("initialize"),params:vI});var yI=T({experimental:te(_(),$e).optional(),logging:$e.optional(),completions:$e.optional(),prompts:T({listChanged:ye().optional()}).optional(),resources:T({subscribe:ye().optional(),listChanged:ye().optional()}).optional(),tools:T({listChanged:ye().optional()}).optional(),tasks:gI.optional(),extensions:te(_(),$e).optional()}),bI=Ae.extend({protocolVersion:_(),capabilities:yI,serverInfo:o_,instructions:_().optional()}),om=it.extend({method:O("notifications/initialized"),params:ot.optional()});var Cs=Ee.extend({method:O("ping"),params:tt.optional()}),_I=T({progress:W(),total:ce(W()),message:ce(_())}),xI=T({...ot.shape,..._I.shape,progressToken:Kb}),Ns=it.extend({method:O("notifications/progress"),params:xI}),$I=tt.extend({cursor:Qb.optional()}),Go=Ee.extend({params:$I.optional()}),Wo=Ae.extend({nextCursor:Qb.optional()}),kI=Pe(["working","input_required","completed","failed","cancelled"]),Ko=T({taskId:_(),status:kI,ttl:ie([W(),Do()]),createdAt:_(),lastUpdatedAt:_(),pollInterval:ce(W()),statusMessage:ce(_())}),Pn=Ae.extend({task:Ko}),SI=ot.merge(Ko),Qo=it.extend({method:O("notifications/tasks/status"),params:SI}),Ds=Ee.extend({method:O("tasks/get"),params:tt.extend({taskId:_()})}),Rs=Ae.merge(Ko),Us=Ee.extend({method:O("tasks/result"),params:tt.extend({taskId:_()})}),A6=Ae.loose(),Ms=Go.extend({method:O("tasks/list")}),Ls=Wo.extend({tasks:Z(Ko)}),Fs=Ee.extend({method:O("tasks/cancel"),params:tt.extend({taskId:_()})}),i_=Ae.merge(Ko),a_=T({uri:_(),mimeType:ce(_()),_meta:te(_(),oe()).optional()}),s_=a_.extend({text:_()}),im=_().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:"Invalid Base64 string"}),c_=a_.extend({blob:im}),Yo=Pe(["user","assistant"]),En=T({audience:Z(Yo).optional(),priority:W().min(0).max(1).optional(),lastModified:sr.datetime({offset:!0}).optional()}),l_=T({...In.shape,...Ho.shape,uri:_(),description:ce(_()),mimeType:ce(_()),size:ce(W()),annotations:En.optional(),_meta:ce(Ie({}))}),wI=T({...In.shape,...Ho.shape,uriTemplate:_(),description:ce(_()),mimeType:ce(_()),annotations:En.optional(),_meta:ce(Ie({}))}),am=Go.extend({method:O("resources/list")}),zI=Wo.extend({resources:Z(l_)}),II=Go.extend({method:O("resources/templates/list")}),PI=Wo.extend({resourceTemplates:Z(wI)}),sm=tt.extend({uri:_()}),EI=sm,cm=Ee.extend({method:O("resources/read"),params:EI}),AI=Ae.extend({contents:Z(ie([s_,c_]))}),TI=it.extend({method:O("notifications/resources/list_changed"),params:ot.optional()}),jI=sm,OI=Ee.extend({method:O("resources/subscribe"),params:jI}),CI=sm,NI=Ee.extend({method:O("resources/unsubscribe"),params:CI}),DI=ot.extend({uri:_()}),RI=it.extend({method:O("notifications/resources/updated"),params:DI}),UI=T({name:_(),description:ce(_()),required:ce(ye())}),MI=T({...In.shape,...Ho.shape,description:ce(_()),arguments:ce(Z(UI)),_meta:ce(Ie({}))}),LI=Go.extend({method:O("prompts/list")}),FI=Wo.extend({prompts:Z(MI)}),ZI=tt.extend({name:_(),arguments:te(_(),_()).optional()}),qI=Ee.extend({method:O("prompts/get"),params:ZI}),lm=T({type:O("text"),text:_(),annotations:En.optional(),_meta:te(_(),oe()).optional()}),um=T({type:O("image"),data:im,mimeType:_(),annotations:En.optional(),_meta:te(_(),oe()).optional()}),dm=T({type:O("audio"),data:im,mimeType:_(),annotations:En.optional(),_meta:te(_(),oe()).optional()}),BI=T({type:O("tool_use"),name:_(),id:_(),input:te(_(),oe()),_meta:te(_(),oe()).optional()}),VI=T({type:O("resource"),resource:ie([s_,c_]),annotations:En.optional(),_meta:te(_(),oe()).optional()}),JI=l_.extend({type:O("resource_link")}),pm=ie([lm,um,dm,JI,VI]),HI=T({role:Yo,content:pm}),GI=Ae.extend({description:_().optional(),messages:Z(HI)}),WI=it.extend({method:O("notifications/prompts/list_changed"),params:ot.optional()}),KI=T({title:_().optional(),readOnlyHint:ye().optional(),destructiveHint:ye().optional(),idempotentHint:ye().optional(),openWorldHint:ye().optional()}),QI=T({taskSupport:Pe(["required","optional","forbidden"]).optional()}),u_=T({...In.shape,...Ho.shape,description:_().optional(),inputSchema:T({type:O("object"),properties:te(_(),$e).optional(),required:Z(_()).optional()}).catchall(oe()),outputSchema:T({type:O("object"),properties:te(_(),$e).optional(),required:Z(_()).optional()}).catchall(oe()).optional(),annotations:KI.optional(),execution:QI.optional(),_meta:te(_(),oe()).optional()}),fm=Go.extend({method:O("tools/list")}),YI=Wo.extend({tools:Z(u_)}),Zs=Ae.extend({content:Z(pm).default([]),structuredContent:te(_(),oe()).optional(),isError:ye().optional()}),T6=Zs.or(Ae.extend({toolResult:oe()})),XI=Vo.extend({name:_(),arguments:te(_(),oe()).optional()}),Xo=Ee.extend({method:O("tools/call"),params:XI}),eP=it.extend({method:O("notifications/tools/list_changed"),params:ot.optional()}),j6=T({autoRefresh:ye().default(!0),debounceMs:W().int().nonnegative().default(300)}),ei=Pe(["debug","info","notice","warning","error","critical","alert","emergency"]),tP=tt.extend({level:ei}),mm=Ee.extend({method:O("logging/setLevel"),params:tP}),rP=ot.extend({level:ei,logger:_().optional(),data:oe()}),nP=it.extend({method:O("notifications/message"),params:rP}),oP=T({name:_().optional()}),iP=T({hints:Z(oP).optional(),costPriority:W().min(0).max(1).optional(),speedPriority:W().min(0).max(1).optional(),intelligencePriority:W().min(0).max(1).optional()}),aP=T({mode:Pe(["auto","required","none"]).optional()}),sP=T({type:O("tool_result"),toolUseId:_().describe("The unique identifier for the corresponding tool call."),content:Z(pm).default([]),structuredContent:T({}).loose().optional(),isError:ye().optional(),_meta:te(_(),oe()).optional()}),cP=Lo("type",[lm,um,dm]),Es=Lo("type",[lm,um,dm,BI,sP]),lP=T({role:Yo,content:ie([Es,Z(Es)]),_meta:te(_(),oe()).optional()}),uP=Vo.extend({messages:Z(lP),modelPreferences:iP.optional(),systemPrompt:_().optional(),includeContext:Pe(["none","thisServer","allServers"]).optional(),temperature:W().optional(),maxTokens:W().int(),stopSequences:Z(_()).optional(),metadata:$e.optional(),tools:Z(u_).optional(),toolChoice:aP.optional()}),dP=Ee.extend({method:O("sampling/createMessage"),params:uP}),ti=Ae.extend({model:_(),stopReason:ce(Pe(["endTurn","stopSequence","maxTokens"]).or(_())),role:Yo,content:cP}),gm=Ae.extend({model:_(),stopReason:ce(Pe(["endTurn","stopSequence","maxTokens","toolUse"]).or(_())),role:Yo,content:ie([Es,Z(Es)])}),pP=T({type:O("boolean"),title:_().optional(),description:_().optional(),default:ye().optional()}),fP=T({type:O("string"),title:_().optional(),description:_().optional(),minLength:W().optional(),maxLength:W().optional(),format:Pe(["email","uri","date","date-time"]).optional(),default:_().optional()}),mP=T({type:Pe(["number","integer"]),title:_().optional(),description:_().optional(),minimum:W().optional(),maximum:W().optional(),default:W().optional()}),gP=T({type:O("string"),title:_().optional(),description:_().optional(),enum:Z(_()),default:_().optional()}),hP=T({type:O("string"),title:_().optional(),description:_().optional(),oneOf:Z(T({const:_(),title:_()})),default:_().optional()}),vP=T({type:O("string"),title:_().optional(),description:_().optional(),enum:Z(_()),enumNames:Z(_()).optional(),default:_().optional()}),yP=ie([gP,hP]),bP=T({type:O("array"),title:_().optional(),description:_().optional(),minItems:W().optional(),maxItems:W().optional(),items:T({type:O("string"),enum:Z(_())}),default:Z(_()).optional()}),_P=T({type:O("array"),title:_().optional(),description:_().optional(),minItems:W().optional(),maxItems:W().optional(),items:T({anyOf:Z(T({const:_(),title:_()}))}),default:Z(_()).optional()}),xP=ie([bP,_P]),$P=ie([vP,yP,xP]),kP=ie([$P,pP,fP,mP]),SP=Vo.extend({mode:O("form").optional(),message:_(),requestedSchema:T({type:O("object"),properties:te(_(),kP),required:Z(_()).optional()})}),wP=Vo.extend({mode:O("url"),message:_(),elicitationId:_(),url:_().url()}),zP=ie([SP,wP]),IP=Ee.extend({method:O("elicitation/create"),params:zP}),PP=ot.extend({elicitationId:_()}),EP=it.extend({method:O("notifications/elicitation/complete"),params:PP}),An=Ae.extend({action:Pe(["accept","decline","cancel"]),content:Bo(e=>e===null?void 0:e,te(_(),ie([_(),W(),ye(),Z(_())])).optional())}),AP=T({type:O("ref/resource"),uri:_()});var TP=T({type:O("ref/prompt"),name:_()}),jP=tt.extend({ref:ie([TP,AP]),argument:T({name:_(),value:_()}),context:T({arguments:te(_(),_()).optional()}).optional()}),OP=Ee.extend({method:O("completion/complete"),params:jP});var CP=Ae.extend({completion:Ie({values:Z(_()).max(100),total:ce(W().int()),hasMore:ce(ye())})}),NP=T({uri:_().startsWith("file://"),name:_().optional(),_meta:te(_(),oe()).optional()}),DP=Ee.extend({method:O("roots/list"),params:tt.optional()}),hm=Ae.extend({roots:Z(NP)}),RP=it.extend({method:O("notifications/roots/list_changed"),params:ot.optional()}),O6=ie([Cs,nm,OP,mm,qI,LI,am,II,cm,OI,NI,Xo,fm,Ds,Us,Ms,Fs]),C6=ie([Os,Ns,om,RP,Qo]),N6=ie([js,ti,gm,An,hm,Rs,Ls,Pn]),D6=ie([Cs,dP,IP,DP,Ds,Us,Ms,Fs]),R6=ie([Os,Ns,nP,RI,TI,eP,WI,Qo,EP]),U6=ie([js,bI,CP,GI,FI,zI,PI,AI,Zs,YI,Rs,Ls,Pn]),U=class e extends Error{constructor(t,n,o){super(`MCP error ${t}: ${n}`),this.code=t,this.data=o,this.name="McpError"}static fromError(t,n,o){if(t===V.UrlElicitationRequired&&o){let r=o;if(r.elicitations)return new Qf(r.elicitations,n)}return new e(t,n,o)}},Qf=class extends U{constructor(t,n=`URL elicitation${t.length>1?"s":""} required`){super(V.UrlElicitationRequired,n,{elicitations:t})}get elicitations(){return this.data?.elicitations??[]}};function lr(e){return e==="completed"||e==="failed"||e==="cancelled"}var v2=new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");function vm(e){let n=Ya(e)?.method;if(!n)throw new Error("Schema is missing a method literal");let o=Ny(n);if(typeof o!="string")throw new Error("Schema method literal must be a string");return o}function ym(e,t){let n=ar(e,t);if(!n.success)throw n.error;return n.data}var qP=6e4,qs=class{constructor(t){this._options=t,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(Os,n=>{this._oncancel(n)}),this.setNotificationHandler(Ns,n=>{this._onprogress(n)}),this.setRequestHandler(Cs,n=>({})),this._taskStore=t?.taskStore,this._taskMessageQueue=t?.taskMessageQueue,this._taskStore&&(this.setRequestHandler(Ds,async(n,o)=>{let r=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!r)throw new U(V.InvalidParams,"Failed to retrieve task: Task not found");return{...r}}),this.setRequestHandler(Us,async(n,o)=>{let r=async()=>{let i=n.params.taskId;if(this._taskMessageQueue){let s;for(;s=await this._taskMessageQueue.dequeue(i,o.sessionId);){if(s.type==="response"||s.type==="error"){let l=s.message,u=l.id,d=this._requestResolvers.get(u);if(d)if(this._requestResolvers.delete(u),s.type==="response")d(l);else{let p=l,m=new U(p.error.code,p.error.message,p.error.data);d(m)}else{let p=s.type==="response"?"Response":"Error";this._onerror(new Error(`${p} handler missing for request ${u}`))}continue}await this._transport?.send(s.message,{relatedRequestId:o.requestId})}}let a=await this._taskStore.getTask(i,o.sessionId);if(!a)throw new U(V.InvalidParams,`Task not found: ${i}`);if(!lr(a.status))return await this._waitForTaskUpdate(i,o.signal),await r();if(lr(a.status)){let s=await this._taskStore.getTaskResult(i,o.sessionId);return this._clearTaskQueue(i),{...s,_meta:{...s._meta,[cr]:{taskId:i}}}}return await r()};return await r()}),this.setRequestHandler(Ms,async(n,o)=>{try{let{tasks:r,nextCursor:i}=await this._taskStore.listTasks(n.params?.cursor,o.sessionId);return{tasks:r,nextCursor:i,_meta:{}}}catch(r){throw new U(V.InvalidParams,`Failed to list tasks: ${r instanceof Error?r.message:String(r)}`)}}),this.setRequestHandler(Fs,async(n,o)=>{try{let r=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!r)throw new U(V.InvalidParams,`Task not found: ${n.params.taskId}`);if(lr(r.status))throw new U(V.InvalidParams,`Cannot cancel task in terminal status: ${r.status}`);await this._taskStore.updateTaskStatus(n.params.taskId,"cancelled","Client cancelled task execution.",o.sessionId),this._clearTaskQueue(n.params.taskId);let i=await this._taskStore.getTask(n.params.taskId,o.sessionId);if(!i)throw new U(V.InvalidParams,`Task not found after cancellation: ${n.params.taskId}`);return{_meta:{},...i}}catch(r){throw r instanceof U?r:new U(V.InvalidRequest,`Failed to cancel task: ${r instanceof Error?r.message:String(r)}`)}}))}async _oncancel(t){if(!t.params.requestId)return;this._requestHandlerAbortControllers.get(t.params.requestId)?.abort(t.params.reason)}_setupTimeout(t,n,o,r,i=!1){this._timeoutInfo.set(t,{timeoutId:setTimeout(r,n),startTime:Date.now(),timeout:n,maxTotalTimeout:o,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(t){let n=this._timeoutInfo.get(t);if(!n)return!1;let o=Date.now()-n.startTime;if(n.maxTotalTimeout&&o>=n.maxTotalTimeout)throw this._timeoutInfo.delete(t),U.fromError(V.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:n.maxTotalTimeout,totalElapsed:o});return clearTimeout(n.timeoutId),n.timeoutId=setTimeout(n.onTimeout,n.timeout),!0}_cleanupTimeout(t){let n=this._timeoutInfo.get(t);n&&(clearTimeout(n.timeoutId),this._timeoutInfo.delete(t))}async connect(t){if(this._transport)throw new Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=t;let n=this.transport?.onclose;this._transport.onclose=()=>{n?.(),this._onclose()};let o=this.transport?.onerror;this._transport.onerror=i=>{o?.(i),this._onerror(i)};let r=this._transport?.onmessage;this._transport.onmessage=(i,a)=>{r?.(i,a),Jo(i)||r_(i)?this._onresponse(i):em(i)?this._onrequest(i,a):t_(i)?this._onnotification(i):this._onerror(new Error(`Unknown message type: ${JSON.stringify(i)}`))},await this._transport.start()}_onclose(){let t=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let o of this._timeoutInfo.values())clearTimeout(o.timeoutId);this._timeoutInfo.clear();for(let o of this._requestHandlerAbortControllers.values())o.abort();this._requestHandlerAbortControllers.clear();let n=U.fromError(V.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let o of t.values())o(n)}_onerror(t){this.onerror?.(t)}_onnotification(t){let n=this._notificationHandlers.get(t.method)??this.fallbackNotificationHandler;n!==void 0&&Promise.resolve().then(()=>n(t)).catch(o=>this._onerror(new Error(`Uncaught error in notification handler: ${o}`)))}_onrequest(t,n){let o=this._requestHandlers.get(t.method)??this.fallbackRequestHandler,r=this._transport,i=t.params?._meta?.[cr]?.taskId;if(o===void 0){let d={jsonrpc:"2.0",id:t.id,error:{code:V.MethodNotFound,message:"Method not found"}};i&&this._taskMessageQueue?this._enqueueTaskMessage(i,{type:"error",message:d,timestamp:Date.now()},r?.sessionId).catch(p=>this._onerror(new Error(`Failed to enqueue error response: ${p}`))):r?.send(d).catch(p=>this._onerror(new Error(`Failed to send an error response: ${p}`)));return}let a=new AbortController;this._requestHandlerAbortControllers.set(t.id,a);let s=Yb(t.params)?t.params.task:void 0,l=this._taskStore?this.requestTaskStore(t,r?.sessionId):void 0,u={signal:a.signal,sessionId:r?.sessionId,_meta:t.params?._meta,sendNotification:async d=>{if(a.signal.aborted)return;let p={relatedRequestId:t.id};i&&(p.relatedTask={taskId:i}),await this.notification(d,p)},sendRequest:async(d,p,m)=>{if(a.signal.aborted)throw new U(V.ConnectionClosed,"Request was cancelled");let f={...m,relatedRequestId:t.id};i&&!f.relatedTask&&(f.relatedTask={taskId:i});let g=f.relatedTask?.taskId??i;return g&&l&&await l.updateTaskStatus(g,"input_required"),await this.request(d,p,f)},authInfo:n?.authInfo,requestId:t.id,requestInfo:n?.requestInfo,taskId:i,taskStore:l,taskRequestedTtl:s?.ttl,closeSSEStream:n?.closeSSEStream,closeStandaloneSSEStream:n?.closeStandaloneSSEStream};Promise.resolve().then(()=>{s&&this.assertTaskHandlerCapability(t.method)}).then(()=>o(t,u)).then(async d=>{if(a.signal.aborted)return;let p={result:d,jsonrpc:"2.0",id:t.id};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"response",message:p,timestamp:Date.now()},r?.sessionId):await r?.send(p)},async d=>{if(a.signal.aborted)return;let p={jsonrpc:"2.0",id:t.id,error:{code:Number.isSafeInteger(d.code)?d.code:V.InternalError,message:d.message??"Internal error",...d.data!==void 0&&{data:d.data}}};i&&this._taskMessageQueue?await this._enqueueTaskMessage(i,{type:"error",message:p,timestamp:Date.now()},r?.sessionId):await r?.send(p)}).catch(d=>this._onerror(new Error(`Failed to send response: ${d}`))).finally(()=>{this._requestHandlerAbortControllers.get(t.id)===a&&this._requestHandlerAbortControllers.delete(t.id)})}_onprogress(t){let{progressToken:n,...o}=t.params,r=Number(n),i=this._progressHandlers.get(r);if(!i){this._onerror(new Error(`Received a progress notification for an unknown token: ${JSON.stringify(t)}`));return}let a=this._responseHandlers.get(r),s=this._timeoutInfo.get(r);if(s&&a&&s.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(l){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(l);return}i(o)}_onresponse(t){let n=Number(t.id),o=this._requestResolvers.get(n);if(o){if(this._requestResolvers.delete(n),Jo(t))o(t);else{let a=new U(t.error.code,t.error.message,t.error.data);o(a)}return}let r=this._responseHandlers.get(n);if(r===void 0){this._onerror(new Error(`Received a response for an unknown message ID: ${JSON.stringify(t)}`));return}this._responseHandlers.delete(n),this._cleanupTimeout(n);let i=!1;if(Jo(t)&&t.result&&typeof t.result=="object"){let a=t.result;if(a.task&&typeof a.task=="object"){let s=a.task;typeof s.taskId=="string"&&(i=!0,this._taskProgressTokens.set(s.taskId,n))}}if(i||this._progressHandlers.delete(n),Jo(t))r(t);else{let a=U.fromError(t.error.code,t.error.message,t.error.data);r(a)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(t,n,o){let{task:r}=o??{};if(!r){try{yield{type:"result",result:await this.request(t,n,o)}}catch(a){yield{type:"error",error:a instanceof U?a:new U(V.InternalError,String(a))}}return}let i;try{let a=await this.request(t,Pn,o);if(a.task)i=a.task.taskId,yield{type:"taskCreated",task:a.task};else throw new U(V.InternalError,"Task creation did not return a task");for(;;){let s=await this.getTask({taskId:i},o);if(yield{type:"taskStatus",task:s},lr(s.status)){s.status==="completed"?yield{type:"result",result:await this.getTaskResult({taskId:i},n,o)}:s.status==="failed"?yield{type:"error",error:new U(V.InternalError,`Task ${i} failed`)}:s.status==="cancelled"&&(yield{type:"error",error:new U(V.InternalError,`Task ${i} was cancelled`)});return}if(s.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:i},n,o)};return}let l=s.pollInterval??this._options?.defaultTaskPollInterval??1e3;await new Promise(u=>setTimeout(u,l)),o?.signal?.throwIfAborted()}}catch(a){yield{type:"error",error:a instanceof U?a:new U(V.InternalError,String(a))}}}request(t,n,o){let{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a,task:s,relatedTask:l}=o??{};return new Promise((u,d)=>{let p=P=>{d(P)};if(!this._transport){p(new Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(t.method),s&&this.assertTaskCapability(t.method)}catch(P){p(P);return}o?.signal?.throwIfAborted();let m=this._requestMessageId++,f={...t,jsonrpc:"2.0",id:m};o?.onprogress&&(this._progressHandlers.set(m,o.onprogress),f.params={...t.params,_meta:{...t.params?._meta||{},progressToken:m}}),s&&(f.params={...f.params,task:s}),l&&(f.params={...f.params,_meta:{...f.params?._meta||{},[cr]:l}});let g=P=>{this._responseHandlers.delete(m),this._progressHandlers.delete(m),this._cleanupTimeout(m),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:m,reason:String(P)}},{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(j=>this._onerror(new Error(`Failed to send cancellation: ${j}`)));let I=P instanceof U?P:new U(V.RequestTimeout,String(P));d(I)};this._responseHandlers.set(m,P=>{if(!o?.signal?.aborted){if(P instanceof Error)return d(P);try{let I=ar(n,P.result);I.success?u(I.data):d(I.error)}catch(I){d(I)}}}),o?.signal?.addEventListener("abort",()=>{g(o?.signal?.reason)});let h=o?.timeout??qP,b=()=>g(U.fromError(V.RequestTimeout,"Request timed out",{timeout:h}));this._setupTimeout(m,h,o?.maxTotalTimeout,b,o?.resetTimeoutOnProgress??!1);let $=l?.taskId;if($){let P=I=>{let j=this._responseHandlers.get(m);j?j(I):this._onerror(new Error(`Response handler missing for side-channeled request ${m}`))};this._requestResolvers.set(m,P),this._enqueueTaskMessage($,{type:"request",message:f,timestamp:Date.now()}).catch(I=>{this._cleanupTimeout(m),d(I)})}else this._transport.send(f,{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(P=>{this._cleanupTimeout(m),d(P)})})}async getTask(t,n){return this.request({method:"tasks/get",params:t},Rs,n)}async getTaskResult(t,n,o){return this.request({method:"tasks/result",params:t},n,o)}async listTasks(t,n){return this.request({method:"tasks/list",params:t},Ls,n)}async cancelTask(t,n){return this.request({method:"tasks/cancel",params:t},i_,n)}async notification(t,n){if(!this._transport)throw new Error("Not connected");this.assertNotificationCapability(t.method);let o=n?.relatedTask?.taskId;if(o){let s={...t,jsonrpc:"2.0",params:{...t.params,_meta:{...t.params?._meta||{},[cr]:n.relatedTask}}};await this._enqueueTaskMessage(o,{type:"notification",message:s,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(t.method)&&!t.params&&!n?.relatedRequestId&&!n?.relatedTask){if(this._pendingDebouncedNotifications.has(t.method))return;this._pendingDebouncedNotifications.add(t.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(t.method),!this._transport)return;let s={...t,jsonrpc:"2.0"};n?.relatedTask&&(s={...s,params:{...s.params,_meta:{...s.params?._meta||{},[cr]:n.relatedTask}}}),this._transport?.send(s,n).catch(l=>this._onerror(l))});return}let a={...t,jsonrpc:"2.0"};n?.relatedTask&&(a={...a,params:{...a.params,_meta:{...a.params?._meta||{},[cr]:n.relatedTask}}}),await this._transport.send(a,n)}setRequestHandler(t,n){let o=vm(t);this.assertRequestHandlerCapability(o),this._requestHandlers.set(o,(r,i)=>{let a=ym(t,r);return Promise.resolve(n(a,i))})}removeRequestHandler(t){this._requestHandlers.delete(t)}assertCanSetRequestHandler(t){if(this._requestHandlers.has(t))throw new Error(`A request handler for ${t} already exists, which would be overridden`)}setNotificationHandler(t,n){let o=vm(t);this._notificationHandlers.set(o,r=>{let i=ym(t,r);return Promise.resolve(n(i))})}removeNotificationHandler(t){this._notificationHandlers.delete(t)}_cleanupTaskProgressHandler(t){let n=this._taskProgressTokens.get(t);n!==void 0&&(this._progressHandlers.delete(n),this._taskProgressTokens.delete(t))}async _enqueueTaskMessage(t,n,o){if(!this._taskStore||!this._taskMessageQueue)throw new Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let r=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(t,n,o,r)}async _clearTaskQueue(t,n){if(this._taskMessageQueue){let o=await this._taskMessageQueue.dequeueAll(t,n);for(let r of o)if(r.type==="request"&&em(r.message)){let i=r.message.id,a=this._requestResolvers.get(i);a?(a(new U(V.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(i)):this._onerror(new Error(`Resolver missing for request ${i} during task ${t} cleanup`))}}}async _waitForTaskUpdate(t,n){let o=this._options?.defaultTaskPollInterval??1e3;try{let r=await this._taskStore?.getTask(t);r?.pollInterval&&(o=r.pollInterval)}catch{}return new Promise((r,i)=>{if(n.aborted){i(new U(V.InvalidRequest,"Request cancelled"));return}let a=setTimeout(r,o);n.addEventListener("abort",()=>{clearTimeout(a),i(new U(V.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(t,n){let o=this._taskStore;if(!o)throw new Error("No task store configured");return{createTask:async r=>{if(!t)throw new Error("No request provided");return await o.createTask(r,t.id,{method:t.method,params:t.params},n)},getTask:async r=>{let i=await o.getTask(r,n);if(!i)throw new U(V.InvalidParams,"Failed to retrieve task: Task not found");return i},storeTaskResult:async(r,i,a)=>{await o.storeTaskResult(r,i,a,n);let s=await o.getTask(r,n);if(s){let l=Qo.parse({method:"notifications/tasks/status",params:s});await this.notification(l),lr(s.status)&&this._cleanupTaskProgressHandler(r)}},getTaskResult:r=>o.getTaskResult(r,n),updateTaskStatus:async(r,i,a)=>{let s=await o.getTask(r,n);if(!s)throw new U(V.InvalidParams,`Task "${r}" not found - it may have been cleaned up`);if(lr(s.status))throw new U(V.InvalidParams,`Cannot update task "${r}" from terminal status "${s.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await o.updateTaskStatus(r,i,a,n);let l=await o.getTask(r,n);if(l){let u=Qo.parse({method:"notifications/tasks/status",params:l});await this.notification(u),lr(l.status)&&this._cleanupTaskProgressHandler(r)}},listTasks:r=>o.listTasks(r,n)}}};function d_(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function p_(e,t){let n={...e};for(let o in t){let r=o,i=t[r];if(i===void 0)continue;let a=n[r];d_(a)&&d_(i)?n[r]={...a,...i}:n[r]=i}return n}var nk=xt(oh(),1),ok=xt(rk(),1);function H1(){let e=new nk.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,ok.default)(e),e}var Sc=class{constructor(t){this._ajv=t??H1()}getValidator(t){let n="$id"in t&&typeof t.$id=="string"?this._ajv.getSchema(t.$id)??this._ajv.compile(t):this._ajv.compile(t);return o=>n(o)?{valid:!0,data:o,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(n.errors)}}};var wc=class{constructor(t){this._server=t}requestStream(t,n,o){return this._server.requestStream(t,n,o)}createMessageStream(t,n){let o=this._server.getClientCapabilities();if((t.tools||t.toolChoice)&&!o?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let r=t.messages[t.messages.length-1],i=Array.isArray(r.content)?r.content:[r.content],a=i.some(d=>d.type==="tool_result"),s=t.messages.length>1?t.messages[t.messages.length-2]:void 0,l=s?Array.isArray(s.content)?s.content:[s.content]:[],u=l.some(d=>d.type==="tool_use");if(a){if(i.some(d=>d.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!u)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(u){let d=new Set(l.filter(m=>m.type==="tool_use").map(m=>m.id)),p=new Set(i.filter(m=>m.type==="tool_result").map(m=>m.toolUseId));if(d.size!==p.size||![...d].every(m=>p.has(m)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return this.requestStream({method:"sampling/createMessage",params:t},ti,n)}elicitInputStream(t,n){let o=this._server.getClientCapabilities(),r=t.mode??"form";switch(r){case"url":{if(!o?.elicitation?.url)throw new Error("Client does not support url elicitation.");break}case"form":{if(!o?.elicitation?.form)throw new Error("Client does not support form elicitation.");break}}let i=r==="form"&&t.mode===void 0?{...t,mode:"form"}:t;return this.requestStream({method:"elicitation/create",params:i},An,n)}async getTask(t,n){return this._server.getTask({taskId:t},n)}async getTaskResult(t,n,o){return this._server.getTaskResult({taskId:t},n,o)}async listTasks(t,n){return this._server.listTasks(t?{cursor:t}:void 0,n)}async cancelTask(t,n){return this._server.cancelTask({taskId:t},n)}};function ik(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"tools/call":if(!e.tools?.call)throw new Error(`${n} does not support task creation for tools/call (required for ${t})`);break;default:break}}function ak(e,t,n){if(!e)throw new Error(`${n} does not support task creation (required for ${t})`);switch(t){case"sampling/createMessage":if(!e.sampling?.createMessage)throw new Error(`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case"elicitation/create":if(!e.elicitation?.create)throw new Error(`${n} does not support task creation for elicitation/create (required for ${t})`);break;default:break}}var zc=class extends qs{constructor(t,n){super(n),this._serverInfo=t,this._loggingLevels=new Map,this.LOG_LEVEL_SEVERITY=new Map(ei.options.map((o,r)=>[o,r])),this.isMessageIgnored=(o,r)=>{let i=this._loggingLevels.get(r);return i?this.LOG_LEVEL_SEVERITY.get(o)<this.LOG_LEVEL_SEVERITY.get(i):!1},this._capabilities=n?.capabilities??{},this._instructions=n?.instructions,this._jsonSchemaValidator=n?.jsonSchemaValidator??new Sc,this.setRequestHandler(nm,o=>this._oninitialize(o)),this.setNotificationHandler(om,()=>this.oninitialized?.()),this._capabilities.logging&&this.setRequestHandler(mm,async(o,r)=>{let i=r.sessionId||r.requestInfo?.headers["mcp-session-id"]||void 0,{level:a}=o.params,s=ei.safeParse(a);return s.success&&this._loggingLevels.set(i,s.data),{}})}get experimental(){return this._experimental||(this._experimental={tasks:new wc(this)}),this._experimental}registerCapabilities(t){if(this.transport)throw new Error("Cannot register capabilities after connecting to transport");this._capabilities=p_(this._capabilities,t)}setRequestHandler(t,n){let r=Ya(t)?.method;if(!r)throw new Error("Schema is missing a method literal");let i;if(yn(r)){let s=r;i=s._zod?.def?.value??s.value}else{let s=r;i=s._def?.value??s.value}if(typeof i!="string")throw new Error("Schema method literal must be a string");if(i==="tools/call"){let s=async(l,u)=>{let d=ar(Xo,l);if(!d.success){let g=d.error instanceof Error?d.error.message:String(d.error);throw new U(V.InvalidParams,`Invalid tools/call request: ${g}`)}let{params:p}=d.data,m=await Promise.resolve(n(l,u));if(p.task){let g=ar(Pn,m);if(!g.success){let h=g.error instanceof Error?g.error.message:String(g.error);throw new U(V.InvalidParams,`Invalid task creation result: ${h}`)}return g.data}let f=ar(Zs,m);if(!f.success){let g=f.error instanceof Error?f.error.message:String(f.error);throw new U(V.InvalidParams,`Invalid tools/call result: ${g}`)}return f.data};return super.setRequestHandler(t,s)}return super.setRequestHandler(t,n)}assertCapabilityForMethod(t){switch(t){case"sampling/createMessage":if(!this._clientCapabilities?.sampling)throw new Error(`Client does not support sampling (required for ${t})`);break;case"elicitation/create":if(!this._clientCapabilities?.elicitation)throw new Error(`Client does not support elicitation (required for ${t})`);break;case"roots/list":if(!this._clientCapabilities?.roots)throw new Error(`Client does not support listing roots (required for ${t})`);break;case"ping":break}}assertNotificationCapability(t){switch(t){case"notifications/message":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"notifications/resources/updated":case"notifications/resources/list_changed":if(!this._capabilities.resources)throw new Error(`Server does not support notifying about resources (required for ${t})`);break;case"notifications/tools/list_changed":if(!this._capabilities.tools)throw new Error(`Server does not support notifying of tool list changes (required for ${t})`);break;case"notifications/prompts/list_changed":if(!this._capabilities.prompts)throw new Error(`Server does not support notifying of prompt list changes (required for ${t})`);break;case"notifications/elicitation/complete":if(!this._clientCapabilities?.elicitation?.url)throw new Error(`Client does not support URL elicitation (required for ${t})`);break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(t){if(this._capabilities)switch(t){case"completion/complete":if(!this._capabilities.completions)throw new Error(`Server does not support completions (required for ${t})`);break;case"logging/setLevel":if(!this._capabilities.logging)throw new Error(`Server does not support logging (required for ${t})`);break;case"prompts/get":case"prompts/list":if(!this._capabilities.prompts)throw new Error(`Server does not support prompts (required for ${t})`);break;case"resources/list":case"resources/templates/list":case"resources/read":if(!this._capabilities.resources)throw new Error(`Server does not support resources (required for ${t})`);break;case"tools/call":case"tools/list":if(!this._capabilities.tools)throw new Error(`Server does not support tools (required for ${t})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw new Error(`Server does not support tasks capability (required for ${t})`);break;case"ping":case"initialize":break}}assertTaskCapability(t){ak(this._clientCapabilities?.tasks?.requests,t,"Client")}assertTaskHandlerCapability(t){this._capabilities&&ik(this._capabilities.tasks?.requests,t,"Server")}async _oninitialize(t){let n=t.params.protocolVersion;return this._clientCapabilities=t.params.capabilities,this._clientVersion=t.params.clientInfo,{protocolVersion:Wb.includes(n)?n:Yf,capabilities:this.getCapabilities(),serverInfo:this._serverInfo,...this._instructions&&{instructions:this._instructions}}}getClientCapabilities(){return this._clientCapabilities}getClientVersion(){return this._clientVersion}getCapabilities(){return this._capabilities}async ping(){return this.request({method:"ping"},js)}async createMessage(t,n){if((t.tools||t.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new Error("Client does not support sampling tools capability.");if(t.messages.length>0){let o=t.messages[t.messages.length-1],r=Array.isArray(o.content)?o.content:[o.content],i=r.some(u=>u.type==="tool_result"),a=t.messages.length>1?t.messages[t.messages.length-2]:void 0,s=a?Array.isArray(a.content)?a.content:[a.content]:[],l=s.some(u=>u.type==="tool_use");if(i){if(r.some(u=>u.type!=="tool_result"))throw new Error("The last message must contain only tool_result content if any is present");if(!l)throw new Error("tool_result blocks are not matching any tool_use from the previous message")}if(l){let u=new Set(s.filter(p=>p.type==="tool_use").map(p=>p.id)),d=new Set(r.filter(p=>p.type==="tool_result").map(p=>p.toolUseId));if(u.size!==d.size||![...u].every(p=>d.has(p)))throw new Error("ids of tool_result blocks and tool_use blocks from previous message do not match")}}return t.tools?this.request({method:"sampling/createMessage",params:t},gm,n):this.request({method:"sampling/createMessage",params:t},ti,n)}async elicitInput(t,n){switch(t.mode??"form"){case"url":{if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support url elicitation.");let r=t;return this.request({method:"elicitation/create",params:r},An,n)}case"form":{if(!this._clientCapabilities?.elicitation?.form)throw new Error("Client does not support form elicitation.");let r=t.mode==="form"?t:{...t,mode:"form"},i=await this.request({method:"elicitation/create",params:r},An,n);if(i.action==="accept"&&i.content&&r.requestedSchema)try{let s=this._jsonSchemaValidator.getValidator(r.requestedSchema)(i.content);if(!s.valid)throw new U(V.InvalidParams,`Elicitation response content does not match requested schema: ${s.errorMessage}`)}catch(a){throw a instanceof U?a:new U(V.InternalError,`Error validating elicitation response: ${a instanceof Error?a.message:String(a)}`)}return i}}}createElicitationCompletionNotifier(t,n){if(!this._clientCapabilities?.elicitation?.url)throw new Error("Client does not support URL elicitation (required for notifications/elicitation/complete)");return()=>this.notification({method:"notifications/elicitation/complete",params:{elicitationId:t}},n)}async listRoots(t,n){return this.request({method:"roots/list",params:t},hm,n)}async sendLoggingMessage(t,n){if(this._capabilities.logging&&!this.isMessageIgnored(t.level,n))return this.notification({method:"notifications/message",params:t})}async sendResourceUpdated(t){return this.notification({method:"notifications/resources/updated",params:t})}async sendResourceListChanged(){return this.notification({method:"notifications/resources/list_changed"})}async sendToolListChanged(){return this.notification({method:"notifications/tools/list_changed"})}async sendPromptListChanged(){return this.notification({method:"notifications/prompts/list_changed"})}};import ck from"node:process";var Ic=class{append(t){this._buffer=this._buffer?Buffer.concat([this._buffer,t]):t}readMessage(){if(!this._buffer)return null;let t=this._buffer.indexOf(`
80
80
  `);if(t===-1)return null;let n=this._buffer.toString("utf8",0,t).replace(/\r$/,"");return this._buffer=this._buffer.subarray(t+1),G1(n)}clear(){this._buffer=void 0}};function G1(e){return n_.parse(JSON.parse(e))}function sk(e){return JSON.stringify(e)+`
81
- `}var Pc=class{constructor(t=ck.stdin,n=ck.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new Ic,this._started=!1,this._ondata=o=>{this._readBuffer.append(o),this.processReadBuffer()},this._onerror=o=>{this.onerror?.(o)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(n=>{let o=sk(t);this._stdout.write(o)?n():this._stdout.once("drain",n)})}};import{chmodSync as wC,mkdirSync as zC,readFileSync as IC,renameSync as PC,rmSync as $k,writeFileSync as EC}from"node:fs";import AC from"node:os";import Qe from"node:path";import W1 from"node:os";import K1 from"node:path";var me=process.env.BRIDGE_SECRET_DIR||K1.join(W1.homedir(),".claude-bridge");import{existsSync as eC,readdirSync as tC,readFileSync as rC}from"node:fs";import nC from"node:os";import Wn from"node:path";import{createHash as Q1}from"node:crypto";import Y1 from"node:path";var X1=/^[A-Za-z0-9][A-Za-z0-9_.-]{0,79}$/;function ji(e){return X1.test(e)&&!e.includes("..")?e:`h_${Q1("sha256").update(e,"utf8").digest("hex").slice(0,24)}`}var lk=Y1.join(me,"active-user.json");var uk=e=>{try{return rC(e,"utf8").trim()||null}catch{return null}},Kn="hub-endpoint.json",oC=24,iC=new Set(["public","default","default user","all users","defaultapppool","administrator"]);function dk(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t?.pid!="number"||typeof t?.port!="number"?null:{pid:t.pid,port:t.port,startedAt:typeof t.startedAt=="number"?t.startedAt:0,...typeof t.sub=="string"&&t.sub?{sub:t.sub}:{}}}catch{return null}}function aC(e){let o=e.readFile("/etc/wsl.conf")?.match(/^\s*root\s*=\s*(\S+)\s*$/m)?.[1]??"/mnt";return o.length>1&&o.endsWith("/")?o.slice(0,-1):o}function pk(e){let t=[],n=r=>{t.length<oC&&!t.includes(r)&&t.push(r)},o=r=>!iC.has(r.toLowerCase());if(e.isWsl){let r=aC(e);for(let i of e.listDir(r).filter(a=>/^[a-zA-Z]$/.test(a))){let a=`${r}/${i}/Users`;o(e.userName)&&n(`${a}/${e.userName}`);for(let s of e.listDir(a))o(s)&&n(`${a}/${s}`)}return t}if(e.platform==="win32")for(let r of["\\\\wsl.localhost","\\\\wsl$"])for(let i of e.listDir(`${r}\\`)){let a=`${r}\\${i}\\home`;n(`${a}\\${e.userName}`);for(let s of e.listDir(a))n(`${a}\\${s}`)}return t}function sC(e){let t=e.isWsl?"/":"\\";return pk(e).map(n=>`${n}${t}.claude-bridge`)}function cC(e){let t=i=>dk(e.readFile(i.endsWith("\\")||i.endsWith("/")?`${i}${Kn}`:`${i}${e.platform==="win32"?"\\":"/"}${Kn}`)),n=e.env.BRIDGE_SECRET_DIR;if(n)return{dir:n,source:"env",beacon:t(n)};let o=t(e.secretDir);if(o&&e.pidAlive(o.pid))return{dir:e.secretDir,source:"local",beacon:o};let r=null;for(let i of sC(e)){let a=t(i);a&&(!r||a.startedAt>r.beacon.startedAt)&&(r={dir:i,beacon:a})}return r?{dir:r.dir,source:e.isWsl?"peer-wsl":"peer-windows",beacon:r.beacon}:{dir:e.secretDir,source:"local",beacon:null}}function lC(e,t,n){return t!=="linux"?!1:e.WSL_DISTRO_NAME||e.WSL_INTEROP?!0:/microsoft/i.test(n("/proc/version")??"")}var Ec=null;function Oi(e={}){if(Ec&&!e.fresh)return Ec;let t=r=>uk(r),n=r=>{try{return tC(r)}catch{return[]}},o="";try{o=nC.userInfo().username}catch{o=process.env.USER??process.env.USERNAME??""}return Ec=cC({secretDir:me,env:process.env,platform:process.platform,userName:o,isWsl:lC(process.env,process.platform,t),pidAlive:r=>{try{return process.kill(r,0),!0}catch(i){return i.code==="EPERM"}},readFile:t,listDir:n}),Ec}function Ac(e){return{hubTokenFile:Wn.join(e,"hub-token"),activeUserFile:Wn.join(e,"active-user.json"),sessionsDir:Wn.join(e,"sessions"),configFile:Wn.join(e,"config.json"),beaconFile:Wn.join(e,Kn)}}function uC(e){let t=uk(Ac(e).activeUserFile);if(!t)return null;try{let n=JSON.parse(t);return typeof n.sub=="string"&&n.sub?n.sub:null}catch{return null}}function Ci(e){let t=uC(e);if(t){let n=Wn.join(e,"users",ji(t),"hub-token");if(eC(n))return n}return Ac(e).hubTokenFile}function fk(e){if(e?.isDevBuild!==!0)return!1;let t=e.env??process.env;return t.BRIDGE_VOICE==="1"||t.BRIDGE_VOICE==="true"}var pq=256*1024;import{readFileSync as dC}from"node:fs";import Ni from"node:path";var pC=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(?:\+[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?$/;function mk(e){if(typeof e!="string")return{kind:"invalid"};let t=pC.exec(e);return t?t[1]==="0"&&t[2]==="0"&&t[3]==="0"?{kind:"dev"}:{kind:"release",version:e}:{kind:"invalid"}}function gk(e=process.env,t=process.argv){let n=mk(e.BRIDGE_CLIENT_VERSION);if(n.kind==="release")return n.version;if(n.kind==="dev")return null;let o=Ni.join(me,"payload"),r=t[1];if(!r)return null;let i=Ni.relative(o,Ni.resolve(r));if(i===""||i.startsWith("..")||Ni.isAbsolute(i))return null;try{let a=JSON.parse(dC(Ni.join(o,"version.json"),"utf8")),s=mk(a.version);return s.kind==="release"?s.version:null}catch{return null}}var ph={udpDstFixed:[4002,6666,6667],udpDstMulticast:[5353],udpSrcBroadcastReply:[9999,20002,38899,56700,1900,1982]},Fq=[...ph.udpDstFixed,...ph.udpDstMulticast],Zq=ph.udpSrcBroadcastReply;var Tc="data:image/png;base64,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";var _k="linear-gradient(135deg,#3aa0ff 0%,#6a6ff6 52%,#8a4ff0 100%)",gC=[58,160,255],bk=[106,111,246],hC=[138,79,240];function vC(e){let[t,n]=e<=.5?[gC,bk]:[bk,hC],o=e<=.5?e/.5:(e-.5)/.5,r=(i,a)=>Math.round(i+(a-i)*o);return`rgb(${r(t[0],n[0])},${r(t[1],n[1])},${r(t[2],n[2])})`}var yC=Array.from({length:65},(e,t)=>{let n=t/64,o=Math.exp(-(((n-.5)/.16)**2)),r=Math.round((3+o*(.8+.2*Math.abs(Math.sin(t*1.9)))*153)*10)/10,i=(1.5+t%5*.2).toFixed(1),a=(Math.abs(n-.5)*.7).toFixed(2);return`<span style="height:${r}px;background:${vC(n)};opacity:${r<6?.92:1};animation:wave ${i}s ease-in-out ${a}s infinite"></span>`}).join("");var xk=`-webkit-mask:url("${Tc}") center/contain no-repeat;mask:url("${Tc}") center/contain no-repeat`,xC="https://ac-bridge.com",SB=`*{box-sizing:border-box}
81
+ `}var Pc=class{constructor(t=ck.stdin,n=ck.stdout){this._stdin=t,this._stdout=n,this._readBuffer=new Ic,this._started=!1,this._ondata=o=>{this._readBuffer.append(o),this.processReadBuffer()},this._onerror=o=>{this.onerror?.(o)}}async start(){if(this._started)throw new Error("StdioServerTransport already started! If using Server class, note that connect() calls start() automatically.");this._started=!0,this._stdin.on("data",this._ondata),this._stdin.on("error",this._onerror)}processReadBuffer(){for(;;)try{let t=this._readBuffer.readMessage();if(t===null)break;this.onmessage?.(t)}catch(t){this.onerror?.(t)}}async close(){this._stdin.off("data",this._ondata),this._stdin.off("error",this._onerror),this._stdin.listenerCount("data")===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.()}send(t){return new Promise(n=>{let o=sk(t);this._stdout.write(o)?n():this._stdout.once("drain",n)})}};import{chmodSync as wC,mkdirSync as zC,readFileSync as IC,renameSync as PC,rmSync as $k,writeFileSync as EC}from"node:fs";import AC from"node:os";import Qe from"node:path";import W1 from"node:os";import K1 from"node:path";var me=process.env.BRIDGE_SECRET_DIR||K1.join(W1.homedir(),".claude-bridge");import{existsSync as eC,readdirSync as tC,readFileSync as rC}from"node:fs";import nC from"node:os";import Wn from"node:path";import{createHash as Q1}from"node:crypto";import Y1 from"node:path";var X1=/^[A-Za-z0-9][A-Za-z0-9_.-]{0,79}$/;function ji(e){return X1.test(e)&&!e.includes("..")?e:`h_${Q1("sha256").update(e,"utf8").digest("hex").slice(0,24)}`}var lk=Y1.join(me,"active-user.json");var uk=e=>{try{return rC(e,"utf8").trim()||null}catch{return null}},Kn="hub-endpoint.json",oC=24,iC=new Set(["public","default","default user","all users","defaultapppool","administrator"]);function dk(e){if(!e)return null;try{let t=JSON.parse(e);return typeof t?.pid!="number"||typeof t?.port!="number"?null:{pid:t.pid,port:t.port,startedAt:typeof t.startedAt=="number"?t.startedAt:0,...typeof t.sub=="string"&&t.sub?{sub:t.sub}:{}}}catch{return null}}function aC(e){let o=e.readFile("/etc/wsl.conf")?.match(/^\s*root\s*=\s*(\S+)\s*$/m)?.[1]??"/mnt";return o.length>1&&o.endsWith("/")?o.slice(0,-1):o}function pk(e){let t=[],n=r=>{t.length<oC&&!t.includes(r)&&t.push(r)},o=r=>!iC.has(r.toLowerCase());if(e.isWsl){let r=aC(e);for(let i of e.listDir(r).filter(a=>/^[a-zA-Z]$/.test(a))){let a=`${r}/${i}/Users`;o(e.userName)&&n(`${a}/${e.userName}`);for(let s of e.listDir(a))o(s)&&n(`${a}/${s}`)}return t}if(e.platform==="win32")for(let r of["\\\\wsl.localhost","\\\\wsl$"])for(let i of e.listDir(`${r}\\`)){let a=`${r}\\${i}\\home`;n(`${a}\\${e.userName}`);for(let s of e.listDir(a))n(`${a}\\${s}`)}return t}function sC(e){let t=e.isWsl?"/":"\\";return pk(e).map(n=>`${n}${t}.claude-bridge`)}function cC(e){let t=i=>dk(e.readFile(i.endsWith("\\")||i.endsWith("/")?`${i}${Kn}`:`${i}${e.platform==="win32"?"\\":"/"}${Kn}`)),n=e.env.BRIDGE_SECRET_DIR;if(n)return{dir:n,source:"env",beacon:t(n)};let o=t(e.secretDir);if(o&&e.pidAlive(o.pid))return{dir:e.secretDir,source:"local",beacon:o};let r=null;for(let i of sC(e)){let a=t(i);a&&(!r||a.startedAt>r.beacon.startedAt)&&(r={dir:i,beacon:a})}return r?{dir:r.dir,source:e.isWsl?"peer-wsl":"peer-windows",beacon:r.beacon}:{dir:e.secretDir,source:"local",beacon:null}}function lC(e,t,n){return t!=="linux"?!1:e.WSL_DISTRO_NAME||e.WSL_INTEROP?!0:/microsoft/i.test(n("/proc/version")??"")}var Ec=null;function Oi(e={}){if(Ec&&!e.fresh)return Ec;let t=r=>uk(r),n=r=>{try{return tC(r)}catch{return[]}},o="";try{o=nC.userInfo().username}catch{o=process.env.USER??process.env.USERNAME??""}return Ec=cC({secretDir:me,env:process.env,platform:process.platform,userName:o,isWsl:lC(process.env,process.platform,t),pidAlive:r=>{try{return process.kill(r,0),!0}catch(i){return i.code==="EPERM"}},readFile:t,listDir:n}),Ec}function Ac(e){return{hubTokenFile:Wn.join(e,"hub-token"),activeUserFile:Wn.join(e,"active-user.json"),sessionsDir:Wn.join(e,"sessions"),configFile:Wn.join(e,"config.json"),beaconFile:Wn.join(e,Kn)}}function uC(e){let t=uk(Ac(e).activeUserFile);if(!t)return null;try{let n=JSON.parse(t);return typeof n.sub=="string"&&n.sub?n.sub:null}catch{return null}}function Ci(e){let t=uC(e);if(t){let n=Wn.join(e,"users",ji(t),"hub-token");if(eC(n))return n}return Ac(e).hubTokenFile}function fk(e){if(e?.isDevBuild!==!0)return!1;let t=e.env??process.env;return t.BRIDGE_VOICE==="1"||t.BRIDGE_VOICE==="true"}var pq=256*1024;import{readFileSync as dC}from"node:fs";import Ni from"node:path";var pC=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(?:\+[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?$/;function mk(e){if(typeof e!="string")return{kind:"invalid"};let t=pC.exec(e);return t?t[1]==="0"&&t[2]==="0"&&t[3]==="0"?{kind:"dev"}:{kind:"release",version:e}:{kind:"invalid"}}function gk(e=process.env,t=process.argv){let n=mk(e.BRIDGE_CLIENT_VERSION);if(n.kind==="release")return n.version;if(n.kind==="dev")return null;let o=Ni.join(me,"payload"),r=t[1];if(!r)return null;let i=Ni.relative(o,Ni.resolve(r));if(i===""||i.startsWith("..")||Ni.isAbsolute(i))return null;try{let a=JSON.parse(dC(Ni.join(o,"version.json"),"utf8")),s=mk(a.version);return s.kind==="release"?s.version:null}catch{return null}}var ph={udpDstFixed:[4002,6666,6667],udpDstMulticast:[5353],udpSrcBroadcastReply:[9999,20002,38899,56700,1900,1982]},Fq=[...ph.udpDstFixed,...ph.udpDstMulticast],Zq=ph.udpSrcBroadcastReply;var Tc="data:image/png;base64,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";var _k="linear-gradient(135deg,#3aa0ff 0%,#6a6ff6 52%,#8a4ff0 100%)",gC=[58,160,255],bk=[106,111,246],hC=[138,79,240];function vC(e){let[t,n]=e<=.5?[gC,bk]:[bk,hC],o=e<=.5?e/.5:(e-.5)/.5,r=(i,a)=>Math.round(i+(a-i)*o);return`rgb(${r(t[0],n[0])},${r(t[1],n[1])},${r(t[2],n[2])})`}var yC=Array.from({length:65},(e,t)=>{let n=t/64,o=Math.exp(-(((n-.5)/.16)**2)),r=Math.round((3+o*(.8+.2*Math.abs(Math.sin(t*1.9)))*153)*10)/10,i=(1.5+t%5*.2).toFixed(1),a=(Math.abs(n-.5)*.7).toFixed(2);return`<span style="height:${r}px;background:${vC(n)};opacity:${r<6?.92:1};animation:wave ${i}s ease-in-out ${a}s infinite"></span>`}).join("");var xk=`-webkit-mask:url("${Tc}") center/contain no-repeat;mask:url("${Tc}") center/contain no-repeat`,xC="https://ac-bridge.com",wB=`*{box-sizing:border-box}
82
82
  :root{--ac-bg:#07070f;--ac-surface-2:rgba(255,255,255,.03);--ac-border:rgba(148,132,255,.16);--ac-hairline:rgba(255,255,255,.06);--ac-text:#e9e8f4;--ac-dim:#9b9ab3;--ac-mute:#80809d;--ac-accent:#38bdf8;--ac-accent-soft:#7dd3fc;--ac-accent-3:#34d399;--ac-input:rgba(148,132,255,.16);--ac-brand-grad:${_k};--ac-brand-grad-text:linear-gradient(92deg,#67e8f9,#38bdf8 40%,#a78bfa 75%,#c084fc)}
83
83
  html{background:var(--ac-bg)}
84
84
  body{margin:0;min-height:100vh;background:var(--ac-bg);color:var(--ac-text);font-family:'Sora',ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
@@ -162,4 +162,4 @@ form.email .flt{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;co
162
162
  @keyframes glow{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.04)}}
163
163
  @keyframes aur{0%,5%{opacity:0}12%,28%{opacity:1}38%,100%{opacity:0}}
164
164
  @keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(56,189,248,.6)}50%{opacity:.5;box-shadow:0 0 0 7px rgba(56,189,248,0)}}
165
- @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}`,wB=`<a class="lockup" href="${xC}/" data-testid="nav-brand" aria-label="AC Bridge home"><span class="mk"></span><span class="wm">AC Bridge</span></a>`;function mh(e={}){let t=Zt(e.file??lk);if(!t)return null;try{let n=JSON.parse(t);return typeof n.sub!="string"||!n.sub?null:{sub:n.sub,...typeof n.email=="string"?{email:n.email}:{},updatedAt:typeof n.updatedAt=="number"?n.updatedAt:0}}catch{return null}}var v9=Qe.join(me,"hub-token"),jc=Number(process.env.BRIDGE_HUB_PORT)||8790,Di=Qe.join(me,"config.json"),y9=Qe.join(me,"hub.log"),fC=Qe.join(me,"hub.pid"),b9=Qe.join(me,Kn),_9=Qe.join(me,"daemon.pid"),x9=Qe.join(me,"daemon-beacon.json"),$9=Qe.join(me,"daemon.log"),k9=Qe.join(me,"hub-stop-reason.json"),$C=Qe.join(me,"app-path"),S9=Qe.join(me,"hub-relay-status.json"),w9=Qe.join(me,"hub-holders.json"),z9=Qe.join(me,"sessions");function Ft(e,t,n=384){let o=Qe.dirname(e),r=(n&63)===0;if(zC(o,{recursive:!0,...r?{mode:448}:{}}),r)try{wC(o,448)}catch{}let i=`${e}.tmp-${process.pid}-${process.hrtime.bigint()}`;EC(i,t,{mode:n});try{PC(i,e)}catch(a){try{$k(i,{force:!0})}catch{}throw a}}function Zt(e){try{return IC(e,"utf8").trim()||null}catch{return null}}function kk(){let e={};try{let t=Zt(Di);t&&(e=JSON.parse(t))}catch{}return process.env.BRIDGE_MACHINE||e.machine||AC.hostname().split(".")[0]||"node"}function Ri(){let e=Number(process.env.BRIDGE_HUB_PORT);if(e)return e;try{let t=Zt(Di);if(t){let n=JSON.parse(t);if(n.hubPort)return Number(n.hubPort)}}catch{}return 8790}function Qn(e){try{$k(e,{force:!0})}catch{}}var X=c.number().min(0).max(100),Mr=c.number().int().min(1e3).max(12e3),Vt=c.number(),ee=c.number().int().nonnegative(),Yn=c.enum(["hue","matter","smartthings","homeassistant","nest","alexa","google","kasa","wiz","lifx","shelly","govee","tapo","tuya","yeelight","nanoleaf","meross","ewelink","wled","elgato","roku","mqtt","esphome","mock","other"]),TC=c.enum(["local","cloud","offline","unknown"]),Ik=c.enum(["light","plug","switch","dimmer","thermostat","lock","cover","garageDoor","valve","fan","sensor","binarySensor","camera","doorbell","speaker","tv","mediaPlayer","vacuum","appliance","airPurifier","humidifier","waterHeater","evCharger","sceneController","remote","scene","group","bridge","other"]),jC=c.enum(["temperature","humidity","illuminance","pressure","co2","pm25","pm10","voc","airQuality","noise","uvIndex","windSpeed","distance","generic"]),OC=c.enum(["motion","occupancy","presence","contact","leak","smoke","co","gas","tamper","vibration","glassBreak","button","person","sound","moisture","generic"]);var ue=(e,t)=>c.object({type:c.literal(e),instance:c.string().optional(),...t}),CC=ue("power",{state:c.object({on:c.boolean().nullable()})}),NC=ue("brightness",{state:c.object({level:X.nullable()})}),DC=ue("colorTemperature",{config:c.object({minKelvin:Mr,maxKelvin:Mr}),state:c.object({kelvin:Mr.nullable()})}),RC=ue("color",{config:c.object({modes:c.array(c.enum(["hs","rgb","xy"])).default(["hs"])}),state:c.object({hue:c.number().min(0).max(360).nullable(),saturation:X.nullable()})}),UC=ue("segmentColor",{config:c.object({segments:c.number().int().min(1)}),state:c.object({colors:c.array(c.object({hue:c.number().min(0).max(360).nullable(),saturation:X.nullable()})).nullable()})}),vh=c.enum(["off","heat","cool","auto","eco","fanOnly","dry"]),MC=ue("thermostat",{config:c.object({modes:c.array(vh),minC:Vt,maxC:Vt,supportsRange:c.boolean().default(!1)}),state:c.object({mode:vh.nullable(),currentC:Vt.nullable(),setpointC:Vt.nullable().optional(),heatC:Vt.nullable().optional(),coolC:Vt.nullable().optional(),action:c.enum(["idle","heating","cooling","fan"]).nullable().optional()})}),LC=ue("humidity",{config:c.object({settable:c.boolean().default(!1),minPct:X.default(0),maxPct:X.default(100)}),state:c.object({currentPct:X.nullable().optional(),targetPct:X.nullable().optional()})}),FC=ue("lock",{state:c.object({state:c.enum(["locked","unlocked","jammed","unknown"])})}),ZC=ue("cover",{config:c.object({kind:c.enum(["blind","shade","curtain","awning","garage","door","window","valve","generic"]),supportsPosition:c.boolean().default(!1),supportsTilt:c.boolean().default(!1)}),state:c.object({position:X.nullable().optional(),tilt:X.nullable().optional(),state:c.enum(["open","closed","opening","closing","stopped","partial","unknown"])})}),qC=ue("fan",{config:c.object({presets:c.array(c.string()).default([]),supportsOscillate:c.boolean().default(!1)}),state:c.object({on:c.boolean().nullable(),level:X.nullable().optional(),preset:c.string().nullable().optional(),oscillating:c.boolean().nullable().optional()})}),BC=ue("mode",{config:c.object({options:c.array(c.string())}),state:c.object({value:c.string().nullable()})}),VC=ue("toggle",{state:c.object({on:c.boolean().nullable()})}),JC=ue("range",{config:c.object({min:c.number(),max:c.number(),step:c.number().optional(),unit:c.string().optional()}),state:c.object({value:c.number().nullable()})}),HC=ue("mediaTransport",{state:c.object({state:c.enum(["playing","paused","stopped","buffering","idle"]).nullable(),metadata:c.object({title:c.string().optional(),artist:c.string().optional(),album:c.string().optional(),artworkUrl:c.string().optional()}).nullable().optional(),positionSec:c.number().nonnegative().nullable().optional(),durationSec:c.number().nonnegative().nullable().optional(),shuffle:c.boolean().nullable().optional(),repeat:c.enum(["off","one","all"]).nullable().optional()})}),GC=ue("volume",{state:c.object({level:X.nullable(),muted:c.boolean().nullable()})}),WC=ue("inputSource",{config:c.object({sources:c.array(c.string())}),state:c.object({source:c.string().nullable()})}),KC=ue("startStop",{config:c.object({supportsPause:c.boolean().default(!1)}),state:c.object({state:c.enum(["running","paused","stopped","unknown"])})}),QC=ue("scene",{state:c.object({lastActivated:ee.nullable().optional()})}),YC=ue("camera",{config:c.object({protocols:c.array(c.enum(["rtsp","webrtc","hls","snapshot"]))}),state:c.object({streaming:c.boolean().nullable().optional()})}),XC=ue("sensor",{config:c.object({measurement:jC,unit:c.string()}),state:c.object({value:c.number().nullable(),ts:ee.nullable().optional()})}),eN=ue("binarySensor",{config:c.object({sensorType:OC}),state:c.object({active:c.boolean().nullable(),lastChanged:ee.nullable().optional()})}),tN=ue("battery",{state:c.object({level:X.nullable(),charging:c.boolean().nullable().optional(),low:c.boolean().nullable().optional()})}),rN=ue("energyMeter",{state:c.object({power:c.number().nullable().optional(),energy:c.number().nullable().optional(),voltage:c.number().nullable().optional(),current:c.number().nullable().optional()})}),nN=ue("doorbell",{state:c.object({lastPress:ee.nullable().optional()})}),oN=ue("connectivity",{config:c.object({transport:c.enum(["wifi","thread","zigbee","zwave","ethernet","ble","cloud","matter","unknown"])}),state:c.object({online:c.boolean().nullable(),signal:c.number().nullable().optional()})}),Sk=c.enum(["flash","strobe","pulse","colorFade","colorLoop","candle","rainbow","siren","meter"]),qt=c.object({hue:c.number().min(0).max(360),saturation:X}),Bt=c.number().int().min(20).max(6e5),gh=c.number().int().min(1).max(1e3).nullable().default(null),yh=c.discriminatedUnion("kind",[c.object({kind:c.literal("flash"),count:c.number().int().min(1).max(100).default(3),onMs:Bt.default(300),offMs:Bt.default(300),color:qt.nullable().default(null),brightness:X.nullable().default(null)}),c.object({kind:c.literal("strobe"),hz:c.number().min(.5).max(25).default(8),durationMs:Bt.default(3e3),color:qt.nullable().default(null)}),c.object({kind:c.literal("pulse"),periodMs:Bt.default(2e3),minPct:X.default(5),maxPct:X.default(100),color:qt.nullable().default(null),cycles:gh}),c.object({kind:c.literal("colorFade"),from:qt.nullable().default(null),to:qt,durationMs:Bt.default(2e3),easing:c.enum(["linear","ease"]).default("ease")}),c.object({kind:c.literal("colorLoop"),colors:c.array(qt).min(2).max(16),holdMs:Bt.default(1e3),fadeMs:c.number().int().min(0).max(6e5).default(800),loops:gh,direction:c.enum(["forward","pingpong"]).default("forward")}),c.object({kind:c.literal("candle"),intensity:X.default(50),warmthKelvin:Mr.nullable().default(null),durationMs:Bt.nullable().default(null)}),c.object({kind:c.literal("rainbow"),cycleMs:Bt.default(4e3),saturation:X.default(100),brightness:X.default(100),loops:gh}),c.object({kind:c.literal("siren"),colorA:qt.default({hue:0,saturation:100}),colorB:qt.default({hue:240,saturation:100}),hz:c.number().min(.5).max(10).default(4),durationMs:Bt.nullable().default(null)}),c.object({kind:c.literal("meter"),source:c.enum(["context","usage","cost"]),stops:c.array(c.object({at:c.number().min(0),color:qt})).min(2).max(6).default([{at:0,color:{hue:120,saturation:90}},{at:75,color:{hue:40,saturation:95}},{at:95,color:{hue:0,saturation:95}}])})]),iN=ue("effect",{config:c.object({kinds:c.array(Sk).default(["flash"]),supportsColor:c.boolean().default(!1)}),state:c.object({active:Sk.nullable()})}),aN=c.discriminatedUnion("type",[CC,NC,DC,RC,UC,MC,LC,FC,ZC,qC,BC,VC,JC,HC,GC,WC,KC,QC,YC,XC,eN,tN,rN,nN,oN,iN]),Lr=c.enum(["power","brightness","colorTemperature","color","segmentColor","thermostat","humidity","lock","cover","fan","mode","toggle","range","mediaTransport","volume","inputSource","startStop","scene","camera","sensor","binarySensor","battery","energyMeter","doorbell","connectivity","effect"]),Pk=c.enum(["needs-password"]),sN=c.object({sourceId:c.string(),provider:Yn,providerAccountId:c.string(),nativeId:c.string(),nativeType:c.string().optional(),reachability:c.enum(["local","cloud"]),online:c.boolean(),attention:Pk.nullable().optional(),credentialRef:c.string().nullable().optional(),lastSeen:ee.nullable().optional()}),cN=c.object({id:c.string(),name:c.string(),providerRefs:c.array(c.object({provider:Yn,nativeId:c.string()})).default([])}),lN=c.object({accountId:c.string(),provider:Yn,displayName:c.string(),reachability:c.enum(["local","cloud"]),status:c.enum(["linked","needs_reauth","revoked"]),expiresAt:ee.nullable().optional()}),uN=c.object({id:c.string(),type:Ik,name:c.string(),areaId:c.string().nullable(),manufacturer:c.string().nullable().optional(),model:c.string().nullable().optional(),firmwareVersion:c.string().nullable().optional(),online:c.boolean(),reachability:TC,attention:Pk.nullable().optional(),parentId:c.string().nullable().optional(),members:c.array(c.string()).optional(),sources:c.array(sN).min(1),preferredSourceId:c.string(),capabilities:c.array(aN),updatedAt:ee,raw:c.unknown().optional()}),Ek=c.object({version:c.literal(1),nodeId:c.string(),updatedAt:ee,areas:c.array(cN),accounts:c.array(lN),devices:c.array(uN)}),dN=c.enum(["relay-do-sealed","hub-local"]),l5=c.object({accountId:c.string(),provider:Yn,providerAccountId:c.string(),nodeId:c.string(),credentialLocation:dN,scopes:c.array(c.string()).default([]),status:c.enum(["linked","needs_reauth","revoked"]),displayName:c.string(),expiresAt:ee.nullable().optional(),linkedAt:ee}),wk=c.enum(["open","guarded","locked"]),hh=c.enum(["allow","confirm","deny"]),pN=c.enum(["voice","claude","app","rules"]),u5=c.object({tier:wk.default("open"),perConsumer:c.partialRecord(pN,wk).default({}),perClass:c.partialRecord(Lr,hh).default({}),perDeviceType:c.partialRecord(Ik,hh).default({}),perDevice:c.record(c.string(),hh).default({}),confirmWindowSec:c.number().default(60)}),ve=c.object({}),zk=e=>e.type==="cover"&&(e.config.kind==="garage"||e.config.kind==="door"),bh={power:[{command:"turnOn",params:ve},{command:"turnOff",params:ve},{command:"toggle",params:ve}],brightness:[{command:"setBrightness",params:c.object({level:X})},{command:"adjustBrightness",params:c.object({delta:c.number().min(-100).max(100)})}],colorTemperature:[{command:"setColorTemperature",params:c.object({kelvin:Mr})}],color:[{command:"setColor",params:c.object({hue:c.number().min(0).max(360),saturation:X})}],segmentColor:[{command:"setSegmentColors",voice:!1,params:c.object({segments:c.array(c.object({index:c.number().int().nonnegative(),hue:c.number().min(0).max(360),saturation:X})).min(1).max(512)})}],thermostat:[{command:"setThermostatMode",params:c.object({mode:vh})},{command:"setSetpoint",params:c.object({celsius:Vt})},{command:"setRange",params:c.object({heatCelsius:Vt,coolCelsius:Vt}),gate:e=>e.type==="thermostat"&&e.config.supportsRange}],humidity:[{command:"setHumidity",params:c.object({percent:X}),gate:e=>e.type==="humidity"&&e.config.settable}],lock:[{command:"lock",params:ve},{command:"unlock",params:ve,confirm:!0}],cover:[{command:"open",params:ve,confirm:zk},{command:"close",params:ve},{command:"stop",params:ve},{command:"setPosition",params:c.object({position:X}),confirm:zk,gate:e=>e.type==="cover"&&e.config.supportsPosition},{command:"setTilt",params:c.object({tilt:X}),gate:e=>e.type==="cover"&&e.config.supportsTilt}],fan:[{command:"turnOn",params:ve},{command:"turnOff",params:ve},{command:"setFanSpeed",params:c.object({level:X})},{command:"setFanPreset",params:c.object({preset:c.string()}),gate:e=>e.type==="fan"&&e.config.presets.length>0},{command:"setOscillate",params:c.object({oscillating:c.boolean()}),gate:e=>e.type==="fan"&&e.config.supportsOscillate}],mode:[{command:"setMode",params:c.object({value:c.string()})}],toggle:[{command:"setToggle",params:c.object({on:c.boolean()})}],range:[{command:"setRange",params:c.object({value:c.number()})},{command:"adjustRange",params:c.object({delta:c.number()})}],mediaTransport:[{command:"play",params:ve},{command:"pause",params:ve},{command:"stop",params:ve},{command:"next",params:ve},{command:"previous",params:ve},{command:"seek",params:c.object({positionSec:c.number().nonnegative()})},{command:"setShuffle",params:c.object({on:c.boolean()})},{command:"setRepeat",params:c.object({mode:c.enum(["off","one","all"])})}],volume:[{command:"setVolume",params:c.object({level:X})},{command:"adjustVolume",params:c.object({delta:c.number().min(-100).max(100)})},{command:"setMute",params:c.object({muted:c.boolean()})}],inputSource:[{command:"selectInput",params:c.object({source:c.string()})}],startStop:[{command:"start",params:ve},{command:"stop",params:ve},{command:"pause",params:ve,gate:e=>e.type==="startStop"&&e.config.supportsPause},{command:"resume",params:ve,gate:e=>e.type==="startStop"&&e.config.supportsPause}],scene:[{command:"activate",params:ve}],effect:[{command:"startEffect",params:c.object({spec:yh})},{command:"stopEffect",params:ve}],camera:[{command:"getStream",params:c.object({protocol:c.enum(["rtsp","webrtc","hls"])}),voice:!1,returns:c.object({url:c.string(),token:c.string().optional(),expiresAt:ee.optional()})},{command:"getSnapshot",params:ve,voice:!1,returns:c.object({url:c.string(),expiresAt:ee.optional()})}],sensor:[],binarySensor:[],battery:[],energyMeter:[],doorbell:[],connectivity:[]},fN=new Set(["garageDoor","door","lock"]);function Ak(e,t,n){let o=typeof n.confirm=="function"?n.confirm(t):!!n.confirm,r=fN.has(e.type)&&(bh[t.type]?.some(i=>i.command===n.command)??!1);return o||r}var Tk="devices://graph",mN=[{name:"list_devices",description:"List the smart-home devices connected to this hub, optionally filtered by area, device type, or capability.",inputSchema:{type:"object",properties:{area:{type:"string",description:"Only devices in this area/room (name or id)."},type:{type:"string",description:"Only devices of this type (e.g. light, lock, thermostat)."},capability:{type:"string",description:"Only devices exposing this capability (e.g. power, brightness)."}}}},{name:"get_device",description:"Get one device's full state and capabilities by id.",inputSchema:{type:"object",properties:{deviceId:{type:"string",description:"The device id (e.g. dev_ab12cd34)."}},required:["deviceId"]}},{name:"set_device",description:"Send a command to a device (e.g. capability power / command turnOn). Params are re-validated against the device command registry. Security-sensitive commands (locks, garage doors) are flagged `confirm` in the result.",inputSchema:{type:"object",properties:{deviceId:{type:"string"},capability:{type:"string",description:"The capability to actuate (e.g. power, brightness, lock)."},command:{type:"string",description:"The command (e.g. turnOn, setBrightness, unlock)."},params:{type:"object",description:"Command parameters (e.g. { level: 50 })."},instance:{type:"string",description:"Optional capability instance for multi-instance devices."}},required:["deviceId","capability","command"]}},{name:"run_scene",description:"Activate a scene by device id or by name.",inputSchema:{type:"object",properties:{deviceId:{type:"string",description:"The scene device id."},name:{type:"string",description:"The scene name (resolved against the cached graph)."}}}}],_h="No hub is connected right now, so I can't reach your devices.",jk="I couldn't reach the hub \u2014 please try again.";function Ok(e){let t=e.timeoutMs??5e3,n=new Map,o=null,r=(m,f=!1)=>({content:[{type:"text",text:m}],isError:f});function i(m){return e.send(m)?new Promise(f=>{let g=setTimeout(()=>{n.delete(m.requestId),f(null)},t);typeof g.unref=="function"&&g.unref(),n.set(m.requestId,{resolve:f,timer:g})}):Promise.resolve(null)}async function a(){let m=await i({type:"device_query",requestId:e.newRequestId(),kind:"list"});return m?.ok&&m.result?(o=m.result,o):null}function s(m,f){return m.devices.find(g=>g.id===f)}async function l(m,f){switch(m){case"list_devices":{let g=await a();if(!g)return r(_h,!0);let h=g.devices,b=typeof f.type=="string"?f.type:void 0,$=typeof f.capability=="string"?f.capability:void 0,P=typeof f.area=="string"?f.area:void 0;if(b&&(h=h.filter(I=>I.type===b)),$&&(h=h.filter(I=>I.capabilities.some(j=>j.type===$))),P){let j=g.areas.find(E=>E.id===P||E.name.toLowerCase()===P.toLowerCase())?.id??P;h=h.filter(E=>E.areaId===j)}return r(JSON.stringify({devices:h,areas:g.areas,accounts:g.accounts},null,2))}case"get_device":{let g=typeof f.deviceId=="string"?f.deviceId:"";if(!g)return r("get_device requires a `deviceId`.",!0);let h=await i({type:"device_query",requestId:e.newRequestId(),kind:"get",deviceId:g});return h?h.ok?r(JSON.stringify(h.result??null,null,2)):r(h.error??"I don't know that device.",!0):r(_h,!0)}case"set_device":{let g=typeof f.deviceId=="string"?f.deviceId:"",h=typeof f.capability=="string"?f.capability:"",b=typeof f.command=="string"?f.command:"",$=f.params??{},P=typeof f.instance=="string"?f.instance:void 0;if(!g||!h||!b)return r("set_device requires `deviceId`, `capability`, and `command`.",!0);let I=bh[h]?.find(pt=>pt.command===b);if(!I)return r(`The command "${b}" isn't available for the ${h} capability.`,!0);let j=I.params.safeParse($);if(!j.success)return r("Those command settings weren't understood.",!0);let E=o?s(o,g):void 0,_e=E?.capabilities.find(pt=>pt.type===h),xe=E&&_e?Ak(E,_e,I):void 0,ke=await i({type:"device_command",requestId:e.newRequestId(),deviceId:g,capability:h,instance:P,command:b,params:j.data,consumer:"claude"});if(!ke)return r(jk,!0);let Ye={ok:ke.ok};return xe!==void 0&&(Ye.confirm=xe),ke.verified!==void 0&&(Ye.verified=ke.verified),ke.state!==void 0&&(Ye.state=ke.state),ke.error&&(Ye.error=ke.error),r(JSON.stringify(Ye,null,2),!ke.ok)}case"run_scene":{let g=typeof f.deviceId=="string"?f.deviceId:"",h=typeof f.name=="string"?f.name:"";if(!g&&h){let $=o??await a();if(!$)return r(_h,!0);let P=$.devices.find(I=>(I.type==="scene"||I.type==="sceneController")&&I.name.toLowerCase()===h.toLowerCase());if(!P)return r(`I couldn't find a scene called "${h}".`,!0);g=P.id}if(!g)return r("run_scene requires a `deviceId` or a scene `name`.",!0);let b=await i({type:"device_command",requestId:e.newRequestId(),deviceId:g,capability:"scene",command:"activate",params:{},consumer:"claude"});return b?r(JSON.stringify({ok:b.ok,error:b.error},null,2),!b.ok):r(jk,!0)}default:return r(`unknown device tool: ${m}`,!0)}}function u(){let m=[{uri:Tk,name:"Device graph",description:"The full connected-devices graph.",mimeType:"application/json"}];for(let f of o?.devices??[])m.push({uri:`devices://${f.id}`,name:f.name,description:`${f.type} device`,mimeType:"application/json"});return m}async function d(m){let f=b=>({contents:[{uri:m,mimeType:"application/json",text:JSON.stringify(b,null,2)}]});if(m===Tk){let b=o??await a();return f(b??{error:"No hub connected."})}let g=m.startsWith("devices://")?m.slice(10):"";if(!g)return f({error:`Unknown resource: ${m}`});let h=await i({type:"device_query",requestId:e.newRequestId(),kind:"get",deviceId:g});return f(h?h.ok?h.result??null:{error:h.error??"Unknown device."}:{error:"No hub connected."})}function p(m){if(m.type==="device_result"){let f=n.get(m.requestId);return f&&(clearTimeout(f.timer),n.delete(m.requestId),f.resolve(m)),!0}return m.type==="devices.update"?(o=m.doc,e.notifyResourcesChanged?.(),!0):!1}return{tools:mN,callTool:l,listResources:u,readResource:d,onHubMessage:p}}import{existsSync as Ck,readFileSync as gN}from"node:fs";import Nk from"node:os";import Nc from"node:path";var $h=Oi(),Rk=Ac($h.dir),xh=e=>Nc.join(Rk.sessionsDir,`${e}.json`),Oc=()=>Ci($h.dir),Cc=e=>$h.beacon?.port??e,Dk=()=>mh({file:Rk.activeUserFile}),hN=e=>!!e&&/^\$\{.*\}$/.test(e),Xn=e=>e&&!hN(e)?e:void 0;function vN(){return fk({isDevBuild:gk()===null})}function Uk(e={}){let t=e.voice??vN(),n=Xn(process.env.BRIDGE_SESSION_ID);if(n){if(!t)return null;let f=Xn(process.env.CLAUDE_CODE_SESSION_ID)??n,g=Xn(process.env.BRIDGE_SESSION_NAME)??n,h=Xn(process.env.BRIDGE_HUB_TOKEN_FILE)??Oc(),b={id:n,name:g,hubPort:Cc(jc),hubTokenFile:h,claudeSessionId:f,voice:!0},$=xh(f);if(Ck($))return b;let P=Dk()?.sub,I=Xn(process.env.CLAUDE_CODE_SESSION_ID)?{transcriptPath:Nc.join(Nk.homedir(),".claude","projects",process.cwd().replace(/[^A-Za-z0-9]/g,"-"),`${f}.jsonl`)}:{};try{Ft($,JSON.stringify({id:n,name:g,hubPort:Cc(jc),hubTokenFile:h,claudeSessionId:f,cwd:process.cwd(),...I,voice:!0,...P?{sub:P}:{}}),384)}catch{}return{...b,selfWritten:!0,...P?{sub:P}:{}}}let o=Xn(process.env.CLAUDE_CODE_SESSION_ID);if(!o)return null;let r=xh(o);if(Ck(r))try{let f=JSON.parse(gN(r,"utf8"));if(typeof f.id=="string"&&f.id){if(f.voice!==!0&&!t)return null;if(f.voice!==!0)try{Ft(r,JSON.stringify({...f,voice:!0}),384)}catch{}return{id:f.id,name:typeof f.name=="string"?f.name:f.id,hubPort:Number(f.hubPort??Cc(jc)),hubTokenFile:typeof f.hubTokenFile=="string"?f.hubTokenFile:Oc(),claudeSessionId:o,voice:!0,...typeof f.sub=="string"&&f.sub?{sub:f.sub}:{}}}}catch{}if(!t)return null;let i=process.cwd(),a=Nc.basename(i)||"session",s=kk(),l=`${a}@${s}~${o.slice(0,8)}`,u=`${a} (${s})`,d=Cc(Ri()),p=Nc.join(Nk.homedir(),".claude","projects",i.replace(/[^A-Za-z0-9]/g,"-"),`${o}.jsonl`),m=Dk()?.sub;try{Ft(r,JSON.stringify({id:l,name:u,hubPort:d,hubTokenFile:Oc(),claudeSessionId:o,transcriptPath:p,cwd:i,voice:!0,...m?{sub:m}:{}}),384)}catch{}return{id:l,name:u,hubPort:d,hubTokenFile:Oc(),selfWritten:!0,claudeSessionId:o,voice:!0,...m?{sub:m}:{}}}function Mk(e){e?.selfWritten&&e.claudeSessionId&&Qn(xh(e.claudeSessionId))}import{readFileSync as yR}from"node:fs";var UD=xt(CS(),1),MD=xt(Bc(),1),LD=xt(ro(),1),FD=xt(Oh(),1),ZD=xt(Dh(),1),qD=xt(Zh(),1),Vi=xt(Gc(),1),BD=xt(ZS(),1);var VD=c.discriminatedUnion("kind",[c.object({kind:c.literal("literal"),hue:c.number().min(0).max(360),saturation:X}),c.object({kind:c.literal("token"),token:c.enum(["main","session"])})]),qS=c.enum(["main","session","hold","off"]),BS=c.object({color:VD.optional(),brightnessPct:X.nullable().optional(),brightnessScale:c.number().min(0).max(2).optional(),kelvin:Mr.nullable().optional(),power:c.boolean().optional()});var JD=c.enum(["added","removed","permission_request","started","ended","working","finished","error","idle","needs_permission","promptSubmitted","toolStart","toolEnd","subagentStart","subagentFinished","compacting","resumed","aborted","contextLow","contextCritical","needsInput","planReady","rateLimited","compactDone","permissionDenied","taskCompleted","usageHigh","modePlan","modeAuto","modeBypass","modeNormal","modelChanged","workflowStarted","sandboxEscalation","reviewChanged","costHigh","longRunning"]),Bh=c.enum(["claude","codex"]);var HD=c.discriminatedUnion("kind",[c.object({kind:c.literal("deviceState"),deviceId:c.string(),capability:c.string(),instance:c.string().optional(),op:c.enum(["eq","neq","gt","lt","gte","lte","changed"]).default("changed"),path:c.string().optional(),value:c.unknown().optional()}),c.object({kind:c.literal("edge"),deviceId:c.string(),event:c.string()}),c.object({kind:c.literal("session"),event:JD,repo:c.string().optional(),sessionId:c.string().optional(),agent:Bh.optional()}),c.object({kind:c.literal("schedule"),cron:c.string()})]),GD=c.object({deviceId:c.string(),capability:c.string(),instance:c.string().optional(),op:c.enum(["eq","neq","gt","lt","gte","lte"]),path:c.string().optional(),value:c.unknown()}),WD=c.discriminatedUnion("kind",[c.object({kind:c.literal("device"),deviceId:c.string(),capability:c.string(),instance:c.string().optional(),command:c.string(),params:c.unknown().optional()}),c.object({kind:c.literal("session"),sessionId:c.string(),text:c.string()}),c.object({kind:c.literal("notify"),title:c.string(),body:c.string()}),c.object({kind:c.literal("intent"),deviceId:c.string(),instance:c.string().optional(),look:BS.optional(),effect:yh.optional(),returnTo:qS.optional(),hold:c.boolean().default(!1)})]),B5=c.object({id:c.string(),name:c.string().default(""),enabled:c.boolean().default(!0),trigger:HD,conditions:c.array(GD).default([]),actions:c.array(WD).min(1),allowSecurity:c.boolean().default(!1)});var Kc=c.enum(["started","ended","working","finished","error","idle","needs_permission","subagentFinished","compacting","resumed","contextLow","contextCritical","needsInput","planReady","rateLimited","subagentStart","compactDone","permissionDenied","taskCompleted","usageHigh","modePlan","modeAuto","modeBypass","modeNormal","modelChanged","workflowStarted","sandboxEscalation","reviewChanged","costHigh","longRunning"]),VS=c.object({id:c.string(),name:c.string(),cwd:c.string(),online:c.boolean().default(!0),state:Kc.optional(),bridgeId:c.string().optional(),bridgeName:c.string().optional(),agent:Bh.optional()}),JS=c.enum(["allow","deny"]),W5=c.object({sessionId:c.string().nullable(),text:c.string(),ts:ee.optional()}),Qc=c.object({latestReply:c.string().nullable(),ts:c.number().nullable(),cursor:c.number().int().nonnegative(),hasMore:c.boolean()}),K5=c.object({requestId:c.string(),behavior:JS,ts:ee.optional()}),Q5=c.object({id:c.string(),sessionId:c.string().nullable(),args:c.unknown(),ts:ee.optional()}),KD=c.object({type:c.literal("register"),userToken:c.string().optional(),sessions:c.array(VS),claudeSessionId:c.string().optional()}),QD=c.object({type:c.literal("sessions.update"),sessions:c.array(VS)}),YD=c.object({type:c.literal("prompt"),sessionId:c.string(),requestId:c.string(),text:c.string(),ts:ee.optional()});var XD=c.object({type:c.literal("reply"),sessionId:c.string(),requestId:c.string(),text:c.string(),seq:c.number().int().nonnegative().optional(),final:c.boolean().optional(),ts:ee.optional()}),eR=c.object({type:c.literal("permission_request"),sessionId:c.string(),requestId:c.string(),tool:c.string(),description:c.string(),preview:c.string(),ts:ee.optional()}),tR=c.object({type:c.literal("permission_verdict"),sessionId:c.string(),requestId:c.string(),behavior:JS,ts:ee.optional()}),rR=c.object({type:c.literal("command"),id:c.string(),requestId:c.string(),sessionId:c.string().nullable(),args:c.unknown(),ts:ee.optional()}),nR=c.object({type:c.literal("command_result"),requestId:c.string(),id:c.string(),sessionId:c.string().nullable().optional(),result:c.unknown().optional(),error:c.string().optional(),ts:ee.optional()}),oR=c.object({type:c.literal("devices.update"),doc:Ek}),iR=c.object({type:c.literal("device_command"),requestId:c.string(),deviceId:c.string(),sourceId:c.string().nullable().optional(),ruleId:c.string().optional(),capability:Lr,instance:c.string().optional(),command:c.string(),params:c.unknown(),consumer:c.enum(["voice","claude","app","rules"]),sessionId:c.string().optional(),confirm:c.boolean().optional()}),aR=c.object({type:c.literal("device_query"),requestId:c.string(),kind:c.enum(["list","get"]),deviceId:c.string().optional()}),sR=c.object({type:c.literal("device_result"),requestId:c.string(),deviceId:c.string().optional(),ok:c.boolean(),verified:c.boolean().optional(),state:c.unknown().optional(),result:c.unknown().optional(),error:c.string().optional()}),cR=c.object({type:c.literal("device_event"),deviceId:c.string(),capability:Lr,instance:c.string().optional(),event:c.string(),payload:c.unknown().optional(),ts:ee}),lR=c.object({type:c.literal("device_source_event"),provider:Yn,providerAccountId:c.string(),nativeId:c.string(),patch:c.array(c.object({type:Lr,instance:c.string().optional(),state:c.unknown()})).optional(),edge:c.object({capability:Lr,instance:c.string().optional(),event:c.string(),payload:c.unknown().optional()}).optional(),online:c.boolean().optional(),ts:ee}),uR=c.object({type:c.literal("entitlement"),plan:c.enum(["free","paid"]),planStatus:c.enum(["active","past_due","canceled"]).optional(),serviceOk:c.boolean().optional(),capture:c.object({telemetry:c.boolean(),transcripts:c.boolean()}),policyVersion:c.string(),ts:ee}),dR=c.object({type:c.literal("device_config"),version:c.number().int().nonnegative(),config:c.record(c.string(),c.unknown()),ts:ee}),pR=c.object({type:c.literal("disconnect"),code:c.union([c.literal(1012),c.literal(4402),c.literal(4426),c.number().int().min(1e3).max(4999)]),reason:c.string().max(120),ts:ee}),fR=c.object({type:c.literal("device_audit"),requestId:c.string(),consumer:c.enum(["voice","claude","app","rules"]),deviceId:c.string(),ruleId:c.string().optional(),capability:Lr,command:c.string(),params:c.unknown(),ok:c.boolean(),confirmRequired:c.boolean(),confirmedBy:c.string().optional(),error:c.string().optional(),ts:ee}),mR=64,gR=c.object({type:c.literal("session_state"),sessionId:c.string(),state:Kc,event:c.string(),ts:ee,transitions:c.array(c.object({state:Kc,event:c.string(),ts:ee})).max(mR).optional()}),hR=c.object({type:c.literal("notification"),sessionId:c.string(),event:Kc,repo:c.string().optional(),title:c.string().optional(),body:c.string().optional()}),vR=c.discriminatedUnion("type",[KD,QD,YD,XD,eR,tR,rR,nR,oR,iR,aR,sR,cR,lR,fR,uR,pR,dR,gR,hR]),HS=e=>vR.parse(typeof e=="string"?JSON.parse(e):e);var GS=100;function WS(e){let t=null,n=!1,o=1e3,r=null,i=[],a=()=>"endpoint"in e?e.endpoint():{port:e.port,tokenFile:e.tokenFile},s=p=>{try{return yR(p,"utf8").trim()}catch(m){return console.error(`[channel] cannot read hub token file ${p}:`,m),""}},l=p=>(i.push(p),i.length>GS&&(i.shift(),console.error(`[channel] outbound buffer at cap (${GS}); dropped oldest frame`)),!0),u=p=>{for(;i.length>0&&p.readyState===Vi.default.OPEN;){let m=i.shift();m&&p.send(JSON.stringify(m))}},d=()=>{if(n)return;let{port:p,tokenFile:m}=a(),f=s(m),g=new Vi.default(`ws://${e.host??"127.0.0.1"}:${p}`,{headers:{"x-bridge-hub-token":f}});t=g;let h=!0,b=null;g.on("open",()=>{o=1e3;let $=e.hello?.();$&&g.send(JSON.stringify($)),u(g),h=!0,b=setInterval(()=>{if(!h){g.terminate();return}h=!1;try{g.ping()}catch{}},3e4)}),g.on("pong",()=>{h=!0}),g.on("message",$=>{try{e.onMessage(HS($.toString()))}catch(P){console.error("[channel] bad hub frame:",P)}}),g.on("error",$=>console.error("[channel] hub ws error:",$)),g.on("close",()=>{if(b&&(clearInterval(b),b=null),t===g&&(t=null),n)return;let $=o;o=Math.min(o*2,5e3),r=setTimeout(d,$)})};return d(),{send:p=>{if(n)return!1;let m=t;return m&&m.readyState===Vi.default.OPEN&&i.length===0?(m.send(JSON.stringify(p)),!0):l(p)},close:()=>{n=!0,r&&clearTimeout(r),t?.close()}}}var Q=e=>e;var KS=Q({id:"ActivateScene",target:"hub",customHandler:!0,scaffold:!0,carrier:"scene",utterances:["activate {scene} scene","activate scene {scene}","run scene {scene}","start {scene} scene"],slots:[{name:"scene",type:"SceneName",dynamic:!0,elicitationPrompts:["Which scene?"]}],customTypes:[{name:"SceneName",values:["movie night","good morning","bedtime","focus"]}],deviceCommands:[{capability:"scene",command:"activate"}],args:c.object({scene:c.string()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({scene:e.scene??""}),ackSpeech:()=>"",speak:()=>""});var QS=Q({id:"Attach",target:"hub",skillLocal:!0,carrier:"attach",utterances:["attach to {target}","attach","switch to {target}","use {target}"],slots:[{name:"target",type:"SessionName",required:!0,dynamic:!0,elicitationPrompts:["Which session?","Which one would you like to attach to?"]}],customTypes:[{name:"SessionName",values:["one","two","three","four","five","six","seven","eight","nine","ten"]}],args:c.object({target:c.string()}),result:c.object({name:c.string()}),precheck:(e,t)=>t.sessionCount===0?"No sessions are running yet.":null,fromSlots:e=>({target:e.target??""}),ackSpeech:()=>"",speak:e=>`Entered ${e.name}.`});var YS=Q({id:"AttachBridge",target:"hub",skillLocal:!0,attachLevel:"bridge",carrier:"bridge",utterances:["attach to bridge {bridge}","switch to bridge {bridge}","open bridge {bridge}","go to bridge {bridge}"],slots:[{name:"bridge",type:"BridgeName",required:!0,dynamic:!0,elicitationPrompts:["Which bridge?","Which bridge would you like to attach to?"]}],customTypes:[{name:"BridgeName",values:["one","two","three","four","five","six","seven","eight","nine","ten"]}],args:c.object({target:c.string()}),result:c.object({name:c.string()}),precheck:(e,t)=>(t.bridgeCount??0)===0?"No bridges have a running session yet.":null,fromSlots:e=>({target:e.bridge??""}),ackSpeech:()=>"",speak:e=>`Entered ${e.name}.`});var XS=Q({id:"ControlDevice",target:"hub",customHandler:!0,scaffold:!0,carrier:"turn",utterances:["turn on {device}","turn off {device}","turn on the {device}","turn off the {device}","toggle {device}"],slots:[{name:"device",type:"DeviceName",dynamic:!0,elicitationPrompts:["Which device?"]}],customTypes:[{name:"DeviceName",values:["light","lamp","fan","plug","heater"]}],deviceCommands:[{capability:"power",command:"turnOn"},{capability:"power",command:"turnOff"},{capability:"power",command:"toggle"}],args:c.object({device:c.string()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({device:e.device??""}),ackSpeech:()=>"",speak:()=>""});var ew=Q({id:"ControlGroup",target:"hub",customHandler:!0,scaffold:!0,carrier:"group",utterances:["turn on the {group} group","turn off the {group} group","turn off {group} group"],slots:[{name:"group",type:"GroupName",dynamic:!0,elicitationPrompts:["Which group or room?"]}],customTypes:[{name:"GroupName",values:["living room","bedroom","kitchen","office","studio"]}],deviceCommands:[{capability:"power",command:"turnOn"},{capability:"power",command:"turnOff"}],args:c.object({group:c.string()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({group:e.group??""}),ackSpeech:()=>"",speak:()=>""});var tw=e=>`In the current working directory, ${e}. Keep the answer brief enough to be read aloud.`;var rw=Q({id:"GitStatus",target:"session",carrier:"git",utterances:["git status","what's the git status","any uncommitted changes in git"],slots:[],args:c.object({}),result:c.object({}),fromSlots:()=>({}),ackSpeech:()=>"Asking git status.",speak:()=>"",render:()=>tw("run git status and report the current branch and any uncommitted changes")});var bR=c.object({index:c.number().int().positive(),name:c.string(),id:c.string(),sessionCount:c.number().int().nonnegative()}),nw=Q({id:"ListBridges",target:"hub",carrier:"bridge",utterances:["list bridges","list my bridges","what bridges do I have","what bridges are running","which bridges are running"],slots:[],args:c.object({}),result:c.object({bridges:c.array(bR)}),speaksResult:!0,cacheSource:"bridges",providesBridgeCatalog:!0,fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>{let t=e.bridges.length;if(t===0)return"No bridges have a running session.";let n=e.bridges.map(o=>`${o.index}, ${o.name}`).join("; ");return`${t} bridge${t===1?"":"s"}: ${n}.`}});var _R=c.object({name:c.string(),type:c.string(),room:c.string().nullable(),online:c.boolean()}),xR=c.object({provider:c.string(),status:c.string()}),ow=Q({id:"ListDevices",target:"hub",carrier:"device",utterances:["list devices","list my devices","what devices do I have","what devices are online"],slots:[],args:c.object({}),result:c.object({devices:c.array(_R),accounts:c.array(xR)}),speaksResult:!0,cacheSource:"devices",fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>{let t=e.accounts.filter(i=>i.status!=="linked"),n=t.length?` ${t.map(i=>`${i.provider} needs re-linking`).join("; ")}.`:"",o=e.devices.length;if(o===0)return`No devices are connected.${n}`;let r=e.devices.filter(i=>i.online).length;return`${o} device${o===1?"":"s"}, ${r} online.${n}`}});var $R=c.object({index:c.number().int().positive(),name:c.string(),id:c.string()}),iw=Q({id:"ListSessions",target:"hub",carrier:"session",utterances:["list sessions","list my sessions","what sessions do I have","what sessions are running"],slots:[],args:c.object({}),result:c.object({sessions:c.array($R)}),speaksResult:!0,cacheSource:"sessions",providesSessionCatalog:!0,fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>{let t=e.sessions.length;if(t===0)return"No sessions are running.";let n=e.sessions.map(o=>`${o.index}, ${o.name}`).join("; ");return`${t} session${t===1?"":"s"}: ${n}.`}});var aw=Q({id:"ReadMore",target:"hub",carrier:"more",utterances:["read more","continue reading","keep reading"],slots:[],args:c.object({}),result:Qc,speaksResult:!0,cacheSource:"output",fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>e.latestReply?e.hasMore?`${e.latestReply} Say read more to continue.`:e.latestReply:"That's the end of the output."});var sw=Q({id:"ReadOutput",target:"hub",carrier:"output",utterances:["read output","read the output","what's the output","read reply","read the reply","what's the reply","read the last reply","read it","replies","read replies","dev replies","any replies","latest reply"],slots:[],args:c.object({}),result:Qc,speaksResult:!0,cacheSource:"output",fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>e.latestReply?e.hasMore?`${e.latestReply} Say read more to continue.`:e.latestReply:"No output yet."});var kR=c.object({index:c.number().int().positive(),name:c.string(),id:c.string(),sessionCount:c.number().int().nonnegative()}),cw=Q({id:"RenameBridge",target:"hub",relayMutation:!0,customHandler:!0,carrier:"bridge",utterances:["rename bridge {bridge}","rename a bridge","rename this bridge","rename the bridge","rename this bridge to {name}","rename the bridge to {name}","call the bridge {name}"],slots:[{name:"bridge",type:"BridgeName",dynamic:!0},{name:"name",type:"AMAZON.SearchQuery",allowFreeText:!0}],args:c.object({name:c.string(),bridgeId:c.string().optional()}),result:c.object({bridges:c.array(kR)}),providesBridgeCatalog:!0,precheck:e=>e.name.trim()?null:"What would you like to call it?",fromSlots:e=>({name:(e.name??"").trim()}),ackSpeech:e=>`Okay, I'll call it ${e.name}.`,speak:()=>""});var SR=c.object({index:c.number().int().positive(),name:c.string(),id:c.string()}),lw=Q({id:"RenameSession",target:"hub",relayMutation:!0,customHandler:!0,carrier:"rename",utterances:["rename","rename a session","rename this session","rename the session","rename it","rename {target}","rename session {target}","rename to {name}","rename this session to {name}","call it {name}"],slots:[{name:"target",type:"SessionName",dynamic:!0},{name:"name",type:"AMAZON.SearchQuery",allowFreeText:!0}],args:c.object({name:c.string()}),result:c.object({sessions:c.array(SR)}),providesSessionCatalog:!0,precheck:e=>e.name.trim()?null:"What would you like to call it?",fromSlots:e=>({name:(e.name??"").trim()}),ackSpeech:e=>`Okay, I'll call it ${e.name}.`,speak:()=>""});var uw=Q({id:"Return",target:"hub",skillLocal:!0,clearsAttach:!0,carrier:"return",utterances:["return","go back","back to the main menu","main menu","leave the session","leave this session"],slots:[],args:c.object({}),result:c.object({}),fromSlots:()=>({}),ackSpeech:()=>"",speak:()=>"Back at the main menu."});var dw=Q({id:"SetBrightness",target:"hub",customHandler:!0,scaffold:!0,carrier:"brightness",utterances:["set brightness of {device} to {level}","set {device} brightness to {level}","dim {device} to {level}"],slots:[{name:"device",type:"DeviceName",dynamic:!0,elicitationPrompts:["Which device?"]},{name:"level",type:"AMAZON.NUMBER",elicitationPrompts:["What level, 0 to 100?"]}],customTypes:[{name:"DeviceName",values:["light","lamp","fan","plug","heater"]}],deviceCommands:[{capability:"brightness",command:"setBrightness"}],args:c.object({device:c.string(),level:c.number()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({device:e.device??"",level:Number(e.level??0)}),ackSpeech:()=>"",speak:()=>""});var pw=Q({id:"SetTemperature",target:"hub",customHandler:!0,scaffold:!0,carrier:"temperature",utterances:["set temperature of {device} to {temperature}","set {device} temperature to {temperature}","set {device} to {temperature} degrees"],slots:[{name:"device",type:"DeviceName",dynamic:!0,elicitationPrompts:["Which thermostat?"]},{name:"temperature",type:"AMAZON.NUMBER",elicitationPrompts:["What temperature?"]}],customTypes:[{name:"DeviceName",values:["light","lamp","fan","plug","heater"]}],deviceCommands:[{capability:"thermostat",command:"setSetpoint"}],args:c.object({device:c.string(),temperature:c.number()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({device:e.device??"",temperature:Number(e.temperature??0)}),ackSpeech:()=>"",speak:()=>""});var fw=[KS,QS,YS,XS,ew,rw,nw,ow,iw,aw,sw,cw,lw,uw,dw,pw],mw=new Map(fw.map(e=>[e.id,e])),y3=new Map(fw.map(e=>[`${e.id}Intent`,e]));function gw(e){if(e.type==="prompt")return e.text;let t=mw.get(e.id);if(!t?.render)throw new Error(`channel got command "${e.id}" with no render() \u2014 not a session-target command`);return t.render(t.args.parse(e.args))}var we=Uk();process.on("exit",()=>Mk(we));process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));var Jr=new zc({name:"alexa-bridge-channel",version:"0.0.0"},{capabilities:{experimental:{"claude/channel":{},"claude/channel/permission":{}},tools:{},resources:{}},instructions:'Messages from the Alexa bridge arrive as <channel source="alexa" requestId="...">. Carry them out in this session, then call the `reply` tool with that requestId and a short, spoken-friendly summary of the result. Smart-home devices connected to this hub are available via the list_devices / get_device / set_device / run_scene tools and the devices://graph resource.'}),Vh=(e,t)=>{Jr.notification({method:e,params:t})},hw=we?{id:we.id,name:we.name,cwd:process.cwd(),online:!0}:null,bw=Oi(),vw=we?.hubPort??bw.beacon?.port??Ri(),IR=we?.hubTokenFile??Ci(bw.dir),Yc=!!we||zR(IR),Ji=null,Hi=Ok({send:e=>Ji?.send(e)??!1,notifyResourcesChanged:()=>Vh("notifications/resources/updated",{uri:"devices://graph"}),newRequestId:()=>wR()});Yc&&(Ji=WS({endpoint:()=>{let e=Oi({fresh:!0});return{port:we?.hubPort??e.beacon?.port??Ri(),tokenFile:we?.hubTokenFile??Ci(e.dir)}},hello:()=>hw?{type:"register",sessions:[hw],...we?.claudeSessionId?{claudeSessionId:we.claudeSessionId}:{}}:null,onMessage:e=>{if(!Hi.onHubMessage(e))switch(e.type){case"prompt":case"command":Vh("notifications/claude/channel",{content:gw(e),meta:{requestId:e.requestId}});break;case"permission_verdict":Vh("notifications/claude/channel/permission",{request_id:e.requestId,behavior:e.behavior});break;default:break}}}));Jr.setRequestHandler(fm,async()=>({tools:[...Yc?Hi.tools:[],...we?[{name:"reply",description:"Send a short, spoken-friendly result back to the Alexa bridge.",inputSchema:{type:"object",properties:{requestId:{type:"string",description:"The requestId from the channel tag."},text:{type:"string",description:"A concise result to read aloud."}},required:["requestId","text"]}}]:[]]}));Jr.setRequestHandler(am,async()=>({resources:Yc?Hi.listResources():[]}));Jr.setRequestHandler(cm,async e=>await Hi.readResource(e.params.uri));var yw=0;Jr.setRequestHandler(Xo,async e=>{let t=e.params.name;if(t==="list_devices"||t==="get_device"||t==="set_device"||t==="run_scene")return await Hi.callTool(t,e.params.arguments??{});if(t==="reply"){let n=Ji;if(!we||!n)return{content:[{type:"text",text:"noop (not a bridge session)"}]};let o=e.params.arguments??{},r=o.requestId;return r?n.send({type:"reply",sessionId:we.id,requestId:r,text:o.text??"",seq:yw,ts:Date.now()})?(yw+=1,{content:[{type:"text",text:"sent"}]}):{content:[{type:"text",text:"Could not deliver the reply to the hub (link down); please retry."}],isError:!0}:{content:[{type:"text",text:'reply requires the `requestId` from the channel tag (e.g. <channel source="alexa" requestId="\u2026">).'}],isError:!0}}throw new Error(`unknown tool: ${e.params.name}`)});if(we&&Ji){let e=Ji,t=c.object({method:c.literal("notifications/claude/channel/permission_request"),params:c.object({request_id:c.string(),tool_name:c.string(),description:c.string(),input_preview:c.string().optional()})});Jr.setNotificationHandler(t,async({params:n})=>{e.send({type:"permission_request",sessionId:we.id,requestId:n.request_id,tool:n.tool_name,description:n.description,preview:n.input_preview??"",ts:Date.now()})||console.error(`[channel] could not relay permission_request ${n.request_id} to the hub (link down)`)})}await Jr.connect(new Pc);console.error(we?`[channel] ${we.id} connected to hub :${vw}`:Yc?`[channel] device tools active (no bridge handshake) \u2014 hub :${vw}`:"[channel] dormant \u2014 no hub configured on this machine");
165
+ @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}`,zB=`<a class="lockup" href="${xC}/" data-testid="nav-brand" aria-label="AC Bridge home"><span class="mk"></span><span class="wm">AC Bridge</span></a>`;function mh(e={}){let t=Zt(e.file??lk);if(!t)return null;try{let n=JSON.parse(t);return typeof n.sub!="string"||!n.sub?null:{sub:n.sub,...typeof n.email=="string"?{email:n.email}:{},updatedAt:typeof n.updatedAt=="number"?n.updatedAt:0}}catch{return null}}var y9=Qe.join(me,"hub-token"),jc=Number(process.env.BRIDGE_HUB_PORT)||8790,Di=Qe.join(me,"config.json"),b9=Qe.join(me,"hub.log"),fC=Qe.join(me,"hub.pid"),_9=Qe.join(me,Kn),x9=Qe.join(me,"daemon.pid"),$9=Qe.join(me,"daemon-beacon.json"),k9=Qe.join(me,"daemon.log"),S9=Qe.join(me,"hub-stop-reason.json"),$C=Qe.join(me,"app-path"),w9=Qe.join(me,"hub-relay-status.json"),z9=Qe.join(me,"hub-holders.json"),I9=Qe.join(me,"sessions");function Ft(e,t,n=384){let o=Qe.dirname(e),r=(n&63)===0;if(zC(o,{recursive:!0,...r?{mode:448}:{}}),r)try{wC(o,448)}catch{}let i=`${e}.tmp-${process.pid}-${process.hrtime.bigint()}`;EC(i,t,{mode:n});try{PC(i,e)}catch(a){try{$k(i,{force:!0})}catch{}throw a}}function Zt(e){try{return IC(e,"utf8").trim()||null}catch{return null}}function kk(){let e={};try{let t=Zt(Di);t&&(e=JSON.parse(t))}catch{}return process.env.BRIDGE_MACHINE||e.machine||AC.hostname().split(".")[0]||"node"}function Ri(){let e=Number(process.env.BRIDGE_HUB_PORT);if(e)return e;try{let t=Zt(Di);if(t){let n=JSON.parse(t);if(n.hubPort)return Number(n.hubPort)}}catch{}return 8790}function Qn(e){try{$k(e,{force:!0})}catch{}}var X=c.number().min(0).max(100),Mr=c.number().int().min(1e3).max(12e3),Vt=c.number(),ee=c.number().int().nonnegative(),Yn=c.enum(["hue","matter","smartthings","homeassistant","nest","alexa","google","kasa","wiz","lifx","shelly","govee","tapo","tuya","yeelight","nanoleaf","meross","ewelink","wled","elgato","roku","mqtt","esphome","mock","other"]),TC=c.enum(["local","cloud","offline","unknown"]),Ik=c.enum(["light","plug","switch","dimmer","thermostat","lock","cover","garageDoor","valve","fan","sensor","binarySensor","camera","doorbell","speaker","tv","mediaPlayer","vacuum","appliance","airPurifier","humidifier","waterHeater","evCharger","sceneController","remote","scene","group","bridge","other"]),jC=c.enum(["temperature","humidity","illuminance","pressure","co2","pm25","pm10","voc","airQuality","noise","uvIndex","windSpeed","distance","generic"]),OC=c.enum(["motion","occupancy","presence","contact","leak","smoke","co","gas","tamper","vibration","glassBreak","button","person","sound","moisture","generic"]);var ue=(e,t)=>c.object({type:c.literal(e),instance:c.string().optional(),...t}),CC=ue("power",{state:c.object({on:c.boolean().nullable()})}),NC=ue("brightness",{state:c.object({level:X.nullable()})}),DC=ue("colorTemperature",{config:c.object({minKelvin:Mr,maxKelvin:Mr}),state:c.object({kelvin:Mr.nullable()})}),RC=ue("color",{config:c.object({modes:c.array(c.enum(["hs","rgb","xy"])).default(["hs"])}),state:c.object({hue:c.number().min(0).max(360).nullable(),saturation:X.nullable()})}),UC=ue("segmentColor",{config:c.object({segments:c.number().int().min(1)}),state:c.object({colors:c.array(c.object({hue:c.number().min(0).max(360).nullable(),saturation:X.nullable()})).nullable()})}),vh=c.enum(["off","heat","cool","auto","eco","fanOnly","dry"]),MC=ue("thermostat",{config:c.object({modes:c.array(vh),minC:Vt,maxC:Vt,supportsRange:c.boolean().default(!1)}),state:c.object({mode:vh.nullable(),currentC:Vt.nullable(),setpointC:Vt.nullable().optional(),heatC:Vt.nullable().optional(),coolC:Vt.nullable().optional(),action:c.enum(["idle","heating","cooling","fan"]).nullable().optional()})}),LC=ue("humidity",{config:c.object({settable:c.boolean().default(!1),minPct:X.default(0),maxPct:X.default(100)}),state:c.object({currentPct:X.nullable().optional(),targetPct:X.nullable().optional()})}),FC=ue("lock",{state:c.object({state:c.enum(["locked","unlocked","jammed","unknown"])})}),ZC=ue("cover",{config:c.object({kind:c.enum(["blind","shade","curtain","awning","garage","door","window","valve","generic"]),supportsPosition:c.boolean().default(!1),supportsTilt:c.boolean().default(!1)}),state:c.object({position:X.nullable().optional(),tilt:X.nullable().optional(),state:c.enum(["open","closed","opening","closing","stopped","partial","unknown"])})}),qC=ue("fan",{config:c.object({presets:c.array(c.string()).default([]),supportsOscillate:c.boolean().default(!1)}),state:c.object({on:c.boolean().nullable(),level:X.nullable().optional(),preset:c.string().nullable().optional(),oscillating:c.boolean().nullable().optional()})}),BC=ue("mode",{config:c.object({options:c.array(c.string())}),state:c.object({value:c.string().nullable()})}),VC=ue("toggle",{state:c.object({on:c.boolean().nullable()})}),JC=ue("range",{config:c.object({min:c.number(),max:c.number(),step:c.number().optional(),unit:c.string().optional()}),state:c.object({value:c.number().nullable()})}),HC=ue("mediaTransport",{state:c.object({state:c.enum(["playing","paused","stopped","buffering","idle"]).nullable(),metadata:c.object({title:c.string().optional(),artist:c.string().optional(),album:c.string().optional(),artworkUrl:c.string().optional()}).nullable().optional(),positionSec:c.number().nonnegative().nullable().optional(),durationSec:c.number().nonnegative().nullable().optional(),shuffle:c.boolean().nullable().optional(),repeat:c.enum(["off","one","all"]).nullable().optional()})}),GC=ue("volume",{state:c.object({level:X.nullable(),muted:c.boolean().nullable()})}),WC=ue("inputSource",{config:c.object({sources:c.array(c.string())}),state:c.object({source:c.string().nullable()})}),KC=ue("startStop",{config:c.object({supportsPause:c.boolean().default(!1)}),state:c.object({state:c.enum(["running","paused","stopped","unknown"])})}),QC=ue("scene",{state:c.object({lastActivated:ee.nullable().optional()})}),YC=ue("camera",{config:c.object({protocols:c.array(c.enum(["rtsp","webrtc","hls","snapshot"]))}),state:c.object({streaming:c.boolean().nullable().optional()})}),XC=ue("sensor",{config:c.object({measurement:jC,unit:c.string()}),state:c.object({value:c.number().nullable(),ts:ee.nullable().optional()})}),eN=ue("binarySensor",{config:c.object({sensorType:OC}),state:c.object({active:c.boolean().nullable(),lastChanged:ee.nullable().optional()})}),tN=ue("battery",{state:c.object({level:X.nullable(),charging:c.boolean().nullable().optional(),low:c.boolean().nullable().optional()})}),rN=ue("energyMeter",{state:c.object({power:c.number().nullable().optional(),energy:c.number().nullable().optional(),voltage:c.number().nullable().optional(),current:c.number().nullable().optional()})}),nN=ue("doorbell",{state:c.object({lastPress:ee.nullable().optional()})}),oN=ue("connectivity",{config:c.object({transport:c.enum(["wifi","thread","zigbee","zwave","ethernet","ble","cloud","matter","unknown"])}),state:c.object({online:c.boolean().nullable(),signal:c.number().nullable().optional()})}),Sk=c.enum(["flash","strobe","pulse","colorFade","colorLoop","candle","rainbow","siren","meter"]),qt=c.object({hue:c.number().min(0).max(360),saturation:X}),Bt=c.number().int().min(20).max(6e5),gh=c.number().int().min(1).max(1e3).nullable().default(null),yh=c.discriminatedUnion("kind",[c.object({kind:c.literal("flash"),count:c.number().int().min(1).max(100).default(3),onMs:Bt.default(300),offMs:Bt.default(300),color:qt.nullable().default(null),brightness:X.nullable().default(null)}),c.object({kind:c.literal("strobe"),hz:c.number().min(.5).max(25).default(8),durationMs:Bt.default(3e3),color:qt.nullable().default(null)}),c.object({kind:c.literal("pulse"),periodMs:Bt.default(2e3),minPct:X.default(5),maxPct:X.default(100),color:qt.nullable().default(null),cycles:gh}),c.object({kind:c.literal("colorFade"),from:qt.nullable().default(null),to:qt,durationMs:Bt.default(2e3),easing:c.enum(["linear","ease"]).default("ease")}),c.object({kind:c.literal("colorLoop"),colors:c.array(qt).min(2).max(16),holdMs:Bt.default(1e3),fadeMs:c.number().int().min(0).max(6e5).default(800),loops:gh,direction:c.enum(["forward","pingpong"]).default("forward")}),c.object({kind:c.literal("candle"),intensity:X.default(50),warmthKelvin:Mr.nullable().default(null),durationMs:Bt.nullable().default(null)}),c.object({kind:c.literal("rainbow"),cycleMs:Bt.default(4e3),saturation:X.default(100),brightness:X.default(100),loops:gh}),c.object({kind:c.literal("siren"),colorA:qt.default({hue:0,saturation:100}),colorB:qt.default({hue:240,saturation:100}),hz:c.number().min(.5).max(10).default(4),durationMs:Bt.nullable().default(null)}),c.object({kind:c.literal("meter"),source:c.enum(["context","usage","cost"]),stops:c.array(c.object({at:c.number().min(0),color:qt})).min(2).max(6).default([{at:0,color:{hue:120,saturation:90}},{at:75,color:{hue:40,saturation:95}},{at:95,color:{hue:0,saturation:95}}])})]),iN=ue("effect",{config:c.object({kinds:c.array(Sk).default(["flash"]),supportsColor:c.boolean().default(!1)}),state:c.object({active:Sk.nullable()})}),aN=c.discriminatedUnion("type",[CC,NC,DC,RC,UC,MC,LC,FC,ZC,qC,BC,VC,JC,HC,GC,WC,KC,QC,YC,XC,eN,tN,rN,nN,oN,iN]),Lr=c.enum(["power","brightness","colorTemperature","color","segmentColor","thermostat","humidity","lock","cover","fan","mode","toggle","range","mediaTransport","volume","inputSource","startStop","scene","camera","sensor","binarySensor","battery","energyMeter","doorbell","connectivity","effect"]),Pk=c.enum(["needs-password"]),sN=c.object({sourceId:c.string(),provider:Yn,providerAccountId:c.string(),nativeId:c.string(),nativeType:c.string().optional(),reachability:c.enum(["local","cloud"]),online:c.boolean(),attention:Pk.nullable().optional(),credentialRef:c.string().nullable().optional(),lastSeen:ee.nullable().optional()}),cN=c.object({id:c.string(),name:c.string(),providerRefs:c.array(c.object({provider:Yn,nativeId:c.string()})).default([])}),lN=c.object({accountId:c.string(),provider:Yn,displayName:c.string(),reachability:c.enum(["local","cloud"]),status:c.enum(["linked","needs_reauth","revoked"]),expiresAt:ee.nullable().optional()}),uN=c.object({id:c.string(),type:Ik,name:c.string(),areaId:c.string().nullable(),manufacturer:c.string().nullable().optional(),model:c.string().nullable().optional(),firmwareVersion:c.string().nullable().optional(),online:c.boolean(),reachability:TC,attention:Pk.nullable().optional(),parentId:c.string().nullable().optional(),members:c.array(c.string()).optional(),sources:c.array(sN).min(1),preferredSourceId:c.string(),capabilities:c.array(aN),updatedAt:ee,raw:c.unknown().optional()}),Ek=c.object({version:c.literal(1),nodeId:c.string(),updatedAt:ee,areas:c.array(cN),accounts:c.array(lN),devices:c.array(uN)}),dN=c.enum(["relay-do-sealed","hub-local"]),d5=c.object({accountId:c.string(),provider:Yn,providerAccountId:c.string(),nodeId:c.string(),credentialLocation:dN,scopes:c.array(c.string()).default([]),status:c.enum(["linked","needs_reauth","revoked"]),displayName:c.string(),expiresAt:ee.nullable().optional(),linkedAt:ee}),wk=c.enum(["open","guarded","locked"]),hh=c.enum(["allow","confirm","deny"]),pN=c.enum(["voice","claude","app","rules"]),p5=c.object({tier:wk.default("open"),perConsumer:c.partialRecord(pN,wk).default({}),perClass:c.partialRecord(Lr,hh).default({}),perDeviceType:c.partialRecord(Ik,hh).default({}),perDevice:c.record(c.string(),hh).default({}),confirmWindowSec:c.number().default(60)}),ve=c.object({}),zk=e=>e.type==="cover"&&(e.config.kind==="garage"||e.config.kind==="door"),bh={power:[{command:"turnOn",params:ve},{command:"turnOff",params:ve},{command:"toggle",params:ve}],brightness:[{command:"setBrightness",params:c.object({level:X})},{command:"adjustBrightness",params:c.object({delta:c.number().min(-100).max(100)})}],colorTemperature:[{command:"setColorTemperature",params:c.object({kelvin:Mr})}],color:[{command:"setColor",params:c.object({hue:c.number().min(0).max(360),saturation:X})}],segmentColor:[{command:"setSegmentColors",voice:!1,params:c.object({segments:c.array(c.object({index:c.number().int().nonnegative(),hue:c.number().min(0).max(360),saturation:X})).min(1).max(512)})}],thermostat:[{command:"setThermostatMode",params:c.object({mode:vh})},{command:"setSetpoint",params:c.object({celsius:Vt})},{command:"setRange",params:c.object({heatCelsius:Vt,coolCelsius:Vt}),gate:e=>e.type==="thermostat"&&e.config.supportsRange}],humidity:[{command:"setHumidity",params:c.object({percent:X}),gate:e=>e.type==="humidity"&&e.config.settable}],lock:[{command:"lock",params:ve},{command:"unlock",params:ve,confirm:!0}],cover:[{command:"open",params:ve,confirm:zk},{command:"close",params:ve},{command:"stop",params:ve},{command:"setPosition",params:c.object({position:X}),confirm:zk,gate:e=>e.type==="cover"&&e.config.supportsPosition},{command:"setTilt",params:c.object({tilt:X}),gate:e=>e.type==="cover"&&e.config.supportsTilt}],fan:[{command:"turnOn",params:ve},{command:"turnOff",params:ve},{command:"setFanSpeed",params:c.object({level:X})},{command:"setFanPreset",params:c.object({preset:c.string()}),gate:e=>e.type==="fan"&&e.config.presets.length>0},{command:"setOscillate",params:c.object({oscillating:c.boolean()}),gate:e=>e.type==="fan"&&e.config.supportsOscillate}],mode:[{command:"setMode",params:c.object({value:c.string()})}],toggle:[{command:"setToggle",params:c.object({on:c.boolean()})}],range:[{command:"setRange",params:c.object({value:c.number()})},{command:"adjustRange",params:c.object({delta:c.number()})}],mediaTransport:[{command:"play",params:ve},{command:"pause",params:ve},{command:"stop",params:ve},{command:"next",params:ve},{command:"previous",params:ve},{command:"seek",params:c.object({positionSec:c.number().nonnegative()})},{command:"setShuffle",params:c.object({on:c.boolean()})},{command:"setRepeat",params:c.object({mode:c.enum(["off","one","all"])})}],volume:[{command:"setVolume",params:c.object({level:X})},{command:"adjustVolume",params:c.object({delta:c.number().min(-100).max(100)})},{command:"setMute",params:c.object({muted:c.boolean()})}],inputSource:[{command:"selectInput",params:c.object({source:c.string()})}],startStop:[{command:"start",params:ve},{command:"stop",params:ve},{command:"pause",params:ve,gate:e=>e.type==="startStop"&&e.config.supportsPause},{command:"resume",params:ve,gate:e=>e.type==="startStop"&&e.config.supportsPause}],scene:[{command:"activate",params:ve}],effect:[{command:"startEffect",params:c.object({spec:yh})},{command:"stopEffect",params:ve}],camera:[{command:"getStream",params:c.object({protocol:c.enum(["rtsp","webrtc","hls"])}),voice:!1,returns:c.object({url:c.string(),token:c.string().optional(),expiresAt:ee.optional()})},{command:"getSnapshot",params:ve,voice:!1,returns:c.object({url:c.string(),expiresAt:ee.optional()})}],sensor:[],binarySensor:[],battery:[],energyMeter:[],doorbell:[],connectivity:[]},fN=new Set(["garageDoor","door","lock"]);function Ak(e,t,n){let o=typeof n.confirm=="function"?n.confirm(t):!!n.confirm,r=fN.has(e.type)&&(bh[t.type]?.some(i=>i.command===n.command)??!1);return o||r}var Tk="devices://graph",mN=[{name:"list_devices",description:"List the smart-home devices connected to this hub, optionally filtered by area, device type, or capability.",inputSchema:{type:"object",properties:{area:{type:"string",description:"Only devices in this area/room (name or id)."},type:{type:"string",description:"Only devices of this type (e.g. light, lock, thermostat)."},capability:{type:"string",description:"Only devices exposing this capability (e.g. power, brightness)."}}}},{name:"get_device",description:"Get one device's full state and capabilities by id.",inputSchema:{type:"object",properties:{deviceId:{type:"string",description:"The device id (e.g. dev_ab12cd34)."}},required:["deviceId"]}},{name:"set_device",description:"Send a command to a device (e.g. capability power / command turnOn). Params are re-validated against the device command registry. Security-sensitive commands (locks, garage doors) are flagged `confirm` in the result.",inputSchema:{type:"object",properties:{deviceId:{type:"string"},capability:{type:"string",description:"The capability to actuate (e.g. power, brightness, lock)."},command:{type:"string",description:"The command (e.g. turnOn, setBrightness, unlock)."},params:{type:"object",description:"Command parameters (e.g. { level: 50 })."},instance:{type:"string",description:"Optional capability instance for multi-instance devices."}},required:["deviceId","capability","command"]}},{name:"run_scene",description:"Activate a scene by device id or by name.",inputSchema:{type:"object",properties:{deviceId:{type:"string",description:"The scene device id."},name:{type:"string",description:"The scene name (resolved against the cached graph)."}}}}],_h="No hub is connected right now, so I can't reach your devices.",jk="I couldn't reach the hub \u2014 please try again.";function Ok(e){let t=e.timeoutMs??5e3,n=new Map,o=null,r=(m,f=!1)=>({content:[{type:"text",text:m}],isError:f});function i(m){return e.send(m)?new Promise(f=>{let g=setTimeout(()=>{n.delete(m.requestId),f(null)},t);typeof g.unref=="function"&&g.unref(),n.set(m.requestId,{resolve:f,timer:g})}):Promise.resolve(null)}async function a(){let m=await i({type:"device_query",requestId:e.newRequestId(),kind:"list"});return m?.ok&&m.result?(o=m.result,o):null}function s(m,f){return m.devices.find(g=>g.id===f)}async function l(m,f){switch(m){case"list_devices":{let g=await a();if(!g)return r(_h,!0);let h=g.devices,b=typeof f.type=="string"?f.type:void 0,$=typeof f.capability=="string"?f.capability:void 0,P=typeof f.area=="string"?f.area:void 0;if(b&&(h=h.filter(I=>I.type===b)),$&&(h=h.filter(I=>I.capabilities.some(j=>j.type===$))),P){let j=g.areas.find(E=>E.id===P||E.name.toLowerCase()===P.toLowerCase())?.id??P;h=h.filter(E=>E.areaId===j)}return r(JSON.stringify({devices:h,areas:g.areas,accounts:g.accounts},null,2))}case"get_device":{let g=typeof f.deviceId=="string"?f.deviceId:"";if(!g)return r("get_device requires a `deviceId`.",!0);let h=await i({type:"device_query",requestId:e.newRequestId(),kind:"get",deviceId:g});return h?h.ok?r(JSON.stringify(h.result??null,null,2)):r(h.error??"I don't know that device.",!0):r(_h,!0)}case"set_device":{let g=typeof f.deviceId=="string"?f.deviceId:"",h=typeof f.capability=="string"?f.capability:"",b=typeof f.command=="string"?f.command:"",$=f.params??{},P=typeof f.instance=="string"?f.instance:void 0;if(!g||!h||!b)return r("set_device requires `deviceId`, `capability`, and `command`.",!0);let I=bh[h]?.find(pt=>pt.command===b);if(!I)return r(`The command "${b}" isn't available for the ${h} capability.`,!0);let j=I.params.safeParse($);if(!j.success)return r("Those command settings weren't understood.",!0);let E=o?s(o,g):void 0,_e=E?.capabilities.find(pt=>pt.type===h),xe=E&&_e?Ak(E,_e,I):void 0,ke=await i({type:"device_command",requestId:e.newRequestId(),deviceId:g,capability:h,instance:P,command:b,params:j.data,consumer:"claude"});if(!ke)return r(jk,!0);let Ye={ok:ke.ok};return xe!==void 0&&(Ye.confirm=xe),ke.verified!==void 0&&(Ye.verified=ke.verified),ke.state!==void 0&&(Ye.state=ke.state),ke.error&&(Ye.error=ke.error),r(JSON.stringify(Ye,null,2),!ke.ok)}case"run_scene":{let g=typeof f.deviceId=="string"?f.deviceId:"",h=typeof f.name=="string"?f.name:"";if(!g&&h){let $=o??await a();if(!$)return r(_h,!0);let P=$.devices.find(I=>(I.type==="scene"||I.type==="sceneController")&&I.name.toLowerCase()===h.toLowerCase());if(!P)return r(`I couldn't find a scene called "${h}".`,!0);g=P.id}if(!g)return r("run_scene requires a `deviceId` or a scene `name`.",!0);let b=await i({type:"device_command",requestId:e.newRequestId(),deviceId:g,capability:"scene",command:"activate",params:{},consumer:"claude"});return b?r(JSON.stringify({ok:b.ok,error:b.error},null,2),!b.ok):r(jk,!0)}default:return r(`unknown device tool: ${m}`,!0)}}function u(){let m=[{uri:Tk,name:"Device graph",description:"The full connected-devices graph.",mimeType:"application/json"}];for(let f of o?.devices??[])m.push({uri:`devices://${f.id}`,name:f.name,description:`${f.type} device`,mimeType:"application/json"});return m}async function d(m){let f=b=>({contents:[{uri:m,mimeType:"application/json",text:JSON.stringify(b,null,2)}]});if(m===Tk){let b=o??await a();return f(b??{error:"No hub connected."})}let g=m.startsWith("devices://")?m.slice(10):"";if(!g)return f({error:`Unknown resource: ${m}`});let h=await i({type:"device_query",requestId:e.newRequestId(),kind:"get",deviceId:g});return f(h?h.ok?h.result??null:{error:h.error??"Unknown device."}:{error:"No hub connected."})}function p(m){if(m.type==="device_result"){let f=n.get(m.requestId);return f&&(clearTimeout(f.timer),n.delete(m.requestId),f.resolve(m)),!0}return m.type==="devices.update"?(o=m.doc,e.notifyResourcesChanged?.(),!0):!1}return{tools:mN,callTool:l,listResources:u,readResource:d,onHubMessage:p}}import{existsSync as Ck,readFileSync as gN}from"node:fs";import Nk from"node:os";import Nc from"node:path";var $h=Oi(),Rk=Ac($h.dir),xh=e=>Nc.join(Rk.sessionsDir,`${e}.json`),Oc=()=>Ci($h.dir),Cc=e=>$h.beacon?.port??e,Dk=()=>mh({file:Rk.activeUserFile}),hN=e=>!!e&&/^\$\{.*\}$/.test(e),Xn=e=>e&&!hN(e)?e:void 0;function vN(){return fk({isDevBuild:gk()===null})}function Uk(e={}){let t=e.voice??vN(),n=Xn(process.env.BRIDGE_SESSION_ID);if(n){if(!t)return null;let f=Xn(process.env.CLAUDE_CODE_SESSION_ID)??n,g=Xn(process.env.BRIDGE_SESSION_NAME)??n,h=Xn(process.env.BRIDGE_HUB_TOKEN_FILE)??Oc(),b={id:n,name:g,hubPort:Cc(jc),hubTokenFile:h,claudeSessionId:f,voice:!0},$=xh(f);if(Ck($))return b;let P=Dk()?.sub,I=Xn(process.env.CLAUDE_CODE_SESSION_ID)?{transcriptPath:Nc.join(Nk.homedir(),".claude","projects",process.cwd().replace(/[^A-Za-z0-9]/g,"-"),`${f}.jsonl`)}:{};try{Ft($,JSON.stringify({id:n,name:g,hubPort:Cc(jc),hubTokenFile:h,claudeSessionId:f,cwd:process.cwd(),...I,voice:!0,...P?{sub:P}:{}}),384)}catch{}return{...b,selfWritten:!0,...P?{sub:P}:{}}}let o=Xn(process.env.CLAUDE_CODE_SESSION_ID);if(!o)return null;let r=xh(o);if(Ck(r))try{let f=JSON.parse(gN(r,"utf8"));if(typeof f.id=="string"&&f.id){if(f.voice!==!0&&!t)return null;if(f.voice!==!0)try{Ft(r,JSON.stringify({...f,voice:!0}),384)}catch{}return{id:f.id,name:typeof f.name=="string"?f.name:f.id,hubPort:Number(f.hubPort??Cc(jc)),hubTokenFile:typeof f.hubTokenFile=="string"?f.hubTokenFile:Oc(),claudeSessionId:o,voice:!0,...typeof f.sub=="string"&&f.sub?{sub:f.sub}:{}}}}catch{}if(!t)return null;let i=process.cwd(),a=Nc.basename(i)||"session",s=kk(),l=`${a}@${s}~${o.slice(0,8)}`,u=`${a} (${s})`,d=Cc(Ri()),p=Nc.join(Nk.homedir(),".claude","projects",i.replace(/[^A-Za-z0-9]/g,"-"),`${o}.jsonl`),m=Dk()?.sub;try{Ft(r,JSON.stringify({id:l,name:u,hubPort:d,hubTokenFile:Oc(),claudeSessionId:o,transcriptPath:p,cwd:i,voice:!0,...m?{sub:m}:{}}),384)}catch{}return{id:l,name:u,hubPort:d,hubTokenFile:Oc(),selfWritten:!0,claudeSessionId:o,voice:!0,...m?{sub:m}:{}}}function Mk(e){e?.selfWritten&&e.claudeSessionId&&Qn(xh(e.claudeSessionId))}import{readFileSync as yR}from"node:fs";var UD=xt(CS(),1),MD=xt(Bc(),1),LD=xt(ro(),1),FD=xt(Oh(),1),ZD=xt(Dh(),1),qD=xt(Zh(),1),Vi=xt(Gc(),1),BD=xt(ZS(),1);var VD=c.discriminatedUnion("kind",[c.object({kind:c.literal("literal"),hue:c.number().min(0).max(360),saturation:X}),c.object({kind:c.literal("token"),token:c.enum(["main","session"])})]),qS=c.enum(["main","session","hold","off"]),BS=c.object({color:VD.optional(),brightnessPct:X.nullable().optional(),brightnessScale:c.number().min(0).max(2).optional(),kelvin:Mr.nullable().optional(),power:c.boolean().optional()});var JD=c.enum(["added","removed","permission_request","started","ended","working","finished","error","idle","needs_permission","promptSubmitted","toolStart","toolEnd","subagentStart","subagentFinished","compacting","resumed","aborted","contextLow","contextCritical","needsInput","planReady","rateLimited","compactDone","permissionDenied","taskCompleted","usageHigh","modePlan","modeAuto","modeBypass","modeNormal","modelChanged","workflowStarted","sandboxEscalation","reviewChanged","costHigh","longRunning"]),Bh=c.enum(["claude","codex"]);var HD=c.discriminatedUnion("kind",[c.object({kind:c.literal("deviceState"),deviceId:c.string(),capability:c.string(),instance:c.string().optional(),op:c.enum(["eq","neq","gt","lt","gte","lte","changed"]).default("changed"),path:c.string().optional(),value:c.unknown().optional()}),c.object({kind:c.literal("edge"),deviceId:c.string(),event:c.string()}),c.object({kind:c.literal("session"),event:JD,repo:c.string().optional(),sessionId:c.string().optional(),agent:Bh.optional()}),c.object({kind:c.literal("schedule"),cron:c.string()})]),GD=c.object({deviceId:c.string(),capability:c.string(),instance:c.string().optional(),op:c.enum(["eq","neq","gt","lt","gte","lte"]),path:c.string().optional(),value:c.unknown()}),WD=c.discriminatedUnion("kind",[c.object({kind:c.literal("device"),deviceId:c.string(),capability:c.string(),instance:c.string().optional(),command:c.string(),params:c.unknown().optional()}),c.object({kind:c.literal("session"),sessionId:c.string(),text:c.string()}),c.object({kind:c.literal("notify"),title:c.string(),body:c.string()}),c.object({kind:c.literal("intent"),deviceId:c.string(),instance:c.string().optional(),look:BS.optional(),effect:yh.optional(),returnTo:qS.optional(),hold:c.boolean().default(!1)})]),J5=c.object({id:c.string(),name:c.string().default(""),enabled:c.boolean().default(!0),trigger:HD,conditions:c.array(GD).default([]),actions:c.array(WD).min(1),allowSecurity:c.boolean().default(!1)});var Kc=c.enum(["started","ended","working","finished","error","idle","needs_permission","subagentFinished","compacting","resumed","contextLow","contextCritical","needsInput","planReady","rateLimited","subagentStart","compactDone","permissionDenied","taskCompleted","usageHigh","modePlan","modeAuto","modeBypass","modeNormal","modelChanged","workflowStarted","sandboxEscalation","reviewChanged","costHigh","longRunning"]),VS=c.object({id:c.string(),name:c.string(),cwd:c.string(),online:c.boolean().default(!0),state:Kc.optional(),bridgeId:c.string().optional(),bridgeName:c.string().optional(),agent:Bh.optional()}),JS=c.enum(["allow","deny"]),Q5=c.object({sessionId:c.string().nullable(),text:c.string(),ts:ee.optional()}),Qc=c.object({latestReply:c.string().nullable(),ts:c.number().nullable(),cursor:c.number().int().nonnegative(),hasMore:c.boolean()}),Y5=c.object({requestId:c.string(),behavior:JS,ts:ee.optional()}),X5=c.object({id:c.string(),sessionId:c.string().nullable(),args:c.unknown(),ts:ee.optional()}),KD=c.object({type:c.literal("register"),userToken:c.string().optional(),sessions:c.array(VS),claudeSessionId:c.string().optional()}),QD=c.object({type:c.literal("sessions.update"),sessions:c.array(VS)}),YD=c.object({type:c.literal("prompt"),sessionId:c.string(),requestId:c.string(),text:c.string(),ts:ee.optional()});var XD=c.object({type:c.literal("reply"),sessionId:c.string(),requestId:c.string(),text:c.string(),seq:c.number().int().nonnegative().optional(),final:c.boolean().optional(),ts:ee.optional()}),eR=c.object({type:c.literal("permission_request"),sessionId:c.string(),requestId:c.string(),tool:c.string(),description:c.string(),preview:c.string(),ts:ee.optional()}),tR=c.object({type:c.literal("permission_verdict"),sessionId:c.string(),requestId:c.string(),behavior:JS,ts:ee.optional()}),rR=c.object({type:c.literal("command"),id:c.string(),requestId:c.string(),sessionId:c.string().nullable(),args:c.unknown(),ts:ee.optional()}),nR=c.object({type:c.literal("command_result"),requestId:c.string(),id:c.string(),sessionId:c.string().nullable().optional(),result:c.unknown().optional(),error:c.string().optional(),ts:ee.optional()}),oR=c.object({type:c.literal("devices.update"),doc:Ek}),iR=c.object({type:c.literal("device_command"),requestId:c.string(),deviceId:c.string(),sourceId:c.string().nullable().optional(),ruleId:c.string().optional(),capability:Lr,instance:c.string().optional(),command:c.string(),params:c.unknown(),consumer:c.enum(["voice","claude","app","rules"]),sessionId:c.string().optional(),confirm:c.boolean().optional()}),aR=c.object({type:c.literal("device_query"),requestId:c.string(),kind:c.enum(["list","get"]),deviceId:c.string().optional()}),sR=c.object({type:c.literal("device_result"),requestId:c.string(),deviceId:c.string().optional(),ok:c.boolean(),verified:c.boolean().optional(),state:c.unknown().optional(),result:c.unknown().optional(),error:c.string().optional()}),cR=c.object({type:c.literal("device_event"),deviceId:c.string(),capability:Lr,instance:c.string().optional(),event:c.string(),payload:c.unknown().optional(),ts:ee}),lR=c.object({type:c.literal("device_source_event"),provider:Yn,providerAccountId:c.string(),nativeId:c.string(),patch:c.array(c.object({type:Lr,instance:c.string().optional(),state:c.unknown()})).optional(),edge:c.object({capability:Lr,instance:c.string().optional(),event:c.string(),payload:c.unknown().optional()}).optional(),online:c.boolean().optional(),ts:ee}),uR=c.object({type:c.literal("entitlement"),plan:c.enum(["free","paid"]),planStatus:c.enum(["active","past_due","canceled"]).optional(),serviceOk:c.boolean().optional(),capture:c.object({telemetry:c.boolean(),transcripts:c.boolean()}),policyVersion:c.string(),ts:ee}),dR=c.object({type:c.literal("device_config"),version:c.number().int().nonnegative(),config:c.record(c.string(),c.unknown()),ts:ee}),pR=c.object({type:c.literal("disconnect"),code:c.union([c.literal(1012),c.literal(4402),c.literal(4426),c.number().int().min(1e3).max(4999)]),reason:c.string().max(120),ts:ee}),fR=c.object({type:c.literal("device_audit"),requestId:c.string(),consumer:c.enum(["voice","claude","app","rules"]),deviceId:c.string(),ruleId:c.string().optional(),capability:Lr,command:c.string(),params:c.unknown(),ok:c.boolean(),confirmRequired:c.boolean(),confirmedBy:c.string().optional(),error:c.string().optional(),ts:ee}),mR=64,gR=c.object({type:c.literal("session_state"),sessionId:c.string(),state:Kc,event:c.string(),ts:ee,transitions:c.array(c.object({state:Kc,event:c.string(),ts:ee})).max(mR).optional()}),hR=c.object({type:c.literal("notification"),sessionId:c.string(),event:Kc,repo:c.string().optional(),title:c.string().optional(),body:c.string().optional()}),vR=c.discriminatedUnion("type",[KD,QD,YD,XD,eR,tR,rR,nR,oR,iR,aR,sR,cR,lR,fR,uR,pR,dR,gR,hR]),HS=e=>vR.parse(typeof e=="string"?JSON.parse(e):e);var GS=100;function WS(e){let t=null,n=!1,o=1e3,r=null,i=[],a=()=>"endpoint"in e?e.endpoint():{port:e.port,tokenFile:e.tokenFile},s=p=>{try{return yR(p,"utf8").trim()}catch(m){return console.error(`[channel] cannot read hub token file ${p}:`,m),""}},l=p=>(i.push(p),i.length>GS&&(i.shift(),console.error(`[channel] outbound buffer at cap (${GS}); dropped oldest frame`)),!0),u=p=>{for(;i.length>0&&p.readyState===Vi.default.OPEN;){let m=i.shift();m&&p.send(JSON.stringify(m))}},d=()=>{if(n)return;let{port:p,tokenFile:m}=a(),f=s(m),g=new Vi.default(`ws://${e.host??"127.0.0.1"}:${p}`,{headers:{"x-bridge-hub-token":f}});t=g;let h=!0,b=null;g.on("open",()=>{o=1e3;let $=e.hello?.();$&&g.send(JSON.stringify($)),u(g),h=!0,b=setInterval(()=>{if(!h){g.terminate();return}h=!1;try{g.ping()}catch{}},3e4)}),g.on("pong",()=>{h=!0}),g.on("message",$=>{try{e.onMessage(HS($.toString()))}catch(P){console.error("[channel] bad hub frame:",P)}}),g.on("error",$=>console.error("[channel] hub ws error:",$)),g.on("close",()=>{if(b&&(clearInterval(b),b=null),t===g&&(t=null),n)return;let $=o;o=Math.min(o*2,5e3),r=setTimeout(d,$)})};return d(),{send:p=>{if(n)return!1;let m=t;return m&&m.readyState===Vi.default.OPEN&&i.length===0?(m.send(JSON.stringify(p)),!0):l(p)},close:()=>{n=!0,r&&clearTimeout(r),t?.close()}}}var Q=e=>e;var KS=Q({id:"ActivateScene",target:"hub",customHandler:!0,scaffold:!0,carrier:"scene",utterances:["activate {scene} scene","activate scene {scene}","run scene {scene}","start {scene} scene"],slots:[{name:"scene",type:"SceneName",dynamic:!0,elicitationPrompts:["Which scene?"]}],customTypes:[{name:"SceneName",values:["movie night","good morning","bedtime","focus"]}],deviceCommands:[{capability:"scene",command:"activate"}],args:c.object({scene:c.string()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({scene:e.scene??""}),ackSpeech:()=>"",speak:()=>""});var QS=Q({id:"Attach",target:"hub",skillLocal:!0,carrier:"attach",utterances:["attach to {target}","attach","switch to {target}","use {target}"],slots:[{name:"target",type:"SessionName",required:!0,dynamic:!0,elicitationPrompts:["Which session?","Which one would you like to attach to?"]}],customTypes:[{name:"SessionName",values:["one","two","three","four","five","six","seven","eight","nine","ten"]}],args:c.object({target:c.string()}),result:c.object({name:c.string()}),precheck:(e,t)=>t.sessionCount===0?"No sessions are running yet.":null,fromSlots:e=>({target:e.target??""}),ackSpeech:()=>"",speak:e=>`Entered ${e.name}.`});var YS=Q({id:"AttachBridge",target:"hub",skillLocal:!0,attachLevel:"bridge",carrier:"bridge",utterances:["attach to bridge {bridge}","switch to bridge {bridge}","open bridge {bridge}","go to bridge {bridge}"],slots:[{name:"bridge",type:"BridgeName",required:!0,dynamic:!0,elicitationPrompts:["Which bridge?","Which bridge would you like to attach to?"]}],customTypes:[{name:"BridgeName",values:["one","two","three","four","five","six","seven","eight","nine","ten"]}],args:c.object({target:c.string()}),result:c.object({name:c.string()}),precheck:(e,t)=>(t.bridgeCount??0)===0?"No bridges have a running session yet.":null,fromSlots:e=>({target:e.bridge??""}),ackSpeech:()=>"",speak:e=>`Entered ${e.name}.`});var XS=Q({id:"ControlDevice",target:"hub",customHandler:!0,scaffold:!0,carrier:"turn",utterances:["turn on {device}","turn off {device}","turn on the {device}","turn off the {device}","toggle {device}"],slots:[{name:"device",type:"DeviceName",dynamic:!0,elicitationPrompts:["Which device?"]}],customTypes:[{name:"DeviceName",values:["light","lamp","fan","plug","heater"]}],deviceCommands:[{capability:"power",command:"turnOn"},{capability:"power",command:"turnOff"},{capability:"power",command:"toggle"}],args:c.object({device:c.string()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({device:e.device??""}),ackSpeech:()=>"",speak:()=>""});var ew=Q({id:"ControlGroup",target:"hub",customHandler:!0,scaffold:!0,carrier:"group",utterances:["turn on the {group} group","turn off the {group} group","turn off {group} group"],slots:[{name:"group",type:"GroupName",dynamic:!0,elicitationPrompts:["Which group or room?"]}],customTypes:[{name:"GroupName",values:["living room","bedroom","kitchen","office","studio"]}],deviceCommands:[{capability:"power",command:"turnOn"},{capability:"power",command:"turnOff"}],args:c.object({group:c.string()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({group:e.group??""}),ackSpeech:()=>"",speak:()=>""});var tw=e=>`In the current working directory, ${e}. Keep the answer brief enough to be read aloud.`;var rw=Q({id:"GitStatus",target:"session",carrier:"git",utterances:["git status","what's the git status","any uncommitted changes in git"],slots:[],args:c.object({}),result:c.object({}),fromSlots:()=>({}),ackSpeech:()=>"Asking git status.",speak:()=>"",render:()=>tw("run git status and report the current branch and any uncommitted changes")});var bR=c.object({index:c.number().int().positive(),name:c.string(),id:c.string(),sessionCount:c.number().int().nonnegative()}),nw=Q({id:"ListBridges",target:"hub",carrier:"bridge",utterances:["list bridges","list my bridges","what bridges do I have","what bridges are running","which bridges are running"],slots:[],args:c.object({}),result:c.object({bridges:c.array(bR)}),speaksResult:!0,cacheSource:"bridges",providesBridgeCatalog:!0,fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>{let t=e.bridges.length;if(t===0)return"No bridges have a running session.";let n=e.bridges.map(o=>`${o.index}, ${o.name}`).join("; ");return`${t} bridge${t===1?"":"s"}: ${n}.`}});var _R=c.object({name:c.string(),type:c.string(),room:c.string().nullable(),online:c.boolean()}),xR=c.object({provider:c.string(),status:c.string()}),ow=Q({id:"ListDevices",target:"hub",carrier:"device",utterances:["list devices","list my devices","what devices do I have","what devices are online"],slots:[],args:c.object({}),result:c.object({devices:c.array(_R),accounts:c.array(xR)}),speaksResult:!0,cacheSource:"devices",fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>{let t=e.accounts.filter(i=>i.status!=="linked"),n=t.length?` ${t.map(i=>`${i.provider} needs re-linking`).join("; ")}.`:"",o=e.devices.length;if(o===0)return`No devices are connected.${n}`;let r=e.devices.filter(i=>i.online).length;return`${o} device${o===1?"":"s"}, ${r} online.${n}`}});var $R=c.object({index:c.number().int().positive(),name:c.string(),id:c.string()}),iw=Q({id:"ListSessions",target:"hub",carrier:"session",utterances:["list sessions","list my sessions","what sessions do I have","what sessions are running"],slots:[],args:c.object({}),result:c.object({sessions:c.array($R)}),speaksResult:!0,cacheSource:"sessions",providesSessionCatalog:!0,fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>{let t=e.sessions.length;if(t===0)return"No sessions are running.";let n=e.sessions.map(o=>`${o.index}, ${o.name}`).join("; ");return`${t} session${t===1?"":"s"}: ${n}.`}});var aw=Q({id:"ReadMore",target:"hub",carrier:"more",utterances:["read more","continue reading","keep reading"],slots:[],args:c.object({}),result:Qc,speaksResult:!0,cacheSource:"output",fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>e.latestReply?e.hasMore?`${e.latestReply} Say read more to continue.`:e.latestReply:"That's the end of the output."});var sw=Q({id:"ReadOutput",target:"hub",carrier:"output",utterances:["read output","read the output","what's the output","read reply","read the reply","what's the reply","read the last reply","read it","replies","read replies","dev replies","any replies","latest reply"],slots:[],args:c.object({}),result:Qc,speaksResult:!0,cacheSource:"output",fromSlots:()=>({}),ackSpeech:()=>"",speak:e=>e.latestReply?e.hasMore?`${e.latestReply} Say read more to continue.`:e.latestReply:"No output yet."});var kR=c.object({index:c.number().int().positive(),name:c.string(),id:c.string(),sessionCount:c.number().int().nonnegative()}),cw=Q({id:"RenameBridge",target:"hub",relayMutation:!0,customHandler:!0,carrier:"bridge",utterances:["rename bridge {bridge}","rename a bridge","rename this bridge","rename the bridge","rename this bridge to {name}","rename the bridge to {name}","call the bridge {name}"],slots:[{name:"bridge",type:"BridgeName",dynamic:!0},{name:"name",type:"AMAZON.SearchQuery",allowFreeText:!0}],args:c.object({name:c.string(),bridgeId:c.string().optional()}),result:c.object({bridges:c.array(kR)}),providesBridgeCatalog:!0,precheck:e=>e.name.trim()?null:"What would you like to call it?",fromSlots:e=>({name:(e.name??"").trim()}),ackSpeech:e=>`Okay, I'll call it ${e.name}.`,speak:()=>""});var SR=c.object({index:c.number().int().positive(),name:c.string(),id:c.string()}),lw=Q({id:"RenameSession",target:"hub",relayMutation:!0,customHandler:!0,carrier:"rename",utterances:["rename","rename a session","rename this session","rename the session","rename it","rename {target}","rename session {target}","rename to {name}","rename this session to {name}","call it {name}"],slots:[{name:"target",type:"SessionName",dynamic:!0},{name:"name",type:"AMAZON.SearchQuery",allowFreeText:!0}],args:c.object({name:c.string()}),result:c.object({sessions:c.array(SR)}),providesSessionCatalog:!0,precheck:e=>e.name.trim()?null:"What would you like to call it?",fromSlots:e=>({name:(e.name??"").trim()}),ackSpeech:e=>`Okay, I'll call it ${e.name}.`,speak:()=>""});var uw=Q({id:"Return",target:"hub",skillLocal:!0,clearsAttach:!0,carrier:"return",utterances:["return","go back","back to the main menu","main menu","leave the session","leave this session"],slots:[],args:c.object({}),result:c.object({}),fromSlots:()=>({}),ackSpeech:()=>"",speak:()=>"Back at the main menu."});var dw=Q({id:"SetBrightness",target:"hub",customHandler:!0,scaffold:!0,carrier:"brightness",utterances:["set brightness of {device} to {level}","set {device} brightness to {level}","dim {device} to {level}"],slots:[{name:"device",type:"DeviceName",dynamic:!0,elicitationPrompts:["Which device?"]},{name:"level",type:"AMAZON.NUMBER",elicitationPrompts:["What level, 0 to 100?"]}],customTypes:[{name:"DeviceName",values:["light","lamp","fan","plug","heater"]}],deviceCommands:[{capability:"brightness",command:"setBrightness"}],args:c.object({device:c.string(),level:c.number()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({device:e.device??"",level:Number(e.level??0)}),ackSpeech:()=>"",speak:()=>""});var pw=Q({id:"SetTemperature",target:"hub",customHandler:!0,scaffold:!0,carrier:"temperature",utterances:["set temperature of {device} to {temperature}","set {device} temperature to {temperature}","set {device} to {temperature} degrees"],slots:[{name:"device",type:"DeviceName",dynamic:!0,elicitationPrompts:["Which thermostat?"]},{name:"temperature",type:"AMAZON.NUMBER",elicitationPrompts:["What temperature?"]}],customTypes:[{name:"DeviceName",values:["light","lamp","fan","plug","heater"]}],deviceCommands:[{capability:"thermostat",command:"setSetpoint"}],args:c.object({device:c.string(),temperature:c.number()}),result:c.object({ok:c.boolean()}),fromSlots:e=>({device:e.device??"",temperature:Number(e.temperature??0)}),ackSpeech:()=>"",speak:()=>""});var fw=[KS,QS,YS,XS,ew,rw,nw,ow,iw,aw,sw,cw,lw,uw,dw,pw],mw=new Map(fw.map(e=>[e.id,e])),_3=new Map(fw.map(e=>[`${e.id}Intent`,e]));function gw(e){if(e.type==="prompt")return e.text;let t=mw.get(e.id);if(!t?.render)throw new Error(`channel got command "${e.id}" with no render() \u2014 not a session-target command`);return t.render(t.args.parse(e.args))}var we=Uk();process.on("exit",()=>Mk(we));process.on("SIGINT",()=>process.exit(0));process.on("SIGTERM",()=>process.exit(0));var Jr=new zc({name:"alexa-bridge-channel",version:"0.0.0"},{capabilities:{experimental:{"claude/channel":{},"claude/channel/permission":{}},tools:{},resources:{}},instructions:'Messages from the Alexa bridge arrive as <channel source="alexa" requestId="...">. Carry them out in this session, then call the `reply` tool with that requestId and a short, spoken-friendly summary of the result. Smart-home devices connected to this hub are available via the list_devices / get_device / set_device / run_scene tools and the devices://graph resource.'}),Vh=(e,t)=>{Jr.notification({method:e,params:t})},hw=we?{id:we.id,name:we.name,cwd:process.cwd(),online:!0}:null,bw=Oi(),vw=we?.hubPort??bw.beacon?.port??Ri(),IR=we?.hubTokenFile??Ci(bw.dir),Yc=!!we||zR(IR),Ji=null,Hi=Ok({send:e=>Ji?.send(e)??!1,notifyResourcesChanged:()=>Vh("notifications/resources/updated",{uri:"devices://graph"}),newRequestId:()=>wR()});Yc&&(Ji=WS({endpoint:()=>{let e=Oi({fresh:!0});return{port:we?.hubPort??e.beacon?.port??Ri(),tokenFile:we?.hubTokenFile??Ci(e.dir)}},hello:()=>hw?{type:"register",sessions:[hw],...we?.claudeSessionId?{claudeSessionId:we.claudeSessionId}:{}}:null,onMessage:e=>{if(!Hi.onHubMessage(e))switch(e.type){case"prompt":case"command":Vh("notifications/claude/channel",{content:gw(e),meta:{requestId:e.requestId}});break;case"permission_verdict":Vh("notifications/claude/channel/permission",{request_id:e.requestId,behavior:e.behavior});break;default:break}}}));Jr.setRequestHandler(fm,async()=>({tools:[...Yc?Hi.tools:[],...we?[{name:"reply",description:"Send a short, spoken-friendly result back to the Alexa bridge.",inputSchema:{type:"object",properties:{requestId:{type:"string",description:"The requestId from the channel tag."},text:{type:"string",description:"A concise result to read aloud."}},required:["requestId","text"]}}]:[]]}));Jr.setRequestHandler(am,async()=>({resources:Yc?Hi.listResources():[]}));Jr.setRequestHandler(cm,async e=>await Hi.readResource(e.params.uri));var yw=0;Jr.setRequestHandler(Xo,async e=>{let t=e.params.name;if(t==="list_devices"||t==="get_device"||t==="set_device"||t==="run_scene")return await Hi.callTool(t,e.params.arguments??{});if(t==="reply"){let n=Ji;if(!we||!n)return{content:[{type:"text",text:"noop (not a bridge session)"}]};let o=e.params.arguments??{},r=o.requestId;return r?n.send({type:"reply",sessionId:we.id,requestId:r,text:o.text??"",seq:yw,ts:Date.now()})?(yw+=1,{content:[{type:"text",text:"sent"}]}):{content:[{type:"text",text:"Could not deliver the reply to the hub (link down); please retry."}],isError:!0}:{content:[{type:"text",text:'reply requires the `requestId` from the channel tag (e.g. <channel source="alexa" requestId="\u2026">).'}],isError:!0}}throw new Error(`unknown tool: ${e.params.name}`)});if(we&&Ji){let e=Ji,t=c.object({method:c.literal("notifications/claude/channel/permission_request"),params:c.object({request_id:c.string(),tool_name:c.string(),description:c.string(),input_preview:c.string().optional()})});Jr.setNotificationHandler(t,async({params:n})=>{e.send({type:"permission_request",sessionId:we.id,requestId:n.request_id,tool:n.tool_name,description:n.description,preview:n.input_preview??"",ts:Date.now()})||console.error(`[channel] could not relay permission_request ${n.request_id} to the hub (link down)`)})}await Jr.connect(new Pc);console.error(we?`[channel] ${we.id} connected to hub :${vw}`:Yc?`[channel] device tools active (no bridge handshake) \u2014 hub :${vw}`:"[channel] dormant \u2014 no hub configured on this machine");