mppx 0.9.3 → 0.10.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.
package/dist/cli/cli.js CHANGED
@@ -1,8 +1,8 @@
1
- import*as e from"node:fs";import t,{existsSync as n,mkdirSync as r,readFileSync as i,writeFileSync as a}from"node:fs";import{createRequire as o}from"node:module";import*as s from"node:path";import c,{dirname as l,join as u}from"node:path";import{z as d,z as f}from"zod";import*as p from"node:child_process";import{execFile as m}from"node:child_process";import{createHash as h,randomUUID as g}from"node:crypto";import*as _ from"node:util";import*as v from"node:zlib";import*as y from"node:os";import b,{homedir as x}from"node:os";import*as S from"node:fs/promises";import C from"node:fs/promises";import{PassThrough as w}from"node:stream";import{fileURLToPath as T,pathToFileURL as E}from"node:url";import*as D from"zod/v4";import{AbiParameters as O,Base64 as k,Bytes as A,Hash as ee,Hex as j,Json as te,Signature as M}from"ox";import{createClient as N,createTransport as ne,custom as re,encodeFunctionData as ie,erc20Abi as ae,formatUnits as oe,getAbiItem as P,getAddress as se,hashTypedData as ce,http as le,isAddress as ue,isAddressEqual as de,parseUnits as F}from"viem";import{generatePrivateKey as fe,parseAccount as pe,privateKeyToAccount as me}from"viem/accounts";import{tempo as he,tempoModerato as ge}from"viem/tempo/chains";import{z as _e}from"zod/mini";import{createParser as ve}from"eventsource-parser";import*as ye from"node:readline";import{prepareTransactionRequest as I,readContract as be,sendCallsSync as xe,sendTransactionSync as Se,signTransaction as Ce,signTypedData as we,waitForTransactionReceipt as Te}from"viem/actions";import{Abis as Ee,Account as De,Actions as Oe,Addresses as ke,TokenId as Ae,Transaction as je,withFeePayer as Me}from"viem/tempo";import*as Ne from"viem/chains";import{tempo as Pe}from"viem/chains";import{Channel as Fe,KeyAuthorization as Ie,SignatureEnvelope as Le,TempoAddress as Re,TxEnvelopeTempo as ze}from"ox/tempo";import{defineToken as Be}from"viem/tokens";var Ve=Object.defineProperty,He=Object.getOwnPropertyDescriptor,Ue=Object.getOwnPropertyNames,We=Object.prototype.hasOwnProperty,L=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},Ge=(e,t)=>{let n={};for(var r in e)Ve(n,r,{get:e[r],enumerable:!0});return t||Ve(n,Symbol.toStringTag,{value:`Module`}),n},Ke=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=Ue(t),a=0,o=i.length,s;a<o;a++)s=i[a],!We.call(e,s)&&s!==n&&Ve(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=He(t,s))||r.enumerable});return e},qe=(e,t,n)=>(Ke(e,t,`default`),n&&Ke(n,t,`default`));function Je(){let t=process.env.npm_config_user_agent??``,n=process.env.npm_execpath??``,r=(()=>{if(!process.argv[1])return``;try{return e.realpathSync(process.argv[1])}catch{return process.argv[1]}})();return t.includes(`pnpm`)?`pnpm`:t.includes(`bun`)?`bun`:t.startsWith(`npm/`)?`npm`:n.includes(`pnpm`)?`pnpm`:n.includes(`bun`)?`bun`:n.includes(`npm`)?`npm`:r.includes(`/.pnpm/`)||r.includes(`\\.pnpm\\`)?`pnpm`:r.includes(`/.bun/`)||r.includes(`\\bun\\`)?`bun`:`npm`}function Ye(){let e=Je();return e===`pnpm`?`pnpx`:e===`bun`?`bunx`:`npx`}function Xe(e){let t=Je();return t===`pnpm`?{args:[`add`,`--global`,`${e}@latest`],command:`pnpm`}:t===`bun`?{args:[`add`,`--global`,`${e}@latest`],command:`bun`}:{args:[`install`,`--global`,`${e}@latest`],command:`npm`}}var Ze=L((()=>{}));function Qe(e,t={}){if(mt())return;let n=nt(e,t);if(!n?.check||!n.current)return;let r=ct(n.key),i=lt(r),a=Date.now(),o=Math.max(0,t.interval??ht);if((!i||a-i.checkedAt>=o)&&dt(r,a,i?.latest,t.binary),!(!i?.latest||!tt(i.latest,n.current)))return{current:n.current,latest:i.latest,name:n.name}}async function $e(e,t={}){let n=nt(e,t);if(!n?.check||!n.current)return;let r=await n.check({current:n.current,name:e,...n.package?{package:n.package}:void 0});!r||!ot(r)||ut(ct(n.key),{checkedAt:Date.now(),latest:r})}async function et(e,t={}){let n=nt(e,t);if(!n?.install)throw Error(`No update installer is configured for '${e}'.`);let r=lt(ct(n.key));return await n.install({...n.current?{current:n.current}:void 0,...r?.latest?{latest:r.latest}:void 0,name:e,...n.package?{package:n.package}:void 0}),{...n.command?{command:n.command}:void 0,...n.deferred?{deferred:!0}:void 0,name:n.name}}function tt(e,t){let n=ot(e),r=ot(t);if(!n||!r)return!1;for(let e of[`major`,`minor`,`patch`]){if(n[e]>r[e])return!0;if(n[e]<r[e])return!1}let i=n.prerelease,a=r.prerelease;if(i.length===0)return a.length>0;if(a.length===0)return!1;let o=Math.max(i.length,a.length);for(let e=0;e<o;e++){let t=i[e],n=a[e];if(t===void 0)return!1;if(n===void 0)return!0;if(t!==n)return typeof t==`bigint`&&typeof n==`string`?!1:typeof t==`string`&&typeof n==`bigint`||t>n}return!1}function nt(e,t){let n=rt(e),r=t.package??n?.name;if(r&&!st(r))return;let i=t.version??n?.version,a=r?Xe(r):void 0,o=t.check??(r?()=>at(r):void 0),s=t.install??(a?()=>pt(a.command,a.args):void 0);if(!(!o&&!s))return{...o?{check:o}:void 0,...a&&!t.install?{command:`${a.command} ${a.args.join(` `)}`}:void 0,...i?{current:i}:void 0,...t.deferred?{deferred:!0}:void 0,...s?{install:s}:void 0,key:r??e,name:r??e,...r?{package:r}:void 0}}function rt(t){let n=(()=>{if(process.argv[1])try{return e.realpathSync(process.argv[1])}catch{return}})();if(!n)return;let r=s.dirname(n);for(;;){try{let n=JSON.parse(e.readFileSync(s.join(r,`package.json`),`utf8`));if(typeof n.name==`string`&&typeof n.version==`string`&&it(n,t))return{name:n.name,version:n.version}}catch{}let n=s.dirname(r);if(n===r)return;r=n}}function it(e,t){return e.name===t||typeof e.bin==`object`&&e.bin!==null&&t in e.bin?!0:typeof e.bin!=`string`||typeof e.name!=`string`?!1:e.name.split(`/`).pop()===t}async function at(e){let t=process.env.npm_config_registry||`https://registry.npmjs.org`,n=t.endsWith(`/`)?t:`${t}/`,r=await fetch(new URL(encodeURIComponent(e),n),{headers:{accept:`application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*`},signal:AbortSignal.timeout(1e4)});if(!r.ok)return;let i=(await r.json())[`dist-tags`]?.latest;return typeof i==`string`?i:void 0}function ot(e){let t=e.match(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/);if(!t)return;let n=[];for(let e of t[4]?.split(`.`)??[]){if(!/^\d+$/.test(e)){n.push(e);continue}if(e.length>1&&e.startsWith(`0`))return;n.push(BigInt(e))}return{major:BigInt(t[1]),minor:BigInt(t[2]),patch:BigInt(t[3]),prerelease:n}}function st(e){return/^(?:@[A-Za-z0-9][A-Za-z0-9._~-]*\/)?[A-Za-z0-9][A-Za-z0-9._~-]*$/.test(e)}function ct(e){let t=process.env.XDG_CACHE_HOME||s.join(y.homedir(),`.cache`);return s.join(t,`incur`,`updates`,`${encodeURIComponent(e)}.json`)}function lt(t){try{let n=JSON.parse(e.readFileSync(t,`utf8`));return typeof n.checkedAt!=`number`||n.latest!==void 0&&typeof n.latest!=`string`?void 0:n}catch{return}}function ut(t,n){e.mkdirSync(s.dirname(t),{recursive:!0}),e.writeFileSync(t,JSON.stringify(n)+`
2
- `)}function dt(e,t,n,r){let i=ft(r);if(i)try{ut(e,{checkedAt:t,...n?{latest:n}:void 0});let r=p.spawn(i.command,i.args,{detached:!0,stdio:`ignore`});r.once(`error`,()=>{}),r.unref()}catch{}}function ft(t){if(t)return{args:[gt],command:process.execPath};let n=process.argv[1];if(n){if(n.startsWith(`/$bunfs/`))return{args:[gt],command:process.execPath};try{if(e.realpathSync(n)===e.realpathSync(process.execPath))return{args:[gt],command:process.execPath}}catch{}return{args:[...process.execArgv,n,gt],command:process.execPath}}}function pt(e,t){return new Promise((n,r)=>{p.execFile(e,t,(e,t,i)=>{if(!e)return n();r(Error(i.trim()||t.trim()||e.message))})})}function mt(){return process.env.NO_UPDATE_NOTIFIER||process.env.npm_config_update_notifier===`false`?!0:!!(process.env.CI&&process.env.CI!==`false`)}var ht,gt,_t=L((()=>{Ze(),ht=864e5,gt=`--incur-update-check`}));async function vt(e=process.argv.slice(2)){if(e[0]!==`--incur-binary-apply`)return process.platform===`win32`&&At&&jt&&Mt&&await wt(process.execPath),!1;if(process.platform!==`win32`)throw Error(`${kt} is only supported on Windows.`);if(e.length!==2||!e[1])throw Error(`Invalid ${kt} arguments.`);let t=Number(e[1]);if(!Number.isSafeInteger(t)||t<=0)throw Error(`Invalid ${kt} arguments.`);return await yt(t),!0}async function yt(t){let n=bt(process.execPath,t),r=!1;try{await xt(t),await e.promises.rename(n.target,n.backup),r=!0,await e.promises.rename(n.staged,n.target)}catch(t){let i=t,a=`The installed executable remains at '${n.target}'.`;if(r)try{await e.promises.rename(n.backup,n.target),r=!1,a=`The previous executable was restored to '${n.target}'.`}catch(t){try{await e.promises.copyFile(n.backup,n.target,e.constants.COPYFILE_EXCL),a=`The previous executable was copied back to '${n.target}', and its backup remains at '${n.backup}'.`}catch(e){i=Error(`Binary update failed and '${n.target}' could not be restored. The previous executable remains at '${n.backup}': ${Dt(e)}`,{cause:t})}}throw await Tt(n,i,a),i}await Et(n.backup),await Et(n.error),await Et(n.staged),await Et(n.helper)}function bt(e,t){let n=s.resolve(e),r=n.match(/^(.*)\.incur-handoff-([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.exe$/i);if(!r?.[1]||!r[2])throw Error(`Invalid binary update handoff path.`);let i=r[1],a=i.toLowerCase().endsWith(`.exe`)?`.exe`:``;return{backup:`${i}.incur-backup-${r[2]}${a}`,error:`${i}.incur-error-${r[2]}.txt`,helper:n,parent:t,staged:`${i}.incur-new-${r[2]}${a}`,target:i}}async function xt(e){let t=Date.now()+Ot;for(;St(e);){if(Date.now()>=t)throw Error(`Timed out waiting for update process ${e} to exit.`);await Ct(100)}}function St(e){try{return process.kill(e,0),!0}catch(e){return e.code!==`ESRCH`}}function Ct(e){return new Promise(t=>setTimeout(t,e))}async function wt(t){let n=s.dirname(t),r=`${s.basename(t)}.incur-handoff-`;try{let t=await e.promises.readdir(n);await Promise.all(t.filter(e=>e.startsWith(r)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.exe$/i.test(e.slice(r.length))).map(e=>Et(s.join(n,e))))}catch{}}async function Tt(t,n,r){let i=[`Binary update failed: ${Dt(n)}`,`Recovery: ${r}`,`Downloaded candidate: ${t.staged}`,`Previous executable backup: ${t.backup}`].join(`
3
- `);try{await e.promises.writeFile(t.error,`${i}\n`,{flag:`wx`,mode:384})}catch{}}async function Et(t){try{await e.promises.unlink(t)}catch{}}function Dt(e){return e instanceof Error?e.message:String(e)}var Ot,kt,At,jt,Mt,Nt=L((()=>{Ot=6e4,_.promisify(v.gunzip),kt=`--incur-binary-apply`,At=typeof __INCUR_BINARY_NAME__==`string`&&__INCUR_BINARY_NAME__?__INCUR_BINARY_NAME__:void 0,jt=typeof __INCUR_BINARY_TARGET__==`string`&&__INCUR_BINARY_TARGET__?__INCUR_BINARY_TARGET__:void 0,Mt=typeof __INCUR_BINARY_VERSION__==`string`&&__INCUR_BINARY_VERSION__?__INCUR_BINARY_VERSION__:void 0}));function*Pt(e,t={}){if(!e)return;let n=Ft(t);for(let t of e.split(Wt))t&&(yield{segment:t,tokenCount:It(t,n)})}function Ft(e){return{defaultCharsPerToken:e.defaultCharsPerToken??Gt,languageConfigs:e.languageConfigs??Jt}}function It(e,{languageConfigs:t,defaultCharsPerToken:n}){if(Ut.whitespace.test(e))return+!!Ut.structuredWhitespace.test(e);let r=Lt(e,t);return r===void 0?Ut.cjk.test(e)?zt(e):Ut.numeric.test(e)?Math.ceil(e.length/3):e.length<=Kt?1:Ut.punctuation.test(e)?Math.ceil(e.length/2):Math.ceil(e.length/n):Math.ceil(Rt(e)/r)}function Lt(e,t){for(let n of t)if(e.search(n.pattern)!==-1)return n.averageCharsPerToken}function Rt(e){return Array.from(e).length}function zt(e){let t=0,n=0;for(let r of e){let e=r.codePointAt(0);e>=12352&&e<=12543?t++:n++}return n+Math.ceil(t/qt)}function Bt(e,t={}){if(!e)return 0;let n=0;for(let r of Pt(e,t))n+=r.tokenCount;return n}function Vt(e,t=0,n,r={}){if(!e)return``;let i=Pt(e,r),a=0;if(t<0||n!==void 0&&n<0){let e=Array.from(i);for(let{tokenCount:t}of e)a+=t;i=e}let o=t<0?Math.max(0,a+t):Math.max(0,t),s=n===void 0?1/0:n<0?Math.max(0,a+n):n;if(o>=s)return``;let c=[],l=0;for(let{segment:e,tokenCount:t}of i){if(l>=s)break;let n=Ht(e,l,t,o,s);n&&c.push(n),l+=t}return c.join(``)}function Ht(e,t,n,r,i){if(n===0)return t>=r&&t<i?e:``;let a=t+n;if(t>=i||a<=r)return``;let o=Math.max(0,r-t),s=Math.min(n,i-t);if(o===0&&s===n)return e;let c=Math.floor(o/n*e.length),l=Math.ceil(s/n*e.length);return e.slice(c,l)}var Ut,Wt,Gt,Kt,qt,Jt,Yt=L((()=>{Ut={whitespace:/^\s+$/,structuredWhitespace:/\n\s/,cjk:/[\u4E00-\u9FFF\u3400-\u4DBF\u3000-\u30FF\uFF00-\uFFEF\u2E80-\u2EFF\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\uAC00-\uD7AF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uD7B0-\uD7FF]/,numeric:/^\d+$/,punctuation:/[.,!?;(){}[\]<>:/\\|@#$%^&*+=`~_"-]/},Wt=RegExp(`(\\s+|${Ut.punctuation.source}+)`),Gt=6,Kt=3,qt=1.35,Jt=[{pattern:/[äöüßẞ]/i,averageCharsPerToken:2.6},{pattern:/[éèêëàâîïôûùüÿçœæáíóúñ]/i,averageCharsPerToken:3},{pattern:/[ąćęłńóśźżěščřžýůúďťň]/i,averageCharsPerToken:2.5},{pattern:/[\u0430-\u044F\u0451]/i,averageCharsPerToken:4},{pattern:/[\u03AC-\u03CE]/i,averageCharsPerToken:2.75},{pattern:/^\p{Extended_Pictographic}[\p{Extended_Pictographic}\p{Emoji_Component}]*$/u,averageCharsPerToken:.75}]}));function Xt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Zt(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function Qt(e,t){let n=e.length,r=t.length,i=Array.from({length:r+1},(e,t)=>t);for(let a=1;a<=n;a++){let n=i[0];i[0]=a;for(let o=1;o<=r;o++){let r=i[o];i[o]=e[a-1]===t[o-1]?n:1+Math.min(n,i[o],i[o-1]),n=r}}return i[r]}function $t(e,t){let n=e.length<=4?2:Math.floor(e.length/2),r=e.toLowerCase(),i=Array.isArray(t)?t:[...t],a,o=1/0;for(let e of i){let t=e.toLowerCase(),i=Qt(r,t),s;if(t.startsWith(r)&&t!==r)s=i;else if(t.includes(r))s=100+i;else if(i<=n)s=200+i;else continue;s<o&&(o=s,a=e)}return a}var en=L((()=>{}));function tn(e,t){switch(e){case`bash`:return dn(t);case`zsh`:return fn(t);case`fish`:return pn(t);case`nushell`:return mn(t)}}function nn(e,t,n,r,i){let a=n[r]??``,o={commands:e,leaf:t};for(let e=0;e<r;e++){let t=n[e];if(t.startsWith(`-`))continue;let r=o.commands.get(t);if(r&&(r._alias&&r.target&&(r=o.commands.get(r.target)),r)){if(r._group&&r.commands)o={commands:r.commands,leaf:r.root};else{o={commands:new Map,leaf:r};break}}}let s=[];if(a.startsWith(`-`)){let e=o.leaf;if(e?.options){let t=e.options.shape;for(let e of Object.keys(t)){let n=`--${Zt(e)}`;n.startsWith(a)&&s.push({value:n,description:ln(t[e])})}if(e.alias)for(let[n,r]of Object.entries(e.alias)){let e=`-${r}`;if(e.startsWith(a)){let r=ln(t[n]);s.push({value:e,description:r})}}}if(i){let e=i.schema.shape;for(let t of Object.keys(e)){let n=`--${Zt(t)}`;n.startsWith(a)&&!s.some(e=>e.value===n)&&s.push({value:n,description:ln(e[t])})}if(i.alias)for(let[t,n]of Object.entries(i.alias)){let r=`-${n}`;if(r.startsWith(a)&&!s.some(e=>e.value===r)){let n=ln(e[t]);s.push({value:r,description:n})}}}return s}if(r>0){let e=n[r-1],t=o.leaf;if(e.startsWith(`-`)){if(t?.options){let n=an(e,t);if(n){let e=sn(n,t.options);if(e){for(let t of e)t.startsWith(a)&&s.push({value:t});return s}if(!on(n,t.options))return s}}if(i){let t=an(e,{options:i.schema,alias:i.alias});if(t){let e=sn(t,i.schema);if(e){for(let t of e)t.startsWith(a)&&s.push({value:t});return s}if(!on(t,i.schema))return s}}}}for(let[e,t]of o.commands)t._alias||e.startsWith(a)&&s.push({value:e,description:t.description,...t._group?{noSpace:!0}:void 0});return s}function rn(e,t){switch(e){case`bash`:return t.map(e=>e.noSpace?`${e.value}\x01`:e.value).join(`\v`);case`zsh`:return t.map(e=>{let t=e.value.replaceAll(`:`,`\\:`);return e.description?`${t}:${e.description}`:t}).join(`
1
+ import{once as e}from"node:events";import*as t from"node:fs";import n,{existsSync as r,mkdirSync as i,readFileSync as a,writeFileSync as o}from"node:fs";import{createRequire as s}from"node:module";import*as c from"node:path";import l,{dirname as u,join as d}from"node:path";import{z as f,z as p}from"zod";import*as m from"node:child_process";import{execFile as h}from"node:child_process";import{createHash as g,randomUUID as _}from"node:crypto";import*as v from"node:util";import*as y from"node:zlib";import*as b from"node:os";import x,{homedir as S}from"node:os";import*as C from"node:fs/promises";import w from"node:fs/promises";import{PassThrough as T}from"node:stream";import{fileURLToPath as ee,pathToFileURL as E}from"node:url";import*as D from"zod/v4";import{AbiParameters as te,Base64 as O,Bytes as ne,Hash as k,Hex as A,Json as j,Signature as re}from"ox";import{createClient as ie,createTransport as ae,custom as oe,encodeFunctionData as se,erc20Abi as ce,formatUnits as M,getAbiItem as le,getAddress as ue,hashTypedData as de,http as fe,isAddress as pe,isAddressEqual as me,parseUnits as N}from"viem";import{generatePrivateKey as he,parseAccount as ge,privateKeyToAccount as _e}from"viem/accounts";import{tempo as ve,tempoModerato as ye}from"viem/tempo/chains";import{z as be}from"zod/mini";import{createParser as xe}from"eventsource-parser";import*as P from"node:readline";import{prepareTransactionRequest as Se,readContract as Ce,sendCallsSync as we,sendTransactionSync as Te,signTransaction as Ee,signTypedData as De,waitForTransactionReceipt as Oe}from"viem/actions";import{Abis as ke,Account as Ae,Actions as je,Addresses as Me,TokenId as Ne,Transaction as Pe,withFeePayer as Fe}from"viem/tempo";import*as Ie from"viem/chains";import{tempo as Le}from"viem/chains";import{Channel as Re,KeyAuthorization as ze,SignatureEnvelope as Be,TempoAddress as Ve,TxEnvelopeTempo as He}from"ox/tempo";import{defineToken as Ue}from"viem/tokens";var We=Object.defineProperty,Ge=Object.getOwnPropertyDescriptor,Ke=Object.getOwnPropertyNames,qe=Object.prototype.hasOwnProperty,F=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},Je=(e,t)=>{let n={};for(var r in e)We(n,r,{get:e[r],enumerable:!0});return t||We(n,Symbol.toStringTag,{value:`Module`}),n},Ye=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=Ke(t),a=0,o=i.length,s;a<o;a++)s=i[a],!qe.call(e,s)&&s!==n&&We(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=Ge(t,s))||r.enumerable});return e},Xe=(e,t,n)=>(Ye(e,t,`default`),n&&Ye(n,t,`default`));function Ze(){let e=process.env.npm_config_user_agent??``,n=process.env.npm_execpath??``,r=(()=>{if(!process.argv[1])return``;try{return t.realpathSync(process.argv[1])}catch{return process.argv[1]}})();return e.includes(`pnpm`)?`pnpm`:e.includes(`bun`)?`bun`:e.startsWith(`npm/`)?`npm`:n.includes(`pnpm`)?`pnpm`:n.includes(`bun`)?`bun`:n.includes(`npm`)?`npm`:r.includes(`/.pnpm/`)||r.includes(`\\.pnpm\\`)?`pnpm`:r.includes(`/.bun/`)||r.includes(`\\bun\\`)?`bun`:`npm`}function Qe(){let e=Ze();return e===`pnpm`?`pnpx`:e===`bun`?`bunx`:`npx`}function $e(e){let t=Ze();return t===`pnpm`?{args:[`add`,`--global`,`${e}@latest`],command:`pnpm`}:t===`bun`?{args:[`add`,`--global`,`${e}@latest`],command:`bun`}:{args:[`install`,`--global`,`${e}@latest`],command:`npm`}}var et=F((()=>{}));function tt(e,t={}){if(_t())return;let n=at(e,t);if(!n?.check||!n.current)return;let r=dt(n.key),i=ft(r),a=Date.now(),o=Math.max(0,t.interval??vt);if((!i||a-i.checkedAt>=o)&&mt(r,a,i?.latest,t.binary),!(!i?.latest||!it(i.latest,n.current)))return{current:n.current,latest:i.latest,name:n.name}}async function nt(e,t={}){let n=at(e,t);if(!n?.check||!n.current)return;let r=await n.check({current:n.current,name:e,...n.package?{package:n.package}:void 0});!r||!lt(r)||pt(dt(n.key),{checkedAt:Date.now(),latest:r})}async function rt(e,t={}){let n=at(e,t);if(!n?.install)throw Error(`No update installer is configured for '${e}'.`);let r=ft(dt(n.key));return await n.install({...n.current?{current:n.current}:void 0,...r?.latest?{latest:r.latest}:void 0,name:e,...n.package?{package:n.package}:void 0}),{...n.command?{command:n.command}:void 0,...n.deferred?{deferred:!0}:void 0,name:n.name}}function it(e,t){let n=lt(e),r=lt(t);if(!n||!r)return!1;for(let e of[`major`,`minor`,`patch`]){if(n[e]>r[e])return!0;if(n[e]<r[e])return!1}let i=n.prerelease,a=r.prerelease;if(i.length===0)return a.length>0;if(a.length===0)return!1;let o=Math.max(i.length,a.length);for(let e=0;e<o;e++){let t=i[e],n=a[e];if(t===void 0)return!1;if(n===void 0)return!0;if(t!==n)return typeof t==`bigint`&&typeof n==`string`?!1:typeof t==`string`&&typeof n==`bigint`||t>n}return!1}function at(e,t){let n=ot(e),r=t.package??n?.name;if(r&&!ut(r))return;let i=t.version??n?.version,a=r?$e(r):void 0,o=t.check??(r?()=>ct(r):void 0),s=t.install??(a?()=>gt(a.command,a.args):void 0);if(!(!o&&!s))return{...o?{check:o}:void 0,...a&&!t.install?{command:`${a.command} ${a.args.join(` `)}`}:void 0,...i?{current:i}:void 0,...t.deferred?{deferred:!0}:void 0,...s?{install:s}:void 0,key:r??e,name:r??e,...r?{package:r}:void 0}}function ot(e){let n=(()=>{if(process.argv[1])try{return t.realpathSync(process.argv[1])}catch{return}})();if(!n)return;let r=c.dirname(n);for(;;){try{let n=JSON.parse(t.readFileSync(c.join(r,`package.json`),`utf8`));if(typeof n.name==`string`&&typeof n.version==`string`&&st(n,e))return{name:n.name,version:n.version}}catch{}let n=c.dirname(r);if(n===r)return;r=n}}function st(e,t){return e.name===t||typeof e.bin==`object`&&e.bin!==null&&t in e.bin?!0:typeof e.bin!=`string`||typeof e.name!=`string`?!1:e.name.split(`/`).pop()===t}async function ct(e){let t=process.env.npm_config_registry||`https://registry.npmjs.org`,n=t.endsWith(`/`)?t:`${t}/`,r=await fetch(new URL(encodeURIComponent(e),n),{headers:{accept:`application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*`},signal:AbortSignal.timeout(1e4)});if(!r.ok)return;let i=(await r.json())[`dist-tags`]?.latest;return typeof i==`string`?i:void 0}function lt(e){let t=e.match(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/);if(!t)return;let n=[];for(let e of t[4]?.split(`.`)??[]){if(!/^\d+$/.test(e)){n.push(e);continue}if(e.length>1&&e.startsWith(`0`))return;n.push(BigInt(e))}return{major:BigInt(t[1]),minor:BigInt(t[2]),patch:BigInt(t[3]),prerelease:n}}function ut(e){return/^(?:@[A-Za-z0-9][A-Za-z0-9._~-]*\/)?[A-Za-z0-9][A-Za-z0-9._~-]*$/.test(e)}function dt(e){let t=process.env.XDG_CACHE_HOME||c.join(b.homedir(),`.cache`);return c.join(t,`incur`,`updates`,`${encodeURIComponent(e)}.json`)}function ft(e){try{let n=JSON.parse(t.readFileSync(e,`utf8`));return typeof n.checkedAt!=`number`||n.latest!==void 0&&typeof n.latest!=`string`?void 0:n}catch{return}}function pt(e,n){t.mkdirSync(c.dirname(e),{recursive:!0}),t.writeFileSync(e,JSON.stringify(n)+`
2
+ `)}function mt(e,t,n,r){let i=ht(r);if(i)try{pt(e,{checkedAt:t,...n?{latest:n}:void 0});let r=m.spawn(i.command,i.args,{detached:!0,stdio:`ignore`});r.once(`error`,()=>{}),r.unref()}catch{}}function ht(e){if(e)return{args:[yt],command:process.execPath};let n=process.argv[1];if(n){if(n.startsWith(`/$bunfs/`))return{args:[yt],command:process.execPath};try{if(t.realpathSync(n)===t.realpathSync(process.execPath))return{args:[yt],command:process.execPath}}catch{}return{args:[...process.execArgv,n,yt],command:process.execPath}}}function gt(e,t){return new Promise((n,r)=>{m.execFile(e,t,(e,t,i)=>{if(!e)return n();r(Error(i.trim()||t.trim()||e.message))})})}function _t(){return process.env.NO_UPDATE_NOTIFIER||process.env.npm_config_update_notifier===`false`?!0:!!(process.env.CI&&process.env.CI!==`false`)}var vt,yt,bt=F((()=>{et(),vt=864e5,yt=`--incur-update-check`}));async function xt(e=process.argv.slice(2)){if(e[0]!==`--incur-binary-apply`)return process.platform===`win32`&&Nt&&Pt&&Ft&&await Dt(process.execPath),!1;if(process.platform!==`win32`)throw Error(`${Mt} is only supported on Windows.`);if(e.length!==2||!e[1])throw Error(`Invalid ${Mt} arguments.`);let t=Number(e[1]);if(!Number.isSafeInteger(t)||t<=0)throw Error(`Invalid ${Mt} arguments.`);return await St(t),!0}async function St(e){let n=Ct(process.execPath,e),r=!1;try{await wt(e),await t.promises.rename(n.target,n.backup),r=!0,await t.promises.rename(n.staged,n.target)}catch(e){let i=e,a=`The installed executable remains at '${n.target}'.`;if(r)try{await t.promises.rename(n.backup,n.target),r=!1,a=`The previous executable was restored to '${n.target}'.`}catch(e){try{await t.promises.copyFile(n.backup,n.target,t.constants.COPYFILE_EXCL),a=`The previous executable was copied back to '${n.target}', and its backup remains at '${n.backup}'.`}catch(t){i=Error(`Binary update failed and '${n.target}' could not be restored. The previous executable remains at '${n.backup}': ${At(t)}`,{cause:e})}}throw await Ot(n,i,a),i}await kt(n.backup),await kt(n.error),await kt(n.staged),await kt(n.helper)}function Ct(e,t){let n=c.resolve(e),r=n.match(/^(.*)\.incur-handoff-([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.exe$/i);if(!r?.[1]||!r[2])throw Error(`Invalid binary update handoff path.`);let i=r[1],a=i.toLowerCase().endsWith(`.exe`)?`.exe`:``;return{backup:`${i}.incur-backup-${r[2]}${a}`,error:`${i}.incur-error-${r[2]}.txt`,helper:n,parent:t,staged:`${i}.incur-new-${r[2]}${a}`,target:i}}async function wt(e){let t=Date.now()+jt;for(;Tt(e);){if(Date.now()>=t)throw Error(`Timed out waiting for update process ${e} to exit.`);await Et(100)}}function Tt(e){try{return process.kill(e,0),!0}catch(e){return e.code!==`ESRCH`}}function Et(e){return new Promise(t=>setTimeout(t,e))}async function Dt(e){let n=c.dirname(e),r=`${c.basename(e)}.incur-handoff-`;try{let e=await t.promises.readdir(n);await Promise.all(e.filter(e=>e.startsWith(r)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.exe$/i.test(e.slice(r.length))).map(e=>kt(c.join(n,e))))}catch{}}async function Ot(e,n,r){let i=[`Binary update failed: ${At(n)}`,`Recovery: ${r}`,`Downloaded candidate: ${e.staged}`,`Previous executable backup: ${e.backup}`].join(`
3
+ `);try{await t.promises.writeFile(e.error,`${i}\n`,{flag:`wx`,mode:384})}catch{}}async function kt(e){try{await t.promises.unlink(e)}catch{}}function At(e){return e instanceof Error?e.message:String(e)}var jt,Mt,Nt,Pt,Ft,It=F((()=>{jt=6e4,v.promisify(y.gunzip),Mt=`--incur-binary-apply`,Nt=typeof __INCUR_BINARY_NAME__==`string`&&__INCUR_BINARY_NAME__?__INCUR_BINARY_NAME__:void 0,Pt=typeof __INCUR_BINARY_TARGET__==`string`&&__INCUR_BINARY_TARGET__?__INCUR_BINARY_TARGET__:void 0,Ft=typeof __INCUR_BINARY_VERSION__==`string`&&__INCUR_BINARY_VERSION__?__INCUR_BINARY_VERSION__:void 0}));function*Lt(e,t={}){if(!e)return;let n=Rt(t);for(let t of e.split(qt))t&&(yield{segment:t,tokenCount:zt(t,n)})}function Rt(e){return{defaultCharsPerToken:e.defaultCharsPerToken??Jt,languageConfigs:e.languageConfigs??Zt}}function zt(e,{languageConfigs:t,defaultCharsPerToken:n}){if(Kt.whitespace.test(e))return+!!Kt.structuredWhitespace.test(e);let r=Bt(e,t);return r===void 0?Kt.cjk.test(e)?Ht(e):Kt.numeric.test(e)?Math.ceil(e.length/3):e.length<=Yt?1:Kt.punctuation.test(e)?Math.ceil(e.length/2):Math.ceil(e.length/n):Math.ceil(Vt(e)/r)}function Bt(e,t){for(let n of t)if(e.search(n.pattern)!==-1)return n.averageCharsPerToken}function Vt(e){return Array.from(e).length}function Ht(e){let t=0,n=0;for(let r of e){let e=r.codePointAt(0);e>=12352&&e<=12543?t++:n++}return n+Math.ceil(t/Xt)}function Ut(e,t={}){if(!e)return 0;let n=0;for(let r of Lt(e,t))n+=r.tokenCount;return n}function Wt(e,t=0,n,r={}){if(!e)return``;let i=Lt(e,r),a=0;if(t<0||n!==void 0&&n<0){let e=Array.from(i);for(let{tokenCount:t}of e)a+=t;i=e}let o=t<0?Math.max(0,a+t):Math.max(0,t),s=n===void 0?1/0:n<0?Math.max(0,a+n):n;if(o>=s)return``;let c=[],l=0;for(let{segment:e,tokenCount:t}of i){if(l>=s)break;let n=Gt(e,l,t,o,s);n&&c.push(n),l+=t}return c.join(``)}function Gt(e,t,n,r,i){if(n===0)return t>=r&&t<i?e:``;let a=t+n;if(t>=i||a<=r)return``;let o=Math.max(0,r-t),s=Math.min(n,i-t);if(o===0&&s===n)return e;let c=Math.floor(o/n*e.length),l=Math.ceil(s/n*e.length);return e.slice(c,l)}var Kt,qt,Jt,Yt,Xt,Zt,Qt=F((()=>{Kt={whitespace:/^\s+$/,structuredWhitespace:/\n\s/,cjk:/[\u4E00-\u9FFF\u3400-\u4DBF\u3000-\u30FF\uFF00-\uFFEF\u2E80-\u2EFF\u31C0-\u31EF\u3200-\u32FF\u3300-\u33FF\uAC00-\uD7AF\u1100-\u11FF\u3130-\u318F\uA960-\uA97F\uD7B0-\uD7FF]/,numeric:/^\d+$/,punctuation:/[.,!?;(){}[\]<>:/\\|@#$%^&*+=`~_"-]/},qt=RegExp(`(\\s+|${Kt.punctuation.source}+)`),Jt=6,Yt=3,Xt=1.35,Zt=[{pattern:/[äöüßẞ]/i,averageCharsPerToken:2.6},{pattern:/[éèêëàâîïôûùüÿçœæáíóúñ]/i,averageCharsPerToken:3},{pattern:/[ąćęłńóśźżěščřžýůúďťň]/i,averageCharsPerToken:2.5},{pattern:/[\u0430-\u044F\u0451]/i,averageCharsPerToken:4},{pattern:/[\u03AC-\u03CE]/i,averageCharsPerToken:2.75},{pattern:/^\p{Extended_Pictographic}[\p{Extended_Pictographic}\p{Emoji_Component}]*$/u,averageCharsPerToken:.75}]}));function $t(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function en(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}function tn(e,t){let n=e.length,r=t.length,i=Array.from({length:r+1},(e,t)=>t);for(let a=1;a<=n;a++){let n=i[0];i[0]=a;for(let o=1;o<=r;o++){let r=i[o];i[o]=e[a-1]===t[o-1]?n:1+Math.min(n,i[o],i[o-1]),n=r}}return i[r]}function nn(e,t){let n=e.length<=4?2:Math.floor(e.length/2),r=e.toLowerCase(),i=Array.isArray(t)?t:[...t],a,o=1/0;for(let e of i){let t=e.toLowerCase(),i=tn(r,t),s;if(t.startsWith(r)&&t!==r)s=i;else if(t.includes(r))s=100+i;else if(i<=n)s=200+i;else continue;s<o&&(o=s,a=e)}return a}var rn=F((()=>{}));function an(e,t){switch(e){case`bash`:return mn(t);case`zsh`:return hn(t);case`fish`:return gn(t);case`nushell`:return _n(t)}}function on(e,t,n,r,i){let a=n[r]??``,o={commands:e,leaf:t};for(let e=0;e<r;e++){let t=n[e];if(t.startsWith(`-`))continue;let r=o.commands.get(t);if(r&&(r._alias&&r.target&&(r=o.commands.get(r.target)),r)){if(r._group&&r.commands)o={commands:r.commands,leaf:r.root};else{o={commands:new Map,leaf:r};break}}}let s=[];if(a.startsWith(`-`)){let e=o.leaf;if(e?.options){let t=e.options.shape;for(let e of Object.keys(t)){let n=`--${en(e)}`;n.startsWith(a)&&s.push({value:n,description:fn(t[e])})}if(e.alias)for(let[n,r]of Object.entries(e.alias)){let e=`-${r}`;if(e.startsWith(a)){let r=fn(t[n]);s.push({value:e,description:r})}}}if(i){let e=i.schema.shape;for(let t of Object.keys(e)){let n=`--${en(t)}`;n.startsWith(a)&&!s.some(e=>e.value===n)&&s.push({value:n,description:fn(e[t])})}if(i.alias)for(let[t,n]of Object.entries(i.alias)){let r=`-${n}`;if(r.startsWith(a)&&!s.some(e=>e.value===r)){let n=fn(e[t]);s.push({value:r,description:n})}}}return s}if(r>0){let e=n[r-1],t=o.leaf;if(e.startsWith(`-`)){if(t?.options){let n=cn(e,t);if(n){let e=un(n,t.options);if(e){for(let t of e)t.startsWith(a)&&s.push({value:t});return s}if(!ln(n,t.options))return s}}if(i){let t=cn(e,{options:i.schema,alias:i.alias});if(t){let e=un(t,i.schema);if(e){for(let t of e)t.startsWith(a)&&s.push({value:t});return s}if(!ln(t,i.schema))return s}}}}for(let[e,t]of o.commands)t._alias||e.startsWith(a)&&s.push({value:e,description:t.description,...t._group?{noSpace:!0}:void 0});return s}function sn(e,t){switch(e){case`bash`:return t.map(e=>e.noSpace?`${e.value}\x01`:e.value).join(`\v`);case`zsh`:return t.map(e=>{let t=e.value.replaceAll(`:`,`\\:`);return e.description?`${t}:${e.description}`:t}).join(`
4
4
  `);case`fish`:return t.map(e=>e.description?`${e.value}\t${e.description}`:e.value).join(`
5
- `);case`nushell`:{let e=t.map(e=>{let t={value:e.value};return e.description&&(t.description=e.description),t});return JSON.stringify(e)}}}function an(e,t){if(!t.options)return;let n=new Set(Object.keys(t.options.shape)),r=new Map;for(let e of n){let t=e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);t!==e&&r.set(t,e)}if(e.startsWith(`--`)){let t=e.slice(2),i=r.get(t)??t;return n.has(i)?i:void 0}if(e.startsWith(`-`)&&e.length===2&&t.alias){let n=e.slice(1);for(let[e,r]of Object.entries(t.alias))if(r===n)return e}}function on(e,t){let n=t.shape[e];return n?typeof n.meta==`function`&&n.meta()?.count===!0||cn(n).constructor.name===`ZodBoolean`:!1}function sn(e,t){let n=t.shape[e];if(!n)return;let r=cn(n);if(r.constructor.name===`ZodEnum`)return Object.values(r._zod.def.entries);if(r.constructor.name===`ZodNativeEnum`)return Object.keys(r._zod.def.values)}function cn(e){let t=e;for(;t._zod?.def?.innerType;)t=t._zod.def.innerType;return t}function ln(e){if(e)return e.description}function un(e){return e.replace(/[^a-zA-Z0-9_]/g,`_`)}function dn(e){let t=un(e);return`_incur_complete_${t}() {
5
+ `);case`nushell`:{let e=t.map(e=>{let t={value:e.value};return e.description&&(t.description=e.description),t});return JSON.stringify(e)}}}function cn(e,t){if(!t.options)return;let n=new Set(Object.keys(t.options.shape)),r=new Map;for(let e of n){let t=e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);t!==e&&r.set(t,e)}if(e.startsWith(`--`)){let t=e.slice(2),i=r.get(t)??t;return n.has(i)?i:void 0}if(e.startsWith(`-`)&&e.length===2&&t.alias){let n=e.slice(1);for(let[e,r]of Object.entries(t.alias))if(r===n)return e}}function ln(e,t){let n=t.shape[e];return n?typeof n.meta==`function`&&n.meta()?.count===!0||dn(n).constructor.name===`ZodBoolean`:!1}function un(e,t){let n=t.shape[e];if(!n)return;let r=dn(n);if(r.constructor.name===`ZodEnum`)return Object.values(r._zod.def.entries);if(r.constructor.name===`ZodNativeEnum`)return Object.keys(r._zod.def.values)}function dn(e){let t=e;for(;t._zod?.def?.innerType;)t=t._zod.def.innerType;return t}function fn(e){if(e)return e.description}function pn(e){return e.replace(/[^a-zA-Z0-9_]/g,`_`)}function mn(e){let t=pn(e);return`_incur_complete_${t}() {
6
6
  local IFS=$'\\013'
7
7
  local _COMPLETE_INDEX=\${COMP_CWORD}
8
8
  local _completions
@@ -29,7 +29,7 @@ import*as e from"node:fs";import t,{existsSync as n,mkdirSync as r,readFileSync
29
29
  compopt -o nospace
30
30
  fi
31
31
  }
32
- complete -o default -o bashdefault -o nosort -F _incur_complete_${t} ${e}`}function fn(e){let t=un(e);return`#compdef ${e}
32
+ complete -o default -o bashdefault -o nosort -F _incur_complete_${t} ${e}`}function hn(e){let t=pn(e);return`#compdef ${e}
33
33
  _incur_complete_${t}() {
34
34
  local completions=("\${(@f)$(
35
35
  export _COMPLETE_INDEX=$(( CURRENT - 1 ))
@@ -40,64 +40,64 @@ _incur_complete_${t}() {
40
40
  _describe 'values' completions -S ''
41
41
  fi
42
42
  }
43
- compdef _incur_complete_${t} ${e}`}function pn(e){return`complete --keep-order --exclusive --command ${e} \\
44
- --arguments "(COMPLETE=fish ${e} -- (commandline --current-process --tokenize --cut-at-cursor) (commandline --current-token))"`}function mn(e){return`# External completer for ${e}
43
+ compdef _incur_complete_${t} ${e}`}function gn(e){return`complete --keep-order --exclusive --command ${e} \\
44
+ --arguments "(COMPLETE=fish ${e} -- (commandline --current-process --tokenize --cut-at-cursor) (commandline --current-token))"`}function _n(e){return`# External completer for ${e}
45
45
  # Add to $env.config.completions.external.completer or use in a dispatch completer.
46
- let _incur_complete_${un(e)} = {|spans|
46
+ let _incur_complete_${pn(e)} = {|spans|
47
47
  COMPLETE=nushell ${e} -- ...$spans | from json
48
- }`}var hn=L((()=>{en()}));function gn(e,t){if(t){let n=e?.cause;for(;n;){if(t(n))return n;n=n?.cause}return}let n=e;for(;n?.cause;)n=n.cause;return n}var _n,R,vn,yn,bn=L((()=>{_n=class extends Error{name=`Incur.BaseError`;shortMessage;details;constructor(e,t={}){let n=t.cause instanceof Error?t.cause.message:void 0,r=n?`${e}\n\nDetails: ${n}`:e;super(r,t.cause?{cause:t.cause}:void 0),this.shortMessage=e,this.details=n}walk(e){return gn(this,e)}},R=class extends _n{name=`Incur.IncurError`;code;hint;retryable;exitCode;constructor(e){super(e.message,e.cause?{cause:e.cause}:void 0),this.code=e.code,this.hint=e.hint,this.retryable=e.retryable??!1,this.exitCode=e.exitCode}},vn=class extends _n{name=`Incur.ValidationError`;fieldErrors;constructor(e){super(e.message,e.cause?{cause:e.cause}:void 0),this.fieldErrors=e.fieldErrors??[]}},yn=class extends _n{name=`Incur.ParseError`;constructor(e){super(e.message,e.cause?{cause:e.cause}:void 0)}}}));function xn(e){let t=[],n=new Headers,r=new URLSearchParams,i,a,o=0;for(;o<e.length;){let n=e[o];if(n.startsWith(`--`)){let t=n.indexOf(`=`);if(t!==-1){let e=n.slice(2,t),i=n.slice(t+1);En.has(e)?s(e,i):r.set(e,i),o++}else{let t=n.slice(2),i=e[o+1];if(i===void 0)throw Error(`Missing value for --${t}`);En.has(t)?s(t,i):r.set(t,i),o+=2}}else if(n.startsWith(`-`)&&n.length===2){let t=n[1],r=Dn[t];if(r){let n=e[o+1];if(n===void 0)throw Error(`Missing value for -${t}`);s(r,n),o+=2}else o++}else t.push(n),o++}function s(e,t){if(e===`method`)i=t.toUpperCase();else if(e===`body`||e===`data`)a=t;else if(e===`header`){let e=t.indexOf(`:`);if(e!==-1){let r=t.slice(0,e).trim(),i=t.slice(e+1).trim();n.set(r,i)}}}return{path:t.length>0?`/${t.join(`/`)}`:`/`,method:i??(a===void 0?`GET`:`POST`),headers:n,body:a,query:r}}function Sn(e){let t=new URL(e.path,`http://localhost`);e.query.forEach((e,n)=>t.searchParams.set(n,e));let n={method:e.method,headers:e.headers};return e.body!==void 0&&(n.body=e.body,e.headers.has(`content-type`)||e.headers.set(`content-type`,`application/json`)),new Request(t.toString(),n)}function Cn(e){return e.body!==null&&e.headers.get(`content-type`)===`application/x-ndjson`}async function*wn(e){let t=e.body.getReader(),n=new TextDecoder,r=``;for(;;){let{value:e,done:i}=await t.read();if(i)break;r+=n.decode(e,{stream:!0});let a;for(;(a=r.indexOf(`
49
- `))!==-1;){let e=r.slice(0,a).trim();if(r=r.slice(a+1),e.length!==0)try{yield JSON.parse(e)}catch{yield e}}}let i=r.trim();if(i.length>0)try{yield JSON.parse(i)}catch{yield i}}async function Tn(e){let t=await e.text(),n;try{n=JSON.parse(t)}catch{n=t}return{ok:e.ok,status:e.status,data:n,headers:e.headers}}var En,Dn,On=L((()=>{En=new Set([`method`,`body`,`data`,`header`]),Dn={X:`method`,d:`data`,H:`header`}}));function kn(e){let t=[],n=[],r=``,i=0;for(let t=0;t<e.length;t++){let a=e[t];a===`[`?i++:a===`]`&&i--,a===`,`&&i===0?(n.push(r),r=``):r+=a}r&&n.push(r);for(let e of n){let n=[],r=e;for(;r.length>0;){let e=r.indexOf(`[`);if(e===-1){for(let e of r.split(`.`))e&&n.push({key:e});break}let t=r.slice(0,e);for(let e of t.split(`.`))e&&n.push({key:e});let i=r.indexOf(`]`,e),[a,o]=r.slice(e+1,i).split(`,`);n.push({start:Number(a),end:Number(o)}),r=r.slice(i+1),r.startsWith(`.`)&&(r=r.slice(1))}t.push(n)}return t}function An(e,t){if(t.length===0)return e;if(t.length===1&&t[0].length===1&&`key`in t[0][0]){let n=t[0][0].key;if(Array.isArray(e))return e.map(e=>An(e,t));if(typeof e==`object`&&e){let t=e[n];return typeof t!=`object`||!t?t:{[n]:t}}return}if(Array.isArray(e))return e.map(e=>An(e,t));let n={};for(let r of t)jn(n,e,r,0);return n}function jn(e,t,n,r){if(r>=n.length||typeof t!=`object`||!t)return;let i=n[r];if(`key`in i){let a=t[i.key];if(a===void 0)return;if(r+1>=n.length){e[i.key]=a;return}let o=n[r+1];if(`start`in o){if(!Array.isArray(a))return;let t=a.slice(o.start,o.end);if(r+2>=n.length){e[i.key]=t;return}e[i.key]=t.map(e=>{let t={};return jn(t,e,n,r+2),t});return}if(typeof a!=`object`||!a)return;(!e[i.key]||typeof e[i.key]!=`object`)&&(e[i.key]={}),jn(e[i.key],a,n,r+1);return}}var Mn=L((()=>{}));function Nn(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\t/g,`\\t`).replace(/[\u0000-\u001F]/g,e=>`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`)}function Pn(e){return e===`true`||e===`false`||e===`null`}function Fn(e,t,n){if(t===`__proto__`){Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0});return}e[t]=n}function In(e){if(e===null)return null;if(typeof e==`object`&&e&&`toJSON`in e&&typeof e.toJSON==`function`){let t=e.toJSON();if(t!==e)return In(t)}if(typeof e==`string`||typeof e==`boolean`)return e;if(typeof e==`number`)return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e==`bigint`)return e>=-(2**53-1)&&e<=2**53-1?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(In);if(e instanceof Set)return Array.from(e).map(In);if(e instanceof Map)return Object.fromEntries(Array.from(e,([e,t])=>[String(e),In(t)]));if(Vn(e)){let t={};for(let n in e)Object.hasOwn(e,n)&&Fn(t,n,In(e[n]));return t}return null}function Ln(e){return e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function Rn(e){return Array.isArray(e)}function zn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Bn(e){return Object.keys(e).length===0}function Vn(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Hn(e){return e.length===0||e.every(e=>Ln(e))}function Un(e){return e.length===0||e.every(e=>Rn(e))}function Wn(e){return e.length===0||e.every(e=>zn(e))}function Gn(e){return/^[A-Z_][\w.]*$/i.test(e)}function Kn(e){return/^[A-Z_]\w*$/i.test(e)}function qn(e,t=Dr){return!(!e||e!==e.trim()||Pn(e)||Jn(e)||e.includes(`:`)||e.includes(`"`)||e.includes(`\\`)||/[[\]{}]/.test(e)||/[\u0000-\u001F]/.test(e)||e.includes(t)||e.startsWith(`-`))}function Jn(e){return Or.test(e)||kr.test(e)}function Yn(e,t,n,r,i,a,o){if(r.keyFolding!==`safe`||!zn(t))return;let{segments:s,tail:c,leafValue:l}=Xn(e,t,o??r.flattenDepth);if(s.length<2||!s.every(e=>Kn(e)))return;let u=Zn(s),d=a?`${a}.${u}`:u;if(!n.includes(u)&&!(i&&i.has(d)))return{foldedKey:u,remainder:c,leafValue:l,segmentCount:s.length}}function Xn(e,t,n){let r=[e],i=t;for(;r.length<n&&zn(i);){let e=Object.keys(i);if(e.length!==1)break;let t=e[0],n=i[t];r.push(t),i=n}return!zn(i)||Bn(i)?{segments:r,tail:void 0,leafValue:i}:{segments:r,tail:i,leafValue:i}}function Zn(e){return e.join(`.`)}function Qn(e,t){return e===null?Tr:typeof e==`boolean`||typeof e==`number`?String(e):$n(e,t)}function $n(e,t=Dr){return qn(e,t)?e:`"${Nn(e)}"`}function er(e){return Gn(e)?e:`"${Nn(e)}"`}function tr(e,t=Dr){return e.map(e=>Qn(e,t)).join(t)}function nr(e,t){let n=t?.key,r=t?.fields,i=t?.delimiter??`,`,a=``;if(n!=null&&(a+=er(n)),a+=`[${e}${i===Dr?``:i}]`,r){let e=r.map(e=>er(e));a+=`{${e.join(i)}}`}return a+=`:`,a}function*rr(e,t,n){if(Ln(e)){let n=Qn(e,t.delimiter);n!==``&&(yield n);return}Rn(e)?yield*or(void 0,e,n,t):zn(e)&&(yield*ir(e,n,t))}function*ir(e,t,n,r,i,a){let o=Object.keys(e);t===0&&!r&&(r=new Set(o.filter(e=>e.includes(`.`))));let s=a??n.flattenDepth;for(let[a,c]of Object.entries(e))yield*ar(a,c,t,n,o,r,i,s)}function*ar(e,t,n,r,i,a,o,s){let c=o?`${o}.${e}`:e,l=s??r.flattenDepth;if(r.keyFolding===`safe`&&i){let s=Yn(e,t,i,r,a,o,l);if(s){let{foldedKey:e,remainder:t,leafValue:i,segmentCount:c}=s,u=er(e);if(t===void 0){if(Ln(i)){yield gr(n,`${u}: ${Qn(i,r.delimiter)}`,r.indent);return}if(Rn(i)){yield*or(e,i,n,r);return}if(zn(i)&&Bn(i)){yield gr(n,`${u}:`,r.indent);return}}if(zn(t)){yield gr(n,`${u}:`,r.indent);let i=l-c,s=o?`${o}.${e}`:e;yield*ir(t,n+1,r,a,s,i);return}}}let u=er(e);Ln(t)?yield gr(n,`${u}: ${Qn(t,r.delimiter)}`,r.indent):Rn(t)?yield*or(e,t,n,r):zn(t)&&(yield gr(n,`${u}:`,r.indent),Bn(t)||(yield*ir(t,n+1,r,a,c,l)))}function*or(e,t,n,r){if(t.length===0){yield gr(n,e==null?`[]`:`${er(e)}: []`,r.indent);return}if(Hn(t)){yield gr(n,cr(t,r.delimiter,e),r.indent);return}if(Un(t)&&t.every(e=>Hn(e))){yield*sr(e,t,n,r);return}if(Wn(t)){let i=ur(t);i?yield*lr(e,t,i,n,r):yield*pr(e,t,n,r);return}yield*pr(e,t,n,r)}function*sr(e,t,n,r){yield gr(n,nr(t.length,{key:e,delimiter:r.delimiter}),r.indent);for(let e of t)if(Hn(e)){let t=cr(e,r.delimiter);yield _r(n+1,t,r.indent)}}function cr(e,t,n){let r=nr(e.length,{key:n,delimiter:t}),i=tr(e,t);return e.length===0?r:`${r} ${i}`}function*lr(e,t,n,r,i){yield gr(r,nr(t.length,{key:e,fields:n,delimiter:i.delimiter}),i.indent),yield*fr(t,n,r+1,i)}function ur(e){if(e.length===0)return;let t=e[0],n=Object.keys(t);if(n.length!==0&&dr(e,n))return n}function dr(e,t){for(let n of e){if(Object.keys(n).length!==t.length)return!1;for(let e of t)if(!Object.hasOwn(n,e)||!Ln(n[e]))return!1}return!0}function*fr(e,t,n,r){for(let i of e)yield gr(n,tr(t.map(e=>i[e]),r.delimiter),r.indent)}function*pr(e,t,n,r){yield gr(n,nr(t.length,{key:e,delimiter:r.delimiter}),r.indent);for(let e of t)yield*hr(e,n+1,r)}function*mr(e,t,n){if(Bn(e)){yield gr(t,`-`,n.indent);return}let r=Object.entries(e),[i,a]=r[0],o=r.slice(1);if(Rn(a)&&Wn(a)){let e=ur(a);if(e){yield _r(t,nr(a.length,{key:i,fields:e,delimiter:n.delimiter}),n.indent),yield*fr(a,e,t+2,n),o.length>0&&(yield*ir(Object.fromEntries(o),t+1,n));return}}let s=er(i);if(Ln(a))yield _r(t,`${s}: ${Qn(a,n.delimiter)}`,n.indent);else if(Rn(a)){if(a.length===0)yield _r(t,`${s}: []`,n.indent);else if(Hn(a))yield _r(t,`${s}${cr(a,n.delimiter)}`,n.indent);else{yield _r(t,`${s}${nr(a.length,{delimiter:n.delimiter})}`,n.indent);for(let e of a)yield*hr(e,t+2,n)}}else zn(a)&&(yield _r(t,`${s}:`,n.indent),Bn(a)||(yield*ir(a,t+2,n)));o.length>0&&(yield*ir(Object.fromEntries(o),t+1,n))}function*hr(e,t,n){if(Ln(e))yield _r(t,Qn(e,n.delimiter),n.indent);else if(Rn(e)){if(Hn(e))yield _r(t,cr(e,n.delimiter),n.indent);else{yield _r(t,nr(e.length,{delimiter:n.delimiter}),n.indent);for(let r of e)yield*hr(r,t+1,n)}}else zn(e)&&(yield*mr(e,t,n))}function gr(e,t,n){return` `.repeat(n*e)+t}function _r(e,t,n){return gr(e,`- `+t,n)}function vr(e,t){let n=t(``,e,[]);return yr(n===void 0?e:In(n),t,[])}function yr(e,t,n){return zn(e)?br(e,t,n):Rn(e)?xr(e,t,n):e}function br(e,t,n){let r={};for(let[i,a]of Object.entries(e)){let e=[...n,i],o=t(i,a,e);o!==void 0&&Fn(r,i,yr(In(o),t,e))}return r}function xr(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=e[i],o=[...n,i],s=t(String(i),a,o);if(s===void 0)continue;let c=In(s);r.push(yr(c,t,o))}return r}function Sr(e,t){return Array.from(Cr(e,t)).join(`
50
- `)}function Cr(e,t){let n=In(e),r=wr(t);return rr(r.replacer?vr(n,r.replacer):n,r,0)}function wr(e){return{indent:e?.indent??2,delimiter:e?.delimiter??Dr,keyFolding:e?.keyFolding??`off`,flattenDepth:e?.flattenDepth??1/0,replacer:e?.replacer}}var Tr,Er,Dr,Or,kr,Ar=L((()=>{Tr=`null`,Er={comma:`,`,tab:` `,pipe:`|`},Dr=Er.comma,Or=/^-?\d+(?:\.\d+)?(?:e[+-]?\d+)?$/i,kr=/^0\d+$/}));function jr(e,t){return JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t,t)}function Mr(e){return JSON.parse(jr(e))}var Nr=L((()=>{}));function Pr(e){if(e&&typeof e==`object`)switch(e[Hr]){case Rr:case Vr:return!0}return!1}function Fr(e){if(e&&typeof e==`object`)switch(e[Hr]){case Ir:case Rr:case Br:case Vr:return!0}return!1}var Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,z=L((()=>{Ir=Symbol.for(`yaml.alias`),Lr=Symbol.for(`yaml.document`),Rr=Symbol.for(`yaml.map`),zr=Symbol.for(`yaml.pair`),Br=Symbol.for(`yaml.scalar`),Vr=Symbol.for(`yaml.seq`),Hr=Symbol.for(`yaml.node.type`),Ur=e=>!!e&&typeof e==`object`&&e[Hr]===Ir,Wr=e=>!!e&&typeof e==`object`&&e[Hr]===Lr,Gr=e=>!!e&&typeof e==`object`&&e[Hr]===Rr,Kr=e=>!!e&&typeof e==`object`&&e[Hr]===zr,qr=e=>!!e&&typeof e==`object`&&e[Hr]===Br,Jr=e=>!!e&&typeof e==`object`&&e[Hr]===Vr,Yr=e=>(qr(e)||Pr(e))&&!!e.anchor}));function Xr(e,t){let n=ei(t);Wr(e)?Zr(null,e.contents,n,Object.freeze([e]))===ai&&(e.contents=null):Zr(null,e,n,Object.freeze([]))}function Zr(e,t,n,r){let i=ti(e,t,n,r);if(Fr(i)||Kr(i))return ni(e,r,i),Zr(e,i,n,r);if(typeof i!=`symbol`){if(Pr(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=Zr(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===ri)return ri;else i===ai&&(t.items.splice(e,1),--e)}}else if(Kr(t)){r=Object.freeze(r.concat(t));let e=Zr(`key`,t.key,n,r);if(e===ri)return ri;e===ai&&(t.key=null);let i=Zr(`value`,t.value,n,r);if(i===ri)return ri;i===ai&&(t.value=null)}}return i}async function Qr(e,t){let n=ei(t);Wr(e)?await $r(null,e.contents,n,Object.freeze([e]))===ai&&(e.contents=null):await $r(null,e,n,Object.freeze([]))}async function $r(e,t,n,r){let i=await ti(e,t,n,r);if(Fr(i)||Kr(i))return ni(e,r,i),$r(e,i,n,r);if(typeof i!=`symbol`){if(Pr(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await $r(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===ri)return ri;else i===ai&&(t.items.splice(e,1),--e)}}else if(Kr(t)){r=Object.freeze(r.concat(t));let e=await $r(`key`,t.key,n,r);if(e===ri)return ri;e===ai&&(t.key=null);let i=await $r(`value`,t.value,n,r);if(i===ri)return ri;i===ai&&(t.value=null)}}return i}function ei(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function ti(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(Gr(t))return n.Map?.(e,t,r);if(Jr(t))return n.Seq?.(e,t,r);if(Kr(t))return n.Pair?.(e,t,r);if(qr(t))return n.Scalar?.(e,t,r);if(Ur(t))return n.Alias?.(e,t,r)}function ni(e,t,n){let r=t[t.length-1];if(Pr(r))r.items[e]=n;else if(Kr(r))e===`key`?r.key=n:r.value=n;else if(Wr(r))r.contents=n;else{let e=Ur(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var ri,ii,ai,oi=L((()=>{z(),ri=Symbol(`break visit`),ii=Symbol(`skip children`),ai=Symbol(`remove node`),Xr.BREAK=ri,Xr.SKIP=ii,Xr.REMOVE=ai,Qr.BREAK=ri,Qr.SKIP=ii,Qr.REMOVE=ai})),si,ci,li,ui=L((()=>{z(),oi(),si={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},ci=e=>e.replace(/[!,[\]{}]/g,e=>si[e]),li=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags)}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+ci(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&Fr(e.contents)){let t={};Xr(e.contents,(e,n)=>{Fr(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)(i!==`!!`||a!==`tag:yaml.org,2002:`)&&(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
51
- `)}},li.defaultYaml={explicit:!1,version:`1.2`},li.defaultTags={"!!":`tag:yaml.org,2002:`}}));function di(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function fi(e){let t=new Set;return Xr(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function pi(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function mi(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??=fi(e);let a=pi(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(qr(t.node)||Pr(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}var hi=L((()=>{z(),oi()}));function gi(e,t,n,r){if(r&&typeof r==`object`){if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=gi(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=gi(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=gi(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=gi(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}}return e.call(t,n,r)}var _i=L((()=>{}));function vi(e,t,n){if(Array.isArray(e))return e.map((e,t)=>vi(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!Yr(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var yi=L((()=>{z()})),bi,xi=L((()=>{_i(),z(),yi(),bi=class{constructor(e){Object.defineProperty(this,Hr,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!Wr(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=vi(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?gi(i,{"":o},``,o):o}}}));function Si(e,t,n){if(Ur(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}if(Pr(t)){let r=0;for(let i of t.items){let t=Si(e,i,n);t>r&&(r=t)}return r}if(Kr(t)){let r=Si(e,t.key,n),i=Si(e,t.value,n);return Math.max(r,i)}return 1}var Ci,wi=L((()=>{hi(),oi(),z(),xi(),yi(),Ci=class extends bi{constructor(e){super(Ir),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],Xr(e,{Node:(e,t)=>{(Ur(t)||Yr(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}return r}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r,t);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||=(vi(a,null,t),n.get(a)),o?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=Si(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(di(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}}})),Ti,B,Ei=L((()=>{z(),xi(),yi(),Ti=e=>!e||typeof e!=`function`&&typeof e!=`object`,B=class extends bi{constructor(e){super(Br),this.value=e}toJSON(e,t){return t?.keep?this.value:vi(this.value,e,t)}toString(){return String(this.value)}},B.BLOCK_FOLDED=`BLOCK_FOLDED`,B.BLOCK_LITERAL=`BLOCK_LITERAL`,B.PLAIN=`PLAIN`,B.QUOTE_DOUBLE=`QUOTE_DOUBLE`,B.QUOTE_SINGLE=`QUOTE_SINGLE`}));function Di(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function Oi(e,t,n){if(Wr(e)&&(e=e.contents),Fr(e))return e;if(Kr(e)){let t=n.schema[Rr].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??(c.anchor=i(e)),new Ci(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=ki+t.slice(2));let l=Di(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new B(e);return c&&(c.node=t),t}l=e instanceof Map?o[Rr]:Symbol.iterator in Object(e)?o[Vr]:o[Rr]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new B(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}var ki,Ai=L((()=>{wi(),z(),Ei(),ki=`tag:yaml.org,2002:`}));function ji(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return Oi(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var Mi,Ni,Pi=L((()=>{Ai(),z(),xi(),Mi=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,Ni=class extends bi{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>Fr(t)||Kr(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Mi(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(Pr(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,ji(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(Pr(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&qr(i)?i.value:i:Pr(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!Kr(t))return!1;let n=t.value;return n==null||e&&qr(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return Pr(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(Pr(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,ji(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}}}));function Fi(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var Ii,Li,Ri=L((()=>{Ii=e=>e.replace(/^(?!$)(?: $)?/gm,`#`),Li=(e,t,n)=>e.endsWith(`
52
- `)?Fi(n,t):n.includes(`
48
+ }`}var vn=F((()=>{rn()}));function yn(e,t){if(t){let n=e?.cause;for(;n;){if(t(n))return n;n=n?.cause}return}let n=e;for(;n?.cause;)n=n.cause;return n}var bn,I,xn,Sn,Cn=F((()=>{bn=class extends Error{name=`Incur.BaseError`;shortMessage;details;constructor(e,t={}){let n=t.cause instanceof Error?t.cause.message:void 0,r=n?`${e}\n\nDetails: ${n}`:e;super(r,t.cause?{cause:t.cause}:void 0),this.shortMessage=e,this.details=n}walk(e){return yn(this,e)}},I=class extends bn{name=`Incur.IncurError`;code;hint;retryable;exitCode;constructor(e){super(e.message,e.cause?{cause:e.cause}:void 0),this.code=e.code,this.hint=e.hint,this.retryable=e.retryable??!1,this.exitCode=e.exitCode}},xn=class extends bn{name=`Incur.ValidationError`;fieldErrors;constructor(e){super(e.message,e.cause?{cause:e.cause}:void 0),this.fieldErrors=e.fieldErrors??[]}},Sn=class extends bn{name=`Incur.ParseError`;constructor(e){super(e.message,e.cause?{cause:e.cause}:void 0)}}}));function wn(e){let t=[],n=new Headers,r=new URLSearchParams,i,a,o=0;for(;o<e.length;){let n=e[o];if(n.startsWith(`--`)){let t=n.indexOf(`=`);if(t!==-1){let e=n.slice(2,t),i=n.slice(t+1);kn.has(e)?s(e,i):r.set(e,i),o++}else{let t=n.slice(2),i=e[o+1];if(i===void 0)throw Error(`Missing value for --${t}`);kn.has(t)?s(t,i):r.set(t,i),o+=2}}else if(n.startsWith(`-`)&&n.length===2){let t=n[1],r=An[t];if(r){let n=e[o+1];if(n===void 0)throw Error(`Missing value for -${t}`);s(r,n),o+=2}else o++}else t.push(n),o++}function s(e,t){if(e===`method`)i=t.toUpperCase();else if(e===`body`||e===`data`)a=t;else if(e===`header`){let e=t.indexOf(`:`);if(e!==-1){let r=t.slice(0,e).trim(),i=t.slice(e+1).trim();n.set(r,i)}}}return{path:t.length>0?`/${t.join(`/`)}`:`/`,method:i??(a===void 0?`GET`:`POST`),headers:n,body:a,query:r}}function Tn(e){let t=new URL(e.path,`http://localhost`);e.query.forEach((e,n)=>t.searchParams.set(n,e));let n={method:e.method,headers:e.headers};return e.body!==void 0&&(n.body=e.body,e.headers.has(`content-type`)||e.headers.set(`content-type`,`application/json`)),new Request(t.toString(),n)}function En(e){return e.body!==null&&e.headers.get(`content-type`)===`application/x-ndjson`}async function*Dn(e){let t=e.body.getReader(),n=new TextDecoder,r=``;for(;;){let{value:e,done:i}=await t.read();if(i)break;r+=n.decode(e,{stream:!0});let a;for(;(a=r.indexOf(`
49
+ `))!==-1;){let e=r.slice(0,a).trim();if(r=r.slice(a+1),e.length!==0)try{yield JSON.parse(e)}catch{yield e}}}let i=r.trim();if(i.length>0)try{yield JSON.parse(i)}catch{yield i}}async function On(e){let t=await e.text(),n;try{n=JSON.parse(t)}catch{n=t}return{ok:e.ok,status:e.status,data:n,headers:e.headers}}var kn,An,jn=F((()=>{kn=new Set([`method`,`body`,`data`,`header`]),An={X:`method`,d:`data`,H:`header`}}));function Mn(e){let t=[],n=[],r=``,i=0;for(let t=0;t<e.length;t++){let a=e[t];a===`[`?i++:a===`]`&&i--,a===`,`&&i===0?(n.push(r),r=``):r+=a}r&&n.push(r);for(let e of n){let n=[],r=e;for(;r.length>0;){let e=r.indexOf(`[`);if(e===-1){for(let e of r.split(`.`))e&&n.push({key:e});break}let t=r.slice(0,e);for(let e of t.split(`.`))e&&n.push({key:e});let i=r.indexOf(`]`,e),[a,o]=r.slice(e+1,i).split(`,`);n.push({start:Number(a),end:Number(o)}),r=r.slice(i+1),r.startsWith(`.`)&&(r=r.slice(1))}t.push(n)}return t}function Nn(e,t){if(t.length===0)return e;if(t.length===1&&t[0].length===1&&`key`in t[0][0]){let n=t[0][0].key;if(Array.isArray(e))return e.map(e=>Nn(e,t));if(typeof e==`object`&&e){let t=e[n];return typeof t!=`object`||!t?t:{[n]:t}}return}if(Array.isArray(e))return e.map(e=>Nn(e,t));let n={};for(let r of t)Pn(n,e,r,0);return n}function Pn(e,t,n,r){if(r>=n.length||typeof t!=`object`||!t)return;let i=n[r];if(`key`in i){let a=t[i.key];if(a===void 0)return;if(r+1>=n.length){e[i.key]=a;return}let o=n[r+1];if(`start`in o){if(!Array.isArray(a))return;let t=a.slice(o.start,o.end);if(r+2>=n.length){e[i.key]=t;return}e[i.key]=t.map(e=>{let t={};return Pn(t,e,n,r+2),t});return}if(typeof a!=`object`||!a)return;(!e[i.key]||typeof e[i.key]!=`object`)&&(e[i.key]={}),Pn(e[i.key],a,n,r+1);return}}var Fn=F((()=>{}));function In(e){return e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\t/g,`\\t`).replace(/[\u0000-\u001F]/g,e=>`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`)}function Ln(e){return e===`true`||e===`false`||e===`null`}function Rn(e,t,n){if(t===`__proto__`){Object.defineProperty(e,t,{value:n,enumerable:!0,writable:!0,configurable:!0});return}e[t]=n}function zn(e){if(e===null)return null;if(typeof e==`object`&&e&&`toJSON`in e&&typeof e.toJSON==`function`){let t=e.toJSON();if(t!==e)return zn(t)}if(typeof e==`string`||typeof e==`boolean`)return e;if(typeof e==`number`)return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e==`bigint`)return e>=-(2**53-1)&&e<=2**53-1?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(zn);if(e instanceof Set)return Array.from(e).map(zn);if(e instanceof Map)return Object.fromEntries(Array.from(e,([e,t])=>[String(e),zn(t)]));if(Wn(e)){let t={};for(let n in e)Object.hasOwn(e,n)&&Rn(t,n,zn(e[n]));return t}return null}function Bn(e){return e===null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}function Vn(e){return Array.isArray(e)}function Hn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Un(e){return Object.keys(e).length===0}function Wn(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Gn(e){return e.length===0||e.every(e=>Bn(e))}function Kn(e){return e.length===0||e.every(e=>Vn(e))}function qn(e){return e.length===0||e.every(e=>Hn(e))}function Jn(e){return/^[A-Z_][\w.]*$/i.test(e)}function Yn(e){return/^[A-Z_]\w*$/i.test(e)}function Xn(e,t=Ar){return!(!e||e!==e.trim()||Ln(e)||Zn(e)||e.includes(`:`)||e.includes(`"`)||e.includes(`\\`)||/[[\]{}]/.test(e)||/[\u0000-\u001F]/.test(e)||e.includes(t)||e.startsWith(`-`))}function Zn(e){return jr.test(e)||Mr.test(e)}function Qn(e,t,n,r,i,a,o){if(r.keyFolding!==`safe`||!Hn(t))return;let{segments:s,tail:c,leafValue:l}=$n(e,t,o??r.flattenDepth);if(s.length<2||!s.every(e=>Yn(e)))return;let u=er(s),d=a?`${a}.${u}`:u;if(!n.includes(u)&&!(i&&i.has(d)))return{foldedKey:u,remainder:c,leafValue:l,segmentCount:s.length}}function $n(e,t,n){let r=[e],i=t;for(;r.length<n&&Hn(i);){let e=Object.keys(i);if(e.length!==1)break;let t=e[0],n=i[t];r.push(t),i=n}return!Hn(i)||Un(i)?{segments:r,tail:void 0,leafValue:i}:{segments:r,tail:i,leafValue:i}}function er(e){return e.join(`.`)}function tr(e,t){return e===null?Or:typeof e==`boolean`||typeof e==`number`?String(e):nr(e,t)}function nr(e,t=Ar){return Xn(e,t)?e:`"${In(e)}"`}function rr(e){return Jn(e)?e:`"${In(e)}"`}function ir(e,t=Ar){return e.map(e=>tr(e,t)).join(t)}function ar(e,t){let n=t?.key,r=t?.fields,i=t?.delimiter??`,`,a=``;if(n!=null&&(a+=rr(n)),a+=`[${e}${i===Ar?``:i}]`,r){let e=r.map(e=>rr(e));a+=`{${e.join(i)}}`}return a+=`:`,a}function*or(e,t,n){if(Bn(e)){let n=tr(e,t.delimiter);n!==``&&(yield n);return}Vn(e)?yield*lr(void 0,e,n,t):Hn(e)&&(yield*sr(e,n,t))}function*sr(e,t,n,r,i,a){let o=Object.keys(e);t===0&&!r&&(r=new Set(o.filter(e=>e.includes(`.`))));let s=a??n.flattenDepth;for(let[a,c]of Object.entries(e))yield*cr(a,c,t,n,o,r,i,s)}function*cr(e,t,n,r,i,a,o,s){let c=o?`${o}.${e}`:e,l=s??r.flattenDepth;if(r.keyFolding===`safe`&&i){let s=Qn(e,t,i,r,a,o,l);if(s){let{foldedKey:e,remainder:t,leafValue:i,segmentCount:c}=s,u=rr(e);if(t===void 0){if(Bn(i)){yield yr(n,`${u}: ${tr(i,r.delimiter)}`,r.indent);return}if(Vn(i)){yield*lr(e,i,n,r);return}if(Hn(i)&&Un(i)){yield yr(n,`${u}:`,r.indent);return}}if(Hn(t)){yield yr(n,`${u}:`,r.indent);let i=l-c,s=o?`${o}.${e}`:e;yield*sr(t,n+1,r,a,s,i);return}}}let u=rr(e);Bn(t)?yield yr(n,`${u}: ${tr(t,r.delimiter)}`,r.indent):Vn(t)?yield*lr(e,t,n,r):Hn(t)&&(yield yr(n,`${u}:`,r.indent),Un(t)||(yield*sr(t,n+1,r,a,c,l)))}function*lr(e,t,n,r){if(t.length===0){yield yr(n,e==null?`[]`:`${rr(e)}: []`,r.indent);return}if(Gn(t)){yield yr(n,dr(t,r.delimiter,e),r.indent);return}if(Kn(t)&&t.every(e=>Gn(e))){yield*ur(e,t,n,r);return}if(qn(t)){let i=pr(t);i?yield*fr(e,t,i,n,r):yield*gr(e,t,n,r);return}yield*gr(e,t,n,r)}function*ur(e,t,n,r){yield yr(n,ar(t.length,{key:e,delimiter:r.delimiter}),r.indent);for(let e of t)if(Gn(e)){let t=dr(e,r.delimiter);yield br(n+1,t,r.indent)}}function dr(e,t,n){let r=ar(e.length,{key:n,delimiter:t}),i=ir(e,t);return e.length===0?r:`${r} ${i}`}function*fr(e,t,n,r,i){yield yr(r,ar(t.length,{key:e,fields:n,delimiter:i.delimiter}),i.indent),yield*hr(t,n,r+1,i)}function pr(e){if(e.length===0)return;let t=e[0],n=Object.keys(t);if(n.length!==0&&mr(e,n))return n}function mr(e,t){for(let n of e){if(Object.keys(n).length!==t.length)return!1;for(let e of t)if(!Object.hasOwn(n,e)||!Bn(n[e]))return!1}return!0}function*hr(e,t,n,r){for(let i of e)yield yr(n,ir(t.map(e=>i[e]),r.delimiter),r.indent)}function*gr(e,t,n,r){yield yr(n,ar(t.length,{key:e,delimiter:r.delimiter}),r.indent);for(let e of t)yield*vr(e,n+1,r)}function*_r(e,t,n){if(Un(e)){yield yr(t,`-`,n.indent);return}let r=Object.entries(e),[i,a]=r[0],o=r.slice(1);if(Vn(a)&&qn(a)){let e=pr(a);if(e){yield br(t,ar(a.length,{key:i,fields:e,delimiter:n.delimiter}),n.indent),yield*hr(a,e,t+2,n),o.length>0&&(yield*sr(Object.fromEntries(o),t+1,n));return}}let s=rr(i);if(Bn(a))yield br(t,`${s}: ${tr(a,n.delimiter)}`,n.indent);else if(Vn(a)){if(a.length===0)yield br(t,`${s}: []`,n.indent);else if(Gn(a))yield br(t,`${s}${dr(a,n.delimiter)}`,n.indent);else{yield br(t,`${s}${ar(a.length,{delimiter:n.delimiter})}`,n.indent);for(let e of a)yield*vr(e,t+2,n)}}else Hn(a)&&(yield br(t,`${s}:`,n.indent),Un(a)||(yield*sr(a,t+2,n)));o.length>0&&(yield*sr(Object.fromEntries(o),t+1,n))}function*vr(e,t,n){if(Bn(e))yield br(t,tr(e,n.delimiter),n.indent);else if(Vn(e)){if(Gn(e))yield br(t,dr(e,n.delimiter),n.indent);else{yield br(t,ar(e.length,{delimiter:n.delimiter}),n.indent);for(let r of e)yield*vr(r,t+1,n)}}else Hn(e)&&(yield*_r(e,t,n))}function yr(e,t,n){return` `.repeat(n*e)+t}function br(e,t,n){return yr(e,`- `+t,n)}function xr(e,t){let n=t(``,e,[]);return Sr(n===void 0?e:zn(n),t,[])}function Sr(e,t,n){return Hn(e)?Cr(e,t,n):Vn(e)?wr(e,t,n):e}function Cr(e,t,n){let r={};for(let[i,a]of Object.entries(e)){let e=[...n,i],o=t(i,a,e);o!==void 0&&Rn(r,i,Sr(zn(o),t,e))}return r}function wr(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=e[i],o=[...n,i],s=t(String(i),a,o);if(s===void 0)continue;let c=zn(s);r.push(Sr(c,t,o))}return r}function Tr(e,t){return Array.from(Er(e,t)).join(`
50
+ `)}function Er(e,t){let n=zn(e),r=Dr(t);return or(r.replacer?xr(n,r.replacer):n,r,0)}function Dr(e){return{indent:e?.indent??2,delimiter:e?.delimiter??Ar,keyFolding:e?.keyFolding??`off`,flattenDepth:e?.flattenDepth??1/0,replacer:e?.replacer}}var Or,kr,Ar,jr,Mr,Nr=F((()=>{Or=`null`,kr={comma:`,`,tab:` `,pipe:`|`},Ar=kr.comma,jr=/^-?\d+(?:\.\d+)?(?:e[+-]?\d+)?$/i,Mr=/^0\d+$/}));function Pr(e,t){return JSON.stringify(e,(e,t)=>typeof t==`bigint`?t.toString():t,t)}function Fr(e){return JSON.parse(Pr(e))}var Ir=F((()=>{}));function Lr(e){if(e&&typeof e==`object`)switch(e[Gr]){case Vr:case Wr:return!0}return!1}function Rr(e){if(e&&typeof e==`object`)switch(e[Gr]){case zr:case Vr:case Ur:case Wr:return!0}return!1}var zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,L=F((()=>{zr=Symbol.for(`yaml.alias`),Br=Symbol.for(`yaml.document`),Vr=Symbol.for(`yaml.map`),Hr=Symbol.for(`yaml.pair`),Ur=Symbol.for(`yaml.scalar`),Wr=Symbol.for(`yaml.seq`),Gr=Symbol.for(`yaml.node.type`),Kr=e=>!!e&&typeof e==`object`&&e[Gr]===zr,qr=e=>!!e&&typeof e==`object`&&e[Gr]===Br,Jr=e=>!!e&&typeof e==`object`&&e[Gr]===Vr,Yr=e=>!!e&&typeof e==`object`&&e[Gr]===Hr,Xr=e=>!!e&&typeof e==`object`&&e[Gr]===Ur,Zr=e=>!!e&&typeof e==`object`&&e[Gr]===Wr,Qr=e=>(Xr(e)||Lr(e))&&!!e.anchor}));function $r(e,t){let n=ri(t);qr(e)?ei(null,e.contents,n,Object.freeze([e]))===ci&&(e.contents=null):ei(null,e,n,Object.freeze([]))}function ei(e,t,n,r){let i=ii(e,t,n,r);if(Rr(i)||Yr(i))return ai(e,r,i),ei(e,i,n,r);if(typeof i!=`symbol`){if(Lr(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=ei(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===oi)return oi;else i===ci&&(t.items.splice(e,1),--e)}}else if(Yr(t)){r=Object.freeze(r.concat(t));let e=ei(`key`,t.key,n,r);if(e===oi)return oi;e===ci&&(t.key=null);let i=ei(`value`,t.value,n,r);if(i===oi)return oi;i===ci&&(t.value=null)}}return i}async function ti(e,t){let n=ri(t);qr(e)?await ni(null,e.contents,n,Object.freeze([e]))===ci&&(e.contents=null):await ni(null,e,n,Object.freeze([]))}async function ni(e,t,n,r){let i=await ii(e,t,n,r);if(Rr(i)||Yr(i))return ai(e,r,i),ni(e,i,n,r);if(typeof i!=`symbol`){if(Lr(t)){r=Object.freeze(r.concat(t));for(let e=0;e<t.items.length;++e){let i=await ni(e,t.items[e],n,r);if(typeof i==`number`)e=i-1;else if(i===oi)return oi;else i===ci&&(t.items.splice(e,1),--e)}}else if(Yr(t)){r=Object.freeze(r.concat(t));let e=await ni(`key`,t.key,n,r);if(e===oi)return oi;e===ci&&(t.key=null);let i=await ni(`value`,t.value,n,r);if(i===oi)return oi;i===ci&&(t.value=null)}}return i}function ri(e){return typeof e==`object`&&(e.Collection||e.Node||e.Value)?Object.assign({Alias:e.Node,Map:e.Node,Scalar:e.Node,Seq:e.Node},e.Value&&{Map:e.Value,Scalar:e.Value,Seq:e.Value},e.Collection&&{Map:e.Collection,Seq:e.Collection},e):e}function ii(e,t,n,r){if(typeof n==`function`)return n(e,t,r);if(Jr(t))return n.Map?.(e,t,r);if(Zr(t))return n.Seq?.(e,t,r);if(Yr(t))return n.Pair?.(e,t,r);if(Xr(t))return n.Scalar?.(e,t,r);if(Kr(t))return n.Alias?.(e,t,r)}function ai(e,t,n){let r=t[t.length-1];if(Lr(r))r.items[e]=n;else if(Yr(r))e===`key`?r.key=n:r.value=n;else if(qr(r))r.contents=n;else{let e=Kr(r)?`alias`:`scalar`;throw Error(`Cannot replace node with ${e} parent`)}}var oi,si,ci,li=F((()=>{L(),oi=Symbol(`break visit`),si=Symbol(`skip children`),ci=Symbol(`remove node`),$r.BREAK=oi,$r.SKIP=si,$r.REMOVE=ci,ti.BREAK=oi,ti.SKIP=si,ti.REMOVE=ci})),ui,di,fi,pi=F((()=>{L(),li(),ui={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},di=e=>e.replace(/[!,[\]{}]/g,e=>ui[e]),fi=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags)}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+di(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],n=Object.entries(this.tags),r;if(e&&n.length>0&&Rr(e.contents)){let t={};$r(e.contents,(e,n)=>{Rr(n)&&n.tag&&(t[n.tag]=!0)}),r=Object.keys(t)}else r=[];for(let[i,a]of n)(i!==`!!`||a!==`tag:yaml.org,2002:`)&&(!e||r.some(e=>e.startsWith(a)))&&t.push(`%TAG ${i} ${a}`);return t.join(`
51
+ `)}},fi.defaultYaml={explicit:!1,version:`1.2`},fi.defaultTags={"!!":`tag:yaml.org,2002:`}}));function mi(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function hi(e){let t=new Set;return $r(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function gi(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function _i(e,t){let n=[],r=new Map,i=null;return{onAnchor:r=>{n.push(r),i??=hi(e);let a=gi(t,i);return i.add(a),a},setAnchors:()=>{for(let e of n){let t=r.get(e);if(typeof t==`object`&&t.anchor&&(Xr(t.node)||Lr(t.node)))t.node.anchor=t.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:r}}var vi=F((()=>{L(),li()}));function yi(e,t,n,r){if(r&&typeof r==`object`){if(Array.isArray(r))for(let t=0,n=r.length;t<n;++t){let n=r[t],i=yi(e,r,String(t),n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}else if(r instanceof Map)for(let t of Array.from(r.keys())){let n=r.get(t),i=yi(e,r,t,n);i===void 0?r.delete(t):i!==n&&r.set(t,i)}else if(r instanceof Set)for(let t of Array.from(r)){let n=yi(e,r,t,t);n===void 0?r.delete(t):n!==t&&(r.delete(t),r.add(n))}else for(let[t,n]of Object.entries(r)){let i=yi(e,r,t,n);i===void 0?delete r[t]:i!==n&&(r[t]=i)}}return e.call(t,n,r)}var bi=F((()=>{}));function xi(e,t,n){if(Array.isArray(e))return e.map((e,t)=>xi(e,String(t),n));if(e&&typeof e.toJSON==`function`){if(!n||!Qr(e))return e.toJSON(t,n);let r={aliasCount:0,count:1,res:void 0};n.anchors.set(e,r),n.onCreate=e=>{r.res=e,delete n.onCreate};let i=e.toJSON(t,n);return n.onCreate&&n.onCreate(i),i}return typeof e==`bigint`&&!n?.keep?Number(e):e}var Si=F((()=>{L()})),Ci,wi=F((()=>{bi(),L(),Si(),Ci=class{constructor(e){Object.defineProperty(this,Gr,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:n,onAnchor:r,reviver:i}={}){if(!qr(e))throw TypeError(`A document argument is required`);let a={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof n==`number`?n:100},o=xi(this,``,a);if(typeof r==`function`)for(let{count:e,res:t}of a.anchors.values())r(t,e);return typeof i==`function`?yi(i,{"":o},``,o):o}}}));function Ti(e,t,n){if(Kr(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}if(Lr(t)){let r=0;for(let i of t.items){let t=Ti(e,i,n);t>r&&(r=t)}return r}if(Yr(t)){let r=Ti(e,t.key,n),i=Ti(e,t.value,n);return Math.max(r,i)}return 1}var Ei,Di=F((()=>{vi(),li(),L(),wi(),Si(),Ei=class extends Ci{constructor(e){super(zr),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let n;t?.aliasResolveCache?n=t.aliasResolveCache:(n=[],$r(e,{Node:(e,t)=>{(Kr(t)||Qr(t))&&n.push(t)}}),t&&(t.aliasResolveCache=n));let r;for(let e of n){if(e===this)break;e.anchor===this.source&&(r=e)}return r}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,a=this.resolve(r,t);if(!a){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let o=n.get(a);if(o||=(xi(a,null,t),n.get(a)),o?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(o.count+=1,o.aliasCount===0&&(o.aliasCount=Ti(r,a,n)),o.count*o.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return o.res}toString(e,t,n){let r=`*${this.source}`;if(e){if(mi(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${r} `}return r}}})),Oi,R,ki=F((()=>{L(),wi(),Si(),Oi=e=>!e||typeof e!=`function`&&typeof e!=`object`,R=class extends Ci{constructor(e){super(Ur),this.value=e}toJSON(e,t){return t?.keep?this.value:xi(this.value,e,t)}toString(){return String(this.value)}},R.BLOCK_FOLDED=`BLOCK_FOLDED`,R.BLOCK_LITERAL=`BLOCK_LITERAL`,R.PLAIN=`PLAIN`,R.QUOTE_DOUBLE=`QUOTE_DOUBLE`,R.QUOTE_SINGLE=`QUOTE_SINGLE`}));function Ai(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function ji(e,t,n){if(qr(e)&&(e=e.contents),Rr(e))return e;if(Yr(e)){let t=n.schema[Vr].createNode?.(n.schema,null,n);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:r,onAnchor:i,onTagObj:a,schema:o,sourceObjects:s}=n,c;if(r&&e&&typeof e==`object`){if(c=s.get(e),c)return c.anchor??(c.anchor=i(e)),new Ei(c.anchor);c={anchor:null,node:null},s.set(e,c)}t?.startsWith(`!!`)&&(t=Mi+t.slice(2));let l=Ai(e,t,o.tags);if(!l){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new R(e);return c&&(c.node=t),t}l=e instanceof Map?o[Vr]:Symbol.iterator in Object(e)?o[Wr]:o[Vr]}a&&(a(l),delete n.onTagObj);let u=l?.createNode?l.createNode(n.schema,e,n):typeof l?.nodeClass?.from==`function`?l.nodeClass.from(n.schema,e,n):new R(e);return t?u.tag=t:l.default||(u.tag=l.tag),c&&(c.node=u),u}var Mi,Ni=F((()=>{Di(),L(),ki(),Mi=`tag:yaml.org,2002:`}));function Pi(e,t,n){let r=n;for(let e=t.length-1;e>=0;--e){let n=t[e];if(typeof n==`number`&&Number.isInteger(n)&&n>=0){let e=[];e[n]=r,r=e}else r=new Map([[n,r]])}return ji(r,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}var Fi,Ii,Li=F((()=>{Ni(),L(),wi(),Fi=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done,Ii=class extends Ci{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>Rr(t)||Yr(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(Fi(e))this.add(t);else{let[n,...r]=e,i=this.get(n,!0);if(Lr(i))i.addIn(r,t);else if(i===void 0&&this.schema)this.set(n,Pi(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}deleteIn(e){let[t,...n]=e;if(n.length===0)return this.delete(t);let r=this.get(t,!0);if(Lr(r))return r.deleteIn(n);throw Error(`Expected YAML collection at ${t}. Remaining path: ${n}`)}getIn(e,t){let[n,...r]=e,i=this.get(n,!0);return r.length===0?!t&&Xr(i)?i.value:i:Lr(i)?i.getIn(r,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!Yr(t))return!1;let n=t.value;return n==null||e&&Xr(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(e){let[t,...n]=e;if(n.length===0)return this.has(t);let r=this.get(t,!0);return Lr(r)?r.hasIn(n):!1}setIn(e,t){let[n,...r]=e;if(r.length===0)this.set(n,t);else{let e=this.get(n,!0);if(Lr(e))e.setIn(r,t);else if(e===void 0&&this.schema)this.set(n,Pi(this.schema,r,t));else throw Error(`Expected YAML collection at ${n}. Remaining path: ${r}`)}}}}));function Ri(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var zi,Bi,Vi=F((()=>{zi=e=>e.replace(/^(?!$)(?: $)?/gm,`#`),Bi=(e,t,n)=>e.endsWith(`
52
+ `)?Ri(n,t):n.includes(`
53
53
  `)?`
54
- `+Fi(n,t):(e.endsWith(` `)?``:` `)+n}));function zi(e,t,n=`flow`,{indentAtStart:r,lineWidth:i=80,minContentWidth:a=20,onFold:o,onOverflow:s}={}){if(!i||i<0)return e;i<a&&(a=0);let c=Math.max(1+a,1+i-t.length);if(e.length<=c)return e;let l=[],u={},d=i-t.length;typeof r==`number`&&(r>i-Math.max(2,a)?l.push(0):d=i-r);let f,p,m=!1,h=-1,g=-1,_=-1;n===`block`&&(h=Bi(e,h,t.length),h!==-1&&(d=h+c));for(let r;r=e[h+=1];){if(n===`quoted`&&r===`\\`){switch(g=h,e[h+1]){case`x`:h+=3;break;case`u`:h+=5;break;case`U`:h+=9;break;default:h+=1}_=h}if(r===`
55
- `)n===`block`&&(h=Bi(e,h,t.length)),d=h+t.length+c,f=void 0;else{if(r===` `&&p&&p!==` `&&p!==`
54
+ `+Ri(n,t):(e.endsWith(` `)?``:` `)+n}));function Hi(e,t,n=`flow`,{indentAtStart:r,lineWidth:i=80,minContentWidth:a=20,onFold:o,onOverflow:s}={}){if(!i||i<0)return e;i<a&&(a=0);let c=Math.max(1+a,1+i-t.length);if(e.length<=c)return e;let l=[],u={},d=i-t.length;typeof r==`number`&&(r>i-Math.max(2,a)?l.push(0):d=i-r);let f,p,m=!1,h=-1,g=-1,_=-1;n===`block`&&(h=Ui(e,h,t.length),h!==-1&&(d=h+c));for(let r;r=e[h+=1];){if(n===`quoted`&&r===`\\`){switch(g=h,e[h+1]){case`x`:h+=3;break;case`u`:h+=5;break;case`U`:h+=9;break;default:h+=1}_=h}if(r===`
55
+ `)n===`block`&&(h=Ui(e,h,t.length)),d=h+t.length+c,f=void 0;else{if(r===` `&&p&&p!==` `&&p!==`
56
56
  `&&p!==` `){let t=e[h+1];t&&t!==` `&&t!==`
57
- `&&t!==` `&&(f=h)}if(h>=d){if(f)l.push(f),d=f+c,f=void 0;else if(n===`quoted`){for(;p===` `||p===` `;)p=r,r=e[h+=1],m=!0;let t=h>_+1?h-2:g-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else m=!0}}p=r}if(m&&s&&s(),l.length===0)return e;o&&o();let v=e.slice(0,l[0]);for(let r=0;r<l.length;++r){let i=l[r],a=l[r+1]||e.length;i===0?v=`\n${t}${e.slice(0,a)}`:(n===`quoted`&&u[i]&&(v+=`${e[i]}\\`),v+=`\n${t}${e.slice(i+1,a)}`)}return v}function Bi(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
58
- `);r=t,i=t+1,a=e[i]}return r}var Vi,Hi,Ui,Wi=L((()=>{Vi=`flow`,Hi=`block`,Ui=`quoted`}));function Gi(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
59
- `){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function Ki(e,t){let n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;let{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,a=t.indent||($i(e)?` `:``),o=``,s=0;for(let e=0,t=n[e];t;t=n[++e])if(t===` `&&n[e+1]===`\\`&&n[e+2]===`n`&&(o+=n.slice(s,e)+`\\ `,e+=1,s=e,t=`\\`),t===`\\`)switch(n[e+1]){case`u`:{o+=n.slice(s,e);let t=n.substr(e+2,4);switch(t){case`0000`:o+=`\\0`;break;case`0007`:o+=`\\a`;break;case`000b`:o+=`\\v`;break;case`001b`:o+=`\\e`;break;case`0085`:o+=`\\N`;break;case`00a0`:o+=`\\_`;break;case`2028`:o+=`\\L`;break;case`2029`:o+=`\\P`;break;default:t.substr(0,2)===`00`?o+=`\\x`+t.substr(2):o+=n.substr(e,6)}e+=5,s=e+1}break;case`n`:if(r||n[e+2]===`"`||n.length<i)e+=1;else{for(o+=n.slice(s,e)+`
57
+ `&&t!==` `&&(f=h)}if(h>=d){if(f)l.push(f),d=f+c,f=void 0;else if(n===`quoted`){for(;p===` `||p===` `;)p=r,r=e[h+=1],m=!0;let t=h>_+1?h-2:g-1;if(u[t])return e;l.push(t),u[t]=!0,d=t+c,f=void 0}else m=!0}}p=r}if(m&&s&&s(),l.length===0)return e;o&&o();let v=e.slice(0,l[0]);for(let r=0;r<l.length;++r){let i=l[r],a=l[r+1]||e.length;i===0?v=`\n${t}${e.slice(0,a)}`:(n===`quoted`&&u[i]&&(v+=`${e[i]}\\`),v+=`\n${t}${e.slice(i+1,a)}`)}return v}function Ui(e,t,n){let r=t,i=t+1,a=e[i];for(;a===` `||a===` `;)if(t<i+n)a=e[++t];else{do a=e[++t];while(a&&a!==`
58
+ `);r=t,i=t+1,a=e[i]}return r}var Wi,Gi,Ki,qi=F((()=>{Wi=`flow`,Gi=`block`,Ki=`quoted`}));function Ji(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;t<i;++t)if(e[t]===`
59
+ `){if(t-n>r)return!0;if(n=t+1,i-n<=r)return!1}return!0}function Yi(e,t){let n=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return n;let{implicitKey:r}=t,i=t.options.doubleQuotedMinMultiLineLength,a=t.indent||(na(e)?` `:``),o=``,s=0;for(let e=0,t=n[e];t;t=n[++e])if(t===` `&&n[e+1]===`\\`&&n[e+2]===`n`&&(o+=n.slice(s,e)+`\\ `,e+=1,s=e,t=`\\`),t===`\\`)switch(n[e+1]){case`u`:{o+=n.slice(s,e);let t=n.substr(e+2,4);switch(t){case`0000`:o+=`\\0`;break;case`0007`:o+=`\\a`;break;case`000b`:o+=`\\v`;break;case`001b`:o+=`\\e`;break;case`0085`:o+=`\\N`;break;case`00a0`:o+=`\\_`;break;case`2028`:o+=`\\L`;break;case`2029`:o+=`\\P`;break;default:t.substr(0,2)===`00`?o+=`\\x`+t.substr(2):o+=n.substr(e,6)}e+=5,s=e+1}break;case`n`:if(r||n[e+2]===`"`||n.length<i)e+=1;else{for(o+=n.slice(s,e)+`
60
60
 
61
61
  `;n[e+2]===`\\`&&n[e+3]===`n`&&n[e+4]!==`"`;)o+=`
62
- `,e+=2;o+=a,n[e+2]===` `&&(o+=`\\`),e+=1,s=e+1}break;default:e+=1}return o=s?o+n.slice(s):n,r?o:zi(o,a,Ui,Qi(t,!1))}function qi(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
63
- `)||/[ \t]\n|\n[ \t]/.test(e))return Ki(e,t);let n=t.indent||($i(e)?` `:``),r=`'`+e.replace(/'/g,`''`).replace(/\n+/g,`$&\n${n}`)+`'`;return t.implicitKey?r:zi(r,n,Vi,Qi(t,!1))}function Ji(e,t){let{singleQuote:n}=t.options,r;if(n===!1)r=Ki;else{let t=e.includes(`"`),i=e.includes(`'`);r=t&&!i?qi:i&&!t?Ki:n?qi:Ki}return r(e,t)}function Yi({comment:e,type:t,value:n},r,i,a){let{blockQuote:o,commentString:s,lineWidth:c}=r.options;if(!o||/\n[\t ]+$/.test(n))return Ji(n,r);let l=r.indent||(r.forceBlockIndent||$i(n)?` `:``),u=o===`literal`?!0:o===`folded`||t===B.BLOCK_FOLDED?!1:t===B.BLOCK_LITERAL||!Gi(n,c,l.length);if(!n)return u?`|
62
+ `,e+=2;o+=a,n[e+2]===` `&&(o+=`\\`),e+=1,s=e+1}break;default:e+=1}return o=s?o+n.slice(s):n,r?o:Hi(o,a,Ki,ta(t,!1))}function Xi(e,t){if(t.options.singleQuote===!1||t.implicitKey&&e.includes(`
63
+ `)||/[ \t]\n|\n[ \t]/.test(e))return Yi(e,t);let n=t.indent||(na(e)?` `:``),r=`'`+e.replace(/'/g,`''`).replace(/\n+/g,`$&\n${n}`)+`'`;return t.implicitKey?r:Hi(r,n,Wi,ta(t,!1))}function Zi(e,t){let{singleQuote:n}=t.options,r;if(n===!1)r=Yi;else{let t=e.includes(`"`),i=e.includes(`'`);r=t&&!i?Xi:i&&!t?Yi:n?Xi:Yi}return r(e,t)}function Qi({comment:e,type:t,value:n},r,i,a){let{blockQuote:o,commentString:s,lineWidth:c}=r.options;if(!o||/\n[\t ]+$/.test(n))return Zi(n,r);let l=r.indent||(r.forceBlockIndent||na(n)?` `:``),u=o===`literal`?!0:o===`folded`||t===R.BLOCK_FOLDED?!1:t===R.BLOCK_LITERAL||!Ji(n,c,l.length);if(!n)return u?`|
64
64
  `:`>
65
65
  `;let d,f;for(f=n.length;f>0;--f){let e=n[f-1];if(e!==`
66
66
  `&&e!==` `&&e!==` `)break}let p=n.substring(f),m=p.indexOf(`
67
67
  `);m===-1?d=`-`:n===p||m!==p.length-1?(d=`+`,a&&a()):d=``,p&&=(n=n.slice(0,-p.length),p[p.length-1]===`
68
- `&&(p=p.slice(0,-1)),p.replace(ea,`$&${l}`));let h=!1,g,_=-1;for(g=0;g<n.length;++g){let e=n[g];if(e===` `)h=!0;else if(e===`
68
+ `&&(p=p.slice(0,-1)),p.replace(ra,`$&${l}`));let h=!1,g,_=-1;for(g=0;g<n.length;++g){let e=n[g];if(e===` `)h=!0;else if(e===`
69
69
  `)_=g;else break}let v=n.substring(0,_<g?_+1:g);v&&=(n=n.substring(v.length),v.replace(/\n+/g,`$&${l}`));let y=(h?l?`2`:`1`:``)+d;if(e&&(y+=` `+s(e.replace(/ ?[\r\n]+/g,` `)),i&&i()),!u){let e=n.replace(/\n+/g,`
70
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`),i=!1,a=Qi(r,!0);o!==`folded`&&t!==B.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let s=zi(`${v}${e}${p}`,l,Hi,a);if(!i)return`>${y}\n${l}${s}`}return n=n.replace(/\n+/g,`$&${l}`),`|${y}\n${l}${v}${n}${p}`}function Xi(e,t,n,r){let{type:i,value:a}=e,{actualString:o,implicitKey:s,indent:c,indentStep:l,inFlow:u}=t;if(s&&a.includes(`
71
- `)||u&&/[[\]{},]/.test(a))return Ji(a,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return s||u||!a.includes(`
72
- `)?Ji(a,t):Yi(e,t,n,r);if(!s&&!u&&i!==B.PLAIN&&a.includes(`
73
- `))return Yi(e,t,n,r);if($i(a)){if(c===``)return t.forceBlockIndent=!0,Yi(e,t,n,r);if(s&&c===l)return Ji(a,t)}let d=a.replace(/\n+/g,`$&\n${c}`);if(o){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(d),{compat:n,tags:r}=t.doc.schema;if(r.some(e)||n?.some(e))return Ji(a,t)}return s?d:zi(d,c,Vi,Qi(t,!1))}function Zi(e,t,n,r){let{implicitKey:i,inFlow:a}=t,o=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:s}=e;s!==B.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(s=B.QUOTE_DOUBLE);let c=e=>{switch(e){case B.BLOCK_FOLDED:case B.BLOCK_LITERAL:return i||a?Ji(o.value,t):Yi(o,t,n,r);case B.QUOTE_DOUBLE:return Ki(o.value,t);case B.QUOTE_SINGLE:return qi(o.value,t);case B.PLAIN:return Xi(o,t,n,r);default:return null}},l=c(s);if(l===null){let{defaultKeyType:e,defaultStringType:n}=t.options,r=i&&e||n;if(l=c(r),l===null)throw Error(`Unsupported default string type ${r}`)}return l}var Qi,$i,ea,ta=L((()=>{Ei(),Wi(),Qi=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),$i=e=>/^(%|---|\.\.\.)/m.test(e);try{ea=RegExp(`(^|(?<!
70
+ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\n+/g,`$&${l}`),i=!1,a=ta(r,!0);o!==`folded`&&t!==R.BLOCK_FOLDED&&(a.onOverflow=()=>{i=!0});let s=Hi(`${v}${e}${p}`,l,Gi,a);if(!i)return`>${y}\n${l}${s}`}return n=n.replace(/\n+/g,`$&${l}`),`|${y}\n${l}${v}${n}${p}`}function $i(e,t,n,r){let{type:i,value:a}=e,{actualString:o,implicitKey:s,indent:c,indentStep:l,inFlow:u}=t;if(s&&a.includes(`
71
+ `)||u&&/[[\]{},]/.test(a))return Zi(a,t);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(a))return s||u||!a.includes(`
72
+ `)?Zi(a,t):Qi(e,t,n,r);if(!s&&!u&&i!==R.PLAIN&&a.includes(`
73
+ `))return Qi(e,t,n,r);if(na(a)){if(c===``)return t.forceBlockIndent=!0,Qi(e,t,n,r);if(s&&c===l)return Zi(a,t)}let d=a.replace(/\n+/g,`$&\n${c}`);if(o){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(d),{compat:n,tags:r}=t.doc.schema;if(r.some(e)||n?.some(e))return Zi(a,t)}return s?d:Hi(d,c,Wi,ta(t,!1))}function ea(e,t,n,r){let{implicitKey:i,inFlow:a}=t,o=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:s}=e;s!==R.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(o.value)&&(s=R.QUOTE_DOUBLE);let c=e=>{switch(e){case R.BLOCK_FOLDED:case R.BLOCK_LITERAL:return i||a?Zi(o.value,t):Qi(o,t,n,r);case R.QUOTE_DOUBLE:return Yi(o.value,t);case R.QUOTE_SINGLE:return Xi(o.value,t);case R.PLAIN:return $i(o,t,n,r);default:return null}},l=c(s);if(l===null){let{defaultKeyType:e,defaultStringType:n}=t.options,r=i&&e||n;if(l=c(r),l===null)throw Error(`Unsupported default string type ${r}`)}return l}var ta,na,ra,ia=F((()=>{ki(),qi(),ta=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),na=e=>/^(%|---|\.\.\.)/m.test(e);try{ra=RegExp(`(^|(?<!
74
74
  ))
75
75
  +(?!
76
- |$)`,`g`)}catch{ea=/\n+(?!\n|$)/g}}));function na(e,t){let n=Object.assign({blockQuote:!0,commentString:Ii,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),r;switch(n.collectionStyle){case`block`:r=!1;break;case`flow`:r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:r,options:n}}function ra(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let n,r;if(qr(t)){r=t.value;let i=e.filter(e=>e.identify?.(r));if(i.length>1){let e=i.filter(e=>e.test);e.length>0&&(i=e)}n=i.find(e=>e.format===t.format)??i.find(e=>!e.format)}else r=t,n=e.find(e=>e.nodeClass&&r instanceof e.nodeClass);if(!n){let e=r?.constructor?.name??(r===null?`null`:typeof r);throw Error(`Tag not resolved for ${e} value`)}return n}function ia(e,t,{anchors:n,doc:r}){if(!r.directives)return``;let i=[],a=(qr(e)||Pr(e))&&e.anchor;a&&di(a)&&(n.add(a),i.push(`&${a}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(` `)}function aa(e,t,n,r){if(Kr(e))return e.toString(t,n,r);if(Ur(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,a=Fr(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i??=ra(t.doc.schema.tags,a);let o=ia(a,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let s=typeof i.stringify==`function`?i.stringify(a,t,n,r):qr(a)?Zi(a,t,n,r):a.toString(t,n,r);return o?qr(a)||s[0]===`{`||s[0]===`[`?`${o} ${s}`:`${o}\n${t.indent}${s}`:s}var oa=L((()=>{hi(),z(),Ri(),ta()}));function sa({key:e,value:t},n,r,i){let{allNullValues:a,doc:o,indent:s,indentStep:c,options:{commentString:l,indentSeq:u,simpleKeys:d}}=n,f=Fr(e)&&e.comment||null;if(d){if(f)throw Error(`With simple keys, key nodes cannot have comments`);if(Pr(e)||!Fr(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let p=!d&&(!e||f&&t==null&&!n.inFlow||Pr(e)||(qr(e)?e.type===B.BLOCK_FOLDED||e.type===B.BLOCK_LITERAL:typeof e==`object`));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!a),indent:s+c});let m=!1,h=!1,g=aa(e,n,()=>m=!0,()=>h=!0);if(!p&&!n.inFlow&&g.length>1024){if(d)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);p=!0}if(n.inFlow){if(a||t==null)return m&&r&&r(),g===``?`?`:p?`? ${g}`:g}else if(a&&!d||t==null&&p)return g=`? ${g}`,f&&!m?g+=Li(g,n.indent,l(f)):h&&i&&i(),g;m&&(f=null),p?(f&&(g+=Li(g,n.indent,l(f))),g=`? ${g}\n${s}:`):(g=`${g}:`,f&&(g+=Li(g,n.indent,l(f))));let _,v,y;Fr(t)?(_=!!t.spaceBefore,v=t.commentBefore,y=t.comment):(_=!1,v=null,y=null,t&&typeof t==`object`&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!f&&qr(t)&&(n.indentAtStart=g.length+1),h=!1,!u&&c.length>=2&&!n.inFlow&&!p&&Jr(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let b=!1,x=aa(t,n,()=>b=!0,()=>h=!0),S=` `;if(f||_||v){if(S=_?`
77
- `:``,v){let e=l(v);S+=`\n${Fi(e,n.indent)}`}x===``&&!n.inFlow?S===`
76
+ |$)`,`g`)}catch{ra=/\n+(?!\n|$)/g}}));function aa(e,t){let n=Object.assign({blockQuote:!0,commentString:zi,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),r;switch(n.collectionStyle){case`block`:r=!1;break;case`flow`:r=!0;break;default:r=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:r,options:n}}function oa(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let n,r;if(Xr(t)){r=t.value;let i=e.filter(e=>e.identify?.(r));if(i.length>1){let e=i.filter(e=>e.test);e.length>0&&(i=e)}n=i.find(e=>e.format===t.format)??i.find(e=>!e.format)}else r=t,n=e.find(e=>e.nodeClass&&r instanceof e.nodeClass);if(!n){let e=r?.constructor?.name??(r===null?`null`:typeof r);throw Error(`Tag not resolved for ${e} value`)}return n}function sa(e,t,{anchors:n,doc:r}){if(!r.directives)return``;let i=[],a=(Xr(e)||Lr(e))&&e.anchor;a&&mi(a)&&(n.add(a),i.push(`&${a}`));let o=e.tag??(t.default?null:t.tag);return o&&i.push(r.directives.tagString(o)),i.join(` `)}function ca(e,t,n,r){if(Yr(e))return e.toString(t,n,r);if(Kr(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let i,a=Rr(e)?e:t.doc.createNode(e,{onTagObj:e=>i=e});i??=oa(t.doc.schema.tags,a);let o=sa(a,i,t);o.length>0&&(t.indentAtStart=(t.indentAtStart??0)+o.length+1);let s=typeof i.stringify==`function`?i.stringify(a,t,n,r):Xr(a)?ea(a,t,n,r):a.toString(t,n,r);return o?Xr(a)||s[0]===`{`||s[0]===`[`?`${o} ${s}`:`${o}\n${t.indent}${s}`:s}var la=F((()=>{vi(),L(),Vi(),ia()}));function ua({key:e,value:t},n,r,i){let{allNullValues:a,doc:o,indent:s,indentStep:c,options:{commentString:l,indentSeq:u,simpleKeys:d}}=n,f=Rr(e)&&e.comment||null;if(d){if(f)throw Error(`With simple keys, key nodes cannot have comments`);if(Lr(e)||!Rr(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let p=!d&&(!e||f&&t==null&&!n.inFlow||Lr(e)||(Xr(e)?e.type===R.BLOCK_FOLDED||e.type===R.BLOCK_LITERAL:typeof e==`object`));n=Object.assign({},n,{allNullValues:!1,implicitKey:!p&&(d||!a),indent:s+c});let m=!1,h=!1,g=ca(e,n,()=>m=!0,()=>h=!0);if(!p&&!n.inFlow&&g.length>1024){if(d)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);p=!0}if(n.inFlow){if(a||t==null)return m&&r&&r(),g===``?`?`:p?`? ${g}`:g}else if(a&&!d||t==null&&p)return g=`? ${g}`,f&&!m?g+=Bi(g,n.indent,l(f)):h&&i&&i(),g;m&&(f=null),p?(f&&(g+=Bi(g,n.indent,l(f))),g=`? ${g}\n${s}:`):(g=`${g}:`,f&&(g+=Bi(g,n.indent,l(f))));let _,v,y;Rr(t)?(_=!!t.spaceBefore,v=t.commentBefore,y=t.comment):(_=!1,v=null,y=null,t&&typeof t==`object`&&(t=o.createNode(t))),n.implicitKey=!1,!p&&!f&&Xr(t)&&(n.indentAtStart=g.length+1),h=!1,!u&&c.length>=2&&!n.inFlow&&!p&&Zr(t)&&!t.flow&&!t.tag&&!t.anchor&&(n.indent=n.indent.substring(2));let b=!1,x=ca(t,n,()=>b=!0,()=>h=!0),S=` `;if(f||_||v){if(S=_?`
77
+ `:``,v){let e=l(v);S+=`\n${Ri(e,n.indent)}`}x===``&&!n.inFlow?S===`
78
78
  `&&y&&(S=`
79
79
 
80
- `):S+=`\n${n.indent}`}else if(!p&&Pr(t)){let e=x[0],r=x.indexOf(`
80
+ `):S+=`\n${n.indent}`}else if(!p&&Lr(t)){let e=x[0],r=x.indexOf(`
81
81
  `),i=r!==-1,a=n.inFlow??t.flow??t.items.length===0;if(i||!a){let t=!1;if(i&&(e===`&`||e===`!`)){let n=x.indexOf(` `);e===`&`&&n!==-1&&n<r&&x[n+1]===`!`&&(n=x.indexOf(` `,n+1)),(n===-1||r<n)&&(t=!0)}t||(S=`\n${n.indent}`)}}else(x===``||x[0]===`
82
- `)&&(S=``);return g+=S+x,n.inFlow?b&&r&&r():y&&!b?g+=Li(g,n.indent,l(y)):h&&i&&i(),g}var ca=L((()=>{z(),Ei(),oa(),Ri()}));function la(e,t){(e===`debug`||e===`warn`)&&console.warn(t)}var ua=L((()=>{}));function da(e,t,n){let r=pa(e,n);if(Jr(r))for(let n of r.items)fa(e,t,n);else if(Array.isArray(r))for(let n of r)fa(e,t,n);else fa(e,t,r)}function fa(e,t,n){let r=pa(e,n);if(!Gr(r))throw Error(`Merge sources must be maps or map aliases`);let i=r.toJSON(null,e,Map);for(let[e,n]of i)t instanceof Map?t.has(e)||t.set(e,n):t instanceof Set?t.add(e):Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0});return t}function pa(e,t){return e&&Ur(t)?t.resolve(e.doc,e):t}var ma,ha,ga,_a=L((()=>{z(),Ei(),ma=`<<`,ha={identify:e=>e===ma||typeof e==`symbol`&&e.description===ma,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new B(Symbol(ma)),{addToJSMap:da}),stringify:()=>ma},ga=(e,t)=>(ha.identify(t)||qr(t)&&(!t.type||t.type===B.PLAIN)&&ha.identify(t.value))&&e?.doc.schema.tags.some(e=>e.tag===ha.tag&&e.default)}));function va(e,t,{key:n,value:r}){if(Fr(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(ga(e,n))da(e,t,r);else{let i=vi(n,``,e);if(t instanceof Map)t.set(i,vi(r,i,e));else if(t instanceof Set)t.add(i);else{let a=ya(n,i,e),o=vi(r,a,e);a in t?Object.defineProperty(t,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[a]=o}}return t}function ya(e,t,n){if(t===null)return``;if(typeof t!=`object`)return String(t);if(Fr(e)&&n?.doc){let t=na(n.doc,{});t.anchors=new Set;for(let e of n.anchors.keys())t.anchors.add(e.anchor);t.inFlow=!0,t.inStringifyKey=!0;let r=e.toString(t);if(!n.mapKeyWarned){let e=JSON.stringify(r);e.length>40&&(e=e.substring(0,36)+`..."`),la(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return r}return JSON.stringify(t)}var ba=L((()=>{ua(),_a(),oa(),z(),yi()}));function xa(e,t,n){let r=Oi(e,void 0,n),i=Oi(t,void 0,n);return new Sa(r,i)}var Sa,Ca=L((()=>{Ai(),ca(),ba(),z(),Sa=class e{constructor(e,t=null){Object.defineProperty(this,Hr,{value:zr}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return Fr(n)&&(n=n.clone(t)),Fr(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){return va(t,t?.mapAsMap?new Map:{},this)}toString(e,t,n){return e?.doc?sa(this,e,t,n):JSON.stringify(this)}}}));function wa(e,t,n){return(t.inFlow??e.flow?Ea:Ta)(e,t,n)}function Ta({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:a,onChompKeep:o,onComment:s}){let{indent:c,options:{commentString:l}}=n,u=Object.assign({},n,{indent:a,type:null}),d=!1,f=[];for(let e=0;e<t.length;++e){let i=t[e],o=null;if(Fr(i))!d&&i.spaceBefore&&f.push(``),Da(n,f,i.commentBefore,d),i.comment&&(o=i.comment);else if(Kr(i)){let e=Fr(i.key)?i.key:null;e&&(!d&&e.spaceBefore&&f.push(``),Da(n,f,e.commentBefore,d))}d=!1;let s=aa(i,u,()=>o=null,()=>d=!0);o&&(s+=Li(s,a,l(o))),d&&o&&(d=!1),f.push(r+s)}let p;if(f.length===0)p=i.start+i.end;else{p=f[0];for(let e=1;e<f.length;++e){let t=f[e];p+=t?`\n${c}${t}`:`
82
+ `)&&(S=``);return g+=S+x,n.inFlow?b&&r&&r():y&&!b?g+=Bi(g,n.indent,l(y)):h&&i&&i(),g}var da=F((()=>{L(),ki(),la(),Vi()}));function fa(e,t){(e===`debug`||e===`warn`)&&console.warn(t)}var pa=F((()=>{}));function ma(e,t,n){let r=ga(e,n);if(Zr(r))for(let n of r.items)ha(e,t,n);else if(Array.isArray(r))for(let n of r)ha(e,t,n);else ha(e,t,r)}function ha(e,t,n){let r=ga(e,n);if(!Jr(r))throw Error(`Merge sources must be maps or map aliases`);let i=r.toJSON(null,e,Map);for(let[e,n]of i)t instanceof Map?t.has(e)||t.set(e,n):t instanceof Set?t.add(e):Object.prototype.hasOwnProperty.call(t,e)||Object.defineProperty(t,e,{value:n,writable:!0,enumerable:!0,configurable:!0});return t}function ga(e,t){return e&&Kr(t)?t.resolve(e.doc,e):t}var _a,va,ya,ba=F((()=>{L(),ki(),_a=`<<`,va={identify:e=>e===_a||typeof e==`symbol`&&e.description===_a,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new R(Symbol(_a)),{addToJSMap:ma}),stringify:()=>_a},ya=(e,t)=>(va.identify(t)||Xr(t)&&(!t.type||t.type===R.PLAIN)&&va.identify(t.value))&&e?.doc.schema.tags.some(e=>e.tag===va.tag&&e.default)}));function xa(e,t,{key:n,value:r}){if(Rr(n)&&n.addToJSMap)n.addToJSMap(e,t,r);else if(ya(e,n))ma(e,t,r);else{let i=xi(n,``,e);if(t instanceof Map)t.set(i,xi(r,i,e));else if(t instanceof Set)t.add(i);else{let a=Sa(n,i,e),o=xi(r,a,e);a in t?Object.defineProperty(t,a,{value:o,writable:!0,enumerable:!0,configurable:!0}):t[a]=o}}return t}function Sa(e,t,n){if(t===null)return``;if(typeof t!=`object`)return String(t);if(Rr(e)&&n?.doc){let t=aa(n.doc,{});t.anchors=new Set;for(let e of n.anchors.keys())t.anchors.add(e.anchor);t.inFlow=!0,t.inStringifyKey=!0;let r=e.toString(t);if(!n.mapKeyWarned){let e=JSON.stringify(r);e.length>40&&(e=e.substring(0,36)+`..."`),fa(n.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),n.mapKeyWarned=!0}return r}return JSON.stringify(t)}var Ca=F((()=>{pa(),ba(),la(),L(),Si()}));function wa(e,t,n){let r=ji(e,void 0,n),i=ji(t,void 0,n);return new Ta(r,i)}var Ta,Ea=F((()=>{Ni(),da(),Ca(),L(),Ta=class e{constructor(e,t=null){Object.defineProperty(this,Gr,{value:Hr}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return Rr(n)&&(n=n.clone(t)),Rr(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){return xa(t,t?.mapAsMap?new Map:{},this)}toString(e,t,n){return e?.doc?ua(this,e,t,n):JSON.stringify(this)}}}));function Da(e,t,n){return(t.inFlow??e.flow?ka:Oa)(e,t,n)}function Oa({comment:e,items:t},n,{blockItemPrefix:r,flowChars:i,itemIndent:a,onChompKeep:o,onComment:s}){let{indent:c,options:{commentString:l}}=n,u=Object.assign({},n,{indent:a,type:null}),d=!1,f=[];for(let e=0;e<t.length;++e){let i=t[e],o=null;if(Rr(i))!d&&i.spaceBefore&&f.push(``),Aa(n,f,i.commentBefore,d),i.comment&&(o=i.comment);else if(Yr(i)){let e=Rr(i.key)?i.key:null;e&&(!d&&e.spaceBefore&&f.push(``),Aa(n,f,e.commentBefore,d))}d=!1;let s=ca(i,u,()=>o=null,()=>d=!0);o&&(s+=Bi(s,a,l(o))),d&&o&&(d=!1),f.push(r+s)}let p;if(f.length===0)p=i.start+i.end;else{p=f[0];for(let e=1;e<f.length;++e){let t=f[e];p+=t?`\n${c}${t}`:`
83
83
  `}}return e?(p+=`
84
- `+Fi(l(e),c),s&&s()):d&&o&&o(),p}function Ea({items:e},t,{flowChars:n,itemIndent:r}){let{indent:i,indentStep:a,flowCollectionPadding:o,options:{commentString:s}}=t;r+=a;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),l=!1,u=0,d=[];for(let n=0;n<e.length;++n){let i=e[n],a=null;if(Fr(i))i.spaceBefore&&d.push(``),Da(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(Kr(i)){let e=Fr(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),Da(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=Fr(i.value)?i.value:null;n?(n.comment&&(a=n.comment),n.commentBefore&&(l=!0)):i.value==null&&e?.comment&&(a=e.comment)}a&&(l=!0);let o=aa(i,c,()=>a=null);l||=d.length>u||o.includes(`
85
- `),n<e.length-1?o+=`,`:t.options.trailingComma&&(t.options.lineWidth>0&&(l||=d.reduce((e,t)=>e+t.length+2,2)+(o.length+2)>t.options.lineWidth),l&&(o+=`,`)),a&&(o+=Li(o,r,s(a))),d.push(o),u=d.length}let{start:f,end:p}=n;if(d.length===0)return f+p;if(!l){let e=d.reduce((e,t)=>e+t.length+2,2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=f;for(let t of d)e+=t?`\n${a}${i}${t}`:`
86
- `;return`${e}\n${i}${p}`}return`${f}${o}${d.join(` `)}${o}${p}`}function Da({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=Fi(t(r),e);n.push(i.trimStart())}}var Oa=L((()=>{z(),oa(),Ri()}));function ka(e,t){let n=qr(t)?t.value:t;for(let r of e)if(Kr(r)&&(r.key===t||r.key===n||qr(r.key)&&r.key.value===n))return r}var Aa,ja=L((()=>{Oa(),ba(),Pi(),z(),Ca(),Ei(),Aa=class extends Ni{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(Rr,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(xa(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=Kr(e)?e:!e||typeof e!=`object`||!(`key`in e)?new Sa(e,e?.value):new Sa(e.key,e.value);let r=ka(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);qr(r.value)&&Ti(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=ka(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=ka(this.items,e)?.value;return(!t&&qr(n)?n.value:n)??void 0}has(e){return!!ka(this.items,e)}set(e,t){this.add(new Sa(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)va(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!Kr(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),wa(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}}})),Ma,Na=L((()=>{z(),ja(),Ma={collection:`map`,default:!0,nodeClass:Aa,tag:`tag:yaml.org,2002:map`,resolve(e,t){return Gr(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>Aa.from(e,t,n)}}));function Pa(e){let t=qr(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var Fa,Ia=L((()=>{Ai(),Oa(),Pi(),z(),Ei(),yi(),Fa=class extends Ni{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(Vr,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Pa(e);return typeof t==`number`&&this.items.splice(t,1).length>0}get(e,t){let n=Pa(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&qr(r)?r.value:r}has(e){let t=Pa(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=Pa(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];qr(r)&&Ti(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(vi(e,String(r++),t));return n}toString(e,t,n){return e?wa(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(Oi(a,void 0,n))}}return i}}})),La,Ra=L((()=>{z(),Ia(),La={collection:`seq`,default:!0,nodeClass:Fa,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return Jr(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>Fa.from(e,t,n)}})),za,Ba=L((()=>{ta(),za={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),Zi(e,t,n,r)}}})),Va,Ha=L((()=>{Ei(),Va={identify:e=>e==null,createNode:()=>new B(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new B(null),stringify:({source:e},t)=>typeof e==`string`&&Va.test.test(e)?e:t.options.nullStr}})),Ua,Wa=L((()=>{Ei(),Ua={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new B(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},n){return e&&Ua.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?n.options.trueStr:n.options.falseStr}}}));function Ga({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-->0;)a+=`0`}return a}var Ka=L((()=>{})),qa,Ja,Ya,Xa=L((()=>{Ei(),Ka(),qa={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:Ga},Ja={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Ga(e)}},Ya={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new B(parseFloat(e)),n=e.indexOf(`.`);return n!==-1&&e[e.length-1]===`0`&&(t.minFractionDigits=e.length-n-1),t},stringify:Ga}}));function Za(e,t,n){let{value:r}=e;return Qa(r)&&r>=0?n+r.toString(t):Ga(e)}var Qa,$a,eo,to,no,ro=L((()=>{Ka(),Qa=e=>typeof e==`bigint`||Number.isInteger(e),$a=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n),eo={identify:e=>Qa(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>$a(e,2,8,n),stringify:e=>Za(e,8,`0o`)},to={identify:Qa,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>$a(e,0,10,n),stringify:Ga},no={identify:e=>Qa(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>$a(e,2,16,n),stringify:e=>Za(e,16,`0x`)}})),io,ao=L((()=>{Na(),Ha(),Ra(),Ba(),Wa(),Xa(),ro(),io=[Ma,La,za,Va,Ua,eo,to,no,qa,Ja,Ya]}));function oo(e){return typeof e==`bigint`||Number.isInteger(e)}var so,co,lo,uo=L((()=>{Ei(),Na(),Ra(),so=({value:e})=>JSON.stringify(e),co=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:so},{identify:e=>e==null,createNode:()=>new B(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:so},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:so},{identify:oo,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>oo(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:so}],lo=[Ma,La].concat(co,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}})})),fo,po=L((()=>{Ei(),ta(),fo={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:n},r,i,a){if(!n)return``;let o=n,s;if(typeof btoa==`function`){let e=``;for(let t=0;t<o.length;++t)e+=String.fromCharCode(o[t]);s=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t??=B.BLOCK_LITERAL,t!==B.QUOTE_DOUBLE){let e=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),n=Math.ceil(s.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=s.substr(r,e);s=i.join(t===B.BLOCK_LITERAL?`
87
- `:` `)}return Zi({comment:e,type:t,value:s},r,i,a)}}}));function mo(e,t){if(Jr(e))for(let n=0;n<e.items.length;++n){let r=e.items[n];if(!Kr(r)){if(Gr(r)){r.items.length>1&&t(`Each pair must have its own sequence indicator`);let e=r.items[0]||new Sa(new B(null));if(r.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${r.commentBefore}\n${e.key.commentBefore}`:r.commentBefore),r.comment){let t=e.value??e.key;t.comment=t.comment?`${r.comment}\n${t.comment}`:r.comment}r=e}e.items[n]=Kr(r)?r:new Sa(r)}}else t(`Expected a sequence for this tag`);return e}function ho(e,t,n){let{replacer:r}=n,i=new Fa(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e)){if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(xa(o,s,n))}return i}var go,_o=L((()=>{z(),Ca(),Ei(),Ia(),go={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:mo,createNode:ho}})),vo,yo,bo=L((()=>{z(),yi(),ja(),Ia(),_o(),vo=class e extends Fa{constructor(){super(),this.add=Aa.prototype.add.bind(this),this.delete=Aa.prototype.delete.bind(this),this.get=Aa.prototype.get.bind(this),this.has=Aa.prototype.has.bind(this),this.set=Aa.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(Kr(e)?(r=vi(e.key,``,t),i=vi(e.value,r,t)):r=vi(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=ho(e,t,n),i=new this;return i.items=r.items,i}},vo.tag=`tag:yaml.org,2002:omap`,yo={collection:`seq`,identify:e=>e instanceof Map,nodeClass:vo,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,t){let n=mo(e,t),r=[];for(let{key:e}of n.items)qr(e)&&(r.includes(e.value)?t(`Ordered maps must not include duplicate keys: ${e.value}`):r.push(e.value));return Object.assign(new vo,n)},createNode:(e,t,n)=>vo.from(e,t,n)}}));function xo({value:e,source:t},n){return t&&(e?So:Co).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}var So,Co,wo=L((()=>{Ei(),So={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new B(!0),stringify:xo},Co={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new B(!1),stringify:xo}})),To,Eo,Do,Oo=L((()=>{Ei(),Ka(),To={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:Ga},Eo={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Ga(e)}},Do={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new B(parseFloat(e.replace(/_/g,``))),n=e.indexOf(`.`);if(n!==-1){let r=e.substring(n+1).replace(/_/g,``);r[r.length-1]===`0`&&(t.minFractionDigits=r.length)}return t},stringify:Ga}}));function ko(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function Ao(e,t,n){let{value:r}=e;if(jo(r)){let e=r.toString(t);return r<0?`-`+n+e.substr(1):n+e}return Ga(e)}var jo,Mo,No,Po,Fo,Io=L((()=>{Ka(),jo=e=>typeof e==`bigint`||Number.isInteger(e),Mo={identify:jo,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>ko(e,2,2,n),stringify:e=>Ao(e,2,`0b`)},No={identify:jo,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>ko(e,1,8,n),stringify:e=>Ao(e,8,`0`)},Po={identify:jo,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>ko(e,0,10,n),stringify:Ga},Fo={identify:jo,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>ko(e,2,16,n),stringify:e=>Ao(e,16,`0x`)}})),Lo,Ro,zo=L((()=>{z(),Ca(),ja(),Lo=class e extends Aa{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=Kr(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new Sa(e.key,null):new Sa(e,null),ka(this.items,t.key)||this.items.push(t)}get(e,t){let n=ka(this.items,e);return!t&&Kr(n)?qr(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=ka(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Sa(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(xa(e,null,n));return i}},Lo.tag=`tag:yaml.org,2002:set`,Ro={collection:`map`,identify:e=>e instanceof Set,nodeClass:Lo,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>Lo.from(e,t,n),resolve(e,t){if(Gr(e)){if(e.hasAllNullValues(!0))return Object.assign(new Lo,e);t(`Set items must all have null values`)}else t(`Expected a mapping for this tag`);return e}}}));function Bo(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function Vo(e){let{value:t}=e,n=e=>e;if(typeof t==`bigint`)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return Ga(e);let r=``;t<0&&(r=`-`,t*=n(-1));let i=n(60),a=[t%i];return t<60?a.unshift(0):(t=(t-a[0])/i,a.unshift(t%i),t>=60&&(t=(t-a[0])/i,a.unshift(t))),r+a.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}var Ho,Uo,Wo,Go=L((()=>{Ka(),Ho={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>Bo(e,n),stringify:Vo},Uo={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>Bo(e,!1),stringify:Vo},Wo={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(Wo.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,n,r,i,a,o,s]=t.map(Number),c=t[7]?Number((t[7]+`00`).substr(1,3)):0,l=Date.UTC(n,r-1,i,a||0,o||0,s||0,c),u=t[8];if(u&&u!==`Z`){let e=Bo(u,!1);Math.abs(e)<30&&(e*=60),l-=6e4*e}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``}})),Ko,qo=L((()=>{Na(),Ha(),Ra(),Ba(),po(),wo(),Oo(),Io(),_a(),bo(),_o(),zo(),Go(),Ko=[Ma,La,za,Va,So,Co,Mo,No,Po,Fo,To,Eo,Do,fo,ha,yo,go,Ro,Ho,Uo,Wo]}));function Jo(e,t,n){let r=Yo.get(t);if(r&&!e)return n&&!r.includes(ha)?r.concat(ha):r.slice();let i=r;if(!i){if(Array.isArray(e))i=[];else{let e=Array.from(Yo.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(ha)),i.reduce((e,t)=>{let n=typeof t==`string`?Xo[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(Xo).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}var Yo,Xo,Zo,Qo=L((()=>{Na(),Ha(),Ra(),Ba(),Wa(),Xa(),ro(),ao(),uo(),po(),_a(),bo(),_o(),qo(),zo(),Go(),Yo=new Map([[`core`,io],[`failsafe`,[Ma,La,za]],[`json`,lo],[`yaml11`,Ko],[`yaml-1.1`,Ko]]),Xo={binary:fo,bool:Ua,float:Ya,floatExp:Ja,floatNaN:qa,floatTime:Uo,int:to,intHex:no,intOct:eo,intTime:Ho,map:Ma,merge:ha,null:Va,omap:yo,pairs:go,seq:La,set:Ro,timestamp:Wo},Zo={"tag:yaml.org,2002:binary":fo,"tag:yaml.org,2002:merge":ha,"tag:yaml.org,2002:omap":yo,"tag:yaml.org,2002:pairs":go,"tag:yaml.org,2002:set":Ro,"tag:yaml.org,2002:timestamp":Wo}})),$o,es,ts=L((()=>{z(),Na(),Ra(),Ba(),Qo(),$o=(e,t)=>e.key<t.key?-1:+(e.key>t.key),es=class e{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:r,schema:i,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?Jo(e,`compat`):e?Jo(null,e):null,this.name=typeof i==`string`&&i||`core`,this.knownTags=r?Zo:{},this.tags=Jo(t,this.name,n),this.toStringOptions=o??null,Object.defineProperty(this,Rr,{value:Ma}),Object.defineProperty(this,Br,{value:za}),Object.defineProperty(this,Vr,{value:La}),this.sortMapEntries=typeof a==`function`?a:a===!0?$o:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}}));function ns(e,t){let n=[],r=t.directives===!0;if(t.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(n.push(t),r=!0):e.directives.docStart&&(r=!0)}r&&n.push(`---`);let i=na(e,t),{commentString:a}=i.options;if(e.commentBefore){n.length!==1&&n.unshift(``);let t=a(e.commentBefore);n.unshift(Fi(t,``))}let o=!1,s=null;if(e.contents){if(Fr(e.contents)){if(e.contents.spaceBefore&&r&&n.push(``),e.contents.commentBefore){let t=a(e.contents.commentBefore);n.push(Fi(t,``))}i.forceBlockIndent=!!e.comment,s=e.contents.comment}let t=s?void 0:()=>o=!0,c=aa(e.contents,i,()=>s=null,t);s&&(c+=Li(c,``,a(s))),(c[0]===`|`||c[0]===`>`)&&n[n.length-1]===`---`?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(aa(e.contents,i));if(e.directives?.docEnd){if(e.comment){let t=a(e.comment);t.includes(`
88
- `)?(n.push(`...`),n.push(Fi(t,``))):n.push(`... ${t}`)}else n.push(`...`)}else{let t=e.comment;t&&o&&(t=t.replace(/^\n+/,``)),t&&((!o||s)&&n[n.length-1]!==``&&n.push(``),n.push(Fi(a(t),``)))}return n.join(`
84
+ `+Ri(l(e),c),s&&s()):d&&o&&o(),p}function ka({items:e},t,{flowChars:n,itemIndent:r}){let{indent:i,indentStep:a,flowCollectionPadding:o,options:{commentString:s}}=t;r+=a;let c=Object.assign({},t,{indent:r,inFlow:!0,type:null}),l=!1,u=0,d=[];for(let n=0;n<e.length;++n){let i=e[n],a=null;if(Rr(i))i.spaceBefore&&d.push(``),Aa(t,d,i.commentBefore,!1),i.comment&&(a=i.comment);else if(Yr(i)){let e=Rr(i.key)?i.key:null;e&&(e.spaceBefore&&d.push(``),Aa(t,d,e.commentBefore,!1),e.comment&&(l=!0));let n=Rr(i.value)?i.value:null;n?(n.comment&&(a=n.comment),n.commentBefore&&(l=!0)):i.value==null&&e?.comment&&(a=e.comment)}a&&(l=!0);let o=ca(i,c,()=>a=null);l||=d.length>u||o.includes(`
85
+ `),n<e.length-1?o+=`,`:t.options.trailingComma&&(t.options.lineWidth>0&&(l||=d.reduce((e,t)=>e+t.length+2,2)+(o.length+2)>t.options.lineWidth),l&&(o+=`,`)),a&&(o+=Bi(o,r,s(a))),d.push(o),u=d.length}let{start:f,end:p}=n;if(d.length===0)return f+p;if(!l){let e=d.reduce((e,t)=>e+t.length+2,2);l=t.options.lineWidth>0&&e>t.options.lineWidth}if(l){let e=f;for(let t of d)e+=t?`\n${a}${i}${t}`:`
86
+ `;return`${e}\n${i}${p}`}return`${f}${o}${d.join(` `)}${o}${p}`}function Aa({indent:e,options:{commentString:t}},n,r,i){if(r&&i&&(r=r.replace(/^\n+/,``)),r){let i=Ri(t(r),e);n.push(i.trimStart())}}var ja=F((()=>{L(),la(),Vi()}));function Ma(e,t){let n=Xr(t)?t.value:t;for(let r of e)if(Yr(r)&&(r.key===t||r.key===n||Xr(r.key)&&r.key.value===n))return r}var Na,Pa=F((()=>{ja(),Ca(),Li(),L(),Ea(),ki(),Na=class extends Ii{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(Vr,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,a=new this(e),o=(e,o)=>{if(typeof i==`function`)o=i.call(t,e,o);else if(Array.isArray(i)&&!i.includes(e))return;(o!==void 0||r)&&a.items.push(wa(e,o,n))};if(t instanceof Map)for(let[e,n]of t)o(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))o(e,t[e]);return typeof e.sortMapEntries==`function`&&a.items.sort(e.sortMapEntries),a}add(e,t){let n;n=Yr(e)?e:!e||typeof e!=`object`||!(`key`in e)?new Ta(e,e?.value):new Ta(e.key,e.value);let r=Ma(this.items,n.key),i=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);Xr(r.value)&&Oi(n.value)?r.value.value=n.value:r.value=n.value}else if(i){let e=this.items.findIndex(e=>i(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=Ma(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=Ma(this.items,e)?.value;return(!t&&Xr(n)?n.value:n)??void 0}has(e){return!!Ma(this.items,e)}set(e,t){this.add(new Ta(e,t),!0)}toJSON(e,t,n){let r=n?new n:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(r);for(let e of this.items)xa(t,r,e);return r}toString(e,t,n){if(!e)return JSON.stringify(this);for(let e of this.items)if(!Yr(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Da(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:n,onComment:t})}}})),Fa,Ia=F((()=>{L(),Pa(),Fa={collection:`map`,default:!0,nodeClass:Na,tag:`tag:yaml.org,2002:map`,resolve(e,t){return Jr(e)||t(`Expected a mapping for this tag`),e},createNode:(e,t,n)=>Na.from(e,t,n)}}));function La(e){let t=Xr(e)?e.value:e;return t&&typeof t==`string`&&(t=Number(t)),typeof t==`number`&&Number.isInteger(t)&&t>=0?t:null}var Ra,za=F((()=>{Ni(),ja(),Li(),L(),ki(),Si(),Ra=class extends Ii{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(Wr,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=La(e);return typeof t==`number`&&this.items.splice(t,1).length>0}get(e,t){let n=La(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&Xr(r)?r.value:r}has(e){let t=La(e);return typeof t==`number`&&t<this.items.length}set(e,t){let n=La(e);if(typeof n!=`number`)throw Error(`Expected a valid index, not ${e}.`);let r=this.items[n];Xr(r)&&Oi(t)?r.value=t:this.items[n]=t}toJSON(e,t){let n=[];t?.onCreate&&t.onCreate(n);let r=0;for(let e of this.items)n.push(xi(e,String(r++),t));return n}toString(e,t,n){return e?Da(this,e,{blockItemPrefix:`- `,flowChars:{start:`[`,end:`]`},itemIndent:(e.indent||``)+` `,onChompKeep:n,onComment:t}):JSON.stringify(this)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t)){let e=0;for(let a of t){if(typeof r==`function`){let n=t instanceof Set?a:String(e++);a=r.call(t,n,a)}i.items.push(ji(a,void 0,n))}}return i}}})),Ba,Va=F((()=>{L(),za(),Ba={collection:`seq`,default:!0,nodeClass:Ra,tag:`tag:yaml.org,2002:seq`,resolve(e,t){return Zr(e)||t(`Expected a sequence for this tag`),e},createNode:(e,t,n)=>Ra.from(e,t,n)}})),Ha,Ua=F((()=>{ia(),Ha={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,t,n,r){return t=Object.assign({actualString:!0},t),ea(e,t,n,r)}}})),Wa,Ga=F((()=>{ki(),Wa={identify:e=>e==null,createNode:()=>new R(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new R(null),stringify:({source:e},t)=>typeof e==`string`&&Wa.test.test(e)?e:t.options.nullStr}})),Ka,qa=F((()=>{ki(),Ka={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new R(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},n){return e&&Ka.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?n.options.trueStr:n.options.falseStr}}}));function Ja({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-->0;)a+=`0`}return a}var Ya=F((()=>{})),Xa,Za,Qa,$a=F((()=>{ki(),Ya(),Xa={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:Ja},Za={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Ja(e)}},Qa={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let t=new R(parseFloat(e)),n=e.indexOf(`.`);return n!==-1&&e[e.length-1]===`0`&&(t.minFractionDigits=e.length-n-1),t},stringify:Ja}}));function eo(e,t,n){let{value:r}=e;return to(r)&&r>=0?n+r.toString(t):Ja(e)}var to,no,ro,io,ao,oo=F((()=>{Ya(),to=e=>typeof e==`bigint`||Number.isInteger(e),no=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n),ro={identify:e=>to(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>no(e,2,8,n),stringify:e=>eo(e,8,`0o`)},io={identify:to,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>no(e,0,10,n),stringify:Ja},ao={identify:e=>to(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>no(e,2,16,n),stringify:e=>eo(e,16,`0x`)}})),so,co=F((()=>{Ia(),Ga(),Va(),Ua(),qa(),$a(),oo(),so=[Fa,Ba,Ha,Wa,Ka,ro,io,ao,Xa,Za,Qa]}));function lo(e){return typeof e==`bigint`||Number.isInteger(e)}var uo,fo,po,mo=F((()=>{ki(),Ia(),Va(),uo=({value:e})=>JSON.stringify(e),fo=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:uo},{identify:e=>e==null,createNode:()=>new R(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:uo},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:uo},{identify:lo,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>lo(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:uo}],po=[Fa,Ba].concat(fo,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}})})),ho,go=F((()=>{ki(),ia(),ho={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,t){if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;++e)n[e]=t.charCodeAt(e);return n}return t(`This environment does not support reading binary tags; either Buffer or atob is required`),e},stringify({comment:e,type:t,value:n},r,i,a){if(!n)return``;let o=n,s;if(typeof btoa==`function`){let e=``;for(let t=0;t<o.length;++t)e+=String.fromCharCode(o[t]);s=btoa(e)}else throw Error(`This environment does not support writing binary tags; either Buffer or btoa is required`);if(t??=R.BLOCK_LITERAL,t!==R.QUOTE_DOUBLE){let e=Math.max(r.options.lineWidth-r.indent.length,r.options.minContentWidth),n=Math.ceil(s.length/e),i=Array(n);for(let t=0,r=0;t<n;++t,r+=e)i[t]=s.substr(r,e);s=i.join(t===R.BLOCK_LITERAL?`
87
+ `:` `)}return ea({comment:e,type:t,value:s},r,i,a)}}}));function _o(e,t){if(Zr(e))for(let n=0;n<e.items.length;++n){let r=e.items[n];if(!Yr(r)){if(Jr(r)){r.items.length>1&&t(`Each pair must have its own sequence indicator`);let e=r.items[0]||new Ta(new R(null));if(r.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${r.commentBefore}\n${e.key.commentBefore}`:r.commentBefore),r.comment){let t=e.value??e.key;t.comment=t.comment?`${r.comment}\n${t.comment}`:r.comment}r=e}e.items[n]=Yr(r)?r:new Ta(r)}}else t(`Expected a sequence for this tag`);return e}function vo(e,t,n){let{replacer:r}=n,i=new Ra(e);i.tag=`tag:yaml.org,2002:pairs`;let a=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof r==`function`&&(e=r.call(t,String(a++),e));let o,s;if(Array.isArray(e)){if(e.length===2)o=e[0],s=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)o=t[0],s=e[o];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else o=e;i.items.push(wa(o,s,n))}return i}var yo,bo=F((()=>{L(),Ea(),ki(),za(),yo={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:_o,createNode:vo}})),xo,So,Co=F((()=>{L(),Si(),Pa(),za(),bo(),xo=class e extends Ra{constructor(){super(),this.add=Na.prototype.add.bind(this),this.delete=Na.prototype.delete.bind(this),this.get=Na.prototype.get.bind(this),this.has=Na.prototype.has.bind(this),this.set=Na.prototype.set.bind(this),this.tag=e.tag}toJSON(e,t){if(!t)return super.toJSON(e);let n=new Map;t?.onCreate&&t.onCreate(n);for(let e of this.items){let r,i;if(Yr(e)?(r=xi(e.key,``,t),i=xi(e.value,r,t)):r=xi(e,``,t),n.has(r))throw Error(`Ordered maps must not include duplicate keys`);n.set(r,i)}return n}static from(e,t,n){let r=vo(e,t,n),i=new this;return i.items=r.items,i}},xo.tag=`tag:yaml.org,2002:omap`,So={collection:`seq`,identify:e=>e instanceof Map,nodeClass:xo,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,t){let n=_o(e,t),r=[];for(let{key:e}of n.items)Xr(e)&&(r.includes(e.value)?t(`Ordered maps must not include duplicate keys: ${e.value}`):r.push(e.value));return Object.assign(new xo,n)},createNode:(e,t,n)=>xo.from(e,t,n)}}));function wo({value:e,source:t},n){return t&&(e?To:Eo).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}var To,Eo,Do=F((()=>{ki(),To={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new R(!0),stringify:wo},Eo={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new R(!1),stringify:wo}})),Oo,ko,Ao,jo=F((()=>{ki(),Ya(),Oo={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:Ja},ko={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():Ja(e)}},Ao={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let t=new R(parseFloat(e.replace(/_/g,``))),n=e.indexOf(`.`);if(n!==-1){let r=e.substring(n+1).replace(/_/g,``);r[r.length-1]===`0`&&(t.minFractionDigits=r.length)}return t},stringify:Ja}}));function Mo(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function No(e,t,n){let{value:r}=e;if(Po(r)){let e=r.toString(t);return r<0?`-`+n+e.substr(1):n+e}return Ja(e)}var Po,Fo,Io,Lo,Ro,zo=F((()=>{Ya(),Po=e=>typeof e==`bigint`||Number.isInteger(e),Fo={identify:Po,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>Mo(e,2,2,n),stringify:e=>No(e,2,`0b`)},Io={identify:Po,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>Mo(e,1,8,n),stringify:e=>No(e,8,`0`)},Lo={identify:Po,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>Mo(e,0,10,n),stringify:Ja},Ro={identify:Po,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>Mo(e,2,16,n),stringify:e=>No(e,16,`0x`)}})),Bo,Vo,Ho=F((()=>{L(),Ea(),Pa(),Bo=class e extends Na{constructor(t){super(t),this.tag=e.tag}add(e){let t;t=Yr(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new Ta(e.key,null):new Ta(e,null),Ma(this.items,t.key)||this.items.push(t)}get(e,t){let n=Ma(this.items,e);return!t&&Yr(n)?Xr(n.key)?n.key.value:n.key:n}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let n=Ma(this.items,e);n&&!t?this.items.splice(this.items.indexOf(n),1):!n&&t&&this.items.push(new Ta(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,n){let{replacer:r}=n,i=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof r==`function`&&(e=r.call(t,e,e)),i.items.push(wa(e,null,n));return i}},Bo.tag=`tag:yaml.org,2002:set`,Vo={collection:`map`,identify:e=>e instanceof Set,nodeClass:Bo,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>Bo.from(e,t,n),resolve(e,t){if(Jr(e)){if(e.hasAllNullValues(!0))return Object.assign(new Bo,e);t(`Set items must all have null values`)}else t(`Expected a mapping for this tag`);return e}}}));function Uo(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function Wo(e){let{value:t}=e,n=e=>e;if(typeof t==`bigint`)n=e=>BigInt(e);else if(isNaN(t)||!isFinite(t))return Ja(e);let r=``;t<0&&(r=`-`,t*=n(-1));let i=n(60),a=[t%i];return t<60?a.unshift(0):(t=(t-a[0])/i,a.unshift(t%i),t>=60&&(t=(t-a[0])/i,a.unshift(t))),r+a.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}var Go,Ko,qo,Jo=F((()=>{Ya(),Go={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:n})=>Uo(e,n),stringify:Wo},Ko={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>Uo(e,!1),stringify:Wo},qo={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(qo.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,n,r,i,a,o,s]=t.map(Number),c=t[7]?Number((t[7]+`00`).substr(1,3)):0,l=Date.UTC(n,r-1,i,a||0,o||0,s||0,c),u=t[8];if(u&&u!==`Z`){let e=Uo(u,!1);Math.abs(e)<30&&(e*=60),l-=6e4*e}return new Date(l)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``}})),Yo,Xo=F((()=>{Ia(),Ga(),Va(),Ua(),go(),Do(),jo(),zo(),ba(),Co(),bo(),Ho(),Jo(),Yo=[Fa,Ba,Ha,Wa,To,Eo,Fo,Io,Lo,Ro,Oo,ko,Ao,ho,va,So,yo,Vo,Go,Ko,qo]}));function Zo(e,t,n){let r=Qo.get(t);if(r&&!e)return n&&!r.includes(va)?r.concat(va):r.slice();let i=r;if(!i){if(Array.isArray(e))i=[];else{let e=Array.from(Qo.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(va)),i.reduce((e,t)=>{let n=typeof t==`string`?$o[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys($o).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}var Qo,$o,es,ts=F((()=>{Ia(),Ga(),Va(),Ua(),qa(),$a(),oo(),co(),mo(),go(),ba(),Co(),bo(),Xo(),Ho(),Jo(),Qo=new Map([[`core`,so],[`failsafe`,[Fa,Ba,Ha]],[`json`,po],[`yaml11`,Yo],[`yaml-1.1`,Yo]]),$o={binary:ho,bool:Ka,float:Qa,floatExp:Za,floatNaN:Xa,floatTime:Ko,int:io,intHex:ao,intOct:ro,intTime:Go,map:Fa,merge:va,null:Wa,omap:So,pairs:yo,seq:Ba,set:Vo,timestamp:qo},es={"tag:yaml.org,2002:binary":ho,"tag:yaml.org,2002:merge":va,"tag:yaml.org,2002:omap":So,"tag:yaml.org,2002:pairs":yo,"tag:yaml.org,2002:set":Vo,"tag:yaml.org,2002:timestamp":qo}})),ns,rs,is=F((()=>{L(),Ia(),Va(),Ua(),ts(),ns=(e,t)=>e.key<t.key?-1:+(e.key>t.key),rs=class e{constructor({compat:e,customTags:t,merge:n,resolveKnownTags:r,schema:i,sortMapEntries:a,toStringDefaults:o}){this.compat=Array.isArray(e)?Zo(e,`compat`):e?Zo(null,e):null,this.name=typeof i==`string`&&i||`core`,this.knownTags=r?es:{},this.tags=Zo(t,this.name,n),this.toStringOptions=o??null,Object.defineProperty(this,Vr,{value:Fa}),Object.defineProperty(this,Ur,{value:Ha}),Object.defineProperty(this,Wr,{value:Ba}),this.sortMapEntries=typeof a==`function`?a:a===!0?ns:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}}));function as(e,t){let n=[],r=t.directives===!0;if(t.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(n.push(t),r=!0):e.directives.docStart&&(r=!0)}r&&n.push(`---`);let i=aa(e,t),{commentString:a}=i.options;if(e.commentBefore){n.length!==1&&n.unshift(``);let t=a(e.commentBefore);n.unshift(Ri(t,``))}let o=!1,s=null;if(e.contents){if(Rr(e.contents)){if(e.contents.spaceBefore&&r&&n.push(``),e.contents.commentBefore){let t=a(e.contents.commentBefore);n.push(Ri(t,``))}i.forceBlockIndent=!!e.comment,s=e.contents.comment}let t=s?void 0:()=>o=!0,c=ca(e.contents,i,()=>s=null,t);s&&(c+=Bi(c,``,a(s))),(c[0]===`|`||c[0]===`>`)&&n[n.length-1]===`---`?n[n.length-1]=`--- ${c}`:n.push(c)}else n.push(ca(e.contents,i));if(e.directives?.docEnd){if(e.comment){let t=a(e.comment);t.includes(`
88
+ `)?(n.push(`...`),n.push(Ri(t,``))):n.push(`... ${t}`)}else n.push(`...`)}else{let t=e.comment;t&&o&&(t=t.replace(/^\n+/,``)),t&&((!o||s)&&n[n.length-1]!==``&&n.push(``),n.push(Ri(a(t),``)))}return n.join(`
89
89
  `)+`
90
- `}var rs=L((()=>{z(),oa(),Ri()}));function is(e){if(Pr(e))return!0;throw Error(`Expected a YAML collection as document contents`)}var as,os=L((()=>{wi(),Pi(),z(),Ca(),yi(),ts(),rs(),hi(),_i(),Ai(),ui(),as=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Hr,{value:Lr});let r=null;typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=i;let{version:a}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(a=this.directives.yaml.version)):this.directives=new li({version:a}),this.setSchema(a,n),this.contents=e===void 0?null:this.createNode(e,r,n)}clone(){let t=Object.create(e.prototype,{[Hr]:{value:Lr}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=Fr(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){is(this.contents)&&this.contents.add(e)}addIn(e,t){is(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=fi(this);e.anchor=!t||n.has(t)?pi(t||`a`,n):t}return new Ci(e.anchor)}createNode(e,t,n){let r;if(typeof t==`function`)e=t.call({"":e},``,e),r=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),r=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:a,flow:o,keepUndefined:s,onTagObj:c,tag:l}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:f}=mi(this,a||`a`),p={aliasDuplicateObjects:i??!0,keepUndefined:s??!1,onAnchor:u,onTagObj:c,replacer:r,schema:this.schema,sourceObjects:f},m=Oi(e,l,p);return o&&Pr(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let r=this.createNode(e,null,n),i=this.createNode(t,null,n);return new Sa(r,i)}delete(e){return is(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Mi(e)?this.contents!=null&&(this.contents=null,!0):is(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return Pr(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Mi(e)?!t&&qr(this.contents)?this.contents.value:this.contents:Pr(this.contents)?this.contents.getIn(e,t):void 0}has(e){return Pr(this.contents)?this.contents.has(e):!1}hasIn(e){return Mi(e)?this.contents!==void 0:Pr(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=ji(this.schema,[e],t):is(this.contents)&&this.contents.set(e,t)}setIn(e,t){Mi(e)?this.contents=t:this.contents==null?this.contents=ji(this.schema,Array.from(e),t):is(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new li({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new li({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new es(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:a}={}){let o={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},s=vi(this.contents,t??``,o);if(typeof i==`function`)for(let{count:e,res:t}of o.anchors.values())i(t,e);return typeof a==`function`?gi(a,{"":s},``,s):s}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return ns(this,e)}}})),ss,cs,ls,us,ds=L((()=>{ss=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},cs=class extends ss{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},ls=class extends ss{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}},us=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
91
- `),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}}}));function fs(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!b||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}var ps=L((()=>{}));function ms(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
92
- `))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let t of e.items){for(let e of t.start)if(e.type===`newline`)return!0;if(t.sep){for(let e of t.sep)if(e.type===`newline`)return!0}if(ms(t.key)||ms(t.value))return!0}return!1;default:return!0}}var hs=L((()=>{}));function gs(e,t,n){if(t?.type===`flow-collection`){let r=t.end[0];r.indent===e&&(r.source===`]`||r.source===`}`)&&ms(t)&&n(r,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}var _s=L((()=>{hs()}));function vs(e,t,n){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let i=typeof r==`function`?r:(e,t)=>e===t||qr(e)&&qr(t)&&e.value===t.value;return t.some(e=>i(e.key,n))}var ys=L((()=>{z()}));function bs({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??Aa)(n.schema);n.atRoot&&=!1;let s=r.offset,c=null;for(let a of r.items){let{start:l,key:u,sep:d,value:f}=a,p=fs(l,{indicator:`explicit-key-ind`,next:u??d?.[0],offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!p.found;if(m){if(u&&(u.type===`block-seq`?i(s,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in u&&u.indent!==r.indent&&i(s,`BAD_INDENT`,xs)),!p.anchor&&!p.tag&&!d){c=p.end,p.comment&&(o.comment?o.comment+=`
93
- `+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||ms(u))&&i(u??l[l.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else p.found?.indent!==r.indent&&i(s,`BAD_INDENT`,xs);n.atKey=!0;let h=p.end,g=u?e(n,u,p,i):t(n,h,l,null,p,i);n.schema.compat&&gs(r.indent,u,i),n.atKey=!1,vs(n,o.items,g)&&i(h,`DUPLICATE_KEY`,`Map keys must be unique`);let _=fs(d??[],{indicator:`map-value-ind`,next:f,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!u||u.type===`block-scalar`});if(s=_.end,_.found){m&&(f?.type===`block-map`&&!_.hasNewline&&i(s,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),n.options.strict&&p.start<_.found.offset-1024&&i(g.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let c=f?e(n,f,_,i):t(n,s,d,null,_,i);n.schema.compat&&gs(r.indent,f,i),s=c.range[2];let l=new Sa(g,c);n.options.keepSourceTokens&&(l.srcToken=a),o.items.push(l)}else{m&&i(g.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),_.comment&&(g.comment?g.comment+=`
94
- `+_.comment:g.comment=_.comment);let e=new Sa(g);n.options.keepSourceTokens&&(e.srcToken=a),o.items.push(e)}}return c&&c<s&&i(c,`IMPOSSIBLE`,`Map comment with trailing content`),o.range=[r.offset,s,c??s],o}var xs,Ss=L((()=>{Ca(),ja(),ps(),hs(),_s(),ys(),xs=`All mapping items must start at the same column`}));function Cs({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??Fa)(n.schema);n.atRoot&&=!1,n.atKey&&=!1;let s=r.offset,c=null;for(let{start:a,value:l}of r.items){let u=fs(a,{indicator:`seq-item-ind`,next:l,offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0});if(!u.found){if(u.anchor||u.tag||l)l?.type===`block-seq`?i(u.end,`BAD_INDENT`,`All sequence items must start at the same column`):i(s,`MISSING_CHAR`,`Sequence item without - indicator`);else{c=u.end,u.comment&&(o.comment=u.comment);continue}}let d=l?e(n,l,u,i):t(n,u.end,a,null,u,i);n.schema.compat&&gs(r.indent,l,i),s=d.range[2],o.items.push(d)}return o.range=[r.offset,s,c??s],o}var ws=L((()=>{Ia(),ps(),_s()}));function Ts(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}var Es=L((()=>{}));function Ds({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=r.start.source===`{`,s=o?`flow map`:`flow sequence`,c=new((a?.nodeClass)??(o?Aa:Fa))(n.schema);c.flow=!0;let l=n.atRoot;l&&(n.atRoot=!1),n.atKey&&=!1;let u=r.offset+r.start.source.length;for(let a=0;a<r.items.length;++a){let l=r.items[a],{start:d,key:f,sep:p,value:m}=l,h=fs(d,{flow:s,indicator:`explicit-key-ind`,next:f??p?.[0],offset:u,onError:i,parentIndent:r.indent,startOnNewline:!1});if(!h.found){if(!h.anchor&&!h.tag&&!p&&!m){a===0&&h.comma?i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`):a<r.items.length-1&&i(h.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${s}`),h.comment&&(c.comment?c.comment+=`
95
- `+h.comment:c.comment=h.comment),u=h.end;continue}!o&&n.options.strict&&ms(f)&&i(f,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(a===0)h.comma&&i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`);else if(h.comma||i(h.start,`MISSING_CHAR`,`Missing , between ${s} items`),h.comment){let e=``;loop:for(let t of d)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let t=c.items[c.items.length-1];Kr(t)&&(t=t.value??t.key),t.comment?t.comment+=`
96
- `+e:t.comment=e,h.comment=h.comment.substring(e.length+1)}}if(!o&&!p&&!h.found){let r=m?e(n,m,h,i):t(n,h.end,p,null,h,i);c.items.push(r),u=r.range[2],ks(m)&&i(r.range,`BLOCK_IN_FLOW`,Os)}else{n.atKey=!0;let a=h.end,g=f?e(n,f,h,i):t(n,a,d,null,h,i);ks(f)&&i(g.range,`BLOCK_IN_FLOW`,Os),n.atKey=!1;let _=fs(p??[],{flow:s,indicator:`map-value-ind`,next:m,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!1});if(_.found){if(!o&&!h.found&&n.options.strict){if(p)for(let e of p){if(e===_.found)break;if(e.type===`newline`){i(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}h.start<_.found.offset-1024&&i(_.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else m&&(`source`in m&&m.source?.[0]===`:`?i(m,`MISSING_CHAR`,`Missing space after : in ${s}`):i(_.start,`MISSING_CHAR`,`Missing , or : between ${s} items`));let v=m?e(n,m,_,i):_.found?t(n,_.end,p,null,_,i):null;v?ks(m)&&i(v.range,`BLOCK_IN_FLOW`,Os):_.comment&&(g.comment?g.comment+=`
97
- `+_.comment:g.comment=_.comment);let y=new Sa(g,v);if(n.options.keepSourceTokens&&(y.srcToken=l),o){let e=c;vs(n,e.items,g)&&i(a,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(y)}else{let e=new Aa(n.schema);e.flow=!0,e.items.push(y);let t=(v??g).range;e.range=[g.range[0],t[1],t[2]],c.items.push(e)}u=v?v.range[2]:_.end}}let d=o?`}`:`]`,[f,...p]=r.end,m=u;if(f?.source===d)m=f.offset+f.source.length;else{let e=s[0].toUpperCase()+s.substring(1),t=l?`${e} must end with a ${d}`:`${e} in block collection must be sufficiently indented and end with a ${d}`;i(u,l?`MISSING_CHAR`:`BAD_INDENT`,t),f&&f.source.length!==1&&p.unshift(f)}if(p.length>0){let e=Ts(p,m,n.options.strict,i);e.comment&&(c.comment?c.comment+=`
98
- `+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}var Os,ks,As=L((()=>{z(),Ca(),ja(),Ia(),Es(),ps(),hs(),ys(),Os=`Block collections are not allowed within flow collections`,ks=e=>e&&(e.type===`block-map`||e.type===`block-seq`)}));function js(e,t,n,r,i,a){let o=n.type===`block-map`?bs(e,t,n,r,a):n.type===`block-seq`?Cs(e,t,n,r,a):Ds(e,t,n,r,a),s=o.constructor;return i===`!`||i===s.tagName?(o.tag=s.tagName,o):(i&&(o.tag=i),o)}function Ms(e,t,n,r,i){let a=r.tag,o=a?t.directives.tagName(a.source,e=>i(a,`TAG_RESOLVE_FAILED`,e)):null;if(n.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=r,n=e&&a?e.offset>a.offset?e:a:e??a;n&&(!t||t.offset<n.offset)&&i(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let s=n.type===`block-map`?`map`:n.type===`block-seq`?`seq`:n.start.source===`{`?`map`:`seq`;if(!a||!o||o===`!`||o===Aa.tagName&&s===`map`||o===Fa.tagName&&s===`seq`)return js(e,t,n,i,o);let c=t.schema.tags.find(e=>e.tag===o&&e.collection===s);if(!c){let r=t.schema.knownTags[o];if(r?.collection===s)t.schema.tags.push(Object.assign({},r,{default:!1})),c=r;else return r?i(a,`BAD_COLLECTION_TYPE`,`${r.tag} used for ${s} collection, but expects ${r.collection??`scalar`}`,!0):i(a,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${o}`,!0),js(e,t,n,i,o)}let l=js(e,t,n,i,o,c),u=c.resolve?.(l,e=>i(a,`TAG_RESOLVE_FAILED`,e),t.options)??l,d=Fr(u)?u:new B(u);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}var Ns=L((()=>{z(),Ei(),ja(),Ia(),Ss(),ws(),As()}));function Ps(e,t,n){let r=t.offset,i=Fs(t,e.options.strict,n);if(!i)return{value:``,type:null,comment:``,range:[r,r,r]};let a=i.mode===`>`?B.BLOCK_FOLDED:B.BLOCK_LITERAL,o=t.source?Is(t.source):[],s=o.length;for(let e=o.length-1;e>=0;--e){let t=o[e][1];if(t===``||t===`\r`)s=e;else break}if(s===0){let e=i.chomp===`+`&&o.length>0?`
90
+ `}var os=F((()=>{L(),la(),Vi()}));function ss(e){if(Lr(e))return!0;throw Error(`Expected a YAML collection as document contents`)}var cs,ls=F((()=>{Di(),Li(),L(),Ea(),Si(),is(),os(),vi(),bi(),Ni(),pi(),cs=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,Gr,{value:Br});let r=null;typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t,t=void 0);let i=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=i;let{version:a}=i;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(a=this.directives.yaml.version)):this.directives=new fi({version:a}),this.setSchema(a,n),this.contents=e===void 0?null:this.createNode(e,r,n)}clone(){let t=Object.create(e.prototype,{[Gr]:{value:Br}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=Rr(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){ss(this.contents)&&this.contents.add(e)}addIn(e,t){ss(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let n=hi(this);e.anchor=!t||n.has(t)?gi(t||`a`,n):t}return new Ei(e.anchor)}createNode(e,t,n){let r;if(typeof t==`function`)e=t.call({"":e},``,e),r=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),r=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:i,anchorPrefix:a,flow:o,keepUndefined:s,onTagObj:c,tag:l}=n??{},{onAnchor:u,setAnchors:d,sourceObjects:f}=_i(this,a||`a`),p={aliasDuplicateObjects:i??!0,keepUndefined:s??!1,onAnchor:u,onTagObj:c,replacer:r,schema:this.schema,sourceObjects:f},m=ji(e,l,p);return o&&Lr(m)&&(m.flow=!0),d(),m}createPair(e,t,n={}){let r=this.createNode(e,null,n),i=this.createNode(t,null,n);return new Ta(r,i)}delete(e){return ss(this.contents)?this.contents.delete(e):!1}deleteIn(e){return Fi(e)?this.contents!=null&&(this.contents=null,!0):ss(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return Lr(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return Fi(e)?!t&&Xr(this.contents)?this.contents.value:this.contents:Lr(this.contents)?this.contents.getIn(e,t):void 0}has(e){return Lr(this.contents)?this.contents.has(e):!1}hasIn(e){return Fi(e)?this.contents!==void 0:Lr(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=Pi(this.schema,[e],t):ss(this.contents)&&this.contents.set(e,t)}setIn(e,t){Fi(e)?this.contents=t:this.contents==null?this.contents=Pi(this.schema,Array.from(e),t):ss(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new fi({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new fi({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new rs(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:a}={}){let o={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},s=xi(this.contents,t??``,o);if(typeof i==`function`)for(let{count:e,res:t}of o.anchors.values())i(t,e);return typeof a==`function`?yi(a,{"":s},``,s):s}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return as(this,e)}}})),us,ds,fs,ps,ms=F((()=>{us=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},ds=class extends us{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},fs=class extends us{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}},ps=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`…
91
+ `),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}}}));function hs(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,_=null,v=null,y=null,b=null,x=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!b||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||_)&&(v=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,x??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:_&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),_=i,x??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||_)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),b=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){y&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),y=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let S=e[e.length-1],C=S?S.offset+S.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:y,found:b,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:_,newlineAfterProp:v,end:C,start:x??C}}var gs=F((()=>{}));function _s(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(`
92
+ `))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let t of e.items){for(let e of t.start)if(e.type===`newline`)return!0;if(t.sep){for(let e of t.sep)if(e.type===`newline`)return!0}if(_s(t.key)||_s(t.value))return!0}return!1;default:return!0}}var vs=F((()=>{}));function ys(e,t,n){if(t?.type===`flow-collection`){let r=t.end[0];r.indent===e&&(r.source===`]`||r.source===`}`)&&_s(t)&&n(r,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}var bs=F((()=>{vs()}));function xs(e,t,n){let{uniqueKeys:r}=e.options;if(r===!1)return!1;let i=typeof r==`function`?r:(e,t)=>e===t||Xr(e)&&Xr(t)&&e.value===t.value;return t.some(e=>i(e.key,n))}var Ss=F((()=>{L()}));function Cs({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??Na)(n.schema);n.atRoot&&=!1;let s=r.offset,c=null;for(let a of r.items){let{start:l,key:u,sep:d,value:f}=a,p=hs(l,{indicator:`explicit-key-ind`,next:u??d?.[0],offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0}),m=!p.found;if(m){if(u&&(u.type===`block-seq`?i(s,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in u&&u.indent!==r.indent&&i(s,`BAD_INDENT`,ws)),!p.anchor&&!p.tag&&!d){c=p.end,p.comment&&(o.comment?o.comment+=`
93
+ `+p.comment:o.comment=p.comment);continue}(p.newlineAfterProp||_s(u))&&i(u??l[l.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else p.found?.indent!==r.indent&&i(s,`BAD_INDENT`,ws);n.atKey=!0;let h=p.end,g=u?e(n,u,p,i):t(n,h,l,null,p,i);n.schema.compat&&ys(r.indent,u,i),n.atKey=!1,xs(n,o.items,g)&&i(h,`DUPLICATE_KEY`,`Map keys must be unique`);let _=hs(d??[],{indicator:`map-value-ind`,next:f,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!u||u.type===`block-scalar`});if(s=_.end,_.found){m&&(f?.type===`block-map`&&!_.hasNewline&&i(s,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),n.options.strict&&p.start<_.found.offset-1024&&i(g.range,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit block mapping key`));let c=f?e(n,f,_,i):t(n,s,d,null,_,i);n.schema.compat&&ys(r.indent,f,i),s=c.range[2];let l=new Ta(g,c);n.options.keepSourceTokens&&(l.srcToken=a),o.items.push(l)}else{m&&i(g.range,`MISSING_CHAR`,`Implicit map keys need to be followed by map values`),_.comment&&(g.comment?g.comment+=`
94
+ `+_.comment:g.comment=_.comment);let e=new Ta(g);n.options.keepSourceTokens&&(e.srcToken=a),o.items.push(e)}}return c&&c<s&&i(c,`IMPOSSIBLE`,`Map comment with trailing content`),o.range=[r.offset,s,c??s],o}var ws,Ts=F((()=>{Ea(),Pa(),gs(),vs(),bs(),Ss(),ws=`All mapping items must start at the same column`}));function Es({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=new((a?.nodeClass)??Ra)(n.schema);n.atRoot&&=!1,n.atKey&&=!1;let s=r.offset,c=null;for(let{start:a,value:l}of r.items){let u=hs(a,{indicator:`seq-item-ind`,next:l,offset:s,onError:i,parentIndent:r.indent,startOnNewline:!0});if(!u.found){if(u.anchor||u.tag||l)l?.type===`block-seq`?i(u.end,`BAD_INDENT`,`All sequence items must start at the same column`):i(s,`MISSING_CHAR`,`Sequence item without - indicator`);else{c=u.end,u.comment&&(o.comment=u.comment);continue}}let d=l?e(n,l,u,i):t(n,u.end,a,null,u,i);n.schema.compat&&ys(r.indent,l,i),s=d.range[2],o.items.push(d)}return o.range=[r.offset,s,c??s],o}var Ds=F((()=>{za(),gs(),bs()}));function Os(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}var ks=F((()=>{}));function As({composeNode:e,composeEmptyNode:t},n,r,i,a){let o=r.start.source===`{`,s=o?`flow map`:`flow sequence`,c=new((a?.nodeClass)??(o?Na:Ra))(n.schema);c.flow=!0;let l=n.atRoot;l&&(n.atRoot=!1),n.atKey&&=!1;let u=r.offset+r.start.source.length;for(let a=0;a<r.items.length;++a){let l=r.items[a],{start:d,key:f,sep:p,value:m}=l,h=hs(d,{flow:s,indicator:`explicit-key-ind`,next:f??p?.[0],offset:u,onError:i,parentIndent:r.indent,startOnNewline:!1});if(!h.found){if(!h.anchor&&!h.tag&&!p&&!m){a===0&&h.comma?i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`):a<r.items.length-1&&i(h.start,`UNEXPECTED_TOKEN`,`Unexpected empty item in ${s}`),h.comment&&(c.comment?c.comment+=`
95
+ `+h.comment:c.comment=h.comment),u=h.end;continue}!o&&n.options.strict&&_s(f)&&i(f,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`)}if(a===0)h.comma&&i(h.comma,`UNEXPECTED_TOKEN`,`Unexpected , in ${s}`);else if(h.comma||i(h.start,`MISSING_CHAR`,`Missing , between ${s} items`),h.comment){let e=``;loop:for(let t of d)switch(t.type){case`comma`:case`space`:break;case`comment`:e=t.source.substring(1);break loop;default:break loop}if(e){let t=c.items[c.items.length-1];Yr(t)&&(t=t.value??t.key),t.comment?t.comment+=`
96
+ `+e:t.comment=e,h.comment=h.comment.substring(e.length+1)}}if(!o&&!p&&!h.found){let r=m?e(n,m,h,i):t(n,h.end,p,null,h,i);c.items.push(r),u=r.range[2],Ms(m)&&i(r.range,`BLOCK_IN_FLOW`,js)}else{n.atKey=!0;let a=h.end,g=f?e(n,f,h,i):t(n,a,d,null,h,i);Ms(f)&&i(g.range,`BLOCK_IN_FLOW`,js),n.atKey=!1;let _=hs(p??[],{flow:s,indicator:`map-value-ind`,next:m,offset:g.range[2],onError:i,parentIndent:r.indent,startOnNewline:!1});if(_.found){if(!o&&!h.found&&n.options.strict){if(p)for(let e of p){if(e===_.found)break;if(e.type===`newline`){i(e,`MULTILINE_IMPLICIT_KEY`,`Implicit keys of flow sequence pairs need to be on a single line`);break}}h.start<_.found.offset-1024&&i(_.found,`KEY_OVER_1024_CHARS`,`The : indicator must be at most 1024 chars after the start of an implicit flow sequence key`)}}else m&&(`source`in m&&m.source?.[0]===`:`?i(m,`MISSING_CHAR`,`Missing space after : in ${s}`):i(_.start,`MISSING_CHAR`,`Missing , or : between ${s} items`));let v=m?e(n,m,_,i):_.found?t(n,_.end,p,null,_,i):null;v?Ms(m)&&i(v.range,`BLOCK_IN_FLOW`,js):_.comment&&(g.comment?g.comment+=`
97
+ `+_.comment:g.comment=_.comment);let y=new Ta(g,v);if(n.options.keepSourceTokens&&(y.srcToken=l),o){let e=c;xs(n,e.items,g)&&i(a,`DUPLICATE_KEY`,`Map keys must be unique`),e.items.push(y)}else{let e=new Na(n.schema);e.flow=!0,e.items.push(y);let t=(v??g).range;e.range=[g.range[0],t[1],t[2]],c.items.push(e)}u=v?v.range[2]:_.end}}let d=o?`}`:`]`,[f,...p]=r.end,m=u;if(f?.source===d)m=f.offset+f.source.length;else{let e=s[0].toUpperCase()+s.substring(1),t=l?`${e} must end with a ${d}`:`${e} in block collection must be sufficiently indented and end with a ${d}`;i(u,l?`MISSING_CHAR`:`BAD_INDENT`,t),f&&f.source.length!==1&&p.unshift(f)}if(p.length>0){let e=Os(p,m,n.options.strict,i);e.comment&&(c.comment?c.comment+=`
98
+ `+e.comment:c.comment=e.comment),c.range=[r.offset,m,e.offset]}else c.range=[r.offset,m,m];return c}var js,Ms,Ns=F((()=>{L(),Ea(),Pa(),za(),ks(),gs(),vs(),Ss(),js=`Block collections are not allowed within flow collections`,Ms=e=>e&&(e.type===`block-map`||e.type===`block-seq`)}));function Ps(e,t,n,r,i,a){let o=n.type===`block-map`?Cs(e,t,n,r,a):n.type===`block-seq`?Es(e,t,n,r,a):As(e,t,n,r,a),s=o.constructor;return i===`!`||i===s.tagName?(o.tag=s.tagName,o):(i&&(o.tag=i),o)}function Fs(e,t,n,r,i){let a=r.tag,o=a?t.directives.tagName(a.source,e=>i(a,`TAG_RESOLVE_FAILED`,e)):null;if(n.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=r,n=e&&a?e.offset>a.offset?e:a:e??a;n&&(!t||t.offset<n.offset)&&i(n,`MISSING_CHAR`,`Missing newline after block sequence props`)}let s=n.type===`block-map`?`map`:n.type===`block-seq`?`seq`:n.start.source===`{`?`map`:`seq`;if(!a||!o||o===`!`||o===Na.tagName&&s===`map`||o===Ra.tagName&&s===`seq`)return Ps(e,t,n,i,o);let c=t.schema.tags.find(e=>e.tag===o&&e.collection===s);if(!c){let r=t.schema.knownTags[o];if(r?.collection===s)t.schema.tags.push(Object.assign({},r,{default:!1})),c=r;else return r?i(a,`BAD_COLLECTION_TYPE`,`${r.tag} used for ${s} collection, but expects ${r.collection??`scalar`}`,!0):i(a,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${o}`,!0),Ps(e,t,n,i,o)}let l=Ps(e,t,n,i,o,c),u=c.resolve?.(l,e=>i(a,`TAG_RESOLVE_FAILED`,e),t.options)??l,d=Rr(u)?u:new R(u);return d.range=l.range,d.tag=o,c?.format&&(d.format=c.format),d}var Is=F((()=>{L(),ki(),Pa(),za(),Ts(),Ds(),Ns()}));function Ls(e,t,n){let r=t.offset,i=Rs(t,e.options.strict,n);if(!i)return{value:``,type:null,comment:``,range:[r,r,r]};let a=i.mode===`>`?R.BLOCK_FOLDED:R.BLOCK_LITERAL,o=t.source?zs(t.source):[],s=o.length;for(let e=o.length-1;e>=0;--e){let t=o[e][1];if(t===``||t===`\r`)s=e;else break}if(s===0){let e=i.chomp===`+`&&o.length>0?`
99
99
  `.repeat(Math.max(1,o.length-1)):``,n=r+i.length;return t.source&&(n+=t.source.length),{value:e,type:a,comment:i.comment,range:[r,n,n]}}let c=t.indent+i.indent,l=t.offset+i.length,u=0;for(let t=0;t<s;++t){let[r,a]=o[t];if(a===``||a===`\r`)i.indent===0&&r.length>c&&(c=r.length);else{r.length<c&&n(l+r.length,`MISSING_CHAR`,`Block scalars with more-indented leading empty lines must use an explicit indentation indicator`),i.indent===0&&(c=r.length),u=t,c===0&&!e.atRoot&&n(l,`BAD_INDENT`,`Block scalar values in collections must be indented`);break}l+=r.length+a.length+1}for(let e=o.length-1;e>=s;--e)o[e][0].length>c&&(s=e+1);let d=``,f=``,p=!1;for(let e=0;e<u;++e)d+=o[e][0].slice(c)+`
100
- `;for(let e=u;e<s;++e){let[t,r]=o[e];l+=t.length+r.length+1;let s=r[r.length-1]===`\r`;if(s&&(r=r.slice(0,-1)),r&&t.length<c){let e=`Block scalar lines must not be less indented than their ${i.indent?`explicit indentation indicator`:`first line`}`;n(l-r.length-(s?2:1),`BAD_INDENT`,e),t=``}a===B.BLOCK_LITERAL?(d+=f+t.slice(c)+r,f=`
100
+ `;for(let e=u;e<s;++e){let[t,r]=o[e];l+=t.length+r.length+1;let s=r[r.length-1]===`\r`;if(s&&(r=r.slice(0,-1)),r&&t.length<c){let e=`Block scalar lines must not be less indented than their ${i.indent?`explicit indentation indicator`:`first line`}`;n(l-r.length-(s?2:1),`BAD_INDENT`,e),t=``}a===R.BLOCK_LITERAL?(d+=f+t.slice(c)+r,f=`
101
101
  `):t.length>c||r[0]===` `?(f===` `?f=`
102
102
  `:!p&&f===`
103
103
  `&&(f=`
@@ -110,151 +110,151 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
110
110
  `+o[e][0].slice(c);d[d.length-1]!==`
111
111
  `&&(d+=`
112
112
  `);break;default:d+=`
113
- `}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function Fs({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function Is(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}var Ls=L((()=>{Ei()}));function Rs(e,t,n){let{offset:r,type:i,source:a,end:o}=e,s,c,l=(e,t,i)=>n(r+e,t,i);switch(i){case`scalar`:s=B.PLAIN,c=zs(a,l);break;case`single-quoted-scalar`:s=B.QUOTE_SINGLE,c=Bs(a,l);break;case`double-quoted-scalar`:s=B.QUOTE_DOUBLE,c=Hs(a,l);break;default:return n(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${i}`),{value:``,type:null,comment:``,range:[r,r+a.length,r+a.length]}}let u=r+a.length,d=Ts(o,u,t,n);return{value:c,type:s,comment:d.comment,range:[r,u,d.offset]}}function zs(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),Vs(e)}function Bs(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),Vs(e.slice(1,-1)).replace(/''/g,`'`)}function Vs(e){let t,n;try{t=RegExp(`(.*?)(?<![ ])[ ]*\r?
113
+ `}let m=r+i.length+t.source.length;return{value:d,type:a,comment:i.comment,range:[r,m,m]}}function Rs({offset:e,props:t},n,r){if(t[0].type!==`block-scalar-header`)return r(t[0],`IMPOSSIBLE`,`Block scalar header not found`),null;let{source:i}=t[0],a=i[0],o=0,s=``,c=-1;for(let t=1;t<i.length;++t){let n=i[t];if(!s&&(n===`-`||n===`+`))s=n;else{let r=Number(n);!o&&r?o=r:c===-1&&(c=e+t)}}c!==-1&&r(c,`UNEXPECTED_TOKEN`,`Block scalar header includes extra characters: ${i}`);let l=!1,u=``,d=i.length;for(let e=1;e<t.length;++e){let i=t[e];switch(i.type){case`space`:l=!0;case`newline`:d+=i.source.length;break;case`comment`:n&&!l&&r(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`),d+=i.source.length,u=i.source.substring(1);break;case`error`:r(i,`UNEXPECTED_TOKEN`,i.message),d+=i.source.length;break;default:{r(i,`UNEXPECTED_TOKEN`,`Unexpected token in block scalar header: ${i.type}`);let e=i.source;e&&typeof e==`string`&&(d+=e.length)}}}return{mode:a,indent:o,chomp:s,comment:u,length:d}}function zs(e){let t=e.split(/\n( *)/),n=t[0],r=n.match(/^( *)/),i=[r?.[1]?[r[1],n.slice(r[1].length)]:[``,n]];for(let e=1;e<t.length;e+=2)i.push([t[e],t[e+1]]);return i}var Bs=F((()=>{ki()}));function Vs(e,t,n){let{offset:r,type:i,source:a,end:o}=e,s,c,l=(e,t,i)=>n(r+e,t,i);switch(i){case`scalar`:s=R.PLAIN,c=Hs(a,l);break;case`single-quoted-scalar`:s=R.QUOTE_SINGLE,c=Us(a,l);break;case`double-quoted-scalar`:s=R.QUOTE_DOUBLE,c=Gs(a,l);break;default:return n(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${i}`),{value:``,type:null,comment:``,range:[r,r+a.length,r+a.length]}}let u=r+a.length,d=Os(o,u,t,n);return{value:c,type:s,comment:d.comment,range:[r,u,d.offset]}}function Hs(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),Ws(e)}function Us(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),Ws(e.slice(1,-1)).replace(/''/g,`'`)}function Ws(e){let t,n;try{t=RegExp(`(.*?)(?<![ ])[ ]*\r?
114
114
  `,`sy`),n=RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
115
115
  `,`sy`)}catch{t=/(.*?)[ \t]*\r?\n/sy,n=/[ \t]*(.*?)[ \t]*\r?\n/sy}let r=t.exec(e);if(!r)return e;let i=r[1],a=` `,o=t.lastIndex;for(n.lastIndex=o;r=n.exec(e);)r[1]===``?a===`
116
116
  `?i+=a:a=`
117
- `:(i+=a+r[1],a=` `),o=n.lastIndex;let s=/[ \t]*(.*)/sy;return s.lastIndex=o,r=s.exec(e),i+a+(r?.[1]??``)}function Hs(e,t){let n=``;for(let r=1;r<e.length-1;++r){let i=e[r];if(i!==`\r`||e[r+1]!==`
117
+ `:(i+=a+r[1],a=` `),o=n.lastIndex;let s=/[ \t]*(.*)/sy;return s.lastIndex=o,r=s.exec(e),i+a+(r?.[1]??``)}function Gs(e,t){let n=``;for(let r=1;r<e.length-1;++r){let i=e[r];if(i!==`\r`||e[r+1]!==`
118
118
  `){if(i===`
119
- `){let{fold:t,offset:i}=Us(e,r);n+=t,r=i}else if(i===`\\`){let i=e[++r],a=Gs[i];if(a)n+=a;else if(i===`
119
+ `){let{fold:t,offset:i}=Ks(e,r);n+=t,r=i}else if(i===`\\`){let i=e[++r],a=Js[i];if(a)n+=a;else if(i===`
120
120
  `)for(i=e[r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`\r`&&e[r+1]===`
121
- `)for(i=e[++r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`x`||i===`u`||i===`U`){let a=i===`x`?2:i===`u`?4:8;n+=Ws(e,r+1,a,t),r+=a}else{let i=e.substr(r-1,2);t(r-1,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),n+=i}}else if(i===` `||i===` `){let t=r,a=e[r+1];for(;a===` `||a===` `;)a=e[++r+1];a!==`
121
+ `)for(i=e[++r+1];i===` `||i===` `;)i=e[++r+1];else if(i===`x`||i===`u`||i===`U`){let a=i===`x`?2:i===`u`?4:8;n+=qs(e,r+1,a,t),r+=a}else{let i=e.substr(r-1,2);t(r-1,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),n+=i}}else if(i===` `||i===` `){let t=r,a=e[r+1];for(;a===` `||a===` `;)a=e[++r+1];a!==`
122
122
  `&&(a!==`\r`||e[r+2]!==`
123
- `)&&(n+=r>t?e.slice(t,r+1):i)}else n+=i}}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function Us(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===`
123
+ `)&&(n+=r>t?e.slice(t,r+1):i)}else n+=i}}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function Ks(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===`
124
124
  `||r===`\r`)&&(r!==`\r`||e[t+2]===`
125
125
  `);)r===`
126
126
  `&&(n+=`
127
- `),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}function Ws(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}var Gs,Ks=L((()=>{Ei(),Es(),Gs={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
128
- `,r:`\r`,t:` `,v:`\v`,N:`…`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `}}));function qs(e,t,n,r){let{value:i,type:a,comment:o,range:s}=t.type===`block-scalar`?Ps(e,t,r):Rs(t,e.options.strict,r),c=n?e.directives.tagName(n.source,e=>r(n,`TAG_RESOLVE_FAILED`,e)):null,l;l=e.options.stringKeys&&e.atKey?e.schema[Br]:c?Js(e.schema,i,c,n,r):t.type===`scalar`?Ys(e,i,t,r):e.schema[Br];let u;try{let a=l.resolve(i,e=>r(n??t,`TAG_RESOLVE_FAILED`,e),e.options);u=qr(a)?a:new B(a)}catch(e){let a=e instanceof Error?e.message:String(e);r(n??t,`TAG_RESOLVE_FAILED`,a),u=new B(i)}return u.range=s,u.source=i,a&&(u.type=a),c&&(u.tag=c),l.format&&(u.format=l.format),o&&(u.comment=o),u}function Js(e,t,n,r,i){if(n===`!`)return e[Br];let a=[];for(let t of e.tags)if(!t.collection&&t.tag===n){if(t.default&&t.test)a.push(t);else return t}for(let e of a)if(e.test?.test(t))return e;let o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${n}`,n!==`tag:yaml.org,2002:str`),e[Br])}function Ys({atKey:e,directives:t,schema:n},r,i,a){let o=n.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(r))||n[Br];if(n.compat){let e=n.compat.find(e=>e.default&&e.test?.test(r))??n[Br];o.tag!==e.tag&&a(i,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${t.tagString(o.tag)} or ${t.tagString(e.tag)}`,!0)}return o}var Xs=L((()=>{z(),Ei(),Ls(),Ks()}));function Zs(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}var Qs=L((()=>{}));function $s(e,t,n,r){let i=e.atKey,{spaceBefore:a,comment:o,anchor:s,tag:c}=n,l,u=!0;switch(t.type){case`alias`:l=tc(e,t,r),(s||c)&&r(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:l=qs(e,t,c,r),s&&(l.anchor=s.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{l=Ms(nc,e,t,n,r),s&&(l.anchor=s.source.substring(1))}catch(e){r(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:r(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),u=!1}return l??=ec(e,t.offset,void 0,null,n,r),s&&l.anchor===``&&r(s,`BAD_ALIAS`,`Anchor cannot be an empty string`),i&&e.options.stringKeys&&(!qr(l)||typeof l.value!=`string`||l.tag&&l.tag!==`tag:yaml.org,2002:str`)&&r(c??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),a&&(l.spaceBefore=!0),o&&(t.type===`scalar`&&t.source===``?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&u&&(l.srcToken=t),l}function ec(e,t,n,r,{spaceBefore:i,comment:a,anchor:o,tag:s,end:c},l){let u=qs(e,{type:`scalar`,offset:Zs(t,n,r),indent:-1,source:``},s,l);return o&&(u.anchor=o.source.substring(1),u.anchor===``&&l(o,`BAD_ALIAS`,`Anchor cannot be an empty string`)),i&&(u.spaceBefore=!0),a&&(u.comment=a,u.range[2]=c),u}function tc({options:e},{offset:t,source:n,end:r},i){let a=new Ci(n.substring(1));a.source===``&&i(t,`BAD_ALIAS`,`Alias cannot be an empty string`),a.source.endsWith(`:`)&&i(t+n.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let o=t+n.length,s=Ts(r,o,e.strict,i);return a.range=[t,o,s.offset],s.comment&&(a.comment=s.comment),a}var nc,rc=L((()=>{wi(),z(),Ns(),Xs(),Es(),Qs(),nc={composeNode:$s,composeEmptyNode:ec}}));function ic(e,t,{offset:n,start:r,value:i,end:a},o){let s=Object.assign({_directives:t},e),c=new as(void 0,s),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},u=fs(r,{indicator:`doc-start`,next:i??a?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});u.found&&(c.directives.docStart=!0,i&&(i.type===`block-map`||i.type===`block-seq`)&&!u.hasNewline&&o(u.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),c.contents=i?$s(l,i,u,o):ec(l,u.end,r,null,u,o);let d=c.contents.range[2],f=Ts(a,d,!1,o);return f.comment&&(c.comment=f.comment),c.range=[n,d,f.offset],c}var ac=L((()=>{os(),rc(),Es(),ps()}));function oc(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function sc(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
127
+ `),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}function qs(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}var Js,Ys=F((()=>{ki(),ks(),Js={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:`
128
+ `,r:`\r`,t:` `,v:`\v`,N:`…`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `}}));function Xs(e,t,n,r){let{value:i,type:a,comment:o,range:s}=t.type===`block-scalar`?Ls(e,t,r):Vs(t,e.options.strict,r),c=n?e.directives.tagName(n.source,e=>r(n,`TAG_RESOLVE_FAILED`,e)):null,l;l=e.options.stringKeys&&e.atKey?e.schema[Ur]:c?Zs(e.schema,i,c,n,r):t.type===`scalar`?Qs(e,i,t,r):e.schema[Ur];let u;try{let a=l.resolve(i,e=>r(n??t,`TAG_RESOLVE_FAILED`,e),e.options);u=Xr(a)?a:new R(a)}catch(e){let a=e instanceof Error?e.message:String(e);r(n??t,`TAG_RESOLVE_FAILED`,a),u=new R(i)}return u.range=s,u.source=i,a&&(u.type=a),c&&(u.tag=c),l.format&&(u.format=l.format),o&&(u.comment=o),u}function Zs(e,t,n,r,i){if(n===`!`)return e[Ur];let a=[];for(let t of e.tags)if(!t.collection&&t.tag===n){if(t.default&&t.test)a.push(t);else return t}for(let e of a)if(e.test?.test(t))return e;let o=e.knownTags[n];return o&&!o.collection?(e.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(i(r,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${n}`,n!==`tag:yaml.org,2002:str`),e[Ur])}function Qs({atKey:e,directives:t,schema:n},r,i,a){let o=n.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(r))||n[Ur];if(n.compat){let e=n.compat.find(e=>e.default&&e.test?.test(r))??n[Ur];o.tag!==e.tag&&a(i,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${t.tagString(o.tag)} or ${t.tagString(e.tag)}`,!0)}return o}var $s=F((()=>{L(),ki(),Bs(),Ys()}));function ec(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}var tc=F((()=>{}));function nc(e,t,n,r){let i=e.atKey,{spaceBefore:a,comment:o,anchor:s,tag:c}=n,l,u=!0;switch(t.type){case`alias`:l=ic(e,t,r),(s||c)&&r(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:l=Xs(e,t,c,r),s&&(l.anchor=s.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{l=Fs(ac,e,t,n,r),s&&(l.anchor=s.source.substring(1))}catch(e){r(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:r(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),u=!1}return l??=rc(e,t.offset,void 0,null,n,r),s&&l.anchor===``&&r(s,`BAD_ALIAS`,`Anchor cannot be an empty string`),i&&e.options.stringKeys&&(!Xr(l)||typeof l.value!=`string`||l.tag&&l.tag!==`tag:yaml.org,2002:str`)&&r(c??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),a&&(l.spaceBefore=!0),o&&(t.type===`scalar`&&t.source===``?l.comment=o:l.commentBefore=o),e.options.keepSourceTokens&&u&&(l.srcToken=t),l}function rc(e,t,n,r,{spaceBefore:i,comment:a,anchor:o,tag:s,end:c},l){let u=Xs(e,{type:`scalar`,offset:ec(t,n,r),indent:-1,source:``},s,l);return o&&(u.anchor=o.source.substring(1),u.anchor===``&&l(o,`BAD_ALIAS`,`Anchor cannot be an empty string`)),i&&(u.spaceBefore=!0),a&&(u.comment=a,u.range[2]=c),u}function ic({options:e},{offset:t,source:n,end:r},i){let a=new Ei(n.substring(1));a.source===``&&i(t,`BAD_ALIAS`,`Alias cannot be an empty string`),a.source.endsWith(`:`)&&i(t+n.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let o=t+n.length,s=Os(r,o,e.strict,i);return a.range=[t,o,s.offset],s.comment&&(a.comment=s.comment),a}var ac,oc=F((()=>{Di(),L(),Is(),$s(),ks(),tc(),ac={composeNode:nc,composeEmptyNode:rc}}));function sc(e,t,{offset:n,start:r,value:i,end:a},o){let s=Object.assign({_directives:t},e),c=new cs(void 0,s),l={atKey:!1,atRoot:!0,directives:c.directives,options:c.options,schema:c.schema},u=hs(r,{indicator:`doc-start`,next:i??a?.[0],offset:n,onError:o,parentIndent:0,startOnNewline:!0});u.found&&(c.directives.docStart=!0,i&&(i.type===`block-map`||i.type===`block-seq`)&&!u.hasNewline&&o(u.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),c.contents=i?nc(l,i,u,o):rc(l,u.end,r,null,u,o);let d=c.contents.range[2],f=Os(a,d,!1,o);return f.comment&&(c.comment=f.comment),c.range=[n,d,f.offset],c}var cc=F((()=>{ls(),oc(),ks(),gs()}));function lc(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function uc(e){let t=``,n=!1,r=!1;for(let i=0;i<e.length;++i){let a=e[i];switch(a[0]){case`#`:t+=(t===``?``:r?`
129
129
 
130
130
  `:`
131
- `)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}var cc,lc=L((()=>{ui(),os(),ds(),z(),ac(),Es(),cc=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=oc(e);r?this.warnings.push(new ls(i,t,n)):this.errors.push(new cs(i,t,n))},this.directives=new li({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=sc(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(Pr(i)&&!i.flow&&i.items.length>0){let e=i.items[0];Kr(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:sc(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=oc(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=ic(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new cs(oc(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new cs(oc(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=Ts(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new cs(oc(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=Object.assign({_directives:this.directives},this.options),n=new as(void 0,e);this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),n.range=[0,t,t],this.decorate(n,!1),yield n}}}}));function uc(e,t=!0,n){if(e){let r=(e,t,r)=>{let i=typeof e==`number`?e:Array.isArray(e)?e[0]:e.offset;if(n)n(i,t,r);else throw new cs([i,i+1],t,r)};switch(e.type){case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return Rs(e,t,r);case`block-scalar`:return Ps({options:{strict:t}},e,r)}}return null}function dc(e,t){let{implicitKey:n=!1,indent:r,inFlow:i=!1,offset:a=-1,type:o=`PLAIN`}=t,s=Zi({type:o,value:e},{implicitKey:n,indent:r>0?` `.repeat(r):``,inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),c=t.end??[{type:`newline`,offset:-1,indent:r,source:`
131
+ `)+(a.substring(1)||` `),n=!0,r=!1;break;case`%`:e[i+1]?.[0]!==`#`&&(i+=1),n=!1;break;default:n||(r=!0),n=!1}}return{comment:t,afterEmptyLine:r}}var dc,fc=F((()=>{pi(),ls(),ms(),L(),cc(),ks(),dc=class{constructor(e={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=(e,t,n,r)=>{let i=lc(e);r?this.warnings.push(new fs(i,t,n)):this.errors.push(new ds(i,t,n))},this.directives=new fi({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=uc(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(Lr(i)&&!i.flow&&i.items.length>0){let e=i.items[0];Yr(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t<this.errors.length;++t)e.errors.push(this.errors[t]);for(let t=0;t<this.warnings.length;++t)e.warnings.push(this.warnings[t])}else e.errors=this.errors,e.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:uc(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,n=-1){for(let t of e)yield*this.next(t);yield*this.end(t,n)}*next(e){switch(e.type){case`directive`:this.directives.add(e.source,(t,n,r)=>{let i=lc(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=sc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new ds(lc(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new ds(lc(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=Os(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new ds(lc(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=Object.assign({_directives:this.directives},this.options),n=new cs(void 0,e);this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),n.range=[0,t,t],this.decorate(n,!1),yield n}}}}));function pc(e,t=!0,n){if(e){let r=(e,t,r)=>{let i=typeof e==`number`?e:Array.isArray(e)?e[0]:e.offset;if(n)n(i,t,r);else throw new ds([i,i+1],t,r)};switch(e.type){case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return Vs(e,t,r);case`block-scalar`:return Ls({options:{strict:t}},e,r)}}return null}function mc(e,t){let{implicitKey:n=!1,indent:r,inFlow:i=!1,offset:a=-1,type:o=`PLAIN`}=t,s=ea({type:o,value:e},{implicitKey:n,indent:r>0?` `.repeat(r):``,inFlow:i,options:{blockQuote:!0,lineWidth:-1}}),c=t.end??[{type:`newline`,offset:-1,indent:r,source:`
132
132
  `}];switch(s[0]){case`|`:case`>`:{let e=s.indexOf(`
133
133
  `),t=s.substring(0,e),n=s.substring(e+1)+`
134
- `,i=[{type:`block-scalar-header`,offset:a,indent:r,source:t}];return mc(i,c)||i.push({type:`newline`,offset:-1,indent:r,source:`
135
- `}),{type:`block-scalar`,offset:a,indent:r,props:i,source:n}}case`"`:return{type:`double-quoted-scalar`,offset:a,indent:r,source:s,end:c};case`'`:return{type:`single-quoted-scalar`,offset:a,indent:r,source:s,end:c};default:return{type:`scalar`,offset:a,indent:r,source:s,end:c}}}function fc(e,t,n={}){let{afterKey:r=!1,implicitKey:i=!1,inFlow:a=!1,type:o}=n,s=`indent`in e?e.indent:null;if(r&&typeof s==`number`&&(s+=2),!o)switch(e.type){case`single-quoted-scalar`:o=`QUOTE_SINGLE`;break;case`double-quoted-scalar`:o=`QUOTE_DOUBLE`;break;case`block-scalar`:{let t=e.props[0];if(t.type!==`block-scalar-header`)throw Error(`Invalid block scalar header`);o=t.source[0]===`>`?`BLOCK_FOLDED`:`BLOCK_LITERAL`;break}default:o=`PLAIN`}let c=Zi({type:o,value:t},{implicitKey:i||s===null,indent:s!==null&&s>0?` `.repeat(s):``,inFlow:a,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case`|`:case`>`:pc(e,c);break;case`"`:hc(e,c,`double-quoted-scalar`);break;case`'`:hc(e,c,`single-quoted-scalar`);break;default:hc(e,c,`scalar`)}}function pc(e,t){let n=t.indexOf(`
134
+ `,i=[{type:`block-scalar-header`,offset:a,indent:r,source:t}];return _c(i,c)||i.push({type:`newline`,offset:-1,indent:r,source:`
135
+ `}),{type:`block-scalar`,offset:a,indent:r,props:i,source:n}}case`"`:return{type:`double-quoted-scalar`,offset:a,indent:r,source:s,end:c};case`'`:return{type:`single-quoted-scalar`,offset:a,indent:r,source:s,end:c};default:return{type:`scalar`,offset:a,indent:r,source:s,end:c}}}function hc(e,t,n={}){let{afterKey:r=!1,implicitKey:i=!1,inFlow:a=!1,type:o}=n,s=`indent`in e?e.indent:null;if(r&&typeof s==`number`&&(s+=2),!o)switch(e.type){case`single-quoted-scalar`:o=`QUOTE_SINGLE`;break;case`double-quoted-scalar`:o=`QUOTE_DOUBLE`;break;case`block-scalar`:{let t=e.props[0];if(t.type!==`block-scalar-header`)throw Error(`Invalid block scalar header`);o=t.source[0]===`>`?`BLOCK_FOLDED`:`BLOCK_LITERAL`;break}default:o=`PLAIN`}let c=ea({type:o,value:t},{implicitKey:i||s===null,indent:s!==null&&s>0?` `.repeat(s):``,inFlow:a,options:{blockQuote:!0,lineWidth:-1}});switch(c[0]){case`|`:case`>`:gc(e,c);break;case`"`:vc(e,c,`double-quoted-scalar`);break;case`'`:vc(e,c,`single-quoted-scalar`);break;default:vc(e,c,`scalar`)}}function gc(e,t){let n=t.indexOf(`
136
136
  `),r=t.substring(0,n),i=t.substring(n+1)+`
137
- `;if(e.type===`block-scalar`){let t=e.props[0];if(t.type!==`block-scalar-header`)throw Error(`Invalid block scalar header`);t.source=r,e.source=i}else{let{offset:t}=e,n=`indent`in e?e.indent:-1,a=[{type:`block-scalar-header`,offset:t,indent:n,source:r}];mc(a,`end`in e?e.end:void 0)||a.push({type:`newline`,offset:-1,indent:n,source:`
138
- `});for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:`block-scalar`,indent:n,props:a,source:i})}}function mc(e,t){if(t)for(let n of t)switch(n.type){case`space`:case`comment`:e.push(n);break;case`newline`:return e.push(n),!0}return!1}function hc(e,t,n){switch(e.type){case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:e.type=n,e.source=t;break;case`block-scalar`:{let r=e.props.slice(1),i=t.length;e.props[0].type===`block-scalar-header`&&(i-=e.props[0].source.length);for(let e of r)e.offset+=i;delete e.props,Object.assign(e,{type:n,source:t,end:r});break}case`block-map`:case`block-seq`:{let r={type:`newline`,offset:e.offset+t.length,indent:e.indent,source:`
139
- `};delete e.items,Object.assign(e,{type:n,source:t,end:[r]});break}default:{let r=`indent`in e?e.indent:-1,i=`end`in e&&Array.isArray(e.end)?e.end.filter(e=>e.type===`space`||e.type===`comment`||e.type===`newline`):[];for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:n,indent:r,source:t,end:i})}}}var gc=L((()=>{Ls(),Ks(),ds(),ta()}));function _c(e){switch(e.type){case`block-scalar`:{let t=``;for(let n of e.props)t+=_c(n);return t+e.source}case`block-map`:case`block-seq`:{let t=``;for(let n of e.items)t+=vc(n);return t}case`flow-collection`:{let t=e.start.source;for(let n of e.items)t+=vc(n);for(let n of e.end)t+=n.source;return t}case`document`:{let t=vc(e);if(e.end)for(let n of e.end)t+=n.source;return t}default:{let t=e.source;if(`end`in e&&e.end)for(let n of e.end)t+=n.source;return t}}}function vc({start:e,key:t,sep:n,value:r}){let i=``;for(let t of e)i+=t.source;if(t&&(i+=_c(t)),n)for(let e of n)i+=e.source;return r&&(i+=_c(r)),i}var yc,bc=L((()=>{yc=e=>`type`in e?_c(e):vc(e)}));function xc(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),Sc(Object.freeze([]),e,t)}function Sc(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=Sc(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===Cc)return Cc;else r===Tc&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}var Cc,wc,Tc,Ec=L((()=>{Cc=Symbol(`break visit`),wc=Symbol(`skip children`),Tc=Symbol(`remove item`),xc.BREAK=Cc,xc.SKIP=wc,xc.REMOVE=Tc,xc.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},xc.parentCollection=(e,t)=>{let n=xc.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)}})),Dc=Ge({BOM:()=>``,DOCUMENT:()=>``,FLOW_END:()=>``,SCALAR:()=>``,createScalarToken:()=>dc,isCollection:()=>Ac,isScalar:()=>jc,prettyToken:()=>Oc,resolveAsScalar:()=>uc,setScalarValue:()=>fc,stringify:()=>yc,tokenType:()=>kc,visit:()=>xc});function Oc(e){switch(e){case``:return`<BOM>`;case``:return`<DOC>`;case``:return`<FLOW_END>`;case``:return`<SCALAR>`;default:return JSON.stringify(e)}}function kc(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
137
+ `;if(e.type===`block-scalar`){let t=e.props[0];if(t.type!==`block-scalar-header`)throw Error(`Invalid block scalar header`);t.source=r,e.source=i}else{let{offset:t}=e,n=`indent`in e?e.indent:-1,a=[{type:`block-scalar-header`,offset:t,indent:n,source:r}];_c(a,`end`in e?e.end:void 0)||a.push({type:`newline`,offset:-1,indent:n,source:`
138
+ `});for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:`block-scalar`,indent:n,props:a,source:i})}}function _c(e,t){if(t)for(let n of t)switch(n.type){case`space`:case`comment`:e.push(n);break;case`newline`:return e.push(n),!0}return!1}function vc(e,t,n){switch(e.type){case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:e.type=n,e.source=t;break;case`block-scalar`:{let r=e.props.slice(1),i=t.length;e.props[0].type===`block-scalar-header`&&(i-=e.props[0].source.length);for(let e of r)e.offset+=i;delete e.props,Object.assign(e,{type:n,source:t,end:r});break}case`block-map`:case`block-seq`:{let r={type:`newline`,offset:e.offset+t.length,indent:e.indent,source:`
139
+ `};delete e.items,Object.assign(e,{type:n,source:t,end:[r]});break}default:{let r=`indent`in e?e.indent:-1,i=`end`in e&&Array.isArray(e.end)?e.end.filter(e=>e.type===`space`||e.type===`comment`||e.type===`newline`):[];for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:n,indent:r,source:t,end:i})}}}var yc=F((()=>{Bs(),Ys(),ms(),ia()}));function bc(e){switch(e.type){case`block-scalar`:{let t=``;for(let n of e.props)t+=bc(n);return t+e.source}case`block-map`:case`block-seq`:{let t=``;for(let n of e.items)t+=xc(n);return t}case`flow-collection`:{let t=e.start.source;for(let n of e.items)t+=xc(n);for(let n of e.end)t+=n.source;return t}case`document`:{let t=xc(e);if(e.end)for(let n of e.end)t+=n.source;return t}default:{let t=e.source;if(`end`in e&&e.end)for(let n of e.end)t+=n.source;return t}}}function xc({start:e,key:t,sep:n,value:r}){let i=``;for(let t of e)i+=t.source;if(t&&(i+=bc(t)),n)for(let e of n)i+=e.source;return r&&(i+=bc(r)),i}var Sc,Cc=F((()=>{Sc=e=>`type`in e?bc(e):xc(e)}));function wc(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),Tc(Object.freeze([]),e,t)}function Tc(e,t,n){let r=n(t,e);if(typeof r==`symbol`)return r;for(let i of[`key`,`value`]){let a=t[i];if(a&&`items`in a){for(let t=0;t<a.items.length;++t){let r=Tc(Object.freeze(e.concat([[i,t]])),a.items[t],n);if(typeof r==`number`)t=r-1;else if(r===Ec)return Ec;else r===Oc&&(a.items.splice(t,1),--t)}typeof r==`function`&&i===`key`&&(r=r(t,e))}}return typeof r==`function`?r(t,e):r}var Ec,Dc,Oc,kc=F((()=>{Ec=Symbol(`break visit`),Dc=Symbol(`skip children`),Oc=Symbol(`remove item`),wc.BREAK=Ec,wc.SKIP=Dc,wc.REMOVE=Oc,wc.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},wc.parentCollection=(e,t)=>{let n=wc.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],i=n?.[r];if(i&&`items`in i)return i;throw Error(`Parent collection not found`)}})),Ac=Je({BOM:()=>``,DOCUMENT:()=>``,FLOW_END:()=>``,SCALAR:()=>``,createScalarToken:()=>mc,isCollection:()=>Nc,isScalar:()=>Pc,prettyToken:()=>jc,resolveAsScalar:()=>pc,setScalarValue:()=>hc,stringify:()=>Sc,tokenType:()=>Mc,visit:()=>wc});function jc(e){switch(e){case``:return`<BOM>`;case``:return`<DOC>`;case``:return`<FLOW_END>`;case``:return`<SCALAR>`;default:return JSON.stringify(e)}}function Mc(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case`
140
140
  `:case`\r
141
- `:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}var Ac,jc,Mc=L((()=>{gc(),bc(),Ec(),Ac=e=>!!e&&`items`in e,jc=e=>!!e&&(e.type===`scalar`||e.type===`single-quoted-scalar`||e.type===`double-quoted-scalar`||e.type===`block-scalar`)}));function Nc(e){switch(e){case void 0:case` `:case`
142
- `:case`\r`:case` `:return!0;default:return!1}}var Pc,Fc,Ic,Lc,Rc,zc,Bc=L((()=>{Mc(),Pc=new Set(`0123456789ABCDEFabcdef`),Fc=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),Ic=new Set(`,[]{}`),Lc=new Set(` ,[]{}
143
- \r `),Rc=e=>!e||Lc.has(e),zc=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
141
+ `:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}var Nc,Pc,Fc=F((()=>{yc(),Cc(),kc(),Nc=e=>!!e&&`items`in e,Pc=e=>!!e&&(e.type===`scalar`||e.type===`single-quoted-scalar`||e.type===`double-quoted-scalar`||e.type===`block-scalar`)}));function Ic(e){switch(e){case void 0:case` `:case`
142
+ `:case`\r`:case` `:return!0;default:return!1}}var Lc,Rc,zc,Bc,Vc,Hc,Uc=F((()=>{Fc(),Lc=new Set(`0123456789ABCDEFabcdef`),Rc=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),zc=new Set(`,[]{}`),Bc=new Set(` ,[]{}
143
+ \r `),Vc=e=>!e||Bc.has(e),Hc=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===`
144
144
  `||t===`\r`&&this.buffer[e+1]===`
145
145
  `}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===` `;)t=this.buffer[++n+e];if(t===`\r`){let t=this.buffer[n+e+1];if(t===`
146
146
  `||!t&&!this.atEnd)return e+n+1}return t===`
147
- `||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&Nc(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!=`number`||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
148
- `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]===`\r`&&--e,this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case`stream`:return yield*this.parseStream();case`line-start`:return yield*this.parseLineStart();case`block-start`:return yield*this.parseBlockStart();case`doc`:return yield*this.parseDocument();case`flow`:return yield*this.parseFlowCollection();case`quoted-scalar`:return yield*this.parseQuotedScalar();case`block-scalar`:return yield*this.parseBlockScalar();case`plain-scalar`:return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext(`stream`);if(e[0]===``&&(yield*this.pushCount(1),e=e.substring(1)),e[0]===`%`){let t=e.length,n=e.indexOf(`#`);for(;n!==-1;){let r=e[n-1];if(r===` `||r===` `){t=n-1;break}n=e.indexOf(`#`,n+1)}for(;;){let n=e[t-1];if(n===` `||n===` `)--t;else break}let r=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-r),this.pushNewline(),`stream`}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),`stream`}return yield``,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext(`line-start`);if(e===`-`||e===`.`){if(!this.atEnd&&!this.hasChars(4))return this.setNext(`line-start`);let e=this.peek(3);if((e===`---`||e===`...`)&&Nc(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,e===`---`?`doc`:`stream`}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!Nc(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext(`block-start`);if((e===`-`||e===`?`||e===`:`)&&Nc(t)){let e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,`block-start`}return`doc`}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext(`doc`);let t=yield*this.pushIndicators();switch(e[t]){case`#`:yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),`doc`;case`*`:return yield*this.pushUntil(Rc),`doc`;case`"`:case`'`:return yield*this.parseQuotedScalar();case`|`:case`>`:return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let r=this.getLine();if(r===null)return this.setNext(`flow`);if((n!==-1&&n<this.indentNext&&r[0]!==`#`||n===0&&(r.startsWith(`---`)||r.startsWith(`...`))&&Nc(r[3]))&&(n!==this.indentNext-1||this.flowLevel!==1||r[0]!==`]`&&r[0]!==`}`))return this.flowLevel=0,yield``,yield*this.parseLineStart();let i=0;for(;r[i]===`,`;)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),r[i]){case void 0:return`flow`;case`#`:return yield*this.pushCount(r.length-i),`flow`;case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),this.flowKey=!0,--this.flowLevel,this.flowLevel?`flow`:`doc`;case`*`:return yield*this.pushUntil(Rc),`flow`;case`"`:case`'`:return this.flowKey=!0,yield*this.parseQuotedScalar();case`:`:{let e=this.charAt(1);if(this.flowKey||Nc(e)||e===`,`)return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),`flow`}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e===`'`)for(;t!==-1&&this.buffer[t+1]===`'`;)t=this.buffer.indexOf(`'`,t+2);else for(;t!==-1;){let e=0;for(;this.buffer[t-1-e]===`\\`;)e+=1;if(e%2==0)break;t=this.buffer.indexOf(`"`,t+1)}let n=this.buffer.substring(0,t),r=n.indexOf(`
147
+ `||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&Ic(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!=`number`||e!==-1&&e<this.pos)&&(e=this.buffer.indexOf(`
148
+ `,this.pos),this.lineEndPos=e),e===-1?this.atEnd?this.buffer.substring(this.pos):null:(this.buffer[e-1]===`\r`&&--e,this.buffer.substring(this.pos,e))}hasChars(e){return this.pos+e<=this.buffer.length}setNext(e){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=e,null}peek(e){return this.buffer.substr(this.pos,e)}*parseNext(e){switch(e){case`stream`:return yield*this.parseStream();case`line-start`:return yield*this.parseLineStart();case`block-start`:return yield*this.parseBlockStart();case`doc`:return yield*this.parseDocument();case`flow`:return yield*this.parseFlowCollection();case`quoted-scalar`:return yield*this.parseQuotedScalar();case`block-scalar`:return yield*this.parseBlockScalar();case`plain-scalar`:return yield*this.parsePlainScalar()}}*parseStream(){let e=this.getLine();if(e===null)return this.setNext(`stream`);if(e[0]===``&&(yield*this.pushCount(1),e=e.substring(1)),e[0]===`%`){let t=e.length,n=e.indexOf(`#`);for(;n!==-1;){let r=e[n-1];if(r===` `||r===` `){t=n-1;break}n=e.indexOf(`#`,n+1)}for(;;){let n=e[t-1];if(n===` `||n===` `)--t;else break}let r=(yield*this.pushCount(t))+(yield*this.pushSpaces(!0));return yield*this.pushCount(e.length-r),this.pushNewline(),`stream`}if(this.atLineEnd()){let t=yield*this.pushSpaces(!0);return yield*this.pushCount(e.length-t),yield*this.pushNewline(),`stream`}return yield``,yield*this.parseLineStart()}*parseLineStart(){let e=this.charAt(0);if(!e&&!this.atEnd)return this.setNext(`line-start`);if(e===`-`||e===`.`){if(!this.atEnd&&!this.hasChars(4))return this.setNext(`line-start`);let e=this.peek(3);if((e===`---`||e===`...`)&&Ic(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,e===`---`?`doc`:`stream`}return this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!Ic(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext(`block-start`);if((e===`-`||e===`?`||e===`:`)&&Ic(t)){let e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,`block-start`}return`doc`}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext(`doc`);let t=yield*this.pushIndicators();switch(e[t]){case`#`:yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),`doc`;case`*`:return yield*this.pushUntil(Vc),`doc`;case`"`:case`'`:return yield*this.parseQuotedScalar();case`|`:case`>`:return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,t,n=-1;do e=yield*this.pushNewline(),e>0?(t=yield*this.pushSpaces(!1),this.indentValue=n=t):t=0,t+=yield*this.pushSpaces(!0);while(e+t>0);let r=this.getLine();if(r===null)return this.setNext(`flow`);if((n!==-1&&n<this.indentNext&&r[0]!==`#`||n===0&&(r.startsWith(`---`)||r.startsWith(`...`))&&Ic(r[3]))&&(n!==this.indentNext-1||this.flowLevel!==1||r[0]!==`]`&&r[0]!==`}`))return this.flowLevel=0,yield``,yield*this.parseLineStart();let i=0;for(;r[i]===`,`;)i+=yield*this.pushCount(1),i+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(i+=yield*this.pushIndicators(),r[i]){case void 0:return`flow`;case`#`:return yield*this.pushCount(r.length-i),`flow`;case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),this.flowKey=!0,--this.flowLevel,this.flowLevel?`flow`:`doc`;case`*`:return yield*this.pushUntil(Vc),`flow`;case`"`:case`'`:return this.flowKey=!0,yield*this.parseQuotedScalar();case`:`:{let e=this.charAt(1);if(this.flowKey||Ic(e)||e===`,`)return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),`flow`}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let e=this.charAt(0),t=this.buffer.indexOf(e,this.pos+1);if(e===`'`)for(;t!==-1&&this.buffer[t+1]===`'`;)t=this.buffer.indexOf(`'`,t+2);else for(;t!==-1;){let e=0;for(;this.buffer[t-1-e]===`\\`;)e+=1;if(e%2==0)break;t=this.buffer.indexOf(`"`,t+1)}let n=this.buffer.substring(0,t),r=n.indexOf(`
149
149
  `,this.pos);if(r!==-1){for(;r!==-1;){let e=this.continueScalar(r+1);if(e===-1)break;r=n.indexOf(`
150
- `,e)}r!==-1&&(t=r-(n[r-1]===`\r`?2:1))}if(t===-1){if(!this.atEnd)return this.setNext(`quoted-scalar`);t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?`flow`:`doc`}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t===`+`)this.blockScalarKeep=!0;else if(t>`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>Nc(e)||e===`#`)}*parseBlockScalar(){let e=this.pos-1,t=0,n;loop:for(let r=this.pos;n=this.buffer[r];++r)switch(n){case` `:t+=1;break;case`
150
+ `,e)}r!==-1&&(t=r-(n[r-1]===`\r`?2:1))}if(t===-1){if(!this.atEnd)return this.setNext(`quoted-scalar`);t=this.buffer.length}return yield*this.pushToIndex(t+1,!1),this.flowLevel?`flow`:`doc`}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let e=this.pos;for(;;){let t=this.buffer[++e];if(t===`+`)this.blockScalarKeep=!0;else if(t>`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>Ic(e)||e===`#`)}*parseBlockScalar(){let e=this.pos-1,t=0,n;loop:for(let r=this.pos;n=this.buffer[r];++r)switch(n){case` `:t+=1;break;case`
151
151
  `:e=r,t=0;break;case`\r`:{let e=this.buffer[r+1];if(!e&&!this.atEnd)return this.setNext(`block-scalar`);if(e===`
152
152
  `)break}default:break loop}if(!n&&!this.atEnd)return this.setNext(`block-scalar`);if(t>=this.indentNext){this.indentNext=this.blockScalarIndent===-1?t:this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf(`
153
153
  `,t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext(`block-scalar`);e=this.buffer.length}}let r=e+1;for(n=this.buffer[r];n===` `;)n=this.buffer[++r];if(n===` `){for(;n===` `||n===` `||n===`\r`||n===`
154
154
  `;)n=this.buffer[++r];e=r-1}else if(!this.blockScalarKeep)do{let n=e-1,r=this.buffer[n];r===`\r`&&(r=this.buffer[--n]);let i=n;for(;r===` `;)r=this.buffer[--n];if(r===`
155
- `&&n>=this.pos&&n+1+t>i)e=n;else break}while(!0);return yield``,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,r;for(;r=this.buffer[++n];)if(r===`:`){let r=this.buffer[n+1];if(Nc(r)||e&&Ic.has(r))break;t=n}else if(Nc(r)){let i=this.buffer[n+1];if(r===`\r`&&(i===`
155
+ `&&n>=this.pos&&n+1+t>i)e=n;else break}while(!0);return yield``,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,n=this.pos-1,r;for(;r=this.buffer[++n];)if(r===`:`){let r=this.buffer[n+1];if(Ic(r)||e&&zc.has(r))break;t=n}else if(Ic(r)){let i=this.buffer[n+1];if(r===`\r`&&(i===`
156
156
  `?(n+=1,r=`
157
- `,i=this.buffer[n+1]):t=n),i===`#`||e&&Ic.has(i))break;if(r===`
158
- `){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&Ic.has(r))break;t=n}return!r&&!this.atEnd?this.setNext(`plain-scalar`):(yield``,yield*this.pushToIndex(t+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){let e=0;loop:for(;;){switch(this.charAt(0)){case`!`:e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue loop;case`&`:e+=yield*this.pushUntil(Rc),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,n=this.charAt(1);if(Nc(n)||t&&Ic.has(n)){t?this.flowKey&&=!1:this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue loop}}}break loop}return e}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!Nc(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Fc.has(t))t=this.buffer[++e];else if(t===`%`&&Pc.has(this.buffer[e+1])&&Pc.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
157
+ `,i=this.buffer[n+1]):t=n),i===`#`||e&&zc.has(i))break;if(r===`
158
+ `){let e=this.continueScalar(n+1);if(e===-1)break;n=Math.max(n,e-2)}}else{if(e&&zc.has(r))break;t=n}return!r&&!this.atEnd?this.setNext(`plain-scalar`):(yield``,yield*this.pushToIndex(t+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){let e=0;loop:for(;;){switch(this.charAt(0)){case`!`:e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue loop;case`&`:e+=yield*this.pushUntil(Vc),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,n=this.charAt(1);if(Ic(n)||t&&zc.has(n)){t?this.flowKey&&=!1:this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue loop}}}break loop}return e}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!Ic(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Rc.has(t))t=this.buffer[++e];else if(t===`%`&&Lc.has(this.buffer[e+1])&&Lc.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===`
159
159
  `?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===`
160
- `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}})),Vc,Hc=L((()=>{Vc=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}}}));function Uc(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function Wc(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function Gc(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function Kc(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function qc(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function Jc(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n<t.length;++n)e.push(t[n])}function Yc(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!Uc(t.start,`explicit-key-ind`)&&!Uc(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,Gc(t.value)?t.value.end?Jc(t.value.end,t.sep):t.value.end=t.sep:Jc(t.start,t.sep),delete t.sep)}var Xc,Zc=L((()=>{Mc(),Bc(),Xc=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new zc,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=kc(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&Yc(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&Wc(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:Wc(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=qc(Kc(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
160
+ `?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}})),Wc,Gc=F((()=>{Wc=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t<n;){let r=t+n>>1;this.lineStarts[r]<e?t=r+1:n=r}if(this.lineStarts[t]===e)return{line:t+1,col:1};if(t===0)return{line:0,col:e};let r=this.lineStarts[t-1];return{line:t,col:e-r+1}}}}}));function Kc(e,t){for(let n=0;n<e.length;++n)if(e[n].type===t)return!0;return!1}function qc(e){for(let t=0;t<e.length;++t)switch(e[t].type){case`space`:case`comment`:case`newline`:break;default:return t}return-1}function Jc(e){switch(e?.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`flow-collection`:return!0;default:return!1}}function Yc(e){switch(e.type){case`document`:return e.start;case`block-map`:{let t=e.items[e.items.length-1];return t.sep??t.start}case`block-seq`:return e.items[e.items.length-1].start;default:return[]}}function Xc(e){if(e.length===0)return[];let t=e.length;loop:for(;--t>=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function Zc(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n<t.length;++n)e.push(t[n])}function Qc(e){if(e.start.type===`flow-seq-start`)for(let t of e.items)t.sep&&!t.value&&!Kc(t.start,`explicit-key-ind`)&&!Kc(t.sep,`map-value-ind`)&&(t.key&&(t.value=t.key),delete t.key,Jc(t.value)?t.value.end?Zc(t.value.end,t.sep):t.value.end=t.sep:Zc(t.start,t.sep),delete t.sep)}var $c,el=F((()=>{Fc(),Uc(),$c=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source=``,this.type=``,this.lexer=new Hc,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let n of this.lexer.lex(e,t))yield*this.next(n);t||(yield*this.end())}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=e.length;return}let t=Mc(e);if(!t){let t=`Not a YAML token: ${e}`;yield*this.pop({type:`error`,offset:this.offset,message:t,source:e}),this.offset+=e.length}else if(t===`scalar`)this.atNewLine=!1,this.atScalar=!0,this.type=`scalar`;else{switch(this.type=t,yield*this.step(),t){case`newline`:this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case`space`:this.atNewLine&&e[0]===` `&&(this.indent+=e.length);break;case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:this.atNewLine&&(this.indent+=e.length);break;case`doc-mode`:case`flow-error-end`:return;default:this.atNewLine=!1}this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&Qc(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&qc(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent<t.indent))&&(e.type===`document`?e.end=n.start:e.items.push({start:n.start}),t.items.splice(-1,1))}}}*stream(){switch(this.type){case`directive-line`:yield{type:`directive`,offset:this.offset,source:this.source};return;case`byte-order-mark`:case`space`:case`comment`:case`newline`:yield this.sourceToken;return;case`doc-mode`:case`doc-start`:{let e={type:`document`,offset:this.offset,start:[]};this.type===`doc-start`&&e.start.push(this.sourceToken),this.stack.push(e);return}}yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(e){if(e.value)return yield*this.lineEnd(e);switch(this.type){case`doc-start`:qc(e.start)===-1?e.start.push(this.sourceToken):(yield*this.pop(),yield*this.step());return;case`anchor`:case`tag`:case`space`:case`comment`:case`newline`:e.start.push(this.sourceToken);return}let t=this.startBlockValue(e);t?this.stack.push(t):yield{type:`error`,offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(e){if(this.type===`map-value-ind`){let t=Xc(Yc(this.peek(2))),n;e.end?(n=e.end,n.push(this.sourceToken),delete e.end):n=[this.sourceToken];let r={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:t,key:e,sep:n}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=r}else yield*this.lineEnd(e)}*blockScalar(e){switch(this.type){case`space`:case`comment`:case`newline`:e.props.push(this.sourceToken);return;case`scalar`:if(e.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let e=this.source.indexOf(`
161
161
  `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
162
- `,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Jc(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey){if(!t.sep){if(Uc(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=qc(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Uc(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Gc(t.key)&&!Uc(t.sep,`newline`)){let e=qc(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken)}else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Uc(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!Uc(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Jc(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||Uc(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=qc(Kc(t));Yc(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
162
+ `,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Zc(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey){if(!t.sep){if(Kc(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=Xc(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Kc(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(Jc(t.key)&&!Kc(t.sep,`newline`)){let e=Xc(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken)}else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):Kc(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!Kc(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){Zc(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||Kc(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=Xc(Yc(t));Qc(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
163
163
  `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
164
- `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=qc(Kc(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=qc(Kc(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}}}));function Qc(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new Vc||null,prettyErrors:t}}function $c(e,t={}){let{lineCounter:n,prettyErrors:r}=Qc(t),i=new Xc(n?.addNewLine),a=new cc(t),o=Array.from(a.compose(i.parse(e)));if(r&&n)for(let t of o)t.errors.forEach(us(e,n)),t.warnings.forEach(us(e,n));return o.length>0?o:Object.assign([],{empty:!0},a.streamInfo())}function el(e,t={}){let{lineCounter:n,prettyErrors:r}=Qc(t),i=new Xc(n?.addNewLine),a=new cc(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new cs(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(us(e,n)),o.warnings.forEach(us(e,n))),o}function tl(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=el(e,n);if(!i)return null;if(i.warnings.forEach(e=>la(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function nl(e,t,n){let r=null;if(typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t),typeof n==`string`&&(n=n.length),typeof n==`number`){let e=Math.round(n);n=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=n??t??{};if(!e)return}return Wr(e)&&!r?e.toString(n):new as(e,r,n).toString(n)}var rl=L((()=>{lc(),os(),ds(),ua(),z(),Hc(),Zc()})),il=Ge({Alias:()=>Ci,CST:()=>Dc,Composer:()=>cc,Document:()=>as,Lexer:()=>zc,LineCounter:()=>Vc,Pair:()=>Sa,Parser:()=>Xc,Scalar:()=>B,Schema:()=>es,YAMLError:()=>ss,YAMLMap:()=>Aa,YAMLParseError:()=>cs,YAMLSeq:()=>Fa,YAMLWarning:()=>ls,isAlias:()=>Ur,isCollection:()=>Pr,isDocument:()=>Wr,isMap:()=>Gr,isNode:()=>Fr,isPair:()=>Kr,isScalar:()=>qr,isSeq:()=>Jr,parse:()=>tl,parseAllDocuments:()=>$c,parseDocument:()=>el,stringify:()=>nl,visit:()=>Xr,visitAsync:()=>Qr}),al=L((()=>{lc(),os(),ts(),ds(),wi(),z(),Ca(),Ei(),ja(),Ia(),Mc(),Bc(),Hc(),Zc(),rl(),oi()})),ol=Ge({Alias:()=>Ci,CST:()=>Dc,Composer:()=>cc,Document:()=>as,Lexer:()=>zc,LineCounter:()=>Vc,Pair:()=>Sa,Parser:()=>Xc,Scalar:()=>B,Schema:()=>es,YAMLError:()=>ss,YAMLMap:()=>Aa,YAMLParseError:()=>cs,YAMLSeq:()=>Fa,YAMLWarning:()=>ls,default:()=>sl,isAlias:()=>Ur,isCollection:()=>Pr,isDocument:()=>Wr,isMap:()=>Gr,isNode:()=>Fr,isPair:()=>Kr,isScalar:()=>qr,isSeq:()=>Jr,parse:()=>tl,parseAllDocuments:()=>$c,parseDocument:()=>el,stringify:()=>nl,visit:()=>Xr,visitAsync:()=>Qr}),sl,cl=L((()=>{al(),al(),sl=il}));async function ll(){return dl??=await Promise.resolve().then(()=>(cl(),ol)),dl}function ul(){return dl??=o(import.meta.url)(`yaml`),dl}var dl,fl=L((()=>{}));function pl(e,t=`toon`){if(e==null)return``;if(t===`json`){if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)||t.startsWith(`[`))try{return JSON.stringify(JSON.parse(e),null,2)}catch{}}return jr(e,2)}return t===`yaml`?ul().stringify(e):t===`md`?bl(e):t===`jsonl`?Array.isArray(e)?e.map(e=>jr(e)).join(`
165
- `):jr(e):ml(e)?String(e):Sr(e)}function ml(e){return typeof e!=`object`||!e}function hl(e){return Object.values(e).every(ml)}function gl(e){return Array.isArray(e)&&e.length>0&&e.every(e=>typeof e==`object`&&!!e&&!Array.isArray(e))}function _l(e,t){let n=e.map((e,n)=>Math.max(e.length,...t.map(e=>(e[n]??``).length))),r=(e,t)=>e.padEnd(n[t]);return`${`| ${e.map(r).join(` | `)} |`}\n${`|${n.map(e=>`-`.repeat(e+2)).join(`|`)}|`}\n${t.map(t=>`| ${e.map((e,n)=>r(t[n]??``,n)).join(` | `)} |`).join(`
166
- `)}`}function vl(e){return _l([`Key`,`Value`],Object.entries(e).map(([e,t])=>[e,String(t)]))}function yl(e){let t=[...new Set(e.flatMap(Object.keys))];return _l(t,e.map(e=>t.map(t=>String(e[t]??``))))}function bl(e,t=[]){if(ml(e))return t.length===0?String(e):`## ${t.join(`.`)}\n\n${String(e)}`;if(Array.isArray(e)){if(gl(e)){let n=yl(e);return t.length===0?n:`## ${t.join(`.`)}\n\n${n}`}return bl(String(e),t)}let n=e,r=Object.entries(n);return t.length===0&&hl(n)?vl(n):t.length>0||r.length>1||r.some(([,e])=>!ml(e))?r.map(([e,n])=>{let r=[...t,e];if(ml(n))return`## ${r.join(`.`)}\n\n${String(n)}`;if(gl(n))return`## ${r.join(`.`)}\n\n${yl(n)}`;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;return hl(e)?`## ${r.join(`.`)}\n\n${vl(e)}`:bl(e,r)}return`## ${r.join(`.`)}\n\n${String(n)}`}).join(`
164
+ `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=Xc(Yc(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=Xc(Yc(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}}}));function tl(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new Wc||null,prettyErrors:t}}function nl(e,t={}){let{lineCounter:n,prettyErrors:r}=tl(t),i=new $c(n?.addNewLine),a=new dc(t),o=Array.from(a.compose(i.parse(e)));if(r&&n)for(let t of o)t.errors.forEach(ps(e,n)),t.warnings.forEach(ps(e,n));return o.length>0?o:Object.assign([],{empty:!0},a.streamInfo())}function rl(e,t={}){let{lineCounter:n,prettyErrors:r}=tl(t),i=new $c(n?.addNewLine),a=new dc(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new ds(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(ps(e,n)),o.warnings.forEach(ps(e,n))),o}function il(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=rl(e,n);if(!i)return null;if(i.warnings.forEach(e=>fa(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}function al(e,t,n){let r=null;if(typeof t==`function`||Array.isArray(t)?r=t:n===void 0&&t&&(n=t),typeof n==`string`&&(n=n.length),typeof n==`number`){let e=Math.round(n);n=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=n??t??{};if(!e)return}return qr(e)&&!r?e.toString(n):new cs(e,r,n).toString(n)}var ol=F((()=>{fc(),ls(),ms(),pa(),L(),Gc(),el()})),sl=Je({Alias:()=>Ei,CST:()=>Ac,Composer:()=>dc,Document:()=>cs,Lexer:()=>Hc,LineCounter:()=>Wc,Pair:()=>Ta,Parser:()=>$c,Scalar:()=>R,Schema:()=>rs,YAMLError:()=>us,YAMLMap:()=>Na,YAMLParseError:()=>ds,YAMLSeq:()=>Ra,YAMLWarning:()=>fs,isAlias:()=>Kr,isCollection:()=>Lr,isDocument:()=>qr,isMap:()=>Jr,isNode:()=>Rr,isPair:()=>Yr,isScalar:()=>Xr,isSeq:()=>Zr,parse:()=>il,parseAllDocuments:()=>nl,parseDocument:()=>rl,stringify:()=>al,visit:()=>$r,visitAsync:()=>ti}),cl=F((()=>{fc(),ls(),is(),ms(),Di(),L(),Ea(),ki(),Pa(),za(),Fc(),Uc(),Gc(),el(),ol(),li()})),ll=Je({Alias:()=>Ei,CST:()=>Ac,Composer:()=>dc,Document:()=>cs,Lexer:()=>Hc,LineCounter:()=>Wc,Pair:()=>Ta,Parser:()=>$c,Scalar:()=>R,Schema:()=>rs,YAMLError:()=>us,YAMLMap:()=>Na,YAMLParseError:()=>ds,YAMLSeq:()=>Ra,YAMLWarning:()=>fs,default:()=>ul,isAlias:()=>Kr,isCollection:()=>Lr,isDocument:()=>qr,isMap:()=>Jr,isNode:()=>Rr,isPair:()=>Yr,isScalar:()=>Xr,isSeq:()=>Zr,parse:()=>il,parseAllDocuments:()=>nl,parseDocument:()=>rl,stringify:()=>al,visit:()=>$r,visitAsync:()=>ti}),ul,dl=F((()=>{cl(),cl(),ul=sl}));async function fl(){return ml??=await Promise.resolve().then(()=>(dl(),ll)),ml}function pl(){return ml??=s(import.meta.url)(`yaml`),ml}var ml,hl=F((()=>{}));function gl(e,t=`toon`){if(e==null)return``;if(t===`json`){if(typeof e==`string`){let t=e.trim();if(t.startsWith(`{`)||t.startsWith(`[`))try{return JSON.stringify(JSON.parse(e),null,2)}catch{}}return Pr(e,2)}return t===`yaml`?pl().stringify(e):t===`md`?Cl(e):t===`jsonl`?Array.isArray(e)?e.map(e=>Pr(e)).join(`
165
+ `):Pr(e):_l(e)?String(e):Tr(e)}function _l(e){return typeof e!=`object`||!e}function vl(e){return Object.values(e).every(_l)}function yl(e){return Array.isArray(e)&&e.length>0&&e.every(e=>typeof e==`object`&&!!e&&!Array.isArray(e))}function bl(e,t){let n=e.map((e,n)=>Math.max(e.length,...t.map(e=>(e[n]??``).length))),r=(e,t)=>e.padEnd(n[t]);return`${`| ${e.map(r).join(` | `)} |`}\n${`|${n.map(e=>`-`.repeat(e+2)).join(`|`)}|`}\n${t.map(t=>`| ${e.map((e,n)=>r(t[n]??``,n)).join(` | `)} |`).join(`
166
+ `)}`}function xl(e){return bl([`Key`,`Value`],Object.entries(e).map(([e,t])=>[e,String(t)]))}function Sl(e){let t=[...new Set(e.flatMap(Object.keys))];return bl(t,e.map(e=>t.map(t=>String(e[t]??``))))}function Cl(e,t=[]){if(_l(e))return t.length===0?String(e):`## ${t.join(`.`)}\n\n${String(e)}`;if(Array.isArray(e)){if(yl(e)){let n=Sl(e);return t.length===0?n:`## ${t.join(`.`)}\n\n${n}`}return Cl(String(e),t)}let n=e,r=Object.entries(n);return t.length===0&&vl(n)?xl(n):t.length>0||r.length>1||r.some(([,e])=>!_l(e))?r.map(([e,n])=>{let r=[...t,e];if(_l(n))return`## ${r.join(`.`)}\n\n${String(n)}`;if(yl(n))return`## ${r.join(`.`)}\n\n${Sl(n)}`;if(typeof n==`object`&&n&&!Array.isArray(n)){let e=n;return vl(e)?`## ${r.join(`.`)}\n\n${xl(e)}`:Cl(e,r)}return`## ${r.join(`.`)}\n\n${String(n)}`}).join(`
167
167
 
168
- `):vl(n)}var xl=L((()=>{Ar(),Nr(),fl()}));function Sl(e,t={}){let{args:n,options:r,alias:i,defaults:a}=t,o=Cl(r,i),s=[],c={},l=0;for(;l<e.length;){let t=e[l];if(t.startsWith(`--no-`)&&t.length>5){let e=wl(t.slice(5),o);if(!e)throw new yn({message:`Unknown flag: ${t}`});c[e]=!1,l++}else if(t.startsWith(`--`)){let n=t.indexOf(`=`);if(n!==-1){let e=t.slice(2,n),i=wl(e,o);if(!i)throw new yn({message:`Unknown flag: --${e}`});Al(c,i,t.slice(n+1),r),l++}else{let n=wl(t.slice(2),o);if(!n)throw new yn({message:`Unknown flag: ${t}`});if(Ol(n,r))c[n]=(c[n]??0)+1,l++;else if(Dl(n,r))c[n]=!0,l++;else{let i=e[l+1];if(i===void 0)throw new yn({message:`Missing value for flag: ${t}`});Al(c,n,i,r),l+=2}}}else if(t.startsWith(`-`)&&!t.startsWith(`--`)&&t.length>=2){let n=t.slice(1);for(let t=0;t<n.length;t++){let i=n[t],a=o.aliasToName.get(i);if(!a)throw new yn({message:`Unknown flag: -${i}`});if(t!==n.length-1){if(Ol(a,r))c[a]=(c[a]??0)+1;else if(Dl(a,r))c[a]=!0;else throw new yn({message:`Non-boolean flag -${i} must be last in a stacked alias`})}else if(Ol(a,r))c[a]=(c[a]??0)+1;else if(Dl(a,r))c[a]=!0;else{let t=e[l+1];if(t===void 0)throw new yn({message:`Missing value for flag: -${i}`});Al(c,a,t,r),l++}}l++}else s.push(t),l++}let u={};if(n){let e=Object.keys(n.shape);for(let t=0;t<e.length;t++){let r=e[t];if(kl(r,n)){if(t!==e.length-1)throw Error(`Variadic arg "${r}" must be the last key in the args schema`);let n=s.slice(t);n.length>0&&(u[r]=n)}else s[t]!==void 0&&(u[r]=s[t])}}let d=n?jl(n,u):{},f=Tl(a,r,o);if(r)for(let[e,t]of Object.entries(c))c[e]=Fl(t,e,r);let p={...f,...c};return{args:d,options:r?jl(r,p):{}}}function Cl(e,t){let n=new Map;if(t)for(let[e,r]of Object.entries(t))n.set(r,e);let r=new Set(e?Object.keys(e.shape):[]),i=new Map;for(let e of r){let t=Zt(e);t!==e&&i.set(t,e)}return{aliasToName:n,kebabToCamel:i,knownOptions:r}}function wl(e,t){let n=t.kebabToCamel.get(e)??e;return t.knownOptions.has(n)?n:void 0}function Tl(e,t,n){if(e===void 0)return{};if(!Xt(e))throw new yn({message:`Invalid config section: expected an object of option defaults`});if(!t){let[t]=Object.keys(e);if(t)throw new yn({message:`Unknown config option: ${t}`});return{}}let r={};for(let[t,i]of Object.entries(e)){let e=wl(t,n);if(!e)throw new yn({message:`Unknown config option: ${t}`});r[e]=i}return r}function El(e){let t=e;for(;t.def?.innerType;)t=t.def.innerType;return t}function Dl(e,t){if(!t)return!1;let n=t.shape[e];return n?El(n).constructor.name===`ZodBoolean`:!1}function Ol(e,t){if(!t)return!1;let n=t.shape[e];return n?typeof n.meta==`function`&&n.meta()?.count===!0:!1}function kl(e,t){if(!t)return!1;let n=t.shape[e];return n?El(n).constructor.name===`ZodArray`:!1}function Al(e,t,n,r){if(kl(t,r)){let r=e[t];Array.isArray(r)?r.push(n):e[t]=[n]}else e[t]=n}function jl(e,t){try{return e.parse(t)}catch(e){let n=e?.issues??e?.error?.issues??[],r=n.map(e=>({code:e.code,missing:!Ml(t,e.path??[]),path:(e.path??[]).join(`.`),expected:e.expected??``,received:e.received??``,message:e.message??``}));throw new vn({message:n.map(e=>e.message).join(`; `)||`Validation failed`,fieldErrors:r,cause:e instanceof Error?e:void 0})}}function Ml(e,t){if(t.length===0)return!0;let n=e;for(let e of t){if(!Xt(n)&&!Array.isArray(n)||!(e in n))return!1;n=n[e]}return!0}function Nl(e,t=Ll()){let n={};for(let[r,i]of Object.entries(e.shape)){let e=t[r];e!==void 0&&(n[r]=Pl(e,i))}return jl(e,n)}function Pl(e,t){let n=El(t).constructor.name;return n===`ZodNumber`?Number(e):n===`ZodBoolean`?e===`true`||e===`1`:e}function Fl(e,t,n){let r=n.shape[t];if(!r)return e;let i=El(r).constructor.name;return i===`ZodNumber`&&typeof e==`string`?Number(e):i===`ZodBoolean`&&typeof e==`string`?e===`true`:e}function Il(e,t,n,r={}){let i=Cl(t,n),a=[],o={},s=0;for(;s<e.length;){let n=e[s];if(n===`--`){for(let t=s;t<e.length;t++)a.push(e[t]);break}if(n.startsWith(`--no-`)&&n.length>5){let e=wl(n.slice(5),i);e?o[e]=!1:a.push(n),s++}else if(n.startsWith(`--`)){let r=n.indexOf(`=`);if(r!==-1){let e=wl(n.slice(2,r),i);e?Al(o,e,n.slice(r+1),t):a.push(n),s++}else{let r=wl(n.slice(2),i);if(!r)a.push(n),s++;else if(Ol(r,t))o[r]=(o[r]??0)+1,s++;else if(Dl(r,t))o[r]=!0,s++;else{let i=e[s+1];if(i===void 0)throw new yn({message:`Missing value for flag: ${n}`});Al(o,r,i,t),s+=2}}}else if(n.startsWith(`-`)&&!n.startsWith(`--`)&&n.length>=2){let r=n.slice(1),c=!0;for(let e=0;e<r.length;e++)if(!i.aliasToName.has(r[e])){c=!1;break}if(!c)a.push(n),s++;else{for(let n=0;n<r.length;n++){let a=r[n],c=i.aliasToName.get(a);if(n!==r.length-1){if(Ol(c,t))o[c]=(o[c]??0)+1;else if(Dl(c,t))o[c]=!0;else throw new yn({message:`Non-boolean flag -${a} must be last in a stacked alias`})}else if(Ol(c,t))o[c]=(o[c]??0)+1;else if(Dl(c,t))o[c]=!0;else{let n=e[s+1];if(n===void 0)throw new yn({message:`Missing value for flag: -${a}`});Al(o,c,n,t),s++}}s++}}else a.push(n),s++}if(r.validate===!1)return{parsed:o,rest:a};for(let[e,n]of Object.entries(o))o[e]=Fl(n,e,t);return{parsed:jl(t,o),rest:a}}function Ll(){if(typeof globalThis<`u`){let e=globalThis;if(e.process?.env)return e.process.env;if(e.Deno?.env)return new Proxy({},{get:(t,n)=>e.Deno.env.get(n)})}return{}}var Rl=L((()=>{bn(),en()}));async function zl(e,t){let{argv:n,inputOptions:r,agent:i,format:a,formatExplicit:o,name:s,path:c,version:l,envSource:u=process.env,env:d,globals:f={},vars:p,middlewares:m=[],request:h}=t,g=t.displayName??s,_=t.parseMode??`argv`,v=p?p.parse({}):{},y,b,x,S,C=new Promise(e=>{S=e}),w=async()=>{let c,d;if(_===`argv`){let r=Sl(n,{alias:e.alias,args:e.args,defaults:t.defaults,options:e.options});c=r.args,d=r.options}else if(_===`split`)c=Sl(n,{args:e.args}).args,d=e.options?jl(e.options,r):{};else{let t=Bl(r,e);c=e.args?jl(e.args,t.args):{},d=e.options?jl(e.options,t.options):{}}let p=e.env?Nl(e.env,u):{},C=e.run({agent:i,args:c,displayName:g,env:p,error:e=>({[Kl]:`error`,...e}),format:a,formatExplicit:o,globals:f,name:s,ok:(e,t={})=>({[Kl]:`ok`,data:e,cta:t.cta}),options:d,request:h,var:v,version:l});if(Hl(C)){if(m.length>0){b=new Promise(e=>{x=e});async function*e(){try{return yield*C}finally{x()}}y={stream:e()},S(),await b}else y={stream:C};return}let w=await C;if(Vl(w)){if(w[Kl]===`ok`){let e=w;y={ok:!0,data:e.data,...e.cta?{cta:e.cta}:void 0}}else{let e=w;y={ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}},...e.cta?{cta:e.cta}:void 0,...e.exitCode===void 0?void 0:{exitCode:e.exitCode}}}return}y={ok:!0,data:w}};try{let e=d?Nl(d,u):{};if(m.length>0){let t={agent:i,command:c,displayName:g,env:e,error:e=>{y={ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}},...e.cta?{cta:e.cta}:void 0,...e.exitCode===void 0?void 0:{exitCode:e.exitCode}}},format:a,formatExplicit:o,globals:f,name:s,request:h,set(e,t){v[e]=t},var:v,version:l},n=m.reduceRight((e,n)=>async()=>{await n(t,e)},w)();if(await Promise.race([n,C]),b)return y;await n}else await w()}catch(e){return e instanceof vn?{ok:!1,error:{code:`VALIDATION_ERROR`,message:e.message,fieldErrors:e.fieldErrors}}:{ok:!1,error:{code:e instanceof R?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e),...e instanceof R?{retryable:e.retryable}:void 0},...e instanceof R&&e.exitCode!==void 0?{exitCode:e.exitCode}:void 0}}return y??{ok:!0,data:void 0}}function Bl(e,t){let n=new Set(t.args?Object.keys(t.args.shape):[]),r={},i={};for(let[t,a]of Object.entries(e))n.has(t)?r[t]=a:i[t]=a;return{args:r,options:i}}function Vl(e){return typeof e==`object`&&!!e&&Kl in e}function Hl(e){return typeof e==`object`&&!!e&&Symbol.asyncIterator in e&&typeof e.next==`function`}function Ul(e){return e}function Wl(e){return Jl.find(t=>t.name===e||t.aliases?.includes(e))}function Gl(e,t){return e.subcommands?.find(e=>e.name===t||e.aliases?.includes(t))}var Kl,ql,Jl,Yl=L((()=>{bn(),Rl(),Kl=Symbol.for(`incur.sentinel`),ql=[`bash`,`fish`,`nushell`,`zsh`],Jl=[{name:`completions`,description:`Generate shell completion script`,args:d.object({shell:d.enum(ql).describe(`Shell to generate completions for`)}),hint(e){let t=[[`bash`,`eval "$(${e} completions bash)"`,`# add to ~/.bashrc`],[`fish`,`${e} completions fish | source`,`# add to ~/.config/fish/config.fish`],[`nushell`,`see \`${e} completions nushell\``,`# add to config.nu`],[`zsh`,`eval "$(${e} completions zsh)"`,`# add to ~/.zshrc`]],n=Math.max(...t.map(e=>e[0].length)),r=Math.max(...t.map(e=>e[1].length));return`Setup:
168
+ `):xl(n)}var wl=F((()=>{Nr(),Ir(),hl()}));function Tl(e,t={}){let{args:n,options:r,alias:i,defaults:a}=t,o=El(r,i),s=[],c={},l=0;for(;l<e.length;){let t=e[l];if(t.startsWith(`--no-`)&&t.length>5){let e=Dl(t.slice(5),o);if(!e)throw new Sn({message:`Unknown flag: ${t}`});c[e]=!1,l++}else if(t.startsWith(`--`)){let n=t.indexOf(`=`);if(n!==-1){let e=t.slice(2,n),i=Dl(e,o);if(!i)throw new Sn({message:`Unknown flag: --${e}`});Nl(c,i,t.slice(n+1),r),l++}else{let n=Dl(t.slice(2),o);if(!n)throw new Sn({message:`Unknown flag: ${t}`});if(jl(n,r))c[n]=(c[n]??0)+1,l++;else if(Al(n,r))c[n]=!0,l++;else{let i=e[l+1];if(i===void 0)throw new Sn({message:`Missing value for flag: ${t}`});Nl(c,n,i,r),l+=2}}}else if(t.startsWith(`-`)&&!t.startsWith(`--`)&&t.length>=2){let n=t.slice(1);for(let t=0;t<n.length;t++){let i=n[t],a=o.aliasToName.get(i);if(!a)throw new Sn({message:`Unknown flag: -${i}`});if(t!==n.length-1){if(jl(a,r))c[a]=(c[a]??0)+1;else if(Al(a,r))c[a]=!0;else throw new Sn({message:`Non-boolean flag -${i} must be last in a stacked alias`})}else if(jl(a,r))c[a]=(c[a]??0)+1;else if(Al(a,r))c[a]=!0;else{let t=e[l+1];if(t===void 0)throw new Sn({message:`Missing value for flag: -${i}`});Nl(c,a,t,r),l++}}l++}else s.push(t),l++}let u={};if(n){let e=Object.keys(n.shape);for(let t=0;t<e.length;t++){let r=e[t];if(Ml(r,n)){if(t!==e.length-1)throw Error(`Variadic arg "${r}" must be the last key in the args schema`);let n=s.slice(t);n.length>0&&(u[r]=n)}else s[t]!==void 0&&(u[r]=s[t])}}let d=n?Pl(n,u):{},f=Ol(a,r,o);if(r)for(let[e,t]of Object.entries(c))c[e]=Rl(t,e,r);let p={...f,...c};return{args:d,options:r?Pl(r,p):{}}}function El(e,t){let n=new Map;if(t)for(let[e,r]of Object.entries(t))n.set(r,e);let r=new Set(e?Object.keys(e.shape):[]),i=new Map;for(let e of r){let t=en(e);t!==e&&i.set(t,e)}return{aliasToName:n,kebabToCamel:i,knownOptions:r}}function Dl(e,t){let n=t.kebabToCamel.get(e)??e;return t.knownOptions.has(n)?n:void 0}function Ol(e,t,n){if(e===void 0)return{};if(!$t(e))throw new Sn({message:`Invalid config section: expected an object of option defaults`});if(!t){let[t]=Object.keys(e);if(t)throw new Sn({message:`Unknown config option: ${t}`});return{}}let r={};for(let[t,i]of Object.entries(e)){let e=Dl(t,n);if(!e)throw new Sn({message:`Unknown config option: ${t}`});r[e]=i}return r}function kl(e){let t=e;for(;t.def?.innerType;)t=t.def.innerType;return t}function Al(e,t){if(!t)return!1;let n=t.shape[e];return n?kl(n).constructor.name===`ZodBoolean`:!1}function jl(e,t){if(!t)return!1;let n=t.shape[e];return n?typeof n.meta==`function`&&n.meta()?.count===!0:!1}function Ml(e,t){if(!t)return!1;let n=t.shape[e];return n?kl(n).constructor.name===`ZodArray`:!1}function Nl(e,t,n,r){if(Ml(t,r)){let r=e[t];Array.isArray(r)?r.push(n):e[t]=[n]}else e[t]=n}function Pl(e,t){try{return e.parse(t)}catch(e){let n=e?.issues??e?.error?.issues??[],r=n.map(e=>({code:e.code,missing:!Fl(t,e.path??[]),path:(e.path??[]).join(`.`),expected:e.expected??``,received:e.received??``,message:e.message??``}));throw new xn({message:n.map(e=>e.message).join(`; `)||`Validation failed`,fieldErrors:r,cause:e instanceof Error?e:void 0})}}function Fl(e,t){if(t.length===0)return!0;let n=e;for(let e of t){if(!$t(n)&&!Array.isArray(n)||!(e in n))return!1;n=n[e]}return!0}function Il(e,t=Bl()){let n={};for(let[r,i]of Object.entries(e.shape)){let e=t[r];e!==void 0&&(n[r]=Ll(e,i))}return Pl(e,n)}function Ll(e,t){let n=kl(t).constructor.name;return n===`ZodNumber`?Number(e):n===`ZodBoolean`?e===`true`||e===`1`:e}function Rl(e,t,n){let r=n.shape[t];if(!r)return e;let i=kl(r).constructor.name;return i===`ZodNumber`&&typeof e==`string`?Number(e):i===`ZodBoolean`&&typeof e==`string`?e===`true`:e}function zl(e,t,n,r={}){let i=El(t,n),a=[],o={},s=0;for(;s<e.length;){let n=e[s];if(n===`--`){for(let t=s;t<e.length;t++)a.push(e[t]);break}if(n.startsWith(`--no-`)&&n.length>5){let e=Dl(n.slice(5),i);e?o[e]=!1:a.push(n),s++}else if(n.startsWith(`--`)){let r=n.indexOf(`=`);if(r!==-1){let e=Dl(n.slice(2,r),i);e?Nl(o,e,n.slice(r+1),t):a.push(n),s++}else{let r=Dl(n.slice(2),i);if(!r)a.push(n),s++;else if(jl(r,t))o[r]=(o[r]??0)+1,s++;else if(Al(r,t))o[r]=!0,s++;else{let i=e[s+1];if(i===void 0)throw new Sn({message:`Missing value for flag: ${n}`});Nl(o,r,i,t),s+=2}}}else if(n.startsWith(`-`)&&!n.startsWith(`--`)&&n.length>=2){let r=n.slice(1),c=!0;for(let e=0;e<r.length;e++)if(!i.aliasToName.has(r[e])){c=!1;break}if(!c)a.push(n),s++;else{for(let n=0;n<r.length;n++){let a=r[n],c=i.aliasToName.get(a);if(n!==r.length-1){if(jl(c,t))o[c]=(o[c]??0)+1;else if(Al(c,t))o[c]=!0;else throw new Sn({message:`Non-boolean flag -${a} must be last in a stacked alias`})}else if(jl(c,t))o[c]=(o[c]??0)+1;else if(Al(c,t))o[c]=!0;else{let n=e[s+1];if(n===void 0)throw new Sn({message:`Missing value for flag: -${a}`});Nl(o,c,n,t),s++}}s++}}else a.push(n),s++}if(r.validate===!1)return{parsed:o,rest:a};for(let[e,n]of Object.entries(o))o[e]=Rl(n,e,t);return{parsed:Pl(t,o),rest:a}}function Bl(){if(typeof globalThis<`u`){let e=globalThis;if(e.process?.env)return e.process.env;if(e.Deno?.env)return new Proxy({},{get:(t,n)=>e.Deno.env.get(n)})}return{}}var Vl=F((()=>{Cn(),rn()}));async function Hl(e,t){let{argv:n,inputOptions:r,agent:i,format:a,formatExplicit:o,name:s,path:c,version:l,envSource:u=process.env,env:d,globals:f={},vars:p,middlewares:m=[],request:h}=t,g=t.displayName??s,_=t.parseMode??`argv`,v=p?p.parse({}):{},y,b,x,S,C=new Promise(e=>{S=e}),w=async()=>{let c,d;if(_===`argv`){let r=Tl(n,{alias:e.alias,args:e.args,defaults:t.defaults,options:e.options});c=r.args,d=r.options}else if(_===`split`)c=Tl(n,{args:e.args}).args,d=e.options?Pl(e.options,r):{};else{let t=Ul(r,e);c=e.args?Pl(e.args,t.args):{},d=e.options?Pl(e.options,t.options):{}}let p=e.env?Il(e.env,u):{},C=e.run({agent:i,args:c,displayName:g,env:p,error:e=>({[Yl]:`error`,...e}),format:a,formatExplicit:o,globals:f,name:s,ok:(e,t={})=>({[Yl]:`ok`,data:e,cta:t.cta}),options:d,request:h,var:v,version:l});if(Gl(C)){if(m.length>0){b=new Promise(e=>{x=e});async function*e(){try{return yield*C}finally{x()}}y={stream:e()},S(),await b}else y={stream:C};return}let w=await C;if(Wl(w)){if(w[Yl]===`ok`){let e=w;y={ok:!0,data:e.data,...e.cta?{cta:e.cta}:void 0}}else{let e=w;y={ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}},...e.cta?{cta:e.cta}:void 0,...e.exitCode===void 0?void 0:{exitCode:e.exitCode}}}return}y={ok:!0,data:w}};try{let e=d?Il(d,u):{};if(m.length>0){let t={agent:i,command:c,displayName:g,env:e,error:e=>{y={ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}},...e.cta?{cta:e.cta}:void 0,...e.exitCode===void 0?void 0:{exitCode:e.exitCode}}},format:a,formatExplicit:o,globals:f,name:s,request:h,set(e,t){v[e]=t},var:v,version:l},n=m.reduceRight((e,n)=>async()=>{await n(t,e)},w)();if(await Promise.race([n,C]),b)return y;await n}else await w()}catch(e){return e instanceof xn?{ok:!1,error:{code:`VALIDATION_ERROR`,message:e.message,fieldErrors:e.fieldErrors}}:{ok:!1,error:{code:e instanceof I?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e),...e instanceof I?{retryable:e.retryable}:void 0},...e instanceof I&&e.exitCode!==void 0?{exitCode:e.exitCode}:void 0}}return y??{ok:!0,data:void 0}}function Ul(e,t){let n=new Set(t.args?Object.keys(t.args.shape):[]),r={},i={};for(let[t,a]of Object.entries(e))n.has(t)?r[t]=a:i[t]=a;return{args:r,options:i}}function Wl(e){return typeof e==`object`&&!!e&&Yl in e}function Gl(e){return typeof e==`object`&&!!e&&Symbol.asyncIterator in e&&typeof e.next==`function`}function Kl(e){return e}function ql(e){return Zl.find(t=>t.name===e||t.aliases?.includes(e))}function Jl(e,t){return e.subcommands?.find(e=>e.name===t||e.aliases?.includes(t))}var Yl,Xl,Zl,Ql=F((()=>{Cn(),Vl(),Yl=Symbol.for(`incur.sentinel`),Xl=[`bash`,`fish`,`nushell`,`zsh`],Zl=[{name:`completions`,description:`Generate shell completion script`,args:f.object({shell:f.enum(Xl).describe(`Shell to generate completions for`)}),hint(e){let t=[[`bash`,`eval "$(${e} completions bash)"`,`# add to ~/.bashrc`],[`fish`,`${e} completions fish | source`,`# add to ~/.config/fish/config.fish`],[`nushell`,`see \`${e} completions nushell\``,`# add to config.nu`],[`zsh`,`eval "$(${e} completions zsh)"`,`# add to ~/.zshrc`]],n=Math.max(...t.map(e=>e[0].length)),r=Math.max(...t.map(e=>e[1].length));return`Setup:
169
169
  `+t.map(([e,t,i])=>` ${e.padEnd(n)} ${t.padEnd(r)} ${i}`).join(`
170
- `)}},{name:`mcp`,description:`Register as MCP server`,subcommands:[Ul({name:`add`,description:`Register as MCP server`,alias:{command:`c`},options:d.object({agent:d.string().optional().describe(`Target a specific agent (e.g. claude-code, cursor)`),command:d.string().optional().describe(`Override the command agents will run (e.g. "pnpm my-cli --mcp")`),noGlobal:d.boolean().optional().describe(`Install to project instead of globally`)})}),Ul({name:`doctor`,description:`Validate MCP server startup and tool listing`})]},{name:`skills`,aliases:[`skill`],description:`Sync skill files to agents`,subcommands:[Ul({name:`add`,description:`Sync skill files to agents`,options:d.object({depth:d.number().optional().describe(`Grouping depth for skill files (default: 1)`),noGlobal:d.boolean().optional().describe(`Install to project instead of globally`)})}),Ul({name:`list`,aliases:[`ls`],description:`List skills`})]}]}));function Xl(e,t={}){let{aliases:n,configFlag:r,description:i,globals:a,version:o,commands:s=[],root:c=!1}=t,l=[],u=o?`${e}@${o}`:e;if(l.push(i?`${u} \u2014 ${i}`:u),l.push(``),l.push(`Usage: ${e} <command>`),n?.length&&l.push(`Aliases: ${n.join(`, `)}`),s.length>0){l.push(``),l.push(`Commands:`);let e=Math.max(...s.map(e=>e.name.length));for(let t of s)if(t.description){let n=` `.repeat(e-t.name.length);l.push(` ${t.name}${n} ${t.description}`)}else l.push(` ${t.name}`)}return l.push(...su(c,r,a)),l.join(`
171
- `)}function Zl(e,t={}){let{alias:n,aliases:r,configFlag:i,description:a,globals:o,version:s,args:c,env:l,envSource:u,hint:d,root:f=!1,options:p,examples:m}=t,h=[],g=s?`${e}@${s}`:e;h.push(a?`${g} \u2014 ${a}`:g),h.push(``);let{usage:_}=t;if(_&&_.length>0){let t=_.map(t=>{let n=[];if(t.prefix&&n.push(t.prefix),n.push(e),t.args)for(let e of Object.keys(t.args))n.push(`<${e}>`);if(t.options)for(let e of Object.keys(t.options))n.push(`--${e} <${e}>`);return t.suffix&&n.push(t.suffix),n.join(` `)}),n=` `.repeat(7);h.push(`Usage: ${t[0]}`);for(let e of t.slice(1))h.push(`${n}${e}`)}else{let n=Ql(e,c),r=t.commands&&t.commands.length>0?` | <command>`:``;h.push(`Usage: ${n}${p?` [options]`:``}${r}`)}if(r?.length&&h.push(`Aliases: ${r.join(`, `)}`),c){let e=$l(c);if(e.length>0){h.push(``),h.push(`Arguments:`);let t=Math.max(...e.map(e=>e.name.length));for(let n of e)h.push(` ${n.name}${` `.repeat(t-n.name.length)} ${n.description}`)}}if(p){let e=tu(p,n);if(e.length>0){h.push(``),h.push(`Options:`);let t=Math.max(...e.map(e=>e.flag.length));for(let n of e){let e=` `.repeat(t-n.flag.length),r=n.deprecated?`[deprecated] `:``,i=n.defaultValue===void 0?`${r}${n.description}`:`${r}${n.description} (default: ${n.defaultValue})`;h.push(` ${n.flag}${e} ${i}`)}}}if(m&&m.length>0){h.push(``),h.push(`Examples:`);let t=Math.max(...m.map(t=>(t.command?`${e} ${t.command}`:e).length));for(let n of m){let r=n.command?`${e} ${n.command}`:e;n.description?h.push(` ${r}${` `.repeat(t-r.length)} # ${n.description}`):h.push(` ${r}`)}}d&&(h.push(``),h.push(d));let{commands:v}=t;if(v&&v.length>0){h.push(``),h.push(`Commands:`);let e=Math.max(...v.map(e=>e.name.length));for(let t of v)if(t.description){let n=` `.repeat(e-t.name.length);h.push(` ${t.name}${n} ${t.description}`)}else h.push(` ${t.name}`)}if(t.hideGlobalOptions||h.push(...su(f,i,o)),l){let e=eu(l);if(e.length>0){h.push(``),h.push(`Environment Variables:`);let t=Math.max(...e.map(e=>e.name.length));for(let n of e){let e=` `.repeat(t-n.name.length),r=[n.description],i=u??Ll();n.name in i&&r.push(`set: ${cu(i[n.name])}`),n.defaultValue!==void 0&&r.push(`default: ${n.defaultValue}`);let a=r.length>1?`${r[0]} (${r.slice(1).join(`, `)})`:r[0];h.push(` ${n.name}${e} ${a}`)}}}return h.join(`
172
- `)}function Ql(e,t){if(!t)return e;let n=[e];for(let[e,r]of Object.entries(t.shape)){let t=nu(r),i=(t.includes(`|`)?t:e)+(t===`array`?`...`:``);n.push(r._zod.optout===`optional`?`[${i}]`:`<${i}>`)}return n.join(` `)}function $l(e){let t=[];for(let[n,r]of Object.entries(e.shape))t.push({name:n,description:r.description??``});return t}function eu(e){let t=[];for(let[n,r]of Object.entries(e.shape)){let e=au(r);t.push({name:n,description:r.description??``,defaultValue:e})}return t}function tu(e,t){let n=[];for(let[r,i]of Object.entries(e.shape)){let e=nu(i),a=t?.[r],o=Zt(r),s=e===`boolean`?``:` <${e}>`,c=a?`--${o}, -${a}${s}`:`--${o}${s}`,l=au(i);e===`boolean`&&l===!1&&(l=void 0);let u=ou(i);n.push({flag:c,description:i.description??``,defaultValue:l,deprecated:u})}return n}function nu(e){if(ru(e))return`count`;let t=iu(e);if(t instanceof d.ZodString)return`string`;if(t instanceof d.ZodNumber)return`number`;if(t instanceof d.ZodBoolean)return`boolean`;if(t instanceof d.ZodArray)return`array`;if(t instanceof d.ZodEnum)return Object.values(t._zod.def.entries).join(`|`);if(t instanceof d.ZodUnion){let e=t._zod?.def?.options;if(e?.every(e=>e instanceof d.ZodLiteral))return e.map(e=>String(e._zod.def.values[0])).join(`|`)}return`value`}function ru(e){let t=e;return typeof t?.meta==`function`&&t.meta()?.count===!0}function iu(e){return e instanceof d.ZodOptional?iu(e.unwrap()):e instanceof d.ZodDefault?iu(e.removeDefault()):e instanceof d.ZodNullable?iu(e.unwrap()):e}function au(e){if(e instanceof d.ZodDefault){let t=e._def.defaultValue,n=typeof t==`function`?t():t;return Array.isArray(n)&&n.length===0?void 0:n}if(e instanceof d.ZodOptional)return au(e.unwrap())}function ou(e){return e?.meta?.()?.deprecated===!0||void 0}function su(e=!1,t,n){let r=[];if(e){let e=Jl.flatMap(e=>{if(!e.subcommands)return[{name:e.name,desc:e.description}];if(e.subcommands.length===1)return[{name:`${e.name} ${e.subcommands[0].name}`,desc:e.subcommands[0].description}];let t=e.subcommands.map(e=>e.name).join(`, `);return[{name:e.name,desc:`${e.description} (${t})`}]}),t=Math.max(...e.map(e=>e.name.length));r.push(``,`Integrations:`,...e.map(e=>` ${e.name}${` `.repeat(t-e.name.length)} ${e.desc}`))}if(n){let e=tu(n.schema,n.alias);if(e.length>0){let t=Math.max(...e.map(e=>e.flag.length));r.push(``,`Custom Global Options:`,...e.map(e=>{let n=` `.repeat(t-e.flag.length),r=e.deprecated?`[deprecated] `:``,i=e.defaultValue===void 0?`${r}${e.description}`:`${r}${e.description} (default: ${e.defaultValue})`;return` ${e.flag}${n} ${i}`}))}}let i=[...t?[{flag:`--${t} <path>`,desc:`Load JSON option defaults from a file`}]:[],{flag:`--filter-output <keys>`,desc:`Filter output by key paths (e.g. foo,bar.baz,a[0,3])`},{flag:`--format <toon|json|yaml|md|jsonl>`,desc:`Output format`},{flag:`--help`,desc:`Show help`},{flag:`--llms, --llms-full`,desc:`Print LLM-readable manifest`},...e?[{flag:`--mcp`,desc:`Start as MCP stdio server`}]:[],...t?[{flag:`--no-${t}`,desc:`Disable JSON option defaults for this run`}]:[],{flag:`--schema`,desc:`Show JSON Schema for command`},{flag:`--token-count`,desc:`Print token count of output (instead of output)`},{flag:`--token-limit <n>`,desc:`Limit output to n tokens`},{flag:`--token-offset <n>`,desc:`Skip first n tokens of output`},{flag:`--full-output`,desc:`Show full output envelope`},...e?[{flag:`--update`,desc:`Update to latest version`}]:[],...e?[{flag:`--version`,desc:`Show version`}]:[]].sort((e,t)=>e.flag.localeCompare(t.flag)),a=Math.max(...i.map(e=>e.flag.length));return r.push(``,`Global Options:`,...i.map(e=>` ${e.flag}${` `.repeat(a-e.flag.length)} ${e.desc}`)),r}function cu(e){return e.length<=4?`****`:`****${e.slice(-4)}`}var lu=L((()=>{Yl(),en(),Rl()}));function uu(e,t){if(!(!t||t.commands.length===0))return{description:t.description??(t.commands.length===1?`Suggested command:`:`Suggested commands:`),commands:t.commands.map(t=>fu(e,t))}}function du(e){let t=[e.description];for(let n of e.commands)t.push(` ${n.command}${n.description?` - ${n.description}`:``}`);return t.join(`
173
- `)}function fu(e,t){if(typeof t==`string`)return{command:`${e} ${t}`};let n=`${t.command===e||t.command.startsWith(`${e} `)?``:`${e} `}${t.command}`;if(t.args)for(let[e,r]of Object.entries(t.args))n+=r===!0?` <${e}>`:` ${r}`;if(t.options)for(let[e,r]of Object.entries(t.options))n+=r===!0?` --${e} <${e}>`:` --${e} ${r}`;return{command:n,...t.description?{description:t.description}:void 0}}var pu=L((()=>{}));async function mu(e,t={}){let n=[],r=t.exclude?s.resolve(t.exclude):void 0;async function i(e,t){let a=await S.readdir(e,{withFileTypes:!0});a.sort((e,t)=>e.name.localeCompare(t.name));for(let o of a){if(o.name.startsWith(`.`)||o.name.startsWith(`_`))continue;let a=s.join(e,o.name);if(o.isDirectory()){_u(o.name,a),await i(a,[...t,o.name]);continue}if(!o.isFile()||a===r)continue;let c=vu.find(e=>o.name.endsWith(e));if(!c)continue;let l=o.name.slice(0,-c.length);if(!(l.endsWith(`.d`)||l.endsWith(`.test`)||l.endsWith(`.test-d`)||l.endsWith(`.spec`))){if(l===`index`){t.length>0&&n.push({file:a,segments:t});continue}_u(l,a),n.push({file:a,segments:[...t,l]})}}}await i(e,[]);let a=new Map;for(let e of n){let t=e.segments.join(` `),n=a.get(t);if(n)throw Error(`Duplicate filesystem command '${t}' from '${n}' and '${e.file}'.`);a.set(t,e.file)}return n}function hu(){return globalThis[Symbol.for(bu)]?.shift()}async function gu(e){return Promise.all(e.map(async({load:e,...t})=>({...t,command:await e()})))}function _u(e,t){if(!yu.test(e))throw Error(`Invalid filesystem command segment '${e}' from '${t}'. Use lowercase kebab-case names.`)}var vu,yu,bu,xu=L((()=>{vu=[`.cts`,`.cjs`,`.mts`,`.mjs`,`.ts`,`.js`],yu=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,bu=`incur.fs.manifests`}));function Su(e){let t=d.toJSONSchema(e,{unrepresentable:`any`,override:e=>{let t=e.zodSchema._zod?.def?.type;(t===`bigint`||t===`date`)&&(e.jsonSchema.type=`string`)}});return delete t.$schema,t}var Cu=L((()=>{}));function wu(e,t){let n=typeof e;if(n!==typeof t)return!1;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(!wu(e[r],t[r]))return!1;return!0}if(n===`object`){if(!e||!t)return e===t;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!wu(e[r],t[r]))return!1;return!0}return e===t}var Tu=L((()=>{}));function Eu(e){return encodeURI(Du(e))}function Du(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}var Ou=L((()=>{}));function ku(e,t=Object.create(null),n=Nu,r=``){if(e&&typeof e==`object`&&!Array.isArray(e)){let i=e.$id||e.id;if(i){let a=new URL(i,n.href);a.hash.length>1?t[a.href]=e:(a.hash=``,r===``?n=a:ku(e,t,n))}}else if(e!==!0&&e!==!1)return t;let i=n.href+(r?`#`+r:``);if(t[i]!==void 0)throw Error(`Duplicate schema URI "${i}".`);if(t[i]=e,e===!0||e===!1)return t;if(e.__absolute_uri__===void 0&&Object.defineProperty(e,"__absolute_uri__",{enumerable:!1,value:i}),e.$ref&&e.__absolute_ref__===void 0){let t=new URL(e.$ref,n.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_ref__",{enumerable:!1,value:t.href})}if(e.$recursiveRef&&e.__absolute_recursive_ref__===void 0){let t=new URL(e.$recursiveRef,n.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_recursive_ref__",{enumerable:!1,value:t.href})}if(e.$anchor){let r=new URL(`#`+e.$anchor,n.href);t[r.href]=e}for(let i in e){if(Mu[i])continue;let a=`${r}/${Eu(i)}`,o=e[i];if(Array.isArray(o)){if(Au[i]){let e=o.length;for(let r=0;r<e;r++)ku(o[r],t,n,`${a}/${r}`)}}else if(ju[i])for(let e in o)ku(o[e],t,n,`${a}/${Eu(e)}`);else ku(o,t,n,a)}return t}var Au,ju,Mu,Nu,Pu=L((()=>{Ou(),Au={prefixItems:!0,items:!0,allOf:!0,anyOf:!0,oneOf:!0},ju={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependentSchemas:!0},Mu={id:!0,$id:!0,$ref:!0,$schema:!0,$anchor:!0,$vocabulary:!0,$comment:!0,default:!0,enum:!0,const:!0,required:!0,type:!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},Nu=typeof self<`u`&&self.location&&self.location.origin!==`null`?new URL(self.location.origin+self.location.pathname+location.search):new URL(`https://github.com/cfworker`)}));function Fu(e){return e.test.bind(e)}function Iu(e){return e%4==0&&(e%100!=0||e%400==0)}function Lu(e){let t=e.match(Hu);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r==2&&Iu(n)?29:Uu[r])}function Ru(e,t){let n=t.match(Wu);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=!!n[5];return(r<=23&&i<=59&&a<=59||r==23&&i==59&&a==60)&&(!e||o)}function zu(e){let t=e.split(id);return t.length==2&&Lu(t[0])&&Ru(!0,t[1])}function Bu(e){return ad.test(e)&&od.test(e)}function Vu(e){if(sd.test(e))return!1;try{return new RegExp(e,`u`),!0}catch{return!1}}var Hu,Uu,Wu,Gu,Ku,qu,Ju,Yu,Xu,Zu,Qu,$u,ed,td,nd,rd,id,ad,od,sd,cd=L((()=>{Hu=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Uu=[0,31,28,31,30,31,30,31,31,30,31,30,31],Wu=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,Gu=/^(?=.{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,Ku=/^(?:[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,qu=/^(?:(?:[^\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,Ju=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!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-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,Yu=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,Xu=/^(?:\/(?:[^~/]|~0|~1)*)*$/,Zu=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,Qu=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,$u=e=>{if(e[0]===`"`)return!1;let[t,n,...r]=e.split(`@`);return!t||!n||r.length!==0||t.length>64||n.length>253||t[0]===`.`||t.endsWith(`.`)||t.includes(`..`)||!/^[a-z0-9.-]+$/i.test(n)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(t)?!1:n.split(`.`).every(e=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(e))},ed=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,td=/^((([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,nd=e=>e.length>1&&e.length<80&&(/^P\d+([.,]\d+)?W$/.test(e)||/^P[\dYMDTHS]*(\d[.,]\d+)?[YMDHS]$/.test(e)&&/^P([.,\d]+Y)?([.,\d]+M)?([.,\d]+D)?(T([.,\d]+H)?([.,\d]+M)?([.,\d]+S)?)?$/.test(e)),rd={date:Lu,time:Ru.bind(void 0,!1),"date-time":zu,duration:nd,uri:Bu,"uri-reference":Fu(Ku),"uri-template":Fu(qu),url:Fu(Ju),email:$u,hostname:Fu(Gu),ipv4:Fu(ed),ipv6:Fu(td),regex:Vu,uuid:Fu(Yu),"json-pointer":Fu(Xu),"json-pointer-uri-fragment":Fu(Zu),"relative-json-pointer":Fu(Qu)},id=/t|\s/i,ad=/\/|:/,od=/^(?:[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,sd=/[^\\]\\Z/})),ld=L((()=>{}));function ud(e){let t=0,n=e.length,r=0,i;for(;r<n;)t++,i=e.charCodeAt(r++),i>=55296&&i<=56319&&r<n&&(i=e.charCodeAt(r),(i&64512)==56320&&r++);return t}var dd=L((()=>{}));function fd(e,t,n=`2019-09`,r=ku(t),i=!0,a=null,o=`#`,s=`#`,c=Object.create(null)){if(t===!0)return{valid:!0,errors:[]};if(t===!1)return{valid:!1,errors:[{instanceLocation:o,keyword:`false`,keywordLocation:o,error:`False boolean schema.`}]};let l=typeof e,u;switch(l){case`boolean`:case`number`:case`string`:u=l;break;case`object`:u=e===null?`null`:Array.isArray(e)?`array`:`object`;break;default:throw Error(`Instances of "${l}" type are not supported.`)}let{$ref:d,$recursiveRef:f,$recursiveAnchor:p,type:m,const:h,enum:g,required:_,not:v,anyOf:y,allOf:b,oneOf:x,if:S,then:C,else:w,format:T,properties:E,patternProperties:D,additionalProperties:O,unevaluatedProperties:k,minProperties:A,maxProperties:ee,propertyNames:j,dependentRequired:te,dependentSchemas:M,dependencies:N,prefixItems:ne,items:re,additionalItems:ie,unevaluatedItems:ae,contains:oe,minContains:P,maxContains:se,minItems:ce,maxItems:le,uniqueItems:ue,minimum:de,maximum:F,exclusiveMinimum:fe,exclusiveMaximum:pe,multipleOf:me,minLength:he,maxLength:ge,pattern:_e,__absolute_ref__:ve,__absolute_recursive_ref__:ye}=t,I=[];if(p===!0&&a===null&&(a=t),f===`#`){let l=a===null?r[ye]:a,u=`${s}/$recursiveRef`,d=fd(e,a===null?t:a,n,r,i,l,o,u,c);d.valid||I.push({instanceLocation:o,keyword:`$recursiveRef`,keywordLocation:u,error:`A subschema had errors.`},...d.errors)}if(d!==void 0){let t=r[ve||d];if(t===void 0){let e=`Unresolved $ref "${d}".`;throw ve&&ve!==d&&(e+=` Absolute URI "${ve}".`),e+=`\nKnown schemas:\n- ${Object.keys(r).join(`
174
- - `)}`,Error(e)}let l=`${s}/$ref`,u=fd(e,t,n,r,i,a,o,l,c);if(u.valid||I.push({instanceLocation:o,keyword:`$ref`,keywordLocation:l,error:`A subschema had errors.`},...u.errors),n===`4`||n===`7`)return{valid:I.length===0,errors:I}}if(Array.isArray(m)){let t=m.length,n=!1;for(let r=0;r<t;r++)if(u===m[r]||m[r]===`integer`&&u===`number`&&e%1==0&&e===e){n=!0;break}n||I.push({instanceLocation:o,keyword:`type`,keywordLocation:`${s}/type`,error:`Instance type "${u}" is invalid. Expected "${m.join(`", "`)}".`})}else m===`integer`?(u!==`number`||e%1||e!==e)&&I.push({instanceLocation:o,keyword:`type`,keywordLocation:`${s}/type`,error:`Instance type "${u}" is invalid. Expected "${m}".`}):m!==void 0&&u!==m&&I.push({instanceLocation:o,keyword:`type`,keywordLocation:`${s}/type`,error:`Instance type "${u}" is invalid. Expected "${m}".`});if(h!==void 0&&(u===`object`||u===`array`?wu(e,h)||I.push({instanceLocation:o,keyword:`const`,keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(h)}.`}):e!==h&&I.push({instanceLocation:o,keyword:`const`,keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(h)}.`})),g!==void 0&&(u===`object`||u===`array`?g.some(t=>wu(e,t))||I.push({instanceLocation:o,keyword:`enum`,keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(g)}.`}):g.some(t=>e===t)||I.push({instanceLocation:o,keyword:`enum`,keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(g)}.`})),v!==void 0){let t=`${s}/not`;fd(e,v,n,r,i,a,o,t).valid&&I.push({instanceLocation:o,keyword:`not`,keywordLocation:t,error:`Instance matched "not" schema.`})}let be=[];if(y!==void 0){let t=`${s}/anyOf`,l=I.length,u=!1;for(let s=0;s<y.length;s++){let l=y[s],d=Object.create(c),f=fd(e,l,n,r,i,p===!0?a:null,o,`${t}/${s}`,d);I.push(...f.errors),u||=f.valid,f.valid&&be.push(d)}u?I.length=l:I.splice(l,0,{instanceLocation:o,keyword:`anyOf`,keywordLocation:t,error:`Instance does not match any subschemas.`})}if(b!==void 0){let t=`${s}/allOf`,l=I.length,u=!0;for(let s=0;s<b.length;s++){let l=b[s],d=Object.create(c),f=fd(e,l,n,r,i,p===!0?a:null,o,`${t}/${s}`,d);I.push(...f.errors),u&&=f.valid,f.valid&&be.push(d)}u?I.length=l:I.splice(l,0,{instanceLocation:o,keyword:`allOf`,keywordLocation:t,error:`Instance does not match every subschema.`})}if(x!==void 0){let t=`${s}/oneOf`,l=I.length,u=x.filter((s,l)=>{let u=Object.create(c),d=fd(e,s,n,r,i,p===!0?a:null,o,`${t}/${l}`,u);return I.push(...d.errors),d.valid&&be.push(u),d.valid}).length;u===1?I.length=l:I.splice(l,0,{instanceLocation:o,keyword:`oneOf`,keywordLocation:t,error:`Instance does not match exactly one subschema (${u} matches).`})}if((u===`object`||u===`array`)&&Object.assign(c,...be),S!==void 0){let t=`${s}/if`;if(fd(e,S,n,r,i,a,o,t,c).valid){if(C!==void 0){let l=fd(e,C,n,r,i,a,o,`${s}/then`,c);l.valid||I.push({instanceLocation:o,keyword:`if`,keywordLocation:t,error:`Instance does not match "then" schema.`},...l.errors)}}else if(w!==void 0){let l=fd(e,w,n,r,i,a,o,`${s}/else`,c);l.valid||I.push({instanceLocation:o,keyword:`if`,keywordLocation:t,error:`Instance does not match "else" schema.`},...l.errors)}}if(u===`object`){if(_!==void 0)for(let t of _)t in e||I.push({instanceLocation:o,keyword:`required`,keywordLocation:`${s}/required`,error:`Instance does not have required property "${t}".`});let t=Object.keys(e);if(A!==void 0&&t.length<A&&I.push({instanceLocation:o,keyword:`minProperties`,keywordLocation:`${s}/minProperties`,error:`Instance does not have at least ${A} properties.`}),ee!==void 0&&t.length>ee&&I.push({instanceLocation:o,keyword:`maxProperties`,keywordLocation:`${s}/maxProperties`,error:`Instance does not have at least ${ee} properties.`}),j!==void 0){let t=`${s}/propertyNames`;for(let s in e){let e=`${o}/${Eu(s)}`,c=fd(s,j,n,r,i,a,e,t);c.valid||I.push({instanceLocation:o,keyword:`propertyNames`,keywordLocation:t,error:`Property name "${s}" does not match schema.`},...c.errors)}}if(te!==void 0){let t=`${s}/dependantRequired`;for(let n in te)if(n in e){let r=te[n];for(let i of r)i in e||I.push({instanceLocation:o,keyword:`dependentRequired`,keywordLocation:t,error:`Instance has "${n}" but does not have "${i}".`})}}if(M!==void 0)for(let t in M){let l=`${s}/dependentSchemas`;if(t in e){let s=fd(e,M[t],n,r,i,a,o,`${l}/${Eu(t)}`,c);s.valid||I.push({instanceLocation:o,keyword:`dependentSchemas`,keywordLocation:l,error:`Instance has "${t}" but does not match dependant schema.`},...s.errors)}}if(N!==void 0){let t=`${s}/dependencies`;for(let s in N)if(s in e){let c=N[s];if(Array.isArray(c))for(let n of c)n in e||I.push({instanceLocation:o,keyword:`dependencies`,keywordLocation:t,error:`Instance has "${s}" but does not have "${n}".`});else{let l=fd(e,c,n,r,i,a,o,`${t}/${Eu(s)}`);l.valid||I.push({instanceLocation:o,keyword:`dependencies`,keywordLocation:t,error:`Instance has "${s}" but does not match dependant schema.`},...l.errors)}}}let l=Object.create(null),u=!1;if(E!==void 0){let t=`${s}/properties`;for(let s in E){if(!(s in e))continue;let d=`${o}/${Eu(s)}`,f=fd(e[s],E[s],n,r,i,a,d,`${t}/${Eu(s)}`);if(f.valid)c[s]=l[s]=!0;else if(u=i,I.push({instanceLocation:o,keyword:`properties`,keywordLocation:t,error:`Property "${s}" does not match schema.`},...f.errors),u)break}}if(!u&&D!==void 0){let t=`${s}/patternProperties`;for(let s in D){let d=new RegExp(s,`u`),f=D[s];for(let p in e){if(!d.test(p))continue;let m=`${o}/${Eu(p)}`,h=fd(e[p],f,n,r,i,a,m,`${t}/${Eu(s)}`);h.valid?c[p]=l[p]=!0:(u=i,I.push({instanceLocation:o,keyword:`patternProperties`,keywordLocation:t,error:`Property "${p}" matches pattern "${s}" but does not match associated schema.`},...h.errors))}}}if(!u&&O!==void 0){let t=`${s}/additionalProperties`;for(let s in e){if(l[s])continue;let d=`${o}/${Eu(s)}`,f=fd(e[s],O,n,r,i,a,d,t);f.valid?c[s]=!0:(u=i,I.push({instanceLocation:o,keyword:`additionalProperties`,keywordLocation:t,error:`Property "${s}" does not match additional properties schema.`},...f.errors))}}else if(!u&&k!==void 0){let t=`${s}/unevaluatedProperties`;for(let s in e)if(!c[s]){let l=`${o}/${Eu(s)}`,u=fd(e[s],k,n,r,i,a,l,t);u.valid?c[s]=!0:I.push({instanceLocation:o,keyword:`unevaluatedProperties`,keywordLocation:t,error:`Property "${s}" does not match unevaluated properties schema.`},...u.errors)}}}else if(u===`array`){le!==void 0&&e.length>le&&I.push({instanceLocation:o,keyword:`maxItems`,keywordLocation:`${s}/maxItems`,error:`Array has too many items (${e.length} > ${le}).`}),ce!==void 0&&e.length<ce&&I.push({instanceLocation:o,keyword:`minItems`,keywordLocation:`${s}/minItems`,error:`Array has too few items (${e.length} < ${ce}).`});let t=e.length,l=0,u=!1;if(ne!==void 0){let d=`${s}/prefixItems`,f=Math.min(ne.length,t);for(;l<f;l++){let t=fd(e[l],ne[l],n,r,i,a,`${o}/${l}`,`${d}/${l}`);if(c[l]=!0,!t.valid&&(u=i,I.push({instanceLocation:o,keyword:`prefixItems`,keywordLocation:d,error:`Items did not match schema.`},...t.errors),u))break}}if(re!==void 0){let d=`${s}/items`;if(Array.isArray(re)){let s=Math.min(re.length,t);for(;l<s;l++){let t=fd(e[l],re[l],n,r,i,a,`${o}/${l}`,`${d}/${l}`);if(c[l]=!0,!t.valid&&(u=i,I.push({instanceLocation:o,keyword:`items`,keywordLocation:d,error:`Items did not match schema.`},...t.errors),u))break}}else for(;l<t;l++){let t=fd(e[l],re,n,r,i,a,`${o}/${l}`,d);if(c[l]=!0,!t.valid&&(u=i,I.push({instanceLocation:o,keyword:`items`,keywordLocation:d,error:`Items did not match schema.`},...t.errors),u))break}if(!u&&ie!==void 0){let d=`${s}/additionalItems`;for(;l<t;l++){let t=fd(e[l],ie,n,r,i,a,`${o}/${l}`,d);c[l]=!0,t.valid||(u=i,I.push({instanceLocation:o,keyword:`additionalItems`,keywordLocation:d,error:`Items did not match additional items schema.`},...t.errors))}}}if(oe!==void 0){if(t===0&&P===void 0)I.push({instanceLocation:o,keyword:`contains`,keywordLocation:`${s}/contains`,error:`Array is empty. It must contain at least one item matching the schema.`});else if(P!==void 0&&t<P)I.push({instanceLocation:o,keyword:`minContains`,keywordLocation:`${s}/minContains`,error:`Array has less items (${t}) than minContains (${P}).`});else{let l=`${s}/contains`,u=I.length,d=0;for(let s=0;s<t;s++){let t=fd(e[s],oe,n,r,i,a,`${o}/${s}`,l);t.valid?(c[s]=!0,d++):I.push(...t.errors)}d>=(P||0)&&(I.length=u),P===void 0&&se===void 0&&d===0?I.splice(u,0,{instanceLocation:o,keyword:`contains`,keywordLocation:l,error:`Array does not contain item matching schema.`}):P!==void 0&&d<P?I.push({instanceLocation:o,keyword:`minContains`,keywordLocation:`${s}/minContains`,error:`Array must contain at least ${P} items matching schema. Only ${d} items were found.`}):se!==void 0&&d>se&&I.push({instanceLocation:o,keyword:`maxContains`,keywordLocation:`${s}/maxContains`,error:`Array may contain at most ${se} items matching schema. ${d} items were found.`})}}if(!u&&ae!==void 0){let u=`${s}/unevaluatedItems`;for(;l<t;l++){if(c[l])continue;let t=fd(e[l],ae,n,r,i,a,`${o}/${l}`,u);c[l]=!0,t.valid||I.push({instanceLocation:o,keyword:`unevaluatedItems`,keywordLocation:u,error:`Items did not match unevaluated items schema.`},...t.errors)}}if(ue)for(let n=0;n<t;n++){let r=e[n],i=typeof r==`object`&&!!r;for(let a=0;a<t;a++){if(n===a)continue;let t=e[a];(r===t||i&&typeof t==`object`&&t&&wu(r,t))&&(I.push({instanceLocation:o,keyword:`uniqueItems`,keywordLocation:`${s}/uniqueItems`,error:`Duplicate items at indexes ${n} and ${a}.`}),n=2**53-1,a=2**53-1)}}}else if(u===`number`){if(n===`4`?(de!==void 0&&(fe===!0&&e<=de||e<de)&&I.push({instanceLocation:o,keyword:`minimum`,keywordLocation:`${s}/minimum`,error:`${e} is less than ${fe?`or equal to `:``} ${de}.`}),F!==void 0&&(pe===!0&&e>=F||e>F)&&I.push({instanceLocation:o,keyword:`maximum`,keywordLocation:`${s}/maximum`,error:`${e} is greater than ${pe?`or equal to `:``} ${F}.`})):(de!==void 0&&e<de&&I.push({instanceLocation:o,keyword:`minimum`,keywordLocation:`${s}/minimum`,error:`${e} is less than ${de}.`}),F!==void 0&&e>F&&I.push({instanceLocation:o,keyword:`maximum`,keywordLocation:`${s}/maximum`,error:`${e} is greater than ${F}.`}),fe!==void 0&&e<=fe&&I.push({instanceLocation:o,keyword:`exclusiveMinimum`,keywordLocation:`${s}/exclusiveMinimum`,error:`${e} is less than ${fe}.`}),pe!==void 0&&e>=pe&&I.push({instanceLocation:o,keyword:`exclusiveMaximum`,keywordLocation:`${s}/exclusiveMaximum`,error:`${e} is greater than or equal to ${pe}.`})),me!==void 0){let t=e%me;Math.abs(0-t)>=1.1920929e-7&&Math.abs(me-t)>=1.1920929e-7&&I.push({instanceLocation:o,keyword:`multipleOf`,keywordLocation:`${s}/multipleOf`,error:`${e} is not a multiple of ${me}.`})}}else if(u===`string`){let t=he===void 0&&ge===void 0?0:ud(e);he!==void 0&&t<he&&I.push({instanceLocation:o,keyword:`minLength`,keywordLocation:`${s}/minLength`,error:`String is too short (${t} < ${he}).`}),ge!==void 0&&t>ge&&I.push({instanceLocation:o,keyword:`maxLength`,keywordLocation:`${s}/maxLength`,error:`String is too long (${t} > ${ge}).`}),_e!==void 0&&!new RegExp(_e,`u`).test(e)&&I.push({instanceLocation:o,keyword:`pattern`,keywordLocation:`${s}/pattern`,error:`String does not match pattern.`}),T!==void 0&&rd[T]&&!rd[T](e)&&I.push({instanceLocation:o,keyword:`format`,keywordLocation:`${s}/format`,error:`String does not match format "${T}".`})}return{valid:I.length===0,errors:I}}var pd=L((()=>{Tu(),Pu(),cd(),Ou(),dd()})),md,hd=L((()=>{Pu(),pd(),md=class{schema;draft;shortCircuit;lookup;constructor(e,t=`2019-09`,n=!0){this.schema=e,this.draft=t,this.shortCircuit=n,this.lookup=ku(e)}validate(e){return fd(e,this.schema,this.draft,this.lookup,this.shortCircuit)}addSchema(e,t){t&&(e={...e,$id:t}),ku(e,this.lookup)}}})),gd=L((()=>{Tu(),Pu(),cd(),Ou(),ld(),dd(),pd(),hd()}));function _d(e){let t=typeof e==`string`?new URL(e):new URL(e.href);return t.hash=``,t}function vd({requestedResource:e,configuredResource:t}){let n=typeof e==`string`?new URL(e):new URL(e.href),r=typeof t==`string`?new URL(t):new URL(t.href);if(n.origin!==r.origin||n.pathname.length<r.pathname.length)return!1;let i=n.pathname.endsWith(`/`)?n.pathname:n.pathname+`/`,a=r.pathname.endsWith(`/`)?r.pathname:r.pathname+`/`;return i.startsWith(a)}function yd(e){return e.title!==void 0&&e.title!==``?e.title:`annotations`in e&&e.annotations?.title?e.annotations.title:e.name}function bd(e){return uh[e]}function xd(e){let t={};for(let n of e){let e=n.shape.method.value;t[e]=n}return t}function Sd(e){return dh[e]}function Cd(e){return fh[e]}function wd(e){return Rf.parse(e)}function Td(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function Ed(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function Dd(e,t){return D.safeParse(e,t)}function Od(e){return e===`completed`||e===`failed`||e===`cancelled`}function kd(e){if(!e)return;let{taskStore:t,taskMessageQueue:n,defaultTaskPollInterval:r,maxTaskQueueSize:i}=e;return{taskStore:t,taskMessageQueue:n,defaultTaskPollInterval:r,maxTaskQueueSize:i}}function Ad(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function jd(e,t){let n={...e};for(let e in t){let r=e,i=t[r];if(i===void 0)continue;let a=n[r];n[r]=Ad(a)&&Ad(i)?{...a,...i}:i}return n}async function Md(e){let t=[];for await(let n of e)t.push(n);return t}async function Nd(e){for await(let t of e)if(t.type===`result`)return t.result;else if(t.type===`error`)throw t.error;throw Error(`No result in stream.`)}function Pd(e){return Rf.parse(JSON.parse(e))}function Fd(e){return JSON.stringify(e)+`
175
- `}function Id(e){let t=[];if(e.length===0)return{isValid:!1,warnings:[`Tool name cannot be empty`]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(` `)&&t.push(`Tool name contains spaces, which may cause parsing issues`),e.includes(`,`)&&t.push(`Tool name contains commas, which may cause parsing issues`),(e.startsWith(`-`)||e.endsWith(`-`))&&t.push(`Tool name starts or ends with a dash, which may cause parsing issues in some contexts`),(e.startsWith(`.`)||e.endsWith(`.`))&&t.push(`Tool name starts or ends with a dot, which may cause parsing issues in some contexts`),!Th.test(e)){let n=[...e].filter(e=>!/[A-Za-z0-9._-]/.test(e)).filter((e,t,n)=>n.indexOf(e)===t);return t.push(`Tool name contains invalid characters: ${n.map(e=>`"${e}"`).join(`, `)}`,`Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)`),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function Ld(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let e of t)console.warn(` - ${e}`);console.warn(`Tool registration will proceed, but this may cause compatibility issues.`),console.warn(`Consider updating the tool name to conform to the MCP tool naming standard.`),console.warn(`See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.`)}}function Rd(e){let t=Id(e);return Ld(e,t.warnings),t.isValid}function zd(e){return e?e instanceof Headers?Object.fromEntries(e.entries()):Array.isArray(e)?Object.fromEntries(e):{...e}:{}}function Bd(e=fetch,t){return t?async(n,r)=>e(n,{...t,...r,headers:r?.headers?{...zd(t.headers),...zd(r.headers)}:t.headers}):e}function Vd(e,t=`input`){let n=e[`~standard`].jsonSchema[t]({target:`draft-2020-12`});if(n.type!==void 0&&n.type!==`object`)throw Error(`MCP tool and prompt schemas must describe objects (got type: ${JSON.stringify(n.type)}). Wrap your schema in z.object({...}) or equivalent.`);return{type:`object`,...n}}function Hd(e){return e.path?.length?`${e.path.map(e=>String(typeof e==`object`?e.key:e)).join(`.`)}: ${e.message}`:e.message}async function Ud(e,t){let n=await e[`~standard`].validate(t);return n.issues&&n.issues.length>0?{success:!1,error:n.issues.map(e=>Hd(e)).join(`, `)}:{success:!0,data:n.value}}function Wd(e){let t=Vd(e,`input`),n=t.properties||{},r=t.required||[];return Object.entries(n).map(([e,t])=>({name:e,description:t?.description,required:r.includes(e)}))}function Gd(){let e=new Kg.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,qg.default)(e),e}function Kd(e,t){let n=t.getValidator(e);return{"~standard":{version:1,vendor:`mcp`,jsonSchema:{input:()=>e,output:()=>e},validate:e=>{let t=n(e);return t.valid?{value:t.data}:{issues:[{message:t.errorMessage}]}}}}}var qd,Jd,Yd,Xd,Zd,Qd,V,$d,ef,tf,nf,H,U,rf,af,of,sf,cf,lf,uf,df,ff,pf,mf,hf,gf,_f,vf,W,G,yf,bf,xf,Sf,Cf,wf,Tf,Ef,Df,Of,kf,Af,jf,Mf,Nf,Pf,Ff,If,Lf,Rf,zf,Bf,Vf,Hf,Uf,Wf,Gf,Kf,qf,Jf,Yf,Xf,Zf,Qf,$f,ep,tp,np,rp,ip,ap,op,sp,cp,lp,up,dp,fp,pp,mp,hp,gp,_p,vp,yp,bp,xp,Sp,Cp,wp,Tp,Ep,Dp,Op,kp,Ap,jp,Mp,Np,Pp,Fp,Ip,Lp,Rp,zp,Bp,Vp,Hp,Up,Wp,Gp,Kp,qp,Jp,Yp,Xp,Zp,Qp,$p,em,tm,nm,rm,im,am,om,sm,cm,lm,um,dm,fm,pm,mm,hm,gm,_m,vm,ym,bm,xm,Sm,Cm,wm,Tm,Em,Dm,Om,km,Am,jm,Mm,Nm,Pm,Fm,Im,Lm,Rm,zm,Bm,Vm,Hm,Um,Wm,Gm,Km,qm,Jm,Ym,Xm,Zm,Qm,$m,eh,th,nh,rh,ih,ah,oh,sh,ch,lh,uh,dh,fh,ph,mh,hh,gh,_h,vh,yh,bh,xh,Sh,Ch,wh,Th,Eh,Dh,Oh,kh,Ah,jh,Mh,K,q,Nh,Ph,Fh,Ih,Lh,Rh,zh,Bh,Vh,Hh,Uh,Wh,Gh,Kh,qh,Jh,Yh,Xh,Zh,Qh,$h,eg,tg,ng,rg,ig,ag,og,sg,cg,lg,ug,dg,fg,pg,mg,hg,gg,_g,vg,yg,bg,xg,Sg,Cg,wg,Tg,Eg,Dg,Og,kg,Ag,jg,Mg,Ng,Pg,Fg,Ig,Lg,Rg,zg,Bg,Vg,Hg,Ug,Wg,Gg,Kg,qg,Jg,Yg,Xg=L((()=>{gd(),qd=Object.create,Jd=Object.defineProperty,Yd=Object.getOwnPropertyDescriptor,Xd=Object.getOwnPropertyNames,Zd=Object.getPrototypeOf,Qd=Object.prototype.hasOwnProperty,V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),$d=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=Xd(t),a=0,o=i.length,s;a<o;a++)s=i[a],!Qd.call(e,s)&&s!==n&&Jd(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=Yd(t,s))||r.enumerable});return e},ef=(e,t,n)=>(n=e==null?{}:qd(Zd(e)),$d(t||!e||!e.__esModule?Jd(n,`default`,{value:e,enumerable:!0}):n,e)),tf=function(e){return e.InvalidRequest=`invalid_request`,e.InvalidClient=`invalid_client`,e.InvalidGrant=`invalid_grant`,e.UnauthorizedClient=`unauthorized_client`,e.UnsupportedGrantType=`unsupported_grant_type`,e.InvalidScope=`invalid_scope`,e.AccessDenied=`access_denied`,e.ServerError=`server_error`,e.TemporarilyUnavailable=`temporarily_unavailable`,e.UnsupportedResponseType=`unsupported_response_type`,e.UnsupportedTokenType=`unsupported_token_type`,e.InvalidToken=`invalid_token`,e.MethodNotAllowed=`method_not_allowed`,e.TooManyRequests=`too_many_requests`,e.InvalidClientMetadata=`invalid_client_metadata`,e.InsufficientScope=`insufficient_scope`,e.InvalidTarget=`invalid_target`,e}({}),nf=class e extends Error{constructor(e,t,n){super(t),this.code=e,this.errorUri=n,this.name=`OAuthError`}toResponseObject(){let e={error:this.code,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}static fromResponse(t){return new e(t.error,t.error_description??t.error,t.error_uri)}},H=function(e){return e.NotConnected=`NOT_CONNECTED`,e.AlreadyConnected=`ALREADY_CONNECTED`,e.NotInitialized=`NOT_INITIALIZED`,e.CapabilityNotSupported=`CAPABILITY_NOT_SUPPORTED`,e.RequestTimeout=`REQUEST_TIMEOUT`,e.ConnectionClosed=`CONNECTION_CLOSED`,e.SendFailed=`SEND_FAILED`,e.ClientHttpNotImplemented=`CLIENT_HTTP_NOT_IMPLEMENTED`,e.ClientHttpAuthentication=`CLIENT_HTTP_AUTHENTICATION`,e.ClientHttpForbidden=`CLIENT_HTTP_FORBIDDEN`,e.ClientHttpUnexpectedContent=`CLIENT_HTTP_UNEXPECTED_CONTENT`,e.ClientHttpFailedToOpenStream=`CLIENT_HTTP_FAILED_TO_OPEN_STREAM`,e.ClientHttpFailedToTerminateSession=`CLIENT_HTTP_FAILED_TO_TERMINATE_SESSION`,e}({}),U=class extends Error{constructor(e,t,n){super(t),this.code=e,this.data=n,this.name=`SdkError`}},rf=D.url().superRefine((e,t)=>{if(!URL.canParse(e))return t.addIssue({code:D.ZodIssueCode.custom,message:`URL must be parseable`,fatal:!0}),D.NEVER}).refine(e=>{let t=new URL(e);return t.protocol!==`javascript:`&&t.protocol!==`data:`&&t.protocol!==`vbscript:`},{message:`URL cannot use javascript:, data:, or vbscript: scheme`}),D.looseObject({resource:D.string().url(),authorization_servers:D.array(rf).optional(),jwks_uri:D.string().url().optional(),scopes_supported:D.array(D.string()).optional(),bearer_methods_supported:D.array(D.string()).optional(),resource_signing_alg_values_supported:D.array(D.string()).optional(),resource_name:D.string().optional(),resource_documentation:D.string().optional(),resource_policy_uri:D.string().url().optional(),resource_tos_uri:D.string().url().optional(),tls_client_certificate_bound_access_tokens:D.boolean().optional(),authorization_details_types_supported:D.array(D.string()).optional(),dpop_signing_alg_values_supported:D.array(D.string()).optional(),dpop_bound_access_tokens_required:D.boolean().optional()}),af=D.looseObject({issuer:D.string(),authorization_endpoint:rf,token_endpoint:rf,registration_endpoint:rf.optional(),scopes_supported:D.array(D.string()).optional(),response_types_supported:D.array(D.string()),response_modes_supported:D.array(D.string()).optional(),grant_types_supported:D.array(D.string()).optional(),token_endpoint_auth_methods_supported:D.array(D.string()).optional(),token_endpoint_auth_signing_alg_values_supported:D.array(D.string()).optional(),service_documentation:rf.optional(),revocation_endpoint:rf.optional(),revocation_endpoint_auth_methods_supported:D.array(D.string()).optional(),revocation_endpoint_auth_signing_alg_values_supported:D.array(D.string()).optional(),introspection_endpoint:D.string().optional(),introspection_endpoint_auth_methods_supported:D.array(D.string()).optional(),introspection_endpoint_auth_signing_alg_values_supported:D.array(D.string()).optional(),code_challenge_methods_supported:D.array(D.string()).optional(),client_id_metadata_document_supported:D.boolean().optional()}),of=D.looseObject({issuer:D.string(),authorization_endpoint:rf,token_endpoint:rf,userinfo_endpoint:rf.optional(),jwks_uri:rf,registration_endpoint:rf.optional(),scopes_supported:D.array(D.string()).optional(),response_types_supported:D.array(D.string()),response_modes_supported:D.array(D.string()).optional(),grant_types_supported:D.array(D.string()).optional(),acr_values_supported:D.array(D.string()).optional(),subject_types_supported:D.array(D.string()),id_token_signing_alg_values_supported:D.array(D.string()),id_token_encryption_alg_values_supported:D.array(D.string()).optional(),id_token_encryption_enc_values_supported:D.array(D.string()).optional(),userinfo_signing_alg_values_supported:D.array(D.string()).optional(),userinfo_encryption_alg_values_supported:D.array(D.string()).optional(),userinfo_encryption_enc_values_supported:D.array(D.string()).optional(),request_object_signing_alg_values_supported:D.array(D.string()).optional(),request_object_encryption_alg_values_supported:D.array(D.string()).optional(),request_object_encryption_enc_values_supported:D.array(D.string()).optional(),token_endpoint_auth_methods_supported:D.array(D.string()).optional(),token_endpoint_auth_signing_alg_values_supported:D.array(D.string()).optional(),display_values_supported:D.array(D.string()).optional(),claim_types_supported:D.array(D.string()).optional(),claims_supported:D.array(D.string()).optional(),service_documentation:D.string().optional(),claims_locales_supported:D.array(D.string()).optional(),ui_locales_supported:D.array(D.string()).optional(),claims_parameter_supported:D.boolean().optional(),request_parameter_supported:D.boolean().optional(),request_uri_parameter_supported:D.boolean().optional(),require_request_uri_registration:D.boolean().optional(),op_policy_uri:rf.optional(),op_tos_uri:rf.optional(),client_id_metadata_document_supported:D.boolean().optional()}),D.object({...of.shape,...af.pick({code_challenge_methods_supported:!0}).shape}),D.object({access_token:D.string(),id_token:D.string().optional(),token_type:D.string(),expires_in:D.coerce.number().optional(),scope:D.string().optional(),refresh_token:D.string().optional()}).strip(),D.object({issued_token_type:D.literal(`urn:ietf:params:oauth:token-type:id-jag`),access_token:D.string(),token_type:D.string().optional(),expires_in:D.number().optional(),scope:D.string().optional()}).strip(),D.object({error:D.string(),error_description:D.string().optional(),error_uri:D.string().optional()}),sf=rf.optional().or(D.literal(``).transform(()=>void 0)),cf=D.object({redirect_uris:D.array(rf),token_endpoint_auth_method:D.string().optional(),grant_types:D.array(D.string()).optional(),response_types:D.array(D.string()).optional(),client_name:D.string().optional(),client_uri:rf.optional(),logo_uri:sf,scope:D.string().optional(),contacts:D.array(D.string()).optional(),tos_uri:sf,policy_uri:D.string().optional(),jwks_uri:rf.optional(),jwks:D.any().optional(),software_id:D.string().optional(),software_version:D.string().optional(),software_statement:D.string().optional()}).strip(),lf=D.object({client_id:D.string(),client_secret:D.string().optional(),client_id_issued_at:D.number().optional(),client_secret_expires_at:D.number().optional()}).strip(),cf.merge(lf),D.object({error:D.string(),error_description:D.string().optional()}).strip(),D.object({token:D.string(),token_type_hint:D.string().optional()}).strip(),uf=`2025-11-25`,df=`2025-03-26`,ff=[uf,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],pf=`io.modelcontextprotocol/related-task`,mf=-32700,hf=-32600,gf=-32601,_f=-32602,vf=-32603,W=function(e){return 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.ResourceNotFound=-32002]=`ResourceNotFound`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`,e}({}),G=class e extends Error{constructor(e,t,n){super(t),this.code=e,this.data=n,this.name=`ProtocolError`}static fromError(t,n,r){if(t===W.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new yf(e.elicitations,n)}return new e(t,n,r)}},yf=class extends G{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(W.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}},bf=D.lazy(()=>D.union([D.string(),D.number(),D.boolean(),D.null(),D.record(D.string(),bf),D.array(bf)])),xf=D.record(D.string(),bf),D.array(bf),Sf=D.union([D.string(),D.number().int()]),Cf=D.string(),D.looseObject({ttl:D.number().optional(),pollInterval:D.number().optional()}),wf=D.object({ttl:D.number().optional()}),Tf=D.object({taskId:D.string()}),Ef=D.looseObject({progressToken:Sf.optional(),[pf]:Tf.optional()}),Df=D.object({_meta:Ef.optional()}),Of=Df.extend({task:wf.optional()}),kf=D.object({method:D.string(),params:Df.loose().optional()}),Af=D.object({_meta:Ef.optional()}),jf=D.object({method:D.string(),params:Af.loose().optional()}),Mf=D.looseObject({_meta:Ef.optional()}),Nf=D.union([D.string(),D.number().int()]),Pf=D.object({jsonrpc:D.literal(`2.0`),id:Nf,...kf.shape}).strict(),Ff=D.object({jsonrpc:D.literal(`2.0`),...jf.shape}).strict(),If=D.object({jsonrpc:D.literal(`2.0`),id:Nf,result:Mf}).strict(),Lf=D.object({jsonrpc:D.literal(`2.0`),id:Nf.optional(),error:D.object({code:D.number().int(),message:D.string(),data:D.unknown().optional()})}).strict(),Rf=D.union([Pf,Ff,If,Lf]),D.union([If,Lf]),zf=Mf.strict(),Bf=Af.extend({requestId:Nf.optional(),reason:D.string().optional()}),Vf=jf.extend({method:D.literal(`notifications/cancelled`),params:Bf}),Hf=D.object({src:D.string(),mimeType:D.string().optional(),sizes:D.array(D.string()).optional(),theme:D.enum([`light`,`dark`]).optional()}),Uf=D.object({icons:D.array(Hf).optional()}),Wf=D.object({name:D.string(),title:D.string().optional()}),Gf=Wf.extend({...Wf.shape,...Uf.shape,version:D.string(),websiteUrl:D.string().optional(),description:D.string().optional()}),Kf=D.intersection(D.object({applyDefaults:D.boolean().optional()}),xf),qf=D.preprocess(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,D.intersection(D.object({form:Kf.optional(),url:xf.optional()}),xf.optional())),Jf=D.looseObject({list:xf.optional(),cancel:xf.optional(),requests:D.looseObject({sampling:D.looseObject({createMessage:xf.optional()}).optional(),elicitation:D.looseObject({create:xf.optional()}).optional()}).optional()}),Yf=D.looseObject({list:xf.optional(),cancel:xf.optional(),requests:D.looseObject({tools:D.looseObject({call:xf.optional()}).optional()}).optional()}),Xf=D.object({experimental:D.record(D.string(),xf).optional(),sampling:D.object({context:xf.optional(),tools:xf.optional()}).optional(),elicitation:qf.optional(),roots:D.object({listChanged:D.boolean().optional()}).optional(),tasks:Jf.optional(),extensions:D.record(D.string(),xf).optional()}),Zf=Df.extend({protocolVersion:D.string(),capabilities:Xf,clientInfo:Gf}),Qf=kf.extend({method:D.literal(`initialize`),params:Zf}),$f=D.object({experimental:D.record(D.string(),xf).optional(),logging:xf.optional(),completions:xf.optional(),prompts:D.object({listChanged:D.boolean().optional()}).optional(),resources:D.object({subscribe:D.boolean().optional(),listChanged:D.boolean().optional()}).optional(),tools:D.object({listChanged:D.boolean().optional()}).optional(),tasks:Yf.optional(),extensions:D.record(D.string(),xf).optional()}),ep=Mf.extend({protocolVersion:D.string(),capabilities:$f,serverInfo:Gf,instructions:D.string().optional()}),tp=jf.extend({method:D.literal(`notifications/initialized`),params:Af.optional()}),np=kf.extend({method:D.literal(`ping`),params:Df.optional()}),rp=D.object({progress:D.number(),total:D.optional(D.number()),message:D.optional(D.string())}),ip=D.object({...Af.shape,...rp.shape,progressToken:Sf}),ap=jf.extend({method:D.literal(`notifications/progress`),params:ip}),op=Df.extend({cursor:Cf.optional()}),sp=kf.extend({params:op.optional()}),cp=Mf.extend({nextCursor:Cf.optional()}),lp=D.enum([`working`,`input_required`,`completed`,`failed`,`cancelled`]),up=D.object({taskId:D.string(),status:lp,ttl:D.union([D.number(),D.null()]),createdAt:D.string(),lastUpdatedAt:D.string(),pollInterval:D.optional(D.number()),statusMessage:D.optional(D.string())}),dp=Mf.extend({task:up}),fp=Af.merge(up),pp=jf.extend({method:D.literal(`notifications/tasks/status`),params:fp}),mp=kf.extend({method:D.literal(`tasks/get`),params:Df.extend({taskId:D.string()})}),hp=Mf.merge(up),gp=kf.extend({method:D.literal(`tasks/result`),params:Df.extend({taskId:D.string()})}),_p=Mf.loose(),vp=sp.extend({method:D.literal(`tasks/list`)}),yp=cp.extend({tasks:D.array(up)}),bp=kf.extend({method:D.literal(`tasks/cancel`),params:Df.extend({taskId:D.string()})}),xp=Mf.merge(up),Sp=D.object({uri:D.string(),mimeType:D.optional(D.string()),_meta:D.record(D.string(),D.unknown()).optional()}),Cp=Sp.extend({text:D.string()}),wp=D.string().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),Tp=Sp.extend({blob:wp}),Ep=D.enum([`user`,`assistant`]),Dp=D.object({audience:D.array(Ep).optional(),priority:D.number().min(0).max(1).optional(),lastModified:D.iso.datetime({offset:!0}).optional()}),Op=D.object({...Wf.shape,...Uf.shape,uri:D.string(),description:D.optional(D.string()),mimeType:D.optional(D.string()),size:D.optional(D.number()),annotations:Dp.optional(),_meta:D.optional(D.looseObject({}))}),kp=D.object({...Wf.shape,...Uf.shape,uriTemplate:D.string(),description:D.optional(D.string()),mimeType:D.optional(D.string()),annotations:Dp.optional(),_meta:D.optional(D.looseObject({}))}),Ap=sp.extend({method:D.literal(`resources/list`)}),jp=cp.extend({resources:D.array(Op)}),Mp=sp.extend({method:D.literal(`resources/templates/list`)}),Np=cp.extend({resourceTemplates:D.array(kp)}),Pp=Df.extend({uri:D.string()}),Fp=Pp,Ip=kf.extend({method:D.literal(`resources/read`),params:Fp}),Lp=Mf.extend({contents:D.array(D.union([Cp,Tp]))}),Rp=jf.extend({method:D.literal(`notifications/resources/list_changed`),params:Af.optional()}),zp=Pp,Bp=kf.extend({method:D.literal(`resources/subscribe`),params:zp}),Vp=Pp,Hp=kf.extend({method:D.literal(`resources/unsubscribe`),params:Vp}),Up=Af.extend({uri:D.string()}),Wp=jf.extend({method:D.literal(`notifications/resources/updated`),params:Up}),Gp=D.object({name:D.string(),description:D.optional(D.string()),required:D.optional(D.boolean())}),Kp=D.object({...Wf.shape,...Uf.shape,description:D.optional(D.string()),arguments:D.optional(D.array(Gp)),_meta:D.optional(D.looseObject({}))}),qp=sp.extend({method:D.literal(`prompts/list`)}),Jp=cp.extend({prompts:D.array(Kp)}),Yp=Df.extend({name:D.string(),arguments:D.record(D.string(),D.string()).optional()}),Xp=kf.extend({method:D.literal(`prompts/get`),params:Yp}),Zp=D.object({type:D.literal(`text`),text:D.string(),annotations:Dp.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),Qp=D.object({type:D.literal(`image`),data:wp,mimeType:D.string(),annotations:Dp.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),$p=D.object({type:D.literal(`audio`),data:wp,mimeType:D.string(),annotations:Dp.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),em=D.object({type:D.literal(`tool_use`),name:D.string(),id:D.string(),input:D.record(D.string(),D.unknown()),_meta:D.record(D.string(),D.unknown()).optional()}),tm=D.object({type:D.literal(`resource`),resource:D.union([Cp,Tp]),annotations:Dp.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),nm=Op.extend({type:D.literal(`resource_link`)}),rm=D.union([Zp,Qp,$p,nm,tm]),im=D.object({role:Ep,content:rm}),am=Mf.extend({description:D.string().optional(),messages:D.array(im)}),om=jf.extend({method:D.literal(`notifications/prompts/list_changed`),params:Af.optional()}),sm=D.object({title:D.string().optional(),readOnlyHint:D.boolean().optional(),destructiveHint:D.boolean().optional(),idempotentHint:D.boolean().optional(),openWorldHint:D.boolean().optional()}),cm=D.object({taskSupport:D.enum([`required`,`optional`,`forbidden`]).optional()}),lm=D.object({...Wf.shape,...Uf.shape,description:D.string().optional(),inputSchema:D.object({type:D.literal(`object`),properties:D.record(D.string(),bf).optional(),required:D.array(D.string()).optional()}).catchall(D.unknown()),outputSchema:D.object({type:D.literal(`object`),properties:D.record(D.string(),bf).optional(),required:D.array(D.string()).optional()}).catchall(D.unknown()).optional(),annotations:sm.optional(),execution:cm.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),um=sp.extend({method:D.literal(`tools/list`)}),dm=cp.extend({tools:D.array(lm)}),fm=Mf.extend({content:D.array(rm).default([]),structuredContent:D.record(D.string(),D.unknown()).optional(),isError:D.boolean().optional()}),fm.or(Mf.extend({toolResult:D.unknown()})),pm=Of.extend({name:D.string(),arguments:D.record(D.string(),D.unknown()).optional()}),mm=kf.extend({method:D.literal(`tools/call`),params:pm}),hm=jf.extend({method:D.literal(`notifications/tools/list_changed`),params:Af.optional()}),D.object({autoRefresh:D.boolean().default(!0),debounceMs:D.number().int().nonnegative().default(300)}),gm=D.enum([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),_m=Df.extend({level:gm}),vm=kf.extend({method:D.literal(`logging/setLevel`),params:_m}),ym=Af.extend({level:gm,logger:D.string().optional(),data:D.unknown()}),bm=jf.extend({method:D.literal(`notifications/message`),params:ym}),xm=D.object({name:D.string().optional()}),Sm=D.object({hints:D.array(xm).optional(),costPriority:D.number().min(0).max(1).optional(),speedPriority:D.number().min(0).max(1).optional(),intelligencePriority:D.number().min(0).max(1).optional()}),Cm=D.object({mode:D.enum([`auto`,`required`,`none`]).optional()}),wm=D.object({type:D.literal(`tool_result`),toolUseId:D.string().describe(`The unique identifier for the corresponding tool call.`),content:D.array(rm).default([]),structuredContent:D.object({}).loose().optional(),isError:D.boolean().optional(),_meta:D.record(D.string(),D.unknown()).optional()}),Tm=D.discriminatedUnion(`type`,[Zp,Qp,$p]),Em=D.discriminatedUnion(`type`,[Zp,Qp,$p,em,wm]),Dm=D.object({role:Ep,content:D.union([Em,D.array(Em)]),_meta:D.record(D.string(),D.unknown()).optional()}),Om=Of.extend({messages:D.array(Dm),modelPreferences:Sm.optional(),systemPrompt:D.string().optional(),includeContext:D.enum([`none`,`thisServer`,`allServers`]).optional(),temperature:D.number().optional(),maxTokens:D.number().int(),stopSequences:D.array(D.string()).optional(),metadata:xf.optional(),tools:D.array(lm).optional(),toolChoice:Cm.optional()}),km=kf.extend({method:D.literal(`sampling/createMessage`),params:Om}),Am=Mf.extend({model:D.string(),stopReason:D.optional(D.enum([`endTurn`,`stopSequence`,`maxTokens`]).or(D.string())),role:Ep,content:Tm}),jm=Mf.extend({model:D.string(),stopReason:D.optional(D.enum([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(D.string())),role:Ep,content:D.union([Em,D.array(Em)])}),Mm=D.object({type:D.literal(`boolean`),title:D.string().optional(),description:D.string().optional(),default:D.boolean().optional()}),Nm=D.object({type:D.literal(`string`),title:D.string().optional(),description:D.string().optional(),minLength:D.number().optional(),maxLength:D.number().optional(),format:D.enum([`email`,`uri`,`date`,`date-time`]).optional(),default:D.string().optional()}),Pm=D.object({type:D.enum([`number`,`integer`]),title:D.string().optional(),description:D.string().optional(),minimum:D.number().optional(),maximum:D.number().optional(),default:D.number().optional()}),Fm=D.object({type:D.literal(`string`),title:D.string().optional(),description:D.string().optional(),enum:D.array(D.string()),default:D.string().optional()}),Im=D.object({type:D.literal(`string`),title:D.string().optional(),description:D.string().optional(),oneOf:D.array(D.object({const:D.string(),title:D.string()})),default:D.string().optional()}),Lm=D.object({type:D.literal(`string`),title:D.string().optional(),description:D.string().optional(),enum:D.array(D.string()),enumNames:D.array(D.string()).optional(),default:D.string().optional()}),Rm=D.union([Fm,Im]),zm=D.object({type:D.literal(`array`),title:D.string().optional(),description:D.string().optional(),minItems:D.number().optional(),maxItems:D.number().optional(),items:D.object({type:D.literal(`string`),enum:D.array(D.string())}),default:D.array(D.string()).optional()}),Bm=D.object({type:D.literal(`array`),title:D.string().optional(),description:D.string().optional(),minItems:D.number().optional(),maxItems:D.number().optional(),items:D.object({anyOf:D.array(D.object({const:D.string(),title:D.string()}))}),default:D.array(D.string()).optional()}),Vm=D.union([zm,Bm]),Hm=D.union([Lm,Rm,Vm]),Um=D.union([Hm,Mm,Nm,Pm]),Wm=Of.extend({mode:D.literal(`form`).optional(),message:D.string(),requestedSchema:D.object({type:D.literal(`object`),properties:D.record(D.string(),Um),required:D.array(D.string()).optional()})}),Gm=Of.extend({mode:D.literal(`url`),message:D.string(),elicitationId:D.string(),url:D.string().url()}),Km=D.union([Wm,Gm]),qm=kf.extend({method:D.literal(`elicitation/create`),params:Km}),Jm=Af.extend({elicitationId:D.string()}),Ym=jf.extend({method:D.literal(`notifications/elicitation/complete`),params:Jm}),Xm=Mf.extend({action:D.enum([`accept`,`decline`,`cancel`]),content:D.preprocess(e=>e===null?void 0:e,D.record(D.string(),D.union([D.string(),D.number(),D.boolean(),D.array(D.string())])).optional())}),Zm=D.object({type:D.literal(`ref/resource`),uri:D.string()}),Qm=D.object({type:D.literal(`ref/prompt`),name:D.string()}),$m=Df.extend({ref:D.union([Qm,Zm]),argument:D.object({name:D.string(),value:D.string()}),context:D.object({arguments:D.record(D.string(),D.string()).optional()}).optional()}),eh=kf.extend({method:D.literal(`completion/complete`),params:$m}),th=Mf.extend({completion:D.looseObject({values:D.array(D.string()).max(100),total:D.optional(D.number().int()),hasMore:D.optional(D.boolean())})}),nh=D.object({uri:D.string().startsWith(`file://`),name:D.string().optional(),_meta:D.record(D.string(),D.unknown()).optional()}),rh=kf.extend({method:D.literal(`roots/list`),params:Df.optional()}),ih=Mf.extend({roots:D.array(nh)}),ah=jf.extend({method:D.literal(`notifications/roots/list_changed`),params:Af.optional()}),oh=D.union([np,Qf,eh,vm,Xp,qp,Ap,Mp,Ip,Bp,Hp,mm,um,mp,gp,vp,bp]),sh=D.union([Vf,ap,tp,ah,pp]),D.union([zf,Am,jm,Xm,ih,hp,yp,dp]),ch=D.union([np,km,qm,rh,mp,gp,vp,bp]),lh=D.union([Vf,ap,bm,Wp,Rp,hm,om,pp,Ym]),D.union([zf,ep,th,am,Jp,jp,Np,Lp,fm,dm,hp,yp,dp]),uh={ping:zf,initialize:ep,"completion/complete":th,"logging/setLevel":zf,"prompts/get":am,"prompts/list":Jp,"resources/list":jp,"resources/templates/list":Np,"resources/read":Lp,"resources/subscribe":zf,"resources/unsubscribe":zf,"tools/call":D.union([fm,dp]),"tools/list":dm,"sampling/createMessage":D.union([jm,dp]),"elicitation/create":D.union([Xm,dp]),"roots/list":ih,"tasks/get":hp,"tasks/result":Mf,"tasks/list":yp,"tasks/cancel":xp},dh=xd([...oh.options,...ch.options]),fh=xd([...sh.options,...lh.options]),ph=e=>Pf.safeParse(e).success,mh=e=>Ff.safeParse(e).success,hh=e=>If.safeParse(e).success,gh=e=>Lf.safeParse(e).success,_h=e=>Of.safeParse(e).success,vh=e=>Qf.safeParse(e).success,yh=e=>tp.safeParse(e).success,bh=class{_taskStore;_taskMessageQueue;_taskProgressTokens=new Map;_requestResolvers=new Map;_options;_host;constructor(e){this._options=e,this._taskStore=e.taskStore,this._taskMessageQueue=e.taskMessageQueue}bind(e){this._host=e,this._taskStore&&(e.registerHandler(`tasks/get`,async(e,t)=>{let n=e.params;return{...await this.handleGetTask(n.taskId,t.sessionId)}}),e.registerHandler(`tasks/result`,async(t,n)=>{let r=t.params;return await this.handleGetTaskPayload(r.taskId,n.sessionId,n.mcpReq.signal,async t=>{await e.sendOnResponseStream(t,n.mcpReq.id)})}),e.registerHandler(`tasks/list`,async(e,t)=>{let n=e.params;return await this.handleListTasks(n?.cursor,t.sessionId)}),e.registerHandler(`tasks/cancel`,async(e,t)=>{let n=e.params;return await this.handleCancelTask(n.taskId,t.sessionId)}))}get _requireHost(){if(!this._host)throw new G(W.InternalError,`TaskManager is not bound to a Protocol host — call bind() first`);return this._host}get taskStore(){return this._taskStore}get _requireTaskStore(){if(!this._taskStore)throw new G(W.InternalError,`TaskStore is not configured`);return this._taskStore}get taskMessageQueue(){return this._taskMessageQueue}async*requestStream(e,t,n){let r=this._requireHost,{task:i}=n??{};if(!i){try{yield{type:`result`,result:await r.request(e,t,n)}}catch(e){yield{type:`error`,error:e instanceof Error?e:Error(String(e))}}return}let a;try{let i=await r.request(e,dp,n);if(i.task)a=i.task.taskId,yield{type:`taskCreated`,task:i.task};else throw new G(W.InternalError,`Task creation did not return a task`);for(;;){let e=await this.getTask({taskId:a},n);if(yield{type:`taskStatus`,task:e},Od(e.status)){switch(e.status){case`completed`:yield{type:`result`,result:await this.getTaskResult({taskId:a},t,n)};break;case`failed`:yield{type:`error`,error:new G(W.InternalError,`Task ${a} failed`)};break;case`cancelled`:yield{type:`error`,error:new G(W.InternalError,`Task ${a} was cancelled`)}}return}if(e.status===`input_required`){yield{type:`result`,result:await this.getTaskResult({taskId:a},t,n)};return}let r=e.pollInterval??this._options.defaultTaskPollInterval??1e3;await new Promise(e=>setTimeout(e,r)),n?.signal?.throwIfAborted()}}catch(e){yield{type:`error`,error:e instanceof Error?e:Error(String(e))}}}async getTask(e,t){return this._requireHost.request({method:`tasks/get`,params:e},hp,t)}async getTaskResult(e,t,n){return this._requireHost.request({method:`tasks/result`,params:e},t,n)}async listTasks(e,t){return this._requireHost.request({method:`tasks/list`,params:e},yp,t)}async cancelTask(e,t){return this._requireHost.request({method:`tasks/cancel`,params:e},xp,t)}async handleGetTask(e,t){let n=await this._requireTaskStore.getTask(e,t);if(!n)throw new G(W.InvalidParams,`Failed to retrieve task: Task not found`);return n}async handleGetTaskPayload(e,t,n,r){let i=async()=>{if(this._taskMessageQueue){let n;for(;n=await this._taskMessageQueue.dequeue(e,t);){if(n.type===`response`||n.type===`error`){let e=n.message,t=e.id,r=this._requestResolvers.get(t);if(r){if(this._requestResolvers.delete(t),n.type===`response`)r(e);else{let t=e;r(new G(t.error.code,t.error.message,t.error.data))}}else{let e=n.type===`response`?`Response`:`Error`;this._host?.reportError(Error(`${e} handler missing for request ${t}`))}continue}await r(n.message)}}let a=await this._requireTaskStore.getTask(e,t);if(!a)throw new G(W.InvalidParams,`Task not found: ${e}`);if(!Od(a.status))return await this._waitForTaskUpdate(a.pollInterval,n),await i();let o=await this._requireTaskStore.getTaskResult(e,t);return await this._clearTaskQueue(e),{...o,_meta:{...o._meta,[pf]:{taskId:e}}}};return await i()}async handleListTasks(e,t){try{let{tasks:n,nextCursor:r}=await this._requireTaskStore.listTasks(e,t);return{tasks:n,nextCursor:r,_meta:{}}}catch(e){throw new G(W.InvalidParams,`Failed to list tasks: ${e instanceof Error?e.message:String(e)}`)}}async handleCancelTask(e,t){try{let n=await this._requireTaskStore.getTask(e,t);if(!n)throw new G(W.InvalidParams,`Task not found: ${e}`);if(Od(n.status))throw new G(W.InvalidParams,`Cannot cancel task in terminal status: ${n.status}`);await this._requireTaskStore.updateTaskStatus(e,`cancelled`,`Client cancelled task execution.`,t),await this._clearTaskQueue(e);let r=await this._requireTaskStore.getTask(e,t);if(!r)throw new G(W.InvalidParams,`Task not found after cancellation: ${e}`);return{_meta:{},...r}}catch(e){throw e instanceof G?e:new G(W.InvalidRequest,`Failed to cancel task: ${e instanceof Error?e.message:String(e)}`)}}prepareOutboundRequest(e,t,n,r,i){let{task:a,relatedTask:o}=t??{};a&&(e.params={...e.params,task:a}),o&&(e.params={...e.params,_meta:{...e.params?._meta,[pf]:o}});let s=o?.taskId;return s?(this._requestResolvers.set(n,r),this._enqueueTaskMessage(s,{type:`request`,message:e,timestamp:Date.now()}).catch(e=>{i(e)}),!0):!1}extractInboundTaskContext(e,t){let n=(e.params?._meta)?.[pf]?.taskId,r=_h(e.params)?e.params.task:void 0,i;return this._taskStore&&(i={id:n,store:this.createRequestTaskStore(e,t),requestedTtl:r?.ttl}),!n&&!r&&!i?{}:{relatedTaskId:n,taskCreationParams:r,taskContext:i}}wrapSendNotification(e,t){return async n=>{await t(n,{relatedTask:{taskId:e}})}}wrapSendRequest(e,t,n){return async(r,i,a)=>{let o={...a};e&&!o.relatedTask&&(o.relatedTask={taskId:e});let s=o.relatedTask?.taskId??e;return s&&t&&await t.updateTaskStatus(s,`input_required`),await n(r,i,o)}}handleResponse(e){let t=Number(e.id),n=this._requestResolvers.get(t);return n?(this._requestResolvers.delete(t),hh(e)?n(e):n(new G(e.error.code,e.error.message,e.error.data)),!0):!1}shouldPreserveProgressHandler(e,t){if(hh(e)&&e.result&&typeof e.result==`object`){let n=e.result;if(n.task&&typeof n.task==`object`){let e=n.task;if(typeof e.taskId==`string`)return this._taskProgressTokens.set(e.taskId,t),!0}}return!1}async routeNotification(e,t){let n=t?.relatedTask?.taskId;if(!n)return!1;let r={...e,jsonrpc:`2.0`,params:{...e.params,_meta:{...e.params?._meta,[pf]:t.relatedTask}}};return await this._enqueueTaskMessage(n,{type:`notification`,message:r,timestamp:Date.now()}),!0}async routeResponse(e,t,n){return!e||!this._taskMessageQueue?!1:(await(gh(t)?this._enqueueTaskMessage(e,{type:`error`,message:t,timestamp:Date.now()},n):this._enqueueTaskMessage(e,{type:`response`,message:t,timestamp:Date.now()},n)),!0)}createRequestTaskStore(e,t){let n=this._requireTaskStore,r=this._host;return{createTask:async r=>{if(!e)throw Error(`No request provided`);return await n.createTask(r,e.id,{method:e.method,params:e.params},t)},getTask:async e=>{let r=await n.getTask(e,t);if(!r)throw new G(W.InvalidParams,`Failed to retrieve task: Task not found`);return r},storeTaskResult:async(e,i,a)=>{await n.storeTaskResult(e,i,a,t);let o=await n.getTask(e,t);if(o){let t=pp.parse({method:`notifications/tasks/status`,params:o});await r?.notification(t),Od(o.status)&&this._cleanupTaskProgressHandler(e)}},getTaskResult:e=>n.getTaskResult(e,t),updateTaskStatus:async(e,i,a)=>{let o=await n.getTask(e,t);if(!o)throw new G(W.InvalidParams,`Task "${e}" not found - it may have been cleaned up`);if(Od(o.status))throw new G(W.InvalidParams,`Cannot update task "${e}" from terminal status "${o.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(e,i,a,t);let s=await n.getTask(e,t);if(s){let t=pp.parse({method:`notifications/tasks/status`,params:s});await r?.notification(t),Od(s.status)&&this._cleanupTaskProgressHandler(e)}},listTasks:e=>n.listTasks(e,t)}}processInboundRequest(e,t){let n=this.extractInboundTaskContext(e,t.sessionId),r=n?.relatedTaskId,i=r?this.wrapSendNotification(r,t.sendNotification):e=>t.sendNotification(e),a=r?this.wrapSendRequest(r,n?.taskContext?.store,t.sendRequest):n?.taskContext?this.wrapSendRequest(``,n.taskContext.store,t.sendRequest):t.sendRequest,o=!!n?.taskCreationParams;return{taskContext:n?.taskContext,sendNotification:i,sendRequest:a,routeResponse:async e=>r?this.routeResponse(r,e,t.sessionId):!1,hasTaskCreationParams:o,validateInbound:o?()=>this._requireHost.assertTaskHandlerCapability(e.method):void 0}}processOutboundRequest(e,t,n,r,i){return this._requireHost.enforceStrictCapabilities&&t?.task&&this._requireHost.assertTaskCapability(e.method),{queued:this.prepareOutboundRequest(e,t,n,r,i)}}processInboundResponse(e,t){return this.handleResponse(e)?{consumed:!0,preserveProgress:!1}:{consumed:!1,preserveProgress:this.shouldPreserveProgressHandler(e,t)}}async processOutboundNotification(e,t){if(await this.routeNotification(e,t))return{queued:!0};let n={...e,jsonrpc:`2.0`};return t?.relatedTask&&(n={...n,params:{...n.params,_meta:{...n.params?._meta,[pf]:t.relatedTask}}}),{queued:!1,jsonrpcNotification:n}}onClose(){this._taskProgressTokens.clear(),this._requestResolvers.clear()}async _enqueueTaskMessage(e,t,n){if(!this._taskStore||!this._taskMessageQueue)throw Error(`Cannot enqueue task message: taskStore and taskMessageQueue are not configured`);await this._taskMessageQueue.enqueue(e,t,n,this._options.maxTaskQueueSize)}async _clearTaskQueue(e,t){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,t);for(let t of n)if(t.type===`request`&&ph(t.message)){let n=t.message.id,r=this._requestResolvers.get(n);r?(r(new G(W.InternalError,`Task cancelled or completed`)),this._requestResolvers.delete(n)):this._host?.reportError(Error(`Resolver missing for request ${n} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,t){let n=e??this._options.defaultTaskPollInterval??1e3;return new Promise((e,r)=>{if(t.aborted){r(new G(W.InvalidRequest,`Request cancelled`));return}let i=setTimeout(e,n);t.addEventListener(`abort`,()=>{clearTimeout(i),r(new G(W.InvalidRequest,`Request cancelled`))},{once:!0})})}_cleanupTaskProgressHandler(e){let t=this._taskProgressTokens.get(e);t!==void 0&&(this._host?.removeProgressHandler(t),this._taskProgressTokens.delete(e))}},xh=class extends bh{constructor(){super({})}processInboundRequest(e,t){let n=_h(e.params)&&!!e.params.task;return{taskContext:void 0,sendNotification:e=>t.sendNotification(e),sendRequest:t.sendRequest,routeResponse:async()=>!1,hasTaskCreationParams:n,validateInbound:n?()=>this._requireHost.assertTaskHandlerCapability(e.method):void 0}}async processOutboundNotification(e,t){return{queued:!1,jsonrpcNotification:{...e,jsonrpc:`2.0`}}}},Sh=6e4,Ch=class{_transport;_requestMessageId=0;_requestHandlers=new Map;_requestHandlerAbortControllers=new Map;_notificationHandlers=new Map;_responseHandlers=new Map;_progressHandlers=new Map;_timeoutInfo=new Map;_pendingDebouncedNotifications=new Set;_taskManager;_supportedProtocolVersions;onclose;onerror;fallbackRequestHandler;fallbackNotificationHandler;constructor(e){this._options=e,this._supportedProtocolVersions=e?.supportedProtocolVersions??ff,this._taskManager=e?.tasks?new bh(e.tasks):new xh,this._bindTaskManager(),this.setNotificationHandler(`notifications/cancelled`,e=>{this._oncancel(e)}),this.setNotificationHandler(`notifications/progress`,e=>{this._onprogress(e)}),this.setRequestHandler(`ping`,e=>({}))}get taskManager(){return this._taskManager}_bindTaskManager(){let e=this._taskManager,t={request:(e,t,n)=>this._requestWithSchema(e,t,n),notification:(e,t)=>this.notification(e,t),reportError:e=>this._onerror(e),removeProgressHandler:e=>this._progressHandlers.delete(e),registerHandler:(e,t)=>{let n=Sd(e);this._requestHandlers.set(e,(e,r)=>(n.parse(e),t(e,r)))},sendOnResponseStream:async(e,t)=>{await this._transport?.send(e,{relatedRequestId:t})},enforceStrictCapabilities:this._options?.enforceStrictCapabilities===!0,assertTaskCapability:e=>this.assertTaskCapability(e),assertTaskHandlerCapability:e=>this.assertTaskHandlerCapability(e)};e.bind(t)}async _oncancel(e){e.params.requestId&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,n,r,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(r,t),startTime:Date.now(),timeout:t,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let n=Date.now()-t.startTime;if(t.maxTotalTimeout&&n>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),new U(H.RequestTimeout,`Maximum total timeout exceeded`,{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:n});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{try{t?.()}finally{this._onclose()}};let n=this.transport?.onerror;this._transport.onerror=e=>{n?.(e),this._onerror(e)};let r=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{r?.(e,t),hh(e)||gh(e)?this._onresponse(e):ph(e)?this._onrequest(e,t):mh(e)?this._onnotification(e):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},e.setSupportedProtocolVersions?.(this._supportedProtocolVersions),await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskManager.onClose(),this._pendingDebouncedNotifications.clear();for(let e of this._timeoutInfo.values())clearTimeout(e.timeoutId);this._timeoutInfo.clear();let t=this._requestHandlerAbortControllers;this._requestHandlerAbortControllers=new Map;let n=new U(H.ConnectionClosed,`Connection closed`);this._transport=void 0;try{this.onclose?.()}finally{for(let t of e.values())t(n);for(let e of t.values())e.abort(n)}}_onerror(e){this.onerror?.(e)}_onnotification(e){let t=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;t!==void 0&&Promise.resolve().then(()=>t(e)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,r=this._transport,i={sessionId:r?.sessionId,sendNotification:(t,n)=>this.notification(t,{...n,relatedRequestId:e.id}),sendRequest:(t,n,r)=>this._requestWithSchema(t,n,{...r,relatedRequestId:e.id})},a=this._taskManager.processInboundRequest(e,i),o=a.sendNotification,s=a.sendRequest,c=a.taskContext,l=a.routeResponse,u=[];if(a.validateInbound&&u.push(a.validateInbound),n===void 0){let t={jsonrpc:`2.0`,id:e.id,error:{code:W.MethodNotFound,message:`Method not found`}};l(t).then(e=>{e||r?.send(t).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)))}).catch(e=>this._onerror(Error(`Failed to enqueue error response: ${e}`)));return}let d=new AbortController;this._requestHandlerAbortControllers.set(e.id,d);let f={sessionId:r?.sessionId,mcpReq:{id:e.id,method:e.method,_meta:e.params?._meta,signal:d.signal,send:(e,t)=>s(e,bd(e.method),t),notify:o},http:t?.authInfo?{authInfo:t.authInfo}:void 0,task:c},p=this.buildContext(f,t);Promise.resolve().then(()=>{for(let e of u)e()}).then(()=>n(e,p)).then(async t=>{if(d.signal.aborted)return;let n={result:t,jsonrpc:`2.0`,id:e.id};await l(n)||await r?.send(n)},async t=>{if(d.signal.aborted)return;let n={jsonrpc:`2.0`,id:e.id,error:{code:Number.isSafeInteger(t.code)?t.code:W.InternalError,message:t.message??`Internal error`,...t.data!==void 0&&{data:t.data}}};await l(n)||await r?.send(n)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===d&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:t,...n}=e.params,r=Number(t),i=this._progressHandlers.get(r);if(!i){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(r),o=this._timeoutInfo.get(r);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(e){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(e);return}i(n)}_onresponse(e){let t=Number(e.id),n=this._taskManager.processInboundResponse(e,t);if(n.consumed)return;let r=n.preserveProgress,i=this._responseHandlers.get(t);if(i===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(t),this._cleanupTimeout(t),r||this._progressHandlers.delete(t),hh(e)?i(e):i(G.fromError(e.error.code,e.error.message,e.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}request(e,t){let n=bd(e.method);return this._requestWithSchema(e,n,t)}_requestWithSchema(e,t,n){let{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}=n??{},o,s;return new Promise((c,l)=>{let u=e=>{l(e)};if(!this._transport){u(Error(`Not connected`));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method)}catch(e){u(e);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++;s=d;let f={...e,jsonrpc:`2.0`,id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta,progressToken:d}});let p=e=>{this._progressHandlers.delete(d),this._transport?.send({jsonrpc:`2.0`,method:`notifications/cancelled`,params:{requestId:d,reason:String(e)}},{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))),l(e instanceof U?e:new U(H.RequestTimeout,String(e)))};this._responseHandlers.set(d,e=>{if(!n?.signal?.aborted){if(e instanceof Error)return l(e);try{let n=Dd(t,e.result);n.success?c(n.data):l(n.error)}catch(e){l(e)}}}),o=()=>p(n?.signal?.reason),n?.signal?.addEventListener(`abort`,o,{once:!0});let m=n?.timeout??6e4;this._setupTimeout(d,m,n?.maxTotalTimeout,()=>p(new U(H.RequestTimeout,`Request timed out`,{timeout:m})),n?.resetTimeoutOnProgress??!1);let h=e=>{let t=this._responseHandlers.get(d);t?t(e):this._onerror(Error(`Response handler missing for side-channeled request ${d}`))},g=!1;try{this._taskManager.processOutboundRequest(f,n,d,h,e=>{this._progressHandlers.delete(d),l(e)}).queued&&(g=!0)}catch(e){this._progressHandlers.delete(d),l(e);return}g||this._transport.send(f,{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>{this._progressHandlers.delete(d),l(e)})}).finally(()=>{o&&n?.signal?.removeEventListener(`abort`,o),s!==void 0&&(this._responseHandlers.delete(s),this._cleanupTimeout(s))})}async notification(e,t){if(!this._transport)throw new U(H.NotConnected,`Not connected`);this.assertNotificationCapability(e.method);let n=await this._taskManager.processOutboundNotification(e,t),r=n.queued,i=n.queued?void 0:n.jsonrpcNotification;if(!r){if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!t?.relatedRequestId&&!t?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{this._pendingDebouncedNotifications.delete(e.method),this._transport&&this._transport?.send(i,t).catch(e=>this._onerror(e))});return}await this._transport.send(i,t)}}setRequestHandler(e,t){this.assertRequestHandlerCapability(e);let n=Sd(e);this._requestHandlers.set(e,(e,r)=>{let i=n.parse(e);return Promise.resolve(t(i,r))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t){let n=Cd(e);this._notificationHandlers.set(e,e=>{let r=n.parse(e);return Promise.resolve(t(r))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}},wh=class{_buffer;append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){for(;this._buffer;){let e=this._buffer.indexOf(`
176
- `);if(e===-1)return null;let t=this._buffer.toString(`utf8`,0,e).replace(/\r$/,``);this._buffer=this._buffer.subarray(e+1);try{return Pd(t)}catch(e){if(e instanceof SyntaxError)continue;throw e}}return null}clear(){this._buffer=void 0}},Th=/^[A-Za-z0-9._-]{1,128}$/,Eh=1e6,Dh=1e6,Oh=1e4,kh=1e6,Ah=class e{static isTemplate(e){return/\{[^}\s]+\}/.test(e)}static validateLength(e,t,n){if(e.length>t)throw Error(`${n} exceeds maximum length of ${t} characters (got ${e.length})`)}template;parts;get variableNames(){return this.parts.flatMap(e=>typeof e==`string`?[]:e.names)}constructor(t){e.validateLength(t,Eh,`Template`),this.template=t,this.parts=this.parse(t)}toString(){return this.template}parse(t){let n=[],r=``,i=0,a=0;for(;i<t.length;)if(t[i]===`{`){r&&=(n.push(r),``);let o=t.indexOf(`}`,i);if(o===-1)throw Error(`Unclosed template expression`);if(a++,a>Oh)throw Error(`Template contains too many expressions (max ${Oh})`);let s=t.slice(i+1,o),c=this.getOperator(s),l=s.includes(`*`),u=this.getNames(s),d=u[0];for(let t of u)e.validateLength(t,Dh,`Variable name`);n.push({name:d,operator:c,names:u,exploded:l}),i=o+1}else r+=t[i],i++;return r&&n.push(r),n}getOperator(e){return[`+`,`#`,`.`,`/`,`?`,`&`].find(t=>e.startsWith(t))||``}getNames(e){let t=this.getOperator(e);return e.slice(t.length).split(`,`).map(e=>e.replace(`*`,``).trim()).filter(e=>e.length>0)}encodeValue(t,n){return e.validateLength(t,Dh,`Variable value`),n===`+`||n===`#`?encodeURI(t):encodeURIComponent(t)}expandPart(e,t){if(e.operator===`?`||e.operator===`&`){let n=e.names.map(n=>{let r=t[n];return r===void 0?``:`${n}=${Array.isArray(r)?r.map(t=>this.encodeValue(t,e.operator)).join(`,`):this.encodeValue(r.toString(),e.operator)}`}).filter(e=>e.length>0);return n.length===0?``:(e.operator===`?`?`?`:`&`)+n.join(`&`)}if(e.names.length>1){let n=e.names.map(e=>t[e]).filter(e=>e!==void 0);return n.length===0?``:n.map(e=>Array.isArray(e)?e[0]:e).join(`,`)}let n=t[e.name];if(n===void 0)return``;let r=(Array.isArray(n)?n:[n]).map(t=>this.encodeValue(t,e.operator));switch(e.operator){case``:return r.join(`,`);case`+`:return r.join(`,`);case`#`:return`#`+r.join(`,`);case`.`:return`.`+r.join(`.`);case`/`:return`/`+r.join(`/`);default:return r.join(`,`)}}expand(e){let t=``,n=!1;for(let r of this.parts){if(typeof r==`string`){t+=r;continue}let i=this.expandPart(r,e);i&&(t+=(r.operator===`?`||r.operator===`&`)&&n?i.replace(`?`,`&`):i,(r.operator===`?`||r.operator===`&`)&&(n=!0))}return t}escapeRegExp(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)}partToRegExp(t){let n=[];for(let n of t.names)e.validateLength(n,Dh,`Variable name`);if(t.operator===`?`||t.operator===`&`){for(let e=0;e<t.names.length;e++){let r=t.names[e],i=e===0?`\\`+t.operator:`&`;n.push({pattern:i+this.escapeRegExp(r)+`=([^&]+)`,name:r})}return n}let r,i=t.name;switch(t.operator){case``:r=t.exploded?`([^/,]+(?:,[^/,]+)*)`:`([^/,]+)`;break;case`+`:case`#`:r=`(.+)`;break;case`.`:r=String.raw`\.([^/,]+)`;break;case`/`:r=`/`+(t.exploded?`([^/,]+(?:,[^/,]+)*)`:`([^/,]+)`);break;default:r=`([^/]+)`}return n.push({pattern:r,name:i}),n}match(t){e.validateLength(t,Eh,`URI`);let n=`^`,r=[];for(let e of this.parts)if(typeof e==`string`)n+=this.escapeRegExp(e);else{let t=this.partToRegExp(e);for(let{pattern:i,name:a}of t)n+=i,r.push({name:a,exploded:e.exploded})}n+=`$`,e.validateLength(n,kh,`Generated regex pattern`);let i=new RegExp(n),a=t.match(i);if(!a)return null;let o={};for(let[e,t]of r.entries()){let{name:n,exploded:r}=t,i=a[e+1],s=n.replace(`*`,``);o[s]=r&&i.includes(`,`)?i.split(`,`):i}return o}},jh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;var t=class{};e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var n=class extends t{constructor(t){if(super(),!e.IDENTIFIER.test(t))throw Error(`CodeGen: name must be a valid identifier`);this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};e.Name=n;var r=class extends t{constructor(e){super(),this._items=typeof e==`string`?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===``||e===`""`}get str(){return this._str??=this._items.reduce((e,t)=>`${e}${t}`,``)}get names(){return this._names??=this._items.reduce((e,t)=>(t instanceof n&&(e[t.str]=(e[t.str]||0)+1),e),{})}};e._Code=r,e.nil=new r(``);function i(e,...t){let n=[e[0]],i=0;for(;i<t.length;)s(n,t[i]),n.push(e[++i]);return new r(n)}e._=i;let a=new r(`+`);function o(e,...t){let n=[p(e[0])],i=0;for(;i<t.length;)n.push(a),s(n,t[i]),n.push(a,p(e[++i]));return c(n),new r(n)}e.str=o;function s(e,t){t instanceof r?e.push(...t._items):t instanceof n?e.push(t):e.push(d(t))}e.addCodeArg=s;function c(e){let t=1;for(;t<e.length-1;){if(e[t]===a){let n=l(e[t-1],e[t+1]);if(n!==void 0){e.splice(t-1,3,n);continue}e[t++]=`+`}t++}}function l(e,t){if(t===`""`)return e;if(e===`""`)return t;if(typeof e==`string`)return t instanceof n||e[e.length-1]!==`"`?void 0:typeof t==`string`?t[0]===`"`?e.slice(0,-1)+t.slice(1):void 0:`${e.slice(0,-1)}${t}"`;if(typeof t==`string`&&t[0]===`"`&&!(e instanceof n))return`"${e}${t.slice(1)}`}function u(e,t){return t.emptyStr()?e:e.emptyStr()?t:o`${e}${t}`}e.strConcat=u;function d(e){return typeof e==`number`||typeof e==`boolean`||e===null?e:p(Array.isArray(e)?e.join(`,`):e)}function f(e){return new r(p(e))}e.stringify=f;function p(e){return JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}e.safeStringify=p;function m(t){return typeof t==`string`&&e.IDENTIFIER.test(t)?new r(`.${t}`):i`[${t}]`}e.getProperty=m;function h(t){if(typeof t==`string`&&e.IDENTIFIER.test(t))return new r(`${t}`);throw Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}e.getEsmExportName=h;function g(e){return new r(e.toString())}e.regexpCode=g})),Mh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;let t=jh();var n=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},r;(function(e){e[e.Started=0]=`Started`,e[e.Completed=1]=`Completed`})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name(`const`),let:new t.Name(`let`),var:new t.Name(`var`)};var i=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof t.Name?e:this.name(e)}name(e){return new t.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){if((this._parent?._prefixes)?.has(e)||this._prefixes&&!this._prefixes.has(e))throw Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};e.Scope=i;var a=class extends t.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:n,itemIndex:r}){this.value=e,this.scopePath=(0,t._)`.${new t.Name(n)}[${r}]`}};e.ValueScopeName=a;let o=(0,t._)`\n`;e.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?o:t.nil}}get(){return this._scope}name(e){return new a(e,this._newName(e))}value(e,t){if(t.ref===void 0)throw Error(`CodeGen: ref must be passed in value`);let n=this.toName(e),{prefix:r}=n,i=t.key??t.ref,a=this._values[r];if(a){let e=a.get(i);if(e)return e}else a=this._values[r]=new Map;a.set(i,n);let o=this._scope[r]||(this._scope[r]=[]),s=o.length;return o[s]=t.ref,n.setValue(t,{property:r,itemIndex:s}),n}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,n=this._values){return this._reduceValues(n,n=>{if(n.scopePath===void 0)throw Error(`CodeGen: name "${n}" has no value`);return(0,t._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,e=>{if(e.value===void 0)throw Error(`CodeGen: name "${e}" has no value`);return e.value.code},t,n)}_reduceValues(i,a,o={},s){let c=t.nil;for(let l in i){let u=i[l];if(!u)continue;let d=o[l]=o[l]||new Map;u.forEach(i=>{if(d.has(i))return;d.set(i,r.Started);let o=a(i);if(o){let n=this.opts.es5?e.varKinds.var:e.varKinds.const;c=(0,t._)`${c}${n} ${i} = ${o};${this.opts._n}`}else if(o=s?.(i))c=(0,t._)`${c}${o}${this.opts._n}`;else throw new n(i);d.set(i,r.Completed)})}return c}}})),K=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;let t=jh(),n=Mh();var r=jh();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}});var i=Mh();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(`>`),GTE:new t._Code(`>=`),LT:new t._Code(`<`),LTE:new t._Code(`<=`),EQ:new t._Code(`===`),NEQ:new t._Code(`!==`),NOT:new t._Code(`!`),OR:new t._Code(`||`),AND:new t._Code(`&&`),ADD:new t._Code(`+`)};var a=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},o=class extends a{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let r=e?n.varKinds.var:this.varKind,i=this.rhs===void 0?``:` = ${this.rhs}`;return`${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&=k(this.rhs,e,t),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}},s=class extends a{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,n){if(!(this.lhs instanceof t.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=k(this.rhs,e,n),this}get names(){return O(this.lhs instanceof t.Name?{}:{...this.lhs.names},this.rhs)}},c=class extends s{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},l=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},u=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:``};`+e}},d=class extends a{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},f=class extends a{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=k(this.code,e,t),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}},p=class extends a{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),``)}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,r=n.length;for(;r--;){let i=n[r];i.optimizeNames(e,t)||(A(e,i.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>D(e,t.names),{})}},m=class extends p{render(e){return`{`+e._n+super.render(e)+`}`+e._n}},h=class extends p{},g=class extends m{};g.kind=`else`;var _=class e extends m{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+=`else `+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let e=n.optimizeNodes();n=this.else=Array.isArray(e)?new g(e):e}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(ee(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(e,t){if(this.else=this.else?.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=k(this.condition,e,t),this}get names(){let e=super.names;return O(e,this.condition),this.else&&D(e,this.else.names),e}};_.kind=`if`;var v=class extends m{};v.kind=`for`;var y=class extends v{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=k(this.iteration,e,t),this}get names(){return D(super.names,this.iteration.names)}},b=class extends v{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){let t=e.es5?n.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return`for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){return O(O(super.names,this.from),this.to)}},x=class extends v{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=k(this.iterable,e,t),this}get names(){return D(super.names,this.iterable.names)}},S=class extends m{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?`async `:``}function ${this.name}(${this.args})`+super.render(e)}};S.kind=`func`;var C=class extends p{render(e){return`return `+super.render(e)}};C.kind=`return`;var w=class extends m{render(e){let t=`try`+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)==null||e.optimizeNodes(),(t=this.finally)==null||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),(n=this.catch)==null||n.optimizeNames(e,t),(r=this.finally)==null||r.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&D(e,this.catch.names),this.finally&&D(e,this.finally.names),e}},T=class extends m{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};T.kind=`catch`;var E=class extends m{render(e){return`finally`+super.render(e)}};E.kind=`finally`,e.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
177
- `:``},this._extScope=e,this._scope=new n.Scope({parent:e}),this._nodes=[new h]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let n=this._extScope.value(e,t);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,n,r){let i=this._scope.toName(t);return n!==void 0&&r&&(this._constants[i.str]=n),this._leafNode(new o(e,i,n)),i}const(e,t,r){return this._def(n.varKinds.const,e,t,r)}let(e,t,r){return this._def(n.varKinds.let,e,t,r)}var(e,t,r){return this._def(n.varKinds.var,e,t,r)}assign(e,t,n){return this._leafNode(new s(e,t,n))}add(t,n){return this._leafNode(new c(t,e.operators.ADD,n))}code(e){return typeof e==`function`?e():e!==t.nil&&this._leafNode(new f(e)),this}object(...e){let n=[`{`];for(let[r,i]of e)n.length>1&&n.push(`,`),n.push(r),(r!==i||this.opts.es5)&&(n.push(`:`),(0,t.addCodeArg)(n,i));return n.push(`}`),new t._Code(n)}if(e,t,n){if(this._blockNode(new _(e)),t&&n)this.code(t).else().code(n).endIf();else if(t)this.code(t).endIf();else if(n)throw Error(`CodeGen: "else" body without "then" body`);return this}elseIf(e){return this._elseNode(new _(e))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(_,g)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new y(e),t)}forRange(e,t,r,i,a=this.opts.es5?n.varKinds.var:n.varKinds.let){let o=this._scope.toName(e);return this._for(new b(a,o,t,r),()=>i(o))}forOf(e,r,i,a=n.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let e=r instanceof t.Name?r:this.var(`_arr`,r);return this.forRange(`_i`,0,(0,t._)`${e}.length`,n=>{this.var(o,(0,t._)`${e}[${n}]`),i(o)})}return this._for(new x(`of`,a,o,r),()=>i(o))}forIn(e,r,i,a=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,t._)`Object.keys(${r})`,i);let o=this._scope.toName(e);return this._for(new x(`in`,a,o,r),()=>i(o))}endFor(){return this._endBlockNode(v)}label(e){return this._leafNode(new l(e))}break(e){return this._leafNode(new u(e))}return(e){let t=new C;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw Error(`CodeGen: "return" should have one node`);return this._endBlockNode(C)}try(e,t,n){if(!t&&!n)throw Error(`CodeGen: "try" without "catch" and "finally"`);let r=new w;if(this._blockNode(r),this.code(e),t){let e=this.name(`e`);this._currNode=r.catch=new T(e),t(e)}return n&&(this._currNode=r.finally=new E,this.code(n)),this._endBlockNode(T,E)}throw(e){return this._leafNode(new d(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw Error(`CodeGen: not in self-balancing block`);let n=this._nodes.length-t;if(n<0||e!==void 0&&n!==e)throw Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=t,this}func(e,n=t.nil,r,i){return this._blockNode(new S(e,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(e=1){for(;e-->0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){let n=this._currNode;if(n instanceof e||t&&n instanceof t)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof _))throw Error(`CodeGen: "else" without "if"`);return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e}};function D(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function O(e,n){return n instanceof t._CodeOrName?D(e,n.names):e}function k(e,n,r){if(e instanceof t.Name)return i(e);if(!a(e))return e;return new t._Code(e._items.reduce((e,n)=>(n instanceof t.Name&&(n=i(n)),n instanceof t._Code?e.push(...n._items):e.push(n),e),[]));function i(e){let t=r[e.str];return t===void 0||n[e.str]!==1?e:(delete n[e.str],t)}function a(e){return e instanceof t._Code&&e._items.some(e=>e instanceof t.Name&&n[e.str]===1&&r[e.str]!==void 0)}}function A(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function ee(e){return typeof e==`boolean`||typeof e==`number`||e===null?!e:(0,t._)`!${re(e)}`}e.not=ee;let j=ne(e.operators.AND);function te(...e){return e.reduce(j)}e.and=te;let M=ne(e.operators.OR);function N(...e){return e.reduce(M)}e.or=N;function ne(e){return(n,r)=>n===t.nil?r:r===t.nil?n:(0,t._)`${re(n)} ${e} ${re(r)}`}function re(e){return e instanceof t.Name?e:(0,t._)`(${e})`}})),q=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;let t=K(),n=jh();function r(e){let t={};for(let n of e)t[n]=!0;return t}e.toHash=r;function i(e,t){return typeof t==`boolean`?t:Object.keys(t).length===0||(a(e,t),!o(t,e.self.RULES.all))}e.alwaysValidSchema=i;function a(e,t=e.schema){let{opts:n,self:r}=e;if(!n.strictSchema||typeof t==`boolean`)return;let i=r.RULES.keywords;for(let n in t)i[n]||x(e,`unknown keyword: "${n}"`)}e.checkUnknownRules=a;function o(e,t){if(typeof e==`boolean`)return!e;for(let n in e)if(t[n])return!0;return!1}e.schemaHasRules=o;function s(e,t){if(typeof e==`boolean`)return!e;for(let n in e)if(n!==`$ref`&&t.all[n])return!0;return!1}e.schemaHasRulesButRef=s;function c({topSchemaRef:e,schemaPath:n},r,i,a){if(!a){if(typeof r==`number`||typeof r==`boolean`)return r;if(typeof r==`string`)return(0,t._)`${r}`}return(0,t._)`${e}${n}${(0,t.getProperty)(i)}`}e.schemaRefOrVal=c;function l(e){return f(decodeURIComponent(e))}e.unescapeFragment=l;function u(e){return encodeURIComponent(d(e))}e.escapeFragment=u;function d(e){return typeof e==`number`?`${e}`:e.replace(/~/g,`~0`).replace(/\//g,`~1`)}e.escapeJsonPointer=d;function f(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}e.unescapeJsonPointer=f;function p(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}e.eachItem=p;function m({mergeNames:e,mergeToName:n,mergeValues:r,resultToName:i}){return(a,o,s,c)=>{let l=s===void 0?o:s instanceof t.Name?(o instanceof t.Name?e(a,o,s):n(a,o,s),s):o instanceof t.Name?(n(a,s,o),o):r(o,s);return c===t.Name&&!(l instanceof t.Name)?i(a,l):l}}e.mergeEvaluated={props:m({mergeNames:(e,n,r)=>e.if((0,t._)`${r} !== true && ${n} !== undefined`,()=>{e.if((0,t._)`${n} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,t._)`${r} || {}`).code((0,t._)`Object.assign(${r}, ${n})`))}),mergeToName:(e,n,r)=>e.if((0,t._)`${r} !== true`,()=>{n===!0?e.assign(r,!0):(e.assign(r,(0,t._)`${r} || {}`),g(e,r,n))}),mergeValues:(e,t)=>e===!0||{...e,...t},resultToName:h}),items:m({mergeNames:(e,n,r)=>e.if((0,t._)`${r} !== true && ${n} !== undefined`,()=>e.assign(r,(0,t._)`${n} === true ? true : ${r} > ${n} ? ${r} : ${n}`)),mergeToName:(e,n,r)=>e.if((0,t._)`${r} !== true`,()=>e.assign(r,n===!0||(0,t._)`${r} > ${n} ? ${r} : ${n}`)),mergeValues:(e,t)=>e===!0||Math.max(e,t),resultToName:(e,t)=>e.var(`items`,t)})};function h(e,n){if(n===!0)return e.var(`props`,!0);let r=e.var(`props`,(0,t._)`{}`);return n!==void 0&&g(e,r,n),r}e.evaluatedPropsToName=h;function g(e,n,r){Object.keys(r).forEach(r=>e.assign((0,t._)`${n}${(0,t.getProperty)(r)}`,!0))}e.setEvaluated=g;let _={};function v(e,t){return e.scopeValue(`func`,{ref:t,code:_[t.code]||(_[t.code]=new n._Code(t.code))})}e.useFunc=v;var y;(function(e){e[e.Num=0]=`Num`,e[e.Str=1]=`Str`})(y||(e.Type=y={}));function b(e,n,r){if(e instanceof t.Name){let i=n===y.Num;return r?i?(0,t._)`"[" + ${e} + "]"`:(0,t._)`"['" + ${e} + "']"`:i?(0,t._)`"/" + ${e}`:(0,t._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,t.getProperty)(e).toString():`/`+d(e)}e.getErrorPath=b;function x(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw Error(t);e.self.logger.warn(t)}}e.checkStrictMode=x})),Nh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K();e.default={data:new t.Name(`data`),valCxt:new t.Name(`valCxt`),instancePath:new t.Name(`instancePath`),parentData:new t.Name(`parentData`),parentDataProperty:new t.Name(`parentDataProperty`),rootData:new t.Name(`rootData`),dynamicAnchors:new t.Name(`dynamicAnchors`),vErrors:new t.Name(`vErrors`),errors:new t.Name(`errors`),this:new t.Name(`this`),self:new t.Name(`self`),scope:new t.Name(`scope`),json:new t.Name(`json`),jsonPos:new t.Name(`jsonPos`),jsonLen:new t.Name(`jsonLen`),jsonPart:new t.Name(`jsonPart`)}})),Ph=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;let t=K(),n=q(),r=Nh();e.keywordError={message:({keyword:e})=>(0,t.str)`must pass "${e}" keyword validation`},e.keyword$DataError={message:({keyword:e,schemaType:n})=>n?(0,t.str)`"${e}" keyword must be ${n} ($data)`:(0,t.str)`"${e}" keyword is invalid ($data)`};function i(n,r=e.keywordError,i,a){let{it:o}=n,{gen:s,compositeRule:u,allErrors:f}=o,p=d(n,r,i);a??(u||f)?c(s,p):l(o,(0,t._)`[${p}]`)}e.reportError=i;function a(t,n=e.keywordError,i){let{it:a}=t,{gen:o,compositeRule:s,allErrors:u}=a;c(o,d(t,n,i)),s||u||l(a,r.default.vErrors)}e.reportExtraError=a;function o(e,n){e.assign(r.default.errors,n),e.if((0,t._)`${r.default.vErrors} !== null`,()=>e.if(n,()=>e.assign((0,t._)`${r.default.vErrors}.length`,n),()=>e.assign(r.default.vErrors,null)))}e.resetErrorsCount=o;function s({gen:e,keyword:n,schemaValue:i,data:a,errsCount:o,it:s}){if(o===void 0)throw Error(`ajv implementation error`);let c=e.name(`err`);e.forRange(`i`,o,r.default.errors,o=>{e.const(c,(0,t._)`${r.default.vErrors}[${o}]`),e.if((0,t._)`${c}.instancePath === undefined`,()=>e.assign((0,t._)`${c}.instancePath`,(0,t.strConcat)(r.default.instancePath,s.errorPath))),e.assign((0,t._)`${c}.schemaPath`,(0,t.str)`${s.errSchemaPath}/${n}`),s.opts.verbose&&(e.assign((0,t._)`${c}.schema`,i),e.assign((0,t._)`${c}.data`,a))})}e.extendErrors=s;function c(e,n){let i=e.const(`err`,n);e.if((0,t._)`${r.default.vErrors} === null`,()=>e.assign(r.default.vErrors,(0,t._)`[${i}]`),(0,t._)`${r.default.vErrors}.push(${i})`),e.code((0,t._)`${r.default.errors}++`)}function l(e,n){let{gen:r,validateName:i,schemaEnv:a}=e;a.$async?r.throw((0,t._)`new ${e.ValidationError}(${n})`):(r.assign((0,t._)`${i}.errors`,n),r.return(!1))}let u={keyword:new t.Name(`keyword`),schemaPath:new t.Name(`schemaPath`),params:new t.Name(`params`),propertyName:new t.Name(`propertyName`),message:new t.Name(`message`),schema:new t.Name(`schema`),parentSchema:new t.Name(`parentSchema`)};function d(e,n,r){let{createErrors:i}=e.it;return i===!1?(0,t._)`{}`:f(e,n,r)}function f(e,t,n={}){let{gen:r,it:i}=e,a=[p(i,n),m(e,n)];return h(e,t,a),r.object(...a)}function p({errorPath:e},{instancePath:i}){let a=i?(0,t.str)`${e}${(0,n.getErrorPath)(i,n.Type.Str)}`:e;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,a)]}function m({keyword:e,it:{errSchemaPath:r}},{schemaPath:i,parentSchema:a}){let o=a?r:(0,t.str)`${r}/${e}`;return i&&(o=(0,t.str)`${o}${(0,n.getErrorPath)(i,n.Type.Str)}`),[u.schemaPath,o]}function h(e,{params:n,message:i},a){let{keyword:o,data:s,schemaValue:c,it:l}=e,{opts:d,propertyName:f,topSchemaRef:p,schemaPath:m}=l;a.push([u.keyword,o],[u.params,typeof n==`function`?n(e):n||(0,t._)`{}`]),d.messages&&a.push([u.message,typeof i==`function`?i(e):i]),d.verbose&&a.push([u.schema,c],[u.parentSchema,(0,t._)`${p}${m}`],[r.default.data,s]),f&&a.push([u.propertyName,f])}})),Fh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;let t=Ph(),n=K(),r=Nh(),i={message:`boolean schema is false`};function a(e){let{gen:t,schema:i,validateName:a}=e;i===!1?s(e,!1):typeof i==`object`&&i.$async===!0?t.return(r.default.data):(t.assign((0,n._)`${a}.errors`,null),t.return(!0))}e.topBoolOrEmptySchema=a;function o(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),s(e)):n.var(t,!0)}e.boolOrEmptySchema=o;function s(e,n){let{gen:r,data:a}=e,o={gen:r,keyword:`false schema`,data:a,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,t.reportError)(o,i,void 0,n)}})),Ih=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getRules=e.isJSONType=void 0;let t=new Set([`string`,`number`,`integer`,`boolean`,`null`,`object`,`array`]);function n(e){return typeof e==`string`&&t.has(e)}e.isJSONType=n;function r(){let e={number:{type:`number`,rules:[]},string:{type:`string`,rules:[]},array:{type:`array`,rules:[]},object:{type:`object`,rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}e.getRules=r})),Lh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0;function t({schema:e,self:t},r){let i=t.RULES.types[r];return i&&i!==!0&&n(e,i)}e.schemaHasRulesForType=t;function n(e,t){return t.rules.some(t=>r(e,t))}e.shouldUseGroup=n;function r(e,t){return e[t.keyword]!==void 0||t.definition.implements?.some(t=>e[t]!==void 0)}e.shouldUseRule=r})),Rh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;let t=Ih(),n=Lh(),r=Ph(),i=K(),a=q();var o;(function(e){e[e.Correct=0]=`Correct`,e[e.Wrong=1]=`Wrong`})(o||(e.DataType=o={}));function s(e){let t=c(e.type);if(t.includes(`null`)){if(e.nullable===!1)throw Error(`type: null contradicts nullable: false`)}else{if(!t.length&&e.nullable!==void 0)throw Error(`"nullable" cannot be used without "type"`);e.nullable===!0&&t.push(`null`)}return t}e.getSchemaTypes=s;function c(e){let n=Array.isArray(e)?e:e?[e]:[];if(n.every(t.isJSONType))return n;throw Error(`type must be JSONType or JSONType[]: `+n.join(`,`))}e.getJSONTypes=c;function l(e,t){let{gen:r,data:i,opts:a}=e,s=d(t,a.coerceTypes),c=t.length>0&&!(s.length===0&&t.length===1&&(0,n.schemaHasRulesForType)(e,t[0]));if(c){let n=h(t,i,a.strictNumbers,o.Wrong);r.if(n,()=>{s.length?f(e,t,s):_(e)})}return c}e.coerceAndCheckDataType=l;let u=new Set([`string`,`number`,`integer`,`boolean`,`null`]);function d(e,t){return t?e.filter(e=>u.has(e)||t===`array`&&e===`array`):[]}function f(e,t,n){let{gen:r,data:a,opts:o}=e,s=r.let(`dataType`,(0,i._)`typeof ${a}`),c=r.let(`coerced`,(0,i._)`undefined`);o.coerceTypes===`array`&&r.if((0,i._)`${s} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>r.assign(a,(0,i._)`${a}[0]`).assign(s,(0,i._)`typeof ${a}`).if(h(t,a,o.strictNumbers),()=>r.assign(c,a))),r.if((0,i._)`${c} !== undefined`);for(let e of n)(u.has(e)||e===`array`&&o.coerceTypes===`array`)&&l(e);r.else(),_(e),r.endIf(),r.if((0,i._)`${c} !== undefined`,()=>{r.assign(a,c),p(e,c)});function l(e){switch(e){case`string`:r.elseIf((0,i._)`${s} == "number" || ${s} == "boolean"`).assign(c,(0,i._)`"" + ${a}`).elseIf((0,i._)`${a} === null`).assign(c,(0,i._)`""`);return;case`number`:r.elseIf((0,i._)`${s} == "boolean" || ${a} === null
170
+ `)}},{name:`mcp`,description:`Register as MCP server`,subcommands:[Kl({name:`add`,description:`Register as MCP server`,alias:{command:`c`},options:f.object({agent:f.string().optional().describe(`Target a specific agent (e.g. claude-code, cursor)`),command:f.string().optional().describe(`Override the command agents will run (e.g. "pnpm my-cli --mcp")`),noGlobal:f.boolean().optional().describe(`Install to project instead of globally`)})}),Kl({name:`doctor`,description:`Validate MCP server startup and tool listing`})]},{name:`skills`,aliases:[`skill`],description:`Sync skill files to agents`,subcommands:[Kl({name:`add`,description:`Sync skill files to agents`,options:f.object({depth:f.number().optional().describe(`Grouping depth for skill files (default: 1)`),noGlobal:f.boolean().optional().describe(`Install to project instead of globally`)})}),Kl({name:`list`,aliases:[`ls`],description:`List skills`})]}]}));function $l(e,t={}){let{aliases:n,configFlag:r,description:i,globals:a,version:o,commands:s=[],root:c=!1}=t,l=[],u=o?`${e}@${o}`:e;if(l.push(i?`${u} \u2014 ${i}`:u),l.push(``),l.push(`Usage: ${e} <command>`),n?.length&&l.push(`Aliases: ${n.join(`, `)}`),s.length>0){l.push(``),l.push(`Commands:`);let e=Math.max(...s.map(e=>e.name.length));for(let t of s)if(t.description){let n=` `.repeat(e-t.name.length);l.push(` ${t.name}${n} ${t.description}`)}else l.push(` ${t.name}`)}return l.push(...uu(c,r,a)),l.join(`
171
+ `)}function eu(e,t={}){let{alias:n,aliases:r,configFlag:i,description:a,globals:o,version:s,args:c,env:l,envSource:u,hint:d,root:f=!1,options:p,examples:m}=t,h=[],g=s?`${e}@${s}`:e;h.push(a?`${g} \u2014 ${a}`:g),h.push(``);let{usage:_}=t;if(_&&_.length>0){let t=_.map(t=>{let n=[];if(t.prefix&&n.push(t.prefix),n.push(e),t.args)for(let e of Object.keys(t.args))n.push(`<${e}>`);if(t.options)for(let e of Object.keys(t.options))n.push(`--${e} <${e}>`);return t.suffix&&n.push(t.suffix),n.join(` `)}),n=` `.repeat(7);h.push(`Usage: ${t[0]}`);for(let e of t.slice(1))h.push(`${n}${e}`)}else{let n=tu(e,c),r=t.commands&&t.commands.length>0?` | <command>`:``;h.push(`Usage: ${n}${p?` [options]`:``}${r}`)}if(r?.length&&h.push(`Aliases: ${r.join(`, `)}`),c){let e=nu(c);if(e.length>0){h.push(``),h.push(`Arguments:`);let t=Math.max(...e.map(e=>e.name.length));for(let n of e)h.push(` ${n.name}${` `.repeat(t-n.name.length)} ${n.description}`)}}if(p){let e=iu(p,n);if(e.length>0){h.push(``),h.push(`Options:`);let t=Math.max(...e.map(e=>e.flag.length));for(let n of e){let e=` `.repeat(t-n.flag.length),r=n.deprecated?`[deprecated] `:``,i=n.defaultValue===void 0?`${r}${n.description}`:`${r}${n.description} (default: ${n.defaultValue})`;h.push(` ${n.flag}${e} ${i}`)}}}if(m&&m.length>0){h.push(``),h.push(`Examples:`);let t=Math.max(...m.map(t=>(t.command?`${e} ${t.command}`:e).length));for(let n of m){let r=n.command?`${e} ${n.command}`:e;n.description?h.push(` ${r}${` `.repeat(t-r.length)} # ${n.description}`):h.push(` ${r}`)}}d&&(h.push(``),h.push(d));let{commands:v}=t;if(v&&v.length>0){h.push(``),h.push(`Commands:`);let e=Math.max(...v.map(e=>e.name.length));for(let t of v)if(t.description){let n=` `.repeat(e-t.name.length);h.push(` ${t.name}${n} ${t.description}`)}else h.push(` ${t.name}`)}if(t.hideGlobalOptions||h.push(...uu(f,i,o)),l){let e=ru(l);if(e.length>0){h.push(``),h.push(`Environment Variables:`);let t=Math.max(...e.map(e=>e.name.length));for(let n of e){let e=` `.repeat(t-n.name.length),r=[n.description],i=u??Bl();n.name in i&&r.push(`set: ${du(i[n.name])}`),n.defaultValue!==void 0&&r.push(`default: ${n.defaultValue}`);let a=r.length>1?`${r[0]} (${r.slice(1).join(`, `)})`:r[0];h.push(` ${n.name}${e} ${a}`)}}}return h.join(`
172
+ `)}function tu(e,t){if(!t)return e;let n=[e];for(let[e,r]of Object.entries(t.shape)){let t=au(r),i=(t.includes(`|`)?t:e)+(t===`array`?`...`:``);n.push(r._zod.optout===`optional`?`[${i}]`:`<${i}>`)}return n.join(` `)}function nu(e){let t=[];for(let[n,r]of Object.entries(e.shape))t.push({name:n,description:r.description??``});return t}function ru(e){let t=[];for(let[n,r]of Object.entries(e.shape)){let e=cu(r);t.push({name:n,description:r.description??``,defaultValue:e})}return t}function iu(e,t){let n=[];for(let[r,i]of Object.entries(e.shape)){let e=au(i),a=t?.[r],o=en(r),s=e===`boolean`?``:` <${e}>`,c=a?`--${o}, -${a}${s}`:`--${o}${s}`,l=cu(i);e===`boolean`&&l===!1&&(l=void 0);let u=lu(i);n.push({flag:c,description:i.description??``,defaultValue:l,deprecated:u})}return n}function au(e){if(ou(e))return`count`;let t=su(e);if(t instanceof f.ZodString)return`string`;if(t instanceof f.ZodNumber)return`number`;if(t instanceof f.ZodBoolean)return`boolean`;if(t instanceof f.ZodArray)return`array`;if(t instanceof f.ZodEnum)return Object.values(t._zod.def.entries).join(`|`);if(t instanceof f.ZodUnion){let e=t._zod?.def?.options;if(e?.every(e=>e instanceof f.ZodLiteral))return e.map(e=>String(e._zod.def.values[0])).join(`|`)}return`value`}function ou(e){let t=e;return typeof t?.meta==`function`&&t.meta()?.count===!0}function su(e){return e instanceof f.ZodOptional?su(e.unwrap()):e instanceof f.ZodDefault?su(e.removeDefault()):e instanceof f.ZodNullable?su(e.unwrap()):e}function cu(e){if(e instanceof f.ZodDefault){let t=e._def.defaultValue,n=typeof t==`function`?t():t;return Array.isArray(n)&&n.length===0?void 0:n}if(e instanceof f.ZodOptional)return cu(e.unwrap())}function lu(e){return e?.meta?.()?.deprecated===!0||void 0}function uu(e=!1,t,n){let r=[];if(e){let e=Zl.flatMap(e=>{if(!e.subcommands)return[{name:e.name,desc:e.description}];if(e.subcommands.length===1)return[{name:`${e.name} ${e.subcommands[0].name}`,desc:e.subcommands[0].description}];let t=e.subcommands.map(e=>e.name).join(`, `);return[{name:e.name,desc:`${e.description} (${t})`}]}),t=Math.max(...e.map(e=>e.name.length));r.push(``,`Integrations:`,...e.map(e=>` ${e.name}${` `.repeat(t-e.name.length)} ${e.desc}`))}if(n){let e=iu(n.schema,n.alias);if(e.length>0){let t=Math.max(...e.map(e=>e.flag.length));r.push(``,`Custom Global Options:`,...e.map(e=>{let n=` `.repeat(t-e.flag.length),r=e.deprecated?`[deprecated] `:``,i=e.defaultValue===void 0?`${r}${e.description}`:`${r}${e.description} (default: ${e.defaultValue})`;return` ${e.flag}${n} ${i}`}))}}let i=[...t?[{flag:`--${t} <path>`,desc:`Load JSON option defaults from a file`}]:[],{flag:`--filter-output <keys>`,desc:`Filter output by key paths (e.g. foo,bar.baz,a[0,3])`},{flag:`--format <toon|json|yaml|md|jsonl>`,desc:`Output format`},{flag:`--help`,desc:`Show help`},{flag:`--llms, --llms-full`,desc:`Print LLM-readable manifest`},...e?[{flag:`--mcp`,desc:`Start as MCP stdio server`}]:[],...t?[{flag:`--no-${t}`,desc:`Disable JSON option defaults for this run`}]:[],{flag:`--schema`,desc:`Show JSON Schema for command`},{flag:`--token-count`,desc:`Print token count of output (instead of output)`},{flag:`--token-limit <n>`,desc:`Limit output to n tokens`},{flag:`--token-offset <n>`,desc:`Skip first n tokens of output`},{flag:`--full-output`,desc:`Show full output envelope`},...e?[{flag:`--update`,desc:`Update to latest version`}]:[],...e?[{flag:`--version`,desc:`Show version`}]:[]].sort((e,t)=>e.flag.localeCompare(t.flag)),a=Math.max(...i.map(e=>e.flag.length));return r.push(``,`Global Options:`,...i.map(e=>` ${e.flag}${` `.repeat(a-e.flag.length)} ${e.desc}`)),r}function du(e){return e.length<=4?`****`:`****${e.slice(-4)}`}var fu=F((()=>{Ql(),rn(),Vl()}));function pu(e,t){if(!(!t||t.commands.length===0))return{description:t.description??(t.commands.length===1?`Suggested command:`:`Suggested commands:`),commands:t.commands.map(t=>hu(e,t))}}function mu(e){let t=[e.description];for(let n of e.commands)t.push(` ${n.command}${n.description?` - ${n.description}`:``}`);return t.join(`
173
+ `)}function hu(e,t){if(typeof t==`string`)return{command:`${e} ${t}`};let n=`${t.command===e||t.command.startsWith(`${e} `)?``:`${e} `}${t.command}`;if(t.args)for(let[e,r]of Object.entries(t.args))n+=r===!0?` <${e}>`:` ${r}`;if(t.options)for(let[e,r]of Object.entries(t.options))n+=r===!0?` --${e} <${e}>`:` --${e} ${r}`;return{command:n,...t.description?{description:t.description}:void 0}}var gu=F((()=>{}));async function _u(e,t={}){let n=[],r=t.exclude?c.resolve(t.exclude):void 0;async function i(e,t){let a=await C.readdir(e,{withFileTypes:!0});a.sort((e,t)=>e.name.localeCompare(t.name));for(let o of a){if(o.name.startsWith(`.`)||o.name.startsWith(`_`))continue;let a=c.join(e,o.name);if(o.isDirectory()){bu(o.name,a),await i(a,[...t,o.name]);continue}if(!o.isFile()||a===r)continue;let s=xu.find(e=>o.name.endsWith(e));if(!s)continue;let l=o.name.slice(0,-s.length);if(!(l.endsWith(`.d`)||l.endsWith(`.test`)||l.endsWith(`.test-d`)||l.endsWith(`.spec`))){if(l===`index`){t.length>0&&n.push({file:a,segments:t});continue}bu(l,a),n.push({file:a,segments:[...t,l]})}}}await i(e,[]);let a=new Map;for(let e of n){let t=e.segments.join(` `),n=a.get(t);if(n)throw Error(`Duplicate filesystem command '${t}' from '${n}' and '${e.file}'.`);a.set(t,e.file)}return n}function vu(){return globalThis[Symbol.for(Cu)]?.shift()}async function yu(e){return Promise.all(e.map(async({load:e,...t})=>({...t,command:await e()})))}function bu(e,t){if(!Su.test(e))throw Error(`Invalid filesystem command segment '${e}' from '${t}'. Use lowercase kebab-case names.`)}var xu,Su,Cu,wu=F((()=>{xu=[`.cts`,`.cjs`,`.mts`,`.mjs`,`.ts`,`.js`],Su=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,Cu=`incur.fs.manifests`}));function Tu(e){let t=f.toJSONSchema(e,{unrepresentable:`any`,override:e=>{let t=e.zodSchema._zod?.def?.type;(t===`bigint`||t===`date`)&&(e.jsonSchema.type=`string`)}});return delete t.$schema,t}var Eu=F((()=>{}));function Du(e,t){let n=typeof e;if(n!==typeof t)return!1;if(Array.isArray(e)){if(!Array.isArray(t))return!1;let n=e.length;if(n!==t.length)return!1;for(let r=0;r<n;r++)if(!Du(e[r],t[r]))return!1;return!0}if(n===`object`){if(!e||!t)return e===t;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Du(e[r],t[r]))return!1;return!0}return e===t}var Ou=F((()=>{}));function ku(e){return encodeURI(Au(e))}function Au(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}var ju=F((()=>{}));function Mu(e,t=Object.create(null),n=Iu,r=``){if(e&&typeof e==`object`&&!Array.isArray(e)){let i=e.$id||e.id;if(i){let a=new URL(i,n.href);a.hash.length>1?t[a.href]=e:(a.hash=``,r===``?n=a:Mu(e,t,n))}}else if(e!==!0&&e!==!1)return t;let i=n.href+(r?`#`+r:``);if(t[i]!==void 0)throw Error(`Duplicate schema URI "${i}".`);if(t[i]=e,e===!0||e===!1)return t;if(e.__absolute_uri__===void 0&&Object.defineProperty(e,"__absolute_uri__",{enumerable:!1,value:i}),e.$ref&&e.__absolute_ref__===void 0){let t=new URL(e.$ref,n.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_ref__",{enumerable:!1,value:t.href})}if(e.$recursiveRef&&e.__absolute_recursive_ref__===void 0){let t=new URL(e.$recursiveRef,n.href);t.hash=t.hash,Object.defineProperty(e,"__absolute_recursive_ref__",{enumerable:!1,value:t.href})}if(e.$anchor){let r=new URL(`#`+e.$anchor,n.href);t[r.href]=e}for(let i in e){if(Fu[i])continue;let a=`${r}/${ku(i)}`,o=e[i];if(Array.isArray(o)){if(Nu[i]){let e=o.length;for(let r=0;r<e;r++)Mu(o[r],t,n,`${a}/${r}`)}}else if(Pu[i])for(let e in o)Mu(o[e],t,n,`${a}/${ku(e)}`);else Mu(o,t,n,a)}return t}var Nu,Pu,Fu,Iu,Lu=F((()=>{ju(),Nu={prefixItems:!0,items:!0,allOf:!0,anyOf:!0,oneOf:!0},Pu={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependentSchemas:!0},Fu={id:!0,$id:!0,$ref:!0,$schema:!0,$anchor:!0,$vocabulary:!0,$comment:!0,default:!0,enum:!0,const:!0,required:!0,type:!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},Iu=typeof self<`u`&&self.location&&self.location.origin!==`null`?new URL(self.location.origin+self.location.pathname+location.search):new URL(`https://github.com/cfworker`)}));function Ru(e){return e.test.bind(e)}function zu(e){return e%4==0&&(e%100!=0||e%400==0)}function Bu(e){let t=e.match(Gu);if(!t)return!1;let n=+t[1],r=+t[2],i=+t[3];return r>=1&&r<=12&&i>=1&&i<=(r==2&&zu(n)?29:Ku[r])}function Vu(e,t){let n=t.match(qu);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=!!n[5];return(r<=23&&i<=59&&a<=59||r==23&&i==59&&a==60)&&(!e||o)}function Hu(e){let t=e.split(sd);return t.length==2&&Bu(t[0])&&Vu(!0,t[1])}function Uu(e){return cd.test(e)&&ld.test(e)}function Wu(e){if(ud.test(e))return!1;try{return new RegExp(e,`u`),!0}catch{return!1}}var Gu,Ku,qu,Ju,Yu,Xu,Zu,Qu,$u,ed,td,nd,rd,id,ad,od,sd,cd,ld,ud,dd=F((()=>{Gu=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,Ku=[0,31,28,31,30,31,30,31,31,30,31,30,31],qu=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,Ju=/^(?=.{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,Yu=/^(?:[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,Xu=/^(?:(?:[^\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,Zu=/^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!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-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)(?:\.(?:[a-z\u{00a1}-\u{ffff}0-9]+-?)*[a-z\u{00a1}-\u{ffff}0-9]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,Qu=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,$u=/^(?:\/(?:[^~/]|~0|~1)*)*$/,ed=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,td=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,nd=e=>{if(e[0]===`"`)return!1;let[t,n,...r]=e.split(`@`);return!t||!n||r.length!==0||t.length>64||n.length>253||t[0]===`.`||t.endsWith(`.`)||t.includes(`..`)||!/^[a-z0-9.-]+$/i.test(n)||!/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+$/i.test(t)?!1:n.split(`.`).every(e=>/^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$/i.test(e))},rd=/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,id=/^((([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,ad=e=>e.length>1&&e.length<80&&(/^P\d+([.,]\d+)?W$/.test(e)||/^P[\dYMDTHS]*(\d[.,]\d+)?[YMDHS]$/.test(e)&&/^P([.,\d]+Y)?([.,\d]+M)?([.,\d]+D)?(T([.,\d]+H)?([.,\d]+M)?([.,\d]+S)?)?$/.test(e)),od={date:Bu,time:Vu.bind(void 0,!1),"date-time":Hu,duration:ad,uri:Uu,"uri-reference":Ru(Yu),"uri-template":Ru(Xu),url:Ru(Zu),email:nd,hostname:Ru(Ju),ipv4:Ru(rd),ipv6:Ru(id),regex:Wu,uuid:Ru(Qu),"json-pointer":Ru($u),"json-pointer-uri-fragment":Ru(ed),"relative-json-pointer":Ru(td)},sd=/t|\s/i,cd=/\/|:/,ld=/^(?:[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,ud=/[^\\]\\Z/})),fd=F((()=>{}));function pd(e){let t=0,n=e.length,r=0,i;for(;r<n;)t++,i=e.charCodeAt(r++),i>=55296&&i<=56319&&r<n&&(i=e.charCodeAt(r),(i&64512)==56320&&r++);return t}var md=F((()=>{}));function hd(e,t,n=`2019-09`,r=Mu(t),i=!0,a=null,o=`#`,s=`#`,c=Object.create(null)){if(t===!0)return{valid:!0,errors:[]};if(t===!1)return{valid:!1,errors:[{instanceLocation:o,keyword:`false`,keywordLocation:o,error:`False boolean schema.`}]};let l=typeof e,u;switch(l){case`boolean`:case`number`:case`string`:u=l;break;case`object`:u=e===null?`null`:Array.isArray(e)?`array`:`object`;break;default:throw Error(`Instances of "${l}" type are not supported.`)}let{$ref:d,$recursiveRef:f,$recursiveAnchor:p,type:m,const:h,enum:g,required:_,not:v,anyOf:y,allOf:b,oneOf:x,if:S,then:C,else:w,format:T,properties:ee,patternProperties:E,additionalProperties:D,unevaluatedProperties:te,minProperties:O,maxProperties:ne,propertyNames:k,dependentRequired:A,dependentSchemas:j,dependencies:re,prefixItems:ie,items:ae,additionalItems:oe,unevaluatedItems:se,contains:ce,minContains:M,maxContains:le,minItems:ue,maxItems:de,uniqueItems:fe,minimum:pe,maximum:me,exclusiveMinimum:N,exclusiveMaximum:he,multipleOf:ge,minLength:_e,maxLength:ve,pattern:ye,__absolute_ref__:be,__absolute_recursive_ref__:xe}=t,P=[];if(p===!0&&a===null&&(a=t),f===`#`){let l=a===null?r[xe]:a,u=`${s}/$recursiveRef`,d=hd(e,a===null?t:a,n,r,i,l,o,u,c);d.valid||P.push({instanceLocation:o,keyword:`$recursiveRef`,keywordLocation:u,error:`A subschema had errors.`},...d.errors)}if(d!==void 0){let t=r[be||d];if(t===void 0){let e=`Unresolved $ref "${d}".`;throw be&&be!==d&&(e+=` Absolute URI "${be}".`),e+=`\nKnown schemas:\n- ${Object.keys(r).join(`
174
+ - `)}`,Error(e)}let l=`${s}/$ref`,u=hd(e,t,n,r,i,a,o,l,c);if(u.valid||P.push({instanceLocation:o,keyword:`$ref`,keywordLocation:l,error:`A subschema had errors.`},...u.errors),n===`4`||n===`7`)return{valid:P.length===0,errors:P}}if(Array.isArray(m)){let t=m.length,n=!1;for(let r=0;r<t;r++)if(u===m[r]||m[r]===`integer`&&u===`number`&&e%1==0&&e===e){n=!0;break}n||P.push({instanceLocation:o,keyword:`type`,keywordLocation:`${s}/type`,error:`Instance type "${u}" is invalid. Expected "${m.join(`", "`)}".`})}else m===`integer`?(u!==`number`||e%1||e!==e)&&P.push({instanceLocation:o,keyword:`type`,keywordLocation:`${s}/type`,error:`Instance type "${u}" is invalid. Expected "${m}".`}):m!==void 0&&u!==m&&P.push({instanceLocation:o,keyword:`type`,keywordLocation:`${s}/type`,error:`Instance type "${u}" is invalid. Expected "${m}".`});if(h!==void 0&&(u===`object`||u===`array`?Du(e,h)||P.push({instanceLocation:o,keyword:`const`,keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(h)}.`}):e!==h&&P.push({instanceLocation:o,keyword:`const`,keywordLocation:`${s}/const`,error:`Instance does not match ${JSON.stringify(h)}.`})),g!==void 0&&(u===`object`||u===`array`?g.some(t=>Du(e,t))||P.push({instanceLocation:o,keyword:`enum`,keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(g)}.`}):g.some(t=>e===t)||P.push({instanceLocation:o,keyword:`enum`,keywordLocation:`${s}/enum`,error:`Instance does not match any of ${JSON.stringify(g)}.`})),v!==void 0){let t=`${s}/not`;hd(e,v,n,r,i,a,o,t).valid&&P.push({instanceLocation:o,keyword:`not`,keywordLocation:t,error:`Instance matched "not" schema.`})}let Se=[];if(y!==void 0){let t=`${s}/anyOf`,l=P.length,u=!1;for(let s=0;s<y.length;s++){let l=y[s],d=Object.create(c),f=hd(e,l,n,r,i,p===!0?a:null,o,`${t}/${s}`,d);P.push(...f.errors),u||=f.valid,f.valid&&Se.push(d)}u?P.length=l:P.splice(l,0,{instanceLocation:o,keyword:`anyOf`,keywordLocation:t,error:`Instance does not match any subschemas.`})}if(b!==void 0){let t=`${s}/allOf`,l=P.length,u=!0;for(let s=0;s<b.length;s++){let l=b[s],d=Object.create(c),f=hd(e,l,n,r,i,p===!0?a:null,o,`${t}/${s}`,d);P.push(...f.errors),u&&=f.valid,f.valid&&Se.push(d)}u?P.length=l:P.splice(l,0,{instanceLocation:o,keyword:`allOf`,keywordLocation:t,error:`Instance does not match every subschema.`})}if(x!==void 0){let t=`${s}/oneOf`,l=P.length,u=x.filter((s,l)=>{let u=Object.create(c),d=hd(e,s,n,r,i,p===!0?a:null,o,`${t}/${l}`,u);return P.push(...d.errors),d.valid&&Se.push(u),d.valid}).length;u===1?P.length=l:P.splice(l,0,{instanceLocation:o,keyword:`oneOf`,keywordLocation:t,error:`Instance does not match exactly one subschema (${u} matches).`})}if((u===`object`||u===`array`)&&Object.assign(c,...Se),S!==void 0){let t=`${s}/if`;if(hd(e,S,n,r,i,a,o,t,c).valid){if(C!==void 0){let l=hd(e,C,n,r,i,a,o,`${s}/then`,c);l.valid||P.push({instanceLocation:o,keyword:`if`,keywordLocation:t,error:`Instance does not match "then" schema.`},...l.errors)}}else if(w!==void 0){let l=hd(e,w,n,r,i,a,o,`${s}/else`,c);l.valid||P.push({instanceLocation:o,keyword:`if`,keywordLocation:t,error:`Instance does not match "else" schema.`},...l.errors)}}if(u===`object`){if(_!==void 0)for(let t of _)t in e||P.push({instanceLocation:o,keyword:`required`,keywordLocation:`${s}/required`,error:`Instance does not have required property "${t}".`});let t=Object.keys(e);if(O!==void 0&&t.length<O&&P.push({instanceLocation:o,keyword:`minProperties`,keywordLocation:`${s}/minProperties`,error:`Instance does not have at least ${O} properties.`}),ne!==void 0&&t.length>ne&&P.push({instanceLocation:o,keyword:`maxProperties`,keywordLocation:`${s}/maxProperties`,error:`Instance does not have at least ${ne} properties.`}),k!==void 0){let t=`${s}/propertyNames`;for(let s in e){let e=`${o}/${ku(s)}`,c=hd(s,k,n,r,i,a,e,t);c.valid||P.push({instanceLocation:o,keyword:`propertyNames`,keywordLocation:t,error:`Property name "${s}" does not match schema.`},...c.errors)}}if(A!==void 0){let t=`${s}/dependantRequired`;for(let n in A)if(n in e){let r=A[n];for(let i of r)i in e||P.push({instanceLocation:o,keyword:`dependentRequired`,keywordLocation:t,error:`Instance has "${n}" but does not have "${i}".`})}}if(j!==void 0)for(let t in j){let l=`${s}/dependentSchemas`;if(t in e){let s=hd(e,j[t],n,r,i,a,o,`${l}/${ku(t)}`,c);s.valid||P.push({instanceLocation:o,keyword:`dependentSchemas`,keywordLocation:l,error:`Instance has "${t}" but does not match dependant schema.`},...s.errors)}}if(re!==void 0){let t=`${s}/dependencies`;for(let s in re)if(s in e){let c=re[s];if(Array.isArray(c))for(let n of c)n in e||P.push({instanceLocation:o,keyword:`dependencies`,keywordLocation:t,error:`Instance has "${s}" but does not have "${n}".`});else{let l=hd(e,c,n,r,i,a,o,`${t}/${ku(s)}`);l.valid||P.push({instanceLocation:o,keyword:`dependencies`,keywordLocation:t,error:`Instance has "${s}" but does not match dependant schema.`},...l.errors)}}}let l=Object.create(null),u=!1;if(ee!==void 0){let t=`${s}/properties`;for(let s in ee){if(!(s in e))continue;let d=`${o}/${ku(s)}`,f=hd(e[s],ee[s],n,r,i,a,d,`${t}/${ku(s)}`);if(f.valid)c[s]=l[s]=!0;else if(u=i,P.push({instanceLocation:o,keyword:`properties`,keywordLocation:t,error:`Property "${s}" does not match schema.`},...f.errors),u)break}}if(!u&&E!==void 0){let t=`${s}/patternProperties`;for(let s in E){let d=new RegExp(s,`u`),f=E[s];for(let p in e){if(!d.test(p))continue;let m=`${o}/${ku(p)}`,h=hd(e[p],f,n,r,i,a,m,`${t}/${ku(s)}`);h.valid?c[p]=l[p]=!0:(u=i,P.push({instanceLocation:o,keyword:`patternProperties`,keywordLocation:t,error:`Property "${p}" matches pattern "${s}" but does not match associated schema.`},...h.errors))}}}if(!u&&D!==void 0){let t=`${s}/additionalProperties`;for(let s in e){if(l[s])continue;let d=`${o}/${ku(s)}`,f=hd(e[s],D,n,r,i,a,d,t);f.valid?c[s]=!0:(u=i,P.push({instanceLocation:o,keyword:`additionalProperties`,keywordLocation:t,error:`Property "${s}" does not match additional properties schema.`},...f.errors))}}else if(!u&&te!==void 0){let t=`${s}/unevaluatedProperties`;for(let s in e)if(!c[s]){let l=`${o}/${ku(s)}`,u=hd(e[s],te,n,r,i,a,l,t);u.valid?c[s]=!0:P.push({instanceLocation:o,keyword:`unevaluatedProperties`,keywordLocation:t,error:`Property "${s}" does not match unevaluated properties schema.`},...u.errors)}}}else if(u===`array`){de!==void 0&&e.length>de&&P.push({instanceLocation:o,keyword:`maxItems`,keywordLocation:`${s}/maxItems`,error:`Array has too many items (${e.length} > ${de}).`}),ue!==void 0&&e.length<ue&&P.push({instanceLocation:o,keyword:`minItems`,keywordLocation:`${s}/minItems`,error:`Array has too few items (${e.length} < ${ue}).`});let t=e.length,l=0,u=!1;if(ie!==void 0){let d=`${s}/prefixItems`,f=Math.min(ie.length,t);for(;l<f;l++){let t=hd(e[l],ie[l],n,r,i,a,`${o}/${l}`,`${d}/${l}`);if(c[l]=!0,!t.valid&&(u=i,P.push({instanceLocation:o,keyword:`prefixItems`,keywordLocation:d,error:`Items did not match schema.`},...t.errors),u))break}}if(ae!==void 0){let d=`${s}/items`;if(Array.isArray(ae)){let s=Math.min(ae.length,t);for(;l<s;l++){let t=hd(e[l],ae[l],n,r,i,a,`${o}/${l}`,`${d}/${l}`);if(c[l]=!0,!t.valid&&(u=i,P.push({instanceLocation:o,keyword:`items`,keywordLocation:d,error:`Items did not match schema.`},...t.errors),u))break}}else for(;l<t;l++){let t=hd(e[l],ae,n,r,i,a,`${o}/${l}`,d);if(c[l]=!0,!t.valid&&(u=i,P.push({instanceLocation:o,keyword:`items`,keywordLocation:d,error:`Items did not match schema.`},...t.errors),u))break}if(!u&&oe!==void 0){let d=`${s}/additionalItems`;for(;l<t;l++){let t=hd(e[l],oe,n,r,i,a,`${o}/${l}`,d);c[l]=!0,t.valid||(u=i,P.push({instanceLocation:o,keyword:`additionalItems`,keywordLocation:d,error:`Items did not match additional items schema.`},...t.errors))}}}if(ce!==void 0){if(t===0&&M===void 0)P.push({instanceLocation:o,keyword:`contains`,keywordLocation:`${s}/contains`,error:`Array is empty. It must contain at least one item matching the schema.`});else if(M!==void 0&&t<M)P.push({instanceLocation:o,keyword:`minContains`,keywordLocation:`${s}/minContains`,error:`Array has less items (${t}) than minContains (${M}).`});else{let l=`${s}/contains`,u=P.length,d=0;for(let s=0;s<t;s++){let t=hd(e[s],ce,n,r,i,a,`${o}/${s}`,l);t.valid?(c[s]=!0,d++):P.push(...t.errors)}d>=(M||0)&&(P.length=u),M===void 0&&le===void 0&&d===0?P.splice(u,0,{instanceLocation:o,keyword:`contains`,keywordLocation:l,error:`Array does not contain item matching schema.`}):M!==void 0&&d<M?P.push({instanceLocation:o,keyword:`minContains`,keywordLocation:`${s}/minContains`,error:`Array must contain at least ${M} items matching schema. Only ${d} items were found.`}):le!==void 0&&d>le&&P.push({instanceLocation:o,keyword:`maxContains`,keywordLocation:`${s}/maxContains`,error:`Array may contain at most ${le} items matching schema. ${d} items were found.`})}}if(!u&&se!==void 0){let u=`${s}/unevaluatedItems`;for(;l<t;l++){if(c[l])continue;let t=hd(e[l],se,n,r,i,a,`${o}/${l}`,u);c[l]=!0,t.valid||P.push({instanceLocation:o,keyword:`unevaluatedItems`,keywordLocation:u,error:`Items did not match unevaluated items schema.`},...t.errors)}}if(fe)for(let n=0;n<t;n++){let r=e[n],i=typeof r==`object`&&!!r;for(let a=0;a<t;a++){if(n===a)continue;let t=e[a];(r===t||i&&typeof t==`object`&&t&&Du(r,t))&&(P.push({instanceLocation:o,keyword:`uniqueItems`,keywordLocation:`${s}/uniqueItems`,error:`Duplicate items at indexes ${n} and ${a}.`}),n=2**53-1,a=2**53-1)}}}else if(u===`number`){if(n===`4`?(pe!==void 0&&(N===!0&&e<=pe||e<pe)&&P.push({instanceLocation:o,keyword:`minimum`,keywordLocation:`${s}/minimum`,error:`${e} is less than ${N?`or equal to `:``} ${pe}.`}),me!==void 0&&(he===!0&&e>=me||e>me)&&P.push({instanceLocation:o,keyword:`maximum`,keywordLocation:`${s}/maximum`,error:`${e} is greater than ${he?`or equal to `:``} ${me}.`})):(pe!==void 0&&e<pe&&P.push({instanceLocation:o,keyword:`minimum`,keywordLocation:`${s}/minimum`,error:`${e} is less than ${pe}.`}),me!==void 0&&e>me&&P.push({instanceLocation:o,keyword:`maximum`,keywordLocation:`${s}/maximum`,error:`${e} is greater than ${me}.`}),N!==void 0&&e<=N&&P.push({instanceLocation:o,keyword:`exclusiveMinimum`,keywordLocation:`${s}/exclusiveMinimum`,error:`${e} is less than ${N}.`}),he!==void 0&&e>=he&&P.push({instanceLocation:o,keyword:`exclusiveMaximum`,keywordLocation:`${s}/exclusiveMaximum`,error:`${e} is greater than or equal to ${he}.`})),ge!==void 0){let t=e%ge;Math.abs(0-t)>=1.1920929e-7&&Math.abs(ge-t)>=1.1920929e-7&&P.push({instanceLocation:o,keyword:`multipleOf`,keywordLocation:`${s}/multipleOf`,error:`${e} is not a multiple of ${ge}.`})}}else if(u===`string`){let t=_e===void 0&&ve===void 0?0:pd(e);_e!==void 0&&t<_e&&P.push({instanceLocation:o,keyword:`minLength`,keywordLocation:`${s}/minLength`,error:`String is too short (${t} < ${_e}).`}),ve!==void 0&&t>ve&&P.push({instanceLocation:o,keyword:`maxLength`,keywordLocation:`${s}/maxLength`,error:`String is too long (${t} > ${ve}).`}),ye!==void 0&&!new RegExp(ye,`u`).test(e)&&P.push({instanceLocation:o,keyword:`pattern`,keywordLocation:`${s}/pattern`,error:`String does not match pattern.`}),T!==void 0&&od[T]&&!od[T](e)&&P.push({instanceLocation:o,keyword:`format`,keywordLocation:`${s}/format`,error:`String does not match format "${T}".`})}return{valid:P.length===0,errors:P}}var gd=F((()=>{Ou(),Lu(),dd(),ju(),md()})),_d,vd=F((()=>{Lu(),gd(),_d=class{schema;draft;shortCircuit;lookup;constructor(e,t=`2019-09`,n=!0){this.schema=e,this.draft=t,this.shortCircuit=n,this.lookup=Mu(e)}validate(e){return hd(e,this.schema,this.draft,this.lookup,this.shortCircuit)}addSchema(e,t){t&&(e={...e,$id:t}),Mu(e,this.lookup)}}})),yd=F((()=>{Ou(),Lu(),dd(),ju(),fd(),md(),gd(),vd()}));function bd(e){let t=typeof e==`string`?new URL(e):new URL(e.href);return t.hash=``,t}function xd({requestedResource:e,configuredResource:t}){let n=typeof e==`string`?new URL(e):new URL(e.href),r=typeof t==`string`?new URL(t):new URL(t.href);if(n.origin!==r.origin||n.pathname.length<r.pathname.length)return!1;let i=n.pathname.endsWith(`/`)?n.pathname:n.pathname+`/`,a=r.pathname.endsWith(`/`)?r.pathname:r.pathname+`/`;return i.startsWith(a)}function Sd(e){return e.title!==void 0&&e.title!==``?e.title:`annotations`in e&&e.annotations?.title?e.annotations.title:e.name}function Cd(e){return ph[e]}function wd(e){let t={};for(let n of e){let e=n.shape.method.value;t[e]=n}return t}function Td(e){return mh[e]}function Ed(e){return hh[e]}function Dd(e){return Vf.parse(e)}function Od(e){if(e.params.ref.type!==`ref/prompt`)throw TypeError(`Expected CompleteRequestPrompt, but got ${e.params.ref.type}`)}function kd(e){if(e.params.ref.type!==`ref/resource`)throw TypeError(`Expected CompleteRequestResourceTemplate, but got ${e.params.ref.type}`)}function Ad(e,t){return D.safeParse(e,t)}function jd(e){return e===`completed`||e===`failed`||e===`cancelled`}function Md(e){if(!e)return;let{taskStore:t,taskMessageQueue:n,defaultTaskPollInterval:r,maxTaskQueueSize:i}=e;return{taskStore:t,taskMessageQueue:n,defaultTaskPollInterval:r,maxTaskQueueSize:i}}function Nd(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Pd(e,t){let n={...e};for(let e in t){let r=e,i=t[r];if(i===void 0)continue;let a=n[r];n[r]=Nd(a)&&Nd(i)?{...a,...i}:i}return n}async function Fd(e){let t=[];for await(let n of e)t.push(n);return t}async function Id(e){for await(let t of e)if(t.type===`result`)return t.result;else if(t.type===`error`)throw t.error;throw Error(`No result in stream.`)}function Ld(e){return Vf.parse(JSON.parse(e))}function Rd(e){return JSON.stringify(e)+`
175
+ `}function zd(e){let t=[];if(e.length===0)return{isValid:!1,warnings:[`Tool name cannot be empty`]};if(e.length>128)return{isValid:!1,warnings:[`Tool name exceeds maximum length of 128 characters (current: ${e.length})`]};if(e.includes(` `)&&t.push(`Tool name contains spaces, which may cause parsing issues`),e.includes(`,`)&&t.push(`Tool name contains commas, which may cause parsing issues`),(e.startsWith(`-`)||e.endsWith(`-`))&&t.push(`Tool name starts or ends with a dash, which may cause parsing issues in some contexts`),(e.startsWith(`.`)||e.endsWith(`.`))&&t.push(`Tool name starts or ends with a dot, which may cause parsing issues in some contexts`),!Oh.test(e)){let n=[...e].filter(e=>!/[A-Za-z0-9._-]/.test(e)).filter((e,t,n)=>n.indexOf(e)===t);return t.push(`Tool name contains invalid characters: ${n.map(e=>`"${e}"`).join(`, `)}`,`Allowed characters are: A-Z, a-z, 0-9, underscore (_), dash (-), and dot (.)`),{isValid:!1,warnings:t}}return{isValid:!0,warnings:t}}function Bd(e,t){if(t.length>0){console.warn(`Tool name validation warning for "${e}":`);for(let e of t)console.warn(` - ${e}`);console.warn(`Tool registration will proceed, but this may cause compatibility issues.`),console.warn(`Consider updating the tool name to conform to the MCP tool naming standard.`),console.warn(`See SEP: Specify Format for Tool Names (https://github.com/modelcontextprotocol/modelcontextprotocol/issues/986) for more details.`)}}function Vd(e){let t=zd(e);return Bd(e,t.warnings),t.isValid}function Hd(e){return e?e instanceof Headers?Object.fromEntries(e.entries()):Array.isArray(e)?Object.fromEntries(e):{...e}:{}}function Ud(e=fetch,t){return t?async(n,r)=>e(n,{...t,...r,headers:r?.headers?{...Hd(t.headers),...Hd(r.headers)}:t.headers}):e}function Wd(e,t=`input`){let n=e[`~standard`].jsonSchema[t]({target:`draft-2020-12`});if(n.type!==void 0&&n.type!==`object`)throw Error(`MCP tool and prompt schemas must describe objects (got type: ${JSON.stringify(n.type)}). Wrap your schema in z.object({...}) or equivalent.`);return{type:`object`,...n}}function Gd(e){return e.path?.length?`${e.path.map(e=>String(typeof e==`object`?e.key:e)).join(`.`)}: ${e.message}`:e.message}async function Kd(e,t){let n=await e[`~standard`].validate(t);return n.issues&&n.issues.length>0?{success:!1,error:n.issues.map(e=>Gd(e)).join(`, `)}:{success:!0,data:n.value}}function qd(e){let t=Wd(e,`input`),n=t.properties||{},r=t.required||[];return Object.entries(n).map(([e,t])=>({name:e,description:t?.description,required:r.includes(e)}))}function Jd(){let e=new Yg.Ajv({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return(0,Xg.default)(e),e}function Yd(e,t){let n=t.getValidator(e);return{"~standard":{version:1,vendor:`mcp`,jsonSchema:{input:()=>e,output:()=>e},validate:e=>{let t=n(e);return t.valid?{value:t.data}:{issues:[{message:t.errorMessage}]}}}}}var Xd,Zd,Qd,$d,ef,tf,z,nf,rf,af,of,B,V,sf,cf,lf,uf,df,ff,pf,mf,hf,gf,_f,vf,yf,bf,xf,H,U,Sf,Cf,wf,Tf,Ef,Df,Of,kf,Af,jf,Mf,Nf,Pf,Ff,If,Lf,Rf,zf,Bf,Vf,Hf,Uf,Wf,Gf,Kf,qf,Jf,Yf,Xf,Zf,Qf,$f,ep,tp,np,rp,ip,ap,op,sp,cp,lp,up,dp,fp,pp,mp,hp,gp,_p,vp,yp,bp,xp,Sp,Cp,wp,Tp,Ep,Dp,Op,kp,Ap,jp,Mp,Np,Pp,Fp,Ip,Lp,Rp,zp,Bp,Vp,Hp,Up,Wp,Gp,Kp,qp,Jp,Yp,Xp,Zp,Qp,$p,em,tm,nm,rm,im,am,om,sm,cm,lm,um,dm,fm,pm,mm,hm,gm,_m,vm,ym,bm,xm,Sm,Cm,wm,Tm,Em,Dm,Om,km,Am,jm,Mm,Nm,Pm,Fm,Im,Lm,Rm,zm,Bm,Vm,Hm,Um,Wm,Gm,Km,qm,Jm,Ym,Xm,Zm,Qm,$m,eh,th,nh,rh,ih,ah,oh,sh,ch,lh,uh,dh,fh,ph,mh,hh,gh,_h,vh,yh,bh,xh,Sh,Ch,wh,Th,Eh,Dh,Oh,kh,Ah,jh,Mh,Nh,Ph,Fh,W,G,Ih,Lh,Rh,zh,Bh,Vh,Hh,Uh,Wh,Gh,Kh,qh,Jh,Yh,Xh,Zh,Qh,$h,eg,tg,ng,rg,ig,ag,og,sg,cg,lg,ug,dg,fg,pg,mg,hg,gg,_g,vg,yg,bg,xg,Sg,Cg,wg,Tg,Eg,Dg,Og,kg,Ag,jg,Mg,Ng,Pg,Fg,Ig,Lg,Rg,zg,Bg,Vg,Hg,Ug,Wg,Gg,Kg,qg,Jg,Yg,Xg,Zg,Qg,$g=F((()=>{yd(),Xd=Object.create,Zd=Object.defineProperty,Qd=Object.getOwnPropertyDescriptor,$d=Object.getOwnPropertyNames,ef=Object.getPrototypeOf,tf=Object.prototype.hasOwnProperty,z=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),nf=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=$d(t),a=0,o=i.length,s;a<o;a++)s=i[a],!tf.call(e,s)&&s!==n&&Zd(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=Qd(t,s))||r.enumerable});return e},rf=(e,t,n)=>(n=e==null?{}:Xd(ef(e)),nf(t||!e||!e.__esModule?Zd(n,`default`,{value:e,enumerable:!0}):n,e)),af=function(e){return e.InvalidRequest=`invalid_request`,e.InvalidClient=`invalid_client`,e.InvalidGrant=`invalid_grant`,e.UnauthorizedClient=`unauthorized_client`,e.UnsupportedGrantType=`unsupported_grant_type`,e.InvalidScope=`invalid_scope`,e.AccessDenied=`access_denied`,e.ServerError=`server_error`,e.TemporarilyUnavailable=`temporarily_unavailable`,e.UnsupportedResponseType=`unsupported_response_type`,e.UnsupportedTokenType=`unsupported_token_type`,e.InvalidToken=`invalid_token`,e.MethodNotAllowed=`method_not_allowed`,e.TooManyRequests=`too_many_requests`,e.InvalidClientMetadata=`invalid_client_metadata`,e.InsufficientScope=`insufficient_scope`,e.InvalidTarget=`invalid_target`,e}({}),of=class e extends Error{constructor(e,t,n){super(t),this.code=e,this.errorUri=n,this.name=`OAuthError`}toResponseObject(){let e={error:this.code,error_description:this.message};return this.errorUri&&(e.error_uri=this.errorUri),e}static fromResponse(t){return new e(t.error,t.error_description??t.error,t.error_uri)}},B=function(e){return e.NotConnected=`NOT_CONNECTED`,e.AlreadyConnected=`ALREADY_CONNECTED`,e.NotInitialized=`NOT_INITIALIZED`,e.CapabilityNotSupported=`CAPABILITY_NOT_SUPPORTED`,e.RequestTimeout=`REQUEST_TIMEOUT`,e.ConnectionClosed=`CONNECTION_CLOSED`,e.SendFailed=`SEND_FAILED`,e.ClientHttpNotImplemented=`CLIENT_HTTP_NOT_IMPLEMENTED`,e.ClientHttpAuthentication=`CLIENT_HTTP_AUTHENTICATION`,e.ClientHttpForbidden=`CLIENT_HTTP_FORBIDDEN`,e.ClientHttpUnexpectedContent=`CLIENT_HTTP_UNEXPECTED_CONTENT`,e.ClientHttpFailedToOpenStream=`CLIENT_HTTP_FAILED_TO_OPEN_STREAM`,e.ClientHttpFailedToTerminateSession=`CLIENT_HTTP_FAILED_TO_TERMINATE_SESSION`,e}({}),V=class extends Error{constructor(e,t,n){super(t),this.code=e,this.data=n,this.name=`SdkError`}},sf=D.url().superRefine((e,t)=>{if(!URL.canParse(e))return t.addIssue({code:D.ZodIssueCode.custom,message:`URL must be parseable`,fatal:!0}),D.NEVER}).refine(e=>{let t=new URL(e);return t.protocol!==`javascript:`&&t.protocol!==`data:`&&t.protocol!==`vbscript:`},{message:`URL cannot use javascript:, data:, or vbscript: scheme`}),D.looseObject({resource:D.string().url(),authorization_servers:D.array(sf).optional(),jwks_uri:D.string().url().optional(),scopes_supported:D.array(D.string()).optional(),bearer_methods_supported:D.array(D.string()).optional(),resource_signing_alg_values_supported:D.array(D.string()).optional(),resource_name:D.string().optional(),resource_documentation:D.string().optional(),resource_policy_uri:D.string().url().optional(),resource_tos_uri:D.string().url().optional(),tls_client_certificate_bound_access_tokens:D.boolean().optional(),authorization_details_types_supported:D.array(D.string()).optional(),dpop_signing_alg_values_supported:D.array(D.string()).optional(),dpop_bound_access_tokens_required:D.boolean().optional()}),cf=D.looseObject({issuer:D.string(),authorization_endpoint:sf,token_endpoint:sf,registration_endpoint:sf.optional(),scopes_supported:D.array(D.string()).optional(),response_types_supported:D.array(D.string()),response_modes_supported:D.array(D.string()).optional(),grant_types_supported:D.array(D.string()).optional(),token_endpoint_auth_methods_supported:D.array(D.string()).optional(),token_endpoint_auth_signing_alg_values_supported:D.array(D.string()).optional(),service_documentation:sf.optional(),revocation_endpoint:sf.optional(),revocation_endpoint_auth_methods_supported:D.array(D.string()).optional(),revocation_endpoint_auth_signing_alg_values_supported:D.array(D.string()).optional(),introspection_endpoint:D.string().optional(),introspection_endpoint_auth_methods_supported:D.array(D.string()).optional(),introspection_endpoint_auth_signing_alg_values_supported:D.array(D.string()).optional(),code_challenge_methods_supported:D.array(D.string()).optional(),client_id_metadata_document_supported:D.boolean().optional()}),lf=D.looseObject({issuer:D.string(),authorization_endpoint:sf,token_endpoint:sf,userinfo_endpoint:sf.optional(),jwks_uri:sf,registration_endpoint:sf.optional(),scopes_supported:D.array(D.string()).optional(),response_types_supported:D.array(D.string()),response_modes_supported:D.array(D.string()).optional(),grant_types_supported:D.array(D.string()).optional(),acr_values_supported:D.array(D.string()).optional(),subject_types_supported:D.array(D.string()),id_token_signing_alg_values_supported:D.array(D.string()),id_token_encryption_alg_values_supported:D.array(D.string()).optional(),id_token_encryption_enc_values_supported:D.array(D.string()).optional(),userinfo_signing_alg_values_supported:D.array(D.string()).optional(),userinfo_encryption_alg_values_supported:D.array(D.string()).optional(),userinfo_encryption_enc_values_supported:D.array(D.string()).optional(),request_object_signing_alg_values_supported:D.array(D.string()).optional(),request_object_encryption_alg_values_supported:D.array(D.string()).optional(),request_object_encryption_enc_values_supported:D.array(D.string()).optional(),token_endpoint_auth_methods_supported:D.array(D.string()).optional(),token_endpoint_auth_signing_alg_values_supported:D.array(D.string()).optional(),display_values_supported:D.array(D.string()).optional(),claim_types_supported:D.array(D.string()).optional(),claims_supported:D.array(D.string()).optional(),service_documentation:D.string().optional(),claims_locales_supported:D.array(D.string()).optional(),ui_locales_supported:D.array(D.string()).optional(),claims_parameter_supported:D.boolean().optional(),request_parameter_supported:D.boolean().optional(),request_uri_parameter_supported:D.boolean().optional(),require_request_uri_registration:D.boolean().optional(),op_policy_uri:sf.optional(),op_tos_uri:sf.optional(),client_id_metadata_document_supported:D.boolean().optional()}),D.object({...lf.shape,...cf.pick({code_challenge_methods_supported:!0}).shape}),D.object({access_token:D.string(),id_token:D.string().optional(),token_type:D.string(),expires_in:D.coerce.number().optional(),scope:D.string().optional(),refresh_token:D.string().optional()}).strip(),D.object({issued_token_type:D.literal(`urn:ietf:params:oauth:token-type:id-jag`),access_token:D.string(),token_type:D.string().optional(),expires_in:D.number().optional(),scope:D.string().optional()}).strip(),D.object({error:D.string(),error_description:D.string().optional(),error_uri:D.string().optional()}),uf=sf.optional().or(D.literal(``).transform(()=>void 0)),df=D.object({redirect_uris:D.array(sf),token_endpoint_auth_method:D.string().optional(),grant_types:D.array(D.string()).optional(),response_types:D.array(D.string()).optional(),client_name:D.string().optional(),client_uri:sf.optional(),logo_uri:uf,scope:D.string().optional(),contacts:D.array(D.string()).optional(),tos_uri:uf,policy_uri:D.string().optional(),jwks_uri:sf.optional(),jwks:D.any().optional(),software_id:D.string().optional(),software_version:D.string().optional(),software_statement:D.string().optional()}).strip(),ff=D.object({client_id:D.string(),client_secret:D.string().optional(),client_id_issued_at:D.number().optional(),client_secret_expires_at:D.number().optional()}).strip(),df.merge(ff),D.object({error:D.string(),error_description:D.string().optional()}).strip(),D.object({token:D.string(),token_type_hint:D.string().optional()}).strip(),pf=`2025-11-25`,mf=`2025-03-26`,hf=[pf,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],gf=`io.modelcontextprotocol/related-task`,_f=-32700,vf=-32600,yf=-32601,bf=-32602,xf=-32603,H=function(e){return 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.ResourceNotFound=-32002]=`ResourceNotFound`,e[e.UrlElicitationRequired=-32042]=`UrlElicitationRequired`,e}({}),U=class e extends Error{constructor(e,t,n){super(t),this.code=e,this.data=n,this.name=`ProtocolError`}static fromError(t,n,r){if(t===H.UrlElicitationRequired&&r){let e=r;if(e.elicitations)return new Sf(e.elicitations,n)}return new e(t,n,r)}},Sf=class extends U{constructor(e,t=`URL elicitation${e.length>1?`s`:``} required`){super(H.UrlElicitationRequired,t,{elicitations:e})}get elicitations(){return this.data?.elicitations??[]}},Cf=D.lazy(()=>D.union([D.string(),D.number(),D.boolean(),D.null(),D.record(D.string(),Cf),D.array(Cf)])),wf=D.record(D.string(),Cf),D.array(Cf),Tf=D.union([D.string(),D.number().int()]),Ef=D.string(),D.looseObject({ttl:D.number().optional(),pollInterval:D.number().optional()}),Df=D.object({ttl:D.number().optional()}),Of=D.object({taskId:D.string()}),kf=D.looseObject({progressToken:Tf.optional(),[gf]:Of.optional()}),Af=D.object({_meta:kf.optional()}),jf=Af.extend({task:Df.optional()}),Mf=D.object({method:D.string(),params:Af.loose().optional()}),Nf=D.object({_meta:kf.optional()}),Pf=D.object({method:D.string(),params:Nf.loose().optional()}),Ff=D.looseObject({_meta:kf.optional()}),If=D.union([D.string(),D.number().int()]),Lf=D.object({jsonrpc:D.literal(`2.0`),id:If,...Mf.shape}).strict(),Rf=D.object({jsonrpc:D.literal(`2.0`),...Pf.shape}).strict(),zf=D.object({jsonrpc:D.literal(`2.0`),id:If,result:Ff}).strict(),Bf=D.object({jsonrpc:D.literal(`2.0`),id:If.optional(),error:D.object({code:D.number().int(),message:D.string(),data:D.unknown().optional()})}).strict(),Vf=D.union([Lf,Rf,zf,Bf]),D.union([zf,Bf]),Hf=Ff.strict(),Uf=Nf.extend({requestId:If.optional(),reason:D.string().optional()}),Wf=Pf.extend({method:D.literal(`notifications/cancelled`),params:Uf}),Gf=D.object({src:D.string(),mimeType:D.string().optional(),sizes:D.array(D.string()).optional(),theme:D.enum([`light`,`dark`]).optional()}),Kf=D.object({icons:D.array(Gf).optional()}),qf=D.object({name:D.string(),title:D.string().optional()}),Jf=qf.extend({...qf.shape,...Kf.shape,version:D.string(),websiteUrl:D.string().optional(),description:D.string().optional()}),Yf=D.intersection(D.object({applyDefaults:D.boolean().optional()}),wf),Xf=D.preprocess(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,D.intersection(D.object({form:Yf.optional(),url:wf.optional()}),wf.optional())),Zf=D.looseObject({list:wf.optional(),cancel:wf.optional(),requests:D.looseObject({sampling:D.looseObject({createMessage:wf.optional()}).optional(),elicitation:D.looseObject({create:wf.optional()}).optional()}).optional()}),Qf=D.looseObject({list:wf.optional(),cancel:wf.optional(),requests:D.looseObject({tools:D.looseObject({call:wf.optional()}).optional()}).optional()}),$f=D.object({experimental:D.record(D.string(),wf).optional(),sampling:D.object({context:wf.optional(),tools:wf.optional()}).optional(),elicitation:Xf.optional(),roots:D.object({listChanged:D.boolean().optional()}).optional(),tasks:Zf.optional(),extensions:D.record(D.string(),wf).optional()}),ep=Af.extend({protocolVersion:D.string(),capabilities:$f,clientInfo:Jf}),tp=Mf.extend({method:D.literal(`initialize`),params:ep}),np=D.object({experimental:D.record(D.string(),wf).optional(),logging:wf.optional(),completions:wf.optional(),prompts:D.object({listChanged:D.boolean().optional()}).optional(),resources:D.object({subscribe:D.boolean().optional(),listChanged:D.boolean().optional()}).optional(),tools:D.object({listChanged:D.boolean().optional()}).optional(),tasks:Qf.optional(),extensions:D.record(D.string(),wf).optional()}),rp=Ff.extend({protocolVersion:D.string(),capabilities:np,serverInfo:Jf,instructions:D.string().optional()}),ip=Pf.extend({method:D.literal(`notifications/initialized`),params:Nf.optional()}),ap=Mf.extend({method:D.literal(`ping`),params:Af.optional()}),op=D.object({progress:D.number(),total:D.optional(D.number()),message:D.optional(D.string())}),sp=D.object({...Nf.shape,...op.shape,progressToken:Tf}),cp=Pf.extend({method:D.literal(`notifications/progress`),params:sp}),lp=Af.extend({cursor:Ef.optional()}),up=Mf.extend({params:lp.optional()}),dp=Ff.extend({nextCursor:Ef.optional()}),fp=D.enum([`working`,`input_required`,`completed`,`failed`,`cancelled`]),pp=D.object({taskId:D.string(),status:fp,ttl:D.union([D.number(),D.null()]),createdAt:D.string(),lastUpdatedAt:D.string(),pollInterval:D.optional(D.number()),statusMessage:D.optional(D.string())}),mp=Ff.extend({task:pp}),hp=Nf.merge(pp),gp=Pf.extend({method:D.literal(`notifications/tasks/status`),params:hp}),_p=Mf.extend({method:D.literal(`tasks/get`),params:Af.extend({taskId:D.string()})}),vp=Ff.merge(pp),yp=Mf.extend({method:D.literal(`tasks/result`),params:Af.extend({taskId:D.string()})}),bp=Ff.loose(),xp=up.extend({method:D.literal(`tasks/list`)}),Sp=dp.extend({tasks:D.array(pp)}),Cp=Mf.extend({method:D.literal(`tasks/cancel`),params:Af.extend({taskId:D.string()})}),wp=Ff.merge(pp),Tp=D.object({uri:D.string(),mimeType:D.optional(D.string()),_meta:D.record(D.string(),D.unknown()).optional()}),Ep=Tp.extend({text:D.string()}),Dp=D.string().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),Op=Tp.extend({blob:Dp}),kp=D.enum([`user`,`assistant`]),Ap=D.object({audience:D.array(kp).optional(),priority:D.number().min(0).max(1).optional(),lastModified:D.iso.datetime({offset:!0}).optional()}),jp=D.object({...qf.shape,...Kf.shape,uri:D.string(),description:D.optional(D.string()),mimeType:D.optional(D.string()),size:D.optional(D.number()),annotations:Ap.optional(),_meta:D.optional(D.looseObject({}))}),Mp=D.object({...qf.shape,...Kf.shape,uriTemplate:D.string(),description:D.optional(D.string()),mimeType:D.optional(D.string()),annotations:Ap.optional(),_meta:D.optional(D.looseObject({}))}),Np=up.extend({method:D.literal(`resources/list`)}),Pp=dp.extend({resources:D.array(jp)}),Fp=up.extend({method:D.literal(`resources/templates/list`)}),Ip=dp.extend({resourceTemplates:D.array(Mp)}),Lp=Af.extend({uri:D.string()}),Rp=Lp,zp=Mf.extend({method:D.literal(`resources/read`),params:Rp}),Bp=Ff.extend({contents:D.array(D.union([Ep,Op]))}),Vp=Pf.extend({method:D.literal(`notifications/resources/list_changed`),params:Nf.optional()}),Hp=Lp,Up=Mf.extend({method:D.literal(`resources/subscribe`),params:Hp}),Wp=Lp,Gp=Mf.extend({method:D.literal(`resources/unsubscribe`),params:Wp}),Kp=Nf.extend({uri:D.string()}),qp=Pf.extend({method:D.literal(`notifications/resources/updated`),params:Kp}),Jp=D.object({name:D.string(),description:D.optional(D.string()),required:D.optional(D.boolean())}),Yp=D.object({...qf.shape,...Kf.shape,description:D.optional(D.string()),arguments:D.optional(D.array(Jp)),_meta:D.optional(D.looseObject({}))}),Xp=up.extend({method:D.literal(`prompts/list`)}),Zp=dp.extend({prompts:D.array(Yp)}),Qp=Af.extend({name:D.string(),arguments:D.record(D.string(),D.string()).optional()}),$p=Mf.extend({method:D.literal(`prompts/get`),params:Qp}),em=D.object({type:D.literal(`text`),text:D.string(),annotations:Ap.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),tm=D.object({type:D.literal(`image`),data:Dp,mimeType:D.string(),annotations:Ap.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),nm=D.object({type:D.literal(`audio`),data:Dp,mimeType:D.string(),annotations:Ap.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),rm=D.object({type:D.literal(`tool_use`),name:D.string(),id:D.string(),input:D.record(D.string(),D.unknown()),_meta:D.record(D.string(),D.unknown()).optional()}),im=D.object({type:D.literal(`resource`),resource:D.union([Ep,Op]),annotations:Ap.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),am=jp.extend({type:D.literal(`resource_link`)}),om=D.union([em,tm,nm,am,im]),sm=D.object({role:kp,content:om}),cm=Ff.extend({description:D.string().optional(),messages:D.array(sm)}),lm=Pf.extend({method:D.literal(`notifications/prompts/list_changed`),params:Nf.optional()}),um=D.object({title:D.string().optional(),readOnlyHint:D.boolean().optional(),destructiveHint:D.boolean().optional(),idempotentHint:D.boolean().optional(),openWorldHint:D.boolean().optional()}),dm=D.object({taskSupport:D.enum([`required`,`optional`,`forbidden`]).optional()}),fm=D.object({...qf.shape,...Kf.shape,description:D.string().optional(),inputSchema:D.object({type:D.literal(`object`),properties:D.record(D.string(),Cf).optional(),required:D.array(D.string()).optional()}).catchall(D.unknown()),outputSchema:D.object({type:D.literal(`object`),properties:D.record(D.string(),Cf).optional(),required:D.array(D.string()).optional()}).catchall(D.unknown()).optional(),annotations:um.optional(),execution:dm.optional(),_meta:D.record(D.string(),D.unknown()).optional()}),pm=up.extend({method:D.literal(`tools/list`)}),mm=dp.extend({tools:D.array(fm)}),hm=Ff.extend({content:D.array(om).default([]),structuredContent:D.record(D.string(),D.unknown()).optional(),isError:D.boolean().optional()}),hm.or(Ff.extend({toolResult:D.unknown()})),gm=jf.extend({name:D.string(),arguments:D.record(D.string(),D.unknown()).optional()}),_m=Mf.extend({method:D.literal(`tools/call`),params:gm}),vm=Pf.extend({method:D.literal(`notifications/tools/list_changed`),params:Nf.optional()}),D.object({autoRefresh:D.boolean().default(!0),debounceMs:D.number().int().nonnegative().default(300)}),ym=D.enum([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),bm=Af.extend({level:ym}),xm=Mf.extend({method:D.literal(`logging/setLevel`),params:bm}),Sm=Nf.extend({level:ym,logger:D.string().optional(),data:D.unknown()}),Cm=Pf.extend({method:D.literal(`notifications/message`),params:Sm}),wm=D.object({name:D.string().optional()}),Tm=D.object({hints:D.array(wm).optional(),costPriority:D.number().min(0).max(1).optional(),speedPriority:D.number().min(0).max(1).optional(),intelligencePriority:D.number().min(0).max(1).optional()}),Em=D.object({mode:D.enum([`auto`,`required`,`none`]).optional()}),Dm=D.object({type:D.literal(`tool_result`),toolUseId:D.string().describe(`The unique identifier for the corresponding tool call.`),content:D.array(om).default([]),structuredContent:D.object({}).loose().optional(),isError:D.boolean().optional(),_meta:D.record(D.string(),D.unknown()).optional()}),Om=D.discriminatedUnion(`type`,[em,tm,nm]),km=D.discriminatedUnion(`type`,[em,tm,nm,rm,Dm]),Am=D.object({role:kp,content:D.union([km,D.array(km)]),_meta:D.record(D.string(),D.unknown()).optional()}),jm=jf.extend({messages:D.array(Am),modelPreferences:Tm.optional(),systemPrompt:D.string().optional(),includeContext:D.enum([`none`,`thisServer`,`allServers`]).optional(),temperature:D.number().optional(),maxTokens:D.number().int(),stopSequences:D.array(D.string()).optional(),metadata:wf.optional(),tools:D.array(fm).optional(),toolChoice:Em.optional()}),Mm=Mf.extend({method:D.literal(`sampling/createMessage`),params:jm}),Nm=Ff.extend({model:D.string(),stopReason:D.optional(D.enum([`endTurn`,`stopSequence`,`maxTokens`]).or(D.string())),role:kp,content:Om}),Pm=Ff.extend({model:D.string(),stopReason:D.optional(D.enum([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(D.string())),role:kp,content:D.union([km,D.array(km)])}),Fm=D.object({type:D.literal(`boolean`),title:D.string().optional(),description:D.string().optional(),default:D.boolean().optional()}),Im=D.object({type:D.literal(`string`),title:D.string().optional(),description:D.string().optional(),minLength:D.number().optional(),maxLength:D.number().optional(),format:D.enum([`email`,`uri`,`date`,`date-time`]).optional(),default:D.string().optional()}),Lm=D.object({type:D.enum([`number`,`integer`]),title:D.string().optional(),description:D.string().optional(),minimum:D.number().optional(),maximum:D.number().optional(),default:D.number().optional()}),Rm=D.object({type:D.literal(`string`),title:D.string().optional(),description:D.string().optional(),enum:D.array(D.string()),default:D.string().optional()}),zm=D.object({type:D.literal(`string`),title:D.string().optional(),description:D.string().optional(),oneOf:D.array(D.object({const:D.string(),title:D.string()})),default:D.string().optional()}),Bm=D.object({type:D.literal(`string`),title:D.string().optional(),description:D.string().optional(),enum:D.array(D.string()),enumNames:D.array(D.string()).optional(),default:D.string().optional()}),Vm=D.union([Rm,zm]),Hm=D.object({type:D.literal(`array`),title:D.string().optional(),description:D.string().optional(),minItems:D.number().optional(),maxItems:D.number().optional(),items:D.object({type:D.literal(`string`),enum:D.array(D.string())}),default:D.array(D.string()).optional()}),Um=D.object({type:D.literal(`array`),title:D.string().optional(),description:D.string().optional(),minItems:D.number().optional(),maxItems:D.number().optional(),items:D.object({anyOf:D.array(D.object({const:D.string(),title:D.string()}))}),default:D.array(D.string()).optional()}),Wm=D.union([Hm,Um]),Gm=D.union([Bm,Vm,Wm]),Km=D.union([Gm,Fm,Im,Lm]),qm=jf.extend({mode:D.literal(`form`).optional(),message:D.string(),requestedSchema:D.object({type:D.literal(`object`),properties:D.record(D.string(),Km),required:D.array(D.string()).optional()})}),Jm=jf.extend({mode:D.literal(`url`),message:D.string(),elicitationId:D.string(),url:D.string().url()}),Ym=D.union([qm,Jm]),Xm=Mf.extend({method:D.literal(`elicitation/create`),params:Ym}),Zm=Nf.extend({elicitationId:D.string()}),Qm=Pf.extend({method:D.literal(`notifications/elicitation/complete`),params:Zm}),$m=Ff.extend({action:D.enum([`accept`,`decline`,`cancel`]),content:D.preprocess(e=>e===null?void 0:e,D.record(D.string(),D.union([D.string(),D.number(),D.boolean(),D.array(D.string())])).optional())}),eh=D.object({type:D.literal(`ref/resource`),uri:D.string()}),th=D.object({type:D.literal(`ref/prompt`),name:D.string()}),nh=Af.extend({ref:D.union([th,eh]),argument:D.object({name:D.string(),value:D.string()}),context:D.object({arguments:D.record(D.string(),D.string()).optional()}).optional()}),rh=Mf.extend({method:D.literal(`completion/complete`),params:nh}),ih=Ff.extend({completion:D.looseObject({values:D.array(D.string()).max(100),total:D.optional(D.number().int()),hasMore:D.optional(D.boolean())})}),ah=D.object({uri:D.string().startsWith(`file://`),name:D.string().optional(),_meta:D.record(D.string(),D.unknown()).optional()}),oh=Mf.extend({method:D.literal(`roots/list`),params:Af.optional()}),sh=Ff.extend({roots:D.array(ah)}),ch=Pf.extend({method:D.literal(`notifications/roots/list_changed`),params:Nf.optional()}),lh=D.union([ap,tp,rh,xm,$p,Xp,Np,Fp,zp,Up,Gp,_m,pm,_p,yp,xp,Cp]),uh=D.union([Wf,cp,ip,ch,gp]),D.union([Hf,Nm,Pm,$m,sh,vp,Sp,mp]),dh=D.union([ap,Mm,Xm,oh,_p,yp,xp,Cp]),fh=D.union([Wf,cp,Cm,qp,Vp,vm,lm,gp,Qm]),D.union([Hf,rp,ih,cm,Zp,Pp,Ip,Bp,hm,mm,vp,Sp,mp]),ph={ping:Hf,initialize:rp,"completion/complete":ih,"logging/setLevel":Hf,"prompts/get":cm,"prompts/list":Zp,"resources/list":Pp,"resources/templates/list":Ip,"resources/read":Bp,"resources/subscribe":Hf,"resources/unsubscribe":Hf,"tools/call":D.union([hm,mp]),"tools/list":mm,"sampling/createMessage":D.union([Pm,mp]),"elicitation/create":D.union([$m,mp]),"roots/list":sh,"tasks/get":vp,"tasks/result":Ff,"tasks/list":Sp,"tasks/cancel":wp},mh=wd([...lh.options,...dh.options]),hh=wd([...uh.options,...fh.options]),gh=e=>Lf.safeParse(e).success,_h=e=>Rf.safeParse(e).success,vh=e=>zf.safeParse(e).success,yh=e=>Bf.safeParse(e).success,bh=e=>jf.safeParse(e).success,xh=e=>tp.safeParse(e).success,Sh=e=>ip.safeParse(e).success,Ch=class{_taskStore;_taskMessageQueue;_taskProgressTokens=new Map;_requestResolvers=new Map;_options;_host;constructor(e){this._options=e,this._taskStore=e.taskStore,this._taskMessageQueue=e.taskMessageQueue}bind(e){this._host=e,this._taskStore&&(e.registerHandler(`tasks/get`,async(e,t)=>{let n=e.params;return{...await this.handleGetTask(n.taskId,t.sessionId)}}),e.registerHandler(`tasks/result`,async(t,n)=>{let r=t.params;return await this.handleGetTaskPayload(r.taskId,n.sessionId,n.mcpReq.signal,async t=>{await e.sendOnResponseStream(t,n.mcpReq.id)})}),e.registerHandler(`tasks/list`,async(e,t)=>{let n=e.params;return await this.handleListTasks(n?.cursor,t.sessionId)}),e.registerHandler(`tasks/cancel`,async(e,t)=>{let n=e.params;return await this.handleCancelTask(n.taskId,t.sessionId)}))}get _requireHost(){if(!this._host)throw new U(H.InternalError,`TaskManager is not bound to a Protocol host — call bind() first`);return this._host}get taskStore(){return this._taskStore}get _requireTaskStore(){if(!this._taskStore)throw new U(H.InternalError,`TaskStore is not configured`);return this._taskStore}get taskMessageQueue(){return this._taskMessageQueue}async*requestStream(e,t,n){let r=this._requireHost,{task:i}=n??{};if(!i){try{yield{type:`result`,result:await r.request(e,t,n)}}catch(e){yield{type:`error`,error:e instanceof Error?e:Error(String(e))}}return}let a;try{let i=await r.request(e,mp,n);if(i.task)a=i.task.taskId,yield{type:`taskCreated`,task:i.task};else throw new U(H.InternalError,`Task creation did not return a task`);for(;;){let e=await this.getTask({taskId:a},n);if(yield{type:`taskStatus`,task:e},jd(e.status)){switch(e.status){case`completed`:yield{type:`result`,result:await this.getTaskResult({taskId:a},t,n)};break;case`failed`:yield{type:`error`,error:new U(H.InternalError,`Task ${a} failed`)};break;case`cancelled`:yield{type:`error`,error:new U(H.InternalError,`Task ${a} was cancelled`)}}return}if(e.status===`input_required`){yield{type:`result`,result:await this.getTaskResult({taskId:a},t,n)};return}let r=e.pollInterval??this._options.defaultTaskPollInterval??1e3;await new Promise(e=>setTimeout(e,r)),n?.signal?.throwIfAborted()}}catch(e){yield{type:`error`,error:e instanceof Error?e:Error(String(e))}}}async getTask(e,t){return this._requireHost.request({method:`tasks/get`,params:e},vp,t)}async getTaskResult(e,t,n){return this._requireHost.request({method:`tasks/result`,params:e},t,n)}async listTasks(e,t){return this._requireHost.request({method:`tasks/list`,params:e},Sp,t)}async cancelTask(e,t){return this._requireHost.request({method:`tasks/cancel`,params:e},wp,t)}async handleGetTask(e,t){let n=await this._requireTaskStore.getTask(e,t);if(!n)throw new U(H.InvalidParams,`Failed to retrieve task: Task not found`);return n}async handleGetTaskPayload(e,t,n,r){let i=async()=>{if(this._taskMessageQueue){let n;for(;n=await this._taskMessageQueue.dequeue(e,t);){if(n.type===`response`||n.type===`error`){let e=n.message,t=e.id,r=this._requestResolvers.get(t);if(r){if(this._requestResolvers.delete(t),n.type===`response`)r(e);else{let t=e;r(new U(t.error.code,t.error.message,t.error.data))}}else{let e=n.type===`response`?`Response`:`Error`;this._host?.reportError(Error(`${e} handler missing for request ${t}`))}continue}await r(n.message)}}let a=await this._requireTaskStore.getTask(e,t);if(!a)throw new U(H.InvalidParams,`Task not found: ${e}`);if(!jd(a.status))return await this._waitForTaskUpdate(a.pollInterval,n),await i();let o=await this._requireTaskStore.getTaskResult(e,t);return await this._clearTaskQueue(e),{...o,_meta:{...o._meta,[gf]:{taskId:e}}}};return await i()}async handleListTasks(e,t){try{let{tasks:n,nextCursor:r}=await this._requireTaskStore.listTasks(e,t);return{tasks:n,nextCursor:r,_meta:{}}}catch(e){throw new U(H.InvalidParams,`Failed to list tasks: ${e instanceof Error?e.message:String(e)}`)}}async handleCancelTask(e,t){try{let n=await this._requireTaskStore.getTask(e,t);if(!n)throw new U(H.InvalidParams,`Task not found: ${e}`);if(jd(n.status))throw new U(H.InvalidParams,`Cannot cancel task in terminal status: ${n.status}`);await this._requireTaskStore.updateTaskStatus(e,`cancelled`,`Client cancelled task execution.`,t),await this._clearTaskQueue(e);let r=await this._requireTaskStore.getTask(e,t);if(!r)throw new U(H.InvalidParams,`Task not found after cancellation: ${e}`);return{_meta:{},...r}}catch(e){throw e instanceof U?e:new U(H.InvalidRequest,`Failed to cancel task: ${e instanceof Error?e.message:String(e)}`)}}prepareOutboundRequest(e,t,n,r,i){let{task:a,relatedTask:o}=t??{};a&&(e.params={...e.params,task:a}),o&&(e.params={...e.params,_meta:{...e.params?._meta,[gf]:o}});let s=o?.taskId;return s?(this._requestResolvers.set(n,r),this._enqueueTaskMessage(s,{type:`request`,message:e,timestamp:Date.now()}).catch(e=>{i(e)}),!0):!1}extractInboundTaskContext(e,t){let n=(e.params?._meta)?.[gf]?.taskId,r=bh(e.params)?e.params.task:void 0,i;return this._taskStore&&(i={id:n,store:this.createRequestTaskStore(e,t),requestedTtl:r?.ttl}),!n&&!r&&!i?{}:{relatedTaskId:n,taskCreationParams:r,taskContext:i}}wrapSendNotification(e,t){return async n=>{await t(n,{relatedTask:{taskId:e}})}}wrapSendRequest(e,t,n){return async(r,i,a)=>{let o={...a};e&&!o.relatedTask&&(o.relatedTask={taskId:e});let s=o.relatedTask?.taskId??e;return s&&t&&await t.updateTaskStatus(s,`input_required`),await n(r,i,o)}}handleResponse(e){let t=Number(e.id),n=this._requestResolvers.get(t);return n?(this._requestResolvers.delete(t),vh(e)?n(e):n(new U(e.error.code,e.error.message,e.error.data)),!0):!1}shouldPreserveProgressHandler(e,t){if(vh(e)&&e.result&&typeof e.result==`object`){let n=e.result;if(n.task&&typeof n.task==`object`){let e=n.task;if(typeof e.taskId==`string`)return this._taskProgressTokens.set(e.taskId,t),!0}}return!1}async routeNotification(e,t){let n=t?.relatedTask?.taskId;if(!n)return!1;let r={...e,jsonrpc:`2.0`,params:{...e.params,_meta:{...e.params?._meta,[gf]:t.relatedTask}}};return await this._enqueueTaskMessage(n,{type:`notification`,message:r,timestamp:Date.now()}),!0}async routeResponse(e,t,n){return!e||!this._taskMessageQueue?!1:(await(yh(t)?this._enqueueTaskMessage(e,{type:`error`,message:t,timestamp:Date.now()},n):this._enqueueTaskMessage(e,{type:`response`,message:t,timestamp:Date.now()},n)),!0)}createRequestTaskStore(e,t){let n=this._requireTaskStore,r=this._host;return{createTask:async r=>{if(!e)throw Error(`No request provided`);return await n.createTask(r,e.id,{method:e.method,params:e.params},t)},getTask:async e=>{let r=await n.getTask(e,t);if(!r)throw new U(H.InvalidParams,`Failed to retrieve task: Task not found`);return r},storeTaskResult:async(e,i,a)=>{await n.storeTaskResult(e,i,a,t);let o=await n.getTask(e,t);if(o){let t=gp.parse({method:`notifications/tasks/status`,params:o});await r?.notification(t),jd(o.status)&&this._cleanupTaskProgressHandler(e)}},getTaskResult:e=>n.getTaskResult(e,t),updateTaskStatus:async(e,i,a)=>{let o=await n.getTask(e,t);if(!o)throw new U(H.InvalidParams,`Task "${e}" not found - it may have been cleaned up`);if(jd(o.status))throw new U(H.InvalidParams,`Cannot update task "${e}" from terminal status "${o.status}" to "${i}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await n.updateTaskStatus(e,i,a,t);let s=await n.getTask(e,t);if(s){let t=gp.parse({method:`notifications/tasks/status`,params:s});await r?.notification(t),jd(s.status)&&this._cleanupTaskProgressHandler(e)}},listTasks:e=>n.listTasks(e,t)}}processInboundRequest(e,t){let n=this.extractInboundTaskContext(e,t.sessionId),r=n?.relatedTaskId,i=r?this.wrapSendNotification(r,t.sendNotification):e=>t.sendNotification(e),a=r?this.wrapSendRequest(r,n?.taskContext?.store,t.sendRequest):n?.taskContext?this.wrapSendRequest(``,n.taskContext.store,t.sendRequest):t.sendRequest,o=!!n?.taskCreationParams;return{taskContext:n?.taskContext,sendNotification:i,sendRequest:a,routeResponse:async e=>r?this.routeResponse(r,e,t.sessionId):!1,hasTaskCreationParams:o,validateInbound:o?()=>this._requireHost.assertTaskHandlerCapability(e.method):void 0}}processOutboundRequest(e,t,n,r,i){return this._requireHost.enforceStrictCapabilities&&t?.task&&this._requireHost.assertTaskCapability(e.method),{queued:this.prepareOutboundRequest(e,t,n,r,i)}}processInboundResponse(e,t){return this.handleResponse(e)?{consumed:!0,preserveProgress:!1}:{consumed:!1,preserveProgress:this.shouldPreserveProgressHandler(e,t)}}async processOutboundNotification(e,t){if(await this.routeNotification(e,t))return{queued:!0};let n={...e,jsonrpc:`2.0`};return t?.relatedTask&&(n={...n,params:{...n.params,_meta:{...n.params?._meta,[gf]:t.relatedTask}}}),{queued:!1,jsonrpcNotification:n}}onClose(){this._taskProgressTokens.clear(),this._requestResolvers.clear()}async _enqueueTaskMessage(e,t,n){if(!this._taskStore||!this._taskMessageQueue)throw Error(`Cannot enqueue task message: taskStore and taskMessageQueue are not configured`);await this._taskMessageQueue.enqueue(e,t,n,this._options.maxTaskQueueSize)}async _clearTaskQueue(e,t){if(this._taskMessageQueue){let n=await this._taskMessageQueue.dequeueAll(e,t);for(let t of n)if(t.type===`request`&&gh(t.message)){let n=t.message.id,r=this._requestResolvers.get(n);r?(r(new U(H.InternalError,`Task cancelled or completed`)),this._requestResolvers.delete(n)):this._host?.reportError(Error(`Resolver missing for request ${n} during task ${e} cleanup`))}}}async _waitForTaskUpdate(e,t){let n=e??this._options.defaultTaskPollInterval??1e3;return new Promise((e,r)=>{if(t.aborted){r(new U(H.InvalidRequest,`Request cancelled`));return}let i=setTimeout(e,n);t.addEventListener(`abort`,()=>{clearTimeout(i),r(new U(H.InvalidRequest,`Request cancelled`))},{once:!0})})}_cleanupTaskProgressHandler(e){let t=this._taskProgressTokens.get(e);t!==void 0&&(this._host?.removeProgressHandler(t),this._taskProgressTokens.delete(e))}},wh=class extends Ch{constructor(){super({})}processInboundRequest(e,t){let n=bh(e.params)&&!!e.params.task;return{taskContext:void 0,sendNotification:e=>t.sendNotification(e),sendRequest:t.sendRequest,routeResponse:async()=>!1,hasTaskCreationParams:n,validateInbound:n?()=>this._requireHost.assertTaskHandlerCapability(e.method):void 0}}async processOutboundNotification(e,t){return{queued:!1,jsonrpcNotification:{...e,jsonrpc:`2.0`}}}},Th=6e4,Eh=class{_transport;_requestMessageId=0;_requestHandlers=new Map;_requestHandlerAbortControllers=new Map;_notificationHandlers=new Map;_responseHandlers=new Map;_progressHandlers=new Map;_timeoutInfo=new Map;_pendingDebouncedNotifications=new Set;_taskManager;_supportedProtocolVersions;onclose;onerror;fallbackRequestHandler;fallbackNotificationHandler;constructor(e){this._options=e,this._supportedProtocolVersions=e?.supportedProtocolVersions??hf,this._taskManager=e?.tasks?new Ch(e.tasks):new wh,this._bindTaskManager(),this.setNotificationHandler(`notifications/cancelled`,e=>{this._oncancel(e)}),this.setNotificationHandler(`notifications/progress`,e=>{this._onprogress(e)}),this.setRequestHandler(`ping`,e=>({}))}get taskManager(){return this._taskManager}_bindTaskManager(){let e=this._taskManager,t={request:(e,t,n)=>this._requestWithSchema(e,t,n),notification:(e,t)=>this.notification(e,t),reportError:e=>this._onerror(e),removeProgressHandler:e=>this._progressHandlers.delete(e),registerHandler:(e,t)=>{let n=Td(e);this._requestHandlers.set(e,(e,r)=>(n.parse(e),t(e,r)))},sendOnResponseStream:async(e,t)=>{await this._transport?.send(e,{relatedRequestId:t})},enforceStrictCapabilities:this._options?.enforceStrictCapabilities===!0,assertTaskCapability:e=>this.assertTaskCapability(e),assertTaskHandlerCapability:e=>this.assertTaskHandlerCapability(e)};e.bind(t)}async _oncancel(e){e.params.requestId&&this._requestHandlerAbortControllers.get(e.params.requestId)?.abort(e.params.reason)}_setupTimeout(e,t,n,r,i=!1){this._timeoutInfo.set(e,{timeoutId:setTimeout(r,t),startTime:Date.now(),timeout:t,maxTotalTimeout:n,resetTimeoutOnProgress:i,onTimeout:r})}_resetTimeout(e){let t=this._timeoutInfo.get(e);if(!t)return!1;let n=Date.now()-t.startTime;if(t.maxTotalTimeout&&n>=t.maxTotalTimeout)throw this._timeoutInfo.delete(e),new V(B.RequestTimeout,`Maximum total timeout exceeded`,{maxTotalTimeout:t.maxTotalTimeout,totalElapsed:n});return clearTimeout(t.timeoutId),t.timeoutId=setTimeout(t.onTimeout,t.timeout),!0}_cleanupTimeout(e){let t=this._timeoutInfo.get(e);t&&(clearTimeout(t.timeoutId),this._timeoutInfo.delete(e))}async connect(e){this._transport=e;let t=this.transport?.onclose;this._transport.onclose=()=>{try{t?.()}finally{this._onclose()}};let n=this.transport?.onerror;this._transport.onerror=e=>{n?.(e),this._onerror(e)};let r=this._transport?.onmessage;this._transport.onmessage=(e,t)=>{r?.(e,t),vh(e)||yh(e)?this._onresponse(e):gh(e)?this._onrequest(e,t):_h(e)?this._onnotification(e):this._onerror(Error(`Unknown message type: ${JSON.stringify(e)}`))},e.setSupportedProtocolVersions?.(this._supportedProtocolVersions),await this._transport.start()}_onclose(){let e=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskManager.onClose(),this._pendingDebouncedNotifications.clear();for(let e of this._timeoutInfo.values())clearTimeout(e.timeoutId);this._timeoutInfo.clear();let t=this._requestHandlerAbortControllers;this._requestHandlerAbortControllers=new Map;let n=new V(B.ConnectionClosed,`Connection closed`);this._transport=void 0;try{this.onclose?.()}finally{for(let t of e.values())t(n);for(let e of t.values())e.abort(n)}}_onerror(e){this.onerror?.(e)}_onnotification(e){let t=this._notificationHandlers.get(e.method)??this.fallbackNotificationHandler;t!==void 0&&Promise.resolve().then(()=>t(e)).catch(e=>this._onerror(Error(`Uncaught error in notification handler: ${e}`)))}_onrequest(e,t){let n=this._requestHandlers.get(e.method)??this.fallbackRequestHandler,r=this._transport,i={sessionId:r?.sessionId,sendNotification:(t,n)=>this.notification(t,{...n,relatedRequestId:e.id}),sendRequest:(t,n,r)=>this._requestWithSchema(t,n,{...r,relatedRequestId:e.id})},a=this._taskManager.processInboundRequest(e,i),o=a.sendNotification,s=a.sendRequest,c=a.taskContext,l=a.routeResponse,u=[];if(a.validateInbound&&u.push(a.validateInbound),n===void 0){let t={jsonrpc:`2.0`,id:e.id,error:{code:H.MethodNotFound,message:`Method not found`}};l(t).then(e=>{e||r?.send(t).catch(e=>this._onerror(Error(`Failed to send an error response: ${e}`)))}).catch(e=>this._onerror(Error(`Failed to enqueue error response: ${e}`)));return}let d=new AbortController;this._requestHandlerAbortControllers.set(e.id,d);let f={sessionId:r?.sessionId,mcpReq:{id:e.id,method:e.method,_meta:e.params?._meta,signal:d.signal,send:(e,t)=>s(e,Cd(e.method),t),notify:o},http:t?.authInfo?{authInfo:t.authInfo}:void 0,task:c},p=this.buildContext(f,t);Promise.resolve().then(()=>{for(let e of u)e()}).then(()=>n(e,p)).then(async t=>{if(d.signal.aborted)return;let n={result:t,jsonrpc:`2.0`,id:e.id};await l(n)||await r?.send(n)},async t=>{if(d.signal.aborted)return;let n={jsonrpc:`2.0`,id:e.id,error:{code:Number.isSafeInteger(t.code)?t.code:H.InternalError,message:t.message??`Internal error`,...t.data!==void 0&&{data:t.data}}};await l(n)||await r?.send(n)}).catch(e=>this._onerror(Error(`Failed to send response: ${e}`))).finally(()=>{this._requestHandlerAbortControllers.get(e.id)===d&&this._requestHandlerAbortControllers.delete(e.id)})}_onprogress(e){let{progressToken:t,...n}=e.params,r=Number(t),i=this._progressHandlers.get(r);if(!i){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(e)}`));return}let a=this._responseHandlers.get(r),o=this._timeoutInfo.get(r);if(o&&a&&o.resetTimeoutOnProgress)try{this._resetTimeout(r)}catch(e){this._responseHandlers.delete(r),this._progressHandlers.delete(r),this._cleanupTimeout(r),a(e);return}i(n)}_onresponse(e){let t=Number(e.id),n=this._taskManager.processInboundResponse(e,t);if(n.consumed)return;let r=n.preserveProgress,i=this._responseHandlers.get(t);if(i===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(e)}`));return}this._responseHandlers.delete(t),this._cleanupTimeout(t),r||this._progressHandlers.delete(t),vh(e)?i(e):i(U.fromError(e.error.code,e.error.message,e.error.data))}get transport(){return this._transport}async close(){await this._transport?.close()}request(e,t){let n=Cd(e.method);return this._requestWithSchema(e,n,t)}_requestWithSchema(e,t,n){let{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}=n??{},o,s;return new Promise((c,l)=>{let u=e=>{l(e)};if(!this._transport){u(Error(`Not connected`));return}if(this._options?.enforceStrictCapabilities===!0)try{this.assertCapabilityForMethod(e.method)}catch(e){u(e);return}n?.signal?.throwIfAborted();let d=this._requestMessageId++;s=d;let f={...e,jsonrpc:`2.0`,id:d};n?.onprogress&&(this._progressHandlers.set(d,n.onprogress),f.params={...e.params,_meta:{...e.params?._meta,progressToken:d}});let p=e=>{this._progressHandlers.delete(d),this._transport?.send({jsonrpc:`2.0`,method:`notifications/cancelled`,params:{requestId:d,reason:String(e)}},{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>this._onerror(Error(`Failed to send cancellation: ${e}`))),l(e instanceof V?e:new V(B.RequestTimeout,String(e)))};this._responseHandlers.set(d,e=>{if(!n?.signal?.aborted){if(e instanceof Error)return l(e);try{let n=Ad(t,e.result);n.success?c(n.data):l(n.error)}catch(e){l(e)}}}),o=()=>p(n?.signal?.reason),n?.signal?.addEventListener(`abort`,o,{once:!0});let m=n?.timeout??6e4;this._setupTimeout(d,m,n?.maxTotalTimeout,()=>p(new V(B.RequestTimeout,`Request timed out`,{timeout:m})),n?.resetTimeoutOnProgress??!1);let h=e=>{let t=this._responseHandlers.get(d);t?t(e):this._onerror(Error(`Response handler missing for side-channeled request ${d}`))},g=!1;try{this._taskManager.processOutboundRequest(f,n,d,h,e=>{this._progressHandlers.delete(d),l(e)}).queued&&(g=!0)}catch(e){this._progressHandlers.delete(d),l(e);return}g||this._transport.send(f,{relatedRequestId:r,resumptionToken:i,onresumptiontoken:a}).catch(e=>{this._progressHandlers.delete(d),l(e)})}).finally(()=>{o&&n?.signal?.removeEventListener(`abort`,o),s!==void 0&&(this._responseHandlers.delete(s),this._cleanupTimeout(s))})}async notification(e,t){if(!this._transport)throw new V(B.NotConnected,`Not connected`);this.assertNotificationCapability(e.method);let n=await this._taskManager.processOutboundNotification(e,t),r=n.queued,i=n.queued?void 0:n.jsonrpcNotification;if(!r){if((this._options?.debouncedNotificationMethods??[]).includes(e.method)&&!e.params&&!t?.relatedRequestId&&!t?.relatedTask){if(this._pendingDebouncedNotifications.has(e.method))return;this._pendingDebouncedNotifications.add(e.method),Promise.resolve().then(()=>{this._pendingDebouncedNotifications.delete(e.method),this._transport&&this._transport?.send(i,t).catch(e=>this._onerror(e))});return}await this._transport.send(i,t)}}setRequestHandler(e,t){this.assertRequestHandlerCapability(e);let n=Td(e);this._requestHandlers.set(e,(e,r)=>{let i=n.parse(e);return Promise.resolve(t(i,r))})}removeRequestHandler(e){this._requestHandlers.delete(e)}assertCanSetRequestHandler(e){if(this._requestHandlers.has(e))throw Error(`A request handler for ${e} already exists, which would be overridden`)}setNotificationHandler(e,t){let n=Ed(e);this._notificationHandlers.set(e,e=>{let r=n.parse(e);return Promise.resolve(t(r))})}removeNotificationHandler(e){this._notificationHandlers.delete(e)}},Dh=class{_buffer;append(e){this._buffer=this._buffer?Buffer.concat([this._buffer,e]):e}readMessage(){for(;this._buffer;){let e=this._buffer.indexOf(`
176
+ `);if(e===-1)return null;let t=this._buffer.toString(`utf8`,0,e).replace(/\r$/,``);this._buffer=this._buffer.subarray(e+1);try{return Ld(t)}catch(e){if(e instanceof SyntaxError)continue;throw e}}return null}clear(){this._buffer=void 0}},Oh=/^[A-Za-z0-9._-]{1,128}$/,kh=1e6,Ah=1e6,jh=1e4,Mh=1e6,Nh=class e{static isTemplate(e){return/\{[^}\s]+\}/.test(e)}static validateLength(e,t,n){if(e.length>t)throw Error(`${n} exceeds maximum length of ${t} characters (got ${e.length})`)}template;parts;get variableNames(){return this.parts.flatMap(e=>typeof e==`string`?[]:e.names)}constructor(t){e.validateLength(t,kh,`Template`),this.template=t,this.parts=this.parse(t)}toString(){return this.template}parse(t){let n=[],r=``,i=0,a=0;for(;i<t.length;)if(t[i]===`{`){r&&=(n.push(r),``);let o=t.indexOf(`}`,i);if(o===-1)throw Error(`Unclosed template expression`);if(a++,a>jh)throw Error(`Template contains too many expressions (max ${jh})`);let s=t.slice(i+1,o),c=this.getOperator(s),l=s.includes(`*`),u=this.getNames(s),d=u[0];for(let t of u)e.validateLength(t,Ah,`Variable name`);n.push({name:d,operator:c,names:u,exploded:l}),i=o+1}else r+=t[i],i++;return r&&n.push(r),n}getOperator(e){return[`+`,`#`,`.`,`/`,`?`,`&`].find(t=>e.startsWith(t))||``}getNames(e){let t=this.getOperator(e);return e.slice(t.length).split(`,`).map(e=>e.replace(`*`,``).trim()).filter(e=>e.length>0)}encodeValue(t,n){return e.validateLength(t,Ah,`Variable value`),n===`+`||n===`#`?encodeURI(t):encodeURIComponent(t)}expandPart(e,t){if(e.operator===`?`||e.operator===`&`){let n=e.names.map(n=>{let r=t[n];return r===void 0?``:`${n}=${Array.isArray(r)?r.map(t=>this.encodeValue(t,e.operator)).join(`,`):this.encodeValue(r.toString(),e.operator)}`}).filter(e=>e.length>0);return n.length===0?``:(e.operator===`?`?`?`:`&`)+n.join(`&`)}if(e.names.length>1){let n=e.names.map(e=>t[e]).filter(e=>e!==void 0);return n.length===0?``:n.map(e=>Array.isArray(e)?e[0]:e).join(`,`)}let n=t[e.name];if(n===void 0)return``;let r=(Array.isArray(n)?n:[n]).map(t=>this.encodeValue(t,e.operator));switch(e.operator){case``:return r.join(`,`);case`+`:return r.join(`,`);case`#`:return`#`+r.join(`,`);case`.`:return`.`+r.join(`.`);case`/`:return`/`+r.join(`/`);default:return r.join(`,`)}}expand(e){let t=``,n=!1;for(let r of this.parts){if(typeof r==`string`){t+=r;continue}let i=this.expandPart(r,e);i&&(t+=(r.operator===`?`||r.operator===`&`)&&n?i.replace(`?`,`&`):i,(r.operator===`?`||r.operator===`&`)&&(n=!0))}return t}escapeRegExp(e){return e.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`)}partToRegExp(t){let n=[];for(let n of t.names)e.validateLength(n,Ah,`Variable name`);if(t.operator===`?`||t.operator===`&`){for(let e=0;e<t.names.length;e++){let r=t.names[e],i=e===0?`\\`+t.operator:`&`;n.push({pattern:i+this.escapeRegExp(r)+`=([^&]+)`,name:r})}return n}let r,i=t.name;switch(t.operator){case``:r=t.exploded?`([^/,]+(?:,[^/,]+)*)`:`([^/,]+)`;break;case`+`:case`#`:r=`(.+)`;break;case`.`:r=String.raw`\.([^/,]+)`;break;case`/`:r=`/`+(t.exploded?`([^/,]+(?:,[^/,]+)*)`:`([^/,]+)`);break;default:r=`([^/]+)`}return n.push({pattern:r,name:i}),n}match(t){e.validateLength(t,kh,`URI`);let n=`^`,r=[];for(let e of this.parts)if(typeof e==`string`)n+=this.escapeRegExp(e);else{let t=this.partToRegExp(e);for(let{pattern:i,name:a}of t)n+=i,r.push({name:a,exploded:e.exploded})}n+=`$`,e.validateLength(n,Mh,`Generated regex pattern`);let i=new RegExp(n),a=t.match(i);if(!a)return null;let o={};for(let[e,t]of r.entries()){let{name:n,exploded:r}=t,i=a[e+1],s=n.replace(`*`,``);o[s]=r&&i.includes(`,`)?i.split(`,`):i}return o}},Ph=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.regexpCode=e.getEsmExportName=e.getProperty=e.safeStringify=e.stringify=e.strConcat=e.addCodeArg=e.str=e._=e.nil=e._Code=e.Name=e.IDENTIFIER=e._CodeOrName=void 0;var t=class{};e._CodeOrName=t,e.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var n=class extends t{constructor(t){if(super(),!e.IDENTIFIER.test(t))throw Error(`CodeGen: name must be a valid identifier`);this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};e.Name=n;var r=class extends t{constructor(e){super(),this._items=typeof e==`string`?[e]:e}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let e=this._items[0];return e===``||e===`""`}get str(){return this._str??=this._items.reduce((e,t)=>`${e}${t}`,``)}get names(){return this._names??=this._items.reduce((e,t)=>(t instanceof n&&(e[t.str]=(e[t.str]||0)+1),e),{})}};e._Code=r,e.nil=new r(``);function i(e,...t){let n=[e[0]],i=0;for(;i<t.length;)s(n,t[i]),n.push(e[++i]);return new r(n)}e._=i;let a=new r(`+`);function o(e,...t){let n=[p(e[0])],i=0;for(;i<t.length;)n.push(a),s(n,t[i]),n.push(a,p(e[++i]));return c(n),new r(n)}e.str=o;function s(e,t){t instanceof r?e.push(...t._items):t instanceof n?e.push(t):e.push(d(t))}e.addCodeArg=s;function c(e){let t=1;for(;t<e.length-1;){if(e[t]===a){let n=l(e[t-1],e[t+1]);if(n!==void 0){e.splice(t-1,3,n);continue}e[t++]=`+`}t++}}function l(e,t){if(t===`""`)return e;if(e===`""`)return t;if(typeof e==`string`)return t instanceof n||e[e.length-1]!==`"`?void 0:typeof t==`string`?t[0]===`"`?e.slice(0,-1)+t.slice(1):void 0:`${e.slice(0,-1)}${t}"`;if(typeof t==`string`&&t[0]===`"`&&!(e instanceof n))return`"${e}${t.slice(1)}`}function u(e,t){return t.emptyStr()?e:e.emptyStr()?t:o`${e}${t}`}e.strConcat=u;function d(e){return typeof e==`number`||typeof e==`boolean`||e===null?e:p(Array.isArray(e)?e.join(`,`):e)}function f(e){return new r(p(e))}e.stringify=f;function p(e){return JSON.stringify(e).replace(/\u2028/g,`\\u2028`).replace(/\u2029/g,`\\u2029`)}e.safeStringify=p;function m(t){return typeof t==`string`&&e.IDENTIFIER.test(t)?new r(`.${t}`):i`[${t}]`}e.getProperty=m;function h(t){if(typeof t==`string`&&e.IDENTIFIER.test(t))return new r(`${t}`);throw Error(`CodeGen: invalid export name: ${t}, use explicit $id name mapping`)}e.getEsmExportName=h;function g(e){return new r(e.toString())}e.regexpCode=g})),Fh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ValueScope=e.ValueScopeName=e.Scope=e.varKinds=e.UsedValueState=void 0;let t=Ph();var n=class extends Error{constructor(e){super(`CodeGen: "code" for ${e} not defined`),this.value=e.value}},r;(function(e){e[e.Started=0]=`Started`,e[e.Completed=1]=`Completed`})(r||(e.UsedValueState=r={})),e.varKinds={const:new t.Name(`const`),let:new t.Name(`let`),var:new t.Name(`var`)};var i=class{constructor({prefixes:e,parent:t}={}){this._names={},this._prefixes=e,this._parent=t}toName(e){return e instanceof t.Name?e:this.name(e)}name(e){return new t.Name(this._newName(e))}_newName(e){let t=this._names[e]||this._nameGroup(e);return`${e}${t.index++}`}_nameGroup(e){if((this._parent?._prefixes)?.has(e)||this._prefixes&&!this._prefixes.has(e))throw Error(`CodeGen: prefix "${e}" is not allowed in this scope`);return this._names[e]={prefix:e,index:0}}};e.Scope=i;var a=class extends t.Name{constructor(e,t){super(t),this.prefix=e}setValue(e,{property:n,itemIndex:r}){this.value=e,this.scopePath=(0,t._)`.${new t.Name(n)}[${r}]`}};e.ValueScopeName=a;let o=(0,t._)`\n`;e.ValueScope=class extends i{constructor(e){super(e),this._values={},this._scope=e.scope,this.opts={...e,_n:e.lines?o:t.nil}}get(){return this._scope}name(e){return new a(e,this._newName(e))}value(e,t){if(t.ref===void 0)throw Error(`CodeGen: ref must be passed in value`);let n=this.toName(e),{prefix:r}=n,i=t.key??t.ref,a=this._values[r];if(a){let e=a.get(i);if(e)return e}else a=this._values[r]=new Map;a.set(i,n);let o=this._scope[r]||(this._scope[r]=[]),s=o.length;return o[s]=t.ref,n.setValue(t,{property:r,itemIndex:s}),n}getValue(e,t){let n=this._values[e];if(n)return n.get(t)}scopeRefs(e,n=this._values){return this._reduceValues(n,n=>{if(n.scopePath===void 0)throw Error(`CodeGen: name "${n}" has no value`);return(0,t._)`${e}${n.scopePath}`})}scopeCode(e=this._values,t,n){return this._reduceValues(e,e=>{if(e.value===void 0)throw Error(`CodeGen: name "${e}" has no value`);return e.value.code},t,n)}_reduceValues(i,a,o={},s){let c=t.nil;for(let l in i){let u=i[l];if(!u)continue;let d=o[l]=o[l]||new Map;u.forEach(i=>{if(d.has(i))return;d.set(i,r.Started);let o=a(i);if(o){let n=this.opts.es5?e.varKinds.var:e.varKinds.const;c=(0,t._)`${c}${n} ${i} = ${o};${this.opts._n}`}else if(o=s?.(i))c=(0,t._)`${c}${o}${this.opts._n}`;else throw new n(i);d.set(i,r.Completed)})}return c}}})),W=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.or=e.and=e.not=e.CodeGen=e.operators=e.varKinds=e.ValueScopeName=e.ValueScope=e.Scope=e.Name=e.regexpCode=e.stringify=e.getProperty=e.nil=e.strConcat=e.str=e._=void 0;let t=Ph(),n=Fh();var r=Ph();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return r._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return r.str}}),Object.defineProperty(e,"strConcat",{enumerable:!0,get:function(){return r.strConcat}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return r.nil}}),Object.defineProperty(e,"getProperty",{enumerable:!0,get:function(){return r.getProperty}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return r.stringify}}),Object.defineProperty(e,"regexpCode",{enumerable:!0,get:function(){return r.regexpCode}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return r.Name}});var i=Fh();Object.defineProperty(e,"Scope",{enumerable:!0,get:function(){return i.Scope}}),Object.defineProperty(e,"ValueScope",{enumerable:!0,get:function(){return i.ValueScope}}),Object.defineProperty(e,"ValueScopeName",{enumerable:!0,get:function(){return i.ValueScopeName}}),Object.defineProperty(e,"varKinds",{enumerable:!0,get:function(){return i.varKinds}}),e.operators={GT:new t._Code(`>`),GTE:new t._Code(`>=`),LT:new t._Code(`<`),LTE:new t._Code(`<=`),EQ:new t._Code(`===`),NEQ:new t._Code(`!==`),NOT:new t._Code(`!`),OR:new t._Code(`||`),AND:new t._Code(`&&`),ADD:new t._Code(`+`)};var a=class{optimizeNodes(){return this}optimizeNames(e,t){return this}},o=class extends a{constructor(e,t,n){super(),this.varKind=e,this.name=t,this.rhs=n}render({es5:e,_n:t}){let r=e?n.varKinds.var:this.varKind,i=this.rhs===void 0?``:` = ${this.rhs}`;return`${r} ${this.name}${i};`+t}optimizeNames(e,t){if(e[this.name.str])return this.rhs&&=te(this.rhs,e,t),this}get names(){return this.rhs instanceof t._CodeOrName?this.rhs.names:{}}},s=class extends a{constructor(e,t,n){super(),this.lhs=e,this.rhs=t,this.sideEffects=n}render({_n:e}){return`${this.lhs} = ${this.rhs};`+e}optimizeNames(e,n){if(!(this.lhs instanceof t.Name&&!e[this.lhs.str]&&!this.sideEffects))return this.rhs=te(this.rhs,e,n),this}get names(){return D(this.lhs instanceof t.Name?{}:{...this.lhs.names},this.rhs)}},c=class extends s{constructor(e,t,n,r){super(e,n,r),this.op=t}render({_n:e}){return`${this.lhs} ${this.op}= ${this.rhs};`+e}},l=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`${this.label}:`+e}},u=class extends a{constructor(e){super(),this.label=e,this.names={}}render({_n:e}){return`break${this.label?` ${this.label}`:``};`+e}},d=class extends a{constructor(e){super(),this.error=e}render({_n:e}){return`throw ${this.error};`+e}get names(){return this.error.names}},f=class extends a{constructor(e){super(),this.code=e}render({_n:e}){return`${this.code};`+e}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(e,t){return this.code=te(this.code,e,t),this}get names(){return this.code instanceof t._CodeOrName?this.code.names:{}}},p=class extends a{constructor(e=[]){super(),this.nodes=e}render(e){return this.nodes.reduce((t,n)=>t+n.render(e),``)}optimizeNodes(){let{nodes:e}=this,t=e.length;for(;t--;){let n=e[t].optimizeNodes();Array.isArray(n)?e.splice(t,1,...n):n?e[t]=n:e.splice(t,1)}return e.length>0?this:void 0}optimizeNames(e,t){let{nodes:n}=this,r=n.length;for(;r--;){let i=n[r];i.optimizeNames(e,t)||(O(e,i.names),n.splice(r,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((e,t)=>E(e,t.names),{})}},m=class extends p{render(e){return`{`+e._n+super.render(e)+`}`+e._n}},h=class extends p{},g=class extends m{};g.kind=`else`;var _=class e extends m{constructor(e,t){super(t),this.condition=e}render(e){let t=`if(${this.condition})`+super.render(e);return this.else&&(t+=`else `+this.else.render(e)),t}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let n=this.else;if(n){let e=n.optimizeNodes();n=this.else=Array.isArray(e)?new g(e):e}if(n)return t===!1?n instanceof e?n:n.nodes:this.nodes.length?this:new e(ne(t),n instanceof e?[n]:n.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(e,t){if(this.else=this.else?.optimizeNames(e,t),super.optimizeNames(e,t)||this.else)return this.condition=te(this.condition,e,t),this}get names(){let e=super.names;return D(e,this.condition),this.else&&E(e,this.else.names),e}};_.kind=`if`;var v=class extends m{};v.kind=`for`;var y=class extends v{constructor(e){super(),this.iteration=e}render(e){return`for(${this.iteration})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iteration=te(this.iteration,e,t),this}get names(){return E(super.names,this.iteration.names)}},b=class extends v{constructor(e,t,n,r){super(),this.varKind=e,this.name=t,this.from=n,this.to=r}render(e){let t=e.es5?n.varKinds.var:this.varKind,{name:r,from:i,to:a}=this;return`for(${t} ${r}=${i}; ${r}<${a}; ${r}++)`+super.render(e)}get names(){return D(D(super.names,this.from),this.to)}},x=class extends v{constructor(e,t,n,r){super(),this.loop=e,this.varKind=t,this.name=n,this.iterable=r}render(e){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(e)}optimizeNames(e,t){if(super.optimizeNames(e,t))return this.iterable=te(this.iterable,e,t),this}get names(){return E(super.names,this.iterable.names)}},S=class extends m{constructor(e,t,n){super(),this.name=e,this.args=t,this.async=n}render(e){return`${this.async?`async `:``}function ${this.name}(${this.args})`+super.render(e)}};S.kind=`func`;var C=class extends p{render(e){return`return `+super.render(e)}};C.kind=`return`;var w=class extends m{render(e){let t=`try`+super.render(e);return this.catch&&(t+=this.catch.render(e)),this.finally&&(t+=this.finally.render(e)),t}optimizeNodes(){var e,t;return super.optimizeNodes(),(e=this.catch)==null||e.optimizeNodes(),(t=this.finally)==null||t.optimizeNodes(),this}optimizeNames(e,t){var n,r;return super.optimizeNames(e,t),(n=this.catch)==null||n.optimizeNames(e,t),(r=this.finally)==null||r.optimizeNames(e,t),this}get names(){let e=super.names;return this.catch&&E(e,this.catch.names),this.finally&&E(e,this.finally.names),e}},T=class extends m{constructor(e){super(),this.error=e}render(e){return`catch(${this.error})`+super.render(e)}};T.kind=`catch`;var ee=class extends m{render(e){return`finally`+super.render(e)}};ee.kind=`finally`,e.CodeGen=class{constructor(e,t={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...t,_n:t.lines?`
177
+ `:``},this._extScope=e,this._scope=new n.Scope({parent:e}),this._nodes=[new h]}toString(){return this._root.render(this.opts)}name(e){return this._scope.name(e)}scopeName(e){return this._extScope.name(e)}scopeValue(e,t){let n=this._extScope.value(e,t);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(e,t){return this._extScope.getValue(e,t)}scopeRefs(e){return this._extScope.scopeRefs(e,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(e,t,n,r){let i=this._scope.toName(t);return n!==void 0&&r&&(this._constants[i.str]=n),this._leafNode(new o(e,i,n)),i}const(e,t,r){return this._def(n.varKinds.const,e,t,r)}let(e,t,r){return this._def(n.varKinds.let,e,t,r)}var(e,t,r){return this._def(n.varKinds.var,e,t,r)}assign(e,t,n){return this._leafNode(new s(e,t,n))}add(t,n){return this._leafNode(new c(t,e.operators.ADD,n))}code(e){return typeof e==`function`?e():e!==t.nil&&this._leafNode(new f(e)),this}object(...e){let n=[`{`];for(let[r,i]of e)n.length>1&&n.push(`,`),n.push(r),(r!==i||this.opts.es5)&&(n.push(`:`),(0,t.addCodeArg)(n,i));return n.push(`}`),new t._Code(n)}if(e,t,n){if(this._blockNode(new _(e)),t&&n)this.code(t).else().code(n).endIf();else if(t)this.code(t).endIf();else if(n)throw Error(`CodeGen: "else" body without "then" body`);return this}elseIf(e){return this._elseNode(new _(e))}else(){return this._elseNode(new g)}endIf(){return this._endBlockNode(_,g)}_for(e,t){return this._blockNode(e),t&&this.code(t).endFor(),this}for(e,t){return this._for(new y(e),t)}forRange(e,t,r,i,a=this.opts.es5?n.varKinds.var:n.varKinds.let){let o=this._scope.toName(e);return this._for(new b(a,o,t,r),()=>i(o))}forOf(e,r,i,a=n.varKinds.const){let o=this._scope.toName(e);if(this.opts.es5){let e=r instanceof t.Name?r:this.var(`_arr`,r);return this.forRange(`_i`,0,(0,t._)`${e}.length`,n=>{this.var(o,(0,t._)`${e}[${n}]`),i(o)})}return this._for(new x(`of`,a,o,r),()=>i(o))}forIn(e,r,i,a=this.opts.es5?n.varKinds.var:n.varKinds.const){if(this.opts.ownProperties)return this.forOf(e,(0,t._)`Object.keys(${r})`,i);let o=this._scope.toName(e);return this._for(new x(`in`,a,o,r),()=>i(o))}endFor(){return this._endBlockNode(v)}label(e){return this._leafNode(new l(e))}break(e){return this._leafNode(new u(e))}return(e){let t=new C;if(this._blockNode(t),this.code(e),t.nodes.length!==1)throw Error(`CodeGen: "return" should have one node`);return this._endBlockNode(C)}try(e,t,n){if(!t&&!n)throw Error(`CodeGen: "try" without "catch" and "finally"`);let r=new w;if(this._blockNode(r),this.code(e),t){let e=this.name(`e`);this._currNode=r.catch=new T(e),t(e)}return n&&(this._currNode=r.finally=new ee,this.code(n)),this._endBlockNode(T,ee)}throw(e){return this._leafNode(new d(e))}block(e,t){return this._blockStarts.push(this._nodes.length),e&&this.code(e).endBlock(t),this}endBlock(e){let t=this._blockStarts.pop();if(t===void 0)throw Error(`CodeGen: not in self-balancing block`);let n=this._nodes.length-t;if(n<0||e!==void 0&&n!==e)throw Error(`CodeGen: wrong number of nodes: ${n} vs ${e} expected`);return this._nodes.length=t,this}func(e,n=t.nil,r,i){return this._blockNode(new S(e,n,r)),i&&this.code(i).endFunc(),this}endFunc(){return this._endBlockNode(S)}optimize(e=1){for(;e-->0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(e){return this._currNode.nodes.push(e),this}_blockNode(e){this._currNode.nodes.push(e),this._nodes.push(e)}_endBlockNode(e,t){let n=this._currNode;if(n instanceof e||t&&n instanceof t)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${t?`${e.kind}/${t.kind}`:e.kind}"`)}_elseNode(e){let t=this._currNode;if(!(t instanceof _))throw Error(`CodeGen: "else" without "if"`);return this._currNode=t.else=e,this}get _root(){return this._nodes[0]}get _currNode(){let e=this._nodes;return e[e.length-1]}set _currNode(e){let t=this._nodes;t[t.length-1]=e}};function E(e,t){for(let n in t)e[n]=(e[n]||0)+(t[n]||0);return e}function D(e,n){return n instanceof t._CodeOrName?E(e,n.names):e}function te(e,n,r){if(e instanceof t.Name)return i(e);if(!a(e))return e;return new t._Code(e._items.reduce((e,n)=>(n instanceof t.Name&&(n=i(n)),n instanceof t._Code?e.push(...n._items):e.push(n),e),[]));function i(e){let t=r[e.str];return t===void 0||n[e.str]!==1?e:(delete n[e.str],t)}function a(e){return e instanceof t._Code&&e._items.some(e=>e instanceof t.Name&&n[e.str]===1&&r[e.str]!==void 0)}}function O(e,t){for(let n in t)e[n]=(e[n]||0)-(t[n]||0)}function ne(e){return typeof e==`boolean`||typeof e==`number`||e===null?!e:(0,t._)`!${ae(e)}`}e.not=ne;let k=ie(e.operators.AND);function A(...e){return e.reduce(k)}e.and=A;let j=ie(e.operators.OR);function re(...e){return e.reduce(j)}e.or=re;function ie(e){return(n,r)=>n===t.nil?r:r===t.nil?n:(0,t._)`${ae(n)} ${e} ${ae(r)}`}function ae(e){return e instanceof t.Name?e:(0,t._)`(${e})`}})),G=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.checkStrictMode=e.getErrorPath=e.Type=e.useFunc=e.setEvaluated=e.evaluatedPropsToName=e.mergeEvaluated=e.eachItem=e.unescapeJsonPointer=e.escapeJsonPointer=e.escapeFragment=e.unescapeFragment=e.schemaRefOrVal=e.schemaHasRulesButRef=e.schemaHasRules=e.checkUnknownRules=e.alwaysValidSchema=e.toHash=void 0;let t=W(),n=Ph();function r(e){let t={};for(let n of e)t[n]=!0;return t}e.toHash=r;function i(e,t){return typeof t==`boolean`?t:Object.keys(t).length===0||(a(e,t),!o(t,e.self.RULES.all))}e.alwaysValidSchema=i;function a(e,t=e.schema){let{opts:n,self:r}=e;if(!n.strictSchema||typeof t==`boolean`)return;let i=r.RULES.keywords;for(let n in t)i[n]||x(e,`unknown keyword: "${n}"`)}e.checkUnknownRules=a;function o(e,t){if(typeof e==`boolean`)return!e;for(let n in e)if(t[n])return!0;return!1}e.schemaHasRules=o;function s(e,t){if(typeof e==`boolean`)return!e;for(let n in e)if(n!==`$ref`&&t.all[n])return!0;return!1}e.schemaHasRulesButRef=s;function c({topSchemaRef:e,schemaPath:n},r,i,a){if(!a){if(typeof r==`number`||typeof r==`boolean`)return r;if(typeof r==`string`)return(0,t._)`${r}`}return(0,t._)`${e}${n}${(0,t.getProperty)(i)}`}e.schemaRefOrVal=c;function l(e){return f(decodeURIComponent(e))}e.unescapeFragment=l;function u(e){return encodeURIComponent(d(e))}e.escapeFragment=u;function d(e){return typeof e==`number`?`${e}`:e.replace(/~/g,`~0`).replace(/\//g,`~1`)}e.escapeJsonPointer=d;function f(e){return e.replace(/~1/g,`/`).replace(/~0/g,`~`)}e.unescapeJsonPointer=f;function p(e,t){if(Array.isArray(e))for(let n of e)t(n);else t(e)}e.eachItem=p;function m({mergeNames:e,mergeToName:n,mergeValues:r,resultToName:i}){return(a,o,s,c)=>{let l=s===void 0?o:s instanceof t.Name?(o instanceof t.Name?e(a,o,s):n(a,o,s),s):o instanceof t.Name?(n(a,s,o),o):r(o,s);return c===t.Name&&!(l instanceof t.Name)?i(a,l):l}}e.mergeEvaluated={props:m({mergeNames:(e,n,r)=>e.if((0,t._)`${r} !== true && ${n} !== undefined`,()=>{e.if((0,t._)`${n} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,t._)`${r} || {}`).code((0,t._)`Object.assign(${r}, ${n})`))}),mergeToName:(e,n,r)=>e.if((0,t._)`${r} !== true`,()=>{n===!0?e.assign(r,!0):(e.assign(r,(0,t._)`${r} || {}`),g(e,r,n))}),mergeValues:(e,t)=>e===!0||{...e,...t},resultToName:h}),items:m({mergeNames:(e,n,r)=>e.if((0,t._)`${r} !== true && ${n} !== undefined`,()=>e.assign(r,(0,t._)`${n} === true ? true : ${r} > ${n} ? ${r} : ${n}`)),mergeToName:(e,n,r)=>e.if((0,t._)`${r} !== true`,()=>e.assign(r,n===!0||(0,t._)`${r} > ${n} ? ${r} : ${n}`)),mergeValues:(e,t)=>e===!0||Math.max(e,t),resultToName:(e,t)=>e.var(`items`,t)})};function h(e,n){if(n===!0)return e.var(`props`,!0);let r=e.var(`props`,(0,t._)`{}`);return n!==void 0&&g(e,r,n),r}e.evaluatedPropsToName=h;function g(e,n,r){Object.keys(r).forEach(r=>e.assign((0,t._)`${n}${(0,t.getProperty)(r)}`,!0))}e.setEvaluated=g;let _={};function v(e,t){return e.scopeValue(`func`,{ref:t,code:_[t.code]||(_[t.code]=new n._Code(t.code))})}e.useFunc=v;var y;(function(e){e[e.Num=0]=`Num`,e[e.Str=1]=`Str`})(y||(e.Type=y={}));function b(e,n,r){if(e instanceof t.Name){let i=n===y.Num;return r?i?(0,t._)`"[" + ${e} + "]"`:(0,t._)`"['" + ${e} + "']"`:i?(0,t._)`"/" + ${e}`:(0,t._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,t.getProperty)(e).toString():`/`+d(e)}e.getErrorPath=b;function x(e,t,n=e.opts.strictSchema){if(n){if(t=`strict mode: ${t}`,n===!0)throw Error(t);e.self.logger.warn(t)}}e.checkStrictMode=x})),Ih=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W();e.default={data:new t.Name(`data`),valCxt:new t.Name(`valCxt`),instancePath:new t.Name(`instancePath`),parentData:new t.Name(`parentData`),parentDataProperty:new t.Name(`parentDataProperty`),rootData:new t.Name(`rootData`),dynamicAnchors:new t.Name(`dynamicAnchors`),vErrors:new t.Name(`vErrors`),errors:new t.Name(`errors`),this:new t.Name(`this`),self:new t.Name(`self`),scope:new t.Name(`scope`),json:new t.Name(`json`),jsonPos:new t.Name(`jsonPos`),jsonLen:new t.Name(`jsonLen`),jsonPart:new t.Name(`jsonPart`)}})),Lh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendErrors=e.resetErrorsCount=e.reportExtraError=e.reportError=e.keyword$DataError=e.keywordError=void 0;let t=W(),n=G(),r=Ih();e.keywordError={message:({keyword:e})=>(0,t.str)`must pass "${e}" keyword validation`},e.keyword$DataError={message:({keyword:e,schemaType:n})=>n?(0,t.str)`"${e}" keyword must be ${n} ($data)`:(0,t.str)`"${e}" keyword is invalid ($data)`};function i(n,r=e.keywordError,i,a){let{it:o}=n,{gen:s,compositeRule:u,allErrors:f}=o,p=d(n,r,i);a??(u||f)?c(s,p):l(o,(0,t._)`[${p}]`)}e.reportError=i;function a(t,n=e.keywordError,i){let{it:a}=t,{gen:o,compositeRule:s,allErrors:u}=a;c(o,d(t,n,i)),s||u||l(a,r.default.vErrors)}e.reportExtraError=a;function o(e,n){e.assign(r.default.errors,n),e.if((0,t._)`${r.default.vErrors} !== null`,()=>e.if(n,()=>e.assign((0,t._)`${r.default.vErrors}.length`,n),()=>e.assign(r.default.vErrors,null)))}e.resetErrorsCount=o;function s({gen:e,keyword:n,schemaValue:i,data:a,errsCount:o,it:s}){if(o===void 0)throw Error(`ajv implementation error`);let c=e.name(`err`);e.forRange(`i`,o,r.default.errors,o=>{e.const(c,(0,t._)`${r.default.vErrors}[${o}]`),e.if((0,t._)`${c}.instancePath === undefined`,()=>e.assign((0,t._)`${c}.instancePath`,(0,t.strConcat)(r.default.instancePath,s.errorPath))),e.assign((0,t._)`${c}.schemaPath`,(0,t.str)`${s.errSchemaPath}/${n}`),s.opts.verbose&&(e.assign((0,t._)`${c}.schema`,i),e.assign((0,t._)`${c}.data`,a))})}e.extendErrors=s;function c(e,n){let i=e.const(`err`,n);e.if((0,t._)`${r.default.vErrors} === null`,()=>e.assign(r.default.vErrors,(0,t._)`[${i}]`),(0,t._)`${r.default.vErrors}.push(${i})`),e.code((0,t._)`${r.default.errors}++`)}function l(e,n){let{gen:r,validateName:i,schemaEnv:a}=e;a.$async?r.throw((0,t._)`new ${e.ValidationError}(${n})`):(r.assign((0,t._)`${i}.errors`,n),r.return(!1))}let u={keyword:new t.Name(`keyword`),schemaPath:new t.Name(`schemaPath`),params:new t.Name(`params`),propertyName:new t.Name(`propertyName`),message:new t.Name(`message`),schema:new t.Name(`schema`),parentSchema:new t.Name(`parentSchema`)};function d(e,n,r){let{createErrors:i}=e.it;return i===!1?(0,t._)`{}`:f(e,n,r)}function f(e,t,n={}){let{gen:r,it:i}=e,a=[p(i,n),m(e,n)];return h(e,t,a),r.object(...a)}function p({errorPath:e},{instancePath:i}){let a=i?(0,t.str)`${e}${(0,n.getErrorPath)(i,n.Type.Str)}`:e;return[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,a)]}function m({keyword:e,it:{errSchemaPath:r}},{schemaPath:i,parentSchema:a}){let o=a?r:(0,t.str)`${r}/${e}`;return i&&(o=(0,t.str)`${o}${(0,n.getErrorPath)(i,n.Type.Str)}`),[u.schemaPath,o]}function h(e,{params:n,message:i},a){let{keyword:o,data:s,schemaValue:c,it:l}=e,{opts:d,propertyName:f,topSchemaRef:p,schemaPath:m}=l;a.push([u.keyword,o],[u.params,typeof n==`function`?n(e):n||(0,t._)`{}`]),d.messages&&a.push([u.message,typeof i==`function`?i(e):i]),d.verbose&&a.push([u.schema,c],[u.parentSchema,(0,t._)`${p}${m}`],[r.default.data,s]),f&&a.push([u.propertyName,f])}})),Rh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.boolOrEmptySchema=e.topBoolOrEmptySchema=void 0;let t=Lh(),n=W(),r=Ih(),i={message:`boolean schema is false`};function a(e){let{gen:t,schema:i,validateName:a}=e;i===!1?s(e,!1):typeof i==`object`&&i.$async===!0?t.return(r.default.data):(t.assign((0,n._)`${a}.errors`,null),t.return(!0))}e.topBoolOrEmptySchema=a;function o(e,t){let{gen:n,schema:r}=e;r===!1?(n.var(t,!1),s(e)):n.var(t,!0)}e.boolOrEmptySchema=o;function s(e,n){let{gen:r,data:a}=e,o={gen:r,keyword:`false schema`,data:a,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,t.reportError)(o,i,void 0,n)}})),zh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getRules=e.isJSONType=void 0;let t=new Set([`string`,`number`,`integer`,`boolean`,`null`,`object`,`array`]);function n(e){return typeof e==`string`&&t.has(e)}e.isJSONType=n;function r(){let e={number:{type:`number`,rules:[]},string:{type:`string`,rules:[]},array:{type:`array`,rules:[]},object:{type:`object`,rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}e.getRules=r})),Bh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shouldUseRule=e.shouldUseGroup=e.schemaHasRulesForType=void 0;function t({schema:e,self:t},r){let i=t.RULES.types[r];return i&&i!==!0&&n(e,i)}e.schemaHasRulesForType=t;function n(e,t){return t.rules.some(t=>r(e,t))}e.shouldUseGroup=n;function r(e,t){return e[t.keyword]!==void 0||t.definition.implements?.some(t=>e[t]!==void 0)}e.shouldUseRule=r})),Vh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reportTypeError=e.checkDataTypes=e.checkDataType=e.coerceAndCheckDataType=e.getJSONTypes=e.getSchemaTypes=e.DataType=void 0;let t=zh(),n=Bh(),r=Lh(),i=W(),a=G();var o;(function(e){e[e.Correct=0]=`Correct`,e[e.Wrong=1]=`Wrong`})(o||(e.DataType=o={}));function s(e){let t=c(e.type);if(t.includes(`null`)){if(e.nullable===!1)throw Error(`type: null contradicts nullable: false`)}else{if(!t.length&&e.nullable!==void 0)throw Error(`"nullable" cannot be used without "type"`);e.nullable===!0&&t.push(`null`)}return t}e.getSchemaTypes=s;function c(e){let n=Array.isArray(e)?e:e?[e]:[];if(n.every(t.isJSONType))return n;throw Error(`type must be JSONType or JSONType[]: `+n.join(`,`))}e.getJSONTypes=c;function l(e,t){let{gen:r,data:i,opts:a}=e,s=d(t,a.coerceTypes),c=t.length>0&&!(s.length===0&&t.length===1&&(0,n.schemaHasRulesForType)(e,t[0]));if(c){let n=h(t,i,a.strictNumbers,o.Wrong);r.if(n,()=>{s.length?f(e,t,s):_(e)})}return c}e.coerceAndCheckDataType=l;let u=new Set([`string`,`number`,`integer`,`boolean`,`null`]);function d(e,t){return t?e.filter(e=>u.has(e)||t===`array`&&e===`array`):[]}function f(e,t,n){let{gen:r,data:a,opts:o}=e,s=r.let(`dataType`,(0,i._)`typeof ${a}`),c=r.let(`coerced`,(0,i._)`undefined`);o.coerceTypes===`array`&&r.if((0,i._)`${s} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>r.assign(a,(0,i._)`${a}[0]`).assign(s,(0,i._)`typeof ${a}`).if(h(t,a,o.strictNumbers),()=>r.assign(c,a))),r.if((0,i._)`${c} !== undefined`);for(let e of n)(u.has(e)||e===`array`&&o.coerceTypes===`array`)&&l(e);r.else(),_(e),r.endIf(),r.if((0,i._)`${c} !== undefined`,()=>{r.assign(a,c),p(e,c)});function l(e){switch(e){case`string`:r.elseIf((0,i._)`${s} == "number" || ${s} == "boolean"`).assign(c,(0,i._)`"" + ${a}`).elseIf((0,i._)`${a} === null`).assign(c,(0,i._)`""`);return;case`number`:r.elseIf((0,i._)`${s} == "boolean" || ${a} === null
178
178
  || (${s} == "string" && ${a} && ${a} == +${a})`).assign(c,(0,i._)`+${a}`);return;case`integer`:r.elseIf((0,i._)`${s} === "boolean" || ${a} === null
179
179
  || (${s} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(c,(0,i._)`+${a}`);return;case`boolean`:r.elseIf((0,i._)`${a} === "false" || ${a} === 0 || ${a} === null`).assign(c,!1).elseIf((0,i._)`${a} === "true" || ${a} === 1`).assign(c,!0);return;case`null`:r.elseIf((0,i._)`${a} === "" || ${a} === 0 || ${a} === false`),r.assign(c,null);return;case`array`:r.elseIf((0,i._)`${s} === "string" || ${s} === "number"
180
- || ${s} === "boolean" || ${a} === null`).assign(c,(0,i._)`[${a}]`)}}}function p({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,i._)`${t} !== undefined`,()=>e.assign((0,i._)`${t}[${n}]`,r))}function m(e,t,n,r=o.Correct){let a=r===o.Correct?i.operators.EQ:i.operators.NEQ,s;switch(e){case`null`:return(0,i._)`${t} ${a} null`;case`array`:s=(0,i._)`Array.isArray(${t})`;break;case`object`:s=(0,i._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case`integer`:s=c((0,i._)`!(${t} % 1) && !isNaN(${t})`);break;case`number`:s=c();break;default:return(0,i._)`typeof ${t} ${a} ${e}`}return r===o.Correct?s:(0,i.not)(s);function c(e=i.nil){return(0,i.and)((0,i._)`typeof ${t} == "number"`,e,n?(0,i._)`isFinite(${t})`:i.nil)}}e.checkDataType=m;function h(e,t,n,r){if(e.length===1)return m(e[0],t,n,r);let o,s=(0,a.toHash)(e);if(s.array&&s.object){let e=(0,i._)`typeof ${t} != "object"`;o=s.null?e:(0,i._)`!${t} || ${e}`,delete s.null,delete s.array,delete s.object}else o=i.nil;s.number&&delete s.integer;for(let e in s)o=(0,i.and)(o,m(e,t,n,r));return o}e.checkDataTypes=h;let g={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e==`string`?(0,i._)`{type: ${e}}`:(0,i._)`{type: ${t}}`};function _(e){let t=v(e);(0,r.reportError)(t,g)}e.reportTypeError=_;function v(e){let{gen:t,data:n,schema:r}=e,i=(0,a.schemaRefOrVal)(e,r,`type`);return{gen:t,keyword:`type`,data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}})),zh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;let t=K(),n=q();function r(e,t){let{properties:n,items:r}=e.schema;if(t===`object`&&n)for(let t in n)i(e,t,n[t].default);else t===`array`&&Array.isArray(r)&&r.forEach((t,n)=>i(e,n,t.default))}e.assignDefaults=r;function i(e,r,i){let{gen:a,compositeRule:o,data:s,opts:c}=e;if(i===void 0)return;let l=(0,t._)`${s}${(0,t.getProperty)(r)}`;if(o){(0,n.checkStrictMode)(e,`default is ignored for: ${l}`);return}let u=(0,t._)`${l} === undefined`;c.useDefaults===`empty`&&(u=(0,t._)`${u} || ${l} === null || ${l} === ""`),a.if(u,(0,t._)`${l} = ${(0,t.stringify)(i)}`)}})),Bh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateUnion=e.validateArray=e.usePattern=e.callValidateCode=e.schemaProperties=e.allSchemaProperties=e.noPropertyInData=e.propertyInData=e.isOwnProperty=e.hasPropFunc=e.reportMissingProp=e.checkMissingProp=e.checkReportMissingProp=void 0;let t=K(),n=q(),r=Nh(),i=q();function a(e,n){let{gen:r,data:i,it:a}=e;r.if(d(r,i,n,a.opts.ownProperties),()=>{e.setParams({missingProperty:(0,t._)`${n}`},!0),e.error()})}e.checkReportMissingProp=a;function o({gen:e,data:n,it:{opts:r}},i,a){return(0,t.or)(...i.map(i=>(0,t.and)(d(e,n,i,r.ownProperties),(0,t._)`${a} = ${i}`)))}e.checkMissingProp=o;function s(e,t){e.setParams({missingProperty:t},!0),e.error()}e.reportMissingProp=s;function c(e){return e.scopeValue(`func`,{ref:Object.prototype.hasOwnProperty,code:(0,t._)`Object.prototype.hasOwnProperty`})}e.hasPropFunc=c;function l(e,n,r){return(0,t._)`${c(e)}.call(${n}, ${r})`}e.isOwnProperty=l;function u(e,n,r,i){let a=(0,t._)`${n}${(0,t.getProperty)(r)} !== undefined`;return i?(0,t._)`${a} && ${l(e,n,r)}`:a}e.propertyInData=u;function d(e,n,r,i){let a=(0,t._)`${n}${(0,t.getProperty)(r)} === undefined`;return i?(0,t.or)(a,(0,t.not)(l(e,n,r))):a}e.noPropertyInData=d;function f(e){return e?Object.keys(e).filter(e=>e!==`__proto__`):[]}e.allSchemaProperties=f;function p(e,t){return f(t).filter(r=>!(0,n.alwaysValidSchema)(e,t[r]))}e.schemaProperties=p;function m({schemaCode:e,data:n,it:{gen:i,topSchemaRef:a,schemaPath:o,errorPath:s},it:c},l,u,d){let f=d?(0,t._)`${e}, ${n}, ${a}${o}`:n,p=[[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,s)],[r.default.parentData,c.parentData],[r.default.parentDataProperty,c.parentDataProperty],[r.default.rootData,r.default.rootData]];c.opts.dynamicRef&&p.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);let m=(0,t._)`${f}, ${i.object(...p)}`;return u===t.nil?(0,t._)`${l}(${m})`:(0,t._)`${l}.call(${u}, ${m})`}e.callValidateCode=m;let h=(0,t._)`new RegExp`;function g({gen:e,it:{opts:n}},r){let a=n.unicodeRegExp?`u`:``,{regExp:o}=n.code,s=o(r,a);return e.scopeValue(`pattern`,{key:s.toString(),ref:s,code:(0,t._)`${o.code===`new RegExp`?h:(0,i.useFunc)(e,o)}(${r}, ${a})`})}e.usePattern=g;function _(e){let{gen:r,data:i,keyword:a,it:o}=e,s=r.name(`valid`);if(o.allErrors){let e=r.let(`valid`,!0);return c(()=>r.assign(e,!1)),e}return r.var(s,!0),c(()=>r.break()),s;function c(o){let c=r.const(`len`,(0,t._)`${i}.length`);r.forRange(`i`,0,c,i=>{e.subschema({keyword:a,dataProp:i,dataPropType:n.Type.Num},s),r.if((0,t.not)(s),o)})}}e.validateArray=_;function v(e){let{gen:r,schema:i,keyword:a,it:o}=e;if(!Array.isArray(i))throw Error(`ajv implementation error`);if(i.some(e=>(0,n.alwaysValidSchema)(o,e))&&!o.opts.unevaluated)return;let s=r.let(`valid`,!1),c=r.name(`_valid`);r.block(()=>i.forEach((n,i)=>{let o=e.subschema({keyword:a,schemaProp:i,compositeRule:!0},c);r.assign(s,(0,t._)`${s} || ${c}`),e.mergeValidEvaluated(o,c)||r.if((0,t.not)(s))})),e.result(s,()=>e.reset(),()=>e.error(!0))}e.validateUnion=v})),Vh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;let t=K(),n=Nh(),r=Bh(),i=Ph();function a(e,n){let{gen:r,keyword:i,schema:a,parentSchema:o,it:s}=e,c=n.macro.call(s.self,a,o,s),l=u(r,i,c);s.opts.validateSchema!==!1&&s.self.validateSchema(c,!0);let d=r.name(`valid`);e.subschema({schema:c,schemaPath:t.nil,errSchemaPath:`${s.errSchemaPath}/${i}`,topSchemaRef:l,compositeRule:!0},d),e.pass(d,()=>e.error(!0))}e.macroKeywordCode=a;function o(e,i){let{gen:a,keyword:o,schema:d,parentSchema:f,$data:p,it:m}=e;l(m,i);let h=u(a,o,!p&&i.compile?i.compile.call(m.self,d,f,m):i.validate),g=a.let(`valid`);e.block$data(g,_),e.ok(i.valid??g);function _(){if(i.errors===!1)b(),i.modifying&&s(e),x(()=>e.error());else{let t=i.async?v():y();i.modifying&&s(e),x(()=>c(e,t))}}function v(){let e=a.let(`ruleErrs`,null);return a.try(()=>b((0,t._)`await `),n=>a.assign(g,!1).if((0,t._)`${n} instanceof ${m.ValidationError}`,()=>a.assign(e,(0,t._)`${n}.errors`),()=>a.throw(n))),e}function y(){let e=(0,t._)`${h}.errors`;return a.assign(e,null),b(t.nil),e}function b(o=i.async?(0,t._)`await `:t.nil){let s=m.opts.passContext?n.default.this:n.default.self,c=!(`compile`in i&&!p||i.schema===!1);a.assign(g,(0,t._)`${o}${(0,r.callValidateCode)(e,h,s,c)}`,i.modifying)}function x(e){a.if((0,t.not)(i.valid??g),e)}}e.funcKeywordCode=o;function s(e){let{gen:n,data:r,it:i}=e;n.if(i.parentData,()=>n.assign(r,(0,t._)`${i.parentData}[${i.parentDataProperty}]`))}function c(e,r){let{gen:a}=e;a.if((0,t._)`Array.isArray(${r})`,()=>{a.assign(n.default.vErrors,(0,t._)`${n.default.vErrors} === null ? ${r} : ${n.default.vErrors}.concat(${r})`).assign(n.default.errors,(0,t._)`${n.default.vErrors}.length`),(0,i.extendErrors)(e)},()=>e.error())}function l({schemaEnv:e},t){if(t.async&&!e.$async)throw Error(`async keyword in sync schema`)}function u(e,n,r){if(r===void 0)throw Error(`keyword "${n}" failed to compile`);return e.scopeValue(`keyword`,typeof r==`function`?{ref:r}:{ref:r,code:(0,t.stringify)(r)})}function d(e,t,n=!1){return!t.length||t.some(t=>t===`array`?Array.isArray(e):t===`object`?e&&typeof e==`object`&&!Array.isArray(e):typeof e==t||n&&e===void 0)}e.validSchemaType=d;function f({schema:e,opts:t,self:n,errSchemaPath:r},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw Error(`ajv implementation error`);let o=i.dependencies;if(o?.some(t=>!Object.prototype.hasOwnProperty.call(e,t)))throw Error(`parent schema must have dependencies of ${a}: ${o.join(`,`)}`);if(i.validateSchema&&!i.validateSchema(e[a])){let e=`keyword "${a}" value is invalid at path "${r}": `+n.errorsText(i.validateSchema.errors);if(t.validateSchema===`log`)n.logger.error(e);else throw Error(e)}}e.validateKeywordUsage=f})),Hh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;let t=K(),n=q();function r(e,{keyword:r,schemaProp:i,schema:a,schemaPath:o,errSchemaPath:s,topSchemaRef:c}){if(r!==void 0&&a!==void 0)throw Error(`both "keyword" and "schema" passed, only one allowed`);if(r!==void 0){let a=e.schema[r];return i===void 0?{schema:a,schemaPath:(0,t._)`${e.schemaPath}${(0,t.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${r}`}:{schema:a[i],schemaPath:(0,t._)`${e.schemaPath}${(0,t.getProperty)(r)}${(0,t.getProperty)(i)}`,errSchemaPath:`${e.errSchemaPath}/${r}/${(0,n.escapeFragment)(i)}`}}if(a!==void 0){if(o===void 0||s===void 0||c===void 0)throw Error(`"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"`);return{schema:a,schemaPath:o,topSchemaRef:c,errSchemaPath:s}}throw Error(`either "keyword" or "schema" must be passed`)}e.getSubschema=r;function i(e,r,{dataProp:i,dataPropType:a,data:o,dataTypes:s,propertyName:c}){if(o!==void 0&&i!==void 0)throw Error(`both "data" and "dataProp" passed, only one allowed`);let{gen:l}=r;if(i!==void 0){let{errorPath:o,dataPathArr:s,opts:c}=r;u(l.let(`data`,(0,t._)`${r.data}${(0,t.getProperty)(i)}`,!0)),e.errorPath=(0,t.str)`${o}${(0,n.getErrorPath)(i,a,c.jsPropertySyntax)}`,e.parentDataProperty=(0,t._)`${i}`,e.dataPathArr=[...s,e.parentDataProperty]}o!==void 0&&(u(o instanceof t.Name?o:l.let(`data`,o,!0)),c!==void 0&&(e.propertyName=c)),s&&(e.dataTypes=s);function u(t){e.data=t,e.dataLevel=r.dataLevel+1,e.dataTypes=[],r.definedProperties=new Set,e.parentData=r.data,e.dataNames=[...r.dataNames,t]}}e.extendSubschemaData=i;function a(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:i,allErrors:a}){r!==void 0&&(e.compositeRule=r),i!==void 0&&(e.createErrors=i),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=n}e.extendSubschemaMode=a})),Uh=V(((e,t)=>{t.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 r,i,a;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))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(a=Object.keys(t),r=a.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[i]))return!1;for(i=r;i--!==0;){var o=a[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}})),Wh=V(((e,t)=>{var n=t.exports=function(e,t,n){typeof t==`function`&&(n=t,t={}),n=t.cb||n;var i=typeof n==`function`?n:n.pre||function(){},a=n.post||function(){};r(t,i,a,e,``,e)};n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.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 r(e,t,a,o,s,c,l,u,d,f){if(o&&typeof o==`object`&&!Array.isArray(o)){for(var p in t(o,s,c,l,u,d,f),o){var m=o[p];if(Array.isArray(m)){if(p in n.arrayKeywords)for(var h=0;h<m.length;h++)r(e,t,a,m[h],s+`/`+p+`/`+h,c,s,p,o,h)}else if(p in n.propsKeywords){if(m&&typeof m==`object`)for(var g in m)r(e,t,a,m[g],s+`/`+p+`/`+i(g),c,s,p,o,g)}else(p in n.keywords||e.allKeys&&!(p in n.skipKeywords))&&r(e,t,a,m,s+`/`+p,c,s,p,o)}a(o,s,c,l,u,d,f)}}function i(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}})),Gh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getSchemaRefs=e.resolveUrl=e.normalizeId=e._getFullPath=e.getFullPath=e.inlineRef=void 0;let t=q(),n=Uh(),r=Wh(),i=new Set([`type`,`format`,`pattern`,`maxLength`,`minLength`,`maxProperties`,`minProperties`,`maxItems`,`minItems`,`maximum`,`minimum`,`uniqueItems`,`multipleOf`,`required`,`enum`,`const`]);function a(e,t=!0){return typeof e==`boolean`?!0:t===!0?!s(e):t?c(e)<=t:!1}e.inlineRef=a;let o=new Set([`$ref`,`$recursiveRef`,`$recursiveAnchor`,`$dynamicRef`,`$dynamicAnchor`]);function s(e){for(let t in e){if(o.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(s)||typeof n==`object`&&s(n))return!0}return!1}function c(e){let n=0;for(let r in e)if(r===`$ref`||(n++,!i.has(r)&&(typeof e[r]==`object`&&(0,t.eachItem)(e[r],e=>n+=c(e)),n===1/0)))return 1/0;return n}function l(e,t=``,n){return n!==!1&&(t=f(t)),u(e,e.parse(t))}e.getFullPath=l;function u(e,t){return e.serialize(t).split(`#`)[0]+`#`}e._getFullPath=u;let d=/#\/?$/;function f(e){return e?e.replace(d,``):``}e.normalizeId=f;function p(e,t,n){return n=f(n),e.resolve(t,n)}e.resolveUrl=p;let m=/^[a-z_][-a-z0-9._]*$/i;function h(e,t){if(typeof e==`boolean`)return{};let{schemaId:i,uriResolver:a}=this.opts,o=f(e[i]||t),s={"":o},c=l(a,o,!1),u={},d=new Set;return r(e,{allKeys:!0},(e,t,n,r)=>{if(r===void 0)return;let a=c+t,o=s[r];typeof e[i]==`string`&&(o=l.call(this,e[i])),g.call(this,e.$anchor),g.call(this,e.$dynamicAnchor),s[t]=o;function l(t){let n=this.opts.uriResolver.resolve;if(t=f(o?n(o,t):t),d.has(t))throw h(t);d.add(t);let r=this.refs[t];return typeof r==`string`&&(r=this.refs[r]),typeof r==`object`?p(e,r.schema,t):t!==f(a)&&(t[0]===`#`?(p(e,u[t],t),u[t]=e):this.refs[t]=a),t}function g(e){if(typeof e==`string`){if(!m.test(e))throw Error(`invalid anchor "${e}"`);l.call(this,`#${e}`)}}}),u;function p(e,t,r){if(t!==void 0&&!n(e,t))throw h(r)}function h(e){return Error(`reference "${e}" resolves to more than one schema`)}}e.getSchemaRefs=h})),Kh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;let t=Fh(),n=Rh(),r=Lh(),i=Rh(),a=zh(),o=Vh(),s=Hh(),c=K(),l=Nh(),u=Gh(),d=q(),f=Ph();function p(e){if(S(e)&&(w(e),x(e))){_(e);return}m(e,()=>(0,t.topBoolOrEmptySchema)(e))}e.validateFunctionCode=p;function m({gen:e,validateName:t,schema:n,schemaEnv:r,opts:i},a){i.code.es5?e.func(t,(0,c._)`${l.default.data}, ${l.default.valCxt}`,r.$async,()=>{e.code((0,c._)`"use strict"; ${y(n,i)}`),g(e,i),e.code(a)}):e.func(t,(0,c._)`${l.default.data}, ${h(i)}`,r.$async,()=>e.code(y(n,i)).code(a))}function h(e){return(0,c._)`{${l.default.instancePath}="", ${l.default.parentData}, ${l.default.parentDataProperty}, ${l.default.rootData}=${l.default.data}${e.dynamicRef?(0,c._)`, ${l.default.dynamicAnchors}={}`:c.nil}}={}`}function g(e,t){e.if(l.default.valCxt,()=>{e.var(l.default.instancePath,(0,c._)`${l.default.valCxt}.${l.default.instancePath}`),e.var(l.default.parentData,(0,c._)`${l.default.valCxt}.${l.default.parentData}`),e.var(l.default.parentDataProperty,(0,c._)`${l.default.valCxt}.${l.default.parentDataProperty}`),e.var(l.default.rootData,(0,c._)`${l.default.valCxt}.${l.default.rootData}`),t.dynamicRef&&e.var(l.default.dynamicAnchors,(0,c._)`${l.default.valCxt}.${l.default.dynamicAnchors}`)},()=>{e.var(l.default.instancePath,(0,c._)`""`),e.var(l.default.parentData,(0,c._)`undefined`),e.var(l.default.parentDataProperty,(0,c._)`undefined`),e.var(l.default.rootData,l.default.data),t.dynamicRef&&e.var(l.default.dynamicAnchors,(0,c._)`{}`)})}function _(e){let{schema:t,opts:n,gen:r}=e;m(e,()=>{n.$comment&&t.$comment&&A(e),D(e),r.let(l.default.vErrors,null),r.let(l.default.errors,0),n.unevaluated&&v(e),T(e),ee(e)})}function v(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 y(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 b(e,n){if(S(e)&&(w(e),x(e))){C(e,n);return}(0,t.boolOrEmptySchema)(e,n)}function x({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 S(e){return typeof e.schema!=`boolean`}function C(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&A(e),O(e),k(e);let a=r.const(`_errs`,l.default.errors);T(e,a),r.var(t,(0,c._)`${a} === ${l.default.errors}`)}function w(e){(0,d.checkUnknownRules)(e),E(e)}function T(e,t){if(e.opts.jtd)return te(e,[],!1,t);let r=(0,n.getSchemaTypes)(e.schema);te(e,r,!(0,n.coerceAndCheckDataType)(e,r),t)}function E(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function D(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,d.checkStrictMode)(e,`default is ignored in the schema root`)}function O(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,u.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function k(e){if(e.schema.$async&&!e.schemaEnv.$async)throw Error(`async schema in sync schema`)}function A({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:i}){let a=n.$comment;if(i.$comment===!0)e.code((0,c._)`${l.default.self}.logger.log(${a})`);else if(typeof i.$comment==`function`){let n=(0,c.str)`${r}/$comment`,i=e.scopeValue(`root`,{ref:t.root});e.code((0,c._)`${l.default.self}.opts.$comment(${a}, ${n}, ${i}.schema)`)}}function ee(e){let{gen:t,schemaEnv:n,validateName:r,ValidationError:i,opts:a}=e;n.$async?t.if((0,c._)`${l.default.errors} === 0`,()=>t.return(l.default.data),()=>t.throw((0,c._)`new ${i}(${l.default.vErrors})`)):(t.assign((0,c._)`${r}.errors`,l.default.vErrors),a.unevaluated&&j(e),t.return((0,c._)`${l.default.errors} === 0`))}function j({gen:e,evaluated:t,props:n,items:r}){n instanceof c.Name&&e.assign((0,c._)`${t}.props`,n),r instanceof c.Name&&e.assign((0,c._)`${t}.items`,r)}function te(e,t,n,a){let{gen:o,schema:s,data:u,allErrors:f,opts:p,self:m}=e,{RULES:h}=m;if(s.$ref&&(p.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(s,h))){o.block(()=>le(e,`$ref`,h.all.$ref.definition));return}p.jtd||N(e,t),o.block(()=>{for(let e of h.rules)g(e);g(h.post)});function g(d){(0,r.shouldUseGroup)(s,d)&&(d.type?(o.if((0,i.checkDataType)(d.type,u,p.strictNumbers)),M(e,d),t.length===1&&t[0]===d.type&&n&&(o.else(),(0,i.reportTypeError)(e)),o.endIf()):M(e,d),f||o.if((0,c._)`${l.default.errors} === ${a||0}`))}}function M(e,t){let{gen:n,schema:i,opts:{useDefaults:o}}=e;o&&(0,a.assignDefaults)(e,t.type),n.block(()=>{for(let n of t.rules)(0,r.shouldUseRule)(i,n)&&le(e,n.keyword,n.definition,t.type)})}function N(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(ne(e,t),e.opts.allowUnionTypes||re(e,t),ie(e,e.dataTypes))}function ne(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(t=>{oe(e.dataTypes,t)||se(e,`type "${t}" not allowed by context "${e.dataTypes.join(`,`)}"`)}),P(e,t)}}function re(e,t){t.length>1&&!(t.length===2&&t.includes(`null`))&&se(e,`use allowUnionTypes to allow union type keyword`)}function ie(e,t){let n=e.self.RULES.all;for(let i in n){let a=n[i];if(typeof a==`object`&&(0,r.shouldUseRule)(e.schema,a)){let{type:n}=a.definition;n.length&&!n.some(e=>ae(t,e))&&se(e,`missing type "${n.join(`,`)}" for keyword "${i}"`)}}}function ae(e,t){return e.includes(t)||t===`number`&&e.includes(`integer`)}function oe(e,t){return e.includes(t)||t===`integer`&&e.includes(`number`)}function P(e,t){let n=[];for(let r of e.dataTypes)oe(t,r)?n.push(r):t.includes(`integer`)&&r===`number`&&n.push(`integer`);e.dataTypes=n}function se(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,d.checkStrictMode)(e,t,e.opts.strictTypes)}var ce=class{constructor(e,t,n){if((0,o.validateKeywordUsage)(e,t,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const(`vSchema`,F(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw Error(`${n} value must be ${JSON.stringify(t.schemaType)}`);(`code`in t?t.trackErrors:t.errors!==!1)&&(this.errsCount=e.gen.const(`_errs`,l.default.errors))}result(e,t,n){this.failResult((0,c.not)(e),t,n)}failResult(e,t,n){this.gen.if(e),n?n():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.failResult((0,c.not)(e),void 0,t)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:t}=this;this.fail((0,c._)`${t} !== undefined && (${(0,c.or)(this.invalid$data(),e)})`)}error(e,t,n){if(t){this.setParams(t),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,t){(e?f.reportExtraError:f.reportError)(this,this.def.error,t)}$dataError(){(0,f.reportError)(this,this.def.$dataError||f.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error(`add "trackErrors" to keyword definition`);(0,f.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,n=c.nil){this.gen.block(()=>{this.check$data(e,n),t()})}check$data(e=c.nil,t=c.nil){if(!this.$data)return;let{gen:n,schemaCode:r,schemaType:i,def:a}=this;n.if((0,c.or)((0,c._)`${r} === undefined`,t)),e!==c.nil&&n.assign(e,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==c.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:t,schemaType:n,def:r,it:a}=this;return(0,c.or)(o(),s());function o(){if(n.length){if(!(t instanceof c.Name))throw Error(`ajv implementation error`);let e=Array.isArray(n)?n:[n];return(0,c._)`${(0,i.checkDataTypes)(e,t,a.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function s(){if(r.validateSchema){let n=e.scopeValue(`validate$data`,{ref:r.validateSchema});return(0,c._)`!${n}(${t})`}return c.nil}}subschema(e,t){let n=(0,s.getSubschema)(this.it,e);(0,s.extendSubschemaData)(n,this.it,e),(0,s.extendSubschemaMode)(n,e);let r={...this.it,...n,items:void 0,props:void 0};return b(r,t),r}mergeEvaluated(e,t){let{it:n,gen:r}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=d.mergeEvaluated.props(r,e.props,n.props,t)),n.items!==!0&&e.items!==void 0&&(n.items=d.mergeEvaluated.items(r,e.items,n.items,t)))}mergeValidEvaluated(e,t){let{it:n,gen:r}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return r.if(t,()=>this.mergeEvaluated(e,c.Name)),!0}};e.KeywordCxt=ce;function le(e,t,n,r){let i=new ce(e,n,t);`code`in n?n.code(i,r):i.$data&&n.validate?(0,o.funcKeywordCode)(i,n):`macro`in n?(0,o.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,o.funcKeywordCode)(i,n)}let ue=/^\/(?:[^~]|~0|~1)*$/,de=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function F(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,a;if(e===``)return l.default.rootData;if(e[0]===`/`){if(!ue.test(e))throw Error(`Invalid JSON-pointer: ${e}`);i=e,a=l.default.rootData}else{let o=de.exec(e);if(!o)throw Error(`Invalid JSON-pointer: ${e}`);let s=+o[1];if(i=o[2],i===`#`){if(s>=t)throw Error(u(`property/index`,s));return r[t-s]}if(s>t)throw Error(u(`data`,s));if(a=n[t-s],!i)return a}let o=a,s=i.split(`/`);for(let e of s)e&&(a=(0,c._)`${a}${(0,c.getProperty)((0,d.unescapeJsonPointer)(e))}`,o=(0,c._)`${o} && ${a}`);return o;function u(e,n){return`Cannot access ${e} ${n} levels up, current level is ${t}`}}e.getData=F})),qh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=class extends Error{constructor(e){super(`validation failed`),this.errors=e,this.ajv=this.validation=!0}}})),Jh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Gh();e.default=class extends Error{constructor(e,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,t.resolveUrl)(e,n,r),this.missingSchema=(0,t.normalizeId)((0,t.getFullPath)(e,this.missingRef))}}})),Yh=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;let t=K(),n=qh(),r=Nh(),i=Gh(),a=q(),o=Kh();var s=class{constructor(e){this.refs={},this.dynamicAnchors={};let t;typeof e.schema==`object`&&(t=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=e.baseId??(0,i.normalizeId)(t?.[e.schemaId||`$id`]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=t?.$async,this.refs={}}};e.SchemaEnv=s;function c(e){let a=d.call(this,e);if(a)return a;let s=(0,i.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:c,lines:l}=this.opts.code,{ownProperties:u}=this.opts,f=new t.CodeGen(this.scope,{es5:c,lines:l,ownProperties:u}),p;e.$async&&(p=f.scopeValue(`Error`,{ref:n.default,code:(0,t._)`require("ajv/dist/runtime/validation_error").default`}));let m=f.scopeName(`validate`);e.validateName=m;let h={gen:f,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[t.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:f.scopeValue(`schema`,this.opts.code.source===!0?{ref:e.schema,code:(0,t.stringify)(e.schema)}:{ref:e.schema}),validateName:m,ValidationError:p,schema:e.schema,schemaEnv:e,rootId:s,baseId:e.baseId||s,schemaPath:t.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?``:`#`),errorPath:(0,t._)`""`,opts:this.opts,self:this},g;try{this._compilations.add(e),(0,o.validateFunctionCode)(h),f.optimize(this.opts.code.optimize);let n=f.toString();g=`${f.scopeRefs(r.default.scope)}return ${n}`,this.opts.code.process&&(g=this.opts.code.process(g,e));let i=Function(`${r.default.self}`,`${r.default.scope}`,g)(this,this.scope.get());if(this.scope.value(m,{ref:i}),i.errors=null,i.schema=e.schema,i.schemaEnv=e,e.$async&&(i.$async=!0),this.opts.code.source===!0&&(i.source={validateName:m,validateCode:n,scopeValues:f._values}),this.opts.unevaluated){let{props:e,items:n}=h;i.evaluated={props:e instanceof t.Name?void 0:e,items:n instanceof t.Name?void 0:n,dynamicProps:e instanceof t.Name,dynamicItems:n instanceof t.Name},i.source&&(i.source.evaluated=(0,t.stringify)(i.evaluated))}return e.validate=i,e}catch(t){throw delete e.validate,delete e.validateName,g&&this.logger.error(`Error compiling schema, function code:`,g),t}finally{this._compilations.delete(e)}}e.compileSchema=c;function l(e,t,n){n=(0,i.resolveUrl)(this.opts.uriResolver,t,n);let r=e.refs[n];if(r)return r;let a=p.call(this,e,n);if(a===void 0){let r=e.localRefs?.[n],{schemaId:i}=this.opts;r&&(a=new s({schema:r,schemaId:i,root:e,baseId:t}))}if(a!==void 0)return e.refs[n]=u.call(this,a)}e.resolveRef=l;function u(e){return(0,i.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:c.call(this,e)}function d(e){for(let t of this._compilations)if(f(t,e))return t}e.getCompilingSchema=d;function f(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function p(e,t){let n;for(;typeof(n=this.refs[t])==`string`;)t=n;return n||this.schemas[t]||m.call(this,e,t)}function m(e,t){let n=this.opts.uriResolver.parse(t),r=(0,i._getFullPath)(this.opts.uriResolver,n),a=(0,i.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===a)return g.call(this,n,e);let o=(0,i.normalizeId)(r),l=this.refs[o]||this.schemas[o];if(typeof l==`string`){let t=m.call(this,e,l);return typeof t?.schema==`object`?g.call(this,n,t):void 0}if(typeof l?.schema==`object`){if(l.validate||c.call(this,l),o===(0,i.normalizeId)(t)){let{schema:t}=l,{schemaId:n}=this.opts,r=t[n];return r&&(a=(0,i.resolveUrl)(this.opts.uriResolver,a,r)),new s({schema:t,schemaId:n,root:e,baseId:a})}return g.call(this,n,l)}}e.resolveSchema=m;let h=new Set([`properties`,`patternProperties`,`enum`,`dependencies`,`definitions`]);function g(e,{baseId:t,schema:n,root:r}){if(e.fragment?.[0]!==`/`)return;for(let r of e.fragment.slice(1).split(`/`)){if(typeof n==`boolean`)return;let e=n[(0,a.unescapeFragment)(r)];if(e===void 0)return;n=e;let o=typeof n==`object`&&n[this.opts.schemaId];!h.has(r)&&o&&(t=(0,i.resolveUrl)(this.opts.uriResolver,t,o))}let o;if(typeof n!=`boolean`&&n.$ref&&!(0,a.schemaHasRulesButRef)(n,this.RULES)){let e=(0,i.resolveUrl)(this.opts.uriResolver,t,n.$ref);o=m.call(this,r,e)}let{schemaId:c}=this.opts;if(o||=new s({schema:n,schemaId:c,root:r,baseId:t}),o.schema!==o.root.schema)return o}})),Xh=V(((e,t)=>{t.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}})),Zh=V(((e,t)=>{let n=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),r=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);function i(e){let t=``,n=0,r=0;for(r=0;r<e.length;r++)if(n=e[r].charCodeAt(0),n!==48){if(!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return``;t+=e[r];break}for(r+=1;r<e.length;r++){if(n=e[r].charCodeAt(0),!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return``;t+=e[r]}return t}let a=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function o(e){return e.length=0,!0}function s(e,t,n){if(e.length){let r=i(e);if(r!==``)t.push(r);else return n.error=!0,!1;e.length=0}return!0}function c(e){let t=0,n={error:!1,address:``,zone:``},r=[],a=[],c=!1,l=!1,u=s;for(let i=0;i<e.length;i++){let s=e[i];if(s!==`[`&&s!==`]`){if(s===`:`){if(c===!0&&(l=!0),!u(a,r,n))break;if(++t>7){n.error=!0;break}i>0&&e[i-1]===`:`&&(c=!0),r.push(`:`);continue}if(s===`%`){if(!u(a,r,n))break;u=o}else{a.push(s);continue}}}return a.length&&(u===o?n.zone=a.join(``):l?r.push(a.join(``)):r.push(i(a))),n.address=r.join(``),n}function l(e){if(u(e,`:`)<2)return{host:e,isIPV6:!1};let t=c(e);if(t.error)return{host:e,isIPV6:!1};{let e=t.address,n=t.address;return t.zone&&(e+=`%`+t.zone,n+=`%25`+t.zone),{host:e,isIPV6:!0,escapedHost:n}}}function u(e,t){let n=0;for(let r=0;r<e.length;r++)e[r]===t&&n++;return n}function d(e){let t=e,n=[],r=-1,i=0;for(;i=t.length;){if(i===1){if(t===`.`)break;if(t===`/`){n.push(`/`);break}n.push(t);break}if(i===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(i===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}if(t[2]===`.`&&t[3]===`/`){t=t.slice(3),n.length!==0&&n.pop();continue}}if((r=t.indexOf(`/`,1))===-1){n.push(t);break}n.push(t.slice(0,r)),t=t.slice(r)}return n.join(``)}function f(e,t){let n=t===!0?unescape:escape;return e.scheme!==void 0&&(e.scheme=n(e.scheme)),e.userinfo!==void 0&&(e.userinfo=n(e.userinfo)),e.host!==void 0&&(e.host=n(e.host)),e.path!==void 0&&(e.path=n(e.path)),e.query!==void 0&&(e.query=n(e.query)),e.fragment!==void 0&&(e.fragment=n(e.fragment)),e}function p(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push(`@`)),e.host!==void 0){let n=unescape(e.host);if(!r(n)){let t=l(n);n=t.isIPV6===!0?`[${t.escapedHost}]`:e.host}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}t.exports={nonSimpleDomain:a,recomposeAuthority:p,normalizeComponentEncoding:f,removeDotSegments:d,isIPv4:r,isUUID:n,normalizeIPv6:l,stringArrayToHexStripped:i}})),Qh=V(((e,t)=>{let{isUUID:n}=Zh(),r=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,i=[`http`,`https`,`ws`,`wss`,`urn`,`urn:uuid`];function a(e){return i.indexOf(e)!==-1}function o(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 s(e){return e.host||(e.error=e.error||`HTTP URIs must have a host.`),e}function c(e){let t=String(e.scheme).toLowerCase()===`https`;return(e.port===(t?443:80)||e.port===``)&&(e.port=void 0),e.path||=`/`,e}function l(e){return e.secure=o(e),e.resourceName=(e.path||`/`)+(e.query?`?`+e.query:``),e.path=void 0,e.query=void 0,e}function u(e){if((e.port===(o(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 d(e,t){if(!e.path)return e.error=`URN can not be parsed`,e;let n=e.path.match(r);if(n){let r=t.scheme||e.scheme||`urn`;e.nid=n[1].toLowerCase(),e.nss=n[2];let i=y(`${r}:${t.nid||e.nid}`);e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||`URN can not be parsed.`;return e}function f(e,t){if(e.nid===void 0)throw Error(`URN without nid cannot be serialized`);let n=t.scheme||e.scheme||`urn`,r=e.nid.toLowerCase(),i=y(`${n}:${t.nid||r}`);i&&(e=i.serialize(e,t));let a=e,o=e.nss;return a.path=`${r||t.nid}:${o}`,t.skipEscape=!0,a}function p(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!n(r.uuid))&&(r.error=r.error||`UUID is not valid.`),r}function m(e){let t=e;return t.nss=(e.uuid||``).toLowerCase(),t}let h={scheme:`http`,domainHost:!0,parse:s,serialize:c},g={scheme:`https`,domainHost:h.domainHost,parse:s,serialize:c},_={scheme:`ws`,domainHost:!0,parse:l,serialize:u},v={http:h,https:g,ws:_,wss:{scheme:`wss`,domainHost:_.domainHost,parse:_.parse,serialize:_.serialize},urn:{scheme:`urn`,parse:d,serialize:f,skipNormalize:!0},"urn:uuid":{scheme:`urn:uuid`,parse:p,serialize:m,skipNormalize:!0}};Object.setPrototypeOf(v,null);function y(e){return e&&(v[e]||v[e.toLowerCase()])||void 0}t.exports={wsIsSecure:o,SCHEMES:v,isValidSchemeName:a,getSchemeHandler:y}})),$h=V(((e,t)=>{let{normalizeIPv6:n,removeDotSegments:r,recomposeAuthority:i,normalizeComponentEncoding:a,isIPv4:o,nonSimpleDomain:s}=Zh(),{SCHEMES:c,getSchemeHandler:l}=Qh();function u(e,t){return typeof e==`string`?e=m(g(e,t),t):typeof e==`object`&&(e=g(m(e,t),t)),e}function d(e,t,n){let r=n?Object.assign({scheme:`null`},n):{scheme:`null`},i=f(g(e,r),g(t,r),r,!0);return r.skipEscape=!0,m(i,r)}function f(e,t,n,i){let a={};return i||(e=g(m(e,n),n),t=g(m(t,n),n)),n||={},!n.tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=r(t.path||``),a.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=r(t.path||``),a.query=t.query):(t.path?(t.path[0]===`/`?a.path=r(t.path):(a.path=(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?`/`+t.path:e.path?e.path.slice(0,e.path.lastIndexOf(`/`)+1)+t.path:t.path,a.path=r(a.path)),a.query=t.query):(a.path=e.path,a.query=t.query===void 0?e.query:t.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function p(e,t,n){return typeof e==`string`?(e=unescape(e),e=m(a(g(e,n),!0),{...n,skipEscape:!0})):typeof e==`object`&&(e=m(a(e,!0),{...n,skipEscape:!0})),typeof t==`string`?(t=unescape(t),t=m(a(g(t,n),!0),{...n,skipEscape:!0})):typeof t==`object`&&(t=m(a(t,!0),{...n,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function m(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:``},a=Object.assign({},t),o=[],s=l(a.scheme||n.scheme);s&&s.serialize&&s.serialize(n,a),n.path!==void 0&&(a.skipEscape?n.path=unescape(n.path):(n.path=escape(n.path),n.scheme!==void 0&&(n.path=n.path.split(`%3A`).join(`:`)))),a.reference!==`suffix`&&n.scheme&&o.push(n.scheme,`:`);let c=i(n);if(c!==void 0&&(a.reference!==`suffix`&&o.push(`//`),o.push(c),n.path&&n.path[0]!==`/`&&o.push(`/`)),n.path!==void 0){let e=n.path;!a.absolutePath&&(!s||!s.absolutePath)&&(e=r(e)),c===void 0&&e[0]===`/`&&e[1]===`/`&&(e=`/%2F`+e.slice(2)),o.push(e)}return n.query!==void 0&&o.push(`?`,n.query),n.fragment!==void 0&&o.push(`#`,n.fragment),o.join(``)}let h=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(e,t){let r=Object.assign({},t),i={scheme:void 0,userinfo:void 0,host:``,port:void 0,path:``,query:void 0,fragment:void 0},a=!1;r.reference===`suffix`&&(e=r.scheme?r.scheme+`:`+e:`//`+e);let c=e.match(h);if(c){if(i.scheme=c[1],i.userinfo=c[3],i.host=c[4],i.port=parseInt(c[5],10),i.path=c[6]||``,i.query=c[7],i.fragment=c[8],isNaN(i.port)&&(i.port=c[5]),i.host){if(o(i.host)===!1){let e=n(i.host);i.host=e.host.toLowerCase(),a=e.isIPV6}else a=!0}i.reference=i.scheme===void 0&&i.userinfo===void 0&&i.host===void 0&&i.port===void 0&&i.query===void 0&&!i.path?`same-document`:i.scheme===void 0?`relative`:i.fragment===void 0?`absolute`:`uri`,r.reference&&r.reference!==`suffix`&&r.reference!==i.reference&&(i.error=i.error||`URI is not a `+r.reference+` reference.`);let t=l(r.scheme||i.scheme);if(!r.unicodeSupport&&(!t||!t.unicodeSupport)&&i.host&&(r.domainHost||t&&t.domainHost)&&a===!1&&s(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(e){i.error=i.error||`Host's domain name can not be converted to ASCII: `+e}(!t||t&&!t.skipNormalize)&&(e.indexOf(`%`)!==-1&&(i.scheme!==void 0&&(i.scheme=unescape(i.scheme)),i.host!==void 0&&(i.host=unescape(i.host))),i.path&&=escape(unescape(i.path)),i.fragment&&=encodeURI(decodeURIComponent(i.fragment))),t&&t.parse&&t.parse(i,r)}else i.error=i.error||`URI can not be parsed.`;return i}let _={SCHEMES:c,normalize:u,resolve:d,resolveComponent:f,equal:p,serialize:m,parse:g};t.exports=_,t.exports.default=_,t.exports.fastUri=_})),eg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=$h();t.code=`require("ajv/dist/runtime/uri").default`,e.default=t})),tg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=Kh();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var n=K();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return n.CodeGen}});let r=qh(),i=Jh(),a=Ih(),o=Yh(),s=K(),c=Gh(),l=Rh(),u=q(),d=Xh(),f=eg(),p=(e,t)=>new RegExp(e,t);p.code=`new RegExp`;let m=[`removeAdditional`,`useDefaults`,`coerceTypes`],h=new Set([`validate`,`serialize`,`parse`,`wrapper`,`root`,`schema`,`keyword`,`pattern`,`formats`,`validate$data`,`func`,`obj`,`Error`]),g={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.`},_={ignoreKeywordsWithRef:``,jsPropertySyntax:``,unicode:`"minLength"/"maxLength" account for unicode characters by default.`};function v(e){let t=e.strict,n=e.code?.optimize,r=n===!0||n===void 0?1:n||0,i=e.code?.regExp??p,a=e.uriResolver??f.default;return{strictSchema:e.strictSchema??t??!0,strictNumbers:e.strictNumbers??t??!0,strictTypes:e.strictTypes??t??`log`,strictTuples:e.strictTuples??t??`log`,strictRequired:e.strictRequired??t??!1,code:e.code?{...e.code,optimize:r,regExp:i}:{optimize:r,regExp:i},loopRequired:e.loopRequired??200,loopEnum:e.loopEnum??200,meta:e.meta??!0,messages:e.messages??!0,inlineRefs:e.inlineRefs??!0,schemaId:e.schemaId??`$id`,addUsedSchema:e.addUsedSchema??!0,validateSchema:e.validateSchema??!0,validateFormats:e.validateFormats??!0,unicodeRegExp:e.unicodeRegExp??!0,int32range:e.int32range??!0,uriResolver:a}}var y=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...v(e)};let{es5:t,lines:n}=this.opts.code;this.scope=new s.ValueScope({scope:{},prefixes:h,es5:t,lines:n}),this.logger=D(e.logger);let r=e.validateFormats;e.validateFormats=!1,this.RULES=(0,a.getRules)(),b.call(this,g,e,`NOT SUPPORTED`),b.call(this,_,e,`DEPRECATED`,`warn`),this._metaOpts=T.call(this),e.formats&&C.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&w.call(this,e.keywords),typeof e.meta==`object`&&this.addMetaSchema(e.meta),S.call(this),e.validateFormats=r}_addVocabularies(){this.addKeyword(`$async`)}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:n}=this.opts,r=d;n===`id`&&(r={...d},r.id=r.$id,delete r.$id),t&&e&&this.addMetaSchema(r,r[n],!1)}defaultMeta(){let{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e==`object`?e[t]||e:void 0}validate(e,t){let n;if(typeof e==`string`){if(n=this.getSchema(e),!n)throw Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let r=n(t);return`$async`in n||(this.errors=n.errors),r}compile(e,t){let n=this._addSchema(e,t);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,t){if(typeof this.opts.loadSchema!=`function`)throw Error(`options.loadSchema should be a function`);let{loadSchema:n}=this.opts;return r.call(this,e,t);async function r(e,t){await a.call(this,e.$schema);let n=this._addSchema(e,t);return n.validate||o.call(this,n)}async function a(e){e&&!this.getSchema(e)&&await r.call(this,{$ref:e},!0)}async function o(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof i.default))throw t;return s.call(this,t),await c.call(this,t.missingSchema),o.call(this,e)}}function s({missingSchema:e,missingRef:t}){if(this.refs[e])throw Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}async function c(e){let n=await l.call(this,e);this.refs[e]||await a.call(this,n.$schema),this.refs[e]||this.addSchema(n,e,t)}async function l(e){let t=this._loading[e];if(t)return t;try{return await(this._loading[e]=n(e))}finally{delete this._loading[e]}}}addSchema(e,t,n,r=this.opts.validateSchema){if(Array.isArray(e)){for(let t of e)this.addSchema(t,void 0,n,r);return this}let i;if(typeof e==`object`){let{schemaId:t}=this.opts;if(i=e[t],i!==void 0&&typeof i!=`string`)throw Error(`schema ${t} must be string`)}return t=(0,c.normalizeId)(t||i),this._checkUnique(t),this.schemas[t]=this._addSchema(e,n,t,r,!0),this}addMetaSchema(e,t,n=this.opts.validateSchema){return this.addSchema(e,t,!0,n),this}validateSchema(e,t){if(typeof e==`boolean`)return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!=`string`)throw Error(`$schema must be a string`);if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn(`meta-schema not available`),this.errors=null,!0;let r=this.validate(n,e);if(!r&&t){let e=`schema is invalid: `+this.errorsText();if(this.opts.validateSchema===`log`)this.logger.error(e);else throw Error(e)}return r}getSchema(e){let t;for(;typeof(t=x.call(this,e))==`string`;)e=t;if(t===void 0){let{schemaId:n}=this.opts,r=new o.SchemaEnv({schema:{},schemaId:n});if(t=o.resolveSchema.call(this,r,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case`undefined`:return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case`string`:{let t=x.call(this,e);return typeof t==`object`&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case`object`:{let t=e;this._cache.delete(t);let n=e[this.opts.schemaId];return n&&(n=(0,c.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw Error(`ajv.removeSchema: invalid parameter`)}}addVocabulary(e){for(let t of e)this.addKeyword(t);return this}addKeyword(e,t){let n;if(typeof e==`string`)n=e,typeof t==`object`&&(this.logger.warn(`these parameters are deprecated, see docs for addKeyword`),t.keyword=n);else if(typeof e==`object`&&t===void 0){if(t=e,n=t.keyword,Array.isArray(n)&&!n.length)throw Error(`addKeywords: keyword must be string or non-empty array`)}else throw Error(`invalid addKeywords parameters`);if(k.call(this,n,t),!t)return(0,u.eachItem)(n,e=>A.call(this,e)),this;j.call(this,t);let r={...t,type:(0,l.getJSONTypes)(t.type),schemaType:(0,l.getJSONTypes)(t.schemaType)};return(0,u.eachItem)(n,r.type.length===0?e=>A.call(this,e,r):e=>r.type.forEach(t=>A.call(this,e,r,t))),this}getKeyword(e){let t=this.RULES.all[e];return typeof t==`object`?t.definition:!!t}removeKeyword(e){let{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(let n of t.rules){let t=n.rules.findIndex(t=>t.keyword===e);t>=0&&n.rules.splice(t,1)}return this}addFormat(e,t){return typeof t==`string`&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=`, `,dataVar:n=`data`}={}){return!e||e.length===0?`No errors`:e.map(e=>`${n}${e.instancePath} ${e.message}`).reduce((e,n)=>e+t+n)}$dataMetaSchema(e,t){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let r of t){let t=r.split(`/`).slice(1),i=e;for(let e of t)i=i[e];for(let e in n){let t=n[e];if(typeof t!=`object`)continue;let{$data:r}=t.definition,a=i[e];r&&a&&(i[e]=M(a))}}return e}_removeAllSchemas(e,t){for(let n in e){let r=e[n];(!t||t.test(n))&&(typeof r==`string`?delete e[n]:r&&!r.meta&&(this._cache.delete(r.schema),delete e[n]))}}_addSchema(e,t,n,r=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof e==`object`)a=e[s];else if(this.opts.jtd)throw Error(`schema must be object`);else if(typeof e!=`boolean`)throw Error(`schema must be object or boolean`);let l=this._cache.get(e);if(l!==void 0)return l;n=(0,c.normalizeId)(a||n);let u=c.getSchemaRefs.call(this,e,n);return l=new o.SchemaEnv({schema:e,schemaId:s,meta:t,baseId:n,localRefs:u}),this._cache.set(l.schema,l),i&&!n.startsWith(`#`)&&(n&&this._checkUnique(n),this.refs[n]=l),r&&this.validateSchema(e,!0),l}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):o.compileSchema.call(this,e),!e.validate)throw Error(`ajv implementation error`);return e.validate}_compileMetaSchema(e){let t=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,e)}finally{this.opts=t}}};y.ValidationError=r.default,y.MissingRefError=i.default,e.default=y;function b(e,t,n,r=`error`){for(let i in e){let a=i;a in t&&this.logger[r](`${n}: option ${i}. ${e[a]}`)}}function x(e){return e=(0,c.normalizeId)(e),this.schemas[e]||this.refs[e]}function S(){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 C(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function w(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||=t,this.addKeyword(n)}}function T(){let e={...this.opts};for(let t of m)delete e[t];return e}let E={log(){},warn(){},error(){}};function D(e){if(e===!1)return E;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw Error(`logger must implement log, warn and error methods`)}let O=/^[a-z_$][a-z0-9_$:-]*$/i;function k(e,t){let{RULES:n}=this;if((0,u.eachItem)(e,e=>{if(n.keywords[e])throw Error(`Keyword ${e} is already defined`);if(!O.test(e))throw Error(`Keyword ${e} has invalid name`)}),t&&t.$data&&!(`code`in t||`validate`in t))throw Error(`$data keyword must have "code" or "validate" function`)}function A(e,t,n){var r;let i=t?.post;if(n&&i)throw Error(`keyword with "post" flag cannot have "type"`);let{RULES:a}=this,o=i?a.post:a.rules.find(({type:e})=>e===n);if(o||(o={type:n,rules:[]},a.rules.push(o)),a.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,l.getJSONTypes)(t.type),schemaType:(0,l.getJSONTypes)(t.schemaType)}};t.before?ee.call(this,o,s,t.before):o.rules.push(s),a.all[e]=s,(r=t.implements)==null||r.forEach(e=>this.addKeyword(e))}function ee(e,t,n){let r=e.rules.findIndex(e=>e.keyword===n);r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function j(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=M(t)),e.validateSchema=this.compile(t,!0))}let te={$ref:`https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#`};function M(e){return{anyOf:[e,te]}}})),ng=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={keyword:`id`,code(){throw Error(`NOT SUPPORTED: keyword "id", use "$id" for schema ID`)}}})),rg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;let t=Jh(),n=Bh(),r=K(),i=Nh(),a=Yh(),o=q(),s={keyword:`$ref`,schemaType:`string`,code(e){let{gen:n,schema:i,it:o}=e,{baseId:s,schemaEnv:u,validateName:d,opts:f,self:p}=o,{root:m}=u;if((i===`#`||i===`#/`)&&s===m.baseId)return g();let h=a.resolveRef.call(p,m,s,i);if(h===void 0)throw new t.default(o.opts.uriResolver,s,i);if(h instanceof a.SchemaEnv)return _(h);return v(h);function g(){if(u===m)return l(e,d,u,u.$async);let t=n.scopeValue(`root`,{ref:m});return l(e,(0,r._)`${t}.validate`,m,m.$async)}function _(t){l(e,c(e,t),t,t.$async)}function v(t){let a=n.scopeValue(`schema`,f.code.source===!0?{ref:t,code:(0,r.stringify)(t)}:{ref:t}),o=n.name(`valid`),s=e.subschema({schema:t,dataTypes:[],schemaPath:r.nil,topSchemaRef:a,errSchemaPath:i},o);e.mergeEvaluated(s),e.ok(o)}}};function c(e,t){let{gen:n}=e;return t.validate?n.scopeValue(`validate`,{ref:t.validate}):(0,r._)`${n.scopeValue(`wrapper`,{ref:t})}.validate`}e.getValidate=c;function l(e,t,a,s){let{gen:c,it:l}=e,{allErrors:u,schemaEnv:d,opts:f}=l,p=f.passContext?i.default.this:r.nil;s?m():h();function m(){if(!d.$async)throw Error(`async schema referenced by sync schema`);let i=c.let(`valid`);c.try(()=>{c.code((0,r._)`await ${(0,n.callValidateCode)(e,t,p)}`),_(t),u||c.assign(i,!0)},e=>{c.if((0,r._)`!(${e} instanceof ${l.ValidationError})`,()=>c.throw(e)),g(e),u||c.assign(i,!1)}),e.ok(i)}function h(){e.result((0,n.callValidateCode)(e,t,p),()=>_(t),()=>g(t))}function g(e){let t=(0,r._)`${e}.errors`;c.assign(i.default.vErrors,(0,r._)`${i.default.vErrors} === null ? ${t} : ${i.default.vErrors}.concat(${t})`),c.assign(i.default.errors,(0,r._)`${i.default.vErrors}.length`)}function _(e){if(!l.opts.unevaluated)return;let t=a?.validate?.evaluated;if(l.props!==!0){if(t&&!t.dynamicProps)t.props!==void 0&&(l.props=o.mergeEvaluated.props(c,t.props,l.props));else{let t=c.var(`props`,(0,r._)`${e}.evaluated.props`);l.props=o.mergeEvaluated.props(c,t,l.props,r.Name)}}if(l.items!==!0){if(t&&!t.dynamicItems)t.items!==void 0&&(l.items=o.mergeEvaluated.items(c,t.items,l.items));else{let t=c.var(`items`,(0,r._)`${e}.evaluated.items`);l.items=o.mergeEvaluated.items(c,t,l.items,r.Name)}}}}e.callRef=l,e.default=s})),ig=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=ng(),n=rg();e.default=[`$schema`,`$id`,`$defs`,`$vocabulary`,{keyword:`$comment`},`definitions`,t.default,n.default]})),ag=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=t.operators,r={maximum:{okStr:`<=`,ok:n.LTE,fail:n.GT},minimum:{okStr:`>=`,ok:n.GTE,fail:n.LT},exclusiveMaximum:{okStr:`<`,ok:n.LT,fail:n.GTE},exclusiveMinimum:{okStr:`>`,ok:n.GT,fail:n.LTE}};e.default={keyword:Object.keys(r),type:`number`,schemaType:`number`,$data:!0,error:{message:({keyword:e,schemaCode:n})=>(0,t.str)`must be ${r[e].okStr} ${n}`,params:({keyword:e,schemaCode:n})=>(0,t._)`{comparison: ${r[e].okStr}, limit: ${n}}`},code(e){let{keyword:n,data:i,schemaCode:a}=e;e.fail$data((0,t._)`${i} ${r[n].fail} ${a} || isNaN(${i})`)}}})),og=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K();e.default={keyword:`multipleOf`,type:`number`,schemaType:`number`,$data:!0,error:{message:({schemaCode:e})=>(0,t.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,t._)`{multipleOf: ${e}}`},code(e){let{gen:n,data:r,schemaCode:i,it:a}=e,o=a.opts.multipleOfPrecision,s=n.let(`res`),c=o?(0,t._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${o}`:(0,t._)`${s} !== parseInt(${s})`;e.fail$data((0,t._)`(${i} === 0 || (${s} = ${r}/${i}, ${c}))`)}}})),sg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(e){let t=e.length,n=0,r=0,i;for(;r<t;)n++,i=e.charCodeAt(r++),i>=55296&&i<=56319&&r<t&&(i=e.charCodeAt(r),(i&64512)==56320&&r++);return n}e.default=t,t.code=`require("ajv/dist/runtime/ucs2length").default`})),cg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=q(),r=sg();e.default={keyword:[`maxLength`,`minLength`],type:`string`,schemaType:`number`,$data:!0,error:{message({keyword:e,schemaCode:n}){let r=e===`maxLength`?`more`:`fewer`;return(0,t.str)`must NOT have ${r} than ${n} characters`},params:({schemaCode:e})=>(0,t._)`{limit: ${e}}`},code(e){let{keyword:i,data:a,schemaCode:o,it:s}=e,c=i===`maxLength`?t.operators.GT:t.operators.LT,l=s.opts.unicode===!1?(0,t._)`${a}.length`:(0,t._)`${(0,n.useFunc)(e.gen,r.default)}(${a})`;e.fail$data((0,t._)`${l} ${c} ${o}`)}}})),lg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Bh(),n=q(),r=K();e.default={keyword:`pattern`,type:`string`,schemaType:`string`,$data:!0,error:{message:({schemaCode:e})=>(0,r.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,r._)`{pattern: ${e}}`},code(e){let{gen:i,data:a,$data:o,schema:s,schemaCode:c,it:l}=e,u=l.opts.unicodeRegExp?`u`:``;if(o){let{regExp:t}=l.opts.code,o=t.code===`new RegExp`?(0,r._)`new RegExp`:(0,n.useFunc)(i,t),s=i.let(`valid`);i.try(()=>i.assign(s,(0,r._)`${o}(${c}, ${u}).test(${a})`),()=>i.assign(s,!1)),e.fail$data((0,r._)`!${s}`)}else{let n=(0,t.usePattern)(e,s);e.fail$data((0,r._)`!${n}.test(${a})`)}}}})),ug=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K();e.default={keyword:[`maxProperties`,`minProperties`],type:`object`,schemaType:`number`,$data:!0,error:{message({keyword:e,schemaCode:n}){let r=e===`maxProperties`?`more`:`fewer`;return(0,t.str)`must NOT have ${r} than ${n} properties`},params:({schemaCode:e})=>(0,t._)`{limit: ${e}}`},code(e){let{keyword:n,data:r,schemaCode:i}=e,a=n===`maxProperties`?t.operators.GT:t.operators.LT;e.fail$data((0,t._)`Object.keys(${r}).length ${a} ${i}`)}}})),dg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Bh(),n=K(),r=q();e.default={keyword:`required`,type:`object`,schemaType:`array`,$data:!0,error:{message:({params:{missingProperty:e}})=>(0,n.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,n._)`{missingProperty: ${e}}`},code(e){let{gen:i,schema:a,schemaCode:o,data:s,$data:c,it:l}=e,{opts:u}=l;if(!c&&a.length===0)return;let d=a.length>=u.loopRequired;if(l.allErrors?f():p(),u.strictRequired){let t=e.parentSchema.properties,{definedProperties:n}=e.it;for(let e of a)if(t?.[e]===void 0&&!n.has(e)){let t=`required property "${e}" is not defined at "${l.schemaEnv.baseId+l.errSchemaPath}" (strictRequired)`;(0,r.checkStrictMode)(l,t,l.opts.strictRequired)}}function f(){if(d||c)e.block$data(n.nil,m);else for(let n of a)(0,t.checkReportMissingProp)(e,n)}function p(){let n=i.let(`missing`);if(d||c){let t=i.let(`valid`,!0);e.block$data(t,()=>h(n,t)),e.ok(t)}else i.if((0,t.checkMissingProp)(e,a,n)),(0,t.reportMissingProp)(e,n),i.else()}function m(){i.forOf(`prop`,o,n=>{e.setParams({missingProperty:n}),i.if((0,t.noPropertyInData)(i,s,n,u.ownProperties),()=>e.error())})}function h(r,a){e.setParams({missingProperty:r}),i.forOf(r,o,()=>{i.assign(a,(0,t.propertyInData)(i,s,r,u.ownProperties)),i.if((0,n.not)(a),()=>{e.error(),i.break()})},n.nil)}}}})),fg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K();e.default={keyword:[`maxItems`,`minItems`],type:`array`,schemaType:`number`,$data:!0,error:{message({keyword:e,schemaCode:n}){let r=e===`maxItems`?`more`:`fewer`;return(0,t.str)`must NOT have ${r} than ${n} items`},params:({schemaCode:e})=>(0,t._)`{limit: ${e}}`},code(e){let{keyword:n,data:r,schemaCode:i}=e,a=n===`maxItems`?t.operators.GT:t.operators.LT;e.fail$data((0,t._)`${r}.length ${a} ${i}`)}}})),pg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Uh();t.code=`require("ajv/dist/runtime/equal").default`,e.default=t})),mg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Rh(),n=K(),r=q(),i=pg();e.default={keyword:`uniqueItems`,type:`array`,schemaType:`boolean`,$data:!0,error:{message:({params:{i:e,j:t}})=>(0,n.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,n._)`{i: ${e}, j: ${t}}`},code(e){let{gen:a,data:o,$data:s,schema:c,parentSchema:l,schemaCode:u,it:d}=e;if(!s&&!c)return;let f=a.let(`valid`),p=l.items?(0,t.getSchemaTypes)(l.items):[];e.block$data(f,m,(0,n._)`${u} === false`),e.ok(f);function m(){let t=a.let(`i`,(0,n._)`${o}.length`),r=a.let(`j`);e.setParams({i:t,j:r}),a.assign(f,!0),a.if((0,n._)`${t} > 1`,()=>(h()?g:_)(t,r))}function h(){return p.length>0&&!p.some(e=>e===`object`||e===`array`)}function g(r,i){let s=a.name(`item`),c=(0,t.checkDataTypes)(p,s,d.opts.strictNumbers,t.DataType.Wrong),l=a.const(`indices`,(0,n._)`{}`);a.for((0,n._)`;${r}--;`,()=>{a.let(s,(0,n._)`${o}[${r}]`),a.if(c,(0,n._)`continue`),p.length>1&&a.if((0,n._)`typeof ${s} == "string"`,(0,n._)`${s} += "_"`),a.if((0,n._)`typeof ${l}[${s}] == "number"`,()=>{a.assign(i,(0,n._)`${l}[${s}]`),e.error(),a.assign(f,!1).break()}).code((0,n._)`${l}[${s}] = ${r}`)})}function _(t,s){let c=(0,r.useFunc)(a,i.default),l=a.name(`outer`);a.label(l).for((0,n._)`;${t}--;`,()=>a.for((0,n._)`${s} = ${t}; ${s}--;`,()=>a.if((0,n._)`${c}(${o}[${t}], ${o}[${s}])`,()=>{e.error(),a.assign(f,!1).break(l)})))}}}})),hg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=q(),r=pg();e.default={keyword:`const`,$data:!0,error:{message:`must be equal to constant`,params:({schemaCode:e})=>(0,t._)`{allowedValue: ${e}}`},code(e){let{gen:i,data:a,$data:o,schemaCode:s,schema:c}=e;o||c&&typeof c==`object`?e.fail$data((0,t._)`!${(0,n.useFunc)(i,r.default)}(${a}, ${s})`):e.fail((0,t._)`${c} !== ${a}`)}}})),gg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=q(),r=pg();e.default={keyword:`enum`,schemaType:`array`,$data:!0,error:{message:`must be equal to one of the allowed values`,params:({schemaCode:e})=>(0,t._)`{allowedValues: ${e}}`},code(e){let{gen:i,data:a,$data:o,schema:s,schemaCode:c,it:l}=e;if(!o&&s.length===0)throw Error(`enum must have non-empty array`);let u=s.length>=l.opts.loopEnum,d,f=()=>d??=(0,n.useFunc)(i,r.default),p;if(u||o)p=i.let(`valid`),e.block$data(p,m);else{if(!Array.isArray(s))throw Error(`ajv implementation error`);let e=i.const(`vSchema`,c);p=(0,t.or)(...s.map((t,n)=>h(e,n)))}e.pass(p);function m(){i.assign(p,!1),i.forOf(`v`,c,e=>i.if((0,t._)`${f()}(${a}, ${e})`,()=>i.assign(p,!0).break()))}function h(e,n){let r=s[n];return typeof r==`object`&&r?(0,t._)`${f()}(${a}, ${e}[${n}])`:(0,t._)`${a} === ${r}`}}}})),_g=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=ag(),n=og(),r=cg(),i=lg(),a=ug(),o=dg(),s=fg(),c=mg(),l=hg(),u=gg();e.default=[t.default,n.default,r.default,i.default,a.default,o.default,s.default,c.default,{keyword:`type`,schemaType:[`string`,`array`]},{keyword:`nullable`,schemaType:`boolean`},l.default,u.default]})),vg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;let t=K(),n=q(),r={keyword:`additionalItems`,type:`array`,schemaType:[`boolean`,`object`],before:`uniqueItems`,error:{message:({params:{len:e}})=>(0,t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,t._)`{limit: ${e}}`},code(e){let{parentSchema:t,it:r}=e,{items:a}=t;if(!Array.isArray(a)){(0,n.checkStrictMode)(r,`"additionalItems" is ignored when "items" is not an array of schemas`);return}i(e,a)}};function i(e,r){let{gen:i,schema:a,data:o,keyword:s,it:c}=e;c.items=!0;let l=i.const(`len`,(0,t._)`${o}.length`);if(a===!1)e.setParams({len:r.length}),e.pass((0,t._)`${l} <= ${r.length}`);else if(typeof a==`object`&&!(0,n.alwaysValidSchema)(c,a)){let n=i.var(`valid`,(0,t._)`${l} <= ${r.length}`);i.if((0,t.not)(n),()=>u(n)),e.ok(n)}function u(a){i.forRange(`i`,r.length,l,r=>{e.subschema({keyword:s,dataProp:r,dataPropType:n.Type.Num},a),c.allErrors||i.if((0,t.not)(a),()=>i.break())})}}e.validateAdditionalItems=i,e.default=r})),yg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;let t=K(),n=q(),r=Bh(),i={keyword:`items`,type:`array`,schemaType:[`object`,`array`,`boolean`],before:`uniqueItems`,code(e){let{schema:t,it:i}=e;if(Array.isArray(t))return a(e,`additionalItems`,t);i.items=!0,!(0,n.alwaysValidSchema)(i,t)&&e.ok((0,r.validateArray)(e))}};function a(e,r,i=e.schema){let{gen:a,parentSchema:o,data:s,keyword:c,it:l}=e;f(o),l.opts.unevaluated&&i.length&&l.items!==!0&&(l.items=n.mergeEvaluated.items(a,i.length,l.items));let u=a.name(`valid`),d=a.const(`len`,(0,t._)`${s}.length`);i.forEach((r,i)=>{(0,n.alwaysValidSchema)(l,r)||(a.if((0,t._)`${d} > ${i}`,()=>e.subschema({keyword:c,schemaProp:i,dataProp:i},u)),e.ok(u))});function f(e){let{opts:t,errSchemaPath:a}=l,o=i.length,s=o===e.minItems&&(o===e.maxItems||e[r]===!1);if(t.strictTuples&&!s){let e=`"${c}" is ${o}-tuple, but minItems or maxItems/${r} are not specified or different at path "${a}"`;(0,n.checkStrictMode)(l,e,t.strictTuples)}}}e.validateTuple=a,e.default=i})),bg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=yg();e.default={keyword:`prefixItems`,type:`array`,schemaType:[`array`],before:`uniqueItems`,code:e=>(0,t.validateTuple)(e,`items`)}})),xg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=q(),r=Bh(),i=vg();e.default={keyword:`items`,type:`array`,schemaType:[`object`,`boolean`],before:`uniqueItems`,error:{message:({params:{len:e}})=>(0,t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,t._)`{limit: ${e}}`},code(e){let{schema:t,parentSchema:a,it:o}=e,{prefixItems:s}=a;o.items=!0,!(0,n.alwaysValidSchema)(o,t)&&(s?(0,i.validateAdditionalItems)(e,s):e.ok((0,r.validateArray)(e)))}}})),Sg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=q();e.default={keyword:`contains`,type:`array`,schemaType:[`object`,`boolean`],before:`uniqueItems`,trackErrors:!0,error:{message:({params:{min:e,max:n}})=>n===void 0?(0,t.str)`must contain at least ${e} valid item(s)`:(0,t.str)`must contain at least ${e} and no more than ${n} valid item(s)`,params:({params:{min:e,max:n}})=>n===void 0?(0,t._)`{minContains: ${e}}`:(0,t._)`{minContains: ${e}, maxContains: ${n}}`},code(e){let{gen:r,schema:i,parentSchema:a,data:o,it:s}=e,c,l,{minContains:u,maxContains:d}=a;s.opts.next?(c=u===void 0?1:u,l=d):c=1;let f=r.const(`len`,(0,t._)`${o}.length`);if(e.setParams({min:c,max:l}),l===void 0&&c===0){(0,n.checkStrictMode)(s,`"minContains" == 0 without "maxContains": "contains" keyword ignored`);return}if(l!==void 0&&c>l){(0,n.checkStrictMode)(s,`"minContains" > "maxContains" is always invalid`),e.fail();return}if((0,n.alwaysValidSchema)(s,i)){let n=(0,t._)`${f} >= ${c}`;l!==void 0&&(n=(0,t._)`${n} && ${f} <= ${l}`),e.pass(n);return}s.items=!0;let p=r.name(`valid`);l===void 0&&c===1?h(p,()=>r.if(p,()=>r.break())):c===0?(r.let(p,!0),l!==void 0&&r.if((0,t._)`${o}.length > 0`,m)):(r.let(p,!1),m()),e.result(p,()=>e.reset());function m(){let e=r.name(`_valid`),t=r.let(`count`,0);h(e,()=>r.if(e,()=>g(t)))}function h(t,i){r.forRange(`i`,0,f,r=>{e.subschema({keyword:`contains`,dataProp:r,dataPropType:n.Type.Num,compositeRule:!0},t),i()})}function g(e){r.code((0,t._)`${e}++`),l===void 0?r.if((0,t._)`${e} >= ${c}`,()=>r.assign(p,!0).break()):(r.if((0,t._)`${e} > ${l}`,()=>r.assign(p,!1).break()),c===1?r.assign(p,!0):r.if((0,t._)`${e} >= ${c}`,()=>r.assign(p,!0)))}}}})),Cg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;let t=K(),n=q(),r=Bh();e.error={message:({params:{property:e,depsCount:n,deps:r}})=>{let i=n===1?`property`:`properties`;return(0,t.str)`must have ${i} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:n,deps:r,missingProperty:i}})=>(0,t._)`{property: ${e},
180
+ || ${s} === "boolean" || ${a} === null`).assign(c,(0,i._)`[${a}]`)}}}function p({gen:e,parentData:t,parentDataProperty:n},r){e.if((0,i._)`${t} !== undefined`,()=>e.assign((0,i._)`${t}[${n}]`,r))}function m(e,t,n,r=o.Correct){let a=r===o.Correct?i.operators.EQ:i.operators.NEQ,s;switch(e){case`null`:return(0,i._)`${t} ${a} null`;case`array`:s=(0,i._)`Array.isArray(${t})`;break;case`object`:s=(0,i._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case`integer`:s=c((0,i._)`!(${t} % 1) && !isNaN(${t})`);break;case`number`:s=c();break;default:return(0,i._)`typeof ${t} ${a} ${e}`}return r===o.Correct?s:(0,i.not)(s);function c(e=i.nil){return(0,i.and)((0,i._)`typeof ${t} == "number"`,e,n?(0,i._)`isFinite(${t})`:i.nil)}}e.checkDataType=m;function h(e,t,n,r){if(e.length===1)return m(e[0],t,n,r);let o,s=(0,a.toHash)(e);if(s.array&&s.object){let e=(0,i._)`typeof ${t} != "object"`;o=s.null?e:(0,i._)`!${t} || ${e}`,delete s.null,delete s.array,delete s.object}else o=i.nil;s.number&&delete s.integer;for(let e in s)o=(0,i.and)(o,m(e,t,n,r));return o}e.checkDataTypes=h;let g={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e==`string`?(0,i._)`{type: ${e}}`:(0,i._)`{type: ${t}}`};function _(e){let t=v(e);(0,r.reportError)(t,g)}e.reportTypeError=_;function v(e){let{gen:t,data:n,schema:r}=e,i=(0,a.schemaRefOrVal)(e,r,`type`);return{gen:t,keyword:`type`,data:n,schema:r.type,schemaCode:i,schemaValue:i,parentSchema:r,params:{},it:e}}})),Hh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assignDefaults=void 0;let t=W(),n=G();function r(e,t){let{properties:n,items:r}=e.schema;if(t===`object`&&n)for(let t in n)i(e,t,n[t].default);else t===`array`&&Array.isArray(r)&&r.forEach((t,n)=>i(e,n,t.default))}e.assignDefaults=r;function i(e,r,i){let{gen:a,compositeRule:o,data:s,opts:c}=e;if(i===void 0)return;let l=(0,t._)`${s}${(0,t.getProperty)(r)}`;if(o){(0,n.checkStrictMode)(e,`default is ignored for: ${l}`);return}let u=(0,t._)`${l} === undefined`;c.useDefaults===`empty`&&(u=(0,t._)`${u} || ${l} === null || ${l} === ""`),a.if(u,(0,t._)`${l} = ${(0,t.stringify)(i)}`)}})),Uh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateUnion=e.validateArray=e.usePattern=e.callValidateCode=e.schemaProperties=e.allSchemaProperties=e.noPropertyInData=e.propertyInData=e.isOwnProperty=e.hasPropFunc=e.reportMissingProp=e.checkMissingProp=e.checkReportMissingProp=void 0;let t=W(),n=G(),r=Ih(),i=G();function a(e,n){let{gen:r,data:i,it:a}=e;r.if(d(r,i,n,a.opts.ownProperties),()=>{e.setParams({missingProperty:(0,t._)`${n}`},!0),e.error()})}e.checkReportMissingProp=a;function o({gen:e,data:n,it:{opts:r}},i,a){return(0,t.or)(...i.map(i=>(0,t.and)(d(e,n,i,r.ownProperties),(0,t._)`${a} = ${i}`)))}e.checkMissingProp=o;function s(e,t){e.setParams({missingProperty:t},!0),e.error()}e.reportMissingProp=s;function c(e){return e.scopeValue(`func`,{ref:Object.prototype.hasOwnProperty,code:(0,t._)`Object.prototype.hasOwnProperty`})}e.hasPropFunc=c;function l(e,n,r){return(0,t._)`${c(e)}.call(${n}, ${r})`}e.isOwnProperty=l;function u(e,n,r,i){let a=(0,t._)`${n}${(0,t.getProperty)(r)} !== undefined`;return i?(0,t._)`${a} && ${l(e,n,r)}`:a}e.propertyInData=u;function d(e,n,r,i){let a=(0,t._)`${n}${(0,t.getProperty)(r)} === undefined`;return i?(0,t.or)(a,(0,t.not)(l(e,n,r))):a}e.noPropertyInData=d;function f(e){return e?Object.keys(e).filter(e=>e!==`__proto__`):[]}e.allSchemaProperties=f;function p(e,t){return f(t).filter(r=>!(0,n.alwaysValidSchema)(e,t[r]))}e.schemaProperties=p;function m({schemaCode:e,data:n,it:{gen:i,topSchemaRef:a,schemaPath:o,errorPath:s},it:c},l,u,d){let f=d?(0,t._)`${e}, ${n}, ${a}${o}`:n,p=[[r.default.instancePath,(0,t.strConcat)(r.default.instancePath,s)],[r.default.parentData,c.parentData],[r.default.parentDataProperty,c.parentDataProperty],[r.default.rootData,r.default.rootData]];c.opts.dynamicRef&&p.push([r.default.dynamicAnchors,r.default.dynamicAnchors]);let m=(0,t._)`${f}, ${i.object(...p)}`;return u===t.nil?(0,t._)`${l}(${m})`:(0,t._)`${l}.call(${u}, ${m})`}e.callValidateCode=m;let h=(0,t._)`new RegExp`;function g({gen:e,it:{opts:n}},r){let a=n.unicodeRegExp?`u`:``,{regExp:o}=n.code,s=o(r,a);return e.scopeValue(`pattern`,{key:s.toString(),ref:s,code:(0,t._)`${o.code===`new RegExp`?h:(0,i.useFunc)(e,o)}(${r}, ${a})`})}e.usePattern=g;function _(e){let{gen:r,data:i,keyword:a,it:o}=e,s=r.name(`valid`);if(o.allErrors){let e=r.let(`valid`,!0);return c(()=>r.assign(e,!1)),e}return r.var(s,!0),c(()=>r.break()),s;function c(o){let c=r.const(`len`,(0,t._)`${i}.length`);r.forRange(`i`,0,c,i=>{e.subschema({keyword:a,dataProp:i,dataPropType:n.Type.Num},s),r.if((0,t.not)(s),o)})}}e.validateArray=_;function v(e){let{gen:r,schema:i,keyword:a,it:o}=e;if(!Array.isArray(i))throw Error(`ajv implementation error`);if(i.some(e=>(0,n.alwaysValidSchema)(o,e))&&!o.opts.unevaluated)return;let s=r.let(`valid`,!1),c=r.name(`_valid`);r.block(()=>i.forEach((n,i)=>{let o=e.subschema({keyword:a,schemaProp:i,compositeRule:!0},c);r.assign(s,(0,t._)`${s} || ${c}`),e.mergeValidEvaluated(o,c)||r.if((0,t.not)(s))})),e.result(s,()=>e.reset(),()=>e.error(!0))}e.validateUnion=v})),Wh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateKeywordUsage=e.validSchemaType=e.funcKeywordCode=e.macroKeywordCode=void 0;let t=W(),n=Ih(),r=Uh(),i=Lh();function a(e,n){let{gen:r,keyword:i,schema:a,parentSchema:o,it:s}=e,c=n.macro.call(s.self,a,o,s),l=u(r,i,c);s.opts.validateSchema!==!1&&s.self.validateSchema(c,!0);let d=r.name(`valid`);e.subschema({schema:c,schemaPath:t.nil,errSchemaPath:`${s.errSchemaPath}/${i}`,topSchemaRef:l,compositeRule:!0},d),e.pass(d,()=>e.error(!0))}e.macroKeywordCode=a;function o(e,i){let{gen:a,keyword:o,schema:d,parentSchema:f,$data:p,it:m}=e;l(m,i);let h=u(a,o,!p&&i.compile?i.compile.call(m.self,d,f,m):i.validate),g=a.let(`valid`);e.block$data(g,_),e.ok(i.valid??g);function _(){if(i.errors===!1)b(),i.modifying&&s(e),x(()=>e.error());else{let t=i.async?v():y();i.modifying&&s(e),x(()=>c(e,t))}}function v(){let e=a.let(`ruleErrs`,null);return a.try(()=>b((0,t._)`await `),n=>a.assign(g,!1).if((0,t._)`${n} instanceof ${m.ValidationError}`,()=>a.assign(e,(0,t._)`${n}.errors`),()=>a.throw(n))),e}function y(){let e=(0,t._)`${h}.errors`;return a.assign(e,null),b(t.nil),e}function b(o=i.async?(0,t._)`await `:t.nil){let s=m.opts.passContext?n.default.this:n.default.self,c=!(`compile`in i&&!p||i.schema===!1);a.assign(g,(0,t._)`${o}${(0,r.callValidateCode)(e,h,s,c)}`,i.modifying)}function x(e){a.if((0,t.not)(i.valid??g),e)}}e.funcKeywordCode=o;function s(e){let{gen:n,data:r,it:i}=e;n.if(i.parentData,()=>n.assign(r,(0,t._)`${i.parentData}[${i.parentDataProperty}]`))}function c(e,r){let{gen:a}=e;a.if((0,t._)`Array.isArray(${r})`,()=>{a.assign(n.default.vErrors,(0,t._)`${n.default.vErrors} === null ? ${r} : ${n.default.vErrors}.concat(${r})`).assign(n.default.errors,(0,t._)`${n.default.vErrors}.length`),(0,i.extendErrors)(e)},()=>e.error())}function l({schemaEnv:e},t){if(t.async&&!e.$async)throw Error(`async keyword in sync schema`)}function u(e,n,r){if(r===void 0)throw Error(`keyword "${n}" failed to compile`);return e.scopeValue(`keyword`,typeof r==`function`?{ref:r}:{ref:r,code:(0,t.stringify)(r)})}function d(e,t,n=!1){return!t.length||t.some(t=>t===`array`?Array.isArray(e):t===`object`?e&&typeof e==`object`&&!Array.isArray(e):typeof e==t||n&&e===void 0)}e.validSchemaType=d;function f({schema:e,opts:t,self:n,errSchemaPath:r},i,a){if(Array.isArray(i.keyword)?!i.keyword.includes(a):i.keyword!==a)throw Error(`ajv implementation error`);let o=i.dependencies;if(o?.some(t=>!Object.prototype.hasOwnProperty.call(e,t)))throw Error(`parent schema must have dependencies of ${a}: ${o.join(`,`)}`);if(i.validateSchema&&!i.validateSchema(e[a])){let e=`keyword "${a}" value is invalid at path "${r}": `+n.errorsText(i.validateSchema.errors);if(t.validateSchema===`log`)n.logger.error(e);else throw Error(e)}}e.validateKeywordUsage=f})),Gh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.extendSubschemaMode=e.extendSubschemaData=e.getSubschema=void 0;let t=W(),n=G();function r(e,{keyword:r,schemaProp:i,schema:a,schemaPath:o,errSchemaPath:s,topSchemaRef:c}){if(r!==void 0&&a!==void 0)throw Error(`both "keyword" and "schema" passed, only one allowed`);if(r!==void 0){let a=e.schema[r];return i===void 0?{schema:a,schemaPath:(0,t._)`${e.schemaPath}${(0,t.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${r}`}:{schema:a[i],schemaPath:(0,t._)`${e.schemaPath}${(0,t.getProperty)(r)}${(0,t.getProperty)(i)}`,errSchemaPath:`${e.errSchemaPath}/${r}/${(0,n.escapeFragment)(i)}`}}if(a!==void 0){if(o===void 0||s===void 0||c===void 0)throw Error(`"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"`);return{schema:a,schemaPath:o,topSchemaRef:c,errSchemaPath:s}}throw Error(`either "keyword" or "schema" must be passed`)}e.getSubschema=r;function i(e,r,{dataProp:i,dataPropType:a,data:o,dataTypes:s,propertyName:c}){if(o!==void 0&&i!==void 0)throw Error(`both "data" and "dataProp" passed, only one allowed`);let{gen:l}=r;if(i!==void 0){let{errorPath:o,dataPathArr:s,opts:c}=r;u(l.let(`data`,(0,t._)`${r.data}${(0,t.getProperty)(i)}`,!0)),e.errorPath=(0,t.str)`${o}${(0,n.getErrorPath)(i,a,c.jsPropertySyntax)}`,e.parentDataProperty=(0,t._)`${i}`,e.dataPathArr=[...s,e.parentDataProperty]}o!==void 0&&(u(o instanceof t.Name?o:l.let(`data`,o,!0)),c!==void 0&&(e.propertyName=c)),s&&(e.dataTypes=s);function u(t){e.data=t,e.dataLevel=r.dataLevel+1,e.dataTypes=[],r.definedProperties=new Set,e.parentData=r.data,e.dataNames=[...r.dataNames,t]}}e.extendSubschemaData=i;function a(e,{jtdDiscriminator:t,jtdMetadata:n,compositeRule:r,createErrors:i,allErrors:a}){r!==void 0&&(e.compositeRule=r),i!==void 0&&(e.createErrors=i),a!==void 0&&(e.allErrors=a),e.jtdDiscriminator=t,e.jtdMetadata=n}e.extendSubschemaMode=a})),Kh=z(((e,t)=>{t.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 r,i,a;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))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(a=Object.keys(t),r=a.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[i]))return!1;for(i=r;i--!==0;){var o=a[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n}})),qh=z(((e,t)=>{var n=t.exports=function(e,t,n){typeof t==`function`&&(n=t,t={}),n=t.cb||n;var i=typeof n==`function`?n:n.pre||function(){},a=n.post||function(){};r(t,i,a,e,``,e)};n.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0},n.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},n.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},n.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 r(e,t,a,o,s,c,l,u,d,f){if(o&&typeof o==`object`&&!Array.isArray(o)){for(var p in t(o,s,c,l,u,d,f),o){var m=o[p];if(Array.isArray(m)){if(p in n.arrayKeywords)for(var h=0;h<m.length;h++)r(e,t,a,m[h],s+`/`+p+`/`+h,c,s,p,o,h)}else if(p in n.propsKeywords){if(m&&typeof m==`object`)for(var g in m)r(e,t,a,m[g],s+`/`+p+`/`+i(g),c,s,p,o,g)}else(p in n.keywords||e.allKeys&&!(p in n.skipKeywords))&&r(e,t,a,m,s+`/`+p,c,s,p,o)}a(o,s,c,l,u,d,f)}}function i(e){return e.replace(/~/g,`~0`).replace(/\//g,`~1`)}})),Jh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getSchemaRefs=e.resolveUrl=e.normalizeId=e._getFullPath=e.getFullPath=e.inlineRef=void 0;let t=G(),n=Kh(),r=qh(),i=new Set([`type`,`format`,`pattern`,`maxLength`,`minLength`,`maxProperties`,`minProperties`,`maxItems`,`minItems`,`maximum`,`minimum`,`uniqueItems`,`multipleOf`,`required`,`enum`,`const`]);function a(e,t=!0){return typeof e==`boolean`?!0:t===!0?!s(e):t?c(e)<=t:!1}e.inlineRef=a;let o=new Set([`$ref`,`$recursiveRef`,`$recursiveAnchor`,`$dynamicRef`,`$dynamicAnchor`]);function s(e){for(let t in e){if(o.has(t))return!0;let n=e[t];if(Array.isArray(n)&&n.some(s)||typeof n==`object`&&s(n))return!0}return!1}function c(e){let n=0;for(let r in e)if(r===`$ref`||(n++,!i.has(r)&&(typeof e[r]==`object`&&(0,t.eachItem)(e[r],e=>n+=c(e)),n===1/0)))return 1/0;return n}function l(e,t=``,n){return n!==!1&&(t=f(t)),u(e,e.parse(t))}e.getFullPath=l;function u(e,t){return e.serialize(t).split(`#`)[0]+`#`}e._getFullPath=u;let d=/#\/?$/;function f(e){return e?e.replace(d,``):``}e.normalizeId=f;function p(e,t,n){return n=f(n),e.resolve(t,n)}e.resolveUrl=p;let m=/^[a-z_][-a-z0-9._]*$/i;function h(e,t){if(typeof e==`boolean`)return{};let{schemaId:i,uriResolver:a}=this.opts,o=f(e[i]||t),s={"":o},c=l(a,o,!1),u={},d=new Set;return r(e,{allKeys:!0},(e,t,n,r)=>{if(r===void 0)return;let a=c+t,o=s[r];typeof e[i]==`string`&&(o=l.call(this,e[i])),g.call(this,e.$anchor),g.call(this,e.$dynamicAnchor),s[t]=o;function l(t){let n=this.opts.uriResolver.resolve;if(t=f(o?n(o,t):t),d.has(t))throw h(t);d.add(t);let r=this.refs[t];return typeof r==`string`&&(r=this.refs[r]),typeof r==`object`?p(e,r.schema,t):t!==f(a)&&(t[0]===`#`?(p(e,u[t],t),u[t]=e):this.refs[t]=a),t}function g(e){if(typeof e==`string`){if(!m.test(e))throw Error(`invalid anchor "${e}"`);l.call(this,`#${e}`)}}}),u;function p(e,t,r){if(t!==void 0&&!n(e,t))throw h(r)}function h(e){return Error(`reference "${e}" resolves to more than one schema`)}}e.getSchemaRefs=h})),Yh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getData=e.KeywordCxt=e.validateFunctionCode=void 0;let t=Rh(),n=Vh(),r=Bh(),i=Vh(),a=Hh(),o=Wh(),s=Gh(),c=W(),l=Ih(),u=Jh(),d=G(),f=Lh();function p(e){if(S(e)&&(w(e),x(e))){_(e);return}m(e,()=>(0,t.topBoolOrEmptySchema)(e))}e.validateFunctionCode=p;function m({gen:e,validateName:t,schema:n,schemaEnv:r,opts:i},a){i.code.es5?e.func(t,(0,c._)`${l.default.data}, ${l.default.valCxt}`,r.$async,()=>{e.code((0,c._)`"use strict"; ${y(n,i)}`),g(e,i),e.code(a)}):e.func(t,(0,c._)`${l.default.data}, ${h(i)}`,r.$async,()=>e.code(y(n,i)).code(a))}function h(e){return(0,c._)`{${l.default.instancePath}="", ${l.default.parentData}, ${l.default.parentDataProperty}, ${l.default.rootData}=${l.default.data}${e.dynamicRef?(0,c._)`, ${l.default.dynamicAnchors}={}`:c.nil}}={}`}function g(e,t){e.if(l.default.valCxt,()=>{e.var(l.default.instancePath,(0,c._)`${l.default.valCxt}.${l.default.instancePath}`),e.var(l.default.parentData,(0,c._)`${l.default.valCxt}.${l.default.parentData}`),e.var(l.default.parentDataProperty,(0,c._)`${l.default.valCxt}.${l.default.parentDataProperty}`),e.var(l.default.rootData,(0,c._)`${l.default.valCxt}.${l.default.rootData}`),t.dynamicRef&&e.var(l.default.dynamicAnchors,(0,c._)`${l.default.valCxt}.${l.default.dynamicAnchors}`)},()=>{e.var(l.default.instancePath,(0,c._)`""`),e.var(l.default.parentData,(0,c._)`undefined`),e.var(l.default.parentDataProperty,(0,c._)`undefined`),e.var(l.default.rootData,l.default.data),t.dynamicRef&&e.var(l.default.dynamicAnchors,(0,c._)`{}`)})}function _(e){let{schema:t,opts:n,gen:r}=e;m(e,()=>{n.$comment&&t.$comment&&O(e),E(e),r.let(l.default.vErrors,null),r.let(l.default.errors,0),n.unevaluated&&v(e),T(e),ne(e)})}function v(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 y(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 b(e,n){if(S(e)&&(w(e),x(e))){C(e,n);return}(0,t.boolOrEmptySchema)(e,n)}function x({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 S(e){return typeof e.schema!=`boolean`}function C(e,t){let{schema:n,gen:r,opts:i}=e;i.$comment&&n.$comment&&O(e),D(e),te(e);let a=r.const(`_errs`,l.default.errors);T(e,a),r.var(t,(0,c._)`${a} === ${l.default.errors}`)}function w(e){(0,d.checkUnknownRules)(e),ee(e)}function T(e,t){if(e.opts.jtd)return A(e,[],!1,t);let r=(0,n.getSchemaTypes)(e.schema);A(e,r,!(0,n.coerceAndCheckDataType)(e,r),t)}function ee(e){let{schema:t,errSchemaPath:n,opts:r,self:i}=e;t.$ref&&r.ignoreKeywordsWithRef&&(0,d.schemaHasRulesButRef)(t,i.RULES)&&i.logger.warn(`$ref: keywords ignored in schema at path "${n}"`)}function E(e){let{schema:t,opts:n}=e;t.default!==void 0&&n.useDefaults&&n.strictSchema&&(0,d.checkStrictMode)(e,`default is ignored in the schema root`)}function D(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,u.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function te(e){if(e.schema.$async&&!e.schemaEnv.$async)throw Error(`async schema in sync schema`)}function O({gen:e,schemaEnv:t,schema:n,errSchemaPath:r,opts:i}){let a=n.$comment;if(i.$comment===!0)e.code((0,c._)`${l.default.self}.logger.log(${a})`);else if(typeof i.$comment==`function`){let n=(0,c.str)`${r}/$comment`,i=e.scopeValue(`root`,{ref:t.root});e.code((0,c._)`${l.default.self}.opts.$comment(${a}, ${n}, ${i}.schema)`)}}function ne(e){let{gen:t,schemaEnv:n,validateName:r,ValidationError:i,opts:a}=e;n.$async?t.if((0,c._)`${l.default.errors} === 0`,()=>t.return(l.default.data),()=>t.throw((0,c._)`new ${i}(${l.default.vErrors})`)):(t.assign((0,c._)`${r}.errors`,l.default.vErrors),a.unevaluated&&k(e),t.return((0,c._)`${l.default.errors} === 0`))}function k({gen:e,evaluated:t,props:n,items:r}){n instanceof c.Name&&e.assign((0,c._)`${t}.props`,n),r instanceof c.Name&&e.assign((0,c._)`${t}.items`,r)}function A(e,t,n,a){let{gen:o,schema:s,data:u,allErrors:f,opts:p,self:m}=e,{RULES:h}=m;if(s.$ref&&(p.ignoreKeywordsWithRef||!(0,d.schemaHasRulesButRef)(s,h))){o.block(()=>de(e,`$ref`,h.all.$ref.definition));return}p.jtd||re(e,t),o.block(()=>{for(let e of h.rules)g(e);g(h.post)});function g(d){(0,r.shouldUseGroup)(s,d)&&(d.type?(o.if((0,i.checkDataType)(d.type,u,p.strictNumbers)),j(e,d),t.length===1&&t[0]===d.type&&n&&(o.else(),(0,i.reportTypeError)(e)),o.endIf()):j(e,d),f||o.if((0,c._)`${l.default.errors} === ${a||0}`))}}function j(e,t){let{gen:n,schema:i,opts:{useDefaults:o}}=e;o&&(0,a.assignDefaults)(e,t.type),n.block(()=>{for(let n of t.rules)(0,r.shouldUseRule)(i,n)&&de(e,n.keyword,n.definition,t.type)})}function re(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(ie(e,t),e.opts.allowUnionTypes||ae(e,t),oe(e,e.dataTypes))}function ie(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(t=>{ce(e.dataTypes,t)||le(e,`type "${t}" not allowed by context "${e.dataTypes.join(`,`)}"`)}),M(e,t)}}function ae(e,t){t.length>1&&!(t.length===2&&t.includes(`null`))&&le(e,`use allowUnionTypes to allow union type keyword`)}function oe(e,t){let n=e.self.RULES.all;for(let i in n){let a=n[i];if(typeof a==`object`&&(0,r.shouldUseRule)(e.schema,a)){let{type:n}=a.definition;n.length&&!n.some(e=>se(t,e))&&le(e,`missing type "${n.join(`,`)}" for keyword "${i}"`)}}}function se(e,t){return e.includes(t)||t===`number`&&e.includes(`integer`)}function ce(e,t){return e.includes(t)||t===`integer`&&e.includes(`number`)}function M(e,t){let n=[];for(let r of e.dataTypes)ce(t,r)?n.push(r):t.includes(`integer`)&&r===`number`&&n.push(`integer`);e.dataTypes=n}function le(e,t){let n=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${n}" (strictTypes)`,(0,d.checkStrictMode)(e,t,e.opts.strictTypes)}var ue=class{constructor(e,t,n){if((0,o.validateKeywordUsage)(e,t,n),this.gen=e.gen,this.allErrors=e.allErrors,this.keyword=n,this.data=e.data,this.schema=e.schema[n],this.$data=t.$data&&e.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,d.schemaRefOrVal)(e,this.schema,n,this.$data),this.schemaType=t.schemaType,this.parentSchema=e.schema,this.params={},this.it=e,this.def=t,this.$data)this.schemaCode=e.gen.const(`vSchema`,me(this.$data,e));else if(this.schemaCode=this.schemaValue,!(0,o.validSchemaType)(this.schema,t.schemaType,t.allowUndefined))throw Error(`${n} value must be ${JSON.stringify(t.schemaType)}`);(`code`in t?t.trackErrors:t.errors!==!1)&&(this.errsCount=e.gen.const(`_errs`,l.default.errors))}result(e,t,n){this.failResult((0,c.not)(e),t,n)}failResult(e,t,n){this.gen.if(e),n?n():this.error(),t?(this.gen.else(),t(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(e,t){this.failResult((0,c.not)(e),void 0,t)}fail(e){if(e===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(e),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(e){if(!this.$data)return this.fail(e);let{schemaCode:t}=this;this.fail((0,c._)`${t} !== undefined && (${(0,c.or)(this.invalid$data(),e)})`)}error(e,t,n){if(t){this.setParams(t),this._error(e,n),this.setParams({});return}this._error(e,n)}_error(e,t){(e?f.reportExtraError:f.reportError)(this,this.def.error,t)}$dataError(){(0,f.reportError)(this,this.def.$dataError||f.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error(`add "trackErrors" to keyword definition`);(0,f.resetErrorsCount)(this.gen,this.errsCount)}ok(e){this.allErrors||this.gen.if(e)}setParams(e,t){t?Object.assign(this.params,e):this.params=e}block$data(e,t,n=c.nil){this.gen.block(()=>{this.check$data(e,n),t()})}check$data(e=c.nil,t=c.nil){if(!this.$data)return;let{gen:n,schemaCode:r,schemaType:i,def:a}=this;n.if((0,c.or)((0,c._)`${r} === undefined`,t)),e!==c.nil&&n.assign(e,!0),(i.length||a.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),e!==c.nil&&n.assign(e,!1)),n.else()}invalid$data(){let{gen:e,schemaCode:t,schemaType:n,def:r,it:a}=this;return(0,c.or)(o(),s());function o(){if(n.length){if(!(t instanceof c.Name))throw Error(`ajv implementation error`);let e=Array.isArray(n)?n:[n];return(0,c._)`${(0,i.checkDataTypes)(e,t,a.opts.strictNumbers,i.DataType.Wrong)}`}return c.nil}function s(){if(r.validateSchema){let n=e.scopeValue(`validate$data`,{ref:r.validateSchema});return(0,c._)`!${n}(${t})`}return c.nil}}subschema(e,t){let n=(0,s.getSubschema)(this.it,e);(0,s.extendSubschemaData)(n,this.it,e),(0,s.extendSubschemaMode)(n,e);let r={...this.it,...n,items:void 0,props:void 0};return b(r,t),r}mergeEvaluated(e,t){let{it:n,gen:r}=this;n.opts.unevaluated&&(n.props!==!0&&e.props!==void 0&&(n.props=d.mergeEvaluated.props(r,e.props,n.props,t)),n.items!==!0&&e.items!==void 0&&(n.items=d.mergeEvaluated.items(r,e.items,n.items,t)))}mergeValidEvaluated(e,t){let{it:n,gen:r}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return r.if(t,()=>this.mergeEvaluated(e,c.Name)),!0}};e.KeywordCxt=ue;function de(e,t,n,r){let i=new ue(e,n,t);`code`in n?n.code(i,r):i.$data&&n.validate?(0,o.funcKeywordCode)(i,n):`macro`in n?(0,o.macroKeywordCode)(i,n):(n.compile||n.validate)&&(0,o.funcKeywordCode)(i,n)}let fe=/^\/(?:[^~]|~0|~1)*$/,pe=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function me(e,{dataLevel:t,dataNames:n,dataPathArr:r}){let i,a;if(e===``)return l.default.rootData;if(e[0]===`/`){if(!fe.test(e))throw Error(`Invalid JSON-pointer: ${e}`);i=e,a=l.default.rootData}else{let o=pe.exec(e);if(!o)throw Error(`Invalid JSON-pointer: ${e}`);let s=+o[1];if(i=o[2],i===`#`){if(s>=t)throw Error(u(`property/index`,s));return r[t-s]}if(s>t)throw Error(u(`data`,s));if(a=n[t-s],!i)return a}let o=a,s=i.split(`/`);for(let e of s)e&&(a=(0,c._)`${a}${(0,c.getProperty)((0,d.unescapeJsonPointer)(e))}`,o=(0,c._)`${o} && ${a}`);return o;function u(e,n){return`Cannot access ${e} ${n} levels up, current level is ${t}`}}e.getData=me})),Xh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=class extends Error{constructor(e){super(`validation failed`),this.errors=e,this.ajv=this.validation=!0}}})),Zh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Jh();e.default=class extends Error{constructor(e,n,r,i){super(i||`can't resolve reference ${r} from id ${n}`),this.missingRef=(0,t.resolveUrl)(e,n,r),this.missingSchema=(0,t.normalizeId)((0,t.getFullPath)(e,this.missingRef))}}})),Qh=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.resolveSchema=e.getCompilingSchema=e.resolveRef=e.compileSchema=e.SchemaEnv=void 0;let t=W(),n=Xh(),r=Ih(),i=Jh(),a=G(),o=Yh();var s=class{constructor(e){this.refs={},this.dynamicAnchors={};let t;typeof e.schema==`object`&&(t=e.schema),this.schema=e.schema,this.schemaId=e.schemaId,this.root=e.root||this,this.baseId=e.baseId??(0,i.normalizeId)(t?.[e.schemaId||`$id`]),this.schemaPath=e.schemaPath,this.localRefs=e.localRefs,this.meta=e.meta,this.$async=t?.$async,this.refs={}}};e.SchemaEnv=s;function c(e){let a=d.call(this,e);if(a)return a;let s=(0,i.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:c,lines:l}=this.opts.code,{ownProperties:u}=this.opts,f=new t.CodeGen(this.scope,{es5:c,lines:l,ownProperties:u}),p;e.$async&&(p=f.scopeValue(`Error`,{ref:n.default,code:(0,t._)`require("ajv/dist/runtime/validation_error").default`}));let m=f.scopeName(`validate`);e.validateName=m;let h={gen:f,allErrors:this.opts.allErrors,data:r.default.data,parentData:r.default.parentData,parentDataProperty:r.default.parentDataProperty,dataNames:[r.default.data],dataPathArr:[t.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:f.scopeValue(`schema`,this.opts.code.source===!0?{ref:e.schema,code:(0,t.stringify)(e.schema)}:{ref:e.schema}),validateName:m,ValidationError:p,schema:e.schema,schemaEnv:e,rootId:s,baseId:e.baseId||s,schemaPath:t.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?``:`#`),errorPath:(0,t._)`""`,opts:this.opts,self:this},g;try{this._compilations.add(e),(0,o.validateFunctionCode)(h),f.optimize(this.opts.code.optimize);let n=f.toString();g=`${f.scopeRefs(r.default.scope)}return ${n}`,this.opts.code.process&&(g=this.opts.code.process(g,e));let i=Function(`${r.default.self}`,`${r.default.scope}`,g)(this,this.scope.get());if(this.scope.value(m,{ref:i}),i.errors=null,i.schema=e.schema,i.schemaEnv=e,e.$async&&(i.$async=!0),this.opts.code.source===!0&&(i.source={validateName:m,validateCode:n,scopeValues:f._values}),this.opts.unevaluated){let{props:e,items:n}=h;i.evaluated={props:e instanceof t.Name?void 0:e,items:n instanceof t.Name?void 0:n,dynamicProps:e instanceof t.Name,dynamicItems:n instanceof t.Name},i.source&&(i.source.evaluated=(0,t.stringify)(i.evaluated))}return e.validate=i,e}catch(t){throw delete e.validate,delete e.validateName,g&&this.logger.error(`Error compiling schema, function code:`,g),t}finally{this._compilations.delete(e)}}e.compileSchema=c;function l(e,t,n){n=(0,i.resolveUrl)(this.opts.uriResolver,t,n);let r=e.refs[n];if(r)return r;let a=p.call(this,e,n);if(a===void 0){let r=e.localRefs?.[n],{schemaId:i}=this.opts;r&&(a=new s({schema:r,schemaId:i,root:e,baseId:t}))}if(a!==void 0)return e.refs[n]=u.call(this,a)}e.resolveRef=l;function u(e){return(0,i.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:c.call(this,e)}function d(e){for(let t of this._compilations)if(f(t,e))return t}e.getCompilingSchema=d;function f(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function p(e,t){let n;for(;typeof(n=this.refs[t])==`string`;)t=n;return n||this.schemas[t]||m.call(this,e,t)}function m(e,t){let n=this.opts.uriResolver.parse(t),r=(0,i._getFullPath)(this.opts.uriResolver,n),a=(0,i.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&r===a)return g.call(this,n,e);let o=(0,i.normalizeId)(r),l=this.refs[o]||this.schemas[o];if(typeof l==`string`){let t=m.call(this,e,l);return typeof t?.schema==`object`?g.call(this,n,t):void 0}if(typeof l?.schema==`object`){if(l.validate||c.call(this,l),o===(0,i.normalizeId)(t)){let{schema:t}=l,{schemaId:n}=this.opts,r=t[n];return r&&(a=(0,i.resolveUrl)(this.opts.uriResolver,a,r)),new s({schema:t,schemaId:n,root:e,baseId:a})}return g.call(this,n,l)}}e.resolveSchema=m;let h=new Set([`properties`,`patternProperties`,`enum`,`dependencies`,`definitions`]);function g(e,{baseId:t,schema:n,root:r}){if(e.fragment?.[0]!==`/`)return;for(let r of e.fragment.slice(1).split(`/`)){if(typeof n==`boolean`)return;let e=n[(0,a.unescapeFragment)(r)];if(e===void 0)return;n=e;let o=typeof n==`object`&&n[this.opts.schemaId];!h.has(r)&&o&&(t=(0,i.resolveUrl)(this.opts.uriResolver,t,o))}let o;if(typeof n!=`boolean`&&n.$ref&&!(0,a.schemaHasRulesButRef)(n,this.RULES)){let e=(0,i.resolveUrl)(this.opts.uriResolver,t,n.$ref);o=m.call(this,r,e)}let{schemaId:c}=this.opts;if(o||=new s({schema:n,schemaId:c,root:r,baseId:t}),o.schema!==o.root.schema)return o}})),$h=z(((e,t)=>{t.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}})),eg=z(((e,t)=>{let n=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),r=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);function i(e){let t=``,n=0,r=0;for(r=0;r<e.length;r++)if(n=e[r].charCodeAt(0),n!==48){if(!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return``;t+=e[r];break}for(r+=1;r<e.length;r++){if(n=e[r].charCodeAt(0),!(n>=48&&n<=57||n>=65&&n<=70||n>=97&&n<=102))return``;t+=e[r]}return t}let a=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function o(e){return e.length=0,!0}function s(e,t,n){if(e.length){let r=i(e);if(r!==``)t.push(r);else return n.error=!0,!1;e.length=0}return!0}function c(e){let t=0,n={error:!1,address:``,zone:``},r=[],a=[],c=!1,l=!1,u=s;for(let i=0;i<e.length;i++){let s=e[i];if(s!==`[`&&s!==`]`){if(s===`:`){if(c===!0&&(l=!0),!u(a,r,n))break;if(++t>7){n.error=!0;break}i>0&&e[i-1]===`:`&&(c=!0),r.push(`:`);continue}if(s===`%`){if(!u(a,r,n))break;u=o}else{a.push(s);continue}}}return a.length&&(u===o?n.zone=a.join(``):l?r.push(a.join(``)):r.push(i(a))),n.address=r.join(``),n}function l(e){if(u(e,`:`)<2)return{host:e,isIPV6:!1};let t=c(e);if(t.error)return{host:e,isIPV6:!1};{let e=t.address,n=t.address;return t.zone&&(e+=`%`+t.zone,n+=`%25`+t.zone),{host:e,isIPV6:!0,escapedHost:n}}}function u(e,t){let n=0;for(let r=0;r<e.length;r++)e[r]===t&&n++;return n}function d(e){let t=e,n=[],r=-1,i=0;for(;i=t.length;){if(i===1){if(t===`.`)break;if(t===`/`){n.push(`/`);break}n.push(t);break}if(i===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(i===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}if(t[2]===`.`&&t[3]===`/`){t=t.slice(3),n.length!==0&&n.pop();continue}}if((r=t.indexOf(`/`,1))===-1){n.push(t);break}n.push(t.slice(0,r)),t=t.slice(r)}return n.join(``)}function f(e,t){let n=t===!0?unescape:escape;return e.scheme!==void 0&&(e.scheme=n(e.scheme)),e.userinfo!==void 0&&(e.userinfo=n(e.userinfo)),e.host!==void 0&&(e.host=n(e.host)),e.path!==void 0&&(e.path=n(e.path)),e.query!==void 0&&(e.query=n(e.query)),e.fragment!==void 0&&(e.fragment=n(e.fragment)),e}function p(e){let t=[];if(e.userinfo!==void 0&&(t.push(e.userinfo),t.push(`@`)),e.host!==void 0){let n=unescape(e.host);if(!r(n)){let t=l(n);n=t.isIPV6===!0?`[${t.escapedHost}]`:e.host}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}t.exports={nonSimpleDomain:a,recomposeAuthority:p,normalizeComponentEncoding:f,removeDotSegments:d,isIPv4:r,isUUID:n,normalizeIPv6:l,stringArrayToHexStripped:i}})),tg=z(((e,t)=>{let{isUUID:n}=eg(),r=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,i=[`http`,`https`,`ws`,`wss`,`urn`,`urn:uuid`];function a(e){return i.indexOf(e)!==-1}function o(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 s(e){return e.host||(e.error=e.error||`HTTP URIs must have a host.`),e}function c(e){let t=String(e.scheme).toLowerCase()===`https`;return(e.port===(t?443:80)||e.port===``)&&(e.port=void 0),e.path||=`/`,e}function l(e){return e.secure=o(e),e.resourceName=(e.path||`/`)+(e.query?`?`+e.query:``),e.path=void 0,e.query=void 0,e}function u(e){if((e.port===(o(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 d(e,t){if(!e.path)return e.error=`URN can not be parsed`,e;let n=e.path.match(r);if(n){let r=t.scheme||e.scheme||`urn`;e.nid=n[1].toLowerCase(),e.nss=n[2];let i=y(`${r}:${t.nid||e.nid}`);e.path=void 0,i&&(e=i.parse(e,t))}else e.error=e.error||`URN can not be parsed.`;return e}function f(e,t){if(e.nid===void 0)throw Error(`URN without nid cannot be serialized`);let n=t.scheme||e.scheme||`urn`,r=e.nid.toLowerCase(),i=y(`${n}:${t.nid||r}`);i&&(e=i.serialize(e,t));let a=e,o=e.nss;return a.path=`${r||t.nid}:${o}`,t.skipEscape=!0,a}function p(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!n(r.uuid))&&(r.error=r.error||`UUID is not valid.`),r}function m(e){let t=e;return t.nss=(e.uuid||``).toLowerCase(),t}let h={scheme:`http`,domainHost:!0,parse:s,serialize:c},g={scheme:`https`,domainHost:h.domainHost,parse:s,serialize:c},_={scheme:`ws`,domainHost:!0,parse:l,serialize:u},v={http:h,https:g,ws:_,wss:{scheme:`wss`,domainHost:_.domainHost,parse:_.parse,serialize:_.serialize},urn:{scheme:`urn`,parse:d,serialize:f,skipNormalize:!0},"urn:uuid":{scheme:`urn:uuid`,parse:p,serialize:m,skipNormalize:!0}};Object.setPrototypeOf(v,null);function y(e){return e&&(v[e]||v[e.toLowerCase()])||void 0}t.exports={wsIsSecure:o,SCHEMES:v,isValidSchemeName:a,getSchemeHandler:y}})),ng=z(((e,t)=>{let{normalizeIPv6:n,removeDotSegments:r,recomposeAuthority:i,normalizeComponentEncoding:a,isIPv4:o,nonSimpleDomain:s}=eg(),{SCHEMES:c,getSchemeHandler:l}=tg();function u(e,t){return typeof e==`string`?e=m(g(e,t),t):typeof e==`object`&&(e=g(m(e,t),t)),e}function d(e,t,n){let r=n?Object.assign({scheme:`null`},n):{scheme:`null`},i=f(g(e,r),g(t,r),r,!0);return r.skipEscape=!0,m(i,r)}function f(e,t,n,i){let a={};return i||(e=g(m(e,n),n),t=g(m(t,n),n)),n||={},!n.tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=r(t.path||``),a.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=r(t.path||``),a.query=t.query):(t.path?(t.path[0]===`/`?a.path=r(t.path):(a.path=(e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?`/`+t.path:e.path?e.path.slice(0,e.path.lastIndexOf(`/`)+1)+t.path:t.path,a.path=r(a.path)),a.query=t.query):(a.path=e.path,a.query=t.query===void 0?e.query:t.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function p(e,t,n){return typeof e==`string`?(e=unescape(e),e=m(a(g(e,n),!0),{...n,skipEscape:!0})):typeof e==`object`&&(e=m(a(e,!0),{...n,skipEscape:!0})),typeof t==`string`?(t=unescape(t),t=m(a(g(t,n),!0),{...n,skipEscape:!0})):typeof t==`object`&&(t=m(a(t,!0),{...n,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function m(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:``},a=Object.assign({},t),o=[],s=l(a.scheme||n.scheme);s&&s.serialize&&s.serialize(n,a),n.path!==void 0&&(a.skipEscape?n.path=unescape(n.path):(n.path=escape(n.path),n.scheme!==void 0&&(n.path=n.path.split(`%3A`).join(`:`)))),a.reference!==`suffix`&&n.scheme&&o.push(n.scheme,`:`);let c=i(n);if(c!==void 0&&(a.reference!==`suffix`&&o.push(`//`),o.push(c),n.path&&n.path[0]!==`/`&&o.push(`/`)),n.path!==void 0){let e=n.path;!a.absolutePath&&(!s||!s.absolutePath)&&(e=r(e)),c===void 0&&e[0]===`/`&&e[1]===`/`&&(e=`/%2F`+e.slice(2)),o.push(e)}return n.query!==void 0&&o.push(`?`,n.query),n.fragment!==void 0&&o.push(`#`,n.fragment),o.join(``)}let h=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function g(e,t){let r=Object.assign({},t),i={scheme:void 0,userinfo:void 0,host:``,port:void 0,path:``,query:void 0,fragment:void 0},a=!1;r.reference===`suffix`&&(e=r.scheme?r.scheme+`:`+e:`//`+e);let c=e.match(h);if(c){if(i.scheme=c[1],i.userinfo=c[3],i.host=c[4],i.port=parseInt(c[5],10),i.path=c[6]||``,i.query=c[7],i.fragment=c[8],isNaN(i.port)&&(i.port=c[5]),i.host){if(o(i.host)===!1){let e=n(i.host);i.host=e.host.toLowerCase(),a=e.isIPV6}else a=!0}i.reference=i.scheme===void 0&&i.userinfo===void 0&&i.host===void 0&&i.port===void 0&&i.query===void 0&&!i.path?`same-document`:i.scheme===void 0?`relative`:i.fragment===void 0?`absolute`:`uri`,r.reference&&r.reference!==`suffix`&&r.reference!==i.reference&&(i.error=i.error||`URI is not a `+r.reference+` reference.`);let t=l(r.scheme||i.scheme);if(!r.unicodeSupport&&(!t||!t.unicodeSupport)&&i.host&&(r.domainHost||t&&t.domainHost)&&a===!1&&s(i.host))try{i.host=URL.domainToASCII(i.host.toLowerCase())}catch(e){i.error=i.error||`Host's domain name can not be converted to ASCII: `+e}(!t||t&&!t.skipNormalize)&&(e.indexOf(`%`)!==-1&&(i.scheme!==void 0&&(i.scheme=unescape(i.scheme)),i.host!==void 0&&(i.host=unescape(i.host))),i.path&&=escape(unescape(i.path)),i.fragment&&=encodeURI(decodeURIComponent(i.fragment))),t&&t.parse&&t.parse(i,r)}else i.error=i.error||`URI can not be parsed.`;return i}let _={SCHEMES:c,normalize:u,resolve:d,resolveComponent:f,equal:p,serialize:m,parse:g};t.exports=_,t.exports.default=_,t.exports.fastUri=_})),rg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=ng();t.code=`require("ajv/dist/runtime/uri").default`,e.default=t})),ig=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=void 0;var t=Yh();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return t.KeywordCxt}});var n=W();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return n._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return n.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return n.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return n.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return n.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return n.CodeGen}});let r=Xh(),i=Zh(),a=zh(),o=Qh(),s=W(),c=Jh(),l=Vh(),u=G(),d=$h(),f=rg(),p=(e,t)=>new RegExp(e,t);p.code=`new RegExp`;let m=[`removeAdditional`,`useDefaults`,`coerceTypes`],h=new Set([`validate`,`serialize`,`parse`,`wrapper`,`root`,`schema`,`keyword`,`pattern`,`formats`,`validate$data`,`func`,`obj`,`Error`]),g={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.`},_={ignoreKeywordsWithRef:``,jsPropertySyntax:``,unicode:`"minLength"/"maxLength" account for unicode characters by default.`};function v(e){let t=e.strict,n=e.code?.optimize,r=n===!0||n===void 0?1:n||0,i=e.code?.regExp??p,a=e.uriResolver??f.default;return{strictSchema:e.strictSchema??t??!0,strictNumbers:e.strictNumbers??t??!0,strictTypes:e.strictTypes??t??`log`,strictTuples:e.strictTuples??t??`log`,strictRequired:e.strictRequired??t??!1,code:e.code?{...e.code,optimize:r,regExp:i}:{optimize:r,regExp:i},loopRequired:e.loopRequired??200,loopEnum:e.loopEnum??200,meta:e.meta??!0,messages:e.messages??!0,inlineRefs:e.inlineRefs??!0,schemaId:e.schemaId??`$id`,addUsedSchema:e.addUsedSchema??!0,validateSchema:e.validateSchema??!0,validateFormats:e.validateFormats??!0,unicodeRegExp:e.unicodeRegExp??!0,int32range:e.int32range??!0,uriResolver:a}}var y=class{constructor(e={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,e=this.opts={...e,...v(e)};let{es5:t,lines:n}=this.opts.code;this.scope=new s.ValueScope({scope:{},prefixes:h,es5:t,lines:n}),this.logger=E(e.logger);let r=e.validateFormats;e.validateFormats=!1,this.RULES=(0,a.getRules)(),b.call(this,g,e,`NOT SUPPORTED`),b.call(this,_,e,`DEPRECATED`,`warn`),this._metaOpts=T.call(this),e.formats&&C.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),e.keywords&&w.call(this,e.keywords),typeof e.meta==`object`&&this.addMetaSchema(e.meta),S.call(this),e.validateFormats=r}_addVocabularies(){this.addKeyword(`$async`)}_addDefaultMetaSchema(){let{$data:e,meta:t,schemaId:n}=this.opts,r=d;n===`id`&&(r={...d},r.id=r.$id,delete r.$id),t&&e&&this.addMetaSchema(r,r[n],!1)}defaultMeta(){let{meta:e,schemaId:t}=this.opts;return this.opts.defaultMeta=typeof e==`object`?e[t]||e:void 0}validate(e,t){let n;if(typeof e==`string`){if(n=this.getSchema(e),!n)throw Error(`no schema with key or ref "${e}"`)}else n=this.compile(e);let r=n(t);return`$async`in n||(this.errors=n.errors),r}compile(e,t){let n=this._addSchema(e,t);return n.validate||this._compileSchemaEnv(n)}compileAsync(e,t){if(typeof this.opts.loadSchema!=`function`)throw Error(`options.loadSchema should be a function`);let{loadSchema:n}=this.opts;return r.call(this,e,t);async function r(e,t){await a.call(this,e.$schema);let n=this._addSchema(e,t);return n.validate||o.call(this,n)}async function a(e){e&&!this.getSchema(e)&&await r.call(this,{$ref:e},!0)}async function o(e){try{return this._compileSchemaEnv(e)}catch(t){if(!(t instanceof i.default))throw t;return s.call(this,t),await c.call(this,t.missingSchema),o.call(this,e)}}function s({missingSchema:e,missingRef:t}){if(this.refs[e])throw Error(`AnySchema ${e} is loaded but ${t} cannot be resolved`)}async function c(e){let n=await l.call(this,e);this.refs[e]||await a.call(this,n.$schema),this.refs[e]||this.addSchema(n,e,t)}async function l(e){let t=this._loading[e];if(t)return t;try{return await(this._loading[e]=n(e))}finally{delete this._loading[e]}}}addSchema(e,t,n,r=this.opts.validateSchema){if(Array.isArray(e)){for(let t of e)this.addSchema(t,void 0,n,r);return this}let i;if(typeof e==`object`){let{schemaId:t}=this.opts;if(i=e[t],i!==void 0&&typeof i!=`string`)throw Error(`schema ${t} must be string`)}return t=(0,c.normalizeId)(t||i),this._checkUnique(t),this.schemas[t]=this._addSchema(e,n,t,r,!0),this}addMetaSchema(e,t,n=this.opts.validateSchema){return this.addSchema(e,t,!0,n),this}validateSchema(e,t){if(typeof e==`boolean`)return!0;let n;if(n=e.$schema,n!==void 0&&typeof n!=`string`)throw Error(`$schema must be a string`);if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn(`meta-schema not available`),this.errors=null,!0;let r=this.validate(n,e);if(!r&&t){let e=`schema is invalid: `+this.errorsText();if(this.opts.validateSchema===`log`)this.logger.error(e);else throw Error(e)}return r}getSchema(e){let t;for(;typeof(t=x.call(this,e))==`string`;)e=t;if(t===void 0){let{schemaId:n}=this.opts,r=new o.SchemaEnv({schema:{},schemaId:n});if(t=o.resolveSchema.call(this,r,e),!t)return;this.refs[e]=t}return t.validate||this._compileSchemaEnv(t)}removeSchema(e){if(e instanceof RegExp)return this._removeAllSchemas(this.schemas,e),this._removeAllSchemas(this.refs,e),this;switch(typeof e){case`undefined`:return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case`string`:{let t=x.call(this,e);return typeof t==`object`&&this._cache.delete(t.schema),delete this.schemas[e],delete this.refs[e],this}case`object`:{let t=e;this._cache.delete(t);let n=e[this.opts.schemaId];return n&&(n=(0,c.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw Error(`ajv.removeSchema: invalid parameter`)}}addVocabulary(e){for(let t of e)this.addKeyword(t);return this}addKeyword(e,t){let n;if(typeof e==`string`)n=e,typeof t==`object`&&(this.logger.warn(`these parameters are deprecated, see docs for addKeyword`),t.keyword=n);else if(typeof e==`object`&&t===void 0){if(t=e,n=t.keyword,Array.isArray(n)&&!n.length)throw Error(`addKeywords: keyword must be string or non-empty array`)}else throw Error(`invalid addKeywords parameters`);if(te.call(this,n,t),!t)return(0,u.eachItem)(n,e=>O.call(this,e)),this;k.call(this,t);let r={...t,type:(0,l.getJSONTypes)(t.type),schemaType:(0,l.getJSONTypes)(t.schemaType)};return(0,u.eachItem)(n,r.type.length===0?e=>O.call(this,e,r):e=>r.type.forEach(t=>O.call(this,e,r,t))),this}getKeyword(e){let t=this.RULES.all[e];return typeof t==`object`?t.definition:!!t}removeKeyword(e){let{RULES:t}=this;delete t.keywords[e],delete t.all[e];for(let n of t.rules){let t=n.rules.findIndex(t=>t.keyword===e);t>=0&&n.rules.splice(t,1)}return this}addFormat(e,t){return typeof t==`string`&&(t=new RegExp(t)),this.formats[e]=t,this}errorsText(e=this.errors,{separator:t=`, `,dataVar:n=`data`}={}){return!e||e.length===0?`No errors`:e.map(e=>`${n}${e.instancePath} ${e.message}`).reduce((e,n)=>e+t+n)}$dataMetaSchema(e,t){let n=this.RULES.all;e=JSON.parse(JSON.stringify(e));for(let r of t){let t=r.split(`/`).slice(1),i=e;for(let e of t)i=i[e];for(let e in n){let t=n[e];if(typeof t!=`object`)continue;let{$data:r}=t.definition,a=i[e];r&&a&&(i[e]=j(a))}}return e}_removeAllSchemas(e,t){for(let n in e){let r=e[n];(!t||t.test(n))&&(typeof r==`string`?delete e[n]:r&&!r.meta&&(this._cache.delete(r.schema),delete e[n]))}}_addSchema(e,t,n,r=this.opts.validateSchema,i=this.opts.addUsedSchema){let a,{schemaId:s}=this.opts;if(typeof e==`object`)a=e[s];else if(this.opts.jtd)throw Error(`schema must be object`);else if(typeof e!=`boolean`)throw Error(`schema must be object or boolean`);let l=this._cache.get(e);if(l!==void 0)return l;n=(0,c.normalizeId)(a||n);let u=c.getSchemaRefs.call(this,e,n);return l=new o.SchemaEnv({schema:e,schemaId:s,meta:t,baseId:n,localRefs:u}),this._cache.set(l.schema,l),i&&!n.startsWith(`#`)&&(n&&this._checkUnique(n),this.refs[n]=l),r&&this.validateSchema(e,!0),l}_checkUnique(e){if(this.schemas[e]||this.refs[e])throw Error(`schema with key or id "${e}" already exists`)}_compileSchemaEnv(e){if(e.meta?this._compileMetaSchema(e):o.compileSchema.call(this,e),!e.validate)throw Error(`ajv implementation error`);return e.validate}_compileMetaSchema(e){let t=this.opts;this.opts=this._metaOpts;try{o.compileSchema.call(this,e)}finally{this.opts=t}}};y.ValidationError=r.default,y.MissingRefError=i.default,e.default=y;function b(e,t,n,r=`error`){for(let i in e){let a=i;a in t&&this.logger[r](`${n}: option ${i}. ${e[a]}`)}}function x(e){return e=(0,c.normalizeId)(e),this.schemas[e]||this.refs[e]}function S(){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 C(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function w(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||=t,this.addKeyword(n)}}function T(){let e={...this.opts};for(let t of m)delete e[t];return e}let ee={log(){},warn(){},error(){}};function E(e){if(e===!1)return ee;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw Error(`logger must implement log, warn and error methods`)}let D=/^[a-z_$][a-z0-9_$:-]*$/i;function te(e,t){let{RULES:n}=this;if((0,u.eachItem)(e,e=>{if(n.keywords[e])throw Error(`Keyword ${e} is already defined`);if(!D.test(e))throw Error(`Keyword ${e} has invalid name`)}),t&&t.$data&&!(`code`in t||`validate`in t))throw Error(`$data keyword must have "code" or "validate" function`)}function O(e,t,n){var r;let i=t?.post;if(n&&i)throw Error(`keyword with "post" flag cannot have "type"`);let{RULES:a}=this,o=i?a.post:a.rules.find(({type:e})=>e===n);if(o||(o={type:n,rules:[]},a.rules.push(o)),a.keywords[e]=!0,!t)return;let s={keyword:e,definition:{...t,type:(0,l.getJSONTypes)(t.type),schemaType:(0,l.getJSONTypes)(t.schemaType)}};t.before?ne.call(this,o,s,t.before):o.rules.push(s),a.all[e]=s,(r=t.implements)==null||r.forEach(e=>this.addKeyword(e))}function ne(e,t,n){let r=e.rules.findIndex(e=>e.keyword===n);r>=0?e.rules.splice(r,0,t):(e.rules.push(t),this.logger.warn(`rule ${n} is not defined`))}function k(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=j(t)),e.validateSchema=this.compile(t,!0))}let A={$ref:`https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#`};function j(e){return{anyOf:[e,A]}}})),ag=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={keyword:`id`,code(){throw Error(`NOT SUPPORTED: keyword "id", use "$id" for schema ID`)}}})),og=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.callRef=e.getValidate=void 0;let t=Zh(),n=Uh(),r=W(),i=Ih(),a=Qh(),o=G(),s={keyword:`$ref`,schemaType:`string`,code(e){let{gen:n,schema:i,it:o}=e,{baseId:s,schemaEnv:u,validateName:d,opts:f,self:p}=o,{root:m}=u;if((i===`#`||i===`#/`)&&s===m.baseId)return g();let h=a.resolveRef.call(p,m,s,i);if(h===void 0)throw new t.default(o.opts.uriResolver,s,i);if(h instanceof a.SchemaEnv)return _(h);return v(h);function g(){if(u===m)return l(e,d,u,u.$async);let t=n.scopeValue(`root`,{ref:m});return l(e,(0,r._)`${t}.validate`,m,m.$async)}function _(t){l(e,c(e,t),t,t.$async)}function v(t){let a=n.scopeValue(`schema`,f.code.source===!0?{ref:t,code:(0,r.stringify)(t)}:{ref:t}),o=n.name(`valid`),s=e.subschema({schema:t,dataTypes:[],schemaPath:r.nil,topSchemaRef:a,errSchemaPath:i},o);e.mergeEvaluated(s),e.ok(o)}}};function c(e,t){let{gen:n}=e;return t.validate?n.scopeValue(`validate`,{ref:t.validate}):(0,r._)`${n.scopeValue(`wrapper`,{ref:t})}.validate`}e.getValidate=c;function l(e,t,a,s){let{gen:c,it:l}=e,{allErrors:u,schemaEnv:d,opts:f}=l,p=f.passContext?i.default.this:r.nil;s?m():h();function m(){if(!d.$async)throw Error(`async schema referenced by sync schema`);let i=c.let(`valid`);c.try(()=>{c.code((0,r._)`await ${(0,n.callValidateCode)(e,t,p)}`),_(t),u||c.assign(i,!0)},e=>{c.if((0,r._)`!(${e} instanceof ${l.ValidationError})`,()=>c.throw(e)),g(e),u||c.assign(i,!1)}),e.ok(i)}function h(){e.result((0,n.callValidateCode)(e,t,p),()=>_(t),()=>g(t))}function g(e){let t=(0,r._)`${e}.errors`;c.assign(i.default.vErrors,(0,r._)`${i.default.vErrors} === null ? ${t} : ${i.default.vErrors}.concat(${t})`),c.assign(i.default.errors,(0,r._)`${i.default.vErrors}.length`)}function _(e){if(!l.opts.unevaluated)return;let t=a?.validate?.evaluated;if(l.props!==!0){if(t&&!t.dynamicProps)t.props!==void 0&&(l.props=o.mergeEvaluated.props(c,t.props,l.props));else{let t=c.var(`props`,(0,r._)`${e}.evaluated.props`);l.props=o.mergeEvaluated.props(c,t,l.props,r.Name)}}if(l.items!==!0){if(t&&!t.dynamicItems)t.items!==void 0&&(l.items=o.mergeEvaluated.items(c,t.items,l.items));else{let t=c.var(`items`,(0,r._)`${e}.evaluated.items`);l.items=o.mergeEvaluated.items(c,t,l.items,r.Name)}}}}e.callRef=l,e.default=s})),sg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=ag(),n=og();e.default=[`$schema`,`$id`,`$defs`,`$vocabulary`,{keyword:`$comment`},`definitions`,t.default,n.default]})),cg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=t.operators,r={maximum:{okStr:`<=`,ok:n.LTE,fail:n.GT},minimum:{okStr:`>=`,ok:n.GTE,fail:n.LT},exclusiveMaximum:{okStr:`<`,ok:n.LT,fail:n.GTE},exclusiveMinimum:{okStr:`>`,ok:n.GT,fail:n.LTE}};e.default={keyword:Object.keys(r),type:`number`,schemaType:`number`,$data:!0,error:{message:({keyword:e,schemaCode:n})=>(0,t.str)`must be ${r[e].okStr} ${n}`,params:({keyword:e,schemaCode:n})=>(0,t._)`{comparison: ${r[e].okStr}, limit: ${n}}`},code(e){let{keyword:n,data:i,schemaCode:a}=e;e.fail$data((0,t._)`${i} ${r[n].fail} ${a} || isNaN(${i})`)}}})),lg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W();e.default={keyword:`multipleOf`,type:`number`,schemaType:`number`,$data:!0,error:{message:({schemaCode:e})=>(0,t.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,t._)`{multipleOf: ${e}}`},code(e){let{gen:n,data:r,schemaCode:i,it:a}=e,o=a.opts.multipleOfPrecision,s=n.let(`res`),c=o?(0,t._)`Math.abs(Math.round(${s}) - ${s}) > 1e-${o}`:(0,t._)`${s} !== parseInt(${s})`;e.fail$data((0,t._)`(${i} === 0 || (${s} = ${r}/${i}, ${c}))`)}}})),ug=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});function t(e){let t=e.length,n=0,r=0,i;for(;r<t;)n++,i=e.charCodeAt(r++),i>=55296&&i<=56319&&r<t&&(i=e.charCodeAt(r),(i&64512)==56320&&r++);return n}e.default=t,t.code=`require("ajv/dist/runtime/ucs2length").default`})),dg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=G(),r=ug();e.default={keyword:[`maxLength`,`minLength`],type:`string`,schemaType:`number`,$data:!0,error:{message({keyword:e,schemaCode:n}){let r=e===`maxLength`?`more`:`fewer`;return(0,t.str)`must NOT have ${r} than ${n} characters`},params:({schemaCode:e})=>(0,t._)`{limit: ${e}}`},code(e){let{keyword:i,data:a,schemaCode:o,it:s}=e,c=i===`maxLength`?t.operators.GT:t.operators.LT,l=s.opts.unicode===!1?(0,t._)`${a}.length`:(0,t._)`${(0,n.useFunc)(e.gen,r.default)}(${a})`;e.fail$data((0,t._)`${l} ${c} ${o}`)}}})),fg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Uh(),n=G(),r=W();e.default={keyword:`pattern`,type:`string`,schemaType:`string`,$data:!0,error:{message:({schemaCode:e})=>(0,r.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,r._)`{pattern: ${e}}`},code(e){let{gen:i,data:a,$data:o,schema:s,schemaCode:c,it:l}=e,u=l.opts.unicodeRegExp?`u`:``;if(o){let{regExp:t}=l.opts.code,o=t.code===`new RegExp`?(0,r._)`new RegExp`:(0,n.useFunc)(i,t),s=i.let(`valid`);i.try(()=>i.assign(s,(0,r._)`${o}(${c}, ${u}).test(${a})`),()=>i.assign(s,!1)),e.fail$data((0,r._)`!${s}`)}else{let n=(0,t.usePattern)(e,s);e.fail$data((0,r._)`!${n}.test(${a})`)}}}})),pg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W();e.default={keyword:[`maxProperties`,`minProperties`],type:`object`,schemaType:`number`,$data:!0,error:{message({keyword:e,schemaCode:n}){let r=e===`maxProperties`?`more`:`fewer`;return(0,t.str)`must NOT have ${r} than ${n} properties`},params:({schemaCode:e})=>(0,t._)`{limit: ${e}}`},code(e){let{keyword:n,data:r,schemaCode:i}=e,a=n===`maxProperties`?t.operators.GT:t.operators.LT;e.fail$data((0,t._)`Object.keys(${r}).length ${a} ${i}`)}}})),mg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Uh(),n=W(),r=G();e.default={keyword:`required`,type:`object`,schemaType:`array`,$data:!0,error:{message:({params:{missingProperty:e}})=>(0,n.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,n._)`{missingProperty: ${e}}`},code(e){let{gen:i,schema:a,schemaCode:o,data:s,$data:c,it:l}=e,{opts:u}=l;if(!c&&a.length===0)return;let d=a.length>=u.loopRequired;if(l.allErrors?f():p(),u.strictRequired){let t=e.parentSchema.properties,{definedProperties:n}=e.it;for(let e of a)if(t?.[e]===void 0&&!n.has(e)){let t=`required property "${e}" is not defined at "${l.schemaEnv.baseId+l.errSchemaPath}" (strictRequired)`;(0,r.checkStrictMode)(l,t,l.opts.strictRequired)}}function f(){if(d||c)e.block$data(n.nil,m);else for(let n of a)(0,t.checkReportMissingProp)(e,n)}function p(){let n=i.let(`missing`);if(d||c){let t=i.let(`valid`,!0);e.block$data(t,()=>h(n,t)),e.ok(t)}else i.if((0,t.checkMissingProp)(e,a,n)),(0,t.reportMissingProp)(e,n),i.else()}function m(){i.forOf(`prop`,o,n=>{e.setParams({missingProperty:n}),i.if((0,t.noPropertyInData)(i,s,n,u.ownProperties),()=>e.error())})}function h(r,a){e.setParams({missingProperty:r}),i.forOf(r,o,()=>{i.assign(a,(0,t.propertyInData)(i,s,r,u.ownProperties)),i.if((0,n.not)(a),()=>{e.error(),i.break()})},n.nil)}}}})),hg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W();e.default={keyword:[`maxItems`,`minItems`],type:`array`,schemaType:`number`,$data:!0,error:{message({keyword:e,schemaCode:n}){let r=e===`maxItems`?`more`:`fewer`;return(0,t.str)`must NOT have ${r} than ${n} items`},params:({schemaCode:e})=>(0,t._)`{limit: ${e}}`},code(e){let{keyword:n,data:r,schemaCode:i}=e,a=n===`maxItems`?t.operators.GT:t.operators.LT;e.fail$data((0,t._)`${r}.length ${a} ${i}`)}}})),gg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Kh();t.code=`require("ajv/dist/runtime/equal").default`,e.default=t})),_g=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Vh(),n=W(),r=G(),i=gg();e.default={keyword:`uniqueItems`,type:`array`,schemaType:`boolean`,$data:!0,error:{message:({params:{i:e,j:t}})=>(0,n.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,n._)`{i: ${e}, j: ${t}}`},code(e){let{gen:a,data:o,$data:s,schema:c,parentSchema:l,schemaCode:u,it:d}=e;if(!s&&!c)return;let f=a.let(`valid`),p=l.items?(0,t.getSchemaTypes)(l.items):[];e.block$data(f,m,(0,n._)`${u} === false`),e.ok(f);function m(){let t=a.let(`i`,(0,n._)`${o}.length`),r=a.let(`j`);e.setParams({i:t,j:r}),a.assign(f,!0),a.if((0,n._)`${t} > 1`,()=>(h()?g:_)(t,r))}function h(){return p.length>0&&!p.some(e=>e===`object`||e===`array`)}function g(r,i){let s=a.name(`item`),c=(0,t.checkDataTypes)(p,s,d.opts.strictNumbers,t.DataType.Wrong),l=a.const(`indices`,(0,n._)`{}`);a.for((0,n._)`;${r}--;`,()=>{a.let(s,(0,n._)`${o}[${r}]`),a.if(c,(0,n._)`continue`),p.length>1&&a.if((0,n._)`typeof ${s} == "string"`,(0,n._)`${s} += "_"`),a.if((0,n._)`typeof ${l}[${s}] == "number"`,()=>{a.assign(i,(0,n._)`${l}[${s}]`),e.error(),a.assign(f,!1).break()}).code((0,n._)`${l}[${s}] = ${r}`)})}function _(t,s){let c=(0,r.useFunc)(a,i.default),l=a.name(`outer`);a.label(l).for((0,n._)`;${t}--;`,()=>a.for((0,n._)`${s} = ${t}; ${s}--;`,()=>a.if((0,n._)`${c}(${o}[${t}], ${o}[${s}])`,()=>{e.error(),a.assign(f,!1).break(l)})))}}}})),vg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=G(),r=gg();e.default={keyword:`const`,$data:!0,error:{message:`must be equal to constant`,params:({schemaCode:e})=>(0,t._)`{allowedValue: ${e}}`},code(e){let{gen:i,data:a,$data:o,schemaCode:s,schema:c}=e;o||c&&typeof c==`object`?e.fail$data((0,t._)`!${(0,n.useFunc)(i,r.default)}(${a}, ${s})`):e.fail((0,t._)`${c} !== ${a}`)}}})),yg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=G(),r=gg();e.default={keyword:`enum`,schemaType:`array`,$data:!0,error:{message:`must be equal to one of the allowed values`,params:({schemaCode:e})=>(0,t._)`{allowedValues: ${e}}`},code(e){let{gen:i,data:a,$data:o,schema:s,schemaCode:c,it:l}=e;if(!o&&s.length===0)throw Error(`enum must have non-empty array`);let u=s.length>=l.opts.loopEnum,d,f=()=>d??=(0,n.useFunc)(i,r.default),p;if(u||o)p=i.let(`valid`),e.block$data(p,m);else{if(!Array.isArray(s))throw Error(`ajv implementation error`);let e=i.const(`vSchema`,c);p=(0,t.or)(...s.map((t,n)=>h(e,n)))}e.pass(p);function m(){i.assign(p,!1),i.forOf(`v`,c,e=>i.if((0,t._)`${f()}(${a}, ${e})`,()=>i.assign(p,!0).break()))}function h(e,n){let r=s[n];return typeof r==`object`&&r?(0,t._)`${f()}(${a}, ${e}[${n}])`:(0,t._)`${a} === ${r}`}}}})),bg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=cg(),n=lg(),r=dg(),i=fg(),a=pg(),o=mg(),s=hg(),c=_g(),l=vg(),u=yg();e.default=[t.default,n.default,r.default,i.default,a.default,o.default,s.default,c.default,{keyword:`type`,schemaType:[`string`,`array`]},{keyword:`nullable`,schemaType:`boolean`},l.default,u.default]})),xg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateAdditionalItems=void 0;let t=W(),n=G(),r={keyword:`additionalItems`,type:`array`,schemaType:[`boolean`,`object`],before:`uniqueItems`,error:{message:({params:{len:e}})=>(0,t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,t._)`{limit: ${e}}`},code(e){let{parentSchema:t,it:r}=e,{items:a}=t;if(!Array.isArray(a)){(0,n.checkStrictMode)(r,`"additionalItems" is ignored when "items" is not an array of schemas`);return}i(e,a)}};function i(e,r){let{gen:i,schema:a,data:o,keyword:s,it:c}=e;c.items=!0;let l=i.const(`len`,(0,t._)`${o}.length`);if(a===!1)e.setParams({len:r.length}),e.pass((0,t._)`${l} <= ${r.length}`);else if(typeof a==`object`&&!(0,n.alwaysValidSchema)(c,a)){let n=i.var(`valid`,(0,t._)`${l} <= ${r.length}`);i.if((0,t.not)(n),()=>u(n)),e.ok(n)}function u(a){i.forRange(`i`,r.length,l,r=>{e.subschema({keyword:s,dataProp:r,dataPropType:n.Type.Num},a),c.allErrors||i.if((0,t.not)(a),()=>i.break())})}}e.validateAdditionalItems=i,e.default=r})),Sg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateTuple=void 0;let t=W(),n=G(),r=Uh(),i={keyword:`items`,type:`array`,schemaType:[`object`,`array`,`boolean`],before:`uniqueItems`,code(e){let{schema:t,it:i}=e;if(Array.isArray(t))return a(e,`additionalItems`,t);i.items=!0,!(0,n.alwaysValidSchema)(i,t)&&e.ok((0,r.validateArray)(e))}};function a(e,r,i=e.schema){let{gen:a,parentSchema:o,data:s,keyword:c,it:l}=e;f(o),l.opts.unevaluated&&i.length&&l.items!==!0&&(l.items=n.mergeEvaluated.items(a,i.length,l.items));let u=a.name(`valid`),d=a.const(`len`,(0,t._)`${s}.length`);i.forEach((r,i)=>{(0,n.alwaysValidSchema)(l,r)||(a.if((0,t._)`${d} > ${i}`,()=>e.subschema({keyword:c,schemaProp:i,dataProp:i},u)),e.ok(u))});function f(e){let{opts:t,errSchemaPath:a}=l,o=i.length,s=o===e.minItems&&(o===e.maxItems||e[r]===!1);if(t.strictTuples&&!s){let e=`"${c}" is ${o}-tuple, but minItems or maxItems/${r} are not specified or different at path "${a}"`;(0,n.checkStrictMode)(l,e,t.strictTuples)}}}e.validateTuple=a,e.default=i})),Cg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Sg();e.default={keyword:`prefixItems`,type:`array`,schemaType:[`array`],before:`uniqueItems`,code:e=>(0,t.validateTuple)(e,`items`)}})),wg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=G(),r=Uh(),i=xg();e.default={keyword:`items`,type:`array`,schemaType:[`object`,`boolean`],before:`uniqueItems`,error:{message:({params:{len:e}})=>(0,t.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,t._)`{limit: ${e}}`},code(e){let{schema:t,parentSchema:a,it:o}=e,{prefixItems:s}=a;o.items=!0,!(0,n.alwaysValidSchema)(o,t)&&(s?(0,i.validateAdditionalItems)(e,s):e.ok((0,r.validateArray)(e)))}}})),Tg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=G();e.default={keyword:`contains`,type:`array`,schemaType:[`object`,`boolean`],before:`uniqueItems`,trackErrors:!0,error:{message:({params:{min:e,max:n}})=>n===void 0?(0,t.str)`must contain at least ${e} valid item(s)`:(0,t.str)`must contain at least ${e} and no more than ${n} valid item(s)`,params:({params:{min:e,max:n}})=>n===void 0?(0,t._)`{minContains: ${e}}`:(0,t._)`{minContains: ${e}, maxContains: ${n}}`},code(e){let{gen:r,schema:i,parentSchema:a,data:o,it:s}=e,c,l,{minContains:u,maxContains:d}=a;s.opts.next?(c=u===void 0?1:u,l=d):c=1;let f=r.const(`len`,(0,t._)`${o}.length`);if(e.setParams({min:c,max:l}),l===void 0&&c===0){(0,n.checkStrictMode)(s,`"minContains" == 0 without "maxContains": "contains" keyword ignored`);return}if(l!==void 0&&c>l){(0,n.checkStrictMode)(s,`"minContains" > "maxContains" is always invalid`),e.fail();return}if((0,n.alwaysValidSchema)(s,i)){let n=(0,t._)`${f} >= ${c}`;l!==void 0&&(n=(0,t._)`${n} && ${f} <= ${l}`),e.pass(n);return}s.items=!0;let p=r.name(`valid`);l===void 0&&c===1?h(p,()=>r.if(p,()=>r.break())):c===0?(r.let(p,!0),l!==void 0&&r.if((0,t._)`${o}.length > 0`,m)):(r.let(p,!1),m()),e.result(p,()=>e.reset());function m(){let e=r.name(`_valid`),t=r.let(`count`,0);h(e,()=>r.if(e,()=>g(t)))}function h(t,i){r.forRange(`i`,0,f,r=>{e.subschema({keyword:`contains`,dataProp:r,dataPropType:n.Type.Num,compositeRule:!0},t),i()})}function g(e){r.code((0,t._)`${e}++`),l===void 0?r.if((0,t._)`${e} >= ${c}`,()=>r.assign(p,!0).break()):(r.if((0,t._)`${e} > ${l}`,()=>r.assign(p,!1).break()),c===1?r.assign(p,!0):r.if((0,t._)`${e} >= ${c}`,()=>r.assign(p,!0)))}}}})),Eg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.validateSchemaDeps=e.validatePropertyDeps=e.error=void 0;let t=W(),n=G(),r=Uh();e.error={message:({params:{property:e,depsCount:n,deps:r}})=>{let i=n===1?`property`:`properties`;return(0,t.str)`must have ${i} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:n,deps:r,missingProperty:i}})=>(0,t._)`{property: ${e},
181
181
  missingProperty: ${i},
182
182
  depsCount: ${n},
183
- deps: ${r}}`};let i={keyword:`dependencies`,type:`object`,schemaType:`object`,error:e.error,code(e){let[t,n]=a(e);o(e,t),s(e,n)}};function a({schema:e}){let t={},n={};for(let r in e){if(r===`__proto__`)continue;let i=Array.isArray(e[r])?t:n;i[r]=e[r]}return[t,n]}function o(e,n=e.schema){let{gen:i,data:a,it:o}=e;if(Object.keys(n).length===0)return;let s=i.let(`missing`);for(let c in n){let l=n[c];if(l.length===0)continue;let u=(0,r.propertyInData)(i,a,c,o.opts.ownProperties);e.setParams({property:c,depsCount:l.length,deps:l.join(`, `)}),o.allErrors?i.if(u,()=>{for(let t of l)(0,r.checkReportMissingProp)(e,t)}):(i.if((0,t._)`${u} && (${(0,r.checkMissingProp)(e,l,s)})`),(0,r.reportMissingProp)(e,s),i.else())}}e.validatePropertyDeps=o;function s(e,t=e.schema){let{gen:i,data:a,keyword:o,it:s}=e,c=i.name(`valid`);for(let l in t)(0,n.alwaysValidSchema)(s,t[l])||(i.if((0,r.propertyInData)(i,a,l,s.opts.ownProperties),()=>{let t=e.subschema({keyword:o,schemaProp:l},c);e.mergeValidEvaluated(t,c)},()=>i.var(c,!0)),e.ok(c))}e.validateSchemaDeps=s,e.default=i})),wg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=q();e.default={keyword:`propertyNames`,type:`object`,schemaType:[`object`,`boolean`],error:{message:`property name must be valid`,params:({params:e})=>(0,t._)`{propertyName: ${e.propertyName}}`},code(e){let{gen:r,schema:i,data:a,it:o}=e;if((0,n.alwaysValidSchema)(o,i))return;let s=r.name(`valid`);r.forIn(`key`,a,n=>{e.setParams({propertyName:n}),e.subschema({keyword:`propertyNames`,data:n,dataTypes:[`string`],propertyName:n,compositeRule:!0},s),r.if((0,t.not)(s),()=>{e.error(!0),o.allErrors||r.break()})}),e.ok(s)}}})),Tg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Bh(),n=K(),r=Nh(),i=q();e.default={keyword:`additionalProperties`,type:[`object`],schemaType:[`boolean`,`object`],allowUndefined:!0,trackErrors:!0,error:{message:`must NOT have additional properties`,params:({params:e})=>(0,n._)`{additionalProperty: ${e.additionalProperty}}`},code(e){let{gen:a,schema:o,parentSchema:s,data:c,errsCount:l,it:u}=e;if(!l)throw Error(`ajv implementation error`);let{allErrors:d,opts:f}=u;if(u.props=!0,f.removeAdditional!==`all`&&(0,i.alwaysValidSchema)(u,o))return;let p=(0,t.allSchemaProperties)(s.properties),m=(0,t.allSchemaProperties)(s.patternProperties);h(),e.ok((0,n._)`${l} === ${r.default.errors}`);function h(){a.forIn(`key`,c,e=>{!p.length&&!m.length?v(e):a.if(g(e),()=>v(e))})}function g(r){let o;if(p.length>8){let e=(0,i.schemaRefOrVal)(u,s.properties,`properties`);o=(0,t.isOwnProperty)(a,e,r)}else o=p.length?(0,n.or)(...p.map(e=>(0,n._)`${r} === ${e}`)):n.nil;return m.length&&(o=(0,n.or)(o,...m.map(i=>(0,n._)`${(0,t.usePattern)(e,i)}.test(${r})`))),(0,n.not)(o)}function _(e){a.code((0,n._)`delete ${c}[${e}]`)}function v(t){if(f.removeAdditional===`all`||f.removeAdditional&&o===!1){_(t);return}if(o===!1){e.setParams({additionalProperty:t}),e.error(),d||a.break();return}if(typeof o==`object`&&!(0,i.alwaysValidSchema)(u,o)){let r=a.name(`valid`);f.removeAdditional===`failing`?(y(t,r,!1),a.if((0,n.not)(r),()=>{e.reset(),_(t)})):(y(t,r),d||a.if((0,n.not)(r),()=>a.break()))}}function y(t,n,r){let a={keyword:`additionalProperties`,dataProp:t,dataPropType:i.Type.Str};r===!1&&Object.assign(a,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(a,n)}}}})),Eg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Kh(),n=Bh(),r=q(),i=Tg();e.default={keyword:`properties`,type:`object`,schemaType:`object`,code(e){let{gen:a,schema:o,parentSchema:s,data:c,it:l}=e;l.opts.removeAdditional===`all`&&s.additionalProperties===void 0&&i.default.code(new t.KeywordCxt(l,i.default,`additionalProperties`));let u=(0,n.allSchemaProperties)(o);for(let e of u)l.definedProperties.add(e);l.opts.unevaluated&&u.length&&l.props!==!0&&(l.props=r.mergeEvaluated.props(a,(0,r.toHash)(u),l.props));let d=u.filter(e=>!(0,r.alwaysValidSchema)(l,o[e]));if(d.length===0)return;let f=a.name(`valid`);for(let t of d)p(t)?m(t):(a.if((0,n.propertyInData)(a,c,t,l.opts.ownProperties)),m(t),l.allErrors||a.else().var(f,!0),a.endIf()),e.it.definedProperties.add(t),e.ok(f);function p(e){return l.opts.useDefaults&&!l.compositeRule&&o[e].default!==void 0}function m(t){e.subschema({keyword:`properties`,schemaProp:t,dataProp:t},f)}}}})),Dg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Bh(),n=K(),r=q(),i=q();e.default={keyword:`patternProperties`,type:`object`,schemaType:`object`,code(e){let{gen:a,schema:o,data:s,parentSchema:c,it:l}=e,{opts:u}=l,d=(0,t.allSchemaProperties)(o),f=d.filter(e=>(0,r.alwaysValidSchema)(l,o[e]));if(d.length===0||f.length===d.length&&(!l.opts.unevaluated||l.props===!0))return;let p=u.strictSchema&&!u.allowMatchingProperties&&c.properties,m=a.name(`valid`);l.props!==!0&&!(l.props instanceof n.Name)&&(l.props=(0,i.evaluatedPropsToName)(a,l.props));let{props:h}=l;g();function g(){for(let e of d)p&&_(e),l.allErrors?v(e):(a.var(m,!0),v(e),a.if(m))}function _(e){for(let t in p)new RegExp(e).test(t)&&(0,r.checkStrictMode)(l,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function v(r){a.forIn(`key`,s,o=>{a.if((0,n._)`${(0,t.usePattern)(e,r)}.test(${o})`,()=>{let t=f.includes(r);t||e.subschema({keyword:`patternProperties`,schemaProp:r,dataProp:o,dataPropType:i.Type.Str},m),l.opts.unevaluated&&h!==!0?a.assign((0,n._)`${h}[${o}]`,!0):!t&&!l.allErrors&&a.if((0,n.not)(m),()=>a.break())})})}}}})),Og=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=q();e.default={keyword:`not`,schemaType:[`object`,`boolean`],trackErrors:!0,code(e){let{gen:n,schema:r,it:i}=e;if((0,t.alwaysValidSchema)(i,r)){e.fail();return}let a=n.name(`valid`);e.subschema({keyword:`not`,compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:`must NOT be valid`}}})),kg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={keyword:`anyOf`,schemaType:`array`,trackErrors:!0,code:Bh().validateUnion,error:{message:`must match a schema in anyOf`}}})),Ag=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=q();e.default={keyword:`oneOf`,schemaType:`array`,trackErrors:!0,error:{message:`must match exactly one schema in oneOf`,params:({params:e})=>(0,t._)`{passingSchemas: ${e.passing}}`},code(e){let{gen:r,schema:i,parentSchema:a,it:o}=e;if(!Array.isArray(i))throw Error(`ajv implementation error`);if(o.opts.discriminator&&a.discriminator)return;let s=i,c=r.let(`valid`,!1),l=r.let(`passing`,null),u=r.name(`_valid`);e.setParams({passing:l}),r.block(d),e.result(c,()=>e.reset(),()=>e.error(!0));function d(){s.forEach((i,a)=>{let s;(0,n.alwaysValidSchema)(o,i)?r.var(u,!0):s=e.subschema({keyword:`oneOf`,schemaProp:a,compositeRule:!0},u),a>0&&r.if((0,t._)`${u} && ${c}`).assign(c,!1).assign(l,(0,t._)`[${l}, ${a}]`).else(),r.if(u,()=>{r.assign(c,!0),r.assign(l,a),s&&e.mergeEvaluated(s,t.Name)})})}}}})),jg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=q();e.default={keyword:`allOf`,schemaType:`array`,code(e){let{gen:n,schema:r,it:i}=e;if(!Array.isArray(r))throw Error(`ajv implementation error`);let a=n.name(`valid`);r.forEach((n,r)=>{if((0,t.alwaysValidSchema)(i,n))return;let o=e.subschema({keyword:`allOf`,schemaProp:r},a);e.ok(a),e.mergeEvaluated(o)})}}})),Mg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=q(),r={keyword:`if`,schemaType:[`object`,`boolean`],trackErrors:!0,error:{message:({params:e})=>(0,t.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,t._)`{failingKeyword: ${e.ifClause}}`},code(e){let{gen:r,parentSchema:a,it:o}=e;a.then===void 0&&a.else===void 0&&(0,n.checkStrictMode)(o,`"if" without "then" and "else" is ignored`);let s=i(o,`then`),c=i(o,`else`);if(!s&&!c)return;let l=r.let(`valid`,!0),u=r.name(`_valid`);if(d(),e.reset(),s&&c){let t=r.let(`ifClause`);e.setParams({ifClause:t}),r.if(u,f(`then`,t),f(`else`,t))}else s?r.if(u,f(`then`)):r.if((0,t.not)(u),f(`else`));e.pass(l,()=>e.error(!0));function d(){let t=e.subschema({keyword:`if`,compositeRule:!0,createErrors:!1,allErrors:!1},u);e.mergeEvaluated(t)}function f(n,i){return()=>{let a=e.subschema({keyword:n},u);r.assign(l,u),e.mergeValidEvaluated(a,l),i?r.assign(i,(0,t._)`${n}`):e.setParams({ifClause:n})}}}};function i(e,t){let r=e.schema[t];return r!==void 0&&!(0,n.alwaysValidSchema)(e,r)}e.default=r})),Ng=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=q();e.default={keyword:[`then`,`else`],schemaType:[`object`,`boolean`],code({keyword:e,parentSchema:n,it:r}){n.if===void 0&&(0,t.checkStrictMode)(r,`"${e}" without "if" is ignored`)}}})),Pg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=vg(),n=bg(),r=yg(),i=xg(),a=Sg(),o=Cg(),s=wg(),c=Tg(),l=Eg(),u=Dg(),d=Og(),f=kg(),p=Ag(),m=jg(),h=Mg(),g=Ng();function _(e=!1){let _=[d.default,f.default,p.default,m.default,h.default,g.default,s.default,c.default,o.default,l.default,u.default];return e?_.push(n.default,i.default):_.push(t.default,r.default),_.push(a.default),_}e.default=_})),Fg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K();e.default={keyword:`format`,type:[`number`,`string`],schemaType:`string`,$data:!0,error:{message:({schemaCode:e})=>(0,t.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,t._)`{format: ${e}}`},code(e,n){let{gen:r,data:i,$data:a,schema:o,schemaCode:s,it:c}=e,{opts:l,errSchemaPath:u,schemaEnv:d,self:f}=c;if(!l.validateFormats)return;a?p():m();function p(){let a=r.scopeValue(`formats`,{ref:f.formats,code:l.code.formats}),o=r.const(`fDef`,(0,t._)`${a}[${s}]`),c=r.let(`fType`),u=r.let(`format`);r.if((0,t._)`typeof ${o} == "object" && !(${o} instanceof RegExp)`,()=>r.assign(c,(0,t._)`${o}.type || "string"`).assign(u,(0,t._)`${o}.validate`),()=>r.assign(c,(0,t._)`"string"`).assign(u,o)),e.fail$data((0,t.or)(p(),m()));function p(){return l.strictSchema===!1?t.nil:(0,t._)`${s} && !${u}`}function m(){let e=d.$async?(0,t._)`(${o}.async ? await ${u}(${i}) : ${u}(${i}))`:(0,t._)`${u}(${i})`,r=(0,t._)`(typeof ${u} == "function" ? ${e} : ${u}.test(${i}))`;return(0,t._)`${u} && ${u} !== true && ${c} === ${n} && !${r}`}}function m(){let a=f.formats[o];if(!a){m();return}if(a===!0)return;let[s,c,p]=h(a);s===n&&e.pass(g());function m(){if(l.strictSchema===!1){f.logger.warn(e());return}throw Error(e());function e(){return`unknown format "${o}" ignored in schema at path "${u}"`}}function h(e){let n=e instanceof RegExp?(0,t.regexpCode)(e):l.code.formats?(0,t._)`${l.code.formats}${(0,t.getProperty)(o)}`:void 0,i=r.scopeValue(`formats`,{key:o,ref:e,code:n});return typeof e==`object`&&!(e instanceof RegExp)?[e.type||`string`,e.validate,(0,t._)`${i}.validate`]:[`string`,e,i]}function g(){if(typeof a==`object`&&!(a instanceof RegExp)&&a.async){if(!d.$async)throw Error(`async format in sync schema`);return(0,t._)`await ${p}(${i})`}return typeof c==`function`?(0,t._)`${p}(${i})`:(0,t._)`${p}.test(${i})`}}}}})),Ig=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=[Fg().default]})),Lg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=[`title`,`description`,`default`,`deprecated`,`readOnly`,`writeOnly`,`examples`],e.contentVocabulary=[`contentMediaType`,`contentEncoding`,`contentSchema`]})),Rg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=ig(),n=_g(),r=Pg(),i=Ig(),a=Lg();e.default=[t.default,n.default,(0,r.default)(),i.default,a.metadataVocabulary,a.contentVocabulary]})),zg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(e){e.Tag=`tag`,e.Mapping=`mapping`})(t||(e.DiscrError=t={}))})),Bg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=K(),n=zg(),r=Yh(),i=Jh(),a=q();e.default={keyword:`discriminator`,type:`object`,schemaType:`object`,error:{message:({params:{discrError:e,tagName:t}})=>e===n.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:n,tagName:r}})=>(0,t._)`{error: ${e}, tag: ${r}, tagValue: ${n}}`},code(e){let{gen:o,data:s,schema:c,parentSchema:l,it:u}=e,{oneOf:d}=l;if(!u.opts.discriminator)throw Error(`discriminator: requires discriminator option`);let f=c.propertyName;if(typeof f!=`string`)throw Error(`discriminator: requires propertyName`);if(c.mapping)throw Error(`discriminator: mapping is not supported`);if(!d)throw Error(`discriminator: requires oneOf keyword`);let p=o.let(`valid`,!1),m=o.const(`tag`,(0,t._)`${s}${(0,t.getProperty)(f)}`);o.if((0,t._)`typeof ${m} == "string"`,()=>h(),()=>e.error(!1,{discrError:n.DiscrError.Tag,tag:m,tagName:f})),e.ok(p);function h(){let r=_();o.if(!1);for(let e in r)o.elseIf((0,t._)`${m} === ${e}`),o.assign(p,g(r[e]));o.else(),e.error(!1,{discrError:n.DiscrError.Mapping,tag:m,tagName:f}),o.endIf()}function g(n){let r=o.name(`valid`),i=e.subschema({keyword:`oneOf`,schemaProp:n},r);return e.mergeEvaluated(i,t.Name),r}function _(){let e={},t=o(l),n=!0;for(let e=0;e<d.length;e++){let c=d[e];if(c?.$ref&&!(0,a.schemaHasRulesButRef)(c,u.self.RULES)){let e=c.$ref;if(c=r.resolveRef.call(u.self,u.schemaEnv.root,u.baseId,e),c instanceof r.SchemaEnv&&(c=c.schema),c===void 0)throw new i.default(u.opts.uriResolver,u.baseId,e)}let l=c?.properties?.[f];if(typeof l!=`object`)throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${f}"`);n&&=t||o(c),s(l,e)}if(!n)throw Error(`discriminator: "${f}" must be required`);return e;function o({required:e}){return Array.isArray(e)&&e.includes(f)}function s(e,t){if(e.const)c(e.const,t);else if(e.enum)for(let n of e.enum)c(n,t);else throw Error(`discriminator: "properties/${f}" must have "const" or "enum"`)}function c(t,n){if(typeof t!=`string`||t in e)throw Error(`discriminator: "${f}" values must be unique strings`);e[t]=n}}}}})),Vg=V(((e,t)=>{t.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}})),Hg=V(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;let n=tg(),r=Rg(),i=Bg(),a=Vg(),o=[`/properties`],s=`http://json-schema.org/draft-07/schema`;var c=class extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(a,o):a;this.addMetaSchema(e,s,!1),this.refs[`http://json-schema.org/schema`]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}};e.Ajv=c,t.exports=e=c,t.exports.Ajv=c,Object.defineProperty(e,"__esModule",{value:!0}),e.default=c;var l=Kh();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=K();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var d=qh();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=Jh();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})})),Ug=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t(e,t){return{validate:e,compare:t}}e.fullFormats={date:t(a,o),time:t(c(!0),l),"date-time":t(f(!0),p),"iso-time":t(c(),u),"iso-date-time":t(f(),m),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:_,"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:E,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:y,int32:{type:`number`,validate:S},int64:{type:`number`,validate:C},float:{type:`number`,validate:w},double:{type:`number`,validate:w},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,l),"date-time":t(/^\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,p),"iso-time":t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,u),"iso-date-time":t(/^\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,m),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},e.formatNames=Object.keys(e.fullFormats);function n(e){return e%4==0&&(e%100!=0||e%400==0)}let r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function a(e){let t=r.exec(e);if(!t)return!1;let a=+t[1],o=+t[2],s=+t[3];return o>=1&&o<=12&&s>=1&&s<=(o===2&&n(a)?29:i[o])}function o(e,t){if(e&&t)return e>t?1:e<t?-1:0}let s=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function c(e){return function(t){let n=s.exec(t);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=n[4],c=n[5]===`-`?-1:1,l=+(n[6]||0),u=+(n[7]||0);if(l>23||u>59||e&&!o)return!1;if(r<=23&&i<=59&&a<60)return!0;let d=i-u*c,f=r-l*c-+(d<0);return(f===23||f===-1)&&(d===59||d===-1)&&a<61}}function l(e,t){if(!(e&&t))return;let n=new Date(`2020-01-01T`+e).valueOf(),r=new Date(`2020-01-01T`+t).valueOf();if(n&&r)return n-r}function u(e,t){if(!(e&&t))return;let n=s.exec(e),r=s.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e<t?-1:0}let d=/t|\s/i;function f(e){let t=c(e);return function(e){let n=e.split(d);return n.length===2&&a(n[0])&&t(n[1])}}function p(e,t){if(!(e&&t))return;let n=new Date(e).valueOf(),r=new Date(t).valueOf();if(n&&r)return n-r}function m(e,t){if(!(e&&t))return;let[n,r]=e.split(d),[i,a]=t.split(d),s=o(n,i);if(s!==void 0)return s||l(r,a)}let h=/\/|:/,g=/^(?:[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 _(e){return h.test(e)&&g.test(e)}let v=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function y(e){return v.lastIndex=0,v.test(e)}let b=-(2**31),x=2**31-1;function S(e){return Number.isInteger(e)&&e<=x&&e>=b}function C(e){return Number.isInteger(e)}function w(){return!0}let T=/[^\\]\\Z/;function E(e){if(T.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}})),Wg=V((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;let t=Hg(),n=K(),r=n.operators,i={formatMaximum:{okStr:`<=`,ok:r.LTE,fail:r.GT},formatMinimum:{okStr:`>=`,ok:r.GTE,fail:r.LT},formatExclusiveMaximum:{okStr:`<`,ok:r.LT,fail:r.GTE},formatExclusiveMinimum:{okStr:`>`,ok:r.GT,fail:r.LTE}};e.formatLimitDefinition={keyword:Object.keys(i),type:`string`,schemaType:`string`,$data:!0,error:{message:({keyword:e,schemaCode:t})=>(0,n.str)`should be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,n._)`{comparison: ${i[e].okStr}, limit: ${t}}`},code(e){let{gen:r,data:a,schemaCode:o,keyword:s,it:c}=e,{opts:l,self:u}=c;if(!l.validateFormats)return;let d=new t.KeywordCxt(c,u.RULES.all.format.definition,`format`);d.$data?f():p();function f(){let t=r.scopeValue(`formats`,{ref:u.formats,code:l.code.formats}),i=r.const(`fmt`,(0,n._)`${t}[${d.schemaCode}]`);e.fail$data((0,n.or)((0,n._)`typeof ${i} != "object"`,(0,n._)`${i} instanceof RegExp`,(0,n._)`typeof ${i}.compare != "function"`,m(i)))}function p(){let t=d.schema,i=u.formats[t];if(!i||i===!0)return;if(typeof i!=`object`||i instanceof RegExp||typeof i.compare!=`function`)throw Error(`"${s}": format "${t}" does not define "compare" function`);let a=r.scopeValue(`formats`,{key:t,ref:i,code:l.code.formats?(0,n._)`${l.code.formats}${(0,n.getProperty)(t)}`:void 0});e.fail$data(m(a))}function m(e){return(0,n._)`${e}.compare(${a}, ${o}) ${i[s].fail} 0`}},dependencies:[`format`]},e.default=t=>(t.addKeyword(e.formatLimitDefinition),t)})),Gg=V(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});let n=Ug(),r=Wg(),i=K(),a=new i.Name(`fullFormats`),o=new i.Name(`fastFormats`),s=(e,t={keywords:!0})=>{if(Array.isArray(t))return c(e,t,n.fullFormats,a),e;let[i,s]=t.mode===`fast`?[n.fastFormats,o]:[n.fullFormats,a];return c(e,t.formats||n.formatNames,i,s),t.keywords&&(0,r.default)(e),e};s.get=(e,t=`full`)=>{let r=(t===`fast`?n.fastFormats:n.fullFormats)[e];if(!r)throw Error(`Unknown format "${e}"`);return r};function c(e,t,n,r){var a;(a=e.opts.code).formats??(a.formats=(0,i._)`require("ajv-formats/dist/formats").${r}`);for(let r of t)e.addFormat(r,n[r])}t.exports=e=s,Object.defineProperty(e,"__esModule",{value:!0}),e.default=s})),Kg=Hg(),qg=ef(Gg(),1),Jg=class{_ajv;constructor(e){this._ajv=e??Gd()}getValidator(e){let t=`$id`in e&&typeof e.$id==`string`?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return e=>t(e)?{valid:!0,data:e,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(t.errors)}}},Yg=class{shortcircuit;draft;constructor(e){this.shortcircuit=e?.shortcircuit??!0,this.draft=e?.draft??`2020-12`}getValidator(e){let t=new md(e,this.draft,this.shortcircuit);return e=>{let n=t.validate(e);return n.valid?{valid:!0,data:e,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:n.errors.map(e=>`${e.instanceLocation}: ${e.error}`).join(`; `)}}}}}));function Zg(){throw Error(`StdioServerTransport is not supported in this environment. Use StreamableHTTPServerTransport instead.`)}var Qg,$g=L((()=>{Xg(),Qg={get stdin(){return Zg()},get stdout(){return Zg()}}})),e_=Ge({AjvJsonSchemaValidator:()=>Jg,CfWorkerJsonSchemaValidator:()=>Yg,DEFAULT_NEGOTIATED_PROTOCOL_VERSION:()=>df,DEFAULT_REQUEST_TIMEOUT_MSEC:()=>Sh,ExperimentalMcpServerTasks:()=>y_,ExperimentalServerTasks:()=>b_,INTERNAL_ERROR:()=>vf,INVALID_PARAMS:()=>_f,INVALID_REQUEST:()=>hf,InMemoryTaskMessageQueue:()=>v_,InMemoryTaskStore:()=>__,JSONRPC_VERSION:()=>`2.0`,LATEST_PROTOCOL_VERSION:()=>uf,METHOD_NOT_FOUND:()=>gf,McpServer:()=>S_,OAuthError:()=>nf,OAuthErrorCode:()=>tf,PARSE_ERROR:()=>mf,ProtocolError:()=>G,ProtocolErrorCode:()=>W,RELATED_TASK_META_KEY:()=>pf,ReadBuffer:()=>wh,ResourceTemplate:()=>C_,SUPPORTED_PROTOCOL_VERSIONS:()=>ff,SdkError:()=>U,SdkErrorCode:()=>H,Server:()=>x_,StdioServerTransport:()=>E_,UriTemplate:()=>Ah,UrlElicitationRequiredError:()=>yf,WebStandardStreamableHTTPServerTransport:()=>D_,assertClientRequestTaskCapability:()=>a_,assertCompleteRequestPrompt:()=>Td,assertCompleteRequestResourceTemplate:()=>Ed,assertToolsCallTaskCapability:()=>i_,checkResourceAllowed:()=>vd,completable:()=>t_,createFetchWithInit:()=>Bd,deserializeMessage:()=>Pd,fromJsonSchema:()=>h_,getDisplayName:()=>yd,hostHeaderValidationResponse:()=>m_,isCompletable:()=>n_,isInitializeRequest:()=>vh,isInitializedNotification:()=>yh,isJSONRPCErrorResponse:()=>gh,isJSONRPCNotification:()=>mh,isJSONRPCRequest:()=>ph,isJSONRPCResultResponse:()=>hh,isTaskAugmentedRequestParams:()=>_h,isTerminal:()=>Od,localhostAllowedHostnames:()=>p_,parseJSONRPCMessage:()=>wd,resourceUrlFromServerUrl:()=>_d,serializeMessage:()=>Fd,takeResult:()=>Nd,toArrayAsync:()=>Md,validateHostHeader:()=>f_});function t_(e,t){return Object.defineProperty(e,g_,{value:{complete:t},enumerable:!1,writable:!1,configurable:!1}),e}function n_(e){return!!e&&typeof e==`object`&&g_ in e}function r_(e){return e[g_]?.complete}function i_(e,t,n){if(!e)throw new U(H.CapabilityNotSupported,`${n} does not support task creation (required for ${t})`);if(t===`tools/call`&&!e.tools?.call)throw new U(H.CapabilityNotSupported,`${n} does not support task creation for tools/call (required for ${t})`)}function a_(e,t,n){if(!e)throw new U(H.CapabilityNotSupported,`${n} does not support task creation (required for ${t})`);switch(t){case`sampling/createMessage`:if(!e.sampling?.createMessage)throw new U(H.CapabilityNotSupported,`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case`elicitation/create`:if(!e.elicitation?.create)throw new U(H.CapabilityNotSupported,`${n} does not support task creation for elicitation/create (required for ${t})`)}}function o_(e,t){if(`createTask`in t){let n=t;return async(t,r)=>{if(!r.task?.store)throw Error(`No task store provided.`);let i={...r,task:{store:r.task.store,requestedTtl:r.task?.requestedTtl}};return e?n.createTask(t,i):n.createTask(i)}}if(e){let e=t;return async(t,n)=>e(t,n)}let n=t;return async(e,t)=>n(t)}function s_(e,t,n){if(t){let r=n;return async(n,i)=>{let a=await Ud(t,n);if(!a.success)throw new G(W.InvalidParams,`Invalid arguments for prompt ${e}: ${a.error}`);return r(a.data,i)}}{let e=n;return async(t,n)=>e(n)}}function c_(e){return{completion:{values:e.map(String).slice(0,100),total:e.length,hasMore:e.length>100}}}function l_(e){let t=e;if(t.shape&&typeof t.shape==`object`)return t.shape}function u_(e){return e?.type===`optional`}function d_(e){return u_(e)?e.def?.innerType??e:e}function f_(e,t){if(!e)return{ok:!1,errorCode:`missing_host`,message:`Missing Host header`};let n;try{n=new URL(`http://${e}`).hostname}catch{return{ok:!1,errorCode:`invalid_host_header`,message:`Invalid Host header: ${e}`,hostHeader:e}}return t.includes(n)?{ok:!0,hostname:n}:{ok:!1,errorCode:`invalid_host`,message:`Invalid Host: ${n}`,hostHeader:e,hostname:n}}function p_(){return[`localhost`,`127.0.0.1`,`[::1]`]}function m_(e,t){let n=f_(e.headers.get(`host`),t);if(!n.ok)return Response.json({jsonrpc:`2.0`,error:{code:-32e3,message:n.message},id:null},{status:403,headers:{"Content-Type":`application/json`}})}function h_(e,t){return Kd(e,t??(O_??=new Yg))}var g_,__,v_,y_,b_,x_,S_,C_,w_,T_,E_,D_,O_,k_=L((()=>{Xg(),$g(),g_=Symbol.for(`mcp.completable`),__=class{tasks=new Map;cleanupTimers=new Map;generateTaskId(){return crypto.randomUUID().replaceAll(`-`,``)}async createTask(e,t,n,r){let i=this.generateTaskId();if(this.tasks.has(i))throw Error(`Task with ID ${i} already exists`);let a=e.ttl??null,o=new Date().toISOString(),s={taskId:i,status:`working`,ttl:a,createdAt:o,lastUpdatedAt:o,pollInterval:e.pollInterval??1e3};if(this.tasks.set(i,{task:s,request:n,requestId:t,sessionId:r}),a){let e=setTimeout(()=>{this.tasks.delete(i),this.cleanupTimers.delete(i)},a);this.cleanupTimers.set(i,e)}return s}getStoredTask(e,t){let n=this.tasks.get(e);if(n&&(t===void 0||n.sessionId===void 0||n.sessionId===t))return n}async getTask(e,t){let n=this.getStoredTask(e,t);return n?{...n.task}:null}async storeTaskResult(e,t,n,r){let i=this.getStoredTask(e,r);if(!i)throw Error(`Task with ID ${e} not found`);if(Od(i.task.status))throw Error(`Cannot store result for task ${e} in terminal status '${i.task.status}'. Task results can only be stored once.`);if(i.result=n,i.task.status=t,i.task.lastUpdatedAt=new Date().toISOString(),i.task.ttl){let t=this.cleanupTimers.get(e);t&&clearTimeout(t);let n=setTimeout(()=>{this.tasks.delete(e),this.cleanupTimers.delete(e)},i.task.ttl);this.cleanupTimers.set(e,n)}}async getTaskResult(e,t){let n=this.getStoredTask(e,t);if(!n)throw Error(`Task with ID ${e} not found`);if(!n.result)throw Error(`Task ${e} has no result stored`);return n.result}async updateTaskStatus(e,t,n,r){let i=this.getStoredTask(e,r);if(!i)throw Error(`Task with ID ${e} not found`);if(Od(i.task.status))throw Error(`Cannot update task ${e} from terminal status '${i.task.status}' to '${t}'. Terminal states (completed, failed, cancelled) cannot transition to other states.`);if(i.task.status=t,n&&(i.task.statusMessage=n),i.task.lastUpdatedAt=new Date().toISOString(),Od(t)&&i.task.ttl){let t=this.cleanupTimers.get(e);t&&clearTimeout(t);let n=setTimeout(()=>{this.tasks.delete(e),this.cleanupTimers.delete(e)},i.task.ttl);this.cleanupTimers.set(e,n)}}async listTasks(e,t){let n=[...this.tasks.entries()].filter(([,e])=>t===void 0||e.sessionId===void 0||e.sessionId===t).map(([e])=>e),r=0;if(e){let t=n.indexOf(e);if(t===-1)throw Error(`Invalid cursor: ${e}`);r=t+1}let i=n.slice(r,r+10);return{tasks:i.map(e=>({...this.tasks.get(e).task})),nextCursor:r+10<n.length?i.at(-1):void 0}}cleanup(){for(let e of this.cleanupTimers.values())clearTimeout(e);this.cleanupTimers.clear(),this.tasks.clear()}getAllTasks(){return[...this.tasks.values()].map(e=>({...e.task}))}},v_=class{queues=new Map;getQueueKey(e,t){return e}getQueue(e,t){let n=this.getQueueKey(e,t),r=this.queues.get(n);return r||(r=[],this.queues.set(n,r)),r}async enqueue(e,t,n,r){let i=this.getQueue(e,n);if(r!==void 0&&i.length>=r)throw Error(`Task message queue overflow: queue size (${i.length}) exceeds maximum (${r})`);i.push(t)}async dequeue(e,t){return this.getQueue(e,t).shift()}async dequeueAll(e,t){let n=this.getQueueKey(e,t),r=this.queues.get(n)??[];return this.queues.delete(n),r}},y_=class{constructor(e){this._mcpServer=e}registerToolTask(e,t,n){let r={taskSupport:`required`,...t.execution};if(r.taskSupport===`forbidden`)throw Error(`Cannot register task-based tool '${e}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(e,t.title,t.description,t.inputSchema,t.outputSchema,t.annotations,r,t._meta,n)}},b_=class{constructor(e){this._server=e}get _module(){return this._server.taskManager}requestStream(e,t){let n=bd(e.method);return this._module.requestStream(e,n,t)}createMessageStream(e,t){let n=this._server.getClientCapabilities();if((e.tools||e.toolChoice)&&!n?.sampling?.tools)throw new U(H.CapabilityNotSupported,`Client does not support sampling tools capability.`);if(e.messages.length>0){let t=e.messages.at(-1),n=Array.isArray(t.content)?t.content:[t.content],r=n.some(e=>e.type===`tool_result`),i=e.messages.length>1?e.messages.at(-2):void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],o=a.some(e=>e.type===`tool_use`);if(r){if(n.some(e=>e.type!==`tool_result`))throw Error(`The last message must contain only tool_result content if any is present`);if(!o)throw Error(`tool_result blocks are not matching any tool_use from the previous message`)}if(o){let e=new Set(a.filter(e=>e.type===`tool_use`).map(e=>e.id)),t=new Set(n.filter(e=>e.type===`tool_result`).map(e=>e.toolUseId));if(e.size!==t.size||![...e].every(e=>t.has(e)))throw Error(`ids of tool_result blocks and tool_use blocks from previous message do not match`)}}return this.requestStream({method:`sampling/createMessage`,params:e},t)}elicitInputStream(e,t){let n=this._server.getClientCapabilities(),r=e.mode??`form`;switch(r){case`url`:if(!n?.elicitation?.url)throw new U(H.CapabilityNotSupported,`Client does not support url elicitation.`);break;case`form`:if(!n?.elicitation?.form)throw new U(H.CapabilityNotSupported,`Client does not support form elicitation.`)}let i=r===`form`&&e.mode!==`form`?{...e,mode:`form`}:e;return this.requestStream({method:`elicitation/create`,params:i},t)}async getTask(e,t){return this._module.getTask({taskId:e},t)}async getTaskResult(e,t){return this._module.getTaskResult({taskId:e},_p,t)}async listTasks(e,t){return this._module.listTasks(e?{cursor:e}:void 0,t)}async cancelTask(e,t){return this._module.cancelTask({taskId:e},t)}},x_=class extends Ch{_clientCapabilities;_clientVersion;_capabilities;_instructions;_jsonSchemaValidator;_experimental;oninitialized;constructor(e,t){if(super({...t,tasks:kd(t?.capabilities?.tasks)}),this._serverInfo=e,this._capabilities=t?.capabilities?{...t.capabilities}:{},this._instructions=t?.instructions,this._jsonSchemaValidator=t?.jsonSchemaValidator??new Yg,t?.capabilities?.tasks){let{taskStore:e,taskMessageQueue:n,defaultTaskPollInterval:r,maxTaskQueueSize:i,...a}=t.capabilities.tasks;this._capabilities.tasks=a}this.setRequestHandler(`initialize`,e=>this._oninitialize(e)),this.setNotificationHandler(`notifications/initialized`,()=>this.oninitialized?.()),this._capabilities.logging&&this._registerLoggingHandler()}_registerLoggingHandler(){this.setRequestHandler(`logging/setLevel`,async(e,t)=>{let n=t.sessionId||t.http?.req?.headers.get(`mcp-session-id`)||void 0,{level:r}=e.params,i=Dd(gm,r);return i.success&&this._loggingLevels.set(n,i.data),{}})}buildContext(e,t){let n=e.http||t?.request||t?.closeSSEStream||t?.closeStandaloneSSEStream;return{...e,mcpReq:{...e.mcpReq,log:(e,t,n)=>this.sendLoggingMessage({level:e,data:t,logger:n}),elicitInput:(e,t)=>this.elicitInput(e,t),requestSampling:(e,t)=>this.createMessage(e,t)},http:n?{...e.http,req:t?.request,closeSSE:t?.closeSSEStream,closeStandaloneSSE:t?.closeStandaloneSSEStream}:void 0}}get experimental(){return this._experimental||={tasks:new b_(this)},this._experimental}_loggingLevels=new Map;LOG_LEVEL_SEVERITY=new Map(gm.options.map((e,t)=>[e,t]));isMessageIgnored=(e,t)=>{let n=this._loggingLevels.get(t);return n?this.LOG_LEVEL_SEVERITY.get(e)<this.LOG_LEVEL_SEVERITY.get(n):!1};registerCapabilities(e){if(this.transport)throw new U(H.AlreadyConnected,`Cannot register capabilities after connecting to transport`);let t=!!this._capabilities.logging;this._capabilities=jd(this._capabilities,e),!t&&this._capabilities.logging&&this._registerLoggingHandler()}setRequestHandler(e,t){return e===`tools/call`?super.setRequestHandler(e,async(e,n)=>{let r=Dd(mm,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new G(W.InvalidParams,`Invalid tools/call request: ${e}`)}let{params:i}=r.data,a=await Promise.resolve(t(e,n));if(i.task){let e=Dd(dp,a);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new G(W.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let o=Dd(fm,a);if(!o.success){let e=o.error instanceof Error?o.error.message:String(o.error);throw new G(W.InvalidParams,`Invalid tools/call result: ${e}`)}return o.data}):super.setRequestHandler(e,t)}assertCapabilityForMethod(e){switch(e){case`sampling/createMessage`:if(!this._clientCapabilities?.sampling)throw new U(H.CapabilityNotSupported,`Client does not support sampling (required for ${e})`);break;case`elicitation/create`:if(!this._clientCapabilities?.elicitation)throw new U(H.CapabilityNotSupported,`Client does not support elicitation (required for ${e})`);break;case`roots/list`:if(!this._clientCapabilities?.roots)throw new U(H.CapabilityNotSupported,`Client does not support listing roots (required for ${e})`)}}assertNotificationCapability(e){switch(e){case`notifications/message`:if(!this._capabilities.logging)throw new U(H.CapabilityNotSupported,`Server does not support logging (required for ${e})`);break;case`notifications/resources/updated`:case`notifications/resources/list_changed`:if(!this._capabilities.resources)throw new U(H.CapabilityNotSupported,`Server does not support notifying about resources (required for ${e})`);break;case`notifications/tools/list_changed`:if(!this._capabilities.tools)throw new U(H.CapabilityNotSupported,`Server does not support notifying of tool list changes (required for ${e})`);break;case`notifications/prompts/list_changed`:if(!this._capabilities.prompts)throw new U(H.CapabilityNotSupported,`Server does not support notifying of prompt list changes (required for ${e})`);break;case`notifications/elicitation/complete`:if(!this._clientCapabilities?.elicitation?.url)throw new U(H.CapabilityNotSupported,`Client does not support URL elicitation (required for ${e})`)}}assertRequestHandlerCapability(e){switch(e){case`completion/complete`:if(!this._capabilities.completions)throw new U(H.CapabilityNotSupported,`Server does not support completions (required for ${e})`);break;case`logging/setLevel`:if(!this._capabilities.logging)throw new U(H.CapabilityNotSupported,`Server does not support logging (required for ${e})`);break;case`prompts/get`:case`prompts/list`:if(!this._capabilities.prompts)throw new U(H.CapabilityNotSupported,`Server does not support prompts (required for ${e})`);break;case`resources/list`:case`resources/templates/list`:case`resources/read`:if(!this._capabilities.resources)throw new U(H.CapabilityNotSupported,`Server does not support resources (required for ${e})`);break;case`tools/call`:case`tools/list`:if(!this._capabilities.tools)throw new U(H.CapabilityNotSupported,`Server does not support tools (required for ${e})`)}}assertTaskCapability(e){a_(this._clientCapabilities?.tasks?.requests,e,`Client`)}assertTaskHandlerCapability(e){i_(this._capabilities?.tasks?.requests,e,`Server`)}async _oninitialize(e){let t=e.params.protocolVersion;this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo;let n=this._supportedProtocolVersions.includes(t)?t:this._supportedProtocolVersions[0]??`2025-11-25`;return this.transport?.setProtocolVersion?.(n),{protocolVersion:n,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._requestWithSchema({method:`ping`},zf)}async createMessage(e,t){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new U(H.CapabilityNotSupported,`Client does not support sampling tools capability.`);if(e.messages.length>0){let t=e.messages.at(-1),n=Array.isArray(t.content)?t.content:[t.content],r=n.some(e=>e.type===`tool_result`),i=e.messages.length>1?e.messages.at(-2):void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],o=a.some(e=>e.type===`tool_use`);if(r){if(n.some(e=>e.type!==`tool_result`))throw new G(W.InvalidParams,`The last message must contain only tool_result content if any is present`);if(!o)throw new G(W.InvalidParams,`tool_result blocks are not matching any tool_use from the previous message`)}if(o){let e=new Set(a.filter(e=>e.type===`tool_use`).map(e=>e.id)),t=new Set(n.filter(e=>e.type===`tool_result`).map(e=>e.toolUseId));if(e.size!==t.size||![...e].every(e=>t.has(e)))throw new G(W.InvalidParams,`ids of tool_result blocks and tool_use blocks from previous message do not match`)}}return e.tools?this._requestWithSchema({method:`sampling/createMessage`,params:e},jm,t):this._requestWithSchema({method:`sampling/createMessage`,params:e},Am,t)}async elicitInput(e,t){switch(e.mode??`form`){case`url`:{if(!this._clientCapabilities?.elicitation?.url)throw new U(H.CapabilityNotSupported,`Client does not support url elicitation.`);let n=e;return this._requestWithSchema({method:`elicitation/create`,params:n},Xm,t)}case`form`:{if(!this._clientCapabilities?.elicitation?.form)throw new U(H.CapabilityNotSupported,`Client does not support form elicitation.`);let n=e.mode===`form`?e:{...e,mode:`form`},r=await this._requestWithSchema({method:`elicitation/create`,params:n},Xm,t);if(r.action===`accept`&&r.content&&n.requestedSchema)try{let e=this._jsonSchemaValidator.getValidator(n.requestedSchema)(r.content);if(!e.valid)throw new G(W.InvalidParams,`Elicitation response content does not match requested schema: ${e.errorMessage}`)}catch(e){throw e instanceof G?e:new G(W.InternalError,`Error validating elicitation response: ${e instanceof Error?e.message:String(e)}`)}return r}}}createElicitationCompletionNotifier(e,t){if(!this._clientCapabilities?.elicitation?.url)throw new U(H.CapabilityNotSupported,`Client does not support URL elicitation (required for notifications/elicitation/complete)`);return()=>this.notification({method:`notifications/elicitation/complete`,params:{elicitationId:e}},t)}async listRoots(e,t){return this._requestWithSchema({method:`roots/list`,params:e},ih,t)}async sendLoggingMessage(e,t){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,t))return this.notification({method:`notifications/message`,params:e})}async sendResourceUpdated(e){return this.notification({method:`notifications/resources/updated`,params:e})}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`})}},S_=class{server;_registeredResources={};_registeredResourceTemplates={};_registeredTools={};_registeredPrompts={};_experimental;constructor(e,t){this.server=new x_(e,t)}get experimental(){return this._experimental||={tasks:new y_(this)},this._experimental}async connect(e){return await this.server.connect(e)}async close(){await this.server.close()}_toolHandlersInitialized=!1;setToolRequestHandlers(){this._toolHandlersInitialized||=(this.server.assertCanSetRequestHandler(`tools/list`),this.server.assertCanSetRequestHandler(`tools/call`),this.server.registerCapabilities({tools:{listChanged:this.server.getCapabilities().tools?.listChanged??!0}}),this.server.setRequestHandler(`tools/list`,()=>({tools:Object.entries(this._registeredTools).filter(([,e])=>e.enabled).map(([e,t])=>{let n={name:e,title:t.title,description:t.description,inputSchema:t.inputSchema?Vd(t.inputSchema,`input`):w_,annotations:t.annotations,execution:t.execution,_meta:t._meta};return t.outputSchema&&(n.outputSchema=Vd(t.outputSchema,`output`)),n})})),this.server.setRequestHandler(`tools/call`,async(e,t)=>{let n=this._registeredTools[e.params.name];if(!n)throw new G(W.InvalidParams,`Tool ${e.params.name} not found`);if(!n.enabled)throw new G(W.InvalidParams,`Tool ${e.params.name} disabled`);try{let r=!!e.params.task,i=n.execution?.taskSupport,a=`createTask`in n.handler;if((i===`required`||i===`optional`)&&!a)throw new G(W.InternalError,`Tool ${e.params.name} has taskSupport '${i}' but was not registered with registerToolTask`);if(i===`required`&&!r)throw new G(W.MethodNotFound,`Tool ${e.params.name} requires task augmentation (taskSupport: 'required')`);if(i===`optional`&&!r&&a)return await this.handleAutomaticTaskPolling(n,e,t);let o=await this.validateToolInput(n,e.params.arguments,e.params.name),s=await this.executeToolHandler(n,o,t);return r||await this.validateToolOutput(n,s,e.params.name),s}catch(e){if(e instanceof G&&e.code===W.UrlElicitationRequired)throw e;return this.createToolError(e instanceof Error?e.message:String(e))}}),!0)}createToolError(e){return{content:[{type:`text`,text:e}],isError:!0}}async validateToolInput(e,t,n){if(!e.inputSchema)return;let r=await Ud(e.inputSchema,t??{});if(!r.success)throw new G(W.InvalidParams,`Input validation error: Invalid arguments for tool ${n}: ${r.error}`);return r.data}async validateToolOutput(e,t,n){if(!e.outputSchema||!(`content`in t)||t.isError)return;if(!t.structuredContent)throw new G(W.InvalidParams,`Output validation error: Tool ${n} has an output schema but no structured content was provided`);let r=await Ud(e.outputSchema,t.structuredContent);if(!r.success)throw new G(W.InvalidParams,`Output validation error: Invalid structured content for tool ${n}: ${r.error}`)}async executeToolHandler(e,t,n){return e.executor(t,n)}async handleAutomaticTaskPolling(e,t,n){if(!n.task?.store)throw Error(`No task store provided for task-capable tool.`);let r=await this.validateToolInput(e,t.params.arguments,t.params.name),i=await e.executor(r,n),a=i.task.taskId,o=i.task,s=o.pollInterval??5e3;for(;o.status!==`completed`&&o.status!==`failed`&&o.status!==`cancelled`;){await new Promise(e=>setTimeout(e,s));let e=await n.task.store.getTask(a);if(!e)throw new G(W.InternalError,`Task ${a} not found during polling`);o=e}return await n.task.store.getTaskResult(a)}_completionHandlerInitialized=!1;setCompletionRequestHandler(){this._completionHandlerInitialized||=(this.server.assertCanSetRequestHandler(`completion/complete`),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(`completion/complete`,async e=>{switch(e.params.ref.type){case`ref/prompt`:return Td(e),this.handlePromptCompletion(e,e.params.ref);case`ref/resource`:return Ed(e),this.handleResourceCompletion(e,e.params.ref);default:throw new G(W.InvalidParams,`Invalid completion reference: ${e.params.ref}`)}}),!0)}async handlePromptCompletion(e,t){let n=this._registeredPrompts[t.name];if(!n)throw new G(W.InvalidParams,`Prompt ${t.name} not found`);if(!n.enabled)throw new G(W.InvalidParams,`Prompt ${t.name} disabled`);if(!n.argsSchema)return T_;let r=d_(l_(n.argsSchema)?.[e.params.argument.name]);if(!n_(r))return T_;let i=r_(r);return i?c_(await i(e.params.argument.value,e.params.context)):T_}async handleResourceCompletion(e,t){let n=Object.values(this._registeredResourceTemplates).find(e=>e.resourceTemplate.uriTemplate.toString()===t.uri);if(!n){if(this._registeredResources[t.uri])return T_;throw new G(W.InvalidParams,`Resource template ${e.params.ref.uri} not found`)}let r=n.resourceTemplate.completeCallback(e.params.argument.name);return r?c_(await r(e.params.argument.value,e.params.context)):T_}_resourceHandlersInitialized=!1;setResourceRequestHandlers(){this._resourceHandlersInitialized||=(this.server.assertCanSetRequestHandler(`resources/list`),this.server.assertCanSetRequestHandler(`resources/templates/list`),this.server.assertCanSetRequestHandler(`resources/read`),this.server.registerCapabilities({resources:{listChanged:this.server.getCapabilities().resources?.listChanged??!0}}),this.server.setRequestHandler(`resources/list`,async(e,t)=>{let n=Object.entries(this._registeredResources).filter(([e,t])=>t.enabled).map(([e,t])=>({uri:e,name:t.name,...t.metadata})),r=[];for(let e of Object.values(this._registeredResourceTemplates)){if(!e.resourceTemplate.listCallback)continue;let n=await e.resourceTemplate.listCallback(t);for(let t of n.resources)r.push({...e.metadata,...t})}return{resources:[...n,...r]}}),this.server.setRequestHandler(`resources/templates/list`,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([e,t])=>({name:e,uriTemplate:t.resourceTemplate.uriTemplate.toString(),...t.metadata}))})),this.server.setRequestHandler(`resources/read`,async(e,t)=>{let n=new URL(e.params.uri),r=this._registeredResources[n.toString()];if(r){if(!r.enabled)throw new G(W.InvalidParams,`Resource ${n} disabled`);return r.readCallback(n,t)}for(let e of Object.values(this._registeredResourceTemplates)){let r=e.resourceTemplate.uriTemplate.match(n.toString());if(r)return e.readCallback(n,r,t)}throw new G(W.ResourceNotFound,`Resource ${n} not found`)}),!0)}_promptHandlersInitialized=!1;setPromptRequestHandlers(){this._promptHandlersInitialized||=(this.server.assertCanSetRequestHandler(`prompts/list`),this.server.assertCanSetRequestHandler(`prompts/get`),this.server.registerCapabilities({prompts:{listChanged:this.server.getCapabilities().prompts?.listChanged??!0}}),this.server.setRequestHandler(`prompts/list`,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,e])=>e.enabled).map(([e,t])=>({name:e,title:t.title,description:t.description,arguments:t.argsSchema?Wd(t.argsSchema):void 0,_meta:t._meta}))})),this.server.setRequestHandler(`prompts/get`,async(e,t)=>{let n=this._registeredPrompts[e.params.name];if(!n)throw new G(W.InvalidParams,`Prompt ${e.params.name} not found`);if(!n.enabled)throw new G(W.InvalidParams,`Prompt ${e.params.name} disabled`);return n.handler(e.params.arguments,t)}),!0)}registerResource(e,t,n,r){if(typeof t==`string`){if(this._registeredResources[t])throw Error(`Resource ${t} is already registered`);let i=this._createRegisteredResource(e,n.title,t,n,r);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}{if(this._registeredResourceTemplates[e])throw Error(`Resource template ${e} is already registered`);let i=this._createRegisteredResourceTemplate(e,n.title,t,n,r);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}}_createRegisteredResource(e,t,n,r,i){let a={name:e,title:t,metadata:r,readCallback:i,enabled:!0,disable:()=>a.update({enabled:!1}),enable:()=>a.update({enabled:!0}),remove:()=>a.update({uri:null}),update:e=>{e.uri!==void 0&&e.uri!==n&&(delete this._registeredResources[n],e.uri&&(this._registeredResources[e.uri]=a)),e.name!==void 0&&(a.name=e.name),e.title!==void 0&&(a.title=e.title),e.metadata!==void 0&&(a.metadata=e.metadata),e.callback!==void 0&&(a.readCallback=e.callback),e.enabled!==void 0&&(a.enabled=e.enabled),this.sendResourceListChanged()}};return this._registeredResources[n]=a,a}_createRegisteredResourceTemplate(e,t,n,r,i){let a={resourceTemplate:n,title:t,metadata:r,readCallback:i,enabled:!0,disable:()=>a.update({enabled:!1}),enable:()=>a.update({enabled:!0}),remove:()=>a.update({name:null}),update:t=>{t.name!==void 0&&t.name!==e&&(delete this._registeredResourceTemplates[e],t.name&&(this._registeredResourceTemplates[t.name]=a)),t.title!==void 0&&(a.title=t.title),t.template!==void 0&&(a.resourceTemplate=t.template),t.metadata!==void 0&&(a.metadata=t.metadata),t.callback!==void 0&&(a.readCallback=t.callback),t.enabled!==void 0&&(a.enabled=t.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[e]=a;let o=n.uriTemplate.variableNames;return Array.isArray(o)&&o.some(e=>!!n.completeCallback(e))&&this.setCompletionRequestHandler(),a}_createRegisteredPrompt(e,t,n,r,i,a){let o=r,s=i,c={title:t,description:n,argsSchema:r,_meta:a,handler:s_(e,r,i),enabled:!0,disable:()=>c.update({enabled:!1}),enable:()=>c.update({enabled:!0}),remove:()=>c.update({name:null}),update:t=>{t.name!==void 0&&t.name!==e&&(delete this._registeredPrompts[e],t.name&&(this._registeredPrompts[t.name]=c)),t.title!==void 0&&(c.title=t.title),t.description!==void 0&&(c.description=t.description),t._meta!==void 0&&(c._meta=t._meta);let n=!1;t.argsSchema!==void 0&&(c.argsSchema=t.argsSchema,o=t.argsSchema,n=!0),t.callback!==void 0&&(s=t.callback,n=!0),n&&(c.handler=s_(e,o,s)),t.enabled!==void 0&&(c.enabled=t.enabled),this.sendPromptListChanged()}};if(this._registeredPrompts[e]=c,r){let e=l_(r);e&&Object.values(e).some(e=>n_(d_(e)))&&this.setCompletionRequestHandler()}return c}_createRegisteredTool(e,t,n,r,i,a,o,s,c){Rd(e);let l=c,u={title:t,description:n,inputSchema:r,outputSchema:i,annotations:a,execution:o,_meta:s,handler:c,executor:o_(r,c),enabled:!0,disable:()=>u.update({enabled:!1}),enable:()=>u.update({enabled:!0}),remove:()=>u.update({name:null}),update:t=>{t.name!==void 0&&t.name!==e&&(typeof t.name==`string`&&Rd(t.name),delete this._registeredTools[e],t.name&&(this._registeredTools[t.name]=u)),t.title!==void 0&&(u.title=t.title),t.description!==void 0&&(u.description=t.description);let n=!1;t.paramsSchema!==void 0&&(u.inputSchema=t.paramsSchema,n=!0),t.callback!==void 0&&(u.handler=t.callback,l=t.callback,n=!0),n&&(u.executor=o_(u.inputSchema,l)),t.outputSchema!==void 0&&(u.outputSchema=t.outputSchema),t.annotations!==void 0&&(u.annotations=t.annotations),t._meta!==void 0&&(u._meta=t._meta),t.enabled!==void 0&&(u.enabled=t.enabled),this.sendToolListChanged()}};return this._registeredTools[e]=u,this.setToolRequestHandlers(),this.sendToolListChanged(),u}registerTool(e,t,n){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let{title:r,description:i,inputSchema:a,outputSchema:o,annotations:s,_meta:c}=t;return this._createRegisteredTool(e,r,i,a,o,s,{taskSupport:`forbidden`},c,n)}registerPrompt(e,t,n){if(this._registeredPrompts[e])throw Error(`Prompt ${e} is already registered`);let{title:r,description:i,argsSchema:a,_meta:o}=t,s=this._createRegisteredPrompt(e,r,i,a,n,o);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),s}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(e,t){return this.server.sendLoggingMessage(e,t)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}},C_=class{_uriTemplate;constructor(e,t){this._callbacks=t,this._uriTemplate=typeof e==`string`?new Ah(e):e}get uriTemplate(){return this._uriTemplate}get listCallback(){return this._callbacks.list}completeCallback(e){return this._callbacks.complete?.[e]}},w_={type:`object`,properties:{}},T_={completion:{values:[],hasMore:!1}},E_=class{_readBuffer=new wh;_started=!1;_closed=!1;constructor(e=Qg.stdin,t=Qg.stdout){this._stdin=e,this._stdout=t}onclose;onerror;onmessage;_ondata=e=>{this._readBuffer.append(e),this.processReadBuffer()};_onerror=e=>{this.onerror?.(e)};_onstdouterror=e=>{this.onerror?.(e),this.close().catch(()=>{})};async start(){if(this._started)throw 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),this._stdout.on(`error`,this._onstdouterror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._closed||(this._closed=!0,this._stdin.off(`data`,this._ondata),this._stdin.off(`error`,this._onerror),this._stdout.off(`error`,this._onstdouterror),this._stdin.listenerCount(`data`)===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.())}send(e){return this._closed?Promise.reject(Error(`StdioServerTransport is closed`)):new Promise((t,n)=>{let r=Fd(e),i=!1,a=e=>{i||(i=!0,this._stdout.off(`error`,a),this._stdout.off(`drain`,o),n(e))},o=()=>{i||(i=!0,this._stdout.off(`error`,a),this._stdout.off(`drain`,o),t())};if(this._stdout.once(`error`,a),this._stdout.write(r)){if(i)return;i=!0,this._stdout.off(`error`,a),t()}else i||this._stdout.once(`drain`,o)})}},D_=class{sessionIdGenerator;_started=!1;_streamMapping=new Map;_requestToStreamMapping=new Map;_requestResponseMap=new Map;_initialized=!1;_enableJsonResponse=!1;_standaloneSseStreamId=`_GET_stream`;_eventStore;_onsessioninitialized;_onsessionclosed;_allowedHosts;_allowedOrigins;_enableDnsRebindingProtection;_retryInterval;_supportedProtocolVersions;sessionId;onclose;onerror;onmessage;constructor(e={}){this.sessionIdGenerator=e.sessionIdGenerator,this._enableJsonResponse=e.enableJsonResponse??!1,this._eventStore=e.eventStore,this._onsessioninitialized=e.onsessioninitialized,this._onsessionclosed=e.onsessionclosed,this._allowedHosts=e.allowedHosts,this._allowedOrigins=e.allowedOrigins,this._enableDnsRebindingProtection=e.enableDnsRebindingProtection??!1,this._retryInterval=e.retryInterval,this._supportedProtocolVersions=e.supportedProtocolVersions??ff}async start(){if(this._started)throw Error(`Transport already started`);this._started=!0}setSupportedProtocolVersions(e){this._supportedProtocolVersions=e}createJsonErrorResponse(e,t,n,r){let i={code:t,message:n};return r?.data!==void 0&&(i.data=r.data),Response.json({jsonrpc:`2.0`,error:i,id:null},{status:e,headers:{"Content-Type":`application/json`,...r?.headers}})}validateRequestHeaders(e){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let t=e.headers.get(`host`);if(!t||!this._allowedHosts.includes(t)){let e=`Invalid Host header: ${t}`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(403,-32e3,e)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let t=e.headers.get(`origin`);if(t&&!this._allowedOrigins.includes(t)){let e=`Invalid Origin header: ${t}`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(403,-32e3,e)}}}}async handleRequest(e,t){let n=this.validateRequestHeaders(e);if(n)return n;switch(e.method){case`POST`:return this.handlePostRequest(e,t);case`GET`:return this.handleGetRequest(e);case`DELETE`:return this.handleDeleteRequest(e);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(e,t,n,r){if(!this._eventStore||r<`2025-11-25`)return;let i=await this._eventStore.storeEvent(n,{}),a=`id: ${i}\ndata: \n\n`;this._retryInterval!==void 0&&(a=`id: ${i}\nretry: ${this._retryInterval}\ndata: \n\n`),e.enqueue(t.encode(a))}async handleGetRequest(e){if(!e.headers.get(`accept`)?.includes(`text/event-stream`))return this.onerror?.(Error(`Not Acceptable: Client must accept text/event-stream`)),this.createJsonErrorResponse(406,-32e3,`Not Acceptable: Client must accept text/event-stream`);let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);if(n)return n;if(this._eventStore){let t=e.headers.get(`last-event-id`);if(t)return this.replayEvents(t)}if(this._streamMapping.get(this._standaloneSseStreamId)!==void 0)return this.onerror?.(Error(`Conflict: Only one SSE stream is allowed per session`)),this.createJsonErrorResponse(409,-32e3,`Conflict: Only one SSE stream is allowed per session`);let r=new TextEncoder,i,a=new ReadableStream({start:e=>{i=e},cancel:()=>{this._streamMapping.delete(this._standaloneSseStreamId)}}),o={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`};return this.sessionId!==void 0&&(o[`mcp-session-id`]=this.sessionId),this._streamMapping.set(this._standaloneSseStreamId,{controller:i,encoder:r,cleanup:()=>{this._streamMapping.delete(this._standaloneSseStreamId);try{i.close()}catch{}}}),new Response(a,{headers:o})}async replayEvents(e){if(!this._eventStore)return this.onerror?.(Error(`Event store not configured`)),this.createJsonErrorResponse(400,-32e3,`Event store not configured`);try{let t;if(this._eventStore.getStreamIdForEventId){if(t=await this._eventStore.getStreamIdForEventId(e),!t)return this.onerror?.(Error(`Invalid event ID format`)),this.createJsonErrorResponse(400,-32e3,`Invalid event ID format`);if(this._streamMapping.get(t)!==void 0)return this.onerror?.(Error(`Conflict: Stream already has an active connection`)),this.createJsonErrorResponse(409,-32e3,`Conflict: Stream already has an active connection`)}let n={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`};this.sessionId!==void 0&&(n[`mcp-session-id`]=this.sessionId);let r=new TextEncoder,i,a=new ReadableStream({start:e=>{i=e},cancel:()=>{}}),o=await this._eventStore.replayEventsAfter(e,{send:async(e,t)=>{if(!this.writeSSEEvent(i,r,t,e))try{i.close()}catch{}}});return this._streamMapping.set(o,{controller:i,encoder:r,cleanup:()=>{this._streamMapping.delete(o);try{i.close()}catch{}}}),new Response(a,{headers:n})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(500,-32e3,`Error replaying events`)}}writeSSEEvent(e,t,n,r){try{let i=`event: message
184
- `;return r&&(i+=`id: ${r}\n`),i+=`data: ${JSON.stringify(n)}\n\n`,e.enqueue(t.encode(i)),!0}catch(e){return this.onerror?.(e),!1}}handleUnsupportedRequest(){return this.onerror?.(Error(`Method not allowed.`)),Response.json({jsonrpc:`2.0`,error:{code:-32e3,message:`Method not allowed.`},id:null},{status:405,headers:{Allow:`GET, POST, DELETE`,"Content-Type":`application/json`}})}async handlePostRequest(e,t){try{let n=e.headers.get(`accept`);if(!n?.includes(`application/json`)||!n.includes(`text/event-stream`))return this.onerror?.(Error(`Not Acceptable: Client must accept both application/json and text/event-stream`)),this.createJsonErrorResponse(406,-32e3,`Not Acceptable: Client must accept both application/json and text/event-stream`);let r=e.headers.get(`content-type`);if(!r||!r.includes(`application/json`))return this.onerror?.(Error(`Unsupported Media Type: Content-Type must be application/json`)),this.createJsonErrorResponse(415,-32e3,`Unsupported Media Type: Content-Type must be application/json`);let i=e,a;if(t?.parsedBody===void 0)try{a=await e.json()}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error: Invalid JSON`)}else a=t.parsedBody;let o;try{o=Array.isArray(a)?a.map(e=>Rf.parse(e)):[Rf.parse(a)]}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error: Invalid JSON-RPC message`)}let s=o.some(e=>vh(e));if(s){if(this._initialized&&this.sessionId!==void 0)return this.onerror?.(Error(`Invalid Request: Server already initialized`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Server already initialized`);if(o.length>1)return this.onerror?.(Error(`Invalid Request: Only one initialization request is allowed`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Only one initialization request is allowed`);this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!s){let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);if(n)return n}if(!o.some(e=>ph(e))){for(let e of o)this.onmessage?.(e,{authInfo:t?.authInfo,request:i});return new Response(null,{status:202})}let c=crypto.randomUUID(),l=o.find(e=>vh(e)),u=l?l.params.protocolVersion:e.headers.get(`mcp-protocol-version`)??`2025-03-26`;if(this._enableJsonResponse)return new Promise(e=>{this._streamMapping.set(c,{resolveJson:e,cleanup:()=>{this._streamMapping.delete(c)}});for(let e of o)ph(e)&&this._requestToStreamMapping.set(e.id,c);for(let e of o)this.onmessage?.(e,{authInfo:t?.authInfo,request:i})});let d=new TextEncoder,f,p=new ReadableStream({start:e=>{f=e},cancel:()=>{this._streamMapping.delete(c)}}),m={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`};this.sessionId!==void 0&&(m[`mcp-session-id`]=this.sessionId);for(let e of o)ph(e)&&(this._streamMapping.set(c,{controller:f,encoder:d,cleanup:()=>{this._streamMapping.delete(c);try{f.close()}catch{}}}),this._requestToStreamMapping.set(e.id,c));await this.writePrimingEvent(f,d,c,u);for(let e of o){let n,r;ph(e)&&this._eventStore&&u>=`2025-11-25`&&(n=()=>{this.closeSSEStream(e.id)},r=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(e,{authInfo:t?.authInfo,request:i,closeSSEStream:n,closeStandaloneSSEStream:r})}return new Response(p,{status:200,headers:m})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error`,{data:String(e)})}}async handleDeleteRequest(e){return this.validateSession(e)||this.validateProtocolVersion(e)||(await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200}))}validateSession(e){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.onerror?.(Error(`Bad Request: Server not initialized`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Server not initialized`);let t=e.headers.get(`mcp-session-id`);if(!t)return this.onerror?.(Error(`Bad Request: Mcp-Session-Id header is required`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Mcp-Session-Id header is required`);if(t!==this.sessionId)return this.onerror?.(Error(`Session not found`)),this.createJsonErrorResponse(404,-32001,`Session not found`)}validateProtocolVersion(e){let t=e.headers.get(`mcp-protocol-version`);if(t!==null&&!this._supportedProtocolVersions.includes(t)){let e=`Bad Request: Unsupported protocol version: ${t} (supported versions: ${this._supportedProtocolVersions.join(`, `)})`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(400,-32e3,e)}}async close(){for(let{cleanup:e}of this._streamMapping.values())e();this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(e){let t=this._requestToStreamMapping.get(e);if(!t)return;let n=this._streamMapping.get(t);n&&n.cleanup()}closeStandaloneSSEStream(){let e=this._streamMapping.get(this._standaloneSseStreamId);e&&e.cleanup()}async send(e,t){let n=t?.relatedRequestId;if((hh(e)||gh(e))&&(n=e.id),n===void 0){if(hh(e)||gh(e))throw Error(`Cannot send a response on a standalone SSE stream unless resuming a previous client request`);let t;this._eventStore&&(t=await this._eventStore.storeEvent(this._standaloneSseStreamId,e));let n=this._streamMapping.get(this._standaloneSseStreamId);if(n===void 0)return;n.controller&&n.encoder&&this.writeSSEEvent(n.controller,n.encoder,e,t);return}let r=this._requestToStreamMapping.get(n);if(!r)throw Error(`No connection established for request ID: ${String(n)}`);let i=this._streamMapping.get(r);if(!this._enableJsonResponse&&i?.controller&&i?.encoder){let t;this._eventStore&&(t=await this._eventStore.storeEvent(r,e)),this.writeSSEEvent(i.controller,i.encoder,e,t)}if(hh(e)||gh(e)){this._requestResponseMap.set(n,e);let t=[...this._requestToStreamMapping.entries()].filter(([e,t])=>t===r).map(([e])=>e);if(t.every(e=>this._requestResponseMap.has(e))){if(!i)throw Error(`No connection established for request ID: ${String(n)}`);if(this._enableJsonResponse&&i.resolveJson){let e={"Content-Type":`application/json`};this.sessionId!==void 0&&(e[`mcp-session-id`]=this.sessionId);let n=t.map(e=>this._requestResponseMap.get(e));n.length===1?i.resolveJson(Response.json(n[0],{status:200,headers:e})):i.resolveJson(Response.json(n,{status:200,headers:e}))}else i.cleanup();for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e)}}}}}));async function A_(e,t,n,r={}){let i=M_(),a=await Promise.resolve().then(()=>(k_(),e_)),{fromJsonSchema:o,McpServer:s}=a,c=await j_(a,i),l=new s({name:e,...r.title?{title:r.title}:void 0,version:t},r.instructions?{instructions:r.instructions}:void 0);P_(l,n,{env:r.env,fromJsonSchema:o,middlewares:r.middlewares,name:e,sendNotification:e=>l.server.notification(e),tools:r.tools,vars:r.vars,version:t});let u=new c(r.input??process.stdin,r.output??process.stdout);await l.connect(u)}async function j_(e,t){let n=e.StdioServerTransport;if(n)return n;let r=await t;if(r.error)throw r.error;return r.module.StdioServerTransport}function M_(){return Promise.resolve().then(()=>(k_(),e_)).then(e=>({module:e})).catch(e=>({error:e}))}async function N_(e,t,n={}){let r=[...n.middlewares??[],...e.middlewares??[],...e.command.middleware??[]],i=await zl(e.command,{agent:!0,argv:[],env:n.env,format:`json`,formatExplicit:!0,inputOptions:t,middlewares:r,name:n.name??e.name,parseMode:`flat`,path:e.name,request:n.request,vars:n.vars,version:n.version});if(`stream`in i){let e=[],t=n.extra?.mcpReq?._meta?.progressToken,r=0;try{for await(let a of i.stream)e.push(a),t!==void 0&&n.sendNotification&&await n.sendNotification({method:`notifications/progress`,params:{progressToken:t,progress:++r,message:jr(a)}})}catch(e){return{content:[{type:`text`,text:e instanceof Error?e.message:String(e)}],isError:!0}}return{content:[{type:`text`,text:jr(e)}]}}if(!i.ok){let t=uu(n.name??e.name,i.cta),r=i.error.fieldErrors?JSON.stringify(i.error):i.error.message??`Command failed`;return{content:[{type:`text`,text:t?`${r}\n\n${du(t)}`:r}],...t?{_meta:{cta:t}}:void 0,isError:!0}}let a=i.data??null,o=Mr(a),s=uu(n.name??e.name,i.cta),c=jr(o);return{content:[{type:`text`,text:s?`${c}\n\n${du(s)}`:c}],...a!==null&&e.outputSchema?{structuredContent:o}:void 0,...s?{_meta:{cta:s}}:void 0}}function P_(e,t,n){let r=U_(t,[],[],n.tools);if(r.length!==0){if((n.tools?.discovery??`progressive`)===`direct`){for(let t of r)F_(e,t,n);return}I_(e,r,n)}}function F_(e,t,n){let r={...t.command.args?.shape,...t.command.options?.shape},i=Object.keys(r).length>0;e.registerTool(t.name,{...t.description?{description:t.description}:void 0,...i?{inputSchema:d.object(r)}:void 0,...t.outputSchema?{outputSchema:n.fromJsonSchema(t.outputSchema)}:void 0,...t.annotations?{annotations:t.annotations}:void 0,...t.instructions?{_meta:{instructions:t.instructions}}:void 0},async(...e)=>N_(t,i?e[0]:{},L_(n,i?e[1]:e[0])))}function I_(e,t,n){let r=new Map(t.map(e=>[e.name,e]));e.registerTool(`search_tools`,{description:`Search or page through available tools by capability. Returns names and descriptions without loading their schemas. Inspect a result before calling it.`,inputSchema:d.object({limit:d.number().int().min(1).max(20).default(5).describe(`Maximum matches.`),offset:d.number().int().min(0).default(0).describe(`Matches to skip.`),query:d.string().default(``).describe(`Capability to find. Empty lists all tools.`)}),annotations:Q_},async e=>{let n=R_(t,e.query),r=n.slice(e.offset,e.offset+e.limit);return V_({tools:r.map(e=>({name:e.name,...e.description?{description:e.description}:void 0,...e.annotations?{annotations:e.annotations}:void 0})),...e.offset+r.length<n.length?{nextOffset:e.offset+r.length}:void 0})}),e.registerTool(`get_tool_details`,{description:`Inspect one tool returned by search_tools. Returns its complete input schema and metadata.`,inputSchema:d.object({name:d.string().min(1).describe(`Exact tool name.`)}),annotations:Q_},async e=>{let t=r.get(e.name);return t?V_({name:t.name,...t.description?{description:t.description}:void 0,inputSchema:t.inputSchema,...t.outputSchema?{outputSchema:t.outputSchema}:void 0,...t.annotations?{annotations:t.annotations}:void 0,...t.instructions?{instructions:t.instructions}:void 0}):H_(`Unknown tool: ${e.name}`)}),e.registerTool(`call_read_tool`,{description:`Execute a tool marked read-only after inspecting its schema with get_tool_details.`,inputSchema:Z_,annotations:$_},async(e,t)=>{let i=r.get(e.name);return i?i.annotations?.readOnlyHint===!0?N_(i,e.arguments,L_(n,t)):H_(`Tool is not read-only: ${e.name}`):H_(`Unknown tool: ${e.name}`)}),e.registerTool(`call_write_tool`,{description:`Execute a writable or unclassified tool after inspecting its schema with get_tool_details.`,inputSchema:Z_,annotations:ev},async(e,t)=>{let i=r.get(e.name);return i?i.annotations?.readOnlyHint===!0?H_(`Tool is read-only: ${e.name}`):N_(i,e.arguments,L_(n,t)):H_(`Unknown tool: ${e.name}`)})}function L_(e,t){return{env:e.env,extra:t,middlewares:e.middlewares,name:e.name,request:e.request?.(t),...e.sendNotification?{sendNotification:e.sendNotification}:void 0,vars:e.vars,version:e.version}}function R_(e,t){let n=B_(t),r=n.split(` `).filter(Boolean);return e.map(e=>({tool:e,score:z_(e,n,r)})).filter(({score:e})=>e>0).sort((e,t)=>t.score-e.score||e.tool.name.localeCompare(t.tool.name)).map(({tool:e})=>e)}function z_(e,t,n){let r=B_(e.name),i=B_(e.description??``);if(r===t)return 1e3;let a=r.startsWith(t)?100:r.includes(t)?50:0;for(let e of n)r.split(` `).includes(e)?a+=20:r.includes(e)&&(a+=10),i.includes(e)&&(a+=2);return a}function B_(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,` `).trim()}function V_(e){return{content:[{type:`text`,text:jr(e)}]}}function H_(e){return{...V_({error:e}),isError:!0}}function U_(e,t,n=[],r){let i=K_(W_(e,t,n),r);return J_(i),i.sort((e,t)=>e.name.localeCompare(t.name))}function W_(e,t,n=[]){let r=[];for(let[i,a]of e){if(`_alias`in a||a.mcp===!1)continue;let e=[...t,i];if(`_group`in a&&a._group){let t=[...n,...a.middlewares??[]];a.root&&a.root.mcp!==!1&&r.push(G_(a.root,e,t)),r.push(...W_(a.commands,e,t))}else r.push(G_(a,e,n))}return r}function G_(e,t,n){let r=e.mcp===!1?void 0:e.mcp,i=e.output?Y_(e.output):void 0;return{name:r?.name??t.join(`_`),description:r?.description??e.description,inputSchema:X_(e.args,e.options),...i?{outputSchema:i}:void 0,...r?.annotations?{annotations:r.annotations}:void 0,...r?.instructions?{instructions:r.instructions}:void 0,command:e,...n.length>0?{middlewares:n}:void 0}}function K_(e,t){if(!t)return e;let n=t.include?.map(q_),r=t.exclude?.map(q_)??[];return e.filter(e=>r.some(t=>t.test(e.name))?!1:!n||n.length===0||n.some(t=>t.test(e.name)))}function q_(e){let t=e.replace(/[|\\{}()[\]^$+?.]/g,`\\$&`).replace(/\*/g,`.*`);return RegExp(`^${t}$`)}function J_(e){let t=new Set;for(let n of e){if(t.has(n.name))throw Error(`Duplicate MCP tool name: ${n.name}`);t.add(n.name)}}function Y_(e){let t=Su(e);if(t.type===`object`)return t}function X_(e,t){let n={},r=[];for(let i of[e,t]){if(!i)continue;let e=Su(i);Object.assign(n,e.properties??{}),r.push(...e.required??[])}return r.length>0?{type:`object`,properties:n,required:r}:{type:`object`,properties:n}}var Z_,Q_,$_,ev,tv=L((()=>{Yl(),pu(),Nr(),Cu(),Z_=d.object({name:d.string().min(1).describe(`Exact tool name.`),arguments:d.record(d.string(),d.unknown()).default({}).describe(`Arguments from its schema.`)}),Q_={destructiveHint:!1,idempotentHint:!0,openWorldHint:!1,readOnlyHint:!0},$_={destructiveHint:!1,idempotentHint:!0,openWorldHint:!0,readOnlyHint:!0},ev={destructiveHint:!0,idempotentHint:!1,openWorldHint:!0,readOnlyHint:!1}}));function nv(e){return rv(e,e,new Map)}function rv(e,t,n){if(Array.isArray(e))return e.map(e=>rv(e,t,n));if(typeof e!=`object`||!e)return e;let r=e;if(typeof r.$ref==`string`&&r.$ref.startsWith(`#`)){let e=r.$ref;if(n.has(e))return n.get(e);let i=iv(t,e);if(typeof i!=`object`||!i||Array.isArray(i)){let r=rv(i,t,n);return n.set(e,r),r}let a={};n.set(e,a);let o=rv(i,t,n);return typeof o!=`object`||!o||Array.isArray(o)?(n.set(e,o),o):(Object.assign(a,o),a)}let i={};for(let e of Object.keys(r))i[e]=rv(r[e],t,n);return i}function iv(e,t){let n=t.slice(1);if(n===``||n===`/`)return e;let r=n.slice(1).split(`/`).map(e=>e.replace(/~1/g,`/`).replace(/~0/g,`~`)),i=e;for(let e of r){if(typeof i!=`object`||!i)throw Error(`Cannot resolve $ref "${t}": path segment "${e}" not found`);if(i=i[e],i===void 0)throw Error(`Cannot resolve $ref "${t}": "${e}" not found`)}return i}var av=L((()=>{}));function ov(e,t={}){let n=ux.get(e);if(!n)throw Error(`No commands registered on this CLI instance`);let r={},i=px.get(e);i&&lv(r,[],i);for(let[e,t]of n)sv(r,cv(e),t);return{openapi:`3.2.0`,info:{title:t.title??e.name,version:t.version??`0.0.0`,...t.description??e.description?{description:t.description??e.description}:void 0},...t.servers?{servers:t.servers}:void 0,paths:r}}function sv(e,t,n){if(!(`_alias`in n)&&!(`_fetch`in n)){if(`_group`in n){n.root&&lv(e,t,n.root);for(let[r,i]of n.commands)sv(e,[...t,...cv(r)],i);return}lv(e,t,n)}}function cv(e){return e.split(/\s+/).filter(Boolean)}function lv(e,t,n){let r=n.args?Su(n.args):void 0,i=n.options?Su(n.options):void 0,a=n.output?Su(n.output):void 0,o=_v(r),s=new Set(vv(r)),c=dv(t),l=uv(t,o,s);for(let r of l){let s=[];for(let e of r.args){let t=o[e]??{type:`string`};s.push({name:e,in:`path`,required:!0,schema:t})}if(c===`get`||c===`delete`)for(let[e,t]of Object.entries(_v(i)))s.push({name:e,in:`query`,...vv(i).includes(e)?{required:!0}:void 0,schema:t});let l={operationId:yv(t,c,r.args),...n.description?{summary:n.description}:void 0,...s.length?{parameters:s}:void 0,...pv(c,i),responses:mv(a)},u=e[r.path]??{};u[c]=l,e[r.path]=u}}function uv(e,t,n){let r=Object.keys(t),i=r.findIndex(e=>!n.has(e)),a=i===-1?r.length:i,o=[];for(let t=a;t<=r.length;t++){let n=r.slice(0,t),i=n.map(e=>`{${e}}`);o.push({args:n,path:`/${[...e,...i].map(bv).join(`/`)}`})}return o.length===0&&o.push({args:[],path:`/${e.map(bv).join(`/`)}`}),o}function dv(e){let t=e.map(fv).join(` `).toLowerCase();return/\b(delete|remove|rm|destroy|clear)\b/.test(t)?`delete`:/\b(update|edit|modify|set|enable|disable|rename|patch)\b/.test(t)?`patch`:/\b(get|list|show|read|search|find|status|describe|info|health|check)\b/.test(t)?`get`:`post`}function fv(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`)}function pv(e,t){return!t||e===`get`||e===`delete`?{}:{requestBody:{required:vv(t).length>0,content:{"application/json":{schema:t}}}}}function mv(e){return{200:{description:`Command completed successfully.`,content:{"application/json":{schema:{type:`object`,required:[`ok`,`data`,`meta`],properties:{ok:{const:!0},data:e??{},meta:gv()}}}}},400:hv(`Validation error.`),500:hv(`Command failed.`)}}function hv(e){return{description:e,content:{"application/json":{schema:{type:`object`,required:[`ok`,`error`,`meta`],properties:{ok:{const:!1},error:{type:`object`,required:[`code`,`message`],properties:{code:{type:`string`},message:{type:`string`},retryable:{type:`boolean`}}},meta:gv()}}}}}}function gv(){return{type:`object`,required:[`command`,`duration`],properties:{command:{type:`string`},duration:{type:`string`}}}}function _v(e){return e?.properties??{}}function vv(e){return e?.required??[]}function yv(e,t,n){return`${t}${[...e,...n.length?[n.join(` `)]:[]].join(` `).replace(/(?:^|[\s_-]+)(\w)/g,(e,t)=>t.toUpperCase())}`}function bv(e){return e.startsWith(`{`)&&e.endsWith(`}`)?e:encodeURIComponent(e)}async function xv(e,t={}){if(typeof e!=`string`&&!(e instanceof URL))return e;let n=await fetch(Sv(e,t.baseUrl));if(!n.ok)throw Error(`Failed to fetch OpenAPI spec from ${e}: ${n.status}`);return await n.json()}function Sv(e,t){if(e instanceof URL)return e;try{return new URL(e)}catch{if(t===void 0)throw Error(`Relative OpenAPI spec URL requires a fetch URL base: ${e}`);let n=new URL(t);return n.pathname.endsWith(`/`)||(n.pathname=`${n.pathname}/`),new URL(e,n)}}async function Cv(e,t,n={}){let r=nv(structuredClone(e)),i=new Map,a=Tv(r.paths??{}),o=Nv(a),{config:s}=n;s?.compact&&Ov(a);for(let{method:e,operation:c,path:l}of a){let a=Pv({method:e,mode:s?.mode??`operation`,namespaceInfo:o,operation:c,path:l}),u=e.toUpperCase(),f=(c.parameters??[]).filter(e=>e.in===`path`),p=(c.parameters??[]).filter(e=>e.in===`query`),m=jv([...(c.parameters??[]).filter(e=>e.in===`header`),...s?.security===!1?[]:Ev(r,c)]),h=c.requestBody?.content?.[`application/json`]?.schema,g=h?.properties??{},_=new Set(h?.required??[]),v;if(f.length>0){let e={};for(let t of f){let n=t.schema?Wv(t.schema):d.string();t.description&&(n=n.describe(t.description)),e[t.name]=Gv(n)}v=d.object(e)}let y={},b=new Set;for(let e of p){let t=e.schema?Wv(e.schema):d.string();e.required||(t=t.optional()),e.description&&(t=t.describe(e.description)),y[e.name]=Gv(t),b.add(e.name)}for(let[e,t]of Object.entries(g)){let n=Wv(t);_.has(e)||(n=n.optional()),y[e]=n,b.add(e)}for(let e of m){let t=Mv(e.optionName,b);e.optionName=t;let n=e.schema?Wv(e.schema):d.string();e.required||(n=n.optional()),n=n.describe(e.description??`${e.name} header`),y[t]=Gv(n),b.add(t)}let x=Object.keys(y).length>0?d.object(y):void 0;Vv(i,a,{description:c.summary??c.description,mcp:{annotations:wv(e),...c.summary&&c.description&&c.summary!==c.description?{description:`${c.summary}\n\n${c.description}`}:void 0},args:v,options:x,run:Uv({basePath:n.basePath,fetch:t,forwardHeaders:s?.forwardHeaders,httpMethod:u,path:l,headerParams:m,pathParams:f,queryParams:p,bodyProps:g})})}return i}function wv(e){let t=[`get`,`head`,`options`,`trace`].includes(e);return{destructiveHint:!t,idempotentHint:t||e===`delete`||e===`put`,openWorldHint:!0,readOnlyHint:t}}function Tv(e){let t=[];for(let[n,r]of Object.entries(e))for(let[e,i]of Object.entries(r))Kv.has(e)&&t.push({method:e,operation:i,path:n});return t}function Ev(e,t){let n=e.components?.securitySchemes??{},r=t.security??e.security??[],i=[];for(let e of r)for(let t of Object.keys(e)){let e=n[t],r=Dv(t,e);r&&i.push(r)}return i}function Dv(e,t){if(t){if(t.type===`apiKey`&&t.in===`header`&&t.name)return{description:t.description??`${t.name} header`,in:`header`,name:t.name,required:!1,schema:{type:`string`}};if(t.type===`http`&&qv.has(t.scheme?.toLowerCase()??``))return{description:t.description??`${e} authorization header`,in:`header`,name:`authorization`,required:!1,schema:{type:`string`}}}}function Ov(e){for(let{operation:t}of e){for(let e of t.parameters??[])e.schema&&=kv(e.schema);let e=t.requestBody?.content?.[`application/json`];e?.schema&&(e.schema=kv(e.schema))}}function kv(e,t=new Map){let n=t.get(e);if(n)return n;let r={...e};t.set(e,r),delete r.example,delete r.examples,typeof r.pattern==`string`&&r.pattern.length>Jv&&delete r.pattern,typeof r.format==`string`&&Yv.has(r.format)&&delete r.format;for(let e of[`allOf`,`anyOf`,`oneOf`,`prefixItems`]){if(!Array.isArray(r[e]))continue;let n=r[e].map(e=>kv(e,t)).filter(e=>Object.keys(e).length>0);n.length>0?r[e]=n:delete r[e]}for(let e of[`additionalProperties`,`contains`,`items`,`not`,`propertyNames`]){let n=r[e];Av(n)&&(r[e]=kv(n,t))}for(let e of[`$defs`,`patternProperties`,`properties`]){let n=r[e];if(!Av(n))continue;let i={};for(let[e,r]of Object.entries(n))i[e]=Av(r)?kv(r,t):r;r[e]=i}return r}function Av(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function jv(e){let t=new Set,n=[];for(let r of e){let e=r.name.toLowerCase();t.has(e)||(t.add(e),n.push({...r,optionName:e}))}return n}function Mv(e,t){if(!t.has(e))return e;let n=`header-${e}`;if(!t.has(n))return n;for(let e=2;;e++){let r=`${n}-${e}`;if(!t.has(r))return r}}function Nv(e){let t=new Map,n=new Set;for(let{path:r}of e){t.set(r,(t.get(r)??0)+1);let e=Iv(r);for(let t=1;t<e.length;t++)n.add(`/${e.slice(0,t).join(`/`)}`)}return{parentPaths:n,pathOperations:t}}function Pv(e){let{method:t,mode:n,namespaceInfo:r,operation:i,path:a}=e;if(n===`operation`)return[{name:i.operationId??`${t}_${a.replace(/[/{}]/g,`_`)}`}];let o=Fv(a,i),s=o.length===0||r.parentPaths.has(Lv(a))||(r.pathOperations.get(a)??0)>1,c=Bv(o,i.summary??i.description);return[...c.length>0?c:[{name:`root`}],...s?[{name:t}]:[]]}function Fv(e,t){return e.split(`/`).map(e=>Rv(e,t)).filter(zv)}function Iv(e){return Fv(e).map(e=>e.name)}function Lv(e){return`/${Iv(e).join(`/`)}`}function Rv(e,t){if(!e)return;let n=e.startsWith(`{`)&&e.endsWith(`}`)?e.slice(1,-1):e,r=t?.parameters?.find(e=>e.in===`path`&&e.name===n)?.description;return{...r?{description:r}:void 0,name:n.replace(/[^\w.-]+/g,`-`)}}function zv(e){return e!==void 0}function Bv(e,t){return!t||e.length===0?e:e.map((n,r)=>r===e.length-1&&!n.description?{...n,description:t}:n)}function Vv(e,t,n){let[r,...i]=t;if(r){if(i.length===0){e.set(r.name,n);return}Vv(Hv(e,r).commands,i,n)}}function Hv(e,t){let n=e.get(t.name);if(n&&`_group`in n)return!n.description&&t.description&&(n.description=t.description),n;let r={_group:!0,commands:new Map,...t.description?{description:t.description}:void 0};return e.set(t.name,r),r}function Uv(e){return async t=>{let{args:n={},options:r={}}=t,i=(e.basePath??``)+e.path;for(let t of e.pathParams){let e=n[t.name];e!==void 0&&(i=i.replace(`{${t.name}}`,String(e)))}let a=new URLSearchParams;for(let t of e.queryParams){let e=r[t.name];e!==void 0&&a.set(t.name,String(e))}let o,s=Object.keys(e.bodyProps);if(s.length>0){let e={};for(let t of s)r[t]!==void 0&&(e[t]=r[t]);Object.keys(e).length>0&&(o=JSON.stringify(e))}let c={path:i,method:e.httpMethod,headers:new Headers,body:o,query:a};for(let t of e.headerParams){let e=r[t.optionName];e!==void 0&&c.headers.set(t.name,String(e))}for(let n of e.forwardHeaders??[]){let e=t.request?.headers.get(n);!c.headers.has(n)&&e!=null&&c.headers.set(n,e)}o&&!c.headers.has(`content-type`)&&c.headers.set(`content-type`,`application/json`);let l=Sn(c),u=await Tn(await e.fetch(l));return u.ok?u.data:t.error({code:`HTTP_${u.status}`,message:typeof u.data==`object`&&u.data!==null&&`message`in u.data?String(u.data.message):typeof u.data==`string`?u.data:`HTTP ${u.status}`})}}function Wv(e){return d.fromJSONSchema(e)}function Gv(e){let t=e instanceof d.ZodOptional,n=t?e.unwrap():e,r=(()=>{if(n instanceof d.ZodNumber)return t?d.coerce.number().optional():d.coerce.number();if(n instanceof d.ZodBoolean)return t?d.coerce.boolean().optional():d.coerce.boolean();if(n instanceof d.ZodUnion){let e=n._zod?.def?.options;if(e?.some(e=>e instanceof d.ZodNumber))return t?d.coerce.number().optional():d.coerce.number();if(e?.some(e=>e instanceof d.ZodBoolean))return t?d.coerce.boolean().optional():d.coerce.boolean()}})();if(!r)return e;let i=e.description??n.description;return i?r.describe(i):r}var Kv,qv,Jv,Yv,Xv=L((()=>{bx(),On(),av(),Cu(),Kv=new Set([`delete`,`get`,`head`,`options`,`patch`,`post`,`put`,`trace`]),qv=new Set([`basic`,`bearer`]),Jv=100,Yv=new Set([`date`,`date-time`,`duration`,`time`])}));async function Zv(e,t={}){let n=ny(e);await ry(n,`initialize`,{protocolVersion:ly,capabilities:{},clientInfo:{name:`incur`,version:t.version??`1.0.0`}}),n.initialized=!0,await ry(n,`notifications/initialized`);let r=(await ry(n,`tools/list`)).tools??[];return $v(r)?{discovery:`progressive`,tools:await ey(n),session:n}:{tools:r,session:n}}function Qv(e){let t=new Map;for(let n of e.tools){let r=n.inputSchema?ay(n.inputSchema):void 0,i=oy(n.outputSchema);t.set(n.name,{description:n.description,...n.annotations?{mcp:{annotations:n.annotations}}:void 0,...r?{options:r}:void 0,...i?{output:i}:void 0,async run(t){let r={name:n.name,arguments:{...t.args,...t.options}},i=await ry(e.session,`tools/call`,e.discovery===`progressive`?{name:n.annotations?.readOnlyHint===!0?`call_read_tool`:`call_write_tool`,arguments:r}:r);return i.isError?t.error({code:`MCP_TOOL_ERROR`,message:sy(i)}):cy(i)}})}return t}function $v(e){if(e.length!==4)return!1;let t=new Set(e.map(e=>e.name));return t.has(`search_tools`)&&t.has(`get_tool_details`)&&t.has(`call_read_tool`)&&t.has(`call_write_tool`)}async function ey(e){let t=[],n=0;for(;n!==void 0;){let r=await ty(e,`search_tools`,{query:``,limit:20,offset:n});for(let n of r.tools??[]){if(!n.name)continue;let r=await ty(e,`get_tool_details`,{name:n.name});r.name&&t.push(r)}if(r.nextOffset!==void 0&&r.nextOffset<=n)throw Error(`MCP tool catalog returned a non-advancing offset`);n=r.nextOffset}return t}async function ty(e,t,n){let r=await ry(e,`tools/call`,{name:t,arguments:n});if(r.isError)throw Error(sy(r)||`MCP tool failed: ${t}`);return cy(r)}function ny(e){return typeof e==`string`||e instanceof URL?{url:new URL(e),fetch:globalThis.fetch.bind(globalThis)}:{url:new URL(e.url),fetch:e.fetch??globalThis.fetch.bind(globalThis),...e.headers?{headers:e.headers}:void 0}}async function ry(e,t,n){let r=t.startsWith(`notifications/`),i=r?void 0:crypto.randomUUID(),a=new Headers(e.headers);a.set(`content-type`,`application/json`),a.set(`accept`,`application/json, text/event-stream`),e.id&&a.set(`mcp-session-id`,e.id),e.initialized&&a.set(`MCP-Protocol-Version`,ly);let o=JSON.stringify({jsonrpc:`2.0`,...i?{id:i}:void 0,method:t,params:n}),s=await e.fetch(new Request(e.url,{method:`POST`,headers:a,body:o})),c=s.headers.get(`mcp-session-id`);if(c&&(e.id=c),!s.ok)throw Error(`MCP HTTP ${s.status}`);if(r&&s.status===202)return{};let l=await s.text();if(!l)return{};let u=(s.headers.get(`content-type`)??``).includes(`text/event-stream`)?iy(l,i):JSON.parse(l);if(u.error)throw Error(u.error.message??`MCP request failed`);return u.result??{}}function iy(e,t){for(let n of e.split(/\r?\n\r?\n/)){let e=n.split(/\r?\n/).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
185
- `);if(!e)continue;let r=JSON.parse(e);if(t===void 0||r.id===t)return r}throw Error(`MCP SSE response did not include the matching JSON-RPC message`)}function ay(e){let t=e.properties??{},n=new Set(e.required??[]),r={};for(let[e,i]of Object.entries(t)){let t=Wv(i);n.has(e)||(t=t.optional()),typeof i.description==`string`&&(t=t.describe(i.description)),r[e]=Gv(t)}return Object.keys(r).length>0?d.object(r):void 0}function oy(e){if(!(!e||e.type!==`object`))try{return d.fromJSONSchema(e)}catch{return}}function sy(e){return(Array.isArray(e.content)?e.content:[]).map(e=>e.type===`text`?e.text:``).filter(Boolean).join(`
186
- `)}function cy(e){if(e.structuredContent!==void 0)return e.structuredContent;let t=(Array.isArray(e.content)?e.content:[]).filter(e=>e.type===`text`).map(e=>e.text);if(t.length===1)try{return JSON.parse(t[0])}catch{return t[0]}return t}var ly,uy=L((()=>{Xv(),ly=`2025-06-18`}));function dy(e,t,n){let r=[`# ${e}`];n&&r.push(``,n),r.push(``),r.push(`| Command | Description |`),r.push(`|---------|-------------|`);for(let n of t){let t=fy(e,n),i=n.description??``;r.push(`| \`${t}\` | ${i} |`)}return r.push(``,`Run \`${e} --llms-full\` for full manifest. Run \`${e} <command> --schema\` for argument details.`),r.join(`
187
- `)}function fy(e,t){let n=t.name?`${e} ${t.name}`:e;if(!t.args)return n;let r=t.args.shape,i=Su(t.args),a=new Set(i.required??[]),o=i.properties;return`${n} ${Object.keys(r).map(e=>{let t=o?.[e]?.type===`array`?`${e}...`:e;return a.has(e)?`<${t}>`:`[${t}]`}).join(` `)}`}function py(e,t,n=new Map){if(!(n.size>0))return t.map(t=>gy(e,t)).join(`
183
+ deps: ${r}}`};let i={keyword:`dependencies`,type:`object`,schemaType:`object`,error:e.error,code(e){let[t,n]=a(e);o(e,t),s(e,n)}};function a({schema:e}){let t={},n={};for(let r in e){if(r===`__proto__`)continue;let i=Array.isArray(e[r])?t:n;i[r]=e[r]}return[t,n]}function o(e,n=e.schema){let{gen:i,data:a,it:o}=e;if(Object.keys(n).length===0)return;let s=i.let(`missing`);for(let c in n){let l=n[c];if(l.length===0)continue;let u=(0,r.propertyInData)(i,a,c,o.opts.ownProperties);e.setParams({property:c,depsCount:l.length,deps:l.join(`, `)}),o.allErrors?i.if(u,()=>{for(let t of l)(0,r.checkReportMissingProp)(e,t)}):(i.if((0,t._)`${u} && (${(0,r.checkMissingProp)(e,l,s)})`),(0,r.reportMissingProp)(e,s),i.else())}}e.validatePropertyDeps=o;function s(e,t=e.schema){let{gen:i,data:a,keyword:o,it:s}=e,c=i.name(`valid`);for(let l in t)(0,n.alwaysValidSchema)(s,t[l])||(i.if((0,r.propertyInData)(i,a,l,s.opts.ownProperties),()=>{let t=e.subschema({keyword:o,schemaProp:l},c);e.mergeValidEvaluated(t,c)},()=>i.var(c,!0)),e.ok(c))}e.validateSchemaDeps=s,e.default=i})),Dg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=G();e.default={keyword:`propertyNames`,type:`object`,schemaType:[`object`,`boolean`],error:{message:`property name must be valid`,params:({params:e})=>(0,t._)`{propertyName: ${e.propertyName}}`},code(e){let{gen:r,schema:i,data:a,it:o}=e;if((0,n.alwaysValidSchema)(o,i))return;let s=r.name(`valid`);r.forIn(`key`,a,n=>{e.setParams({propertyName:n}),e.subschema({keyword:`propertyNames`,data:n,dataTypes:[`string`],propertyName:n,compositeRule:!0},s),r.if((0,t.not)(s),()=>{e.error(!0),o.allErrors||r.break()})}),e.ok(s)}}})),Og=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Uh(),n=W(),r=Ih(),i=G();e.default={keyword:`additionalProperties`,type:[`object`],schemaType:[`boolean`,`object`],allowUndefined:!0,trackErrors:!0,error:{message:`must NOT have additional properties`,params:({params:e})=>(0,n._)`{additionalProperty: ${e.additionalProperty}}`},code(e){let{gen:a,schema:o,parentSchema:s,data:c,errsCount:l,it:u}=e;if(!l)throw Error(`ajv implementation error`);let{allErrors:d,opts:f}=u;if(u.props=!0,f.removeAdditional!==`all`&&(0,i.alwaysValidSchema)(u,o))return;let p=(0,t.allSchemaProperties)(s.properties),m=(0,t.allSchemaProperties)(s.patternProperties);h(),e.ok((0,n._)`${l} === ${r.default.errors}`);function h(){a.forIn(`key`,c,e=>{!p.length&&!m.length?v(e):a.if(g(e),()=>v(e))})}function g(r){let o;if(p.length>8){let e=(0,i.schemaRefOrVal)(u,s.properties,`properties`);o=(0,t.isOwnProperty)(a,e,r)}else o=p.length?(0,n.or)(...p.map(e=>(0,n._)`${r} === ${e}`)):n.nil;return m.length&&(o=(0,n.or)(o,...m.map(i=>(0,n._)`${(0,t.usePattern)(e,i)}.test(${r})`))),(0,n.not)(o)}function _(e){a.code((0,n._)`delete ${c}[${e}]`)}function v(t){if(f.removeAdditional===`all`||f.removeAdditional&&o===!1){_(t);return}if(o===!1){e.setParams({additionalProperty:t}),e.error(),d||a.break();return}if(typeof o==`object`&&!(0,i.alwaysValidSchema)(u,o)){let r=a.name(`valid`);f.removeAdditional===`failing`?(y(t,r,!1),a.if((0,n.not)(r),()=>{e.reset(),_(t)})):(y(t,r),d||a.if((0,n.not)(r),()=>a.break()))}}function y(t,n,r){let a={keyword:`additionalProperties`,dataProp:t,dataPropType:i.Type.Str};r===!1&&Object.assign(a,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(a,n)}}}})),kg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Yh(),n=Uh(),r=G(),i=Og();e.default={keyword:`properties`,type:`object`,schemaType:`object`,code(e){let{gen:a,schema:o,parentSchema:s,data:c,it:l}=e;l.opts.removeAdditional===`all`&&s.additionalProperties===void 0&&i.default.code(new t.KeywordCxt(l,i.default,`additionalProperties`));let u=(0,n.allSchemaProperties)(o);for(let e of u)l.definedProperties.add(e);l.opts.unevaluated&&u.length&&l.props!==!0&&(l.props=r.mergeEvaluated.props(a,(0,r.toHash)(u),l.props));let d=u.filter(e=>!(0,r.alwaysValidSchema)(l,o[e]));if(d.length===0)return;let f=a.name(`valid`);for(let t of d)p(t)?m(t):(a.if((0,n.propertyInData)(a,c,t,l.opts.ownProperties)),m(t),l.allErrors||a.else().var(f,!0),a.endIf()),e.it.definedProperties.add(t),e.ok(f);function p(e){return l.opts.useDefaults&&!l.compositeRule&&o[e].default!==void 0}function m(t){e.subschema({keyword:`properties`,schemaProp:t,dataProp:t},f)}}}})),Ag=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=Uh(),n=W(),r=G(),i=G();e.default={keyword:`patternProperties`,type:`object`,schemaType:`object`,code(e){let{gen:a,schema:o,data:s,parentSchema:c,it:l}=e,{opts:u}=l,d=(0,t.allSchemaProperties)(o),f=d.filter(e=>(0,r.alwaysValidSchema)(l,o[e]));if(d.length===0||f.length===d.length&&(!l.opts.unevaluated||l.props===!0))return;let p=u.strictSchema&&!u.allowMatchingProperties&&c.properties,m=a.name(`valid`);l.props!==!0&&!(l.props instanceof n.Name)&&(l.props=(0,i.evaluatedPropsToName)(a,l.props));let{props:h}=l;g();function g(){for(let e of d)p&&_(e),l.allErrors?v(e):(a.var(m,!0),v(e),a.if(m))}function _(e){for(let t in p)new RegExp(e).test(t)&&(0,r.checkStrictMode)(l,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function v(r){a.forIn(`key`,s,o=>{a.if((0,n._)`${(0,t.usePattern)(e,r)}.test(${o})`,()=>{let t=f.includes(r);t||e.subschema({keyword:`patternProperties`,schemaProp:r,dataProp:o,dataPropType:i.Type.Str},m),l.opts.unevaluated&&h!==!0?a.assign((0,n._)`${h}[${o}]`,!0):!t&&!l.allErrors&&a.if((0,n.not)(m),()=>a.break())})})}}}})),jg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=G();e.default={keyword:`not`,schemaType:[`object`,`boolean`],trackErrors:!0,code(e){let{gen:n,schema:r,it:i}=e;if((0,t.alwaysValidSchema)(i,r)){e.fail();return}let a=n.name(`valid`);e.subschema({keyword:`not`,compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:`must NOT be valid`}}})),Mg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={keyword:`anyOf`,schemaType:`array`,trackErrors:!0,code:Uh().validateUnion,error:{message:`must match a schema in anyOf`}}})),Ng=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=G();e.default={keyword:`oneOf`,schemaType:`array`,trackErrors:!0,error:{message:`must match exactly one schema in oneOf`,params:({params:e})=>(0,t._)`{passingSchemas: ${e.passing}}`},code(e){let{gen:r,schema:i,parentSchema:a,it:o}=e;if(!Array.isArray(i))throw Error(`ajv implementation error`);if(o.opts.discriminator&&a.discriminator)return;let s=i,c=r.let(`valid`,!1),l=r.let(`passing`,null),u=r.name(`_valid`);e.setParams({passing:l}),r.block(d),e.result(c,()=>e.reset(),()=>e.error(!0));function d(){s.forEach((i,a)=>{let s;(0,n.alwaysValidSchema)(o,i)?r.var(u,!0):s=e.subschema({keyword:`oneOf`,schemaProp:a,compositeRule:!0},u),a>0&&r.if((0,t._)`${u} && ${c}`).assign(c,!1).assign(l,(0,t._)`[${l}, ${a}]`).else(),r.if(u,()=>{r.assign(c,!0),r.assign(l,a),s&&e.mergeEvaluated(s,t.Name)})})}}}})),Pg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=G();e.default={keyword:`allOf`,schemaType:`array`,code(e){let{gen:n,schema:r,it:i}=e;if(!Array.isArray(r))throw Error(`ajv implementation error`);let a=n.name(`valid`);r.forEach((n,r)=>{if((0,t.alwaysValidSchema)(i,n))return;let o=e.subschema({keyword:`allOf`,schemaProp:r},a);e.ok(a),e.mergeEvaluated(o)})}}})),Fg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=G(),r={keyword:`if`,schemaType:[`object`,`boolean`],trackErrors:!0,error:{message:({params:e})=>(0,t.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,t._)`{failingKeyword: ${e.ifClause}}`},code(e){let{gen:r,parentSchema:a,it:o}=e;a.then===void 0&&a.else===void 0&&(0,n.checkStrictMode)(o,`"if" without "then" and "else" is ignored`);let s=i(o,`then`),c=i(o,`else`);if(!s&&!c)return;let l=r.let(`valid`,!0),u=r.name(`_valid`);if(d(),e.reset(),s&&c){let t=r.let(`ifClause`);e.setParams({ifClause:t}),r.if(u,f(`then`,t),f(`else`,t))}else s?r.if(u,f(`then`)):r.if((0,t.not)(u),f(`else`));e.pass(l,()=>e.error(!0));function d(){let t=e.subschema({keyword:`if`,compositeRule:!0,createErrors:!1,allErrors:!1},u);e.mergeEvaluated(t)}function f(n,i){return()=>{let a=e.subschema({keyword:n},u);r.assign(l,u),e.mergeValidEvaluated(a,l),i?r.assign(i,(0,t._)`${n}`):e.setParams({ifClause:n})}}}};function i(e,t){let r=e.schema[t];return r!==void 0&&!(0,n.alwaysValidSchema)(e,r)}e.default=r})),Ig=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=G();e.default={keyword:[`then`,`else`],schemaType:[`object`,`boolean`],code({keyword:e,parentSchema:n,it:r}){n.if===void 0&&(0,t.checkStrictMode)(r,`"${e}" without "if" is ignored`)}}})),Lg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=xg(),n=Cg(),r=Sg(),i=wg(),a=Tg(),o=Eg(),s=Dg(),c=Og(),l=kg(),u=Ag(),d=jg(),f=Mg(),p=Ng(),m=Pg(),h=Fg(),g=Ig();function _(e=!1){let _=[d.default,f.default,p.default,m.default,h.default,g.default,s.default,c.default,o.default,l.default,u.default];return e?_.push(n.default,i.default):_.push(t.default,r.default),_.push(a.default),_}e.default=_})),Rg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W();e.default={keyword:`format`,type:[`number`,`string`],schemaType:`string`,$data:!0,error:{message:({schemaCode:e})=>(0,t.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,t._)`{format: ${e}}`},code(e,n){let{gen:r,data:i,$data:a,schema:o,schemaCode:s,it:c}=e,{opts:l,errSchemaPath:u,schemaEnv:d,self:f}=c;if(!l.validateFormats)return;a?p():m();function p(){let a=r.scopeValue(`formats`,{ref:f.formats,code:l.code.formats}),o=r.const(`fDef`,(0,t._)`${a}[${s}]`),c=r.let(`fType`),u=r.let(`format`);r.if((0,t._)`typeof ${o} == "object" && !(${o} instanceof RegExp)`,()=>r.assign(c,(0,t._)`${o}.type || "string"`).assign(u,(0,t._)`${o}.validate`),()=>r.assign(c,(0,t._)`"string"`).assign(u,o)),e.fail$data((0,t.or)(p(),m()));function p(){return l.strictSchema===!1?t.nil:(0,t._)`${s} && !${u}`}function m(){let e=d.$async?(0,t._)`(${o}.async ? await ${u}(${i}) : ${u}(${i}))`:(0,t._)`${u}(${i})`,r=(0,t._)`(typeof ${u} == "function" ? ${e} : ${u}.test(${i}))`;return(0,t._)`${u} && ${u} !== true && ${c} === ${n} && !${r}`}}function m(){let a=f.formats[o];if(!a){m();return}if(a===!0)return;let[s,c,p]=h(a);s===n&&e.pass(g());function m(){if(l.strictSchema===!1){f.logger.warn(e());return}throw Error(e());function e(){return`unknown format "${o}" ignored in schema at path "${u}"`}}function h(e){let n=e instanceof RegExp?(0,t.regexpCode)(e):l.code.formats?(0,t._)`${l.code.formats}${(0,t.getProperty)(o)}`:void 0,i=r.scopeValue(`formats`,{key:o,ref:e,code:n});return typeof e==`object`&&!(e instanceof RegExp)?[e.type||`string`,e.validate,(0,t._)`${i}.validate`]:[`string`,e,i]}function g(){if(typeof a==`object`&&!(a instanceof RegExp)&&a.async){if(!d.$async)throw Error(`async format in sync schema`);return(0,t._)`await ${p}(${i})`}return typeof c==`function`?(0,t._)`${p}(${i})`:(0,t._)`${p}.test(${i})`}}}}})),zg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=[Rg().default]})),Bg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=[`title`,`description`,`default`,`deprecated`,`readOnly`,`writeOnly`,`examples`],e.contentVocabulary=[`contentMediaType`,`contentEncoding`,`contentSchema`]})),Vg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=sg(),n=bg(),r=Lg(),i=zg(),a=Bg();e.default=[t.default,n.default,(0,r.default)(),i.default,a.metadataVocabulary,a.contentVocabulary]})),Hg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(e){e.Tag=`tag`,e.Mapping=`mapping`})(t||(e.DiscrError=t={}))})),Ug=z((e=>{Object.defineProperty(e,"__esModule",{value:!0});let t=W(),n=Hg(),r=Qh(),i=Zh(),a=G();e.default={keyword:`discriminator`,type:`object`,schemaType:`object`,error:{message:({params:{discrError:e,tagName:t}})=>e===n.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:n,tagName:r}})=>(0,t._)`{error: ${e}, tag: ${r}, tagValue: ${n}}`},code(e){let{gen:o,data:s,schema:c,parentSchema:l,it:u}=e,{oneOf:d}=l;if(!u.opts.discriminator)throw Error(`discriminator: requires discriminator option`);let f=c.propertyName;if(typeof f!=`string`)throw Error(`discriminator: requires propertyName`);if(c.mapping)throw Error(`discriminator: mapping is not supported`);if(!d)throw Error(`discriminator: requires oneOf keyword`);let p=o.let(`valid`,!1),m=o.const(`tag`,(0,t._)`${s}${(0,t.getProperty)(f)}`);o.if((0,t._)`typeof ${m} == "string"`,()=>h(),()=>e.error(!1,{discrError:n.DiscrError.Tag,tag:m,tagName:f})),e.ok(p);function h(){let r=_();o.if(!1);for(let e in r)o.elseIf((0,t._)`${m} === ${e}`),o.assign(p,g(r[e]));o.else(),e.error(!1,{discrError:n.DiscrError.Mapping,tag:m,tagName:f}),o.endIf()}function g(n){let r=o.name(`valid`),i=e.subschema({keyword:`oneOf`,schemaProp:n},r);return e.mergeEvaluated(i,t.Name),r}function _(){let e={},t=o(l),n=!0;for(let e=0;e<d.length;e++){let c=d[e];if(c?.$ref&&!(0,a.schemaHasRulesButRef)(c,u.self.RULES)){let e=c.$ref;if(c=r.resolveRef.call(u.self,u.schemaEnv.root,u.baseId,e),c instanceof r.SchemaEnv&&(c=c.schema),c===void 0)throw new i.default(u.opts.uriResolver,u.baseId,e)}let l=c?.properties?.[f];if(typeof l!=`object`)throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${f}"`);n&&=t||o(c),s(l,e)}if(!n)throw Error(`discriminator: "${f}" must be required`);return e;function o({required:e}){return Array.isArray(e)&&e.includes(f)}function s(e,t){if(e.const)c(e.const,t);else if(e.enum)for(let n of e.enum)c(n,t);else throw Error(`discriminator: "properties/${f}" must have "const" or "enum"`)}function c(t,n){if(typeof t!=`string`||t in e)throw Error(`discriminator: "${f}" values must be unique strings`);e[t]=n}}}}})),Wg=z(((e,t)=>{t.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}})),Gg=z(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;let n=ig(),r=Vg(),i=Ug(),a=Wg(),o=[`/properties`],s=`http://json-schema.org/draft-07/schema`;var c=class extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(a,o):a;this.addMetaSchema(e,s,!1),this.refs[`http://json-schema.org/schema`]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}};e.Ajv=c,t.exports=e=c,t.exports.Ajv=c,Object.defineProperty(e,"__esModule",{value:!0}),e.default=c;var l=Yh();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=W();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var d=Xh();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return d.default}});var f=Zh();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return f.default}})})),Kg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t(e,t){return{validate:e,compare:t}}e.fullFormats={date:t(a,o),time:t(c(!0),l),"date-time":t(f(!0),p),"iso-time":t(c(),u),"iso-date-time":t(f(),m),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:_,"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:ee,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:y,int32:{type:`number`,validate:S},int64:{type:`number`,validate:C},float:{type:`number`,validate:w},double:{type:`number`,validate:w},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,l),"date-time":t(/^\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,p),"iso-time":t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,u),"iso-date-time":t(/^\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,m),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},e.formatNames=Object.keys(e.fullFormats);function n(e){return e%4==0&&(e%100!=0||e%400==0)}let r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function a(e){let t=r.exec(e);if(!t)return!1;let a=+t[1],o=+t[2],s=+t[3];return o>=1&&o<=12&&s>=1&&s<=(o===2&&n(a)?29:i[o])}function o(e,t){if(e&&t)return e>t?1:e<t?-1:0}let s=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function c(e){return function(t){let n=s.exec(t);if(!n)return!1;let r=+n[1],i=+n[2],a=+n[3],o=n[4],c=n[5]===`-`?-1:1,l=+(n[6]||0),u=+(n[7]||0);if(l>23||u>59||e&&!o)return!1;if(r<=23&&i<=59&&a<60)return!0;let d=i-u*c,f=r-l*c-+(d<0);return(f===23||f===-1)&&(d===59||d===-1)&&a<61}}function l(e,t){if(!(e&&t))return;let n=new Date(`2020-01-01T`+e).valueOf(),r=new Date(`2020-01-01T`+t).valueOf();if(n&&r)return n-r}function u(e,t){if(!(e&&t))return;let n=s.exec(e),r=s.exec(t);if(n&&r)return e=n[1]+n[2]+n[3],t=r[1]+r[2]+r[3],e>t?1:e<t?-1:0}let d=/t|\s/i;function f(e){let t=c(e);return function(e){let n=e.split(d);return n.length===2&&a(n[0])&&t(n[1])}}function p(e,t){if(!(e&&t))return;let n=new Date(e).valueOf(),r=new Date(t).valueOf();if(n&&r)return n-r}function m(e,t){if(!(e&&t))return;let[n,r]=e.split(d),[i,a]=t.split(d),s=o(n,i);if(s!==void 0)return s||l(r,a)}let h=/\/|:/,g=/^(?:[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 _(e){return h.test(e)&&g.test(e)}let v=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function y(e){return v.lastIndex=0,v.test(e)}let b=-(2**31),x=2**31-1;function S(e){return Number.isInteger(e)&&e<=x&&e>=b}function C(e){return Number.isInteger(e)}function w(){return!0}let T=/[^\\]\\Z/;function ee(e){if(T.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}})),qg=z((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;let t=Gg(),n=W(),r=n.operators,i={formatMaximum:{okStr:`<=`,ok:r.LTE,fail:r.GT},formatMinimum:{okStr:`>=`,ok:r.GTE,fail:r.LT},formatExclusiveMaximum:{okStr:`<`,ok:r.LT,fail:r.GTE},formatExclusiveMinimum:{okStr:`>`,ok:r.GT,fail:r.LTE}};e.formatLimitDefinition={keyword:Object.keys(i),type:`string`,schemaType:`string`,$data:!0,error:{message:({keyword:e,schemaCode:t})=>(0,n.str)`should be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,n._)`{comparison: ${i[e].okStr}, limit: ${t}}`},code(e){let{gen:r,data:a,schemaCode:o,keyword:s,it:c}=e,{opts:l,self:u}=c;if(!l.validateFormats)return;let d=new t.KeywordCxt(c,u.RULES.all.format.definition,`format`);d.$data?f():p();function f(){let t=r.scopeValue(`formats`,{ref:u.formats,code:l.code.formats}),i=r.const(`fmt`,(0,n._)`${t}[${d.schemaCode}]`);e.fail$data((0,n.or)((0,n._)`typeof ${i} != "object"`,(0,n._)`${i} instanceof RegExp`,(0,n._)`typeof ${i}.compare != "function"`,m(i)))}function p(){let t=d.schema,i=u.formats[t];if(!i||i===!0)return;if(typeof i!=`object`||i instanceof RegExp||typeof i.compare!=`function`)throw Error(`"${s}": format "${t}" does not define "compare" function`);let a=r.scopeValue(`formats`,{key:t,ref:i,code:l.code.formats?(0,n._)`${l.code.formats}${(0,n.getProperty)(t)}`:void 0});e.fail$data(m(a))}function m(e){return(0,n._)`${e}.compare(${a}, ${o}) ${i[s].fail} 0`}},dependencies:[`format`]},e.default=t=>(t.addKeyword(e.formatLimitDefinition),t)})),Jg=z(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});let n=Kg(),r=qg(),i=W(),a=new i.Name(`fullFormats`),o=new i.Name(`fastFormats`),s=(e,t={keywords:!0})=>{if(Array.isArray(t))return c(e,t,n.fullFormats,a),e;let[i,s]=t.mode===`fast`?[n.fastFormats,o]:[n.fullFormats,a];return c(e,t.formats||n.formatNames,i,s),t.keywords&&(0,r.default)(e),e};s.get=(e,t=`full`)=>{let r=(t===`fast`?n.fastFormats:n.fullFormats)[e];if(!r)throw Error(`Unknown format "${e}"`);return r};function c(e,t,n,r){var a;(a=e.opts.code).formats??(a.formats=(0,i._)`require("ajv-formats/dist/formats").${r}`);for(let r of t)e.addFormat(r,n[r])}t.exports=e=s,Object.defineProperty(e,"__esModule",{value:!0}),e.default=s})),Yg=Gg(),Xg=rf(Jg(),1),Zg=class{_ajv;constructor(e){this._ajv=e??Jd()}getValidator(e){let t=`$id`in e&&typeof e.$id==`string`?this._ajv.getSchema(e.$id)??this._ajv.compile(e):this._ajv.compile(e);return e=>t(e)?{valid:!0,data:e,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(t.errors)}}},Qg=class{shortcircuit;draft;constructor(e){this.shortcircuit=e?.shortcircuit??!0,this.draft=e?.draft??`2020-12`}getValidator(e){let t=new _d(e,this.draft,this.shortcircuit);return e=>{let n=t.validate(e);return n.valid?{valid:!0,data:e,errorMessage:void 0}:{valid:!1,data:void 0,errorMessage:n.errors.map(e=>`${e.instanceLocation}: ${e.error}`).join(`; `)}}}}}));function e_(){throw Error(`StdioServerTransport is not supported in this environment. Use StreamableHTTPServerTransport instead.`)}var t_,n_=F((()=>{$g(),t_={get stdin(){return e_()},get stdout(){return e_()}}})),r_=Je({AjvJsonSchemaValidator:()=>Zg,CfWorkerJsonSchemaValidator:()=>Qg,DEFAULT_NEGOTIATED_PROTOCOL_VERSION:()=>mf,DEFAULT_REQUEST_TIMEOUT_MSEC:()=>Th,ExperimentalMcpServerTasks:()=>S_,ExperimentalServerTasks:()=>C_,INTERNAL_ERROR:()=>xf,INVALID_PARAMS:()=>bf,INVALID_REQUEST:()=>vf,InMemoryTaskMessageQueue:()=>x_,InMemoryTaskStore:()=>b_,JSONRPC_VERSION:()=>`2.0`,LATEST_PROTOCOL_VERSION:()=>pf,METHOD_NOT_FOUND:()=>yf,McpServer:()=>T_,OAuthError:()=>of,OAuthErrorCode:()=>af,PARSE_ERROR:()=>_f,ProtocolError:()=>U,ProtocolErrorCode:()=>H,RELATED_TASK_META_KEY:()=>gf,ReadBuffer:()=>Dh,ResourceTemplate:()=>E_,SUPPORTED_PROTOCOL_VERSIONS:()=>hf,SdkError:()=>V,SdkErrorCode:()=>B,Server:()=>w_,StdioServerTransport:()=>k_,UriTemplate:()=>Nh,UrlElicitationRequiredError:()=>Sf,WebStandardStreamableHTTPServerTransport:()=>A_,assertClientRequestTaskCapability:()=>c_,assertCompleteRequestPrompt:()=>Od,assertCompleteRequestResourceTemplate:()=>kd,assertToolsCallTaskCapability:()=>s_,checkResourceAllowed:()=>xd,completable:()=>i_,createFetchWithInit:()=>Ud,deserializeMessage:()=>Ld,fromJsonSchema:()=>v_,getDisplayName:()=>Sd,hostHeaderValidationResponse:()=>__,isCompletable:()=>a_,isInitializeRequest:()=>xh,isInitializedNotification:()=>Sh,isJSONRPCErrorResponse:()=>yh,isJSONRPCNotification:()=>_h,isJSONRPCRequest:()=>gh,isJSONRPCResultResponse:()=>vh,isTaskAugmentedRequestParams:()=>bh,isTerminal:()=>jd,localhostAllowedHostnames:()=>g_,parseJSONRPCMessage:()=>Dd,resourceUrlFromServerUrl:()=>bd,serializeMessage:()=>Rd,takeResult:()=>Id,toArrayAsync:()=>Fd,validateHostHeader:()=>h_});function i_(e,t){return Object.defineProperty(e,y_,{value:{complete:t},enumerable:!1,writable:!1,configurable:!1}),e}function a_(e){return!!e&&typeof e==`object`&&y_ in e}function o_(e){return e[y_]?.complete}function s_(e,t,n){if(!e)throw new V(B.CapabilityNotSupported,`${n} does not support task creation (required for ${t})`);if(t===`tools/call`&&!e.tools?.call)throw new V(B.CapabilityNotSupported,`${n} does not support task creation for tools/call (required for ${t})`)}function c_(e,t,n){if(!e)throw new V(B.CapabilityNotSupported,`${n} does not support task creation (required for ${t})`);switch(t){case`sampling/createMessage`:if(!e.sampling?.createMessage)throw new V(B.CapabilityNotSupported,`${n} does not support task creation for sampling/createMessage (required for ${t})`);break;case`elicitation/create`:if(!e.elicitation?.create)throw new V(B.CapabilityNotSupported,`${n} does not support task creation for elicitation/create (required for ${t})`)}}function l_(e,t){if(`createTask`in t){let n=t;return async(t,r)=>{if(!r.task?.store)throw Error(`No task store provided.`);let i={...r,task:{store:r.task.store,requestedTtl:r.task?.requestedTtl}};return e?n.createTask(t,i):n.createTask(i)}}if(e){let e=t;return async(t,n)=>e(t,n)}let n=t;return async(e,t)=>n(t)}function u_(e,t,n){if(t){let r=n;return async(n,i)=>{let a=await Kd(t,n);if(!a.success)throw new U(H.InvalidParams,`Invalid arguments for prompt ${e}: ${a.error}`);return r(a.data,i)}}{let e=n;return async(t,n)=>e(n)}}function d_(e){return{completion:{values:e.map(String).slice(0,100),total:e.length,hasMore:e.length>100}}}function f_(e){let t=e;if(t.shape&&typeof t.shape==`object`)return t.shape}function p_(e){return e?.type===`optional`}function m_(e){return p_(e)?e.def?.innerType??e:e}function h_(e,t){if(!e)return{ok:!1,errorCode:`missing_host`,message:`Missing Host header`};let n;try{n=new URL(`http://${e}`).hostname}catch{return{ok:!1,errorCode:`invalid_host_header`,message:`Invalid Host header: ${e}`,hostHeader:e}}return t.includes(n)?{ok:!0,hostname:n}:{ok:!1,errorCode:`invalid_host`,message:`Invalid Host: ${n}`,hostHeader:e,hostname:n}}function g_(){return[`localhost`,`127.0.0.1`,`[::1]`]}function __(e,t){let n=h_(e.headers.get(`host`),t);if(!n.ok)return Response.json({jsonrpc:`2.0`,error:{code:-32e3,message:n.message},id:null},{status:403,headers:{"Content-Type":`application/json`}})}function v_(e,t){return Yd(e,t??(j_??=new Qg))}var y_,b_,x_,S_,C_,w_,T_,E_,D_,O_,k_,A_,j_,M_=F((()=>{$g(),n_(),y_=Symbol.for(`mcp.completable`),b_=class{tasks=new Map;cleanupTimers=new Map;generateTaskId(){return crypto.randomUUID().replaceAll(`-`,``)}async createTask(e,t,n,r){let i=this.generateTaskId();if(this.tasks.has(i))throw Error(`Task with ID ${i} already exists`);let a=e.ttl??null,o=new Date().toISOString(),s={taskId:i,status:`working`,ttl:a,createdAt:o,lastUpdatedAt:o,pollInterval:e.pollInterval??1e3};if(this.tasks.set(i,{task:s,request:n,requestId:t,sessionId:r}),a){let e=setTimeout(()=>{this.tasks.delete(i),this.cleanupTimers.delete(i)},a);this.cleanupTimers.set(i,e)}return s}getStoredTask(e,t){let n=this.tasks.get(e);if(n&&(t===void 0||n.sessionId===void 0||n.sessionId===t))return n}async getTask(e,t){let n=this.getStoredTask(e,t);return n?{...n.task}:null}async storeTaskResult(e,t,n,r){let i=this.getStoredTask(e,r);if(!i)throw Error(`Task with ID ${e} not found`);if(jd(i.task.status))throw Error(`Cannot store result for task ${e} in terminal status '${i.task.status}'. Task results can only be stored once.`);if(i.result=n,i.task.status=t,i.task.lastUpdatedAt=new Date().toISOString(),i.task.ttl){let t=this.cleanupTimers.get(e);t&&clearTimeout(t);let n=setTimeout(()=>{this.tasks.delete(e),this.cleanupTimers.delete(e)},i.task.ttl);this.cleanupTimers.set(e,n)}}async getTaskResult(e,t){let n=this.getStoredTask(e,t);if(!n)throw Error(`Task with ID ${e} not found`);if(!n.result)throw Error(`Task ${e} has no result stored`);return n.result}async updateTaskStatus(e,t,n,r){let i=this.getStoredTask(e,r);if(!i)throw Error(`Task with ID ${e} not found`);if(jd(i.task.status))throw Error(`Cannot update task ${e} from terminal status '${i.task.status}' to '${t}'. Terminal states (completed, failed, cancelled) cannot transition to other states.`);if(i.task.status=t,n&&(i.task.statusMessage=n),i.task.lastUpdatedAt=new Date().toISOString(),jd(t)&&i.task.ttl){let t=this.cleanupTimers.get(e);t&&clearTimeout(t);let n=setTimeout(()=>{this.tasks.delete(e),this.cleanupTimers.delete(e)},i.task.ttl);this.cleanupTimers.set(e,n)}}async listTasks(e,t){let n=[...this.tasks.entries()].filter(([,e])=>t===void 0||e.sessionId===void 0||e.sessionId===t).map(([e])=>e),r=0;if(e){let t=n.indexOf(e);if(t===-1)throw Error(`Invalid cursor: ${e}`);r=t+1}let i=n.slice(r,r+10);return{tasks:i.map(e=>({...this.tasks.get(e).task})),nextCursor:r+10<n.length?i.at(-1):void 0}}cleanup(){for(let e of this.cleanupTimers.values())clearTimeout(e);this.cleanupTimers.clear(),this.tasks.clear()}getAllTasks(){return[...this.tasks.values()].map(e=>({...e.task}))}},x_=class{queues=new Map;getQueueKey(e,t){return e}getQueue(e,t){let n=this.getQueueKey(e,t),r=this.queues.get(n);return r||(r=[],this.queues.set(n,r)),r}async enqueue(e,t,n,r){let i=this.getQueue(e,n);if(r!==void 0&&i.length>=r)throw Error(`Task message queue overflow: queue size (${i.length}) exceeds maximum (${r})`);i.push(t)}async dequeue(e,t){return this.getQueue(e,t).shift()}async dequeueAll(e,t){let n=this.getQueueKey(e,t),r=this.queues.get(n)??[];return this.queues.delete(n),r}},S_=class{constructor(e){this._mcpServer=e}registerToolTask(e,t,n){let r={taskSupport:`required`,...t.execution};if(r.taskSupport===`forbidden`)throw Error(`Cannot register task-based tool '${e}' with taskSupport 'forbidden'. Use registerTool() instead.`);return this._mcpServer._createRegisteredTool(e,t.title,t.description,t.inputSchema,t.outputSchema,t.annotations,r,t._meta,n)}},C_=class{constructor(e){this._server=e}get _module(){return this._server.taskManager}requestStream(e,t){let n=Cd(e.method);return this._module.requestStream(e,n,t)}createMessageStream(e,t){let n=this._server.getClientCapabilities();if((e.tools||e.toolChoice)&&!n?.sampling?.tools)throw new V(B.CapabilityNotSupported,`Client does not support sampling tools capability.`);if(e.messages.length>0){let t=e.messages.at(-1),n=Array.isArray(t.content)?t.content:[t.content],r=n.some(e=>e.type===`tool_result`),i=e.messages.length>1?e.messages.at(-2):void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],o=a.some(e=>e.type===`tool_use`);if(r){if(n.some(e=>e.type!==`tool_result`))throw Error(`The last message must contain only tool_result content if any is present`);if(!o)throw Error(`tool_result blocks are not matching any tool_use from the previous message`)}if(o){let e=new Set(a.filter(e=>e.type===`tool_use`).map(e=>e.id)),t=new Set(n.filter(e=>e.type===`tool_result`).map(e=>e.toolUseId));if(e.size!==t.size||![...e].every(e=>t.has(e)))throw Error(`ids of tool_result blocks and tool_use blocks from previous message do not match`)}}return this.requestStream({method:`sampling/createMessage`,params:e},t)}elicitInputStream(e,t){let n=this._server.getClientCapabilities(),r=e.mode??`form`;switch(r){case`url`:if(!n?.elicitation?.url)throw new V(B.CapabilityNotSupported,`Client does not support url elicitation.`);break;case`form`:if(!n?.elicitation?.form)throw new V(B.CapabilityNotSupported,`Client does not support form elicitation.`)}let i=r===`form`&&e.mode!==`form`?{...e,mode:`form`}:e;return this.requestStream({method:`elicitation/create`,params:i},t)}async getTask(e,t){return this._module.getTask({taskId:e},t)}async getTaskResult(e,t){return this._module.getTaskResult({taskId:e},bp,t)}async listTasks(e,t){return this._module.listTasks(e?{cursor:e}:void 0,t)}async cancelTask(e,t){return this._module.cancelTask({taskId:e},t)}},w_=class extends Eh{_clientCapabilities;_clientVersion;_capabilities;_instructions;_jsonSchemaValidator;_experimental;oninitialized;constructor(e,t){if(super({...t,tasks:Md(t?.capabilities?.tasks)}),this._serverInfo=e,this._capabilities=t?.capabilities?{...t.capabilities}:{},this._instructions=t?.instructions,this._jsonSchemaValidator=t?.jsonSchemaValidator??new Qg,t?.capabilities?.tasks){let{taskStore:e,taskMessageQueue:n,defaultTaskPollInterval:r,maxTaskQueueSize:i,...a}=t.capabilities.tasks;this._capabilities.tasks=a}this.setRequestHandler(`initialize`,e=>this._oninitialize(e)),this.setNotificationHandler(`notifications/initialized`,()=>this.oninitialized?.()),this._capabilities.logging&&this._registerLoggingHandler()}_registerLoggingHandler(){this.setRequestHandler(`logging/setLevel`,async(e,t)=>{let n=t.sessionId||t.http?.req?.headers.get(`mcp-session-id`)||void 0,{level:r}=e.params,i=Ad(ym,r);return i.success&&this._loggingLevels.set(n,i.data),{}})}buildContext(e,t){let n=e.http||t?.request||t?.closeSSEStream||t?.closeStandaloneSSEStream;return{...e,mcpReq:{...e.mcpReq,log:(e,t,n)=>this.sendLoggingMessage({level:e,data:t,logger:n}),elicitInput:(e,t)=>this.elicitInput(e,t),requestSampling:(e,t)=>this.createMessage(e,t)},http:n?{...e.http,req:t?.request,closeSSE:t?.closeSSEStream,closeStandaloneSSE:t?.closeStandaloneSSEStream}:void 0}}get experimental(){return this._experimental||={tasks:new C_(this)},this._experimental}_loggingLevels=new Map;LOG_LEVEL_SEVERITY=new Map(ym.options.map((e,t)=>[e,t]));isMessageIgnored=(e,t)=>{let n=this._loggingLevels.get(t);return n?this.LOG_LEVEL_SEVERITY.get(e)<this.LOG_LEVEL_SEVERITY.get(n):!1};registerCapabilities(e){if(this.transport)throw new V(B.AlreadyConnected,`Cannot register capabilities after connecting to transport`);let t=!!this._capabilities.logging;this._capabilities=Pd(this._capabilities,e),!t&&this._capabilities.logging&&this._registerLoggingHandler()}setRequestHandler(e,t){return e===`tools/call`?super.setRequestHandler(e,async(e,n)=>{let r=Ad(_m,e);if(!r.success){let e=r.error instanceof Error?r.error.message:String(r.error);throw new U(H.InvalidParams,`Invalid tools/call request: ${e}`)}let{params:i}=r.data,a=await Promise.resolve(t(e,n));if(i.task){let e=Ad(mp,a);if(!e.success){let t=e.error instanceof Error?e.error.message:String(e.error);throw new U(H.InvalidParams,`Invalid task creation result: ${t}`)}return e.data}let o=Ad(hm,a);if(!o.success){let e=o.error instanceof Error?o.error.message:String(o.error);throw new U(H.InvalidParams,`Invalid tools/call result: ${e}`)}return o.data}):super.setRequestHandler(e,t)}assertCapabilityForMethod(e){switch(e){case`sampling/createMessage`:if(!this._clientCapabilities?.sampling)throw new V(B.CapabilityNotSupported,`Client does not support sampling (required for ${e})`);break;case`elicitation/create`:if(!this._clientCapabilities?.elicitation)throw new V(B.CapabilityNotSupported,`Client does not support elicitation (required for ${e})`);break;case`roots/list`:if(!this._clientCapabilities?.roots)throw new V(B.CapabilityNotSupported,`Client does not support listing roots (required for ${e})`)}}assertNotificationCapability(e){switch(e){case`notifications/message`:if(!this._capabilities.logging)throw new V(B.CapabilityNotSupported,`Server does not support logging (required for ${e})`);break;case`notifications/resources/updated`:case`notifications/resources/list_changed`:if(!this._capabilities.resources)throw new V(B.CapabilityNotSupported,`Server does not support notifying about resources (required for ${e})`);break;case`notifications/tools/list_changed`:if(!this._capabilities.tools)throw new V(B.CapabilityNotSupported,`Server does not support notifying of tool list changes (required for ${e})`);break;case`notifications/prompts/list_changed`:if(!this._capabilities.prompts)throw new V(B.CapabilityNotSupported,`Server does not support notifying of prompt list changes (required for ${e})`);break;case`notifications/elicitation/complete`:if(!this._clientCapabilities?.elicitation?.url)throw new V(B.CapabilityNotSupported,`Client does not support URL elicitation (required for ${e})`)}}assertRequestHandlerCapability(e){switch(e){case`completion/complete`:if(!this._capabilities.completions)throw new V(B.CapabilityNotSupported,`Server does not support completions (required for ${e})`);break;case`logging/setLevel`:if(!this._capabilities.logging)throw new V(B.CapabilityNotSupported,`Server does not support logging (required for ${e})`);break;case`prompts/get`:case`prompts/list`:if(!this._capabilities.prompts)throw new V(B.CapabilityNotSupported,`Server does not support prompts (required for ${e})`);break;case`resources/list`:case`resources/templates/list`:case`resources/read`:if(!this._capabilities.resources)throw new V(B.CapabilityNotSupported,`Server does not support resources (required for ${e})`);break;case`tools/call`:case`tools/list`:if(!this._capabilities.tools)throw new V(B.CapabilityNotSupported,`Server does not support tools (required for ${e})`)}}assertTaskCapability(e){c_(this._clientCapabilities?.tasks?.requests,e,`Client`)}assertTaskHandlerCapability(e){s_(this._capabilities?.tasks?.requests,e,`Server`)}async _oninitialize(e){let t=e.params.protocolVersion;this._clientCapabilities=e.params.capabilities,this._clientVersion=e.params.clientInfo;let n=this._supportedProtocolVersions.includes(t)?t:this._supportedProtocolVersions[0]??`2025-11-25`;return this.transport?.setProtocolVersion?.(n),{protocolVersion:n,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._requestWithSchema({method:`ping`},Hf)}async createMessage(e,t){if((e.tools||e.toolChoice)&&!this._clientCapabilities?.sampling?.tools)throw new V(B.CapabilityNotSupported,`Client does not support sampling tools capability.`);if(e.messages.length>0){let t=e.messages.at(-1),n=Array.isArray(t.content)?t.content:[t.content],r=n.some(e=>e.type===`tool_result`),i=e.messages.length>1?e.messages.at(-2):void 0,a=i?Array.isArray(i.content)?i.content:[i.content]:[],o=a.some(e=>e.type===`tool_use`);if(r){if(n.some(e=>e.type!==`tool_result`))throw new U(H.InvalidParams,`The last message must contain only tool_result content if any is present`);if(!o)throw new U(H.InvalidParams,`tool_result blocks are not matching any tool_use from the previous message`)}if(o){let e=new Set(a.filter(e=>e.type===`tool_use`).map(e=>e.id)),t=new Set(n.filter(e=>e.type===`tool_result`).map(e=>e.toolUseId));if(e.size!==t.size||![...e].every(e=>t.has(e)))throw new U(H.InvalidParams,`ids of tool_result blocks and tool_use blocks from previous message do not match`)}}return e.tools?this._requestWithSchema({method:`sampling/createMessage`,params:e},Pm,t):this._requestWithSchema({method:`sampling/createMessage`,params:e},Nm,t)}async elicitInput(e,t){switch(e.mode??`form`){case`url`:{if(!this._clientCapabilities?.elicitation?.url)throw new V(B.CapabilityNotSupported,`Client does not support url elicitation.`);let n=e;return this._requestWithSchema({method:`elicitation/create`,params:n},$m,t)}case`form`:{if(!this._clientCapabilities?.elicitation?.form)throw new V(B.CapabilityNotSupported,`Client does not support form elicitation.`);let n=e.mode===`form`?e:{...e,mode:`form`},r=await this._requestWithSchema({method:`elicitation/create`,params:n},$m,t);if(r.action===`accept`&&r.content&&n.requestedSchema)try{let e=this._jsonSchemaValidator.getValidator(n.requestedSchema)(r.content);if(!e.valid)throw new U(H.InvalidParams,`Elicitation response content does not match requested schema: ${e.errorMessage}`)}catch(e){throw e instanceof U?e:new U(H.InternalError,`Error validating elicitation response: ${e instanceof Error?e.message:String(e)}`)}return r}}}createElicitationCompletionNotifier(e,t){if(!this._clientCapabilities?.elicitation?.url)throw new V(B.CapabilityNotSupported,`Client does not support URL elicitation (required for notifications/elicitation/complete)`);return()=>this.notification({method:`notifications/elicitation/complete`,params:{elicitationId:e}},t)}async listRoots(e,t){return this._requestWithSchema({method:`roots/list`,params:e},sh,t)}async sendLoggingMessage(e,t){if(this._capabilities.logging&&!this.isMessageIgnored(e.level,t))return this.notification({method:`notifications/message`,params:e})}async sendResourceUpdated(e){return this.notification({method:`notifications/resources/updated`,params:e})}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`})}},T_=class{server;_registeredResources={};_registeredResourceTemplates={};_registeredTools={};_registeredPrompts={};_experimental;constructor(e,t){this.server=new w_(e,t)}get experimental(){return this._experimental||={tasks:new S_(this)},this._experimental}async connect(e){return await this.server.connect(e)}async close(){await this.server.close()}_toolHandlersInitialized=!1;setToolRequestHandlers(){this._toolHandlersInitialized||=(this.server.assertCanSetRequestHandler(`tools/list`),this.server.assertCanSetRequestHandler(`tools/call`),this.server.registerCapabilities({tools:{listChanged:this.server.getCapabilities().tools?.listChanged??!0}}),this.server.setRequestHandler(`tools/list`,()=>({tools:Object.entries(this._registeredTools).filter(([,e])=>e.enabled).map(([e,t])=>{let n={name:e,title:t.title,description:t.description,inputSchema:t.inputSchema?Wd(t.inputSchema,`input`):D_,annotations:t.annotations,execution:t.execution,_meta:t._meta};return t.outputSchema&&(n.outputSchema=Wd(t.outputSchema,`output`)),n})})),this.server.setRequestHandler(`tools/call`,async(e,t)=>{let n=this._registeredTools[e.params.name];if(!n)throw new U(H.InvalidParams,`Tool ${e.params.name} not found`);if(!n.enabled)throw new U(H.InvalidParams,`Tool ${e.params.name} disabled`);try{let r=!!e.params.task,i=n.execution?.taskSupport,a=`createTask`in n.handler;if((i===`required`||i===`optional`)&&!a)throw new U(H.InternalError,`Tool ${e.params.name} has taskSupport '${i}' but was not registered with registerToolTask`);if(i===`required`&&!r)throw new U(H.MethodNotFound,`Tool ${e.params.name} requires task augmentation (taskSupport: 'required')`);if(i===`optional`&&!r&&a)return await this.handleAutomaticTaskPolling(n,e,t);let o=await this.validateToolInput(n,e.params.arguments,e.params.name),s=await this.executeToolHandler(n,o,t);return r||await this.validateToolOutput(n,s,e.params.name),s}catch(e){if(e instanceof U&&e.code===H.UrlElicitationRequired)throw e;return this.createToolError(e instanceof Error?e.message:String(e))}}),!0)}createToolError(e){return{content:[{type:`text`,text:e}],isError:!0}}async validateToolInput(e,t,n){if(!e.inputSchema)return;let r=await Kd(e.inputSchema,t??{});if(!r.success)throw new U(H.InvalidParams,`Input validation error: Invalid arguments for tool ${n}: ${r.error}`);return r.data}async validateToolOutput(e,t,n){if(!e.outputSchema||!(`content`in t)||t.isError)return;if(!t.structuredContent)throw new U(H.InvalidParams,`Output validation error: Tool ${n} has an output schema but no structured content was provided`);let r=await Kd(e.outputSchema,t.structuredContent);if(!r.success)throw new U(H.InvalidParams,`Output validation error: Invalid structured content for tool ${n}: ${r.error}`)}async executeToolHandler(e,t,n){return e.executor(t,n)}async handleAutomaticTaskPolling(e,t,n){if(!n.task?.store)throw Error(`No task store provided for task-capable tool.`);let r=await this.validateToolInput(e,t.params.arguments,t.params.name),i=await e.executor(r,n),a=i.task.taskId,o=i.task,s=o.pollInterval??5e3;for(;o.status!==`completed`&&o.status!==`failed`&&o.status!==`cancelled`;){await new Promise(e=>setTimeout(e,s));let e=await n.task.store.getTask(a);if(!e)throw new U(H.InternalError,`Task ${a} not found during polling`);o=e}return await n.task.store.getTaskResult(a)}_completionHandlerInitialized=!1;setCompletionRequestHandler(){this._completionHandlerInitialized||=(this.server.assertCanSetRequestHandler(`completion/complete`),this.server.registerCapabilities({completions:{}}),this.server.setRequestHandler(`completion/complete`,async e=>{switch(e.params.ref.type){case`ref/prompt`:return Od(e),this.handlePromptCompletion(e,e.params.ref);case`ref/resource`:return kd(e),this.handleResourceCompletion(e,e.params.ref);default:throw new U(H.InvalidParams,`Invalid completion reference: ${e.params.ref}`)}}),!0)}async handlePromptCompletion(e,t){let n=this._registeredPrompts[t.name];if(!n)throw new U(H.InvalidParams,`Prompt ${t.name} not found`);if(!n.enabled)throw new U(H.InvalidParams,`Prompt ${t.name} disabled`);if(!n.argsSchema)return O_;let r=m_(f_(n.argsSchema)?.[e.params.argument.name]);if(!a_(r))return O_;let i=o_(r);return i?d_(await i(e.params.argument.value,e.params.context)):O_}async handleResourceCompletion(e,t){let n=Object.values(this._registeredResourceTemplates).find(e=>e.resourceTemplate.uriTemplate.toString()===t.uri);if(!n){if(this._registeredResources[t.uri])return O_;throw new U(H.InvalidParams,`Resource template ${e.params.ref.uri} not found`)}let r=n.resourceTemplate.completeCallback(e.params.argument.name);return r?d_(await r(e.params.argument.value,e.params.context)):O_}_resourceHandlersInitialized=!1;setResourceRequestHandlers(){this._resourceHandlersInitialized||=(this.server.assertCanSetRequestHandler(`resources/list`),this.server.assertCanSetRequestHandler(`resources/templates/list`),this.server.assertCanSetRequestHandler(`resources/read`),this.server.registerCapabilities({resources:{listChanged:this.server.getCapabilities().resources?.listChanged??!0}}),this.server.setRequestHandler(`resources/list`,async(e,t)=>{let n=Object.entries(this._registeredResources).filter(([e,t])=>t.enabled).map(([e,t])=>({uri:e,name:t.name,...t.metadata})),r=[];for(let e of Object.values(this._registeredResourceTemplates)){if(!e.resourceTemplate.listCallback)continue;let n=await e.resourceTemplate.listCallback(t);for(let t of n.resources)r.push({...e.metadata,...t})}return{resources:[...n,...r]}}),this.server.setRequestHandler(`resources/templates/list`,async()=>({resourceTemplates:Object.entries(this._registeredResourceTemplates).map(([e,t])=>({name:e,uriTemplate:t.resourceTemplate.uriTemplate.toString(),...t.metadata}))})),this.server.setRequestHandler(`resources/read`,async(e,t)=>{let n=new URL(e.params.uri),r=this._registeredResources[n.toString()];if(r){if(!r.enabled)throw new U(H.InvalidParams,`Resource ${n} disabled`);return r.readCallback(n,t)}for(let e of Object.values(this._registeredResourceTemplates)){let r=e.resourceTemplate.uriTemplate.match(n.toString());if(r)return e.readCallback(n,r,t)}throw new U(H.ResourceNotFound,`Resource ${n} not found`)}),!0)}_promptHandlersInitialized=!1;setPromptRequestHandlers(){this._promptHandlersInitialized||=(this.server.assertCanSetRequestHandler(`prompts/list`),this.server.assertCanSetRequestHandler(`prompts/get`),this.server.registerCapabilities({prompts:{listChanged:this.server.getCapabilities().prompts?.listChanged??!0}}),this.server.setRequestHandler(`prompts/list`,()=>({prompts:Object.entries(this._registeredPrompts).filter(([,e])=>e.enabled).map(([e,t])=>({name:e,title:t.title,description:t.description,arguments:t.argsSchema?qd(t.argsSchema):void 0,_meta:t._meta}))})),this.server.setRequestHandler(`prompts/get`,async(e,t)=>{let n=this._registeredPrompts[e.params.name];if(!n)throw new U(H.InvalidParams,`Prompt ${e.params.name} not found`);if(!n.enabled)throw new U(H.InvalidParams,`Prompt ${e.params.name} disabled`);return n.handler(e.params.arguments,t)}),!0)}registerResource(e,t,n,r){if(typeof t==`string`){if(this._registeredResources[t])throw Error(`Resource ${t} is already registered`);let i=this._createRegisteredResource(e,n.title,t,n,r);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}{if(this._registeredResourceTemplates[e])throw Error(`Resource template ${e} is already registered`);let i=this._createRegisteredResourceTemplate(e,n.title,t,n,r);return this.setResourceRequestHandlers(),this.sendResourceListChanged(),i}}_createRegisteredResource(e,t,n,r,i){let a={name:e,title:t,metadata:r,readCallback:i,enabled:!0,disable:()=>a.update({enabled:!1}),enable:()=>a.update({enabled:!0}),remove:()=>a.update({uri:null}),update:e=>{e.uri!==void 0&&e.uri!==n&&(delete this._registeredResources[n],e.uri&&(this._registeredResources[e.uri]=a)),e.name!==void 0&&(a.name=e.name),e.title!==void 0&&(a.title=e.title),e.metadata!==void 0&&(a.metadata=e.metadata),e.callback!==void 0&&(a.readCallback=e.callback),e.enabled!==void 0&&(a.enabled=e.enabled),this.sendResourceListChanged()}};return this._registeredResources[n]=a,a}_createRegisteredResourceTemplate(e,t,n,r,i){let a={resourceTemplate:n,title:t,metadata:r,readCallback:i,enabled:!0,disable:()=>a.update({enabled:!1}),enable:()=>a.update({enabled:!0}),remove:()=>a.update({name:null}),update:t=>{t.name!==void 0&&t.name!==e&&(delete this._registeredResourceTemplates[e],t.name&&(this._registeredResourceTemplates[t.name]=a)),t.title!==void 0&&(a.title=t.title),t.template!==void 0&&(a.resourceTemplate=t.template),t.metadata!==void 0&&(a.metadata=t.metadata),t.callback!==void 0&&(a.readCallback=t.callback),t.enabled!==void 0&&(a.enabled=t.enabled),this.sendResourceListChanged()}};this._registeredResourceTemplates[e]=a;let o=n.uriTemplate.variableNames;return Array.isArray(o)&&o.some(e=>!!n.completeCallback(e))&&this.setCompletionRequestHandler(),a}_createRegisteredPrompt(e,t,n,r,i,a){let o=r,s=i,c={title:t,description:n,argsSchema:r,_meta:a,handler:u_(e,r,i),enabled:!0,disable:()=>c.update({enabled:!1}),enable:()=>c.update({enabled:!0}),remove:()=>c.update({name:null}),update:t=>{t.name!==void 0&&t.name!==e&&(delete this._registeredPrompts[e],t.name&&(this._registeredPrompts[t.name]=c)),t.title!==void 0&&(c.title=t.title),t.description!==void 0&&(c.description=t.description),t._meta!==void 0&&(c._meta=t._meta);let n=!1;t.argsSchema!==void 0&&(c.argsSchema=t.argsSchema,o=t.argsSchema,n=!0),t.callback!==void 0&&(s=t.callback,n=!0),n&&(c.handler=u_(e,o,s)),t.enabled!==void 0&&(c.enabled=t.enabled),this.sendPromptListChanged()}};if(this._registeredPrompts[e]=c,r){let e=f_(r);e&&Object.values(e).some(e=>a_(m_(e)))&&this.setCompletionRequestHandler()}return c}_createRegisteredTool(e,t,n,r,i,a,o,s,c){Vd(e);let l=c,u={title:t,description:n,inputSchema:r,outputSchema:i,annotations:a,execution:o,_meta:s,handler:c,executor:l_(r,c),enabled:!0,disable:()=>u.update({enabled:!1}),enable:()=>u.update({enabled:!0}),remove:()=>u.update({name:null}),update:t=>{t.name!==void 0&&t.name!==e&&(typeof t.name==`string`&&Vd(t.name),delete this._registeredTools[e],t.name&&(this._registeredTools[t.name]=u)),t.title!==void 0&&(u.title=t.title),t.description!==void 0&&(u.description=t.description);let n=!1;t.paramsSchema!==void 0&&(u.inputSchema=t.paramsSchema,n=!0),t.callback!==void 0&&(u.handler=t.callback,l=t.callback,n=!0),n&&(u.executor=l_(u.inputSchema,l)),t.outputSchema!==void 0&&(u.outputSchema=t.outputSchema),t.annotations!==void 0&&(u.annotations=t.annotations),t._meta!==void 0&&(u._meta=t._meta),t.enabled!==void 0&&(u.enabled=t.enabled),this.sendToolListChanged()}};return this._registeredTools[e]=u,this.setToolRequestHandlers(),this.sendToolListChanged(),u}registerTool(e,t,n){if(this._registeredTools[e])throw Error(`Tool ${e} is already registered`);let{title:r,description:i,inputSchema:a,outputSchema:o,annotations:s,_meta:c}=t;return this._createRegisteredTool(e,r,i,a,o,s,{taskSupport:`forbidden`},c,n)}registerPrompt(e,t,n){if(this._registeredPrompts[e])throw Error(`Prompt ${e} is already registered`);let{title:r,description:i,argsSchema:a,_meta:o}=t,s=this._createRegisteredPrompt(e,r,i,a,n,o);return this.setPromptRequestHandlers(),this.sendPromptListChanged(),s}isConnected(){return this.server.transport!==void 0}async sendLoggingMessage(e,t){return this.server.sendLoggingMessage(e,t)}sendResourceListChanged(){this.isConnected()&&this.server.sendResourceListChanged()}sendToolListChanged(){this.isConnected()&&this.server.sendToolListChanged()}sendPromptListChanged(){this.isConnected()&&this.server.sendPromptListChanged()}},E_=class{_uriTemplate;constructor(e,t){this._callbacks=t,this._uriTemplate=typeof e==`string`?new Nh(e):e}get uriTemplate(){return this._uriTemplate}get listCallback(){return this._callbacks.list}completeCallback(e){return this._callbacks.complete?.[e]}},D_={type:`object`,properties:{}},O_={completion:{values:[],hasMore:!1}},k_=class{_readBuffer=new Dh;_started=!1;_closed=!1;constructor(e=t_.stdin,t=t_.stdout){this._stdin=e,this._stdout=t}onclose;onerror;onmessage;_ondata=e=>{this._readBuffer.append(e),this.processReadBuffer()};_onerror=e=>{this.onerror?.(e)};_onstdouterror=e=>{this.onerror?.(e),this.close().catch(()=>{})};async start(){if(this._started)throw 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),this._stdout.on(`error`,this._onstdouterror)}processReadBuffer(){for(;;)try{let e=this._readBuffer.readMessage();if(e===null)break;this.onmessage?.(e)}catch(e){this.onerror?.(e)}}async close(){this._closed||(this._closed=!0,this._stdin.off(`data`,this._ondata),this._stdin.off(`error`,this._onerror),this._stdout.off(`error`,this._onstdouterror),this._stdin.listenerCount(`data`)===0&&this._stdin.pause(),this._readBuffer.clear(),this.onclose?.())}send(e){return this._closed?Promise.reject(Error(`StdioServerTransport is closed`)):new Promise((t,n)=>{let r=Rd(e),i=!1,a=e=>{i||(i=!0,this._stdout.off(`error`,a),this._stdout.off(`drain`,o),n(e))},o=()=>{i||(i=!0,this._stdout.off(`error`,a),this._stdout.off(`drain`,o),t())};if(this._stdout.once(`error`,a),this._stdout.write(r)){if(i)return;i=!0,this._stdout.off(`error`,a),t()}else i||this._stdout.once(`drain`,o)})}},A_=class{sessionIdGenerator;_started=!1;_streamMapping=new Map;_requestToStreamMapping=new Map;_requestResponseMap=new Map;_initialized=!1;_enableJsonResponse=!1;_standaloneSseStreamId=`_GET_stream`;_eventStore;_onsessioninitialized;_onsessionclosed;_allowedHosts;_allowedOrigins;_enableDnsRebindingProtection;_retryInterval;_supportedProtocolVersions;sessionId;onclose;onerror;onmessage;constructor(e={}){this.sessionIdGenerator=e.sessionIdGenerator,this._enableJsonResponse=e.enableJsonResponse??!1,this._eventStore=e.eventStore,this._onsessioninitialized=e.onsessioninitialized,this._onsessionclosed=e.onsessionclosed,this._allowedHosts=e.allowedHosts,this._allowedOrigins=e.allowedOrigins,this._enableDnsRebindingProtection=e.enableDnsRebindingProtection??!1,this._retryInterval=e.retryInterval,this._supportedProtocolVersions=e.supportedProtocolVersions??hf}async start(){if(this._started)throw Error(`Transport already started`);this._started=!0}setSupportedProtocolVersions(e){this._supportedProtocolVersions=e}createJsonErrorResponse(e,t,n,r){let i={code:t,message:n};return r?.data!==void 0&&(i.data=r.data),Response.json({jsonrpc:`2.0`,error:i,id:null},{status:e,headers:{"Content-Type":`application/json`,...r?.headers}})}validateRequestHeaders(e){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let t=e.headers.get(`host`);if(!t||!this._allowedHosts.includes(t)){let e=`Invalid Host header: ${t}`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(403,-32e3,e)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let t=e.headers.get(`origin`);if(t&&!this._allowedOrigins.includes(t)){let e=`Invalid Origin header: ${t}`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(403,-32e3,e)}}}}async handleRequest(e,t){let n=this.validateRequestHeaders(e);if(n)return n;switch(e.method){case`POST`:return this.handlePostRequest(e,t);case`GET`:return this.handleGetRequest(e);case`DELETE`:return this.handleDeleteRequest(e);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(e,t,n,r){if(!this._eventStore||r<`2025-11-25`)return;let i=await this._eventStore.storeEvent(n,{}),a=`id: ${i}\ndata: \n\n`;this._retryInterval!==void 0&&(a=`id: ${i}\nretry: ${this._retryInterval}\ndata: \n\n`),e.enqueue(t.encode(a))}async handleGetRequest(e){if(!e.headers.get(`accept`)?.includes(`text/event-stream`))return this.onerror?.(Error(`Not Acceptable: Client must accept text/event-stream`)),this.createJsonErrorResponse(406,-32e3,`Not Acceptable: Client must accept text/event-stream`);let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);if(n)return n;if(this._eventStore){let t=e.headers.get(`last-event-id`);if(t)return this.replayEvents(t)}if(this._streamMapping.get(this._standaloneSseStreamId)!==void 0)return this.onerror?.(Error(`Conflict: Only one SSE stream is allowed per session`)),this.createJsonErrorResponse(409,-32e3,`Conflict: Only one SSE stream is allowed per session`);let r=new TextEncoder,i,a=new ReadableStream({start:e=>{i=e},cancel:()=>{this._streamMapping.delete(this._standaloneSseStreamId)}}),o={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`};return this.sessionId!==void 0&&(o[`mcp-session-id`]=this.sessionId),this._streamMapping.set(this._standaloneSseStreamId,{controller:i,encoder:r,cleanup:()=>{this._streamMapping.delete(this._standaloneSseStreamId);try{i.close()}catch{}}}),new Response(a,{headers:o})}async replayEvents(e){if(!this._eventStore)return this.onerror?.(Error(`Event store not configured`)),this.createJsonErrorResponse(400,-32e3,`Event store not configured`);try{let t;if(this._eventStore.getStreamIdForEventId){if(t=await this._eventStore.getStreamIdForEventId(e),!t)return this.onerror?.(Error(`Invalid event ID format`)),this.createJsonErrorResponse(400,-32e3,`Invalid event ID format`);if(this._streamMapping.get(t)!==void 0)return this.onerror?.(Error(`Conflict: Stream already has an active connection`)),this.createJsonErrorResponse(409,-32e3,`Conflict: Stream already has an active connection`)}let n={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache, no-transform`,Connection:`keep-alive`};this.sessionId!==void 0&&(n[`mcp-session-id`]=this.sessionId);let r=new TextEncoder,i,a=new ReadableStream({start:e=>{i=e},cancel:()=>{}}),o=await this._eventStore.replayEventsAfter(e,{send:async(e,t)=>{if(!this.writeSSEEvent(i,r,t,e))try{i.close()}catch{}}});return this._streamMapping.set(o,{controller:i,encoder:r,cleanup:()=>{this._streamMapping.delete(o);try{i.close()}catch{}}}),new Response(a,{headers:n})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(500,-32e3,`Error replaying events`)}}writeSSEEvent(e,t,n,r){try{let i=`event: message
184
+ `;return r&&(i+=`id: ${r}\n`),i+=`data: ${JSON.stringify(n)}\n\n`,e.enqueue(t.encode(i)),!0}catch(e){return this.onerror?.(e),!1}}handleUnsupportedRequest(){return this.onerror?.(Error(`Method not allowed.`)),Response.json({jsonrpc:`2.0`,error:{code:-32e3,message:`Method not allowed.`},id:null},{status:405,headers:{Allow:`GET, POST, DELETE`,"Content-Type":`application/json`}})}async handlePostRequest(e,t){try{let n=e.headers.get(`accept`);if(!n?.includes(`application/json`)||!n.includes(`text/event-stream`))return this.onerror?.(Error(`Not Acceptable: Client must accept both application/json and text/event-stream`)),this.createJsonErrorResponse(406,-32e3,`Not Acceptable: Client must accept both application/json and text/event-stream`);let r=e.headers.get(`content-type`);if(!r||!r.includes(`application/json`))return this.onerror?.(Error(`Unsupported Media Type: Content-Type must be application/json`)),this.createJsonErrorResponse(415,-32e3,`Unsupported Media Type: Content-Type must be application/json`);let i=e,a;if(t?.parsedBody===void 0)try{a=await e.json()}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error: Invalid JSON`)}else a=t.parsedBody;let o;try{o=Array.isArray(a)?a.map(e=>Vf.parse(e)):[Vf.parse(a)]}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error: Invalid JSON-RPC message`)}let s=o.some(e=>xh(e));if(s){if(this._initialized&&this.sessionId!==void 0)return this.onerror?.(Error(`Invalid Request: Server already initialized`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Server already initialized`);if(o.length>1)return this.onerror?.(Error(`Invalid Request: Only one initialization request is allowed`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Only one initialization request is allowed`);this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!s){let t=this.validateSession(e);if(t)return t;let n=this.validateProtocolVersion(e);if(n)return n}if(!o.some(e=>gh(e))){for(let e of o)this.onmessage?.(e,{authInfo:t?.authInfo,request:i});return new Response(null,{status:202})}let c=crypto.randomUUID(),l=o.find(e=>xh(e)),u=l?l.params.protocolVersion:e.headers.get(`mcp-protocol-version`)??`2025-03-26`;if(this._enableJsonResponse)return new Promise(e=>{this._streamMapping.set(c,{resolveJson:e,cleanup:()=>{this._streamMapping.delete(c)}});for(let e of o)gh(e)&&this._requestToStreamMapping.set(e.id,c);for(let e of o)this.onmessage?.(e,{authInfo:t?.authInfo,request:i})});let d=new TextEncoder,f,p=new ReadableStream({start:e=>{f=e},cancel:()=>{this._streamMapping.delete(c)}}),m={"Content-Type":`text/event-stream`,"Cache-Control":`no-cache`,Connection:`keep-alive`};this.sessionId!==void 0&&(m[`mcp-session-id`]=this.sessionId);for(let e of o)gh(e)&&(this._streamMapping.set(c,{controller:f,encoder:d,cleanup:()=>{this._streamMapping.delete(c);try{f.close()}catch{}}}),this._requestToStreamMapping.set(e.id,c));await this.writePrimingEvent(f,d,c,u);for(let e of o){let n,r;gh(e)&&this._eventStore&&u>=`2025-11-25`&&(n=()=>{this.closeSSEStream(e.id)},r=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(e,{authInfo:t?.authInfo,request:i,closeSSEStream:n,closeStandaloneSSEStream:r})}return new Response(p,{status:200,headers:m})}catch(e){return this.onerror?.(e),this.createJsonErrorResponse(400,-32700,`Parse error`,{data:String(e)})}}async handleDeleteRequest(e){return this.validateSession(e)||this.validateProtocolVersion(e)||(await Promise.resolve(this._onsessionclosed?.(this.sessionId)),await this.close(),new Response(null,{status:200}))}validateSession(e){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.onerror?.(Error(`Bad Request: Server not initialized`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Server not initialized`);let t=e.headers.get(`mcp-session-id`);if(!t)return this.onerror?.(Error(`Bad Request: Mcp-Session-Id header is required`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Mcp-Session-Id header is required`);if(t!==this.sessionId)return this.onerror?.(Error(`Session not found`)),this.createJsonErrorResponse(404,-32001,`Session not found`)}validateProtocolVersion(e){let t=e.headers.get(`mcp-protocol-version`);if(t!==null&&!this._supportedProtocolVersions.includes(t)){let e=`Bad Request: Unsupported protocol version: ${t} (supported versions: ${this._supportedProtocolVersions.join(`, `)})`;return this.onerror?.(Error(e)),this.createJsonErrorResponse(400,-32e3,e)}}async close(){for(let{cleanup:e}of this._streamMapping.values())e();this._streamMapping.clear(),this._requestResponseMap.clear(),this.onclose?.()}closeSSEStream(e){let t=this._requestToStreamMapping.get(e);if(!t)return;let n=this._streamMapping.get(t);n&&n.cleanup()}closeStandaloneSSEStream(){let e=this._streamMapping.get(this._standaloneSseStreamId);e&&e.cleanup()}async send(e,t){let n=t?.relatedRequestId;if((vh(e)||yh(e))&&(n=e.id),n===void 0){if(vh(e)||yh(e))throw Error(`Cannot send a response on a standalone SSE stream unless resuming a previous client request`);let t;this._eventStore&&(t=await this._eventStore.storeEvent(this._standaloneSseStreamId,e));let n=this._streamMapping.get(this._standaloneSseStreamId);if(n===void 0)return;n.controller&&n.encoder&&this.writeSSEEvent(n.controller,n.encoder,e,t);return}let r=this._requestToStreamMapping.get(n);if(!r)throw Error(`No connection established for request ID: ${String(n)}`);let i=this._streamMapping.get(r);if(!this._enableJsonResponse&&i?.controller&&i?.encoder){let t;this._eventStore&&(t=await this._eventStore.storeEvent(r,e)),this.writeSSEEvent(i.controller,i.encoder,e,t)}if(vh(e)||yh(e)){this._requestResponseMap.set(n,e);let t=[...this._requestToStreamMapping.entries()].filter(([e,t])=>t===r).map(([e])=>e);if(t.every(e=>this._requestResponseMap.has(e))){if(!i)throw Error(`No connection established for request ID: ${String(n)}`);if(this._enableJsonResponse&&i.resolveJson){let e={"Content-Type":`application/json`};this.sessionId!==void 0&&(e[`mcp-session-id`]=this.sessionId);let n=t.map(e=>this._requestResponseMap.get(e));n.length===1?i.resolveJson(Response.json(n[0],{status:200,headers:e})):i.resolveJson(Response.json(n,{status:200,headers:e}))}else i.cleanup();for(let e of t)this._requestResponseMap.delete(e),this._requestToStreamMapping.delete(e)}}}}}));async function N_(e,t,n,r={}){let i=F_(),a=await Promise.resolve().then(()=>(M_(),r_)),{fromJsonSchema:o,McpServer:s}=a,c=await P_(a,i),l=new s({name:e,...r.title?{title:r.title}:void 0,version:t},r.instructions?{instructions:r.instructions}:void 0);L_(l,n,{env:r.env,fromJsonSchema:o,middlewares:r.middlewares,name:e,sendNotification:e=>l.server.notification(e),tools:r.tools,vars:r.vars,version:t});let u=new c(r.input??process.stdin,r.output??process.stdout);await l.connect(u)}async function P_(e,t){let n=e.StdioServerTransport;if(n)return n;let r=await t;if(r.error)throw r.error;return r.module.StdioServerTransport}function F_(){return Promise.resolve().then(()=>(M_(),r_)).then(e=>({module:e})).catch(e=>({error:e}))}async function I_(e,t,n={}){let r=[...n.middlewares??[],...e.middlewares??[],...e.command.middleware??[]],i=await Hl(e.command,{agent:!0,argv:[],env:n.env,format:`json`,formatExplicit:!0,inputOptions:t,middlewares:r,name:n.name??e.name,parseMode:`flat`,path:e.name,request:n.request,vars:n.vars,version:n.version});if(`stream`in i){let e=[],t=n.extra?.mcpReq?._meta?.progressToken,r=0;try{for await(let a of i.stream)e.push(a),t!==void 0&&n.sendNotification&&await n.sendNotification({method:`notifications/progress`,params:{progressToken:t,progress:++r,message:Pr(a)}})}catch(e){return{content:[{type:`text`,text:e instanceof Error?e.message:String(e)}],isError:!0}}return{content:[{type:`text`,text:Pr(e)}]}}if(!i.ok){let t=pu(n.name??e.name,i.cta),r=i.error.fieldErrors?JSON.stringify(i.error):i.error.message??`Command failed`;return{content:[{type:`text`,text:t?`${r}\n\n${mu(t)}`:r}],...t?{_meta:{cta:t}}:void 0,isError:!0}}let a=i.data??null,o=Fr(a),s=pu(n.name??e.name,i.cta),c=Pr(o);return{content:[{type:`text`,text:s?`${c}\n\n${mu(s)}`:c}],...a!==null&&e.outputSchema?{structuredContent:o}:void 0,...s?{_meta:{cta:s}}:void 0}}function L_(e,t,n){let r=K_(t,[],[],n.tools);if(r.length!==0){if((n.tools?.discovery??`progressive`)===`direct`){for(let t of r)R_(e,t,n);return}z_(e,r,n)}}function R_(e,t,n){let r={...t.command.args?.shape,...t.command.options?.shape},i=Object.keys(r).length>0;e.registerTool(t.name,{...t.description?{description:t.description}:void 0,...i?{inputSchema:f.object(r)}:void 0,...t.outputSchema?{outputSchema:n.fromJsonSchema(t.outputSchema)}:void 0,...t.annotations?{annotations:t.annotations}:void 0,...t.instructions?{_meta:{instructions:t.instructions}}:void 0},async(...e)=>I_(t,i?e[0]:{},B_(n,i?e[1]:e[0])))}function z_(e,t,n){let r=new Map(t.map(e=>[e.name,e]));e.registerTool(`search_tools`,{description:`Search or page through available tools by capability. Returns names and descriptions without loading their schemas. Inspect a result before calling it.`,inputSchema:f.object({limit:f.number().int().min(1).max(20).default(5).describe(`Maximum matches.`),offset:f.number().int().min(0).default(0).describe(`Matches to skip.`),query:f.string().default(``).describe(`Capability to find. Empty lists all tools.`)}),annotations:tv},async e=>{let n=V_(t,e.query),r=n.slice(e.offset,e.offset+e.limit);return W_({tools:r.map(e=>({name:e.name,...e.description?{description:e.description}:void 0,...e.annotations?{annotations:e.annotations}:void 0})),...e.offset+r.length<n.length?{nextOffset:e.offset+r.length}:void 0})}),e.registerTool(`get_tool_details`,{description:`Inspect one tool returned by search_tools. Returns its complete input schema and metadata.`,inputSchema:f.object({name:f.string().min(1).describe(`Exact tool name.`)}),annotations:tv},async e=>{let t=r.get(e.name);return t?W_({name:t.name,...t.description?{description:t.description}:void 0,inputSchema:t.inputSchema,...t.outputSchema?{outputSchema:t.outputSchema}:void 0,...t.annotations?{annotations:t.annotations}:void 0,...t.instructions?{instructions:t.instructions}:void 0}):G_(`Unknown tool: ${e.name}`)}),e.registerTool(`call_read_tool`,{description:`Execute a tool marked read-only after inspecting its schema with get_tool_details.`,inputSchema:ev,annotations:nv},async(e,t)=>{let i=r.get(e.name);return i?i.annotations?.readOnlyHint===!0?I_(i,e.arguments,B_(n,t)):G_(`Tool is not read-only: ${e.name}`):G_(`Unknown tool: ${e.name}`)}),e.registerTool(`call_write_tool`,{description:`Execute a writable or unclassified tool after inspecting its schema with get_tool_details.`,inputSchema:ev,annotations:rv},async(e,t)=>{let i=r.get(e.name);return i?i.annotations?.readOnlyHint===!0?G_(`Tool is read-only: ${e.name}`):I_(i,e.arguments,B_(n,t)):G_(`Unknown tool: ${e.name}`)})}function B_(e,t){return{env:e.env,extra:t,middlewares:e.middlewares,name:e.name,request:e.request?.(t),...e.sendNotification?{sendNotification:e.sendNotification}:void 0,vars:e.vars,version:e.version}}function V_(e,t){let n=U_(t),r=n.split(` `).filter(Boolean);return e.map(e=>({tool:e,score:H_(e,n,r)})).filter(({score:e})=>e>0).sort((e,t)=>t.score-e.score||e.tool.name.localeCompare(t.tool.name)).map(({tool:e})=>e)}function H_(e,t,n){let r=U_(e.name),i=U_(e.description??``);if(r===t)return 1e3;let a=r.startsWith(t)?100:r.includes(t)?50:0;for(let e of n)r.split(` `).includes(e)?a+=20:r.includes(e)&&(a+=10),i.includes(e)&&(a+=2);return a}function U_(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,` `).trim()}function W_(e){return{content:[{type:`text`,text:Pr(e)}]}}function G_(e){return{...W_({error:e}),isError:!0}}function K_(e,t,n=[],r){let i=Y_(q_(e,t,n),r);return Z_(i),i.sort((e,t)=>e.name.localeCompare(t.name))}function q_(e,t,n=[]){let r=[];for(let[i,a]of e){if(`_alias`in a||a.mcp===!1)continue;let e=[...t,i];if(`_group`in a&&a._group){let t=[...n,...a.middlewares??[]];a.root&&a.root.mcp!==!1&&r.push(J_(a.root,e,t)),r.push(...q_(a.commands,e,t))}else r.push(J_(a,e,n))}return r}function J_(e,t,n){let r=e.mcp===!1?void 0:e.mcp,i=e.output?Q_(e.output):void 0;return{name:r?.name??t.join(`_`),description:r?.description??e.description,inputSchema:$_(e.args,e.options),...i?{outputSchema:i}:void 0,...r?.annotations?{annotations:r.annotations}:void 0,...r?.instructions?{instructions:r.instructions}:void 0,command:e,...n.length>0?{middlewares:n}:void 0}}function Y_(e,t){if(!t)return e;let n=t.include?.map(X_),r=t.exclude?.map(X_)??[];return e.filter(e=>r.some(t=>t.test(e.name))?!1:!n||n.length===0||n.some(t=>t.test(e.name)))}function X_(e){let t=e.replace(/[|\\{}()[\]^$+?.]/g,`\\$&`).replace(/\*/g,`.*`);return RegExp(`^${t}$`)}function Z_(e){let t=new Set;for(let n of e){if(t.has(n.name))throw Error(`Duplicate MCP tool name: ${n.name}`);t.add(n.name)}}function Q_(e){let t=Tu(e);if(t.type===`object`)return t}function $_(e,t){let n={},r=[];for(let i of[e,t]){if(!i)continue;let e=Tu(i);Object.assign(n,e.properties??{}),r.push(...e.required??[])}return r.length>0?{type:`object`,properties:n,required:r}:{type:`object`,properties:n}}var ev,tv,nv,rv,iv=F((()=>{Ql(),gu(),Ir(),Eu(),ev=f.object({name:f.string().min(1).describe(`Exact tool name.`),arguments:f.record(f.string(),f.unknown()).default({}).describe(`Arguments from its schema.`)}),tv={destructiveHint:!1,idempotentHint:!0,openWorldHint:!1,readOnlyHint:!0},nv={destructiveHint:!1,idempotentHint:!0,openWorldHint:!0,readOnlyHint:!0},rv={destructiveHint:!0,idempotentHint:!1,openWorldHint:!0,readOnlyHint:!1}}));function av(e){return ov(e,e,new Map)}function ov(e,t,n){if(Array.isArray(e))return e.map(e=>ov(e,t,n));if(typeof e!=`object`||!e)return e;let r=e;if(typeof r.$ref==`string`&&r.$ref.startsWith(`#`)){let e=r.$ref;if(n.has(e))return n.get(e);let i=sv(t,e);if(typeof i!=`object`||!i||Array.isArray(i)){let r=ov(i,t,n);return n.set(e,r),r}let a={};n.set(e,a);let o=ov(i,t,n);return typeof o!=`object`||!o||Array.isArray(o)?(n.set(e,o),o):(Object.assign(a,o),a)}let i={};for(let e of Object.keys(r))i[e]=ov(r[e],t,n);return i}function sv(e,t){let n=t.slice(1);if(n===``||n===`/`)return e;let r=n.slice(1).split(`/`).map(e=>e.replace(/~1/g,`/`).replace(/~0/g,`~`)),i=e;for(let e of r){if(typeof i!=`object`||!i)throw Error(`Cannot resolve $ref "${t}": path segment "${e}" not found`);if(i=i[e],i===void 0)throw Error(`Cannot resolve $ref "${t}": "${e}" not found`)}return i}var cv=F((()=>{}));function lv(e,t={}){let n=px.get(e);if(!n)throw Error(`No commands registered on this CLI instance`);let r={},i=gx.get(e);i&&fv(r,[],i);for(let[e,t]of n)uv(r,dv(e),t);return{openapi:`3.2.0`,info:{title:t.title??e.name,version:t.version??`0.0.0`,...t.description??e.description?{description:t.description??e.description}:void 0},...t.servers?{servers:t.servers}:void 0,paths:r}}function uv(e,t,n){if(!(`_alias`in n)&&!(`_fetch`in n)){if(`_group`in n){n.root&&fv(e,t,n.root);for(let[r,i]of n.commands)uv(e,[...t,...dv(r)],i);return}fv(e,t,n)}}function dv(e){return e.split(/\s+/).filter(Boolean)}function fv(e,t,n){let r=n.args?Tu(n.args):void 0,i=n.options?Tu(n.options):void 0,a=n.output?Tu(n.output):void 0,o=bv(r),s=new Set(xv(r)),c=mv(t),l=pv(t,o,s);for(let r of l){let s=[];for(let e of r.args){let t=o[e]??{type:`string`};s.push({name:e,in:`path`,required:!0,schema:t})}if(c===`get`||c===`delete`)for(let[e,t]of Object.entries(bv(i)))s.push({name:e,in:`query`,...xv(i).includes(e)?{required:!0}:void 0,schema:t});let l={operationId:Sv(t,c,r.args),...n.description?{summary:n.description}:void 0,...s.length?{parameters:s}:void 0,...gv(c,i),responses:_v(a)},u=e[r.path]??{};u[c]=l,e[r.path]=u}}function pv(e,t,n){let r=Object.keys(t),i=r.findIndex(e=>!n.has(e)),a=i===-1?r.length:i,o=[];for(let t=a;t<=r.length;t++){let n=r.slice(0,t),i=n.map(e=>`{${e}}`);o.push({args:n,path:`/${[...e,...i].map(Cv).join(`/`)}`})}return o.length===0&&o.push({args:[],path:`/${e.map(Cv).join(`/`)}`}),o}function mv(e){let t=e.map(hv).join(` `).toLowerCase();return/\b(delete|remove|rm|destroy|clear)\b/.test(t)?`delete`:/\b(update|edit|modify|set|enable|disable|rename|patch)\b/.test(t)?`patch`:/\b(get|list|show|read|search|find|status|describe|info|health|check)\b/.test(t)?`get`:`post`}function hv(e){return e.replace(/([a-z0-9])([A-Z])/g,`$1 $2`)}function gv(e,t){return!t||e===`get`||e===`delete`?{}:{requestBody:{required:xv(t).length>0,content:{"application/json":{schema:t}}}}}function _v(e){return{200:{description:`Command completed successfully.`,content:{"application/json":{schema:{type:`object`,required:[`ok`,`data`,`meta`],properties:{ok:{const:!0},data:e??{},meta:yv()}}}}},400:vv(`Validation error.`),500:vv(`Command failed.`)}}function vv(e){return{description:e,content:{"application/json":{schema:{type:`object`,required:[`ok`,`error`,`meta`],properties:{ok:{const:!1},error:{type:`object`,required:[`code`,`message`],properties:{code:{type:`string`},message:{type:`string`},retryable:{type:`boolean`}}},meta:yv()}}}}}}function yv(){return{type:`object`,required:[`command`,`duration`],properties:{command:{type:`string`},duration:{type:`string`}}}}function bv(e){return e?.properties??{}}function xv(e){return e?.required??[]}function Sv(e,t,n){return`${t}${[...e,...n.length?[n.join(` `)]:[]].join(` `).replace(/(?:^|[\s_-]+)(\w)/g,(e,t)=>t.toUpperCase())}`}function Cv(e){return e.startsWith(`{`)&&e.endsWith(`}`)?e:encodeURIComponent(e)}async function wv(e,t={}){if(typeof e!=`string`&&!(e instanceof URL))return e;let n=await fetch(Tv(e,t.baseUrl));if(!n.ok)throw Error(`Failed to fetch OpenAPI spec from ${e}: ${n.status}`);return await n.json()}function Tv(e,t){if(e instanceof URL)return e;try{return new URL(e)}catch{if(t===void 0)throw Error(`Relative OpenAPI spec URL requires a fetch URL base: ${e}`);let n=new URL(t);return n.pathname.endsWith(`/`)||(n.pathname=`${n.pathname}/`),new URL(e,n)}}async function Ev(e,t,n={}){let r=av(structuredClone(e)),i=new Map,a=Ov(r.paths??{}),o=Iv(a),{config:s}=n;s?.compact&&jv(a);for(let{method:e,operation:c,path:l}of a){let a=Lv({method:e,mode:s?.mode??`operation`,namespaceInfo:o,operation:c,path:l}),u=e.toUpperCase(),d=(c.parameters??[]).filter(e=>e.in===`path`),p=(c.parameters??[]).filter(e=>e.in===`query`),m=Pv([...(c.parameters??[]).filter(e=>e.in===`header`),...s?.security===!1?[]:kv(r,c)]),h=c.requestBody?.content?.[`application/json`]?.schema,g=h?.properties??{},_=new Set(h?.required??[]),v;if(d.length>0){let e={};for(let t of d){let n=t.schema?qv(t.schema):f.string();t.description&&(n=n.describe(t.description)),e[t.name]=Jv(n)}v=f.object(e)}let y={},b=new Set;for(let e of p){let t=e.schema?qv(e.schema):f.string();e.required||(t=t.optional()),e.description&&(t=t.describe(e.description)),y[e.name]=Jv(t),b.add(e.name)}for(let[e,t]of Object.entries(g)){let n=qv(t);_.has(e)||(n=n.optional()),y[e]=n,b.add(e)}for(let e of m){let t=Fv(e.optionName,b);e.optionName=t;let n=e.schema?qv(e.schema):f.string();e.required||(n=n.optional()),n=n.describe(e.description??`${e.name} header`),y[t]=Jv(n),b.add(t)}let x=Object.keys(y).length>0?f.object(y):void 0;Wv(i,a,{description:c.summary??c.description,mcp:{annotations:Dv(e),...c.summary&&c.description&&c.summary!==c.description?{description:`${c.summary}\n\n${c.description}`}:void 0},args:v,options:x,run:Kv({basePath:n.basePath,fetch:t,forwardHeaders:s?.forwardHeaders,httpMethod:u,path:l,headerParams:m,pathParams:d,queryParams:p,bodyProps:g})})}return i}function Dv(e){let t=[`get`,`head`,`options`,`trace`].includes(e);return{destructiveHint:!t,idempotentHint:t||e===`delete`||e===`put`,openWorldHint:!0,readOnlyHint:t}}function Ov(e){let t=[];for(let[n,r]of Object.entries(e))for(let[e,i]of Object.entries(r))Yv.has(e)&&t.push({method:e,operation:i,path:n});return t}function kv(e,t){let n=e.components?.securitySchemes??{},r=t.security??e.security??[],i=[];for(let e of r)for(let t of Object.keys(e)){let e=n[t],r=Av(t,e);r&&i.push(r)}return i}function Av(e,t){if(t){if(t.type===`apiKey`&&t.in===`header`&&t.name)return{description:t.description??`${t.name} header`,in:`header`,name:t.name,required:!1,schema:{type:`string`}};if(t.type===`http`&&Xv.has(t.scheme?.toLowerCase()??``))return{description:t.description??`${e} authorization header`,in:`header`,name:`authorization`,required:!1,schema:{type:`string`}}}}function jv(e){for(let{operation:t}of e){for(let e of t.parameters??[])e.schema&&=Mv(e.schema);let e=t.requestBody?.content?.[`application/json`];e?.schema&&(e.schema=Mv(e.schema))}}function Mv(e,t=new Map){let n=t.get(e);if(n)return n;let r={...e};t.set(e,r),delete r.example,delete r.examples,typeof r.pattern==`string`&&r.pattern.length>Zv&&delete r.pattern,typeof r.format==`string`&&Qv.has(r.format)&&delete r.format;for(let e of[`allOf`,`anyOf`,`oneOf`,`prefixItems`]){if(!Array.isArray(r[e]))continue;let n=r[e].map(e=>Mv(e,t)).filter(e=>Object.keys(e).length>0);n.length>0?r[e]=n:delete r[e]}for(let e of[`additionalProperties`,`contains`,`items`,`not`,`propertyNames`]){let n=r[e];Nv(n)&&(r[e]=Mv(n,t))}for(let e of[`$defs`,`patternProperties`,`properties`]){let n=r[e];if(!Nv(n))continue;let i={};for(let[e,r]of Object.entries(n))i[e]=Nv(r)?Mv(r,t):r;r[e]=i}return r}function Nv(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Pv(e){let t=new Set,n=[];for(let r of e){let e=r.name.toLowerCase();t.has(e)||(t.add(e),n.push({...r,optionName:e}))}return n}function Fv(e,t){if(!t.has(e))return e;let n=`header-${e}`;if(!t.has(n))return n;for(let e=2;;e++){let r=`${n}-${e}`;if(!t.has(r))return r}}function Iv(e){let t=new Map,n=new Set;for(let{path:r}of e){t.set(r,(t.get(r)??0)+1);let e=zv(r);for(let t=1;t<e.length;t++)n.add(`/${e.slice(0,t).join(`/`)}`)}return{parentPaths:n,pathOperations:t}}function Lv(e){let{method:t,mode:n,namespaceInfo:r,operation:i,path:a}=e;if(n===`operation`)return[{name:i.operationId??`${t}_${a.replace(/[/{}]/g,`_`)}`}];let o=Rv(a,i),s=o.length===0||r.parentPaths.has(Bv(a))||(r.pathOperations.get(a)??0)>1,c=Uv(o,i.summary??i.description);return[...c.length>0?c:[{name:`root`}],...s?[{name:t}]:[]]}function Rv(e,t){return e.split(`/`).map(e=>Vv(e,t)).filter(Hv)}function zv(e){return Rv(e).map(e=>e.name)}function Bv(e){return`/${zv(e).join(`/`)}`}function Vv(e,t){if(!e)return;let n=e.startsWith(`{`)&&e.endsWith(`}`)?e.slice(1,-1):e,r=t?.parameters?.find(e=>e.in===`path`&&e.name===n)?.description;return{...r?{description:r}:void 0,name:n.replace(/[^\w.-]+/g,`-`)}}function Hv(e){return e!==void 0}function Uv(e,t){return!t||e.length===0?e:e.map((n,r)=>r===e.length-1&&!n.description?{...n,description:t}:n)}function Wv(e,t,n){let[r,...i]=t;if(r){if(i.length===0){e.set(r.name,n);return}Wv(Gv(e,r).commands,i,n)}}function Gv(e,t){let n=e.get(t.name);if(n&&`_group`in n)return!n.description&&t.description&&(n.description=t.description),n;let r={_group:!0,commands:new Map,...t.description?{description:t.description}:void 0};return e.set(t.name,r),r}function Kv(e){return async t=>{let{args:n={},options:r={}}=t,i=(e.basePath??``)+e.path;for(let t of e.pathParams){let e=n[t.name];e!==void 0&&(i=i.replace(`{${t.name}}`,String(e)))}let a=new URLSearchParams;for(let t of e.queryParams){let e=r[t.name];e!==void 0&&a.set(t.name,String(e))}let o,s=Object.keys(e.bodyProps);if(s.length>0){let e={};for(let t of s)r[t]!==void 0&&(e[t]=r[t]);Object.keys(e).length>0&&(o=JSON.stringify(e))}let c={path:i,method:e.httpMethod,headers:new Headers,body:o,query:a};for(let t of e.headerParams){let e=r[t.optionName];e!==void 0&&c.headers.set(t.name,String(e))}for(let n of e.forwardHeaders??[]){let e=t.request?.headers.get(n);!c.headers.has(n)&&e!=null&&c.headers.set(n,e)}o&&!c.headers.has(`content-type`)&&c.headers.set(`content-type`,`application/json`);let l=Tn(c),u=await On(await e.fetch(l));return u.ok?u.data:t.error({code:`HTTP_${u.status}`,message:typeof u.data==`object`&&u.data!==null&&`message`in u.data?String(u.data.message):typeof u.data==`string`?u.data:`HTTP ${u.status}`})}}function qv(e){return f.fromJSONSchema(e)}function Jv(e){let t=e instanceof f.ZodOptional,n=t?e.unwrap():e,r=(()=>{if(n instanceof f.ZodNumber)return t?f.coerce.number().optional():f.coerce.number();if(n instanceof f.ZodBoolean)return t?f.coerce.boolean().optional():f.coerce.boolean();if(n instanceof f.ZodUnion){let e=n._zod?.def?.options;if(e?.some(e=>e instanceof f.ZodNumber))return t?f.coerce.number().optional():f.coerce.number();if(e?.some(e=>e instanceof f.ZodBoolean))return t?f.coerce.boolean().optional():f.coerce.boolean()}})();if(!r)return e;let i=e.description??n.description;return i?r.describe(i):r}var Yv,Xv,Zv,Qv,$v=F((()=>{Cx(),jn(),cv(),Eu(),Yv=new Set([`delete`,`get`,`head`,`options`,`patch`,`post`,`put`,`trace`]),Xv=new Set([`basic`,`bearer`]),Zv=100,Qv=new Set([`date`,`date-time`,`duration`,`time`])}));async function ey(e,t={}){let n=ay(e);await oy(n,`initialize`,{protocolVersion:fy,capabilities:{},clientInfo:{name:`incur`,version:t.version??`1.0.0`}}),n.initialized=!0,await oy(n,`notifications/initialized`);let r=(await oy(n,`tools/list`)).tools??[];return ny(r)?{discovery:`progressive`,tools:await ry(n),session:n}:{tools:r,session:n}}function ty(e){let t=new Map;for(let n of e.tools){let r=n.inputSchema?cy(n.inputSchema):void 0,i=ly(n.outputSchema);t.set(n.name,{description:n.description,...n.annotations?{mcp:{annotations:n.annotations}}:void 0,...r?{options:r}:void 0,...i?{output:i}:void 0,async run(t){let r={name:n.name,arguments:{...t.args,...t.options}},i=await oy(e.session,`tools/call`,e.discovery===`progressive`?{name:n.annotations?.readOnlyHint===!0?`call_read_tool`:`call_write_tool`,arguments:r}:r);return i.isError?t.error({code:`MCP_TOOL_ERROR`,message:uy(i)}):dy(i)}})}return t}function ny(e){if(e.length!==4)return!1;let t=new Set(e.map(e=>e.name));return t.has(`search_tools`)&&t.has(`get_tool_details`)&&t.has(`call_read_tool`)&&t.has(`call_write_tool`)}async function ry(e){let t=[],n=0;for(;n!==void 0;){let r=await iy(e,`search_tools`,{query:``,limit:20,offset:n});for(let n of r.tools??[]){if(!n.name)continue;let r=await iy(e,`get_tool_details`,{name:n.name});r.name&&t.push(r)}if(r.nextOffset!==void 0&&r.nextOffset<=n)throw Error(`MCP tool catalog returned a non-advancing offset`);n=r.nextOffset}return t}async function iy(e,t,n){let r=await oy(e,`tools/call`,{name:t,arguments:n});if(r.isError)throw Error(uy(r)||`MCP tool failed: ${t}`);return dy(r)}function ay(e){return typeof e==`string`||e instanceof URL?{url:new URL(e),fetch:globalThis.fetch.bind(globalThis)}:{url:new URL(e.url),fetch:e.fetch??globalThis.fetch.bind(globalThis),...e.headers?{headers:e.headers}:void 0}}async function oy(e,t,n){let r=t.startsWith(`notifications/`),i=r?void 0:crypto.randomUUID(),a=new Headers(e.headers);a.set(`content-type`,`application/json`),a.set(`accept`,`application/json, text/event-stream`),e.id&&a.set(`mcp-session-id`,e.id),e.initialized&&a.set(`MCP-Protocol-Version`,fy);let o=JSON.stringify({jsonrpc:`2.0`,...i?{id:i}:void 0,method:t,params:n}),s=await e.fetch(new Request(e.url,{method:`POST`,headers:a,body:o})),c=s.headers.get(`mcp-session-id`);if(c&&(e.id=c),!s.ok)throw Error(`MCP HTTP ${s.status}`);if(r&&s.status===202)return{};let l=await s.text();if(!l)return{};let u=(s.headers.get(`content-type`)??``).includes(`text/event-stream`)?sy(l,i):JSON.parse(l);if(u.error)throw Error(u.error.message??`MCP request failed`);return u.result??{}}function sy(e,t){for(let n of e.split(/\r?\n\r?\n/)){let e=n.split(/\r?\n/).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
185
+ `);if(!e)continue;let r=JSON.parse(e);if(t===void 0||r.id===t)return r}throw Error(`MCP SSE response did not include the matching JSON-RPC message`)}function cy(e){let t=e.properties??{},n=new Set(e.required??[]),r={};for(let[e,i]of Object.entries(t)){let t=qv(i);n.has(e)||(t=t.optional()),typeof i.description==`string`&&(t=t.describe(i.description)),r[e]=Jv(t)}return Object.keys(r).length>0?f.object(r):void 0}function ly(e){if(!(!e||e.type!==`object`))try{return f.fromJSONSchema(e)}catch{return}}function uy(e){return(Array.isArray(e.content)?e.content:[]).map(e=>e.type===`text`?e.text:``).filter(Boolean).join(`
186
+ `)}function dy(e){if(e.structuredContent!==void 0)return e.structuredContent;let t=(Array.isArray(e.content)?e.content:[]).filter(e=>e.type===`text`).map(e=>e.text);if(t.length===1)try{return JSON.parse(t[0])}catch{return t[0]}return t}var fy,py=F((()=>{$v(),fy=`2025-06-18`}));function my(e,t,n){let r=[`# ${e}`];n&&r.push(``,n),r.push(``),r.push(`| Command | Description |`),r.push(`|---------|-------------|`);for(let n of t){let t=hy(e,n),i=n.description??``;r.push(`| \`${t}\` | ${i} |`)}return r.push(``,`Run \`${e} --llms-full\` for full manifest. Run \`${e} <command> --schema\` for argument details.`),r.join(`
187
+ `)}function hy(e,t){let n=t.name?`${e} ${t.name}`:e;if(!t.args)return n;let r=t.args.shape,i=Tu(t.args),a=new Set(i.required??[]),o=i.properties;return`${n} ${Object.keys(r).map(e=>{let t=o?.[e]?.type===`array`?`${e}...`:e;return a.has(e)?`<${t}>`:`[${t}]`}).join(` `)}`}function gy(e,t,n=new Map){if(!(n.size>0))return t.map(t=>yy(e,t)).join(`
188
188
 
189
- `);let r=[`# ${e}`],i;for(let a of t){let t=a.name?a.name.split(` `)[0]:``;if(t!==i&&(i=t,t)){let i=n.get(t),a=i?`## ${e} ${t}\n\n${i}`:`## ${e} ${t}`;r.push(a)}r.push(gy(e,a,t?3:2))}return r.join(`
189
+ `);let r=[`# ${e}`],i;for(let a of t){let t=a.name?a.name.split(` `)[0]:``;if(t!==i&&(i=t,t)){let i=n.get(t),a=i?`## ${e} ${t}\n\n${i}`:`## ${e} ${t}`;r.push(a)}r.push(yy(e,a,t?3:2))}return r.join(`
190
190
 
191
- `)}function my(e,t,n,r=new Map){if(n===0)return[{dir:``,content:hy(e,e,t,r,e)}];let i=new Map;for(let r of t){if(!r.name){let t=yy(e),n=i.get(t)??[];n.push(r),i.set(t,n);continue}let t=r.name.split(` `).slice(0,n).join(`-`),a=i.get(t)??[];a.push(r),i.set(t,a)}return[...i.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([t,i])=>{let a=i[0],o=a.name?a.name.split(` `).slice(0,n).join(` `):``;return{dir:t,content:hy(e,o?`${e} ${o}`:e,i,r,o||void 0)}})}function hy(e,t,n,r,i){let a=i?r.get(i):void 0,o=n.length===1&&n[0].description?n[0].description:void 0,s=a??o,c=s?`${s.replace(/\.$/,``)}. Run \`${t} --help\` for usage details.`:`Run \`${t} --help\` for usage details.`;return`${`---\n${ul().stringify({name:yy(t),description:c,requires_bin:e,command:t},{lineWidth:0}).trimEnd()}\n---`}\n\n${n.map(t=>gy(e,t)).join(`
191
+ `)}function _y(e,t,n,r=new Map){if(n===0)return[{dir:``,content:vy(e,e,t,r,e)}];let i=new Map;for(let r of t){if(!r.name){let t=Sy(e),n=i.get(t)??[];n.push(r),i.set(t,n);continue}let t=r.name.split(` `).slice(0,n).join(`-`),a=i.get(t)??[];a.push(r),i.set(t,a)}return[...i.entries()].sort(([e],[t])=>e.localeCompare(t)).map(([t,i])=>{let a=i[0],o=a.name?a.name.split(` `).slice(0,n).join(` `):``;return{dir:t,content:vy(e,o?`${e} ${o}`:e,i,r,o||void 0)}})}function vy(e,t,n,r,i){let a=i?r.get(i):void 0,o=n.length===1&&n[0].description?n[0].description:void 0,s=a??o,c=s?`${s.replace(/\.$/,``)}. Run \`${t} --help\` for usage details.`:`Run \`${t} --help\` for usage details.`;return`${`---\n${pl().stringify({name:Sy(t),description:c,requires_bin:e,command:t},{lineWidth:0}).trimEnd()}\n---`}\n\n${n.map(t=>yy(e,t)).join(`
192
192
 
193
193
  ---
194
194
 
195
- `)}`}function gy(e,t,n=1){let r=t.name?`${e} ${t.name}`:e,i=[],a=e=>`#`.repeat(e),o=`${a(n)} ${r}`;t.description&&(o+=`\n\n${t.description}`),i.push(o);let s=a(n+1);if(t.args){let e=t.args.shape,n=Su(t.args),r=new Set(n.required??[]),a=n.properties,o=Object.entries(e).map(([e,t])=>{let n=a?.[e];return`| \`${e}\` | \`${by(n)}\` | ${r.has(e)?`yes`:`no`} | ${t.description??``} |`});i.push(`${s} Arguments\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n${o.join(`
196
- `)}`)}if(t.env){let e=t.env.shape,n=Su(t.env),r=new Set(n.required??[]),a=n.properties,o=Object.entries(e).map(([e,t])=>{let n=a?.[e],i=by(n),o=n?.default===void 0?``:String(n.default),s=r.has(e)?`yes`:`no`,c=t.description??``;return`| \`${e}\` | \`${i}\` | ${s} | ${o?`\`${o}\``:``} | ${c} |`});i.push(`${s} Environment Variables\n\n| Name | Type | Required | Default | Description |\n|------|------|----------|---------|-------------|\n${o.join(`
197
- `)}`)}if(t.options){let e=t.options.shape,n=Su(t.options).properties,r=Object.entries(e).map(([e,t])=>{let r=n?.[e],i=by(r),a=r?.default===void 0?``:String(r.default),o=t.description??``,s=r?.deprecated?`**Deprecated.** ${o}`:o;return`| \`--${e}\` | \`${i}\` | ${a?`\`${a}\``:``} | ${s} |`});i.push(`${s} Options\n\n| Flag | Type | Default | Description |\n|------|------|---------|-------------|\n${r.join(`
198
- `)}`)}if(t.output){let e=Su(t.output),n=vy(e);if(n)i.push(`${s} Output\n\n${n}`);else{let t=by(e);i.push(`${s} Output\n\nType: \`${t}\``)}}if(t.examples&&t.examples.length>0){let n=t.examples.map(t=>`${t.description?`# ${t.description}\n`:``}${e} ${t.command}`);i.push(`${s} Examples\n\n\`\`\`sh\n${n.join(`
195
+ `)}`}function yy(e,t,n=1){let r=t.name?`${e} ${t.name}`:e,i=[],a=e=>`#`.repeat(e),o=`${a(n)} ${r}`;t.description&&(o+=`\n\n${t.description}`),i.push(o);let s=a(n+1);if(t.args){let e=t.args.shape,n=Tu(t.args),r=new Set(n.required??[]),a=n.properties,o=Object.entries(e).map(([e,t])=>{let n=a?.[e];return`| \`${e}\` | \`${Cy(n)}\` | ${r.has(e)?`yes`:`no`} | ${t.description??``} |`});i.push(`${s} Arguments\n\n| Name | Type | Required | Description |\n|------|------|----------|-------------|\n${o.join(`
196
+ `)}`)}if(t.env){let e=t.env.shape,n=Tu(t.env),r=new Set(n.required??[]),a=n.properties,o=Object.entries(e).map(([e,t])=>{let n=a?.[e],i=Cy(n),o=n?.default===void 0?``:String(n.default),s=r.has(e)?`yes`:`no`,c=t.description??``;return`| \`${e}\` | \`${i}\` | ${s} | ${o?`\`${o}\``:``} | ${c} |`});i.push(`${s} Environment Variables\n\n| Name | Type | Required | Default | Description |\n|------|------|----------|---------|-------------|\n${o.join(`
197
+ `)}`)}if(t.options){let e=t.options.shape,n=Tu(t.options).properties,r=Object.entries(e).map(([e,t])=>{let r=n?.[e],i=Cy(r),a=r?.default===void 0?``:String(r.default),o=t.description??``,s=r?.deprecated?`**Deprecated.** ${o}`:o;return`| \`--${e}\` | \`${i}\` | ${a?`\`${a}\``:``} | ${s} |`});i.push(`${s} Options\n\n| Flag | Type | Default | Description |\n|------|------|---------|-------------|\n${r.join(`
198
+ `)}`)}if(t.output){let e=Tu(t.output),n=xy(e);if(n)i.push(`${s} Output\n\n${n}`);else{let t=Cy(e);i.push(`${s} Output\n\nType: \`${t}\``)}}if(t.examples&&t.examples.length>0){let n=t.examples.map(t=>`${t.description?`# ${t.description}\n`:``}${e} ${t.command}`);i.push(`${s} Examples\n\n\`\`\`sh\n${n.join(`
199
199
 
200
200
  `)}\n\`\`\``)}return t.hint&&i.push(`> ${t.hint}`),i.join(`
201
201
 
202
- `)}function _y(e){let t=e.map(e=>({name:e.name,description:e.description,hint:e.hint,args:e.args?Su(e.args):void 0,env:e.env?Su(e.env):void 0,options:e.options?Su(e.options):void 0,output:e.output?Su(e.output):void 0}));return h(`sha256`).update(JSON.stringify(t)).digest(`hex`).slice(0,16)}function vy(e,t=``){if(e.type!==`object`)return;let n=e.properties;if(!n||Object.keys(n).length===0)return;let r=new Set(e.required??[]),i=[];for(let[e,a]of Object.entries(n)){let n=t?`${t}.${e}`:e,o=by(a),s=r.has(e)?`yes`:`no`,c=a.description??``;if(i.push(`| \`${n}\` | \`${o}\` | ${s} | ${c} |`),a.type===`object`&&a.properties){let e=vy(a,n);if(e){let t=e.split(`
203
- `);i.push(...t.slice(2))}}if(a.type===`array`&&a.items){let e=a.items;if(e.type===`object`&&e.properties){let t=vy(e,`${n}[]`);if(t){let e=t.split(`
202
+ `)}function by(e){let t=e.map(e=>({name:e.name,description:e.description,hint:e.hint,args:e.args?Tu(e.args):void 0,env:e.env?Tu(e.env):void 0,options:e.options?Tu(e.options):void 0,output:e.output?Tu(e.output):void 0}));return g(`sha256`).update(JSON.stringify(t)).digest(`hex`).slice(0,16)}function xy(e,t=``){if(e.type!==`object`)return;let n=e.properties;if(!n||Object.keys(n).length===0)return;let r=new Set(e.required??[]),i=[];for(let[e,a]of Object.entries(n)){let n=t?`${t}.${e}`:e,o=Cy(a),s=r.has(e)?`yes`:`no`,c=a.description??``;if(i.push(`| \`${n}\` | \`${o}\` | ${s} | ${c} |`),a.type===`object`&&a.properties){let e=xy(a,n);if(e){let t=e.split(`
203
+ `);i.push(...t.slice(2))}}if(a.type===`array`&&a.items){let e=a.items;if(e.type===`object`&&e.properties){let t=xy(e,`${n}[]`);if(t){let e=t.split(`
204
204
  `);i.push(...e.slice(2))}}}}return`| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n${i.join(`
205
- `)}`}function yy(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,`-`).replace(/-{2,}/g,`-`).replace(/^-|-$/g,``)}function by(e){if(!e)return`unknown`;let t=e.type;return t?t===`integer`?`number`:t:`unknown`}var xy=L((()=>{fl(),Cu()}));async function Sy(e,t={}){let n=Ye(),r=t.command??wy(t.cli??e,n),i=t.agents??[],a=i.length===1&&i[0]===`amp`,o=[];if(!a){let a=[r,`--name`,e,`-y`];t.global!==!1&&a.push(`-g`);for(let e of i.filter(e=>e!==`amp`))a.push(`-a`,e);let[s,...c]=n.split(` `),{stdout:l}=await Ay(s,[...c,`add-mcp`,...a]);o.push(...l.split(`
206
- `).filter(e=>e.includes(`✓`)||e.includes(`✔`)).map(e=>e.replace(/[│┃|]/g,``).replace(/.*[✓✔]\s*/,``).replace(/:.*/,``).trim()).filter(Boolean))}return(i.length===0||i.includes(`amp`))&&Cy(e,r)&&o.push(`Amp`),{command:r,agents:o}}function Cy(e,t){let o=u(x(),`.config`,`amp`,`settings.json`),s={};if(n(o))try{s=JSON.parse(i(o,`utf-8`))}catch{return!1}let[c,...d]=ky(t);if(!c)return!1;let f=s[`amp.mcpServers`]??{};f[e]={command:c,args:d},s[`amp.mcpServers`]=f;let p=l(o);return n(p)||r(p,{recursive:!0}),a(o,JSON.stringify(s,null,2)+`
207
- `),!0}function wy(e,t){return Ey(e)?`${e} --mcp`:`${t} ${Oy(e)} --mcp`}function Ty(){let e=(process.argv[1]?.replace(/\\/g,`/`))?.match(/^(.+)\/node_modules\/(.+)$/);return e?{root:e[1],entry:e[2]}:null}function Ey(e){let t=process.argv[1];if(!t)return!1;let n=Ty();if(n)return!n.entry.startsWith(`.bin/`)&&!Dy(n.root,e);let r=t.replace(/\\/g,`/`).split(`/`).pop();return r===e||r===`${e}.cmd`||r===`${e}.ps1`}function Dy(e,t){try{let n=JSON.parse(i(u(e,`package.json`),`utf-8`));return[n.dependencies,n.devDependencies,n.optionalDependencies,n.peerDependencies].some(e=>t in(e??{}))}catch{return!1}}function Oy(e){let t=Ty();if(!t)return e;try{let n=JSON.parse(i(u(t.root,`package.json`),`utf-8`)).dependencies??{},r=n[e];if(!r||Object.keys(n).length!==1)return e;if(/^https?:\/\//.test(r)||r.startsWith(`file:`))return r;if(/^\d/.test(r))return`${e}@${r}`}catch{}return e}function ky(e){let t=[],n=``,r=null;for(let i=0;i<e.length;i++){let a=e[i];r?a===r?r=null:n+=a:a===`"`||a===`'`?r=a:a===` `?(n&&t.push(n),n=``):n+=a}return n&&t.push(n),t}function Ay(e,t){return new Promise((n,r)=>{m(e,t,(e,t,i)=>{if(e){let n=i?.trim()||t?.trim()||e.message;r(Error(n))}else n({stdout:t,stderr:i})})})}var jy=L((()=>{Ze()}));function My(){return Hy.filter(e=>e.detect())}function Ny(t,n={}){let r=n.global!==!1,i=n.cwd||process.cwd(),a=r?J:i,o=s.join(a,`.agents`,`skills`),c=n.agents??My(),l=[],u=[];for(let n of Fy(t)){let t=s.join(o,n.name);Ly(t),e.mkdirSync(t,{recursive:!0}),n.root?e.copyFileSync(s.join(n.dir,`SKILL.md`),s.join(t,`SKILL.md`)):e.cpSync(n.dir,t,{recursive:!0}),l.push(t);for(let a of c){if(a.universal)continue;let o=r?a.globalSkillsDir:s.join(i,a.projectSkillsDir),c=s.join(o,n.name);if(Ry(c)!==Ry(t))try{Ly(c),e.mkdirSync(s.dirname(c),{recursive:!0});let n=Ry(s.dirname(c)),r=Ry(t),i=s.relative(n,r);e.symlinkSync(i,c),u.push({agent:a.name,path:c,mode:`symlink`})}catch{try{e.cpSync(t,c,{recursive:!0}),u.push({agent:a.name,path:c,mode:`copy`})}catch{}}}}return{paths:l,agents:u}}function Py(e,t={}){let n=t.global!==!1,r=t.cwd||process.cwd(),i=n?J:r;Ly(s.join(i,`.agents`,`skills`,e));for(let t of My()){if(t.universal)continue;let i=n?t.globalSkillsDir:s.join(r,t.projectSkillsDir);Ly(s.join(i,e))}}function Fy(t){let n=[];function r(t){let i;try{i=e.readdirSync(t,{withFileTypes:!0})}catch{return}for(let a of i){if(!a.isDirectory())continue;let i=s.join(t,a.name),o=s.join(i,`SKILL.md`);if(e.existsSync(o)){let t=e.readFileSync(o,`utf8`).match(/^name:\s*(.+)$/m);n.push({name:Iy(t?.[1]??a.name),dir:i})}r(i)}}r(t);let i=s.join(t,`SKILL.md`);if(e.existsSync(i)){let r=Iy(e.readFileSync(i,`utf8`).match(/^name:\s*(.+)$/m)?.[1]??`skill`);n.some(e=>e.name===r)||n.push({name:r,dir:t,root:!0})}return n}function Iy(e){return e.trim().replace(/[/\\]/g,`-`).replace(/\.\./g,``).slice(0,255)}function Ly(t){try{e.lstatSync(t).isSymbolicLink()?e.unlinkSync(t):e.rmSync(t,{recursive:!0,force:!0})}catch{}}function Ry(t){try{return e.realpathSync(t)}catch{let n=s.dirname(t);if(n===t)return t;try{return s.join(e.realpathSync(n),s.relative(n,t))}catch{return t}}}var J,zy,By,Vy,Hy,Uy=L((()=>{J=y.homedir(),zy=process.env.XDG_CONFIG_HOME||s.join(J,`.config`),By=process.env.CLAUDE_CONFIG_DIR?.trim()||s.join(J,`.claude`),Vy=process.env.CODEX_HOME?.trim()||s.join(J,`.codex`),Hy=[{name:`Amp`,globalSkillsDir:s.join(zy,`agents`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>e.existsSync(s.join(zy,`amp`))},{name:`Cline`,globalSkillsDir:s.join(J,`.agents`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>e.existsSync(s.join(J,`.cline`))},{name:`Codex`,globalSkillsDir:s.join(Vy,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>e.existsSync(Vy)},{name:`Cursor`,globalSkillsDir:s.join(J,`.cursor`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>e.existsSync(s.join(J,`.cursor`))},{name:`Gemini CLI`,globalSkillsDir:s.join(J,`.gemini`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>e.existsSync(s.join(J,`.gemini`))},{name:`GitHub Copilot`,globalSkillsDir:s.join(J,`.copilot`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>e.existsSync(s.join(J,`.copilot`))},{name:`Kimi CLI`,globalSkillsDir:s.join(zy,`agents`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>e.existsSync(s.join(J,`.kimi`))},{name:`OpenCode`,globalSkillsDir:s.join(zy,`opencode`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>e.existsSync(s.join(zy,`opencode`))},{name:`Claude Code`,globalSkillsDir:s.join(By,`skills`),projectSkillsDir:`.claude/skills`,universal:!1,detect:()=>e.existsSync(By)},{name:`Windsurf`,globalSkillsDir:s.join(J,`.codeium`,`windsurf`,`skills`),projectSkillsDir:`.windsurf/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.codeium`,`windsurf`))},{name:`Continue`,globalSkillsDir:s.join(J,`.continue`,`skills`),projectSkillsDir:`.continue/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.continue`))},{name:`Roo`,globalSkillsDir:s.join(J,`.roo`,`skills`),projectSkillsDir:`.roo/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.roo`))},{name:`Kilo`,globalSkillsDir:s.join(J,`.kilocode`,`skills`),projectSkillsDir:`.kilocode/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.kilocode`))},{name:`Goose`,globalSkillsDir:s.join(zy,`goose`,`skills`),projectSkillsDir:`.goose/skills`,universal:!1,detect:()=>e.existsSync(s.join(zy,`goose`))},{name:`Augment`,globalSkillsDir:s.join(J,`.augment`,`skills`),projectSkillsDir:`.augment/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.augment`))},{name:`Trae`,globalSkillsDir:s.join(J,`.trae`,`skills`),projectSkillsDir:`.trae/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.trae`))},{name:`Junie`,globalSkillsDir:s.join(J,`.junie`,`skills`),projectSkillsDir:`.junie/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.junie`))},{name:`Crush`,globalSkillsDir:s.join(zy,`crush`,`skills`),projectSkillsDir:`.crush/skills`,universal:!1,detect:()=>e.existsSync(s.join(zy,`crush`))},{name:`Kiro CLI`,globalSkillsDir:s.join(J,`.kiro`,`skills`),projectSkillsDir:`.kiro/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.kiro`))},{name:`Qwen Code`,globalSkillsDir:s.join(J,`.qwen`,`skills`),projectSkillsDir:`.qwen/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.qwen`))},{name:`OpenHands`,globalSkillsDir:s.join(J,`.openhands`,`skills`),projectSkillsDir:`.openhands/skills`,universal:!1,detect:()=>e.existsSync(s.join(J,`.openhands`))}]}));async function Wy(e,t,n={}){let{depth:r=1,description:i,global:a=!0}=n,o=n.cwd??(a?qy():process.cwd());await ll();let s=new Map;i&&s.set(e,i);let l=my(e,Qb(t,[],s,n.rootCommand),r,s),u=await C.mkdtemp(c.join(b.tmpdir(),`incur-skills-${e}-`));try{let r=[];for(let t of l){let n=t.dir?c.join(u,t.dir,`SKILL.md`):c.join(u,`SKILL.md`);await C.mkdir(c.dirname(n),{recursive:!0}),await C.writeFile(n,`${t.content}\n`);let i=rx(t.content);r.push({name:i.name??(t.dir||e),description:i.description})}if(n.include)for(let t of n.include){let n=t===`_root`?`SKILL.md`:c.join(t,`SKILL.md`);for await(let i of C.glob(n,{cwd:o}))try{let n=await C.readFile(c.resolve(o,i),`utf8`),a=rx(n),s=t===`_root`?a.name??e:c.basename(c.dirname(i)),l=c.join(u,s,`SKILL.md`);await C.mkdir(c.dirname(l),{recursive:!0}),await C.writeFile(l,n),r.some(e=>e.name===s)||r.push({name:s,description:a.description,external:!0})}catch{}}let{paths:i,agents:s}=Ny(u,{global:a,cwd:o}),d=new Set(i.map(e=>c.basename(e))),f=Xy(e);if(f?.skills)for(let e of f.skills)d.has(e)||Py(e,{global:a,cwd:o});return Yy(e,_y(Qb(t,[],new Map,n.rootCommand)),[...d],[...i,...s.map(e=>e.path)]),{skills:r.sort((e,t)=>e.name.localeCompare(t.name)),paths:i,agents:s}}finally{await C.rm(u,{recursive:!0,force:!0})}}async function Gy(e,t,n={}){let{depth:r=1,description:i}=n,a=n.cwd??process.cwd();await ll();let o=new Map;i&&o.set(e,i);let s=my(e,Qb(t,[],o,n.rootCommand),r,o),l=[],u=Zy(e,{cwd:a});for(let t of s){let n=rx(t.content),r=n.name??(t.dir||e);l.push({name:r,description:n.description,installed:u.has(r)})}if(n.include)for(let t of n.include){let n=t===`_root`?`SKILL.md`:c.join(t,`SKILL.md`);for await(let r of C.glob(n,{cwd:a}))try{let n=rx(await C.readFile(c.resolve(a,r),`utf8`)),i=t===`_root`?n.name??e:c.basename(c.dirname(r));l.some(e=>e.name===i)||l.push({name:i,description:n.description,installed:u.has(i)})}catch{}}return l.sort((e,t)=>e.name.localeCompare(t.name))}function Ky(e,t={}){return Zy(e,t).size>0}function qy(){let e=process.argv[1];if(!e)return process.cwd();let n=c.dirname((()=>{try{return t.realpathSync(e)}catch{return process.execPath}})()),r=c.parse(n).root;for(;n!==r;){try{return t.accessSync(c.join(n,`package.json`)),n}catch{}n=c.dirname(n)}return process.cwd()}function Jy(e){let t=process.env.XDG_DATA_HOME||c.join(b.homedir(),`.local`,`share`);return c.join(t,`incur`,`${e}.json`)}function Yy(e,n,r,i){let a=Jy(e),o=c.dirname(a);t.existsSync(o)||t.mkdirSync(o,{recursive:!0}),t.writeFileSync(a,JSON.stringify({hash:n,skills:r,paths:i,at:new Date().toISOString()})+`
208
- `)}function Xy(e){try{return JSON.parse(t.readFileSync(Jy(e),`utf-8`))}catch{return}}function Zy(e,t={}){let n=Xy(e);if(!n?.skills?.length)return new Set;if(n.paths?.length){let e=n.paths.filter(e=>Qy(e)).map(e=>c.basename(e));return new Set(e)}let r=t.cwd??process.cwd(),i=[c.join(b.homedir(),`.agents`,`skills`),c.join(r,`.agents`,`skills`)],a=n.skills.filter(e=>i.some(t=>Qy(c.join(t,e))));return new Set(a)}function Qy(e){return t.existsSync(c.join(e,`SKILL.md`))}function $y(e){return Xy(e)?.hash}var eb=L((()=>{bx(),Uy(),fl(),xy()}));function tb(e,t){let n=typeof e==`string`?e:e.name,r=typeof e==`string`?t??{}:e,i=r.version??Mt,a=`run`in r?r:void 0,o=`fetch`in r&&r.fetch!==void 0?r.fetch:void 0,s=o===void 0?void 0:Pb(o),c=o===void 0?void 0:Fb(o),l=new Map,u=[],d=[],f=rb(r.mcp?.name??n,i??`0.0.0`,{instructions:r.mcp?.instructions,stateless:r.mcp?.stateless,title:r.mcp?.title,tools:r.mcp?.tools});r.openapi&&s&&d.push((async()=>{let e=await Cv(await xv(r.openapi,{baseUrl:c}),s,{config:r.openapiConfig});for(let[t,n]of e)l.set(t,n)})());let p={name:n,description:r.description,env:r.env,vars:r.vars,command(e,t){if(typeof e==`string`){if(Nb(t))return d.push((async()=>{let n=Qv(await Zv(t.mcp)),r={_group:!0,description:t.description,commands:n,...t.outputPolicy?{outputPolicy:t.outputPolicy}:void 0};Bb(e,r,_x.get(p)),l.set(e,r)})()),p;if(t&&`fetch`in t&&Mb(t.fetch)){let n=Pb(t.fetch);return t.openapi?(d.push((async()=>{let r=await Cv(await xv(t.openapi,{baseUrl:Fb(t.fetch)}),n,{basePath:t.basePath,config:t.openapiConfig}),i={_group:!0,description:t.description,commands:r,...t.outputPolicy?{outputPolicy:t.outputPolicy}:void 0,...t.mcp===!1?{mcp:!1}:void 0};Bb(e,i,_x.get(p)),l.set(e,i)})()),p):(l.set(e,{_fetch:!0,basePath:t.basePath,description:t.description,fetch:n,...t.outputPolicy?{outputPolicy:t.outputPolicy}:void 0}),p)}if(Bb(e,t,_x.get(p)),l.set(e,t),t.aliases)for(let n of t.aliases)l.set(n,{_alias:!0,target:e});return p}let n=px.get(e),r=e,i=ux.get(r),a=gx.get(r),o=fx.get(r),s=dx.get(r),c=n&&i.size===0?n:{_group:!0,description:r.description,commands:i,...n?{root:n}:void 0,...a?{outputPolicy:a}:void 0,...o?.length?{middlewares:o}:void 0};if(s?.length?d.push(Promise.all(s).then(()=>{Bb(r.name,c,_x.get(p))})):Bb(r.name,c,_x.get(p)),l.set(r.name,c),n){let t=vx.get(e);if(t)for(let n of t)l.set(n,{_alias:!0,target:e.name})}return p},async fetch(e){d.length>0&&await Promise.all(d);let t=_x.get(p);return ob(n,l,e,{description:r.description,envSchema:r.env,globals:t,mcpHandler:f,middlewares:u,name:n,rootCommand:a,vars:r.vars,version:i})},fs(e){let t=hu();return d.push((async()=>{let n=t?await gu(t):await Ob(await Db(e));for(let e of n){if(!kb(e.command))throw Error(`Expected the default export from '${e.file}' to be created with \`Cli.command()\`.`);Ab(l,e.segments,e.command,e.file,_x.get(p))}})()),p},async serve(e=process.argv.slice(2),t={}){if(await vt(e))return;d.length>0&&await Promise.all(d);let o=_x.get(p);return nb(n,l,e,{...t,aliases:r.aliases,banner:r.banner,config:r.config,description:r.description,envSchema:r.env,format:r.format,globals:o,mcp:r.mcp,middlewares:u,outputPolicy:r.outputPolicy,rootCommand:a,rootFetch:s,sync:r.sync,update:r.update,vars:r.vars,version:i})},use(e){return u.push(e),p}};if(a&&px.set(p,a),a&&r.aliases&&vx.set(p,r.aliases),r.options&&mx.set(p,r.options),r.config!==void 0&&hx.set(p,!0),r.outputPolicy&&gx.set(p,r.outputPolicy),r.globals){_x.set(p,{schema:r.globals,alias:r.globalAlias});let e=[`verbose`,`format`,`json`,`llms`,`llmsFull`,`mcp`,`help`,`incurBinaryApply`,`incurUpdateCheck`,`update`,`version`,`schema`,`filterOutput`,`tokenLimit`,`tokenOffset`,`tokenCount`,...r.config?.flag?[r.config.flag,`no${r.config.flag[0].toUpperCase()}${r.config.flag.slice(1)}`]:[]],t=Object.keys(r.globals.shape);for(let n of t)if(e.includes(n))throw Error(`Global option '${n}' conflicts with a built-in flag. Choose a different name.`);let n=new Set([`h`]);if(r.globalAlias){for(let[e,t]of Object.entries(r.globalAlias))if(n.has(t))throw Error(`Global alias '-${t}' for '${e}' conflicts with a built-in short flag. Choose a different alias.`)}}return fx.set(p,u),ux.set(p,l),dx.set(p,d),p}async function nb(e,t,n,r={}){let i=r.stdout??(e=>process.stdout.write(e)),a=r.exit??(e=>process.exit(e)),o=process.stdout.isTTY===!0,s=o,c=r.config!==void 0,l=r.config?.flag,u=ox(e,r.aliases);function d(e){i(e.endsWith(`
209
- `)?e:`${e}\n`)}async function f(){if(!r.banner||w)return;let e=typeof r.banner==`function`?{render:r.banner,mode:`all`}:r.banner,t=e.mode??`all`;if(t===`all`||t===(s?`human`:`agent`))try{let t=await e.render();t&&d(t)}catch{}}let p;try{p=db(n,{configFlag:l})}catch(e){let t=e instanceof Error?e.message:String(e);d(s?Vb({code:`UNKNOWN`,message:t}):pl({code:`UNKNOWN`,message:t},`toon`)),a(1);return}let{fullOutput:m,format:h,formatExplicit:g,filterOutput:_,tokenLimit:v,tokenOffset:y,tokenCount:b,llms:x,llmsFull:S,mcp:C,help:w,update:T,updateCheck:E,version:D,schema:O,configPath:k,configDisabled:A,rest:ee}=p;s=o&&!g;let j={...typeof r.update==`object`?r.update:void 0,binary:jt!==void 0,version:r.version},te={},M=ee;function N(e){if(!r.globals)return!0;try{let t=Il(ee,r.globals.schema,r.globals.alias,{validate:e});return e&&(te=t.parsed),M=t.rest,!0}catch(e){let t=e instanceof Error?e.message:String(e);return d(s?Vb({code:`UNKNOWN`,message:t}):pl({code:`UNKNOWN`,message:t},`toon`)),a(1),!1}}if(!N(!1))return;if(h===`yaml`&&await ll(),E){if(r.update!==!1)try{await $e(e,j)}catch{}return}if(T&&!w){try{let t=await et(e,j);if(s){let e=[t.deferred?`✓ Update staged for ${t.name}`:`✓ Updated ${t.name}`];t.command&&e.push(` ${t.command}`),t.deferred&&e.push(` Installation will finish after this process exits.`),d(e.join(`
210
- `))}else d(pl(t,h))}catch(e){let t={code:`UPDATE_FAILED`,message:e instanceof Error?e.message:String(e)};d(s?Vb(t):pl(t,h)),a(1)}return}if(C){await A_(r.mcp?.name??e,r.version??`0.0.0`,t,{middlewares:r.middlewares,env:r.envSchema,vars:r.vars,version:r.version,...r.mcp?.instructions?{instructions:r.mcp.instructions}:void 0,...r.mcp?.title?{title:r.mcp.title}:void 0,...r.mcp?.tools?{tools:r.mcp.tools}:void 0});return}let ne=process.env.COMPLETE;if(ne){let a=n.indexOf(`--`),o=a===-1?n:n.slice(a+1);if(o.length===0)i([e,...r.aliases??[]].map(e=>tn(ne,e)).join(`
211
- `));else{let e=Number(process.env._COMPLETE_INDEX??o.length-1),n=nn(t,r.rootCommand,o,e,r.globals?{schema:r.globals.schema,alias:r.globals.alias}:void 0),a=o[e]??``,s=o.slice(0,e).filter(e=>!e.startsWith(`-`));if(s.length<=1)for(let e of Jl)e.name.startsWith(a)&&!n.some(t=>t.value===e.name)&&n.push({value:e.name,description:e.description,...e.subcommands?{noSpace:!0}:void 0});else if(s.length===2){let e=s[s.length-1],t=Wl(e);if(t?.subcommands)for(let e of t.subcommands)for(let t of[e.name,...e.aliases??[]])t.startsWith(a)&&!n.some(e=>e.value===t)&&n.push({value:t,description:e.description})}let c=rn(ne,n);c&&i(c)}return}let re;if(!x&&!S&&!O&&!w&&!T&&!E&&!D){let n=vb(M,e,`skills`)!==-1,i=vb(M,e,`mcp`)!==-1;if(!n&&!i){let n=$y(e);n&&Ky(e,{cwd:r.sync?.cwd})&&_y(Qb(t,[],new Map,r.rootCommand))!==n&&(re={description:`Skills are out of date:`,commands:[{command:process.env.npm_config_user_agent||process.env.npm_execpath?`${Ye()} ${Oy(e)} skills add`:`${u} skills add`,description:`sync outdated skills`}]})}}if(x||S){let n=t,i=[],a=r.description,o=r.rootCommand;for(let e of M){let t=n.get(e);if(!t)break;let r=zb(n,t);if(Ib(r))n=r.commands,a=r.description,o=r.root,i.push(e);else{n=new Map([[e,r]]),o=void 0;break}}i.length===0&&(o=r.rootCommand);let s=i.length>0?[]:i;if(S){if(!g||h===`md`){let t=new Map,r=Qb(n,s,t,o);d(py(i.length>0?`${e} ${i.join(` `)}`:e,r,t));return}d(pl(Yb(n,i,r.globals?.schema,o),h));return}if(!g||h===`md`){let t=Qb(n,s,new Map,o);d(dy(i.length>0?`${e} ${i.join(` `)}`:e,t,a));return}d(pl(qb(n,i,r.globals?.schema,o),h));return}let ie=vb(M,e,`completions`);if(ie!==-1){let t=M[ie+1];if(w||!t){let t=Wl(`completions`);d(Zl(`${e} completions`,{args:t.args,description:t.description,hideGlobalOptions:!0,hint:t.hint?.(e)}));return}if(!ql.includes(t)){d(Vb({code:`INVALID_SHELL`,message:`Unknown shell '${t}'. Supported: ${ql.join(`, `)}`})),a(1);return}d([e,...r.aliases??[]].map(e=>tn(t,e)).join(`
212
- `));return}let ae=vb(M,e,`skills`);if(ae!==-1){let o=Wl(`skills`),c=M[ae+1],l=c?Gl(o,c):void 0;if(c&&!l){let t=$t(c,o.subcommands?.flatMap(e=>[e.name,...e.aliases??[]])??[]),r=`'${c}' is not a command for '${e} skills'.${t?` Did you mean '${t}'?`:``}`,i=[];if(t){let r=n.map(e=>e===c?t:e);i.push({command:`${e} ${r.join(` `)}`})}i.push({command:`${e} skills --help`,description:`see all available commands`});let l={description:i.length===1?`Suggested command:`:`Suggested commands:`,commands:i};s?(d(Vb({code:`COMMAND_NOT_FOUND`,message:r})),d(Hb(l))):d(pl({code:`COMMAND_NOT_FOUND`,message:r,cta:l},`toon`)),a(1);return}if(!c){d(yb(e,o));return}if(l?.name===`list`){if(w){d(bb(e,o,`list`));return}try{let n=await Gy(e,t,{cwd:r.sync?.cwd,depth:r.sync?.depth??1,description:r.description,include:r.sync?.include,rootCommand:r.rootCommand});if(n.length===0){d(`No skills found.`);return}let i=[],a=Math.max(...n.map(e=>e.name.length));for(let e of n){let t=e.installed?`✓`:`✗`,n=e.description?`${` `.repeat(a-e.name.length)} ${e.description}`:``;i.push(` ${t} ${e.name}${n}`)}let o=n.filter(e=>e.installed).length;i.push(``),i.push(`${n.length} skill${n.length===1?``:`s`} (${o} installed)`),d(i.join(`
213
- `))}catch(e){d(pl({code:`LIST_SKILLS_FAILED`,message:e instanceof Error?e.message:String(e)},g?h:`toon`)),a(1)}return}if(w){d(bb(e,o,`add`));return}let u=M.slice(ae+2),f=u.indexOf(`--depth`),p=u.find(e=>e.startsWith(`--depth=`)),_=f===-1?p?Number(p.split(`=`)[1]):r.sync?.depth??1:Number(u[f+1]),v=!u.includes(`--no-global`)&&void 0;try{i(`Syncing...`);let n=await Wy(e,t,{cwd:r.sync?.cwd,depth:_,description:r.description,global:v,include:r.sync?.include,rootCommand:r.rootCommand});i(`\r\x1B[K`);let a=[],o=e=>e.name,s=Math.max(...n.skills.map(e=>o(e).length));for(let e of n.skills){let t=o(e),n=e.description?`${` `.repeat(s-t.length)} ${e.description}`:``;a.push(` ✓ ${t}${n}`)}a.push(``),a.push(`${n.skills.length} skill${n.skills.length===1?``:`s`} synced`);let c=r.sync?.body;c&&(a.push(``),a.push(c));let l=r.sync?.suggestions;if(l&&l.length>0){a.push(``),a.push(`Your agent can now use ${e}. Try asking:`);for(let e of l)a.push(` "${e}"`)}if(a.push(``),a.push(`Run \`${e} --help\` to see the full command reference.`),d(a.join(`
214
- `)),m||g){let e={skills:n.paths};c&&(e.body=c),m&&n.agents.length>0&&(e.agents=n.agents),d(pl(e,g?h:`toon`))}}catch(e){d(pl({code:`SYNC_SKILLS_FAILED`,message:e instanceof Error?e.message:String(e)},g?h:`toon`)),a(1)}return}let oe=vb(M,e,`mcp`);if(oe!==-1){let o=Wl(`mcp`),c=M[oe+1],l=c?Gl(o,c):void 0;if(c&&!l){let t=$t(c,o.subcommands?.flatMap(e=>[e.name,...e.aliases??[]])??[]),r=`'${c}' is not a command for '${e} mcp'.${t?` Did you mean '${t}'?`:``}`,i=[];if(t){let r=n.map(e=>e===c?t:e);i.push({command:`${e} ${r.join(` `)}`})}i.push({command:`${e} mcp --help`,description:`see all available commands`});let l={description:i.length===1?`Suggested command:`:`Suggested commands:`,commands:i};s?(d(Vb({code:`COMMAND_NOT_FOUND`,message:r})),d(Hb(l))):d(pl({code:`COMMAND_NOT_FOUND`,message:r,cta:l},`toon`)),a(1);return}if(!c){d(yb(e,o));return}if(w){d(bb(e,o,l.name));return}if(l.name===`doctor`){let n=await xb(e,t,r);d(pl(n,g?h:`toon`)),n.ok||a(1);return}let u=M.slice(oe+2),f=!u.includes(`--no-global`),p=r.mcp?.command,_=[...r.mcp?.agents??[]];for(let e=0;e<u.length;e++)(u[e]===`--command`||u[e]===`-c`)&&u[e+1]?p=u[++e]:u[e]===`--agent`&&u[e+1]&&_.push(u[++e]);try{let t=r.mcp?.name??e;i(`Registering MCP server...`);let n=await Sy(t,{...t===e?void 0:{cli:e},command:p,global:f,agents:_});i(`\r\x1B[K`);let a=[];a.push(`✓ Registered ${t} as MCP server`),n.agents.length>0&&a.push(` Agents: ${n.agents.join(`, `)}`),a.push(``),a.push(`Agents can now use ${t} tools.`);let o=r.sync?.suggestions;if(o&&o.length>0){a.push(``),a.push(`Try asking:`);for(let e of o)a.push(` "${e}"`)}d(a.join(`
215
- `)),(m||g)&&d(pl({name:t,command:n.command,agents:n.agents},g?h:`toon`))}catch(e){d(pl({code:`MCP_ADD_FAILED`,message:e instanceof Error?e.message:String(e)},g?h:`toon`)),a(1)}return}if(D&&!w&&r.version){d(r.version);return}if(M.length===0){if(r.rootCommand&&s&&r.rootCommand.args&&Wb(r.rootCommand.args)){let n=r.rootCommand;await f(),d(Zl(e,{alias:n.alias,aliases:r.aliases,configFlag:l,description:n.description??r.description,globals:r.globals,version:r.version,args:n.args,env:n.env,envSource:r.env,hint:n.hint,options:n.options,examples:nx(n.examples),usage:n.usage,commands:t.size>0?_b(t):void 0,root:!0}));return}if(!(r.rootCommand||r.rootFetch)){await f(),d(Xl(e,{aliases:r.aliases,configFlag:l,description:r.description,globals:r.globals,version:r.version,commands:_b(t),root:!0}));return}}let P=M.length===0&&r.rootCommand?{command:r.rootCommand,path:e,rest:[]}:M.length===0&&r.rootFetch?{fetchGateway:{_fetch:!0,fetch:r.rootFetch,description:r.description},middlewares:[],path:e,rest:[]}:ub(t,M);if(w&&`fetchGateway`in P){let n=P.path===e?e:`${e} ${P.path}`;P.path===e&&t.size>0?d(Xl(e,{aliases:r.aliases,configFlag:l,description:r.description,version:r.version,commands:_b(t),root:!0})):d(Eb(n,P.fetchGateway.description));return}if(w){if(`help`in P||`error`in P){let n=`help`in P?`${e} ${P.path}`:e,i=`help`in P?P.description:r.description,a=`help`in P?P.commands:t,o=n===e;if(o&&r.rootCommand&&a.size>0){let t=r.rootCommand;d(Zl(e,{alias:t.alias,aliases:r.aliases,configFlag:l,description:t.description??r.description,globals:r.globals,version:r.version,args:t.args,env:t.env,envSource:r.env,hint:t.hint,options:t.options,examples:nx(t.examples),usage:t.usage,commands:_b(a),root:!0}))}else d(Xl(n,{aliases:o?r.aliases:void 0,configFlag:l,description:i,globals:r.globals,version:o?r.version:void 0,commands:_b(a),root:o}))}else if(`command`in P){let n=P.command,i=P.path===e,a=i?e:`${e} ${P.path}`,o=`commands`in P&&P.commands&&P.commands.size>0?_b(P.commands):i&&r.rootCommand&&t.size>0?_b(t):void 0;d(Zl(a,{alias:n.alias,aliases:i?r.aliases:n.aliases,configFlag:l,description:n.description,globals:r.globals,version:i?r.version:void 0,args:n.args,env:n.env,envSource:r.env,hint:n.hint,options:n.options,examples:nx(n.examples),usage:n.usage,commands:o,root:i}))}return}if(O){if(`help`in P){d(Xl(`${e} ${P.path}`,{configFlag:l,description:P.description,globals:r.globals,commands:_b(P.commands)}));return}if(`error`in P){let t=P.path?`${e} ${P.path}`:e,n=$t(P.error,P.commands.keys()),r=n?` Did you mean '${n}'?`:``;d(`Error: '${P.error}' is not a command for '${t}'.${r}`),a(1);return}if(`fetchGateway`in P){d(`--schema is not supported for fetch commands.`),a(1);return}let t=P.command,n=g?h:`toon`,i={};t.args&&(i.args=Su(t.args)),t.env&&(i.env=Su(t.env)),t.options&&(i.options=Su(t.options)),t.output&&(i.output=Su(t.output)),r.globals?.schema&&(i.globals=Su(r.globals.schema)),d(pl(i,n));return}if(`help`in P){d(Xl(`${e} ${P.path}`,{configFlag:l,description:P.description,globals:r.globals,commands:_b(P.commands)}));return}let se;if(s&&r.update!==!1){let t=Qe(e,j);t&&(se={description:`Update available for ${t.name}:`,commands:[{command:`${u} --update`,description:`upgrade from ${t.current} to ${t.latest}`}]})}let ce=Ub(re,se),le=performance.now(),ue=`command`in P&&P.command.format,de=g?h:ue||r.format||`toon`;de===`yaml`&&await ll();let F=`error`in P&&!P.path&&(()=>{let e=[...P.commands.keys()];for(let t of Jl)e.push(t.name);return $t(P.error,e)!==void 0})(),fe=`error`in P&&r.rootFetch&&!P.path&&!F?{fetchGateway:{_fetch:!0,fetch:r.rootFetch,description:r.description},middlewares:[],path:e,rest:M}:`error`in P&&r.rootCommand&&!P.path&&!F?{command:r.rootCommand,path:e,rest:M}:P,pe=`outputPolicy`in P&&P.outputPolicy||r.outputPolicy,me=!(s&&!g&&pe===`agent-only`),he=_?kn(_):void 0;function ge(e){if(v==null&&y==null)return{text:e,truncated:!1};let t=Bt(e),n=y??0,r=v==null?t:n+v;if(n===0&&r>=t)return{text:e,truncated:!1};let i=Vt(e,n,r),a=Math.min(r,t),o=a<t?a:void 0;return{text:`${i}\n[truncated: showing tokens ${n}–${a} of ${t}]`,truncated:!0,nextOffset:o}}function _e(e){if(he&&e.ok&&e.data!=null&&(e={...e,data:An(e.data,he)}),ce){let t=e.meta.cta;e={...e,meta:{...e.meta,cta:t?{description:t.description,commands:[...t.commands,...ce.commands]}:ce}}}if(b){let t=e.ok?e.data:e.error,n=t==null?``:pl(t,de);return d(String(Bt(n)))}let t=e.meta.cta;if(s&&!m){e.ok&&e.data!=null&&me?d(ge(pl(e.data,de)).text):e.ok||d(Vb(e.error)),t&&d(Hb(t));return}if(m){if(v!=null||y!=null){let t=ge(e.ok&&e.data!=null?pl(e.data,de):e.ok?``:pl(e.error,de));if(t.truncated){let n=e.ok?{ok:!0,data:t.text}:{ok:!1,error:t.text},r={...e.meta};return t.nextOffset!=null&&(r.nextOffset=t.nextOffset),n.meta=r,d(pl(n,de))}}return d(pl(e,de))}let n=e.ok?e.data:e.error,r=pl(n,de);if(!t){r&&d(ge(r).text);return}d(ge(pl(typeof n==`object`&&n?{...n,cta:t}:{data:n,cta:t},de)).text)}if(`error`in fe){let t=fe.path?`${e} ${fe.path} --help`:`${e} --help`,r=fe.path?`${e} ${fe.path}`:e,i=`commands`in fe?[...fe.commands.keys()]:[];if(!fe.path)for(let e of Jl)i.push(e.name);let o=$t(fe.error,i),c=o?` Did you mean '${o}'?`:``,l=`'${fe.error}' is not a command for '${r}'.${c}`,u=[];if(o){let t=n.map(e=>e===fe.error?o:e);u.push({command:`${e} ${t.join(` `)}`})}u.push({command:t,description:`see all available commands`});let f={description:u.length===1?`Suggested command:`:`Suggested commands:`,commands:u};if(s&&!m){d(Vb({code:`COMMAND_NOT_FOUND`,message:l})),d(Hb(ce?{...f,commands:[...f.commands,...ce.commands]}:f)),a(1);return}_e({ok:!1,error:{code:`COMMAND_NOT_FOUND`,message:l},meta:{command:fe.error,cta:f,duration:`${Math.round(performance.now()-le)}ms`}}),a(1);return}if(`fetchGateway`in fe){if(!N(!0))return;let{fetchGateway:t,path:n,rest:i}=fe,o=[...r.middlewares??[],...fe.middlewares??[]],c=async()=>{let r=xn(i);t.basePath&&(r.path=t.basePath+r.path);let o=Sn(r),c=await t.fetch(o);if(Cn(c)){await Kb(wn(c),{name:e,path:n,start:le,format:de,formatExplicit:g,human:s,renderOutput:me,fullOutput:m,truncate:ge,write:_e,writeln:d,exit:a});return}let l=await Tn(c);l.ok?_e({ok:!0,data:l.data,meta:{command:n,duration:`${Math.round(performance.now()-le)}ms`}}):(_e({ok:!1,error:{code:`HTTP_${l.status}`,message:typeof l.data==`object`&&l.data!==null&&`message`in l.data?String(l.data.message):typeof l.data==`string`?l.data:`HTTP ${l.status}`},meta:{command:n,duration:`${Math.round(performance.now()-le)}ms`}}),a(1))};try{let t=r.envSchema?Nl(r.envSchema,r.env??process.env):{};if(o.length>0){let i=r.vars?r.vars.parse({}):{},l={agent:!s,command:n,displayName:u,env:t,error:e=>({[yx]:`error`,...e}),format:de,formatExplicit:g,globals:te,name:e,set(e,t){i[e]=t},var:i,version:r.version},d=e=>{if(!Gb(e)||e[yx]!==`error`)return;let t=e,r=uu(u,t.cta);_e({ok:!1,error:{code:t.code,message:t.message,...t.retryable===void 0?void 0:{retryable:t.retryable}},meta:{command:n,duration:`${Math.round(performance.now()-le)}ms`,...r?{cta:r}:void 0}}),a(t.exitCode??1)};await o.reduceRight((e,t)=>async()=>{d(await t(l,e))},c)()}else await c()}catch(e){_e({ok:!1,error:{code:e instanceof R?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e)},meta:{command:n,duration:`${Math.round(performance.now()-le)}ms`}}),a(e instanceof R?e.exitCode??1:1)}return}let{command:ve,path:ye,rest:I}=fe;if(!N(!0))return;let be=[...r.middlewares??[],...`middlewares`in P?P.middlewares??[]:[],...ve.middleware??[]];s&&ax(I,ve.options,ve.alias);let xe;if(c)try{xe=await fb(e,ye,{configDisabled:A,configPath:k,files:r.config?.files,loader:r.config?.loader})}catch(e){_e({ok:!1,error:{code:e instanceof R?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e)},meta:{command:ye,duration:`${Math.round(performance.now()-le)}ms`}}),a(e instanceof R?e.exitCode??1:1);return}let Se=await zl(ve,{agent:!s,argv:I,defaults:xe,displayName:u,env:r.envSchema,envSource:r.env,format:de,formatExplicit:g,globals:te,inputOptions:{},middlewares:be,name:e,path:ye,vars:r.vars,version:r.version}),Ce=`${Math.round(performance.now()-le)}ms`;if(`stream`in Se){await Kb(Se.stream,{name:u,path:ye,start:le,format:de,formatExplicit:g,human:s,renderOutput:me,fullOutput:m,truncate:ge,write:_e,writeln:d,exit:a});return}if(Se.ok){let e=uu(u,Se.cta);_e({ok:!0,data:Se.data,meta:{command:ye,duration:Ce,...e?{cta:e}:void 0}})}else{let e=uu(u,Se.cta);if(s&&!g&&Se.error.fieldErrors){d(cb(u,ye,ve,new vn({message:Se.error.message,fieldErrors:Se.error.fieldErrors}),r.env,l)),a(1);return}_e({ok:!1,error:{code:Se.error.code,message:Se.error.message,...Se.error.retryable===void 0?void 0:{retryable:Se.error.retryable},...Se.error.fieldErrors?{fieldErrors:Se.error.fieldErrors}:void 0},meta:{command:ye,duration:Ce,...e?{cta:e}:void 0}}),a(Se.exitCode??1)}}function rb(e,t,n={}){let r;async function i(r,i,a){let{fromJsonSchema:o,McpServer:s,WebStandardStreamableHTTPServerTransport:c}=await Promise.resolve().then(()=>(k_(),e_)),l=new s({name:e,...n.title?{title:n.title}:void 0,version:t},n.instructions?{instructions:n.instructions}:void 0);P_(l,r,{env:i?.env,fromJsonSchema:o,middlewares:i?.middlewares,name:e,request:e=>e?.http?.req,sendNotification:e=>l.server.notification(e),tools:n.tools,vars:i?.vars,version:t});let u=new c(a?{enableJsonResponse:!0}:{sessionIdGenerator:()=>crypto.randomUUID(),enableJsonResponse:!0});return await l.connect(u),{server:l,transport:u}}return async(e,t,a)=>{let o=n.stateless??!0;if(o&&e.method!==`POST`)return new Response(null,{status:405,headers:{Allow:`POST`}});if(!o)return r??=i(t,a,!1).catch(e=>{throw r=void 0,e}),(await r).transport.handleRequest(e);let s=()=>e.signal.reason??new DOMException(`This operation was aborted`,`AbortError`);if(e.signal.aborted)throw s();let{server:c,transport:l}=await i(t,a,!0),u,d=()=>u??=c.close(),f,p=new Promise((e,t)=>{f=t}),m=!1,h=()=>{m||(m=!0,f(s()),d())};e.signal.addEventListener(`abort`,h,{once:!0}),e.signal.aborted&&h();try{return e.signal.aborted?await p:await Promise.race([l.handleRequest(e),p])}finally{e.signal.removeEventListener(`abort`,h),await d()}}}function ib(e){return e.length===1?e[0]===`openapi.json`||e[0]===`openapi.yml`||e[0]===`openapi.yaml`:e[0]===`.well-known`&&e[1]===`openapi.json`&&e.length===2}function ab(e,t,n){let r={name:e,description:n.description};return ux.set(r,t),n.rootCommand&&px.set(r,n.rootCommand),ov(r,{title:e,...n.version?{version:n.version}:void 0,...n.description?{description:n.description}:void 0})}async function ob(e,t,n,r={}){let i=performance.now(),a=new URL(n.url),o=a.pathname.split(`/`).filter(Boolean);if(n.method===`GET`&&ib(o)){let n=ab(e,t,r),i=o[0]===`openapi.yml`||o[0]===`openapi.yaml`;return new Response(i?(await ll()).stringify(n):JSON.stringify(n),{status:200,headers:{"content-type":i?`application/yaml`:`application/json`,"cache-control":`public, max-age=300`}})}if(o[0]===`mcp`&&o.length===1&&r.mcpHandler)return r.mcpHandler(n,t,{middlewares:r.middlewares,env:r.envSchema,vars:r.vars});if(o[0]===`.well-known`&&o[1]===`skills`&&o.length>=3&&n.method===`GET`){await ll();let n=new Map,i=Qb(t,[],n,r.rootCommand);if(o[2]===`index.json`&&o.length===3){let t=my(e,i,1,n).map(t=>{let n=t.content.match(/^---\n([\s\S]*?)\n---/),r=n?ul().parse(n[1]):{};return{name:t.dir||e,description:r.description??``,files:[`SKILL.md`]}});return new Response(JSON.stringify({skills:t}),{status:200,headers:{"content-type":`application/json`,"cache-control":`public, max-age=300`}})}if(o.length===4&&o[3]===`SKILL.md`){let t=o[2],r=my(e,i,1,n).find(n=>(n.dir||e)===t);return r?new Response(r.content,{status:200,headers:{"content-type":`text/markdown`,"cache-control":`public, max-age=300`}}):new Response(`Not Found`,{status:404})}return new Response(`Not Found`,{status:404})}let s={};if(n.method===`GET`)for(let[e,t]of a.searchParams)s[e]=t;else try{(n.headers.get(`content-type`)??``).includes(`application/json`)&&(s=await n.json())}catch{}function c(e,t){return new Response(jr(e),{status:t,headers:{"content-type":`application/json`}})}if(o.length===0)return r.rootCommand?sb(e,r.rootCommand,[],s,n,i,r):c({ok:!1,error:{code:`COMMAND_NOT_FOUND`,message:`No root command defined.`},meta:{command:`/`,duration:`${Math.round(performance.now()-i)}ms`}},404);let l=ub(t,o);if(`error`in l){let t=l.path?`${e} ${l.path}`:e,n=$t(l.error,l.commands.keys()),r=n?` Did you mean '${n}'?`:``;return c({ok:!1,error:{code:`COMMAND_NOT_FOUND`,message:`'${l.error}' is not a command for '${t}'.${r}`},meta:{command:l.error,duration:`${Math.round(performance.now()-i)}ms`}},404)}if(`help`in l)return c({ok:!1,error:{code:`COMMAND_NOT_FOUND`,message:`'${l.path}' is a command group. Specify a subcommand.`},meta:{command:l.path,duration:`${Math.round(performance.now()-i)}ms`}},404);if(`fetchGateway`in l)return l.fetchGateway.fetch(n);let{command:u,path:d,rest:f}=l,p=`middlewares`in l?l.middlewares:[];return sb(d,u,f,s,n,i,{...r,groupMiddlewares:p})}async function sb(e,t,n,r,i,a,o){function s(e,t){return new Response(jr(e),{status:t,headers:{"content-type":`application/json`}})}let c=[...o.middlewares??[],...o.groupMiddlewares??[],...t.middleware??[]],l={},u=r;if(o.globals){let t=new Set(Object.keys(o.globals.schema.shape)),n={};u={};for(let[e,i]of Object.entries(r))t.has(e)?n[e]=i:u[e]=i;try{l=o.globals.schema.parse(n)}catch(t){return s({ok:!1,error:{code:`VALIDATION_ERROR`,message:(t?.issues??t?.error?.issues??[]).map(e=>e.message).join(`; `)||`Validation failed`},meta:{command:e,duration:`${Math.round(performance.now()-a)}ms`}},400)}}let d=await zl(t,{agent:!0,argv:n,env:o.envSchema,format:`json`,formatExplicit:!0,globals:l,inputOptions:u,middlewares:c,name:o.name??e,parseMode:`split`,path:e,request:i,vars:o.vars,version:o.version}),f=`${Math.round(performance.now()-a)}ms`;if(`stream`in d){let t=d.stream,n=new TextEncoder,r=t=>({command:e,duration:`${Math.round(performance.now()-a)}ms`,...t?{cta:t}:void 0}),i=t=>({type:`error`,ok:!1,error:{code:t.code,message:t.message,...t.retryable===void 0?void 0:{retryable:t.retryable}},meta:r(uu(o.name??e,t.cta))}),s=new ReadableStream({async cancel(){await t.return(void 0)},async pull(a){try{let{value:s,done:c}=await t.next();if(c){if(Gb(s)&&s[yx]===`error`){a.enqueue(n.encode(jr(i(s))+`
216
- `)),a.close();return}let t=Gb(s)&&s[yx]===`ok`?uu(o.name??e,s.cta):void 0;a.enqueue(n.encode(jr({type:`done`,ok:!0,meta:r(t)})+`
217
- `)),a.close();return}if(Gb(s)&&s[yx]===`error`){a.enqueue(n.encode(jr(i(s))+`
218
- `)),await t.return(void 0),a.close();return}a.enqueue(n.encode(jr({type:`chunk`,data:s})+`
219
- `))}catch(e){a.enqueue(n.encode(jr({type:`error`,ok:!1,error:{code:e instanceof R?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e),...e instanceof R?{retryable:e.retryable}:void 0},meta:r()})+`
220
- `)),a.close()}}});return new Response(s,{status:200,headers:{"content-type":`application/x-ndjson`}})}if(!d.ok){let t=uu(o.name??e,d.cta);return s({ok:!1,error:{code:d.error.code,message:d.error.message,...d.error.retryable===void 0?void 0:{retryable:d.error.retryable},...d.error.fieldErrors?{fieldErrors:d.error.fieldErrors}:void 0},meta:{command:e,duration:f,...t?{cta:t}:void 0}},d.error.code===`VALIDATION_ERROR`?400:500)}let p=uu(o.name??e,d.cta);return s({ok:!0,data:d.data,meta:{command:e,duration:f,...p?{cta:p}:void 0}},200)}function cb(e,t,n,r,i,a){let o=[];for(let e of r.fieldErrors){let t=(()=>{let t=lb(n,e.path);return e.missing?`Error: missing required ${t.kind} ${t.label}`:t.kind===`environment variable`?`Error: invalid value for environment variable ${t.label}: ${e.message}`:`Error: invalid value for ${t.label}: ${e.message}`})();o.push(t)}return o.push(`See below for usage.`),o.push(``),o.push(Zl(t===e?e:`${e} ${t}`,{alias:n.alias,configFlag:a,description:n.description,args:n.args,env:n.env,envSource:i,hint:n.hint,options:n.options,examples:nx(n.examples),usage:n.usage})),o.join(`
221
- `)}function lb(e,t){let[n,...r]=t.split(`.`);if(!n)return{kind:`argument`,label:`input`};if(e.options?.shape[n]){let e=r.length>0?`.${r.join(`.`)}`:``;return{kind:`option`,label:`--${Zt(n)}${e}`}}return e.env?.shape[n]?{kind:`environment variable`,label:`${n}${r.length>0?`.${r.join(`.`)}`:``}`}:{kind:`argument`,label:`<${t}>`}}function ub(e,t){let[n,...r]=t;if(!n||!e.has(n))return{error:n??`(none)`,path:``,commands:e,rest:r};let i=zb(e,e.get(n)),a=[n],o=r,s,c=[];if(Lb(i)){let e=i.outputPolicy??s;return{fetchGateway:i,middlewares:c,path:a.join(` `),rest:o,...e?{outputPolicy:e}:void 0}}for(;Ib(i);){i.outputPolicy&&(s=i.outputPolicy),i.middlewares&&c.push(...i.middlewares);let e=o[0];if(!e&&i.root){let e=i.root.outputPolicy??s;return{command:i.root,commands:i.commands,middlewares:c,path:a.join(` `),rest:o,...e?{outputPolicy:e}:void 0}}if(!e)return{help:!0,path:a.join(` `),description:i.description,commands:i.commands};let t=i.commands.get(e);if(!t){if(i.root&&!$t(e,i.commands.keys())){let e=i.root.outputPolicy??s;return{command:i.root,commands:i.commands,middlewares:c,path:a.join(` `),rest:o,...e?{outputPolicy:e}:void 0}}return{error:e,path:a.join(` `),commands:i.commands,rest:o.slice(1)}}let n=zb(i.commands,t);if(a.push(e),o=o.slice(1),i=n,Lb(i)){let e=i.outputPolicy??s;return{fetchGateway:i,middlewares:c,path:a.join(` `),rest:o,...e?{outputPolicy:e}:void 0}}}let l=i.outputPolicy??s;return{command:i,middlewares:c,path:a.join(` `),rest:o,...l?{outputPolicy:l}:void 0}}function db(e,t={}){let n=!1,r=!1,i=!1,a=!1,o=!1,s=!1,c=!1,l=!1,u=!1,d=`toon`,f=!1,p,m=!1,h,g,_,v=!1,y=[],b=t.configFlag?`--${t.configFlag}`:void 0,x=t.configFlag?`--${t.configFlag}=`:void 0,S=t.configFlag?`--no-${t.configFlag}`:void 0;for(let t=0;t<e.length;t++){let C=e[t];if(C===`--full-output`)n=!0;else if(C===`--llms`)r=!0;else if(C===`--llms-full`)i=!0;else if(C===`--mcp`)a=!0;else if(C===`--help`||C===`-h`)o=!0;else if(C===`--update`)s=!0;else if(C===`--incur-update-check`)c=!0;else if(C===`--version`&&(e[t+1]===void 0||e[t+1].startsWith(`-`)))l=!0;else if(C===`--schema`)u=!0;else if(C===`--json`)d=`json`,f=!0;else if(C===`--format`&&e[t+1]){if(!lx.has(e[t+1]))throw new yn({message:`Invalid format: "${e[t+1]}". Expected one of: ${[...lx].join(`, `)}`});d=e[t+1],f=!0,t++}else if(b&&C===b){let n=e[t+1];if(n===void 0)throw new yn({message:`Missing value for flag: ${b}`});p=n,m=!1,t++}else if(x&&C.startsWith(x)){let e=C.slice(x.length);if(e.length===0)throw new yn({message:`Missing value for flag: ${b}`});p=e,m=!1}else if(S&&C===S)p=void 0,m=!0;else if(C===`--filter-output`&&e[t+1])h=e[t+1],t++;else if(C===`--token-limit`&&e[t+1]){let n=Number(e[t+1]);if(!Number.isFinite(n)||e[t+1].trim()===``)throw new yn({message:`Invalid value for --token-limit: "${e[t+1]}"`});g=n,t++}else if(C===`--token-offset`&&e[t+1]){let n=Number(e[t+1]);if(!Number.isFinite(n)||e[t+1].trim()===``)throw new yn({message:`Invalid value for --token-offset: "${e[t+1]}"`});_=n,t++}else C===`--token-count`?v=!0:y.push(C)}return{fullOutput:n,format:d,formatExplicit:f,configPath:p,configDisabled:m,filterOutput:h,tokenLimit:g,tokenOffset:_,tokenCount:v,llms:r,llmsFull:i,mcp:a,help:o,update:s,updateCheck:c,version:l,schema:u,rest:y}}async function fb(e,t,n={}){if(n.configDisabled)return;let{loader:r}=n,i;i=n.configPath?pb(n.configPath):await mb(n.files??[`${e}.json`]);let a;if(r){let e=await r(i);if(e===void 0)return;if(!Xt(e))throw new yn({message:`Config loader must return a plain object or undefined`});a=e}else{if(!i)return;let e=await hb(i,!!n.configPath);if(!e)return;a=e}return gb(a,e,t)}function pb(e){return e.startsWith(`~/`)||e===`~`?s.join(y.homedir(),e.slice(1)):s.resolve(process.cwd(),e)}async function mb(e){for(let t of e){let e=pb(t);try{return await S.access(e,S.constants.R_OK),e}catch{}}}async function hb(e,t){let n;try{n=await S.readFile(e,`utf8`)}catch(n){if(n.code===`ENOENT`){if(t)throw new yn({message:`Config file not found: ${e}`});return}throw n}let r;try{r=JSON.parse(n)}catch(t){throw new yn({message:`Invalid JSON config file: ${e}`,cause:t instanceof Error?t:void 0})}if(!Xt(r))throw new yn({message:`Invalid config file: expected a top-level object in ${e}`});return r}function gb(e,t,n){let r=n===t?[]:n.split(` `),i=e;for(let e of r){if(!Xt(i))return;let t=i.commands;if(!Xt(t)||(i=t[e],i===void 0))return}if(!Xt(i))throw new yn({message:`Invalid config section for '${n}': expected an object`});let a=i.options;if(a!==void 0){if(!Xt(a))throw new yn({message:`Invalid config 'options' for '${n}': expected an object`});return Object.keys(a).length>0?a:void 0}}function _b(e){let t=[];for(let[n,r]of e)Rb(r)||t.push({name:n,description:r.description});return t.sort((e,t)=>e.name.localeCompare(t.name))}function vb(e,t,n){return Wl(e[0])?.name===n?0:e[0]===t&&Wl(e[1])?.name===n?1:-1}function yb(e,t){return Xl(`${e} ${t.name}`,{aliases:t.aliases,description:t.description,commands:t.subcommands?.map(e=>({name:e.name,description:e.description}))})}function bb(e,t,n){let r=Gl(t,n);return Zl(`${e} ${t.name} ${n}`,{alias:r?.alias,aliases:r?.aliases,description:r?.description,hideGlobalOptions:!0,options:r?.options})}async function xb(e,t,n){let r=[],i=[],a=new w,o=new w,s=[];o.on(`data`,e=>s.push(e.toString()));let c,l=A_(n.mcp?.name??e,n.version??`0.0.0`,t,{input:a,output:o,middlewares:n.middlewares,env:n.envSchema,vars:n.vars,version:n.version,...n.mcp?.instructions?{instructions:n.mcp.instructions}:void 0,...n.mcp?.title?{title:n.mcp.title}:void 0,tools:{...n.mcp?.tools,discovery:`direct`}}).catch(e=>{c=e}),u=!1;if(l.finally(()=>{u=!0}),a.write(`${jr({jsonrpc:`2.0`,id:1,method:`initialize`,params:{protocolVersion:`2024-11-05`,capabilities:{},clientInfo:{name:`incur-doctor`,version:`1.0.0`}}})}\n`),a.write(`${jr({jsonrpc:`2.0`,id:2,method:`tools/list`,params:{}})}\n`),await Sb(s,()=>u),a.end(),await l,c)return{ok:!1,toolCount:0,tools:[],warnings:r,errors:[{code:`MCP_SERVER_FAILED`,message:wb(c)}]};let d;try{d=Cb(s)}catch(e){return{ok:!1,toolCount:0,tools:[],warnings:r,errors:[{code:`MCP_RESPONSE_PARSE_FAILED`,message:wb(e)}]}}let f=d.find(e=>e.id===1);f?f.error&&i.push({code:`MCP_INITIALIZE_FAILED`,message:Tb(f.error)}):i.push({code:`MCP_INITIALIZE_MISSING`,message:`Missing initialize response.`});let p=d.find(e=>e.id===2),m=[];return p?p.error?i.push({code:`MCP_TOOLS_LIST_FAILED`,message:Tb(p.error)}):!Xt(p.result)||!Array.isArray(p.result.tools)?i.push({code:`MCP_TOOLS_LIST_INVALID`,message:`tools/list did not return a tools array.`}):m=p.result.tools.filter(Xt).map(e=>({name:typeof e.name==`string`?e.name:``,...typeof e.description==`string`?{description:e.description}:void 0})).filter(e=>e.name):i.push({code:`MCP_TOOLS_LIST_MISSING`,message:`Missing tools/list response.`}),i.length===0&&m.length===0&&r.push(`No MCP tools exposed.`),{ok:i.length===0,toolCount:m.length,tools:m,warnings:r,errors:i}}async function Sb(e,t){let n=Date.now();for(;!t()&&(e.join(``).match(/\n/g)?.length??0)<2;){if(Date.now()-n>=1e3)return;await new Promise(e=>setTimeout(e,5))}}function Cb(e){let t=[];for(let n of e.join(``).split(/\r?\n/)){let e=n.trim();if(!e)continue;let r=JSON.parse(e);if(!Xt(r))throw Error(`Expected JSON-RPC response object.`);t.push(r)}return t}function wb(e){return e instanceof Error?e.message:String(e)}function Tb(e){return Xt(e)&&typeof e.message==`string`?e.message:jr(e)}function Eb(e,t){let n=[];return t?n.push(`${e} — ${t}`):n.push(e),n.push(``),n.push(`Usage: ${e} <path> [options]`),n.push(``),n.push(`Path segments are joined into the request URL path.`),n.push(``),n.push(`Options:`),n.push(` -X, --method <METHOD> HTTP method (default: GET, POST if body present)`),n.push(` -H, --header "Key: Val" Set a request header (repeatable)`),n.push(` -d, --data <json> Request body (implies POST)`),n.push(` --body <json> Request body (implies POST)`),n.push(` --<key> <value> Query string parameter`),n.join(`
222
- `)}async function Db(e){if(e)return{directory:T(e)};let t=process.argv[1];if(!t)throw Error("Could not infer the filesystem command directory without an executed entrypoint. Pass a directory URL to `fs()`.");let n=s.resolve(t);try{let e=await S.realpath(n);return{directory:s.dirname(e),exclude:e}}catch(e){if(e.code!==`ENOENT`)throw e;return{directory:s.dirname(n),exclude:n}}}async function Ob(e){let t=await mu(e.directory,{exclude:e.exclude});return Promise.all(t.map(async e=>({...e,command:(await import(E(e.file).href)).default})))}function kb(e){return typeof e==`object`&&!!e&&e[cx]===!0}function Ab(e,t,n,r,i){let a=e;for(let[e,o]of t.entries()){let s=e===t.length-1,c=a.get(o);if(s){if(!c)a.set(o,n);else if(Ib(c)&&!c.root)c.root=n,c.description??=n.description;else throw jb(t,r);Bb(t.join(` `),n,i);for(let e of n.aliases??[]){if(a.has(e))throw jb([...t.slice(0,-1),e],r);a.set(e,{_alias:!0,target:o})}return}if(!c){let e={_group:!0,commands:new Map};a.set(o,e),a=e.commands;continue}if(Rb(c)||Lb(c))throw jb(t,r);if(Ib(c)){a=c.commands;continue}let l={_group:!0,commands:new Map,description:c.description,root:c};a.set(o,l),a=l.commands}}function jb(e,t){return Error(`Filesystem command '${e.join(` `)}' from '${t}' conflicts with an existing command or alias.`)}function Mb(e){if(typeof e==`function`)return!0;if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.fetch==`function`&&t.url instanceof URL}function Nb(e){if(typeof e!=`object`||!e||!(`mcp`in e))return!1;let t=e.mcp;return typeof t==`string`||t instanceof URL||typeof t==`object`&&!!t&&`url`in t}function Pb(e){return typeof e==`function`?e:e.fetch}function Fb(e){return typeof e==`function`?void 0:e.url}function Ib(e){return`_group`in e}function Lb(e){return`_fetch`in e}function Rb(e){return`_alias`in e}function zb(e,t){return Rb(t)?e.get(t.target):t}function Bb(e,t,n){if(!(!n||Lb(t)||Rb(t))){if(Ib(t)){t.root&&Bb(e,t.root,n);for(let[r,i]of t.commands)Bb(`${e} ${r}`,i,n);return}if(t.options){let r=Object.keys(n.schema.shape),i=Object.keys(t.options.shape);for(let t of i)if(r.includes(t))throw Error(`Command '${e}' option '${t}' conflicts with a global option. Choose a different name.`)}if(n.alias&&t.alias){let r=new Set(Object.values(n.alias));for(let[n,i]of Object.entries(t.alias))if(i&&r.has(i))throw Error(`Command '${e}' alias '-${i}' for '${n}' conflicts with a global alias. Choose a different alias.`)}}}function Vb(e){let t=`${e.code===`UNKNOWN`||e.code===`COMMAND_NOT_FOUND`?`Error`:`Error (${e.code})`}: ${e.message}`;if(e.fieldErrors)for(let n of e.fieldErrors)t+=`\n ${n.path}: ${n.message}`;return t}function Hb(e){let t=[``,e.description],n=Math.max(...e.commands.map(e=>e.command.length));for(let r of e.commands){let e=r.description?` ${``.padEnd(n-r.command.length)}# ${r.description}`:``;t.push(` ${r.command}${e}`)}return t.join(`
223
- `)}function Ub(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return{description:t[0].description,commands:t.flatMap(e=>e.commands)}}function Wb(e){return Object.values(e.shape).some(e=>e._zod.optout!==`optional`)}function Gb(e){return typeof e==`object`&&!!e&&yx in e}async function Kb(e,t){let n=t.format===`jsonl`;if(n||!t.formatExplicit&&t.format===`toon`)try{let r;for(;;){let{value:i,done:a}=await e.next();if(a){r=i;break}if(Gb(i)){let e=i;if(e[yx]===`error`){n?t.writeln(JSON.stringify({type:`error`,ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}}})):t.writeln(Vb({code:e.code,message:e.message})),t.exit(e.exitCode??1);return}}n?t.writeln(jr({type:`chunk`,data:i})):t.renderOutput&&t.writeln(t.truncate(pl(i,t.format)).text)}if(Gb(r)&&r[yx]===`error`){let e=r;n?t.writeln(JSON.stringify({type:`error`,ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}}})):t.writeln(Vb({code:e.code,message:e.message})),t.exit(e.exitCode??1);return}let i=Gb(r)&&r[yx]===`ok`?uu(t.name,r.cta):void 0;n?t.writeln(JSON.stringify({type:`done`,ok:!0,meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`,...i?{cta:i}:void 0}})):i&&t.writeln(Hb(i))}catch(e){n?t.writeln(JSON.stringify({type:`error`,ok:!1,error:{code:e instanceof R?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e),...e instanceof R?{retryable:e.retryable}:void 0}})):t.writeln(Vb({code:`UNKNOWN`,message:e instanceof Error?e.message:String(e)})),t.exit(e instanceof R?e.exitCode??1:1)}else{let n=[];try{let r;for(;;){let{value:i,done:a}=await e.next();if(a){r=i;break}if(Gb(i)){let e=i;if(e[yx]===`error`){t.write({ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}},meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`}}),t.exit(e.exitCode??1);return}}n.push(i)}if(Gb(r)&&r[yx]===`error`){let e=r;t.write({ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}},meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`}}),t.exit(e.exitCode??1);return}let i=Gb(r)&&r[yx]===`ok`?uu(t.name,r.cta):void 0;t.write({ok:!0,data:n,meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`,...i?{cta:i}:void 0}})}catch(e){t.write({ok:!1,error:{code:e instanceof R?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e),...e instanceof R?{retryable:e.retryable}:void 0},meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`}}),t.exit(e instanceof R?e.exitCode??1:1)}}}function qb(e,t=[],n,r){let i=Jb(e,t);return r&&t.length>0&&i.push({name:t.join(` `),...r.description?{description:r.description}:void 0}),{version:`incur.v1`,commands:i.sort((e,t)=>e.name.localeCompare(t.name)),...n?{globals:Su(n)}:void 0}}function Jb(e,t){let n=[];for(let[r,i]of e){if(Rb(i))continue;let e=[...t,r];if(Ib(i)){if(i.root){let t={name:e.join(` `)};i.root.description&&(t.description=i.root.description),n.push(t)}n.push(...Jb(i.commands,e))}else{let t={name:e.join(` `)};Lb(i),i.description&&(t.description=i.description),n.push(t)}}return n}function Yb(e,t=[],n,r){let i=Xb(e,t);return r&&t.length>0&&i.push(Zb(t,r)),{version:`incur.v1`,commands:i.sort((e,t)=>e.name.localeCompare(t.name)),...n?{globals:Su(n)}:void 0}}function Xb(e,t){let n=[];for(let[r,i]of e){if(Rb(i))continue;let e=[...t,r];if(Lb(i)){let t={name:e.join(` `)};i.description&&(t.description=i.description),n.push(t)}else Ib(i)?(i.root&&n.push(Zb(e,i.root)),n.push(...Xb(i.commands,e))):n.push(Zb(e,i))}return n}function Zb(e,t){let n={name:e.join(` `)};t.description&&(n.description=t.description);let r=ix(t.args,t.env,t.options),i=t.output?Su(t.output):void 0;(r||i)&&(n.schema={},r?.args&&(n.schema.args=r.args),r?.env&&(n.schema.env=r.env),r?.options&&(n.schema.options=r.options),i&&(n.schema.output=i));let a=nx(t.examples);if(a){let t=e.join(` `);n.examples=a.map(e=>({...e,command:e.command?`${t} ${e.command}`:t}))}return n}function Qb(e,t,n,r){let i=[];if(r){let e={};r.description&&(e.description=r.description),r.args&&(e.args=r.args),r.env&&(e.env=r.env),r.hint&&(e.hint=r.hint),ex(r)&&(e.hint=tx(e.hint)),r.options&&(e.options=r.options),r.output&&(e.output=r.output);let t=nx(r.examples);t&&(e.examples=t),i.push(e)}for(let[r,a]of e){if(Rb(a))continue;let e=[...t,r];if(Lb(a)){let t={name:e.join(` `)};a.description&&(t.description=a.description),t.hint=`Fetch gateway. Pass path segments and curl-style flags (-X, -H, -d, --key value).`,i.push(t)}else Ib(a)?(a.description&&n.set(e.join(` `),a.description),a.root&&i.push($b(e,a.root)),i.push(...Qb(a.commands,e,n))):i.push($b(e,a))}return i.sort((e,t)=>(e.name??``).localeCompare(t.name??``))}function $b(e,t){let n={name:e.join(` `)};t.description&&(n.description=t.description),t.args&&(n.args=t.args),t.env&&(n.env=t.env),t.hint&&(n.hint=t.hint),ex(t)&&(n.hint=tx(n.hint)),t.options&&(n.options=t.options),t.output&&(n.output=t.output);let r=nx(t.examples);if(r){let t=e.join(` `);n.examples=r.map(e=>({...e,command:e.command?`${t} ${e.command}`:t}))}return n}function ex(e){return e.destructive===!0||e.mcp!==!1&&e.mcp?.annotations?.destructiveHint===!0}function tx(e){return e?e.includes(sx)?e:`${e} ${sx}`:sx}function nx(e){if(!(!e||e.length===0))return e.map(e=>{let t=[];if(e.args)for(let n of Object.values(e.args))t.push(String(n));if(e.options)for(let[n,r]of Object.entries(e.options))t.push(`--${n} ${r}`);let n={command:t.join(` `)};return e.description&&(n.description=e.description),n})}function rx(e){let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!t)return{};let n=ul().parse(t[1]);return!n||typeof n!=`object`?{}:n}function ix(e,t,n){if(!e&&!t&&!n)return;let r={};return e&&(r.args=Su(e)),t&&(r.env=Su(t)),n&&(r.options=Su(n)),r}function ax(e,t,n){if(!t)return;let r=t.shape,i=new Set,a=new Map;for(let e of Object.keys(r))if(r[e]?.meta?.()?.deprecated){let t=e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);i.add(t),n?.[e]&&a.set(n[e],t)}if(i.size!==0){for(let t of e)if(t.startsWith(`--`)){let e=t.split(`=`)[0].slice(2),n=!i.has(e)&&e.startsWith(`no-`)?e.slice(3):e;i.has(n)&&process.stderr.write(`Warning: --${n} is deprecated\n`)}else if(t.startsWith(`-`)&&t.length>=2)for(let e of t.slice(1))a.has(e)&&process.stderr.write(`Warning: --${a.get(e)} is deprecated\n`)}}function ox(e,t){let n=process.argv[1];if(!n)return e;let r=s.basename(n);return r===e?e:t?.includes(r)?r:e}var sx,cx,lx,ux,dx,fx,px,mx,hx,gx,_x,vx,yx,bx=L((()=>{Yt(),Nt(),hn(),bn(),On(),Mn(),xl(),lu(),Yl(),pu(),xu(),en(),Nr(),Ze(),_t(),fl(),tv(),uy(),Xv(),Rl(),Cu(),xy(),jy(),eb(),sx=`Confirm with the user before executing this destructive command.`,cx=Symbol.for(`incur.fileCommand`),lx=new Set([`toon`,`json`,`yaml`,`md`,`jsonl`]),ux=new WeakMap,dx=new WeakMap,fx=new WeakMap,px=new WeakMap,mx=new WeakMap,hx=new WeakMap,gx=new WeakMap,_x=new WeakMap,vx=new WeakMap,yx=Symbol.for(`incur.sentinel`)})),xx=L((()=>{Nt(),bx(),hn(),bn(),xl(),lu(),tv(),On(),Xv(),Rl(),Cu(),xy(),fl(),jy(),eb()}));function Sx(e,t){if(!(!e||typeof e!=`object`))return e[t]}var Y,Cx,wx,Tx,Ex,Dx,Ox=L((()=>{Y={acceptPayment:`Accept-Payment`,authorization:`Authorization`,paymentAuthorization:`Payment-Authorization`,paymentReceipt:`Payment-Receipt`,paymentSession:`Payment-Session`,paymentSessionSnapshot:`Payment-Session-Snapshot`,wwwAuthenticate:`WWW-Authenticate`},Cx={payment:`Payment`},wx={evm:`evm`,stripe:`stripe`,tempo:`tempo`},Tx={charge:`charge`,session:`session`,subscription:`subscription`},Ex={sessionProtocol:`sessionProtocol`,sessionSnapshot:`sessionSnapshot`},Dx={v1:`v1`,v2:`v2`}}));function kx(e){let t=k.toString(e);return JSON.parse(t)}function Ax(e,t){return e.schema.request.parse(t)}function jx(e){let t=te.canonicalize(e);return k.fromString(t,{pad:!1,url:!0})}var Mx=L((()=>{})),X=Ge({address:()=>zx,amount:()=>Px,datetime:()=>Fx,datetimeInput:()=>Ix,hash:()=>Bx,period:()=>Vx,signature:()=>Hx,toDate:()=>Lx,toDatetimeString:()=>Rx,unwrapOptional:()=>Ux});import*as Nx from"zod/mini";qe(X,Nx);function Px(){return _e.string().check(_e.regex(/^\d+(\.\d+)?$/,`Invalid amount`))}function Fx(){return _e.string().check(_e.regex(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/,`Invalid ISO 8601 datetime`))}function Ix(e=`Invalid ISO 8601 datetime`){return _e.pipe(_e.union([Fx(),_e.custom(e=>e instanceof Date)]),_e.transform(Lx)).check(_e.refine(e=>Number.isFinite(e.getTime()),e))}function Lx(e){return e instanceof Date?e:new Date(e)}function Rx(e){return e instanceof Date?Number.isFinite(e.getTime())?e.toISOString():`Invalid Date`:e}function zx(){return _e.string().check(_e.regex(/^0x[0-9a-fA-F]{40}$/,`Invalid address`))}function Bx(){return _e.string().check(_e.regex(/^0x[0-9a-fA-F]{64}$/,`Invalid hash`))}function Vx(){return _e.string().check(_e.regex(/^(day|week|month|year|\d+)$/,`Invalid period`))}function Hx(){return _e.string().check(_e.regex(/^0x[0-9a-fA-F]+$/,`Invalid signature`))}function Ux(e){return e._zod.def.type===`optional`?e._zod.def.innerType:e}var Wx=L((()=>{}));function Gx(e,t){let{description:n,digest:r,meta:i,method:a,header:o,intent:s,realm:c,request:l,secretKey:u}=e,d=oS(o)?void 0:o,f=e.expires?Rx(e.expires):void 0,p=e.opaque??(i===void 0?void 0:jx(i)),m=u?sS({...e,expires:f,...i!==void 0&&{meta:i},opaque:p},{secretKey:u}):e.id;return lS.parse({id:m,realm:c,method:a,intent:s,request:l,...n&&{description:n},...r&&{digest:r},...f&&{expires:f},...d!==void 0&&{header:d},...i!==void 0&&{meta:i},...p!==void 0&&{opaque:p}})}function Kx(e){let t=[qx(`id`,e.id),qx(`realm`,e.realm),qx(`method`,e.method),qx(`intent`,e.intent),qx(`request`,jx(e.request))];e.description!==void 0&&t.push(qx(`description`,e.description)),e.digest!==void 0&&t.push(qx(`digest`,e.digest)),e.expires!==void 0&&t.push(qx(`expires`,e.expires));let n=e.header;return n!==void 0&&!oS(n)&&t.push(qx(`header`,n)),e.opaque===void 0?e.meta!==void 0&&t.push(qx(`opaque`,jx(e.meta))):t.push(qx(`opaque`,e.opaque)),`${Cx.payment} ${t.join(`, `)}`}function qx(e,t){if(/[\r\n]/.test(t))throw Error(`Invalid quoted-string value.`);return`${e}="${t.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/[\u0100-\uffff]/g,e=>`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`)}"`}function Jx(e,t){let n=Yx(e);if(!n)throw Error(`Missing Payment scheme.`);let{request:r,opaque:i,...a}=Xx(n);if(!r)throw Error(`Missing request parameter.`);if(r.length>cS)throw Error(`Request parameter too large.`);if(a.method&&!/^[a-z][a-z0-9:_-]*$/.test(a.method))throw Error(`Invalid method: "${a.method}". Must be lowercase per spec.`);return Gx({...a,request:kx(r),...i&&{opaque:i}},t)}function Yx(e){let t=Cx.payment,[n]=eS(e,t);if(n===void 0)return null;let r=n+t.length;for(;r<e.length&&/\s/.test(e[r]??``);)r++;return e.slice(r)}function Xx(e){let t=Object.create(null),n=0;for(;n<e.length;){for(;n<e.length&&/[\s,]/.test(e[n]??``);)n++;if(n>=e.length)break;let r=n;for(;n<e.length&&/[A-Za-z0-9_-]/.test(e[n]??``);)n++;let i=e.slice(r,n).toLowerCase();if(!i)throw Error(`Malformed auth-param.`);for(;n<e.length&&/\s/.test(e[n]??``);)n++;if(e[n]!==`=`)break;for(n++;n<e.length&&/\s/.test(e[n]??``);)n++;let[a,o]=Zx(e,n);if(n=o,i in t)throw Error(`Duplicate parameter: ${i}`);t[i]=a}return t}function Zx(e,t){if(e[t]===`"`)return Qx(e,t+1);let n=t;for(;n<e.length&&e[n]!==`,`;)n++;return[e.slice(t,n).trim(),n]}function Qx(e,t){let n=t,r=!1,i=t,a;for(;n<e.length;){let o=e[n];if(n++,r){a??=[];let t=o===`u`?e.slice(n,n+4):void 0;t&&/^[0-9A-Fa-f]{4}$/.test(t)?(a.push(String.fromCharCode(Number.parseInt(t,16))),n+=4):a.push(o),i=n,r=!1;continue}if(o===`\\`){a??=[],a.push(e.slice(i,n-1)),i=n,r=!0;continue}if(o===`"`)return[a?[...a,e.slice(i,n-1)].join(``):e.slice(t,n-1),n]}throw Error(`Unterminated quoted-string.`)}function $x(e,t,n){if(e.slice(t,t+n.length).toLowerCase()!==n.toLowerCase())return!1;let r=e[t+n.length];return!!(r&&/\s/.test(r))}function eS(e,t){let n=[],r=!1,i=!1;for(let a=0;a<e.length;a++){let o=e[a];if(r){i?i=!1:o===`\\`?i=!0:o===`"`&&(r=!1);continue}if(o===`"`){r=!0;continue}if(!$x(e,a,t))continue;let s=a-1;for(;s>=0&&/\s/.test(e[s]??``);)s--;s>=0&&e[s]!==`,`||n.push(a)}return n}function tS(e,t){if(e.status!==402)throw Error(`Response status is not 402.`);return nS(e.headers,t)}function nS(e,t){let n=e.get(Y.wwwAuthenticate);if(!n)throw Error(`Missing ${Y.wwwAuthenticate} header.`);return rS(n,t)}function rS(e,t){let n=eS(e,Cx.payment);if(n.length===0)throw Error(`No Payment schemes found.`);return n.map((r,i)=>{let a=i+1<n.length?n[i+1]:e.length;return Jx(e.slice(r,a).replace(/,\s*$/,``),t)})}function iS(e){let t=[e.realm,e.method,e.intent,jx(e.request),e.expires??``,e.digest??``],n=e.header;return n!==void 0&&!oS(n)&&t.push(n),t.push(e.opaque??(e.meta?jx(e.meta):``)),t.join(`|`)}function aS(e){return e.header??Y.authorization}function oS(e){return e?.toLowerCase()===Y.authorization.toLowerCase()}function sS(e,t){let n=iS(e),r=A.fromString(t.secretKey),i=A.fromString(n),a=ee.hmac256(r,i,{as:`Bytes`});return k.fromBytes(a,{url:!0,pad:!1})}var cS,lS,uS=L((()=>{Ox(),Mx(),Wx(),cS=16384,lS=X.object({description:X.optional(X.string()),digest:X.optional(X.string().check(X.regex(/^sha-256=/,`Invalid digest format`))),expires:X.optional(Fx()),header:X.optional(X.string().check(X.regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,`Invalid HTTP header name`))),id:X.string().check(X.minLength(1)),intent:X.string(),method:X.string(),meta:X.optional(X.record(X.string(),X.string())),opaque:X.optional(X.string()),realm:X.string(),request:X.record(X.string(),X.unknown())})})),dS,fS,Z,pS,mS=L((()=>{dS=class extends Error{details;status=402;hint;constructor(e,t={}){super(e),this.details=t.details}toProblemDetails(e){return{type:this.type,title:this.title,status:this.status,detail:this.message,...this.details&&Object.keys(this.details).length>0&&{details:this.details},...this.hint&&{hint:this.hint},...e&&{challengeId:e}}}},fS=class extends dS{name=`InvalidChallengeError`;title=`Invalid Challenge`;status=402;type=`https://paymentauth.org/problems/invalid-challenge`;constructor(e={}){let{id:t,reason:n}=e,r=t?` "${t}"`:``,i=n?`: ${n}`:``;super(`Challenge${r} is invalid${i}.`)}},Z=class extends dS{name=`VerificationFailedError`;title=`Verification Failed`;type=`https://paymentauth.org/problems/verification-failed`;constructor(e={}){let{details:t,reason:n}=e;super(n?`Payment verification failed: ${n}.`:`Payment verification failed.`,{details:t})}},pS=class extends dS{name=`PaymentExpiredError`;title=`Payment Expired`;type=`https://paymentauth.org/problems/payment-expired`;constructor(e={}){let{expires:t}=e;super(t?`Payment expired at ${t}.`:`Payment has expired.`)}}}));function hS(e,t){if(!e)throw new fS({...t&&{id:t},reason:`missing required expires field`});if(Number.isNaN(new Date(e).getTime()))throw new fS({...t&&{id:t},reason:`malformed expires timestamp`});if(new Date(e)<new Date)throw new pS({expires:e})}var gS=L((()=>{mS()}));function _S(e){return Object.defineProperty(e,yS,{value:!0}),e}function vS(e){return!!e?.[yS]}var yS,bS=L((()=>{yS=Symbol.for(`mppx.x402.challenge`)}));function xS(e){let t={};for(let n of e){let e=t[n.name]??={};e[n.intent]=DS(n)}return t}function SS(e,t){let n=xS(e),r=PS(e,n,t),i=e.map((e,t)=>({intent:e.intent,method:e.name,q:r[DS(e)]??1,index:t}));return{definition:r,entries:i,header:wS(i),keys:n}}function CS(e){let t=e.split(/\s*,\s*/).map(e=>e.trim()).filter(Boolean);if(t.length===0)throw Error(`Accept-Payment header is empty.`);return t.map((e,t)=>MS(e,t))}function wS(e){return e.map(({method:e,intent:t,q:n})=>{let r=`${e}/${t}`;return n===1?r:`${r};q=${RS(n)}`}).join(`, `)}function TS(e,t,n){let r=ES(e,t,n)[0];if(r)return{challenge:r.challenge,method:r.method}}function ES(e,t,n){let r=new Map;for(let e of t){let t=DS(e),n=r.get(t);n?n.push(e):r.set(t,[e])}return e.flatMap((e,t)=>{let i=r.get(DS(e));if(!i)return[];let a=OS(e,n);return!a||a.q<=0?[]:i.filter(t=>t.canHandleChallenge?.({challenge:e})??!0).map(n=>({challenge:e,index:t,match:a,method:n}))}).sort((e,t)=>jS(e.challenge)-jS(t.challenge)||t.match.q-e.match.q||e.index-t.index).map(e=>{let{match:t,...n}=e;return n})}function DS(e){let t=e.method??e.name;if(!t)throw Error(`Missing payment method name.`);return`${t}/${e.intent}`}function OS(e,t){let n;for(let r of t){if(!kS(e,r))continue;let t={...r,specificity:AS(r)};(!n||t.specificity>n.specificity||t.specificity===n.specificity&&t.q>n.q||t.specificity===n.specificity&&t.q===n.q&&t.index<n.index)&&(n=t)}return n}function kS(e,t){return(t.method===`*`||t.method===e.method)&&(t.intent===`*`||t.intent===e.intent)}function AS(e){return Number(e.method!==`*`)+Number(e.intent!==`*`)}function jS(e){return+!!vS(e)}function MS(e,t){let n=/^(?<method>[^/;\s]+|\*)\s*\/\s*(?<intent>[^/;\s]+|\*)(?<params>(?:\s*;\s*.+)?)$/u.exec(e),r=n?.groups?.method,i=n?.groups?.intent;if(!r||!i)throw Error(`Invalid Accept-Payment entry: ${e}`);zS(r,`method`),zS(i,`intent`);let a=1;for(let t of NS(n.groups?.params)){if(!t)continue;let n=/^(?<name>[A-Za-z0-9_-]+)\s*=\s*(?<value>\S+)$/u.exec(t),r=n?.groups?.name,i=n?.groups?.value;if(!r||!i)throw Error(`Invalid Accept-Payment parameter: ${t}`);r===`q`&&(a=IS(i,`Accept-Payment entry "${e}"`))}return{intent:i,method:r,q:a,index:t}}function NS(e){return e?e.split(/\s*;\s*/).filter(Boolean):[]}function PS(e,t,n){if(!n)return{};let r=typeof n==`function`?n(t):n,i=new Set(e.map(e=>DS(e))),a={};for(let[e,t]of Object.entries(r??{})){if(!i.has(e))throw Error(`Unknown payment preference "${e}". Available: ${[...i].join(`, `)}`);a[e]=FS(t,`payment preference "${e}"`)}return a}function FS(e,t){if(typeof e!=`number`||Number.isNaN(e)||!Number.isFinite(e))throw Error(`Invalid q-value for ${t}. Expected a finite number.`);return LS(e,t)}function IS(e,t){if(!/^0(?:\.\d{0,3})?$|^1(?:\.0{0,3})?$/.test(e))throw Error(`Invalid q-value for ${t}. Expected an HTTP qvalue.`);return LS(Number(e),t)}function LS(e,t){if(e<0||e>1)throw Error(`Invalid q-value for ${t}. Expected a value between 0 and 1.`);let n=Math.round(e*1e3);if(Math.abs(e*1e3-n)>1e-9)throw Error(`Invalid q-value for ${t}. Expected at most 3 decimal places.`);return n/1e3}function RS(e){return e.toFixed(3).replace(/\.0+$/,``).replace(/(\.\d*?)0+$/,`$1`)}function zS(e,t){if(e!==`*`&&!/^[a-z0-9-]+$/.test(e))throw Error(`Invalid Accept-Payment ${t}: ${e}`)}var BS=L((()=>{bS()}));function VS(e){let t=e.match(RegExp(`^${Cx.payment}\\s+(.+)$`,`i`));if(!t?.[1])throw new KS;try{let e=k.toString(t[1]),n=JSON.parse(e),{opaque:r,request:i,meta:a,...o}=n.challenge,{meta:s,opaque:c}=HS(r);return{challenge:lS.parse({...o,...s!==void 0&&{meta:s},...c!==void 0&&{opaque:c},request:kx(i)}),payload:n.payload,...n.source&&{source:n.source}}}catch{throw new qS}}function HS(e){if(e===void 0)return{};if(typeof e==`string`)return{opaque:e};if(!US(e))throw Error(`Invalid opaque.`);return{meta:e,opaque:jx(e)}}function US(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:Object.values(e).every(e=>typeof e==`string`)}function WS(e){let{challenge:t,payload:n,source:r}=e;return{challenge:t,payload:n,...r&&{source:r}}}function GS(e){let{meta:t,opaque:n,request:r,...i}=e.challenge,a=n??(t===void 0?void 0:jx(t)),o={challenge:{...i,...a!==void 0&&{opaque:a},request:jx(r)},payload:e.payload,...e.source&&{source:e.source}},s=JSON.stringify(o),c=k.fromString(s,{pad:!1,url:!0});return`${Cx.payment} ${c}`}var KS,qS,JS=L((()=>{uS(),Ox(),Mx(),KS=class extends Error{name=`MissingPaymentSchemeError`;constructor(){super(`Missing Payment scheme.`)}},qS=class extends Error{name=`InvalidCredentialEncodingError`;constructor(){super(`Invalid base64url or JSON.`)}}})),YS,XS,ZS=L((()=>{YS=`org.paymentauth/credential`,XS=`org.paymentauth/payment-required`}));function QS(e){let{extensions:t,resource:n,...r}=e;return fC.parse(r)}var $S,eC,tC,nC,rC,iC,aC,oC,sC,cC,lC,uC,dC,fC,pC,mC,hC,gC,_C,vC,yC,bC,xC=L((()=>{Wx(),$S=`charge`,eC=[`exact`],tC=`eip155:`,nC=`x402:`,rC=`PAYMENT-REQUIRED`,iC=`PAYMENT-SIGNATURE`,aC=`PAYMENT-RESPONSE`,oC=X.string().check(X.minLength(1)),sC=X.number().check(X.refine(e=>e>0,`Must be positive`)),cC=X.string().check(X.regex(/^\d+$/,`Invalid atomic amount`)),lC=zx(),uC=X.string().check(X.regex(RegExp(`^${tC}\\d+$`),`Invalid EVM CAIP-2 network`)),dC=X.object({description:X.optional(X.string()),iconUrl:X.optional(X.string()),mimeType:X.optional(X.string()),serviceName:X.optional(X.string()),tags:X.optional(X.array(X.string())),url:oC}),X.discriminatedUnion(`type`,[X.object({name:oC,type:X.literal(`eip3009`),version:oC}),X.object({name:X.optional(X.string()),type:X.literal(`permit2`),version:X.optional(X.string())})]),fC=X.object({amount:cC,asset:oC,extra:X.optional(X.record(X.string(),X.unknown())),maxTimeoutSeconds:sC,network:uC,payTo:oC,scheme:X.enum(eC)}),pC=X.object({info:X.record(X.string(),X.unknown()),schema:X.record(X.string(),X.unknown())}),mC=X.record(X.string(),pC),hC=X.object({accepts:X.array(fC).check(X.minLength(1)),error:X.optional(X.string()),extensions:X.optional(mC),resource:dC,x402Version:X.literal(2)}),gC=X.object({authorization:X.object({from:lC,nonce:Bx(),to:lC,validAfter:cC,validBefore:cC,value:cC}),signature:Hx()}),_C=X.object({permit2Authorization:X.object({deadline:cC,from:lC,nonce:cC,permitted:X.object({amount:cC,token:lC}),spender:lC,witness:X.object({to:lC,validAfter:cC})}),signature:Hx()}),vC=X.union([gC,_C]),yC=X.object({accepted:fC,extensions:X.optional(mC),payload:vC,resource:X.optional(dC),x402Version:X.literal(2)}),X.object({extensions:X.optional(mC),extra:X.optional(X.record(X.string(),X.unknown())),invalidMessage:X.optional(X.string()),invalidReason:X.optional(X.string()),isValid:X.boolean(),payer:X.optional(X.string())}),bC=X.object({amount:X.optional(cC),errorMessage:X.optional(X.string()),errorReason:X.optional(X.string()),extensions:X.optional(mC),extra:X.optional(X.record(X.string(),X.unknown())),network:oC,payer:X.optional(X.string()),success:X.boolean(),transaction:X.string()})}));function SC(e,t,n){let r=new Headers(e.headers);for(let e of CC)e===Y.authorization&&!r.get(e)?.startsWith(`Payment `)||r.delete(e);return r.set(t,n),{...e,headers:r}}var CC,wC=L((()=>{Ox(),xC(),CC=[Y.authorization,rC,aC,iC]}));function TC(e){if(typeof e==`string`)try{let t=JSON.parse(e),n=t?.id;return t?.jsonrpc!==`2.0`||typeof t?.method!=`string`?void 0:typeof n==`string`||typeof n==`number`?n:void 0}catch{return}}function EC(e){let t=TC(e?.body);if(t===void 0)return;let n=new Headers(e?.headers);if(n.has(`mcp-method`))return t;let r=n.get(`accept`)?.toLowerCase()??``;return r.includes(`application/json`)&&r.includes(`text/event-stream`)?t:void 0}function DC(e){if(!e||typeof e!=`object`)return;let t=e,n=t.id;if(t.jsonrpc!==`2.0`||n!==void 0&&typeof n!=`string`&&typeof n!=`number`)return;let r=`error`in t;if(r!==`result`in t)return r?Number.isInteger(t.error?.code)&&typeof t.error?.message==`string`?e:void 0:n!==void 0&&typeof t.result==`object`?e:void 0}function OC(e){if(!e||typeof e!=`object`)return;let t=e?.challenges;if(!Array.isArray(t)||t.length===0)return;let n=[];for(let e of t){let t=lS.safeParse(e);if(!t.success)return;n.push(t.data)}let{httpStatus:r,problem:i}=e;return{challenges:n,...typeof r==`number`?{httpStatus:r}:{},...i===void 0?{}:{problem:i}}}function kC(e){if(e)return`error`in e?e.error?.code!==-32042&&e.error?.code!==-32043?void 0:OC(e.error.data):OC(e.result?._meta?.[XS])}function AC(e,t){return!e||e.id!==t?[]:kC(e)?.challenges??[]}async function jC(e){let t=e.clone().body?.getReader();if(!t)return;let n=new TextDecoder,r=!1,i,a=ve({onEvent(e){if(!(r||!e.data)&&(r=!0,!(e.event&&e.event!==`message`)))try{i=DC(JSON.parse(e.data))}catch{}}});try{for(;;){if(r)return i;let{done:e,value:o}=await t.read();if(e)return a.feed(n.decode()),a.reset({consume:!0}),i;a.feed(n.decode(o,{stream:!0}))}}finally{t.cancel().catch(()=>{})}}function MC(e){let t=PC.get(e);if(t)return t;let n=(async()=>{let t=e.headers.get(`content-type`)?.toLowerCase()??``;if(t.includes(`application/json`))return e.clone().json().then(DC).catch(()=>void 0);if(t.includes(`text/event-stream`))return jC(e)})();return PC.set(e,n),n}function NC(){return{getChallenges(e,t){let n=EC(t);return e.status===402||n===void 0?[]:MC(e).then(e=>AC(e,n))},setCredential(e,t){let n=JSON.parse(e.body),r=VS(t);return{...e,body:JSON.stringify({...n,params:{...n.params,_meta:{...n.params?._meta,[YS]:r}}})}}}}var PC,FC=L((()=>{uS(),JS(),ZS(),wC(),PC=new WeakMap}));function IC(){return{getChallenges(e){return e.status!==402||!e.headers.has(Y.wwwAuthenticate)?[]:tS(e)},setCredential(e,t,n){return SC(e,n?.challenge?aS(n.challenge):Y.authorization,t)}}}var LC=L((()=>{uS(),Ox(),wC()}));function RC(e){return{encode(t){return k.fromString(JSON.stringify(e.parse(t)))},decode(t){try{return e.parse(JSON.parse(k.toString(t)))}catch{throw new zC}}}}var zC,BC=L((()=>{zC=class extends Error{name=`InvalidJsonHeaderError`;constructor(){super(`Invalid base64 JSON header.`)}}}));function VC(e){try{let t=JSON.parse(k.toString(e));return qC(t)}catch{throw new zC}}var HC,UC,WC,GC,KC,qC,JC=L((()=>{BC(),xC(),HC=RC(hC),UC=RC(yC),WC=RC(bC),GC=HC.encode,HC.decode,KC=UC.encode,UC.decode,WC.encode,WC.decode,qC=e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw new zC;let t=e;if(t.x402Version!==2||!Array.isArray(t.accepts))throw new zC;let n=dC.parse(t.resource),r=t.extensions===void 0?void 0:mC.safeParse(t.extensions).data;return{accepts:t.accepts,...r?{extensions:r}:{},resource:n,x402Version:2}}}));function YC(){return{getChallenges(e){if(e.status!==402)return[];let t=e.headers.get(rC);if(!t)return[];let n=VC(t);if(e.url&&n.resource.url!==e.url)throw Error(`x402 payment-required resource does not match response URL.`);return n.accepts.flatMap((e,t)=>{let r=fC.safeParse(e);if(!r.success)return[];let i=r.data;return _S(Gx({id:`${nC}${t}`,intent:$S,method:`evm`,realm:new URL(n.resource.url).host,request:{...i,...n.extensions?{extensions:n.extensions}:{},resource:n.resource}}))})},setCredential(e,t){return SC(e,iC,t)}}}var XC=L((()=>{uS(),JC(),bS(),xC(),wC()}));function ZC(e){return e}function QC(){let e=[IC(),YC(),NC()],t=new WeakMap,n=(e,n)=>{for(let r of n)t.set(r,e);return n},r=(t,r)=>{let i=(a,o)=>{for(let s=a;s<e.length;s++){let a=e[s],c=a.getChallenges(t,r);if(c instanceof Promise)return c.then(e=>i(s+1,[...o,...n(a,e)]));o.push(...n(a,c))}return o};return i(0,[])};return ZC({name:`http`,isPaymentRequired(e,t){if(e.status===402)return!0;let n=r(e,t);return n instanceof Promise?n.then(e=>e.length>0):n.length>0},getChallenges(e,t){return r(e,t)},setCredential(n,r,i){let a=i?.challenge?t.get(i.challenge):void 0,o=e[0];if(!a&&!o)throw Error(`No protocol to attach the credential.`);return(a??o).setCredential(n,r,i)}})}var $C=L((()=>{FC(),LC(),wC(),XC()}));function ew(e,t){return rw.set(e,t),e}function tw(e){return rw.has(e)}function nw(e,t){return Promise.resolve(rw.get(e)?.(t))}var rw,iw=L((()=>{rw=new WeakMap}));function aw(e,t){return uw.set(e,t),e}function ow(e){uw.delete(e)}function sw(e,t,n){uw.has(e)&&dw.set(t,n)}function cw(e){return dw.get(e)}function lw(e,t){return Promise.resolve(uw.get(e)?.(t)??t.response)}var uw,dw,fw=L((()=>{uw=new WeakMap,dw=new WeakMap}));async function pw(e,t){let n=e?.attempt.settle;if(!n)return t.status!==`pending`;e.attempt.settle=void 0;let r=await n(t);return r||(e.attempt.settle=n),r}function mw(e){let{acceptPayment:t,acceptPaymentPolicy:n=`always`,fetch:r=globalThis.fetch,maxPaymentRetries:i=Zw,methods:a,onChallenge:o,orderChallenges:s,transport:c=QC()}=e,l=e.eventDispatcher??_w(),u=t??SS(a),d=Rw(r),f=async(e,t,r)=>{let p=Lw(e,t?.headers),m=p.has(Y.acceptPayment),h=Uw(p,u),g=Fw(e,t,p),_=Pw(e,t,p,h.header,m,n),v=await d(zw(_.input),_.init),y=Iw(_.init,await g);if(!await c.isPaymentRequired(v,y))return v;let b=t?.context,{context:x,orderChallenges:S,...C}=y??{},w,T,E,D;try{for(let n=0;n<i;n++){T=await c.getChallenges(v,y);let i=(await Ww(ES(T,a,h.entries),S??s))[0];if(!i){if(await pw(D,{challenges:T,response:v,status:`rejected`}),n>0)return v;throw Error(`No method found for challenges: ${T.map(e=>`${e.method}.${e.intent}`).join(`, `)}. Available: ${a.map(e=>`${e.name}.${e.intent}`).join(`, `)}`)}let u=i.challenge;w=u,E=i.method,w.expires&&hS(w.expires,w.id);let p=Yw(v,_.input,_.input),m=D,g=Kx(u),x=m?.method===i.method&&m?.key===g,O=!1;if(m){let e=await pw(m,{challenges:T,response:v,status:x?`pending`:`rejected`});O=x&&!e}D=O?m:void 0;let k=Sw(async e=>{if(e===void 0&&O&&m)return m.promise;O&&m&&(await pw(m,{status:`rejected`}),D=void 0);let t=e??b;if(!tw(i.method))return Hw(u,i.method,t);let n={prepare:()=>nw(i.method,{challenge:u,context:t,fetch:d,input:p})},r=n.prepare().then(()=>Hw(u,i.method,t,n));return D={attempt:n,key:e===void 0?g:void 0,method:i.method,promise:r},r}),A=await l.emit(`challenge.received`,Cw({challenge:u,challenges:T,createCredential:k,init:t,input:e,method:i.method,response:v}))??(o?await o(w,{createCredential:k}):void 0)??await k(),ee=D;ee&&await ee.promise.catch(()=>void 0)!==A&&(await pw(ee,{status:`rejected`}),D=void 0),Vw(A),await l.emit(`credential.created`,ww({challenge:u,credential:A,init:t,input:e,method:i.method,response:v})),v=await d(p,c.setCredential({...C,headers:_.headers},A,{challenge:u}));let j=await c.isPaymentRequired(v,y);if(j||(await pw(ee,{response:v,status:v.ok?`accepted`:`rejected`}),D=void 0),v.ok&&vw(l,`payment.response`)&&await l.emit(`payment.response`,Tw({challenge:u,credential:A,init:t,input:e,method:i.method,response:v})),!j)return v.ok?lw(i.method,{challenge:u,credential:A,fetch:d,headers:_.headers,input:p,...r?{refetch:()=>f(zw(_.input),t,!1)}:{},response:v,signal:Bw(e,t)}):v}T=void 0;try{T=await c.getChallenges(v,y)}catch{}return await pw(D,{challenges:T,response:v,status:`rejected`}),v}catch(n){throw await pw(D,{challenges:T,response:v,status:`rejected`}),await l.emit(`payment.failed`,Ew({challenge:w,challenges:T,error:n,init:t,input:e,method:E,response:v})),n}},p=(e,t)=>f(e,t,!0);return p[Xw]=d,p}function hw(e){let t=Object.getOwnPropertyDescriptor(globalThis,`fetch`);if(!t||!t.writable&&!t.set)throw Error(`globalThis.fetch is not writable`);Qw||=globalThis.fetch,globalThis.fetch=mw({...e,acceptPaymentPolicy:e.acceptPaymentPolicy??(qw()?`same-origin`:`always`),fetch:globalThis.fetch})}function gw(e){if(!e)return{};if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}return Array.isArray(e)?Object.fromEntries(e):e}function _w(){let e={"*":new Set,"challenge.received":new Set,"credential.created":new Set,"payment.failed":new Set,"payment.response":new Set},t={async emit(t,n){switch(t){case`challenge.received`:{let r;for(let t of e[`challenge.received`]){let e=await yw(t,n);if(typeof e==`string`&&e.length>0){r=e;break}}return await xw(e[`*`],t,n),r}case`credential.created`:await bw(e[`credential.created`],n),await xw(e[`*`],t,n);return;case`payment.failed`:await bw(e[`payment.failed`],n),await xw(e[`*`],t,n);return;case`payment.response`:await bw(e[`payment.response`],n),await xw(e[`*`],t,n);return}},on:(t,n)=>{switch(t){case`*`:case`challenge.received`:case`credential.created`:case`payment.failed`:case`payment.response`:return e[t].add(n),()=>e[t].delete(n);default:throw Error(`Unknown client event "${String(t)}".`)}}};return $w.set(t,t=>e[t].size>0||e[`*`].size>0),t}function vw(e,t){return $w.get(e)?.(t)??!0}async function yw(e,t){try{return await e(t)}catch{return}}async function bw(e,t){for(let n of e)try{await n(t)}catch{}}async function xw(e,t,n){await bw(e,Object.freeze({name:t,payload:n}))}function Sw(e){let t;return n=>(t??=e(n),t)}function Cw(e){return Object.freeze({challenge:jw(e.challenge),challenges:e.challenges.map(e=>jw(e)),createCredential:e.createCredential,init:Dw(e.init),input:Ow(e.input),method:kw(e.method),response:Aw(e.response)})}function ww(e){return Object.freeze({challenge:jw(e.challenge),credential:e.credential,init:Dw(e.init),input:Ow(e.input),method:kw(e.method),...e.response===void 0?{}:{response:Aw(e.response)}})}function Tw(e){return Object.freeze({challenge:jw(e.challenge),credential:e.credential,init:Dw(e.init),input:Ow(e.input),method:kw(e.method),response:Aw(e.response)})}function Ew(e){return Object.freeze({...e.challenge?{challenge:jw(e.challenge)}:{},...e.challenges?{challenges:e.challenges.map(e=>jw(e))}:{},error:e.error,init:Dw(e.init),input:Ow(e.input),...e.method?{method:kw(e.method)}:{},...e.response===void 0?{}:{response:Aw(e.response)}})}function Dw(e){if(e)return Nw({...e,...e.headers?{headers:new Headers(e.headers)}:{}})}function Ow(e){if(e instanceof Request)try{return e.clone()}catch{return e}return e instanceof URL?new URL(e):e}function kw(e){return Nw(Object.assign({},e))}function Aw(e){return e instanceof Response?e.clone():jw(e)}function jw(e){try{return Mw(structuredClone(e))}catch{return Nw(e)}}function Mw(e){if(!e||typeof e!=`object`||Object.isFrozen(e))return e;Object.freeze(e);for(let t of Object.values(e))Mw(t);return e}function Nw(e){return!e||typeof e!=`object`||Object.isFrozen(e)||Object.freeze(e),e}function Pw(e,t,n,r,i,a){let o=!!r&&!i&&Gw(e,a);if(!o)return{headers:n,init:t,input:e};let s=new Headers(e instanceof Request?e.headers:void 0);return n.forEach((e,t)=>{s.set(t,e)}),s.set(Y.acceptPayment,r),t?(t.headers=s,{headers:s,init:t,input:e}):{headers:s,init:o?{headers:s}:void 0,input:e}}function Fw(e,t,n){if(!(!(e instanceof Request)||t?.body!==void 0||!e.body||e.bodyUsed)){if(!n.has(`mcp-method`)){let e=n.get(`accept`)?.toLowerCase()??``;if(!e.includes(`application/json`)||!e.includes(`text/event-stream`))return}try{return e.clone().text().catch(()=>void 0)}catch{return}}}function Iw(e,t){return t===void 0?e:{...e,body:t}}function Lw(e,t){return t?new Headers(t):new Headers(e instanceof Request?e.headers:void 0)}function Rw(e){let t=e;for(;t[Xw];)t=t[Xw];return t}function zw(e){if(!(e instanceof Request)||!e.body||e.bodyUsed)return e;try{return e.clone()}catch{return e}}function Bw(e,t){return t?.signal??(e instanceof Request?e.signal:void 0)}function Vw(e){if(!e.trim())throw Error(`Credential header value must be non-empty`);if(e.includes(`\r`)||e.includes(`
224
- `))throw Error(`Credential header value contains illegal newline characters`)}async function Hw(e,t,n,r){let i=t.context&&n!==void 0?t.context.parse(n):void 0,a=i===void 0?{challenge:e}:{challenge:e,context:i};return r&&sw(t,a,r),t.createCredential(a)}function Uw(e,t){let n=e.get(Y.acceptPayment);if(!n)return t;try{return{...t,entries:CS(n),header:n}}catch{return t}}async function Ww(e,t){return t?t(e):e}function Gw(e,t){if(t===`always`)return!0;if(t===`never`)return!1;let n=Jw(e);return t===`same-origin`?!qw()||n.origin===globalThis.location.origin:t.origins.some(e=>Kw(n,e))}function Kw(e,t){if(t.startsWith(`*.`)){let n=t.slice(1);return e.hostname.endsWith(n)||e.hostname===t.slice(2)}return e.origin===new URL(t).origin}function qw(){return globalThis.location!==void 0}function Jw(e){return e instanceof URL?e:e instanceof Request?new URL(e.url):new URL(e,qw()?globalThis.location.href:void 0)}function Yw(e,t,n){if(!e.url)return t;let r=new URL(e.url),i=Jw(n);if(r.origin!==i.origin)throw Error(`Refusing to send payment credential across redirect from ${i.origin} to ${r.origin}`);return e.url}var Xw,Zw,Qw,$w,eT=L((()=>{uS(),Ox(),gS(),BS(),$C(),iw(),fw(),Xw=Symbol.for(`mppx.fetch.wrapper`),Zw=3,$w=new WeakMap}));xx(),eT();function tT(){let e=new Uint8Array(64);return crypto.getRandomValues(e),Object.freeze({created:Math.floor(Date.now()/1e3),nonce:k.fromBytes(e,{pad:!1,url:!0})})}function nT(...e){return{protocol:`composed`,async sign(t,n=tT()){for(let r of e)t=await r.sign(t,n);return t}}}function rT(e,t){return async(n,r)=>e(await t.sign(new Request(n,r)))}gS(),BS(),$C();function iT(e){let{attestation:t,maxPaymentRetries:n,onChallenge:r,orderChallenges:i,polyfill:a=!0,acceptPaymentPolicy:o=a&&globalThis.location!==void 0?`same-origin`:`always`,transport:s=QC()}=e,c=e.fetch??globalThis.fetch,l=t?aT(c,t):c,u=e.methods.flat(),d=SS(u,e.paymentPreferences),f=_w(),p=r,m={acceptPayment:d,acceptPaymentPolicy:o,...(e.fetch||t)&&{fetch:l},eventDispatcher:f,...n!==void 0&&{maxPaymentRetries:n},...p&&{onChallenge:p},...i&&{orderChallenges:i},methods:u,transport:s},h=mw(m);a&&hw(m);function g(e){return f.on(`challenge.received`,e)}function _(e){return f.on(`credential.created`,e)}function v(e){return f.on(`payment.failed`,e)}function y(e){return f.on(`payment.response`,e)}async function b(e,t){let n=dT(e),r=await s.getChallenges(e,t?.request),a=Object.freeze(r.map(e=>fT(e))),o=hT(d.entries,t?.acceptPayment),c,l;try{let e=(await gT(ES(r,u,o),t?.orderChallenges??i))[0];if(!e)throw Error(`No method found for challenges: ${r.map(e=>`${e.method}.${e.intent}`).join(`, `)}. Available: ${u.map(e=>`${e.name}.${e.intent}`).join(`, `)}`);let d=e.challenge;c=a[e.index],l=e.method,c.expires&&hS(c.expires,c.id);let p=c,m=l,h=oT(async e=>{try{p.expires&&hS(p.expires,p.id);let t=oT(t=>_T(p,m,t??e)),i=await f.emit(`challenge.received`,sT({challenge:p,challenges:r,createCredential:t,method:m,response:n}))??await t();return Vw(i),await f.emit(`credential.created`,cT({challenge:p,credential:i,method:m,response:n})),i}catch(e){throw await f.emit(`payment.failed`,lT({challenge:p,challenges:r,error:e,method:m,response:n})),e}});return Object.freeze({challenge:p,challenges:a,createCredential:h,method:uT(m),setCredential(e,t){return Vw(t),s.setCredential(e,t,{challenge:d})}})}catch(e){throw await f.emit(`payment.failed`,lT({challenge:c,challenges:r,error:e,method:l,response:n})),e}}return{fetch:h,rawFetch:c,methods:u,transport:s,on:f.on,onChallengeReceived:g,onCredentialCreated:_,onPaymentFailed:v,onPaymentResponse:y,preparePayment:b,async createCredential(e,t,n){return(await b(e,n)).createCredential(t)}}}function aT(e,t){let n=Object.values(t);if(n.length===0)throw TypeError(`Mppx client attestation must configure at least one signer.`);return rT(e,nT(...n))}function oT(e){let t;return n=>(t??=e(n),t)}function sT(e){return Object.freeze({challenge:fT(e.challenge),challenges:e.challenges.map(e=>fT(e)),createCredential:e.createCredential,method:uT(e.method),response:dT(e.response)})}function cT(e){return Object.freeze({challenge:fT(e.challenge),credential:e.credential,method:uT(e.method),response:dT(e.response)})}function lT(e){return Object.freeze({...e.challenge?{challenge:fT(e.challenge)}:{},...e.challenges?{challenges:e.challenges.map(e=>fT(e))}:{},error:e.error,...e.method?{method:uT(e.method)}:{},response:dT(e.response)})}function uT(e){return mT(Object.assign({},e))}function dT(e){if(e instanceof Response)try{return e.clone()}catch{return new Response(null,{headers:e.headers,status:e.status,statusText:e.statusText})}return fT(e)}function fT(e){try{let t=structuredClone(e);if(e&&t&&typeof e==`object`&&typeof t==`object`)for(let n of Object.getOwnPropertySymbols(e)){let r=Object.getOwnPropertyDescriptor(e,n);r&&Object.defineProperty(t,n,r)}return pT(t)}catch{return mT(e)}}function pT(e){if(!e||typeof e!=`object`||Object.isFrozen(e))return e;Object.freeze(e);for(let t of Object.values(e))pT(t);return e}function mT(e){return!e||typeof e!=`object`||Object.isFrozen(e)||Object.freeze(e),e}function hT(e,t){return t?typeof t==`string`?CS(t):t:e}async function gT(e,t){return t?t(e):e}async function _T(e,t,n){let r=t.context&&n!==void 0?t.context.parse(n):void 0;return t.createCredential(r===void 0?{challenge:e}:{challenge:e,context:r})}function vT(){return X.string().check(X.regex(yT,`Invalid URI or path`))}var yT,bT,xT,ST,CT,wT,TT,ET,DT,OT=L((()=>{Wx(),yT=/^([a-zA-Z][a-zA-Z\d+.-]*:\/\/\S+|\/\S*)$/,bT=new Set([`amount`,`currency`,`description`,`intent`,`method`]),xT=X.looseObject({amount:X.optional(X.union([X.null(),X.string().check(X.regex(/^(0|[1-9][0-9]*)$/,`Invalid amount`))])),currency:X.optional(X.string()),description:X.optional(X.string()),intent:X.optional(X.string()),method:X.optional(X.string())}),ST=X.pipe(X.looseObject({amount:X.optional(X.union([X.null(),X.string().check(X.regex(/^(0|[1-9][0-9]*)$/,`Invalid amount`))])),currency:X.optional(X.string()),description:X.optional(X.string()),intent:X.optional(X.string()),method:X.optional(X.string()),offers:X.optional(X.array(xT).check(X.minLength(1)))}).check(X.refine(e=>e.offers===void 0||Object.keys(e).every(e=>e===`offers`||!bT.has(e)),`Cannot mix offers with flat payment info fields`)),X.transform(e=>{if(e.offers)return{offers:e.offers};let t={};for(let[n,r]of Object.entries(e))n!==`offers`&&(bT.has(n)||r!==void 0)&&(t[n]=r);return{offers:[t]}})),CT=X.looseObject({apiReference:X.optional(vT()),homepage:X.optional(vT()),llms:X.optional(vT())}),wT=X.looseObject({categories:X.optional(X.array(X.string())),docs:X.optional(CT)}),TT=X.looseObject({"x-payment-info":X.optional(ST),requestBody:X.optional(X.unknown()),responses:X.optional(X.record(X.string(),X.unknown())),summary:X.optional(X.string())}),ET=X.looseObject({delete:X.optional(TT),get:X.optional(TT),head:X.optional(TT),options:X.optional(TT),patch:X.optional(TT),post:X.optional(TT),put:X.optional(TT),trace:X.optional(TT)}),DT=X.looseObject({openapi:X.string(),info:X.looseObject({title:X.string(),version:X.string()}),"x-service-info":X.optional(wT),paths:X.optional(X.record(X.string(),ET))})}));OT();function kT(e){let t=[],n=DT.safeParse(e);if(!n.success){for(let e of n.error.issues)t.push({message:e.message,path:e.path.map(String).join(`.`)||`(root)`,severity:`error`});return t}let r=n.data.paths;if(!r)return t;for(let[e,n]of Object.entries(r))for(let[r,i]of Object.entries(n)){if(!i||typeof i!=`object`||Array.isArray(i))continue;let n=i,a=`paths.${e}.${r}`,o=n[`x-payment-info`];if(!o)continue;let s=ST.safeParse(o);if(!s.success){for(let e of s.error.issues){let n=e.path.length>0?`.${e.path.map(String).join(`.`)}`:``;t.push({message:e.message,path:`${a}.x-payment-info${n}`,severity:`error`})}continue}let c=n.responses;(!c||!(`402`in c))&&t.push({message:`Operation with x-payment-info MUST have a 402 response`,path:`${a}.responses`,severity:`error`});let l=r.toUpperCase();!n.requestBody&&(l===`POST`||l===`PUT`||l===`PATCH`)&&t.push({message:`Operation with x-payment-info has no requestBody`,path:a,severity:`warning`})}return t}function AT(e){return e}function jT(e,t){let{canHandleChallenge:n,context:r,createCredential:i}=t;return{...e,canHandleChallenge:n,context:r,createCredential:i}}var MT=L((()=>{}));function NT(e){return X.refine(e=>{let{amount:t,decimals:n}=e;return F(t,n)>0n},e)}function PT(e){let{periodCount:t,periodUnit:n}=e;try{let e=RT[n];return e!==void 0&&BigInt(t)*e<=LT}catch{return!1}}var FT,IT,LT,RT,zT,BT,VT,HT,UT,WT,GT,KT,qT,JT=L((()=>{Ox(),MT(),Wx(),FT=[`push`,`pull`],IT=X.object({amount:Px(),memo:X.optional(Bx()),recipient:X.pipe(X.string(),X.transform(e=>e))}),LT=(1n<<64n)-1n,RT={dev_second:1n,day:86400n,week:604800n},zT=X.pipe(zx(),X.transform(e=>e.toLowerCase())),BT=X.object({accessKeyAddress:zT,keyType:X.enum([`p256`,`secp256k1`,`webAuthn`])}),VT=X.object({accessKey:X.optional(BT),chainId:X.optional(X.number())}),HT=Ix(`subscriptionExpires must be a valid date`).check(X.refine(e=>e.getTime()%1e3==0,`subscriptionExpires must be representable as whole seconds`)),UT=X.enum([`dev_second`,`day`,`week`]),WT=X.pipe(X.union([X.string(),X.bigint(),X.custom(e=>typeof e==`number`&&Number.isSafeInteger(e))]),X.transform(e=>e.toString())).check(X.regex(/^[1-9]\d*$/,`Invalid periodCount`),X.refine(e=>{try{return BigInt(e)<=LT}catch{return!1}},`periodCount exceeds uint64`)),GT=AT({name:`tempo`,intent:`charge`,schema:{credential:{payload:X.discriminatedUnion(`type`,[X.object({hash:Bx(),type:X.literal(`hash`)}),X.object({signature:Hx(),type:X.literal(`transaction`)}),X.object({signature:Hx(),type:X.literal(`proof`)})])},request:X.pipe(X.object({amount:Px(),chainId:X.optional(X.number()),currency:X.string(),decimals:X.number(),description:X.optional(X.string()),externalId:X.optional(X.string()),feePayer:X.optional(X.pipe(X.union([X.boolean(),X.custom()]),X.transform(e=>typeof e==`object`||e))),memo:X.optional(Bx()),recipient:X.optional(X.string()),splits:X.optional(X.array(IT).check(X.minLength(1),X.maxLength(10))),supportedModes:X.optional(X.array(X.enum(FT)).check(X.minLength(1)))}).check(X.refine(({amount:e,decimals:t,splits:n})=>{if(!n)return!0;let r=F(e,t),i=n.reduce((e,n)=>e+F(n.amount,t),0n);return n.every(e=>F(e.amount,t)>0n)&&i<r},`Invalid splits`)),X.transform(({amount:e,chainId:t,decimals:n,feePayer:r,memo:i,splits:a,supportedModes:o,...s})=>({...s,amount:F(e,n).toString(),...t!==void 0||r!==void 0||i!==void 0||a!==void 0||o!==void 0?{methodDetails:{...t!==void 0&&{chainId:t},...r!==void 0&&{feePayer:r},...i!==void 0&&{memo:i},...a!==void 0&&{splits:a.map(e=>({...e,amount:F(e.amount,n).toString()}))},...o!==void 0&&{supportedModes:o}}}:{}})))}}),KT=AT({name:`tempo`,intent:`session`,schema:{credential:{payload:X.discriminatedUnion(`action`,[X.object({action:X.literal(`open`),authorizedSigner:X.optional(X.string()),channelId:Bx(),cumulativeAmount:Px(),descriptor:X.optional(X.custom()),signature:Hx(),transaction:Hx(),type:X.literal(`transaction`)}),X.object({action:X.literal(`topUp`),additionalDeposit:Px(),channelId:Bx(),descriptor:X.optional(X.custom()),transaction:Hx(),type:X.literal(`transaction`)}),X.object({action:X.literal(`voucher`),channelId:Bx(),cumulativeAmount:Px(),descriptor:X.optional(X.custom()),signature:Hx()}),X.object({action:X.literal(`close`),channelId:Bx(),cumulativeAmount:Px(),descriptor:X.optional(X.custom()),signature:Hx()})])},request:X.pipe(X.object({amount:Px(),chainId:X.optional(X.number()),channelId:X.optional(Bx()),currency:X.string(),decimals:X.number(),escrowContract:X.optional(X.string()),feePayer:X.optional(X.pipe(X.union([X.boolean(),X.custom()]),X.transform(e=>typeof e==`object`||e))),feeToken:X.optional(zx()),minVoucherDelta:X.optional(Px()),operator:X.optional(zx()),recipient:X.optional(X.string()),sessionProtocol:X.optional(X.enum([Dx.v2,Dx.v1])),sessionSnapshot:X.optional(X.custom()),suggestedDeposit:X.optional(Px()),unitType:X.string()}).check(X.refine(({amount:e,decimals:t})=>F(e,t)>0n,`Session amount must be greater than 0`)),X.transform(({amount:e,chainId:t,channelId:n,decimals:r,escrowContract:i,feePayer:a,feeToken:o,minVoucherDelta:s,operator:c,sessionProtocol:l,sessionSnapshot:u,suggestedDeposit:d,...f})=>({...f,amount:F(e,r).toString(),...d?{suggestedDeposit:F(d,r).toString()}:{},methodDetails:{escrowContract:i,...n!==void 0&&{channelId:n},...s!==void 0&&{minVoucherDelta:F(s,r).toString()},...t!==void 0&&{chainId:t},...a!==void 0&&{feePayer:a},...o!==void 0&&{feeToken:o},...c!==void 0&&{operator:c},...l!==void 0&&{[Ex.sessionProtocol]:l},...u!==void 0&&{[Ex.sessionSnapshot]:u}}})))}}),qT=AT({name:`tempo`,intent:`subscription`,schema:{credential:{payload:X.object({signature:Hx(),type:X.literal(`keyAuthorization`)})},request:X.pipe(X.object({amount:Px(),accessKey:X.optional(BT),chainId:X.optional(X.number()),currency:zT,decimals:X.number(),description:X.optional(X.string()),externalId:X.optional(X.string()),methodDetails:X.optional(VT),periodCount:WT,periodUnit:UT,recipient:zT,subscriptionExpires:HT}).check(NT(`Subscription amount must be greater than 0`),X.refine(PT,`Subscription period exceeds uint64`)),X.transform(({accessKey:e,amount:t,chainId:n,decimals:r,methodDetails:i,subscriptionExpires:a,...o})=>{let s={...i,...e!==void 0&&{accessKey:e},...n!==void 0&&{chainId:n}};return{...o,amount:F(t,r).toString(),subscriptionExpires:a.toISOString(),...Object.keys(s).length>0?{methodDetails:s}:{}}}))}})}));function YT(e){return e>=0n&&e<=mE}function XT(e){if(!/^\d{1,29}$/.test(e))return;let t=BigInt(e);return YT(t)?t:void 0}function ZT(e){return QT(e),e}function QT(e){if(!YT(e))throw Error(`Value ${e} is outside uint96 bounds.`)}function $T(e){return typeof e==`object`&&!!e}function eE(e){return typeof e==`string`&&hE.has(e)}function tE(e){if(typeof e!=`object`||!e)return!1;let t=e;return!(typeof t.channelId!=`string`||t.action!==void 0&&!eE(t.action))}function nE(e,t=`No session credential context available.`){if(!tE(e))throw Error(t);return e}function rE(e){let t=e.request.amount;if(typeof t!=`string`)throw Error(`Session challenge is missing amount.`);return BigInt(t)}function iE(e){return $T(e)?typeof e.channelId==`string`&&typeof e.requiredCumulative==`string`&&typeof e.acceptedCumulative==`string`&&typeof e.deposit==`string`:!1}function aE(e){return $T(e)?e.method===`tempo`&&e.intent===`session`&&e.status===`success`&&typeof e.timestamp==`string`&&typeof e.reference==`string`&&typeof e.challengeId==`string`&&typeof e.channelId==`string`&&typeof e.acceptedCumulative==`string`&&typeof e.spent==`string`&&(e.units===void 0||typeof e.units==`number`)&&(e.txHash===void 0||typeof e.txHash==`string`):!1}function oE(e){let t=k.toString(e),n=JSON.parse(t);if(!aE(n))throw Error(`Invalid session receipt.`);return n}function sE(e){return e.headers.get(`content-type`)?.toLowerCase().startsWith(`text/event-stream`)??!1}function cE(e){let t=`message`,n=[];for(let r of e.split(`
205
+ `)}`}function Sy(e){return e.toLowerCase().replace(/[^a-z0-9-]+/g,`-`).replace(/-{2,}/g,`-`).replace(/^-|-$/g,``)}function Cy(e){if(!e)return`unknown`;let t=e.type;return t?t===`integer`?`number`:t:`unknown`}var wy=F((()=>{hl(),Eu()}));async function Ty(e,t={}){let n=Qe(),r=t.command??Dy(t.cli??e,n),i=t.agents??[],a=i.length===1&&i[0]===`amp`,o=[];if(!a){let a=[r,`--name`,e,`-y`];t.global!==!1&&a.push(`-g`);for(let e of i.filter(e=>e!==`amp`))a.push(`-a`,e);let[s,...c]=n.split(` `),{stdout:l}=await Ny(s,[...c,`add-mcp`,...a]);o.push(...l.split(`
206
+ `).filter(e=>e.includes(`✓`)||e.includes(`✔`)).map(e=>e.replace(/[│┃|]/g,``).replace(/.*[✓✔]\s*/,``).replace(/:.*/,``).trim()).filter(Boolean))}return(i.length===0||i.includes(`amp`))&&Ey(e,r)&&o.push(`Amp`),{command:r,agents:o}}function Ey(e,t){let n=d(S(),`.config`,`amp`,`settings.json`),s={};if(r(n))try{s=JSON.parse(a(n,`utf-8`))}catch{return!1}let[c,...l]=My(t);if(!c)return!1;let f=s[`amp.mcpServers`]??{};f[e]={command:c,args:l},s[`amp.mcpServers`]=f;let p=u(n);return r(p)||i(p,{recursive:!0}),o(n,JSON.stringify(s,null,2)+`
207
+ `),!0}function Dy(e,t){return ky(e)?`${e} --mcp`:`${t} ${jy(e)} --mcp`}function Oy(){let e=(process.argv[1]?.replace(/\\/g,`/`))?.match(/^(.+)\/node_modules\/(.+)$/);return e?{root:e[1],entry:e[2]}:null}function ky(e){let t=process.argv[1];if(!t)return!1;let n=Oy();if(n)return!n.entry.startsWith(`.bin/`)&&!Ay(n.root,e);let r=t.replace(/\\/g,`/`).split(`/`).pop();return r===e||r===`${e}.cmd`||r===`${e}.ps1`}function Ay(e,t){try{let n=JSON.parse(a(d(e,`package.json`),`utf-8`));return[n.dependencies,n.devDependencies,n.optionalDependencies,n.peerDependencies].some(e=>t in(e??{}))}catch{return!1}}function jy(e){let t=Oy();if(!t)return e;try{let n=JSON.parse(a(d(t.root,`package.json`),`utf-8`)).dependencies??{},r=n[e];if(!r||Object.keys(n).length!==1)return e;if(/^https?:\/\//.test(r)||r.startsWith(`file:`))return r;if(/^\d/.test(r))return`${e}@${r}`}catch{}return e}function My(e){let t=[],n=``,r=null;for(let i=0;i<e.length;i++){let a=e[i];r?a===r?r=null:n+=a:a===`"`||a===`'`?r=a:a===` `?(n&&t.push(n),n=``):n+=a}return n&&t.push(n),t}function Ny(e,t){return new Promise((n,r)=>{h(e,t,(e,t,i)=>{if(e){let n=i?.trim()||t?.trim()||e.message;r(Error(n))}else n({stdout:t,stderr:i})})})}var Py=F((()=>{et()}));function Fy(){return Gy.filter(e=>e.detect())}function Iy(e,n={}){let r=n.global!==!1,i=n.cwd||process.cwd(),a=r?K:i,o=c.join(a,`.agents`,`skills`),s=n.agents??Fy(),l=[],u=[];for(let n of Ry(e)){let e=c.join(o,n.name);By(e),t.mkdirSync(e,{recursive:!0}),n.root?t.copyFileSync(c.join(n.dir,`SKILL.md`),c.join(e,`SKILL.md`)):t.cpSync(n.dir,e,{recursive:!0}),l.push(e);for(let a of s){if(a.universal)continue;let o=r?a.globalSkillsDir:c.join(i,a.projectSkillsDir),s=c.join(o,n.name);if(Vy(s)!==Vy(e))try{By(s),t.mkdirSync(c.dirname(s),{recursive:!0});let n=Vy(c.dirname(s)),r=Vy(e),i=c.relative(n,r);t.symlinkSync(i,s),u.push({agent:a.name,path:s,mode:`symlink`})}catch{try{t.cpSync(e,s,{recursive:!0}),u.push({agent:a.name,path:s,mode:`copy`})}catch{}}}}return{paths:l,agents:u}}function Ly(e,t={}){let n=t.global!==!1,r=t.cwd||process.cwd(),i=n?K:r;By(c.join(i,`.agents`,`skills`,e));for(let t of Fy()){if(t.universal)continue;let i=n?t.globalSkillsDir:c.join(r,t.projectSkillsDir);By(c.join(i,e))}}function Ry(e){let n=[];function r(e){let i;try{i=t.readdirSync(e,{withFileTypes:!0})}catch{return}for(let a of i){if(!a.isDirectory())continue;let i=c.join(e,a.name),o=c.join(i,`SKILL.md`);if(t.existsSync(o)){let e=t.readFileSync(o,`utf8`).match(/^name:\s*(.+)$/m);n.push({name:zy(e?.[1]??a.name),dir:i})}r(i)}}r(e);let i=c.join(e,`SKILL.md`);if(t.existsSync(i)){let r=zy(t.readFileSync(i,`utf8`).match(/^name:\s*(.+)$/m)?.[1]??`skill`);n.some(e=>e.name===r)||n.push({name:r,dir:e,root:!0})}return n}function zy(e){return e.trim().replace(/[/\\]/g,`-`).replace(/\.\./g,``).slice(0,255)}function By(e){try{t.lstatSync(e).isSymbolicLink()?t.unlinkSync(e):t.rmSync(e,{recursive:!0,force:!0})}catch{}}function Vy(e){try{return t.realpathSync(e)}catch{let n=c.dirname(e);if(n===e)return e;try{return c.join(t.realpathSync(n),c.relative(n,e))}catch{return e}}}var K,Hy,Uy,Wy,Gy,Ky=F((()=>{K=b.homedir(),Hy=process.env.XDG_CONFIG_HOME||c.join(K,`.config`),Uy=process.env.CLAUDE_CONFIG_DIR?.trim()||c.join(K,`.claude`),Wy=process.env.CODEX_HOME?.trim()||c.join(K,`.codex`),Gy=[{name:`Amp`,globalSkillsDir:c.join(Hy,`agents`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>t.existsSync(c.join(Hy,`amp`))},{name:`Cline`,globalSkillsDir:c.join(K,`.agents`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>t.existsSync(c.join(K,`.cline`))},{name:`Codex`,globalSkillsDir:c.join(Wy,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>t.existsSync(Wy)},{name:`Cursor`,globalSkillsDir:c.join(K,`.cursor`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>t.existsSync(c.join(K,`.cursor`))},{name:`Gemini CLI`,globalSkillsDir:c.join(K,`.gemini`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>t.existsSync(c.join(K,`.gemini`))},{name:`GitHub Copilot`,globalSkillsDir:c.join(K,`.copilot`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>t.existsSync(c.join(K,`.copilot`))},{name:`Kimi CLI`,globalSkillsDir:c.join(Hy,`agents`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>t.existsSync(c.join(K,`.kimi`))},{name:`OpenCode`,globalSkillsDir:c.join(Hy,`opencode`,`skills`),projectSkillsDir:`.agents/skills`,universal:!0,detect:()=>t.existsSync(c.join(Hy,`opencode`))},{name:`Claude Code`,globalSkillsDir:c.join(Uy,`skills`),projectSkillsDir:`.claude/skills`,universal:!1,detect:()=>t.existsSync(Uy)},{name:`Windsurf`,globalSkillsDir:c.join(K,`.codeium`,`windsurf`,`skills`),projectSkillsDir:`.windsurf/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.codeium`,`windsurf`))},{name:`Continue`,globalSkillsDir:c.join(K,`.continue`,`skills`),projectSkillsDir:`.continue/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.continue`))},{name:`Roo`,globalSkillsDir:c.join(K,`.roo`,`skills`),projectSkillsDir:`.roo/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.roo`))},{name:`Kilo`,globalSkillsDir:c.join(K,`.kilocode`,`skills`),projectSkillsDir:`.kilocode/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.kilocode`))},{name:`Goose`,globalSkillsDir:c.join(Hy,`goose`,`skills`),projectSkillsDir:`.goose/skills`,universal:!1,detect:()=>t.existsSync(c.join(Hy,`goose`))},{name:`Augment`,globalSkillsDir:c.join(K,`.augment`,`skills`),projectSkillsDir:`.augment/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.augment`))},{name:`Trae`,globalSkillsDir:c.join(K,`.trae`,`skills`),projectSkillsDir:`.trae/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.trae`))},{name:`Junie`,globalSkillsDir:c.join(K,`.junie`,`skills`),projectSkillsDir:`.junie/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.junie`))},{name:`Crush`,globalSkillsDir:c.join(Hy,`crush`,`skills`),projectSkillsDir:`.crush/skills`,universal:!1,detect:()=>t.existsSync(c.join(Hy,`crush`))},{name:`Kiro CLI`,globalSkillsDir:c.join(K,`.kiro`,`skills`),projectSkillsDir:`.kiro/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.kiro`))},{name:`Qwen Code`,globalSkillsDir:c.join(K,`.qwen`,`skills`),projectSkillsDir:`.qwen/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.qwen`))},{name:`OpenHands`,globalSkillsDir:c.join(K,`.openhands`,`skills`),projectSkillsDir:`.openhands/skills`,universal:!1,detect:()=>t.existsSync(c.join(K,`.openhands`))}]}));async function qy(e,t,n={}){let{depth:r=1,description:i,global:a=!0}=n,o=n.cwd??(a?Xy():process.cwd());await fl();let s=new Map;i&&s.set(e,i);let c=_y(e,tx(t,[],s,n.rootCommand),r,s),u=await w.mkdtemp(l.join(x.tmpdir(),`incur-skills-${e}-`));try{let r=[];for(let t of c){let n=t.dir?l.join(u,t.dir,`SKILL.md`):l.join(u,`SKILL.md`);await w.mkdir(l.dirname(n),{recursive:!0}),await w.writeFile(n,`${t.content}\n`);let i=ox(t.content);r.push({name:i.name??(t.dir||e),description:i.description})}if(n.include)for(let t of n.include){let n=t===`_root`?`SKILL.md`:l.join(t,`SKILL.md`);for await(let i of w.glob(n,{cwd:o}))try{let n=await w.readFile(l.resolve(o,i),`utf8`),a=ox(n),s=t===`_root`?a.name??e:l.basename(l.dirname(i)),c=l.join(u,s,`SKILL.md`);await w.mkdir(l.dirname(c),{recursive:!0}),await w.writeFile(c,n),r.some(e=>e.name===s)||r.push({name:s,description:a.description,external:!0})}catch{}}let{paths:i,agents:s}=Iy(u,{global:a,cwd:o}),d=new Set(i.map(e=>l.basename(e))),f=$y(e);if(f?.skills)for(let e of f.skills)d.has(e)||Ly(e,{global:a,cwd:o});return Qy(e,by(tx(t,[],new Map,n.rootCommand)),[...d],[...i,...s.map(e=>e.path)]),{skills:r.sort((e,t)=>e.name.localeCompare(t.name)),paths:i,agents:s}}finally{await w.rm(u,{recursive:!0,force:!0})}}async function Jy(e,t,n={}){let{depth:r=1,description:i}=n,a=n.cwd??process.cwd();await fl();let o=new Map;i&&o.set(e,i);let s=_y(e,tx(t,[],o,n.rootCommand),r,o),c=[],u=eb(e,{cwd:a});for(let t of s){let n=ox(t.content),r=n.name??(t.dir||e);c.push({name:r,description:n.description,installed:u.has(r)})}if(n.include)for(let t of n.include){let n=t===`_root`?`SKILL.md`:l.join(t,`SKILL.md`);for await(let r of w.glob(n,{cwd:a}))try{let n=ox(await w.readFile(l.resolve(a,r),`utf8`)),i=t===`_root`?n.name??e:l.basename(l.dirname(r));c.some(e=>e.name===i)||c.push({name:i,description:n.description,installed:u.has(i)})}catch{}}return c.sort((e,t)=>e.name.localeCompare(t.name))}function Yy(e,t={}){return eb(e,t).size>0}function Xy(){let e=process.argv[1];if(!e)return process.cwd();let t=l.dirname((()=>{try{return n.realpathSync(e)}catch{return process.execPath}})()),r=l.parse(t).root;for(;t!==r;){try{return n.accessSync(l.join(t,`package.json`)),t}catch{}t=l.dirname(t)}return process.cwd()}function Zy(e){let t=process.env.XDG_DATA_HOME||l.join(x.homedir(),`.local`,`share`);return l.join(t,`incur`,`${e}.json`)}function Qy(e,t,r,i){let a=Zy(e),o=l.dirname(a);n.existsSync(o)||n.mkdirSync(o,{recursive:!0}),n.writeFileSync(a,JSON.stringify({hash:t,skills:r,paths:i,at:new Date().toISOString()})+`
208
+ `)}function $y(e){try{return JSON.parse(n.readFileSync(Zy(e),`utf-8`))}catch{return}}function eb(e,t={}){let n=$y(e);if(!n?.skills?.length)return new Set;if(n.paths?.length){let e=n.paths.filter(e=>tb(e)).map(e=>l.basename(e));return new Set(e)}let r=t.cwd??process.cwd(),i=[l.join(x.homedir(),`.agents`,`skills`),l.join(r,`.agents`,`skills`)],a=n.skills.filter(e=>i.some(t=>tb(l.join(t,e))));return new Set(a)}function tb(e){return n.existsSync(l.join(e,`SKILL.md`))}function nb(e){return $y(e)?.hash}var rb=F((()=>{Cx(),Ky(),hl(),wy()}));function ib(e,t){let n=typeof e==`string`?e:e.name,r=typeof e==`string`?t??{}:e,i=r.version??Ft,a=`run`in r?r:void 0,o=`fetch`in r&&r.fetch!==void 0?r.fetch:void 0,s=o===void 0?void 0:Lb(o),c=o===void 0?void 0:Rb(o),l=new Map,u=[],d=[],f=ob(r.mcp?.name??n,i??`0.0.0`,{instructions:r.mcp?.instructions,stateless:r.mcp?.stateless,title:r.mcp?.title,tools:r.mcp?.tools});r.openapi&&s&&d.push((async()=>{let e=await Ev(await wv(r.openapi,{baseUrl:c}),s,{config:r.openapiConfig});for(let[t,n]of e)l.set(t,n)})());let p={name:n,description:r.description,env:r.env,vars:r.vars,command(e,t){if(typeof e==`string`){if(Ib(t))return d.push((async()=>{let n=ty(await ey(t.mcp)),r={_group:!0,description:t.description,commands:n,...t.outputPolicy?{outputPolicy:t.outputPolicy}:void 0};Ub(e,r,bx.get(p)),l.set(e,r)})()),p;if(t&&`fetch`in t&&Fb(t.fetch)){let n=Lb(t.fetch);return t.openapi?(d.push((async()=>{let r=await Ev(await wv(t.openapi,{baseUrl:Rb(t.fetch)}),n,{basePath:t.basePath,config:t.openapiConfig}),i={_group:!0,description:t.description,commands:r,...t.outputPolicy?{outputPolicy:t.outputPolicy}:void 0,...t.mcp===!1?{mcp:!1}:void 0};Ub(e,i,bx.get(p)),l.set(e,i)})()),p):(l.set(e,{_fetch:!0,basePath:t.basePath,description:t.description,fetch:n,...t.outputPolicy?{outputPolicy:t.outputPolicy}:void 0}),p)}if(Ub(e,t,bx.get(p)),l.set(e,t),t.aliases)for(let n of t.aliases)l.set(n,{_alias:!0,target:e});return p}let n=gx.get(e),r=e,i=px.get(r),a=yx.get(r),o=hx.get(r),s=mx.get(r),c=n&&i.size===0?n:{_group:!0,description:r.description,commands:i,...n?{root:n}:void 0,...a?{outputPolicy:a}:void 0,...o?.length?{middlewares:o}:void 0};if(s?.length?d.push(Promise.all(s).then(()=>{Ub(r.name,c,bx.get(p))})):Ub(r.name,c,bx.get(p)),l.set(r.name,c),n){let t=xx.get(e);if(t)for(let n of t)l.set(n,{_alias:!0,target:e.name})}return p},async fetch(e){d.length>0&&await Promise.all(d);let t=bx.get(p);return lb(n,l,e,{description:r.description,envSchema:r.env,globals:t,mcpHandler:f,middlewares:u,name:n,rootCommand:a,vars:r.vars,version:i})},fs(e){let t=vu();return d.push((async()=>{let n=t?await yu(t):await jb(await Ab(e));for(let e of n){if(!Mb(e.command))throw Error(`Expected the default export from '${e.file}' to be created with \`Cli.command()\`.`);Nb(l,e.segments,e.command,e.file,bx.get(p))}})()),p},async serve(e=process.argv.slice(2),t={}){if(await xt(e))return;d.length>0&&await Promise.all(d);let o=bx.get(p);return ab(n,l,e,{...t,aliases:r.aliases,banner:r.banner,config:r.config,description:r.description,envSchema:r.env,format:r.format,globals:o,mcp:r.mcp,middlewares:u,outputPolicy:r.outputPolicy,rootCommand:a,rootFetch:s,sync:r.sync,update:r.update,vars:r.vars,version:i})},use(e){return u.push(e),p}};if(a&&gx.set(p,a),a&&r.aliases&&xx.set(p,r.aliases),r.options&&_x.set(p,r.options),r.config!==void 0&&vx.set(p,!0),r.outputPolicy&&yx.set(p,r.outputPolicy),r.globals){bx.set(p,{schema:r.globals,alias:r.globalAlias});let e=[`verbose`,`format`,`json`,`llms`,`llmsFull`,`mcp`,`help`,`incurBinaryApply`,`incurUpdateCheck`,`update`,`version`,`schema`,`filterOutput`,`tokenLimit`,`tokenOffset`,`tokenCount`,...r.config?.flag?[r.config.flag,`no${r.config.flag[0].toUpperCase()}${r.config.flag.slice(1)}`]:[]],t=Object.keys(r.globals.shape);for(let n of t)if(e.includes(n))throw Error(`Global option '${n}' conflicts with a built-in flag. Choose a different name.`);let n=new Set([`h`]);if(r.globalAlias){for(let[e,t]of Object.entries(r.globalAlias))if(n.has(t))throw Error(`Global alias '-${t}' for '${e}' conflicts with a built-in short flag. Choose a different alias.`)}}return hx.set(p,u),px.set(p,l),mx.set(p,d),p}async function ab(e,t,n,r={}){let i=r.stdout??(e=>process.stdout.write(e)),a=r.exit??(e=>process.exit(e)),o=process.stdout.isTTY===!0,s=o,c=r.config!==void 0,l=r.config?.flag,u=lx(e,r.aliases);function d(e){i(e.endsWith(`
209
+ `)?e:`${e}\n`)}async function f(){if(!r.banner||w)return;let e=typeof r.banner==`function`?{render:r.banner,mode:`all`}:r.banner,t=e.mode??`all`;if(t===`all`||t===(s?`human`:`agent`))try{let t=await e.render();t&&d(t)}catch{}}let p;try{p=mb(n,{configFlag:l})}catch(e){let t=e instanceof Error?e.message:String(e);d(s?Wb({code:`UNKNOWN`,message:t}):gl({code:`UNKNOWN`,message:t},`toon`)),a(1);return}let{fullOutput:m,format:h,formatExplicit:g,filterOutput:_,tokenLimit:v,tokenOffset:y,tokenCount:b,llms:x,llmsFull:S,mcp:C,help:w,update:T,updateCheck:ee,version:E,schema:D,configPath:te,configDisabled:O,rest:ne}=p;s=o&&!g;let k={...typeof r.update==`object`?r.update:void 0,binary:Pt!==void 0,version:r.version},A={},j=ne;function re(e){if(!r.globals)return!0;try{let t=zl(ne,r.globals.schema,r.globals.alias,{validate:e});return e&&(A=t.parsed),j=t.rest,!0}catch(e){let t=e instanceof Error?e.message:String(e);return d(s?Wb({code:`UNKNOWN`,message:t}):gl({code:`UNKNOWN`,message:t},`toon`)),a(1),!1}}if(!re(!1))return;if(h===`yaml`&&await fl(),ee){if(r.update!==!1)try{await nt(e,k)}catch{}return}if(T&&!w){try{let t=await rt(e,k);if(s){let e=[t.deferred?`✓ Update staged for ${t.name}`:`✓ Updated ${t.name}`];t.command&&e.push(` ${t.command}`),t.deferred&&e.push(` Installation will finish after this process exits.`),d(e.join(`
210
+ `))}else d(gl(t,h))}catch(e){let t={code:`UPDATE_FAILED`,message:e instanceof Error?e.message:String(e)};d(s?Wb(t):gl(t,h)),a(1)}return}if(C){await N_(r.mcp?.name??e,r.version??`0.0.0`,t,{middlewares:r.middlewares,env:r.envSchema,vars:r.vars,version:r.version,...r.mcp?.instructions?{instructions:r.mcp.instructions}:void 0,...r.mcp?.title?{title:r.mcp.title}:void 0,...r.mcp?.tools?{tools:r.mcp.tools}:void 0});return}let ie=process.env.COMPLETE;if(ie){let a=n.indexOf(`--`),o=a===-1?n:n.slice(a+1);if(o.length===0)i([e,...r.aliases??[]].map(e=>an(ie,e)).join(`
211
+ `));else{let e=Number(process.env._COMPLETE_INDEX??o.length-1),n=on(t,r.rootCommand,o,e,r.globals?{schema:r.globals.schema,alias:r.globals.alias}:void 0),a=o[e]??``,s=o.slice(0,e).filter(e=>!e.startsWith(`-`));if(s.length<=1)for(let e of Zl)e.name.startsWith(a)&&!n.some(t=>t.value===e.name)&&n.push({value:e.name,description:e.description,...e.subcommands?{noSpace:!0}:void 0});else if(s.length===2){let e=s[s.length-1],t=ql(e);if(t?.subcommands)for(let e of t.subcommands)for(let t of[e.name,...e.aliases??[]])t.startsWith(a)&&!n.some(e=>e.value===t)&&n.push({value:t,description:e.description})}let c=sn(ie,n);c&&i(c)}return}let ae;if(!x&&!S&&!D&&!w&&!T&&!ee&&!E){let n=xb(j,e,`skills`)!==-1,i=xb(j,e,`mcp`)!==-1;if(!n&&!i){let n=nb(e);n&&Yy(e,{cwd:r.sync?.cwd})&&by(tx(t,[],new Map,r.rootCommand))!==n&&(ae={description:`Skills are out of date:`,commands:[{command:process.env.npm_config_user_agent||process.env.npm_execpath?`${Qe()} ${jy(e)} skills add`:`${u} skills add`,description:`sync outdated skills`}]})}}if(x||S){let n=t,i=[],a=r.description,o=r.rootCommand;for(let e of j){let t=n.get(e);if(!t)break;let r=Hb(n,t);if(zb(r))n=r.commands,a=r.description,o=r.root,i.push(e);else{n=new Map([[e,r]]),o=void 0;break}}i.length===0&&(o=r.rootCommand);let s=i.length>0?[]:i;if(S){if(!g||h===`md`){let t=new Map,r=tx(n,s,t,o);d(gy(i.length>0?`${e} ${i.join(` `)}`:e,r,t));return}d(gl(Qb(n,i,r.globals?.schema,o),h));return}if(!g||h===`md`){let t=tx(n,s,new Map,o);d(my(i.length>0?`${e} ${i.join(` `)}`:e,t,a));return}d(gl(Xb(n,i,r.globals?.schema,o),h));return}let oe=xb(j,e,`completions`);if(oe!==-1){let t=j[oe+1];if(w||!t){let t=ql(`completions`);d(eu(`${e} completions`,{args:t.args,description:t.description,hideGlobalOptions:!0,hint:t.hint?.(e)}));return}if(!Xl.includes(t)){d(Wb({code:`INVALID_SHELL`,message:`Unknown shell '${t}'. Supported: ${Xl.join(`, `)}`})),a(1);return}d([e,...r.aliases??[]].map(e=>an(t,e)).join(`
212
+ `));return}let se=xb(j,e,`skills`);if(se!==-1){let o=ql(`skills`),c=j[se+1],l=c?Jl(o,c):void 0;if(c&&!l){let t=nn(c,o.subcommands?.flatMap(e=>[e.name,...e.aliases??[]])??[]),r=`'${c}' is not a command for '${e} skills'.${t?` Did you mean '${t}'?`:``}`,i=[];if(t){let r=n.map(e=>e===c?t:e);i.push({command:`${e} ${r.join(` `)}`})}i.push({command:`${e} skills --help`,description:`see all available commands`});let l={description:i.length===1?`Suggested command:`:`Suggested commands:`,commands:i};s?(d(Wb({code:`COMMAND_NOT_FOUND`,message:r})),d(Gb(l))):d(gl({code:`COMMAND_NOT_FOUND`,message:r,cta:l},`toon`)),a(1);return}if(!c){d(Sb(e,o));return}if(l?.name===`list`){if(w){d(Cb(e,o,`list`));return}try{let n=await Jy(e,t,{cwd:r.sync?.cwd,depth:r.sync?.depth??1,description:r.description,include:r.sync?.include,rootCommand:r.rootCommand});if(n.length===0){d(`No skills found.`);return}let i=[],a=Math.max(...n.map(e=>e.name.length));for(let e of n){let t=e.installed?`✓`:`✗`,n=e.description?`${` `.repeat(a-e.name.length)} ${e.description}`:``;i.push(` ${t} ${e.name}${n}`)}let o=n.filter(e=>e.installed).length;i.push(``),i.push(`${n.length} skill${n.length===1?``:`s`} (${o} installed)`),d(i.join(`
213
+ `))}catch(e){d(gl({code:`LIST_SKILLS_FAILED`,message:e instanceof Error?e.message:String(e)},g?h:`toon`)),a(1)}return}if(w){d(Cb(e,o,`add`));return}let u=j.slice(se+2),f=u.indexOf(`--depth`),p=u.find(e=>e.startsWith(`--depth=`)),_=f===-1?p?Number(p.split(`=`)[1]):r.sync?.depth??1:Number(u[f+1]),v=!u.includes(`--no-global`)&&void 0;try{i(`Syncing...`);let n=await qy(e,t,{cwd:r.sync?.cwd,depth:_,description:r.description,global:v,include:r.sync?.include,rootCommand:r.rootCommand});i(`\r\x1B[K`);let a=[],o=e=>e.name,s=Math.max(...n.skills.map(e=>o(e).length));for(let e of n.skills){let t=o(e),n=e.description?`${` `.repeat(s-t.length)} ${e.description}`:``;a.push(` ✓ ${t}${n}`)}a.push(``),a.push(`${n.skills.length} skill${n.skills.length===1?``:`s`} synced`);let c=r.sync?.body;c&&(a.push(``),a.push(c));let l=r.sync?.suggestions;if(l&&l.length>0){a.push(``),a.push(`Your agent can now use ${e}. Try asking:`);for(let e of l)a.push(` "${e}"`)}if(a.push(``),a.push(`Run \`${e} --help\` to see the full command reference.`),d(a.join(`
214
+ `)),m||g){let e={skills:n.paths};c&&(e.body=c),m&&n.agents.length>0&&(e.agents=n.agents),d(gl(e,g?h:`toon`))}}catch(e){d(gl({code:`SYNC_SKILLS_FAILED`,message:e instanceof Error?e.message:String(e)},g?h:`toon`)),a(1)}return}let ce=xb(j,e,`mcp`);if(ce!==-1){let o=ql(`mcp`),c=j[ce+1],l=c?Jl(o,c):void 0;if(c&&!l){let t=nn(c,o.subcommands?.flatMap(e=>[e.name,...e.aliases??[]])??[]),r=`'${c}' is not a command for '${e} mcp'.${t?` Did you mean '${t}'?`:``}`,i=[];if(t){let r=n.map(e=>e===c?t:e);i.push({command:`${e} ${r.join(` `)}`})}i.push({command:`${e} mcp --help`,description:`see all available commands`});let l={description:i.length===1?`Suggested command:`:`Suggested commands:`,commands:i};s?(d(Wb({code:`COMMAND_NOT_FOUND`,message:r})),d(Gb(l))):d(gl({code:`COMMAND_NOT_FOUND`,message:r,cta:l},`toon`)),a(1);return}if(!c){d(Sb(e,o));return}if(w){d(Cb(e,o,l.name));return}if(l.name===`doctor`){let n=await wb(e,t,r);d(gl(n,g?h:`toon`)),n.ok||a(1);return}let u=j.slice(ce+2),f=!u.includes(`--no-global`),p=r.mcp?.command,_=[...r.mcp?.agents??[]];for(let e=0;e<u.length;e++)(u[e]===`--command`||u[e]===`-c`)&&u[e+1]?p=u[++e]:u[e]===`--agent`&&u[e+1]&&_.push(u[++e]);try{let t=r.mcp?.name??e;i(`Registering MCP server...`);let n=await Ty(t,{...t===e?void 0:{cli:e},command:p,global:f,agents:_});i(`\r\x1B[K`);let a=[];a.push(`✓ Registered ${t} as MCP server`),n.agents.length>0&&a.push(` Agents: ${n.agents.join(`, `)}`),a.push(``),a.push(`Agents can now use ${t} tools.`);let o=r.sync?.suggestions;if(o&&o.length>0){a.push(``),a.push(`Try asking:`);for(let e of o)a.push(` "${e}"`)}d(a.join(`
215
+ `)),(m||g)&&d(gl({name:t,command:n.command,agents:n.agents},g?h:`toon`))}catch(e){d(gl({code:`MCP_ADD_FAILED`,message:e instanceof Error?e.message:String(e)},g?h:`toon`)),a(1)}return}if(E&&!w&&r.version){d(r.version);return}if(j.length===0){if(r.rootCommand&&s&&r.rootCommand.args&&qb(r.rootCommand.args)){let n=r.rootCommand;await f(),d(eu(e,{alias:n.alias,aliases:r.aliases,configFlag:l,description:n.description??r.description,globals:r.globals,version:r.version,args:n.args,env:n.env,envSource:r.env,hint:n.hint,options:n.options,examples:ax(n.examples),usage:n.usage,commands:t.size>0?bb(t):void 0,root:!0}));return}if(!(r.rootCommand||r.rootFetch)){await f(),d($l(e,{aliases:r.aliases,configFlag:l,description:r.description,globals:r.globals,version:r.version,commands:bb(t),root:!0}));return}}let M=j.length===0&&r.rootCommand?{command:r.rootCommand,path:e,rest:[]}:j.length===0&&r.rootFetch?{fetchGateway:{_fetch:!0,fetch:r.rootFetch,description:r.description},middlewares:[],path:e,rest:[]}:pb(t,j);if(w&&`fetchGateway`in M){let n=M.path===e?e:`${e} ${M.path}`;M.path===e&&t.size>0?d($l(e,{aliases:r.aliases,configFlag:l,description:r.description,version:r.version,commands:bb(t),root:!0})):d(kb(n,M.fetchGateway.description));return}if(w){if(`help`in M||`error`in M){let n=`help`in M?`${e} ${M.path}`:e,i=`help`in M?M.description:r.description,a=`help`in M?M.commands:t,o=n===e;if(o&&r.rootCommand&&a.size>0){let t=r.rootCommand;d(eu(e,{alias:t.alias,aliases:r.aliases,configFlag:l,description:t.description??r.description,globals:r.globals,version:r.version,args:t.args,env:t.env,envSource:r.env,hint:t.hint,options:t.options,examples:ax(t.examples),usage:t.usage,commands:bb(a),root:!0}))}else d($l(n,{aliases:o?r.aliases:void 0,configFlag:l,description:i,globals:r.globals,version:o?r.version:void 0,commands:bb(a),root:o}))}else if(`command`in M){let n=M.command,i=M.path===e,a=i?e:`${e} ${M.path}`,o=`commands`in M&&M.commands&&M.commands.size>0?bb(M.commands):i&&r.rootCommand&&t.size>0?bb(t):void 0;d(eu(a,{alias:n.alias,aliases:i?r.aliases:n.aliases,configFlag:l,description:n.description,globals:r.globals,version:i?r.version:void 0,args:n.args,env:n.env,envSource:r.env,hint:n.hint,options:n.options,examples:ax(n.examples),usage:n.usage,commands:o,root:i}))}return}if(D){if(`help`in M){d($l(`${e} ${M.path}`,{configFlag:l,description:M.description,globals:r.globals,commands:bb(M.commands)}));return}if(`error`in M){let t=M.path?`${e} ${M.path}`:e,n=nn(M.error,M.commands.keys()),r=n?` Did you mean '${n}'?`:``;d(`Error: '${M.error}' is not a command for '${t}'.${r}`),a(1);return}if(`fetchGateway`in M){d(`--schema is not supported for fetch commands.`),a(1);return}let t=M.command,n=g?h:`toon`,i={};t.args&&(i.args=Tu(t.args)),t.env&&(i.env=Tu(t.env)),t.options&&(i.options=Tu(t.options)),t.output&&(i.output=Tu(t.output)),r.globals?.schema&&(i.globals=Tu(r.globals.schema)),d(gl(i,n));return}if(`help`in M){d($l(`${e} ${M.path}`,{configFlag:l,description:M.description,globals:r.globals,commands:bb(M.commands)}));return}let le;if(s&&r.update!==!1){let t=tt(e,k);t&&(le={description:`Update available for ${t.name}:`,commands:[{command:`${u} --update`,description:`upgrade from ${t.current} to ${t.latest}`}]})}let ue=Kb(ae,le),de=performance.now(),fe=`command`in M&&M.command.format,pe=g?h:fe||r.format||`toon`;pe===`yaml`&&await fl();let me=`error`in M&&!M.path&&(()=>{let e=[...M.commands.keys()];for(let t of Zl)e.push(t.name);return nn(M.error,e)!==void 0})(),N=`error`in M&&r.rootFetch&&!M.path&&!me?{fetchGateway:{_fetch:!0,fetch:r.rootFetch,description:r.description},middlewares:[],path:e,rest:j}:`error`in M&&r.rootCommand&&!M.path&&!me?{command:r.rootCommand,path:e,rest:j}:M,he=`outputPolicy`in M&&M.outputPolicy||r.outputPolicy,ge=!(s&&!g&&he===`agent-only`),_e=_?Mn(_):void 0;function ve(e){if(v==null&&y==null)return{text:e,truncated:!1};let t=Ut(e),n=y??0,r=v==null?t:n+v;if(n===0&&r>=t)return{text:e,truncated:!1};let i=Wt(e,n,r),a=Math.min(r,t),o=a<t?a:void 0;return{text:`${i}\n[truncated: showing tokens ${n}–${a} of ${t}]`,truncated:!0,nextOffset:o}}function ye(e){if(_e&&e.ok&&e.data!=null&&(e={...e,data:Nn(e.data,_e)}),ue){let t=e.meta.cta;e={...e,meta:{...e.meta,cta:t?{description:t.description,commands:[...t.commands,...ue.commands]}:ue}}}if(b){let t=e.ok?e.data:e.error,n=t==null?``:gl(t,pe);return d(String(Ut(n)))}let t=e.meta.cta;if(s&&!m){e.ok&&e.data!=null&&ge?d(ve(gl(e.data,pe)).text):e.ok||d(Wb(e.error)),t&&d(Gb(t));return}if(m){if(v!=null||y!=null){let t=ve(e.ok&&e.data!=null?gl(e.data,pe):e.ok?``:gl(e.error,pe));if(t.truncated){let n=e.ok?{ok:!0,data:t.text}:{ok:!1,error:t.text},r={...e.meta};return t.nextOffset!=null&&(r.nextOffset=t.nextOffset),n.meta=r,d(gl(n,pe))}}return d(gl(e,pe))}let n=e.ok?e.data:e.error,r=gl(n,pe);if(!t){r&&d(ve(r).text);return}d(ve(gl(typeof n==`object`&&n?{...n,cta:t}:{data:n,cta:t},pe)).text)}if(`error`in N){let t=N.path?`${e} ${N.path} --help`:`${e} --help`,r=N.path?`${e} ${N.path}`:e,i=`commands`in N?[...N.commands.keys()]:[];if(!N.path)for(let e of Zl)i.push(e.name);let o=nn(N.error,i),c=o?` Did you mean '${o}'?`:``,l=`'${N.error}' is not a command for '${r}'.${c}`,u=[];if(o){let t=n.map(e=>e===N.error?o:e);u.push({command:`${e} ${t.join(` `)}`})}u.push({command:t,description:`see all available commands`});let f={description:u.length===1?`Suggested command:`:`Suggested commands:`,commands:u};if(s&&!m){d(Wb({code:`COMMAND_NOT_FOUND`,message:l})),d(Gb(ue?{...f,commands:[...f.commands,...ue.commands]}:f)),a(1);return}ye({ok:!1,error:{code:`COMMAND_NOT_FOUND`,message:l},meta:{command:N.error,cta:f,duration:`${Math.round(performance.now()-de)}ms`}}),a(1);return}if(`fetchGateway`in N){if(!re(!0))return;let{fetchGateway:t,path:n,rest:i}=N,o=[...r.middlewares??[],...N.middlewares??[]],c=async()=>{let r=wn(i);t.basePath&&(r.path=t.basePath+r.path);let o=Tn(r),c=await t.fetch(o);if(En(c)){await Yb(Dn(c),{name:e,path:n,start:de,format:pe,formatExplicit:g,human:s,renderOutput:ge,fullOutput:m,truncate:ve,write:ye,writeln:d,exit:a});return}let l=await On(c);l.ok?ye({ok:!0,data:l.data,meta:{command:n,duration:`${Math.round(performance.now()-de)}ms`}}):(ye({ok:!1,error:{code:`HTTP_${l.status}`,message:typeof l.data==`object`&&l.data!==null&&`message`in l.data?String(l.data.message):typeof l.data==`string`?l.data:`HTTP ${l.status}`},meta:{command:n,duration:`${Math.round(performance.now()-de)}ms`}}),a(1))};try{let t=r.envSchema?Il(r.envSchema,r.env??process.env):{};if(o.length>0){let i=r.vars?r.vars.parse({}):{},l={agent:!s,command:n,displayName:u,env:t,error:e=>({[Sx]:`error`,...e}),format:pe,formatExplicit:g,globals:A,name:e,set(e,t){i[e]=t},var:i,version:r.version},d=e=>{if(!Jb(e)||e[Sx]!==`error`)return;let t=e,r=pu(u,t.cta);ye({ok:!1,error:{code:t.code,message:t.message,...t.retryable===void 0?void 0:{retryable:t.retryable}},meta:{command:n,duration:`${Math.round(performance.now()-de)}ms`,...r?{cta:r}:void 0}}),a(t.exitCode??1)};await o.reduceRight((e,t)=>async()=>{d(await t(l,e))},c)()}else await c()}catch(e){ye({ok:!1,error:{code:e instanceof I?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e)},meta:{command:n,duration:`${Math.round(performance.now()-de)}ms`}}),a(e instanceof I?e.exitCode??1:1)}return}let{command:be,path:xe,rest:P}=N;if(!re(!0))return;let Se=[...r.middlewares??[],...`middlewares`in M?M.middlewares??[]:[],...be.middleware??[]];s&&cx(P,be.options,be.alias);let Ce;if(c)try{Ce=await hb(e,xe,{configDisabled:O,configPath:te,files:r.config?.files,loader:r.config?.loader})}catch(e){ye({ok:!1,error:{code:e instanceof I?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e)},meta:{command:xe,duration:`${Math.round(performance.now()-de)}ms`}}),a(e instanceof I?e.exitCode??1:1);return}let we=await Hl(be,{agent:!s,argv:P,defaults:Ce,displayName:u,env:r.envSchema,envSource:r.env,format:pe,formatExplicit:g,globals:A,inputOptions:{},middlewares:Se,name:e,path:xe,vars:r.vars,version:r.version}),Te=`${Math.round(performance.now()-de)}ms`;if(`stream`in we){await Yb(we.stream,{name:u,path:xe,start:de,format:pe,formatExplicit:g,human:s,renderOutput:ge,fullOutput:m,truncate:ve,write:ye,writeln:d,exit:a});return}if(we.ok){let e=pu(u,we.cta);ye({ok:!0,data:we.data,meta:{command:xe,duration:Te,...e?{cta:e}:void 0}})}else{let e=pu(u,we.cta);if(s&&!g&&we.error.fieldErrors){d(db(u,xe,be,new xn({message:we.error.message,fieldErrors:we.error.fieldErrors}),r.env,l)),a(1);return}ye({ok:!1,error:{code:we.error.code,message:we.error.message,...we.error.retryable===void 0?void 0:{retryable:we.error.retryable},...we.error.fieldErrors?{fieldErrors:we.error.fieldErrors}:void 0},meta:{command:xe,duration:Te,...e?{cta:e}:void 0}}),a(we.exitCode??1)}}function ob(e,t,n={}){let r;async function i(r,i,a){let{fromJsonSchema:o,McpServer:s,WebStandardStreamableHTTPServerTransport:c}=await Promise.resolve().then(()=>(M_(),r_)),l=new s({name:e,...n.title?{title:n.title}:void 0,version:t},n.instructions?{instructions:n.instructions}:void 0);L_(l,r,{env:i?.env,fromJsonSchema:o,middlewares:i?.middlewares,name:e,request:e=>e?.http?.req,sendNotification:e=>l.server.notification(e),tools:n.tools,vars:i?.vars,version:t});let u=new c(a?{enableJsonResponse:!0}:{sessionIdGenerator:()=>crypto.randomUUID(),enableJsonResponse:!0});return await l.connect(u),{server:l,transport:u}}return async(e,t,a)=>{let o=n.stateless??!0;if(o&&e.method!==`POST`)return new Response(null,{status:405,headers:{Allow:`POST`}});if(!o)return r??=i(t,a,!1).catch(e=>{throw r=void 0,e}),(await r).transport.handleRequest(e);let s=()=>e.signal.reason??new DOMException(`This operation was aborted`,`AbortError`);if(e.signal.aborted)throw s();let{server:c,transport:l}=await i(t,a,!0),u,d=()=>u??=c.close(),f,p=new Promise((e,t)=>{f=t}),m=!1,h=()=>{m||(m=!0,f(s()),d())};e.signal.addEventListener(`abort`,h,{once:!0}),e.signal.aborted&&h();try{return e.signal.aborted?await p:await Promise.race([l.handleRequest(e),p])}finally{e.signal.removeEventListener(`abort`,h),await d()}}}function sb(e){return e.length===1?e[0]===`openapi.json`||e[0]===`openapi.yml`||e[0]===`openapi.yaml`:e[0]===`.well-known`&&e[1]===`openapi.json`&&e.length===2}function cb(e,t,n){let r={name:e,description:n.description};return px.set(r,t),n.rootCommand&&gx.set(r,n.rootCommand),lv(r,{title:e,...n.version?{version:n.version}:void 0,...n.description?{description:n.description}:void 0})}async function lb(e,t,n,r={}){let i=performance.now(),a=new URL(n.url),o=a.pathname.split(`/`).filter(Boolean);if(n.method===`GET`&&sb(o)){let n=cb(e,t,r),i=o[0]===`openapi.yml`||o[0]===`openapi.yaml`;return new Response(i?(await fl()).stringify(n):JSON.stringify(n),{status:200,headers:{"content-type":i?`application/yaml`:`application/json`,"cache-control":`public, max-age=300`}})}if(o[0]===`mcp`&&o.length===1&&r.mcpHandler)return r.mcpHandler(n,t,{middlewares:r.middlewares,env:r.envSchema,vars:r.vars});if(o[0]===`.well-known`&&o[1]===`skills`&&o.length>=3&&n.method===`GET`){await fl();let n=new Map,i=tx(t,[],n,r.rootCommand);if(o[2]===`index.json`&&o.length===3){let t=_y(e,i,1,n).map(t=>{let n=t.content.match(/^---\n([\s\S]*?)\n---/),r=n?pl().parse(n[1]):{};return{name:t.dir||e,description:r.description??``,files:[`SKILL.md`]}});return new Response(JSON.stringify({skills:t}),{status:200,headers:{"content-type":`application/json`,"cache-control":`public, max-age=300`}})}if(o.length===4&&o[3]===`SKILL.md`){let t=o[2],r=_y(e,i,1,n).find(n=>(n.dir||e)===t);return r?new Response(r.content,{status:200,headers:{"content-type":`text/markdown`,"cache-control":`public, max-age=300`}}):new Response(`Not Found`,{status:404})}return new Response(`Not Found`,{status:404})}let s={};if(n.method===`GET`)for(let[e,t]of a.searchParams)s[e]=t;else try{(n.headers.get(`content-type`)??``).includes(`application/json`)&&(s=await n.json())}catch{}function c(e,t){return new Response(Pr(e),{status:t,headers:{"content-type":`application/json`}})}if(o.length===0)return r.rootCommand?ub(e,r.rootCommand,[],s,n,i,r):c({ok:!1,error:{code:`COMMAND_NOT_FOUND`,message:`No root command defined.`},meta:{command:`/`,duration:`${Math.round(performance.now()-i)}ms`}},404);let l=pb(t,o);if(`error`in l){let t=l.path?`${e} ${l.path}`:e,n=nn(l.error,l.commands.keys()),r=n?` Did you mean '${n}'?`:``;return c({ok:!1,error:{code:`COMMAND_NOT_FOUND`,message:`'${l.error}' is not a command for '${t}'.${r}`},meta:{command:l.error,duration:`${Math.round(performance.now()-i)}ms`}},404)}if(`help`in l)return c({ok:!1,error:{code:`COMMAND_NOT_FOUND`,message:`'${l.path}' is a command group. Specify a subcommand.`},meta:{command:l.path,duration:`${Math.round(performance.now()-i)}ms`}},404);if(`fetchGateway`in l)return l.fetchGateway.fetch(n);let{command:u,path:d,rest:f}=l,p=`middlewares`in l?l.middlewares:[];return ub(d,u,f,s,n,i,{...r,groupMiddlewares:p})}async function ub(e,t,n,r,i,a,o){function s(e,t){return new Response(Pr(e),{status:t,headers:{"content-type":`application/json`}})}let c=[...o.middlewares??[],...o.groupMiddlewares??[],...t.middleware??[]],l={},u=r;if(o.globals){let t=new Set(Object.keys(o.globals.schema.shape)),n={};u={};for(let[e,i]of Object.entries(r))t.has(e)?n[e]=i:u[e]=i;try{l=o.globals.schema.parse(n)}catch(t){return s({ok:!1,error:{code:`VALIDATION_ERROR`,message:(t?.issues??t?.error?.issues??[]).map(e=>e.message).join(`; `)||`Validation failed`},meta:{command:e,duration:`${Math.round(performance.now()-a)}ms`}},400)}}let d=await Hl(t,{agent:!0,argv:n,env:o.envSchema,format:`json`,formatExplicit:!0,globals:l,inputOptions:u,middlewares:c,name:o.name??e,parseMode:`split`,path:e,request:i,vars:o.vars,version:o.version}),f=`${Math.round(performance.now()-a)}ms`;if(`stream`in d){let t=d.stream,n=new TextEncoder,r=t=>({command:e,duration:`${Math.round(performance.now()-a)}ms`,...t?{cta:t}:void 0}),i=t=>({type:`error`,ok:!1,error:{code:t.code,message:t.message,...t.retryable===void 0?void 0:{retryable:t.retryable}},meta:r(pu(o.name??e,t.cta))}),s=new ReadableStream({async cancel(){await t.return(void 0)},async pull(a){try{let{value:s,done:c}=await t.next();if(c){if(Jb(s)&&s[Sx]===`error`){a.enqueue(n.encode(Pr(i(s))+`
216
+ `)),a.close();return}let t=Jb(s)&&s[Sx]===`ok`?pu(o.name??e,s.cta):void 0;a.enqueue(n.encode(Pr({type:`done`,ok:!0,meta:r(t)})+`
217
+ `)),a.close();return}if(Jb(s)&&s[Sx]===`error`){a.enqueue(n.encode(Pr(i(s))+`
218
+ `)),await t.return(void 0),a.close();return}a.enqueue(n.encode(Pr({type:`chunk`,data:s})+`
219
+ `))}catch(e){a.enqueue(n.encode(Pr({type:`error`,ok:!1,error:{code:e instanceof I?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e),...e instanceof I?{retryable:e.retryable}:void 0},meta:r()})+`
220
+ `)),a.close()}}});return new Response(s,{status:200,headers:{"content-type":`application/x-ndjson`}})}if(!d.ok){let t=pu(o.name??e,d.cta);return s({ok:!1,error:{code:d.error.code,message:d.error.message,...d.error.retryable===void 0?void 0:{retryable:d.error.retryable},...d.error.fieldErrors?{fieldErrors:d.error.fieldErrors}:void 0},meta:{command:e,duration:f,...t?{cta:t}:void 0}},d.error.code===`VALIDATION_ERROR`?400:500)}let p=pu(o.name??e,d.cta);return s({ok:!0,data:d.data,meta:{command:e,duration:f,...p?{cta:p}:void 0}},200)}function db(e,t,n,r,i,a){let o=[];for(let e of r.fieldErrors){let t=(()=>{let t=fb(n,e.path);return e.missing?`Error: missing required ${t.kind} ${t.label}`:t.kind===`environment variable`?`Error: invalid value for environment variable ${t.label}: ${e.message}`:`Error: invalid value for ${t.label}: ${e.message}`})();o.push(t)}return o.push(`See below for usage.`),o.push(``),o.push(eu(t===e?e:`${e} ${t}`,{alias:n.alias,configFlag:a,description:n.description,args:n.args,env:n.env,envSource:i,hint:n.hint,options:n.options,examples:ax(n.examples),usage:n.usage})),o.join(`
221
+ `)}function fb(e,t){let[n,...r]=t.split(`.`);if(!n)return{kind:`argument`,label:`input`};if(e.options?.shape[n]){let e=r.length>0?`.${r.join(`.`)}`:``;return{kind:`option`,label:`--${en(n)}${e}`}}return e.env?.shape[n]?{kind:`environment variable`,label:`${n}${r.length>0?`.${r.join(`.`)}`:``}`}:{kind:`argument`,label:`<${t}>`}}function pb(e,t){let[n,...r]=t;if(!n||!e.has(n))return{error:n??`(none)`,path:``,commands:e,rest:r};let i=Hb(e,e.get(n)),a=[n],o=r,s,c=[];if(Bb(i)){let e=i.outputPolicy??s;return{fetchGateway:i,middlewares:c,path:a.join(` `),rest:o,...e?{outputPolicy:e}:void 0}}for(;zb(i);){i.outputPolicy&&(s=i.outputPolicy),i.middlewares&&c.push(...i.middlewares);let e=o[0];if(!e&&i.root){let e=i.root.outputPolicy??s;return{command:i.root,commands:i.commands,middlewares:c,path:a.join(` `),rest:o,...e?{outputPolicy:e}:void 0}}if(!e)return{help:!0,path:a.join(` `),description:i.description,commands:i.commands};let t=i.commands.get(e);if(!t){if(i.root&&!nn(e,i.commands.keys())){let e=i.root.outputPolicy??s;return{command:i.root,commands:i.commands,middlewares:c,path:a.join(` `),rest:o,...e?{outputPolicy:e}:void 0}}return{error:e,path:a.join(` `),commands:i.commands,rest:o.slice(1)}}let n=Hb(i.commands,t);if(a.push(e),o=o.slice(1),i=n,Bb(i)){let e=i.outputPolicy??s;return{fetchGateway:i,middlewares:c,path:a.join(` `),rest:o,...e?{outputPolicy:e}:void 0}}}let l=i.outputPolicy??s;return{command:i,middlewares:c,path:a.join(` `),rest:o,...l?{outputPolicy:l}:void 0}}function mb(e,t={}){let n=!1,r=!1,i=!1,a=!1,o=!1,s=!1,c=!1,l=!1,u=!1,d=`toon`,f=!1,p,m=!1,h,g,_,v=!1,y=[],b=t.configFlag?`--${t.configFlag}`:void 0,x=t.configFlag?`--${t.configFlag}=`:void 0,S=t.configFlag?`--no-${t.configFlag}`:void 0;for(let t=0;t<e.length;t++){let C=e[t];if(C===`--full-output`)n=!0;else if(C===`--llms`)r=!0;else if(C===`--llms-full`)i=!0;else if(C===`--mcp`)a=!0;else if(C===`--help`||C===`-h`)o=!0;else if(C===`--update`)s=!0;else if(C===`--incur-update-check`)c=!0;else if(C===`--version`&&(e[t+1]===void 0||e[t+1].startsWith(`-`)))l=!0;else if(C===`--schema`)u=!0;else if(C===`--json`)d=`json`,f=!0;else if(C===`--format`&&e[t+1]){if(!fx.has(e[t+1]))throw new Sn({message:`Invalid format: "${e[t+1]}". Expected one of: ${[...fx].join(`, `)}`});d=e[t+1],f=!0,t++}else if(b&&C===b){let n=e[t+1];if(n===void 0)throw new Sn({message:`Missing value for flag: ${b}`});p=n,m=!1,t++}else if(x&&C.startsWith(x)){let e=C.slice(x.length);if(e.length===0)throw new Sn({message:`Missing value for flag: ${b}`});p=e,m=!1}else if(S&&C===S)p=void 0,m=!0;else if(C===`--filter-output`&&e[t+1])h=e[t+1],t++;else if(C===`--token-limit`&&e[t+1]){let n=Number(e[t+1]);if(!Number.isFinite(n)||e[t+1].trim()===``)throw new Sn({message:`Invalid value for --token-limit: "${e[t+1]}"`});g=n,t++}else if(C===`--token-offset`&&e[t+1]){let n=Number(e[t+1]);if(!Number.isFinite(n)||e[t+1].trim()===``)throw new Sn({message:`Invalid value for --token-offset: "${e[t+1]}"`});_=n,t++}else C===`--token-count`?v=!0:y.push(C)}return{fullOutput:n,format:d,formatExplicit:f,configPath:p,configDisabled:m,filterOutput:h,tokenLimit:g,tokenOffset:_,tokenCount:v,llms:r,llmsFull:i,mcp:a,help:o,update:s,updateCheck:c,version:l,schema:u,rest:y}}async function hb(e,t,n={}){if(n.configDisabled)return;let{loader:r}=n,i;i=n.configPath?gb(n.configPath):await _b(n.files??[`${e}.json`]);let a;if(r){let e=await r(i);if(e===void 0)return;if(!$t(e))throw new Sn({message:`Config loader must return a plain object or undefined`});a=e}else{if(!i)return;let e=await vb(i,!!n.configPath);if(!e)return;a=e}return yb(a,e,t)}function gb(e){return e.startsWith(`~/`)||e===`~`?c.join(b.homedir(),e.slice(1)):c.resolve(process.cwd(),e)}async function _b(e){for(let t of e){let e=gb(t);try{return await C.access(e,C.constants.R_OK),e}catch{}}}async function vb(e,t){let n;try{n=await C.readFile(e,`utf8`)}catch(n){if(n.code===`ENOENT`){if(t)throw new Sn({message:`Config file not found: ${e}`});return}throw n}let r;try{r=JSON.parse(n)}catch(t){throw new Sn({message:`Invalid JSON config file: ${e}`,cause:t instanceof Error?t:void 0})}if(!$t(r))throw new Sn({message:`Invalid config file: expected a top-level object in ${e}`});return r}function yb(e,t,n){let r=n===t?[]:n.split(` `),i=e;for(let e of r){if(!$t(i))return;let t=i.commands;if(!$t(t)||(i=t[e],i===void 0))return}if(!$t(i))throw new Sn({message:`Invalid config section for '${n}': expected an object`});let a=i.options;if(a!==void 0){if(!$t(a))throw new Sn({message:`Invalid config 'options' for '${n}': expected an object`});return Object.keys(a).length>0?a:void 0}}function bb(e){let t=[];for(let[n,r]of e)Vb(r)||t.push({name:n,description:r.description});return t.sort((e,t)=>e.name.localeCompare(t.name))}function xb(e,t,n){return ql(e[0])?.name===n?0:e[0]===t&&ql(e[1])?.name===n?1:-1}function Sb(e,t){return $l(`${e} ${t.name}`,{aliases:t.aliases,description:t.description,commands:t.subcommands?.map(e=>({name:e.name,description:e.description}))})}function Cb(e,t,n){let r=Jl(t,n);return eu(`${e} ${t.name} ${n}`,{alias:r?.alias,aliases:r?.aliases,description:r?.description,hideGlobalOptions:!0,options:r?.options})}async function wb(e,t,n){let r=[],i=[],a=new T,o=new T,s=[];o.on(`data`,e=>s.push(e.toString()));let c,l=N_(n.mcp?.name??e,n.version??`0.0.0`,t,{input:a,output:o,middlewares:n.middlewares,env:n.envSchema,vars:n.vars,version:n.version,...n.mcp?.instructions?{instructions:n.mcp.instructions}:void 0,...n.mcp?.title?{title:n.mcp.title}:void 0,tools:{...n.mcp?.tools,discovery:`direct`}}).catch(e=>{c=e}),u=!1;if(l.finally(()=>{u=!0}),a.write(`${Pr({jsonrpc:`2.0`,id:1,method:`initialize`,params:{protocolVersion:`2024-11-05`,capabilities:{},clientInfo:{name:`incur-doctor`,version:`1.0.0`}}})}\n`),a.write(`${Pr({jsonrpc:`2.0`,id:2,method:`tools/list`,params:{}})}\n`),await Tb(s,()=>u),a.end(),await l,c)return{ok:!1,toolCount:0,tools:[],warnings:r,errors:[{code:`MCP_SERVER_FAILED`,message:Db(c)}]};let d;try{d=Eb(s)}catch(e){return{ok:!1,toolCount:0,tools:[],warnings:r,errors:[{code:`MCP_RESPONSE_PARSE_FAILED`,message:Db(e)}]}}let f=d.find(e=>e.id===1);f?f.error&&i.push({code:`MCP_INITIALIZE_FAILED`,message:Ob(f.error)}):i.push({code:`MCP_INITIALIZE_MISSING`,message:`Missing initialize response.`});let p=d.find(e=>e.id===2),m=[];return p?p.error?i.push({code:`MCP_TOOLS_LIST_FAILED`,message:Ob(p.error)}):!$t(p.result)||!Array.isArray(p.result.tools)?i.push({code:`MCP_TOOLS_LIST_INVALID`,message:`tools/list did not return a tools array.`}):m=p.result.tools.filter($t).map(e=>({name:typeof e.name==`string`?e.name:``,...typeof e.description==`string`?{description:e.description}:void 0})).filter(e=>e.name):i.push({code:`MCP_TOOLS_LIST_MISSING`,message:`Missing tools/list response.`}),i.length===0&&m.length===0&&r.push(`No MCP tools exposed.`),{ok:i.length===0,toolCount:m.length,tools:m,warnings:r,errors:i}}async function Tb(e,t){let n=Date.now();for(;!t()&&(e.join(``).match(/\n/g)?.length??0)<2;){if(Date.now()-n>=1e3)return;await new Promise(e=>setTimeout(e,5))}}function Eb(e){let t=[];for(let n of e.join(``).split(/\r?\n/)){let e=n.trim();if(!e)continue;let r=JSON.parse(e);if(!$t(r))throw Error(`Expected JSON-RPC response object.`);t.push(r)}return t}function Db(e){return e instanceof Error?e.message:String(e)}function Ob(e){return $t(e)&&typeof e.message==`string`?e.message:Pr(e)}function kb(e,t){let n=[];return t?n.push(`${e} — ${t}`):n.push(e),n.push(``),n.push(`Usage: ${e} <path> [options]`),n.push(``),n.push(`Path segments are joined into the request URL path.`),n.push(``),n.push(`Options:`),n.push(` -X, --method <METHOD> HTTP method (default: GET, POST if body present)`),n.push(` -H, --header "Key: Val" Set a request header (repeatable)`),n.push(` -d, --data <json> Request body (implies POST)`),n.push(` --body <json> Request body (implies POST)`),n.push(` --<key> <value> Query string parameter`),n.join(`
222
+ `)}async function Ab(e){if(e)return{directory:ee(e)};let t=process.argv[1];if(!t)throw Error("Could not infer the filesystem command directory without an executed entrypoint. Pass a directory URL to `fs()`.");let n=c.resolve(t);try{let e=await C.realpath(n);return{directory:c.dirname(e),exclude:e}}catch(e){if(e.code!==`ENOENT`)throw e;return{directory:c.dirname(n),exclude:n}}}async function jb(e){let t=await _u(e.directory,{exclude:e.exclude});return Promise.all(t.map(async e=>({...e,command:(await import(E(e.file).href)).default})))}function Mb(e){return typeof e==`object`&&!!e&&e[dx]===!0}function Nb(e,t,n,r,i){let a=e;for(let[e,o]of t.entries()){let s=e===t.length-1,c=a.get(o);if(s){if(!c)a.set(o,n);else if(zb(c)&&!c.root)c.root=n,c.description??=n.description;else throw Pb(t,r);Ub(t.join(` `),n,i);for(let e of n.aliases??[]){if(a.has(e))throw Pb([...t.slice(0,-1),e],r);a.set(e,{_alias:!0,target:o})}return}if(!c){let e={_group:!0,commands:new Map};a.set(o,e),a=e.commands;continue}if(Vb(c)||Bb(c))throw Pb(t,r);if(zb(c)){a=c.commands;continue}let l={_group:!0,commands:new Map,description:c.description,root:c};a.set(o,l),a=l.commands}}function Pb(e,t){return Error(`Filesystem command '${e.join(` `)}' from '${t}' conflicts with an existing command or alias.`)}function Fb(e){if(typeof e==`function`)return!0;if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.fetch==`function`&&t.url instanceof URL}function Ib(e){if(typeof e!=`object`||!e||!(`mcp`in e))return!1;let t=e.mcp;return typeof t==`string`||t instanceof URL||typeof t==`object`&&!!t&&`url`in t}function Lb(e){return typeof e==`function`?e:e.fetch}function Rb(e){return typeof e==`function`?void 0:e.url}function zb(e){return`_group`in e}function Bb(e){return`_fetch`in e}function Vb(e){return`_alias`in e}function Hb(e,t){return Vb(t)?e.get(t.target):t}function Ub(e,t,n){if(!(!n||Bb(t)||Vb(t))){if(zb(t)){t.root&&Ub(e,t.root,n);for(let[r,i]of t.commands)Ub(`${e} ${r}`,i,n);return}if(t.options){let r=Object.keys(n.schema.shape),i=Object.keys(t.options.shape);for(let t of i)if(r.includes(t))throw Error(`Command '${e}' option '${t}' conflicts with a global option. Choose a different name.`)}if(n.alias&&t.alias){let r=new Set(Object.values(n.alias));for(let[n,i]of Object.entries(t.alias))if(i&&r.has(i))throw Error(`Command '${e}' alias '-${i}' for '${n}' conflicts with a global alias. Choose a different alias.`)}}}function Wb(e){let t=`${e.code===`UNKNOWN`||e.code===`COMMAND_NOT_FOUND`?`Error`:`Error (${e.code})`}: ${e.message}`;if(e.fieldErrors)for(let n of e.fieldErrors)t+=`\n ${n.path}: ${n.message}`;return t}function Gb(e){let t=[``,e.description],n=Math.max(...e.commands.map(e=>e.command.length));for(let r of e.commands){let e=r.description?` ${``.padEnd(n-r.command.length)}# ${r.description}`:``;t.push(` ${r.command}${e}`)}return t.join(`
223
+ `)}function Kb(...e){let t=e.filter(e=>e!==void 0);if(t.length!==0)return{description:t[0].description,commands:t.flatMap(e=>e.commands)}}function qb(e){return Object.values(e.shape).some(e=>e._zod.optout!==`optional`)}function Jb(e){return typeof e==`object`&&!!e&&Sx in e}async function Yb(e,t){let n=t.format===`jsonl`;if(n||!t.formatExplicit&&t.format===`toon`)try{let r;for(;;){let{value:i,done:a}=await e.next();if(a){r=i;break}if(Jb(i)){let e=i;if(e[Sx]===`error`){n?t.writeln(JSON.stringify({type:`error`,ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}}})):t.writeln(Wb({code:e.code,message:e.message})),t.exit(e.exitCode??1);return}}n?t.writeln(Pr({type:`chunk`,data:i})):t.renderOutput&&t.writeln(t.truncate(gl(i,t.format)).text)}if(Jb(r)&&r[Sx]===`error`){let e=r;n?t.writeln(JSON.stringify({type:`error`,ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}}})):t.writeln(Wb({code:e.code,message:e.message})),t.exit(e.exitCode??1);return}let i=Jb(r)&&r[Sx]===`ok`?pu(t.name,r.cta):void 0;n?t.writeln(JSON.stringify({type:`done`,ok:!0,meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`,...i?{cta:i}:void 0}})):i&&t.writeln(Gb(i))}catch(e){n?t.writeln(JSON.stringify({type:`error`,ok:!1,error:{code:e instanceof I?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e),...e instanceof I?{retryable:e.retryable}:void 0}})):t.writeln(Wb({code:`UNKNOWN`,message:e instanceof Error?e.message:String(e)})),t.exit(e instanceof I?e.exitCode??1:1)}else{let n=[];try{let r;for(;;){let{value:i,done:a}=await e.next();if(a){r=i;break}if(Jb(i)){let e=i;if(e[Sx]===`error`){t.write({ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}},meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`}}),t.exit(e.exitCode??1);return}}n.push(i)}if(Jb(r)&&r[Sx]===`error`){let e=r;t.write({ok:!1,error:{code:e.code,message:e.message,...e.retryable===void 0?void 0:{retryable:e.retryable}},meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`}}),t.exit(e.exitCode??1);return}let i=Jb(r)&&r[Sx]===`ok`?pu(t.name,r.cta):void 0;t.write({ok:!0,data:n,meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`,...i?{cta:i}:void 0}})}catch(e){t.write({ok:!1,error:{code:e instanceof I?e.code:`UNKNOWN`,message:e instanceof Error?e.message:String(e),...e instanceof I?{retryable:e.retryable}:void 0},meta:{command:t.path,duration:`${Math.round(performance.now()-t.start)}ms`}}),t.exit(e instanceof I?e.exitCode??1:1)}}}function Xb(e,t=[],n,r){let i=Zb(e,t);return r&&t.length>0&&i.push({name:t.join(` `),...r.description?{description:r.description}:void 0}),{version:`incur.v1`,commands:i.sort((e,t)=>e.name.localeCompare(t.name)),...n?{globals:Tu(n)}:void 0}}function Zb(e,t){let n=[];for(let[r,i]of e){if(Vb(i))continue;let e=[...t,r];if(zb(i)){if(i.root){let t={name:e.join(` `)};i.root.description&&(t.description=i.root.description),n.push(t)}n.push(...Zb(i.commands,e))}else{let t={name:e.join(` `)};Bb(i),i.description&&(t.description=i.description),n.push(t)}}return n}function Qb(e,t=[],n,r){let i=$b(e,t);return r&&t.length>0&&i.push(ex(t,r)),{version:`incur.v1`,commands:i.sort((e,t)=>e.name.localeCompare(t.name)),...n?{globals:Tu(n)}:void 0}}function $b(e,t){let n=[];for(let[r,i]of e){if(Vb(i))continue;let e=[...t,r];if(Bb(i)){let t={name:e.join(` `)};i.description&&(t.description=i.description),n.push(t)}else zb(i)?(i.root&&n.push(ex(e,i.root)),n.push(...$b(i.commands,e))):n.push(ex(e,i))}return n}function ex(e,t){let n={name:e.join(` `)};t.description&&(n.description=t.description);let r=sx(t.args,t.env,t.options),i=t.output?Tu(t.output):void 0;(r||i)&&(n.schema={},r?.args&&(n.schema.args=r.args),r?.env&&(n.schema.env=r.env),r?.options&&(n.schema.options=r.options),i&&(n.schema.output=i));let a=ax(t.examples);if(a){let t=e.join(` `);n.examples=a.map(e=>({...e,command:e.command?`${t} ${e.command}`:t}))}return n}function tx(e,t,n,r){let i=[];if(r){let e={};r.description&&(e.description=r.description),r.args&&(e.args=r.args),r.env&&(e.env=r.env),r.hint&&(e.hint=r.hint),rx(r)&&(e.hint=ix(e.hint)),r.options&&(e.options=r.options),r.output&&(e.output=r.output);let t=ax(r.examples);t&&(e.examples=t),i.push(e)}for(let[r,a]of e){if(Vb(a))continue;let e=[...t,r];if(Bb(a)){let t={name:e.join(` `)};a.description&&(t.description=a.description),t.hint=`Fetch gateway. Pass path segments and curl-style flags (-X, -H, -d, --key value).`,i.push(t)}else zb(a)?(a.description&&n.set(e.join(` `),a.description),a.root&&i.push(nx(e,a.root)),i.push(...tx(a.commands,e,n))):i.push(nx(e,a))}return i.sort((e,t)=>(e.name??``).localeCompare(t.name??``))}function nx(e,t){let n={name:e.join(` `)};t.description&&(n.description=t.description),t.args&&(n.args=t.args),t.env&&(n.env=t.env),t.hint&&(n.hint=t.hint),rx(t)&&(n.hint=ix(n.hint)),t.options&&(n.options=t.options),t.output&&(n.output=t.output);let r=ax(t.examples);if(r){let t=e.join(` `);n.examples=r.map(e=>({...e,command:e.command?`${t} ${e.command}`:t}))}return n}function rx(e){return e.destructive===!0||e.mcp!==!1&&e.mcp?.annotations?.destructiveHint===!0}function ix(e){return e?e.includes(ux)?e:`${e} ${ux}`:ux}function ax(e){if(!(!e||e.length===0))return e.map(e=>{let t=[];if(e.args)for(let n of Object.values(e.args))t.push(String(n));if(e.options)for(let[n,r]of Object.entries(e.options))t.push(`--${n} ${r}`);let n={command:t.join(` `)};return e.description&&(n.description=e.description),n})}function ox(e){let t=e.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!t)return{};let n=pl().parse(t[1]);return!n||typeof n!=`object`?{}:n}function sx(e,t,n){if(!e&&!t&&!n)return;let r={};return e&&(r.args=Tu(e)),t&&(r.env=Tu(t)),n&&(r.options=Tu(n)),r}function cx(e,t,n){if(!t)return;let r=t.shape,i=new Set,a=new Map;for(let e of Object.keys(r))if(r[e]?.meta?.()?.deprecated){let t=e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`);i.add(t),n?.[e]&&a.set(n[e],t)}if(i.size!==0){for(let t of e)if(t.startsWith(`--`)){let e=t.split(`=`)[0].slice(2),n=!i.has(e)&&e.startsWith(`no-`)?e.slice(3):e;i.has(n)&&process.stderr.write(`Warning: --${n} is deprecated\n`)}else if(t.startsWith(`-`)&&t.length>=2)for(let e of t.slice(1))a.has(e)&&process.stderr.write(`Warning: --${a.get(e)} is deprecated\n`)}}function lx(e,t){let n=process.argv[1];if(!n)return e;let r=c.basename(n);return r===e?e:t?.includes(r)?r:e}var ux,dx,fx,px,mx,hx,gx,_x,vx,yx,bx,xx,Sx,Cx=F((()=>{Qt(),It(),vn(),Cn(),jn(),Fn(),wl(),fu(),Ql(),gu(),wu(),rn(),Ir(),et(),bt(),hl(),iv(),py(),$v(),Vl(),Eu(),wy(),Py(),rb(),ux=`Confirm with the user before executing this destructive command.`,dx=Symbol.for(`incur.fileCommand`),fx=new Set([`toon`,`json`,`yaml`,`md`,`jsonl`]),px=new WeakMap,mx=new WeakMap,hx=new WeakMap,gx=new WeakMap,_x=new WeakMap,vx=new WeakMap,yx=new WeakMap,bx=new WeakMap,xx=new WeakMap,Sx=Symbol.for(`incur.sentinel`)})),wx=F((()=>{It(),Cx(),vn(),Cn(),wl(),fu(),iv(),jn(),$v(),Vl(),Eu(),wy(),hl(),Py(),rb()}));function Tx(e,t){if(!(!e||typeof e!=`object`))return e[t]}var q,Ex,Dx,Ox,kx,Ax,jx=F((()=>{q={acceptPayment:`Accept-Payment`,authorization:`Authorization`,paymentAuthorization:`Payment-Authorization`,paymentReceipt:`Payment-Receipt`,paymentSession:`Payment-Session`,paymentSessionSnapshot:`Payment-Session-Snapshot`,wwwAuthenticate:`WWW-Authenticate`},Ex={payment:`Payment`},Dx={evm:`evm`,stripe:`stripe`,tempo:`tempo`},Ox={charge:`charge`,session:`session`,subscription:`subscription`},kx={sessionProtocol:`sessionProtocol`,sessionSnapshot:`sessionSnapshot`},Ax={v1:`v1`,v2:`v2`}}));function Mx(e){let t=O.toString(e);return JSON.parse(t)}function Nx(e,t){return e.schema.request.parse(t)}function Px(e){let t=j.canonicalize(e);return O.fromString(t,{pad:!1,url:!0})}var Fx=F((()=>{})),J=Je({address:()=>Hx,amount:()=>Lx,datetime:()=>Rx,datetimeInput:()=>zx,hash:()=>Ux,period:()=>Wx,signature:()=>Gx,toDate:()=>Bx,toDatetimeString:()=>Vx,unwrapOptional:()=>Kx});import*as Ix from"zod/mini";Xe(J,Ix);function Lx(){return be.string().check(be.regex(/^\d+(\.\d+)?$/,`Invalid amount`))}function Rx(){return be.string().check(be.regex(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/,`Invalid ISO 8601 datetime`))}function zx(e=`Invalid ISO 8601 datetime`){return be.pipe(be.union([Rx(),be.custom(e=>e instanceof Date)]),be.transform(Bx)).check(be.refine(e=>Number.isFinite(e.getTime()),e))}function Bx(e){return e instanceof Date?e:new Date(e)}function Vx(e){return e instanceof Date?Number.isFinite(e.getTime())?e.toISOString():`Invalid Date`:e}function Hx(){return be.string().check(be.regex(/^0x[0-9a-fA-F]{40}$/,`Invalid address`))}function Ux(){return be.string().check(be.regex(/^0x[0-9a-fA-F]{64}$/,`Invalid hash`))}function Wx(){return be.string().check(be.regex(/^(day|week|month|year|\d+)$/,`Invalid period`))}function Gx(){return be.string().check(be.regex(/^0x[0-9a-fA-F]+$/,`Invalid signature`))}function Kx(e){return e._zod.def.type===`optional`?e._zod.def.innerType:e}var qx=F((()=>{}));function Jx(e,t){let{description:n,digest:r,meta:i,method:a,header:o,intent:s,realm:c,request:l,secretKey:u}=e,d=lS(o)?void 0:o,f=e.expires?Vx(e.expires):void 0,p=e.opaque??(i===void 0?void 0:Px(i)),m=u?uS({...e,expires:f,...i!==void 0&&{meta:i},opaque:p},{secretKey:u}):e.id;return fS.parse({id:m,realm:c,method:a,intent:s,request:l,...n&&{description:n},...r&&{digest:r},...f&&{expires:f},...d!==void 0&&{header:d},...i!==void 0&&{meta:i},...p!==void 0&&{opaque:p}})}function Yx(e){let t=[Xx(`id`,e.id),Xx(`realm`,e.realm),Xx(`method`,e.method),Xx(`intent`,e.intent),Xx(`request`,Px(e.request))];e.description!==void 0&&t.push(Xx(`description`,e.description)),e.digest!==void 0&&t.push(Xx(`digest`,e.digest)),e.expires!==void 0&&t.push(Xx(`expires`,e.expires));let n=e.header;return n!==void 0&&!lS(n)&&t.push(Xx(`header`,n)),e.opaque===void 0?e.meta!==void 0&&t.push(Xx(`opaque`,Px(e.meta))):t.push(Xx(`opaque`,e.opaque)),`${Ex.payment} ${t.join(`, `)}`}function Xx(e,t){if(/[\r\n]/.test(t))throw Error(`Invalid quoted-string value.`);return`${e}="${t.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/[\u0100-\uffff]/g,e=>`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`)}"`}function Zx(e,t){let n=Qx(e);if(!n)throw Error(`Missing Payment scheme.`);let{request:r,opaque:i,...a}=$x(n);if(!r)throw Error(`Missing request parameter.`);if(r.length>dS)throw Error(`Request parameter too large.`);if(a.method&&!/^[a-z][a-z0-9:_-]*$/.test(a.method))throw Error(`Invalid method: "${a.method}". Must be lowercase per spec.`);return Jx({...a,request:Mx(r),...i&&{opaque:i}},t)}function Qx(e){let t=Ex.payment,[n]=rS(e,t);if(n===void 0)return null;let r=n+t.length;for(;r<e.length&&/\s/.test(e[r]??``);)r++;return e.slice(r)}function $x(e){let t=Object.create(null),n=0;for(;n<e.length;){for(;n<e.length&&/[\s,]/.test(e[n]??``);)n++;if(n>=e.length)break;let r=n;for(;n<e.length&&/[A-Za-z0-9_-]/.test(e[n]??``);)n++;let i=e.slice(r,n).toLowerCase();if(!i)throw Error(`Malformed auth-param.`);for(;n<e.length&&/\s/.test(e[n]??``);)n++;if(e[n]!==`=`)break;for(n++;n<e.length&&/\s/.test(e[n]??``);)n++;let[a,o]=eS(e,n);if(n=o,i in t)throw Error(`Duplicate parameter: ${i}`);t[i]=a}return t}function eS(e,t){if(e[t]===`"`)return tS(e,t+1);let n=t;for(;n<e.length&&e[n]!==`,`;)n++;return[e.slice(t,n).trim(),n]}function tS(e,t){let n=t,r=!1,i=t,a;for(;n<e.length;){let o=e[n];if(n++,r){a??=[];let t=o===`u`?e.slice(n,n+4):void 0;t&&/^[0-9A-Fa-f]{4}$/.test(t)?(a.push(String.fromCharCode(Number.parseInt(t,16))),n+=4):a.push(o),i=n,r=!1;continue}if(o===`\\`){a??=[],a.push(e.slice(i,n-1)),i=n,r=!0;continue}if(o===`"`)return[a?[...a,e.slice(i,n-1)].join(``):e.slice(t,n-1),n]}throw Error(`Unterminated quoted-string.`)}function nS(e,t,n){if(e.slice(t,t+n.length).toLowerCase()!==n.toLowerCase())return!1;let r=e[t+n.length];return!!(r&&/\s/.test(r))}function rS(e,t){let n=[],r=!1,i=!1;for(let a=0;a<e.length;a++){let o=e[a];if(r){i?i=!1:o===`\\`?i=!0:o===`"`&&(r=!1);continue}if(o===`"`){r=!0;continue}if(!nS(e,a,t))continue;let s=a-1;for(;s>=0&&/\s/.test(e[s]??``);)s--;s>=0&&e[s]!==`,`||n.push(a)}return n}function iS(e,t){if(e.status!==402)throw Error(`Response status is not 402.`);return aS(e.headers,t)}function aS(e,t){let n=e.get(q.wwwAuthenticate);if(!n)throw Error(`Missing ${q.wwwAuthenticate} header.`);return oS(n,t)}function oS(e,t){let n=rS(e,Ex.payment);if(n.length===0)throw Error(`No Payment schemes found.`);return n.map((r,i)=>{let a=i+1<n.length?n[i+1]:e.length;return Zx(e.slice(r,a).replace(/,\s*$/,``),t)})}function sS(e){let t=[e.realm,e.method,e.intent,Px(e.request),e.expires??``,e.digest??``],n=e.header;return n!==void 0&&!lS(n)&&t.push(n),t.push(e.opaque??(e.meta?Px(e.meta):``)),t.join(`|`)}function cS(e){return e.header??q.authorization}function lS(e){return e?.toLowerCase()===q.authorization.toLowerCase()}function uS(e,t){let n=sS(e),r=ne.fromString(t.secretKey),i=ne.fromString(n),a=k.hmac256(r,i,{as:`Bytes`});return O.fromBytes(a,{url:!0,pad:!1})}var dS,fS,pS=F((()=>{jx(),Fx(),qx(),dS=16384,fS=J.object({description:J.optional(J.string()),digest:J.optional(J.string().check(J.regex(/^sha-256=/,`Invalid digest format`))),expires:J.optional(Rx()),header:J.optional(J.string().check(J.regex(/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,`Invalid HTTP header name`))),id:J.string().check(J.minLength(1)),intent:J.string(),method:J.string(),meta:J.optional(J.record(J.string(),J.string())),opaque:J.optional(J.string()),realm:J.string(),request:J.record(J.string(),J.unknown())})})),mS,hS,Y,gS,_S=F((()=>{mS=class extends Error{details;status=402;hint;constructor(e,t={}){super(e),this.details=t.details}toProblemDetails(e){return{type:this.type,title:this.title,status:this.status,detail:this.message,...this.details&&Object.keys(this.details).length>0&&{details:this.details},...this.hint&&{hint:this.hint},...e&&{challengeId:e}}}},hS=class extends mS{name=`InvalidChallengeError`;title=`Invalid Challenge`;status=402;type=`https://paymentauth.org/problems/invalid-challenge`;constructor(e={}){let{id:t,reason:n}=e,r=t?` "${t}"`:``,i=n?`: ${n}`:``;super(`Challenge${r} is invalid${i}.`)}},Y=class extends mS{name=`VerificationFailedError`;title=`Verification Failed`;type=`https://paymentauth.org/problems/verification-failed`;constructor(e={}){let{details:t,reason:n}=e;super(n?`Payment verification failed: ${n}.`:`Payment verification failed.`,{details:t})}},gS=class extends mS{name=`PaymentExpiredError`;title=`Payment Expired`;type=`https://paymentauth.org/problems/payment-expired`;constructor(e={}){let{expires:t}=e;super(t?`Payment expired at ${t}.`:`Payment has expired.`)}}}));function vS(e,t){if(!e)throw new hS({...t&&{id:t},reason:`missing required expires field`});if(Number.isNaN(new Date(e).getTime()))throw new hS({...t&&{id:t},reason:`malformed expires timestamp`});if(new Date(e)<new Date)throw new gS({expires:e})}var yS=F((()=>{_S()}));function bS(e){return Object.defineProperty(e,SS,{value:!0}),e}function xS(e){return!!e?.[SS]}var SS,CS=F((()=>{SS=Symbol.for(`mppx.x402.challenge`)}));function wS(e){let t={};for(let n of e){let e=t[n.name]??={};e[n.intent]=AS(n)}return t}function TS(e,t){let n=wS(e),r=LS(e,n,t),i=e.map((e,t)=>({intent:e.intent,method:e.name,q:r[AS(e)]??1,index:t}));return{definition:r,entries:i,header:DS(i),keys:n}}function ES(e){let t=e.split(/\s*,\s*/).map(e=>e.trim()).filter(Boolean);if(t.length===0)throw Error(`Accept-Payment header is empty.`);return t.map((e,t)=>FS(e,t))}function DS(e){return e.map(({method:e,intent:t,q:n})=>{let r=`${e}/${t}`;return n===1?r:`${r};q=${VS(n)}`}).join(`, `)}function OS(e,t,n){let r=kS(e,t,n)[0];if(r)return{challenge:r.challenge,method:r.method}}function kS(e,t,n){let r=new Map;for(let e of t){let t=AS(e),n=r.get(t);n?n.push(e):r.set(t,[e])}return e.flatMap((e,t)=>{let i=r.get(AS(e));if(!i)return[];let a=jS(e,n);return!a||a.q<=0?[]:i.filter(t=>t.canHandleChallenge?.({challenge:e})??!0).map(n=>({challenge:e,index:t,match:a,method:n}))}).sort((e,t)=>PS(e.challenge)-PS(t.challenge)||t.match.q-e.match.q||e.index-t.index).map(e=>{let{match:t,...n}=e;return n})}function AS(e){let t=e.method??e.name;if(!t)throw Error(`Missing payment method name.`);return`${t}/${e.intent}`}function jS(e,t){let n;for(let r of t){if(!MS(e,r))continue;let t={...r,specificity:NS(r)};(!n||t.specificity>n.specificity||t.specificity===n.specificity&&t.q>n.q||t.specificity===n.specificity&&t.q===n.q&&t.index<n.index)&&(n=t)}return n}function MS(e,t){return(t.method===`*`||t.method===e.method)&&(t.intent===`*`||t.intent===e.intent)}function NS(e){return Number(e.method!==`*`)+Number(e.intent!==`*`)}function PS(e){return+!!xS(e)}function FS(e,t){let n=/^(?<method>[^/;\s]+|\*)\s*\/\s*(?<intent>[^/;\s]+|\*)(?<params>(?:\s*;\s*.+)?)$/u.exec(e),r=n?.groups?.method,i=n?.groups?.intent;if(!r||!i)throw Error(`Invalid Accept-Payment entry: ${e}`);HS(r,`method`),HS(i,`intent`);let a=1;for(let t of IS(n.groups?.params)){if(!t)continue;let n=/^(?<name>[A-Za-z0-9_-]+)\s*=\s*(?<value>\S+)$/u.exec(t),r=n?.groups?.name,i=n?.groups?.value;if(!r||!i)throw Error(`Invalid Accept-Payment parameter: ${t}`);r===`q`&&(a=zS(i,`Accept-Payment entry "${e}"`))}return{intent:i,method:r,q:a,index:t}}function IS(e){return e?e.split(/\s*;\s*/).filter(Boolean):[]}function LS(e,t,n){if(!n)return{};let r=typeof n==`function`?n(t):n,i=new Set(e.map(e=>AS(e))),a={};for(let[e,t]of Object.entries(r??{})){if(!i.has(e))throw Error(`Unknown payment preference "${e}". Available: ${[...i].join(`, `)}`);a[e]=RS(t,`payment preference "${e}"`)}return a}function RS(e,t){if(typeof e!=`number`||Number.isNaN(e)||!Number.isFinite(e))throw Error(`Invalid q-value for ${t}. Expected a finite number.`);return BS(e,t)}function zS(e,t){if(!/^0(?:\.\d{0,3})?$|^1(?:\.0{0,3})?$/.test(e))throw Error(`Invalid q-value for ${t}. Expected an HTTP qvalue.`);return BS(Number(e),t)}function BS(e,t){if(e<0||e>1)throw Error(`Invalid q-value for ${t}. Expected a value between 0 and 1.`);let n=Math.round(e*1e3);if(Math.abs(e*1e3-n)>1e-9)throw Error(`Invalid q-value for ${t}. Expected at most 3 decimal places.`);return n/1e3}function VS(e){return e.toFixed(3).replace(/\.0+$/,``).replace(/(\.\d*?)0+$/,`$1`)}function HS(e,t){if(e!==`*`&&!/^[a-z0-9-]+$/.test(e))throw Error(`Invalid Accept-Payment ${t}: ${e}`)}var US=F((()=>{CS()}));function WS(e){let t=e.match(RegExp(`^${Ex.payment}\\s+(.+)$`,`i`));if(!t?.[1])throw new YS;try{let e=O.toString(t[1]),n=JSON.parse(e),{opaque:r,request:i,meta:a,...o}=n.challenge,{meta:s,opaque:c}=GS(r);return{challenge:fS.parse({...o,...s!==void 0&&{meta:s},...c!==void 0&&{opaque:c},request:Mx(i)}),payload:n.payload,...n.source&&{source:n.source}}}catch{throw new XS}}function GS(e){if(e===void 0)return{};if(typeof e==`string`)return{opaque:e};if(!KS(e))throw Error(`Invalid opaque.`);return{meta:e,opaque:Px(e)}}function KS(e){return typeof e!=`object`||!e||Array.isArray(e)?!1:Object.values(e).every(e=>typeof e==`string`)}function qS(e){let{challenge:t,payload:n,source:r}=e;return{challenge:t,payload:n,...r&&{source:r}}}function JS(e){let{meta:t,opaque:n,request:r,...i}=e.challenge,a=n??(t===void 0?void 0:Px(t)),o={challenge:{...i,...a!==void 0&&{opaque:a},request:Px(r)},payload:e.payload,...e.source&&{source:e.source}},s=JSON.stringify(o),c=O.fromString(s,{pad:!1,url:!0});return`${Ex.payment} ${c}`}var YS,XS,ZS=F((()=>{pS(),jx(),Fx(),YS=class extends Error{name=`MissingPaymentSchemeError`;constructor(){super(`Missing Payment scheme.`)}},XS=class extends Error{name=`InvalidCredentialEncodingError`;constructor(){super(`Invalid base64url or JSON.`)}}})),QS,$S,eC=F((()=>{QS=`org.paymentauth/credential`,$S=`org.paymentauth/payment-required`}));function tC(e){let{extensions:t,resource:n,...r}=e;return hC.parse(r)}var nC,rC,iC,aC,oC,sC,cC,lC,uC,dC,fC,pC,mC,hC,gC,_C,vC,yC,bC,xC,SC,CC,wC=F((()=>{qx(),nC=`charge`,rC=[`exact`],iC=`eip155:`,aC=`x402:`,oC=`PAYMENT-REQUIRED`,sC=`PAYMENT-SIGNATURE`,cC=`PAYMENT-RESPONSE`,lC=J.string().check(J.minLength(1)),uC=J.number().check(J.refine(e=>e>0,`Must be positive`)),dC=J.string().check(J.regex(/^\d+$/,`Invalid atomic amount`)),fC=Hx(),pC=J.string().check(J.regex(RegExp(`^${iC}\\d+$`),`Invalid EVM CAIP-2 network`)),mC=J.object({description:J.optional(J.string()),iconUrl:J.optional(J.string()),mimeType:J.optional(J.string()),serviceName:J.optional(J.string()),tags:J.optional(J.array(J.string())),url:lC}),J.discriminatedUnion(`type`,[J.object({name:lC,type:J.literal(`eip3009`),version:lC}),J.object({name:J.optional(J.string()),type:J.literal(`permit2`),version:J.optional(J.string())})]),hC=J.object({amount:dC,asset:lC,extra:J.optional(J.record(J.string(),J.unknown())),maxTimeoutSeconds:uC,network:pC,payTo:lC,scheme:J.enum(rC)}),gC=J.object({info:J.record(J.string(),J.unknown()),schema:J.record(J.string(),J.unknown())}),_C=J.record(J.string(),gC),vC=J.object({accepts:J.array(hC).check(J.minLength(1)),error:J.optional(J.string()),extensions:J.optional(_C),resource:mC,x402Version:J.literal(2)}),yC=J.object({authorization:J.object({from:fC,nonce:Ux(),to:fC,validAfter:dC,validBefore:dC,value:dC}),signature:Gx()}),bC=J.object({permit2Authorization:J.object({deadline:dC,from:fC,nonce:dC,permitted:J.object({amount:dC,token:fC}),spender:fC,witness:J.object({to:fC,validAfter:dC})}),signature:Gx()}),xC=J.union([yC,bC]),SC=J.object({accepted:hC,extensions:J.optional(_C),payload:xC,resource:J.optional(mC),x402Version:J.literal(2)}),J.object({extensions:J.optional(_C),extra:J.optional(J.record(J.string(),J.unknown())),invalidMessage:J.optional(J.string()),invalidReason:J.optional(J.string()),isValid:J.boolean(),payer:J.optional(J.string())}),CC=J.object({amount:J.optional(dC),errorMessage:J.optional(J.string()),errorReason:J.optional(J.string()),extensions:J.optional(_C),extra:J.optional(J.record(J.string(),J.unknown())),network:lC,payer:J.optional(J.string()),success:J.boolean(),transaction:J.string()})}));function TC(e,t,n){let r=new Headers(e.headers);for(let e of EC)e===q.authorization&&!r.get(e)?.startsWith(`Payment `)||r.delete(e);return r.set(t,n),{...e,headers:r}}var EC,DC=F((()=>{jx(),wC(),EC=[q.authorization,oC,cC,sC]}));function OC(e){if(typeof e==`string`)try{let t=JSON.parse(e),n=t?.id;return t?.jsonrpc!==`2.0`||typeof t?.method!=`string`?void 0:typeof n==`string`||typeof n==`number`?n:void 0}catch{return}}function kC(e){let t=OC(e?.body);if(t===void 0)return;let n=new Headers(e?.headers);if(n.has(`mcp-method`))return t;let r=n.get(`accept`)?.toLowerCase()??``;return r.includes(`application/json`)&&r.includes(`text/event-stream`)?t:void 0}function AC(e){if(!e||typeof e!=`object`)return;let t=e,n=t.id;if(t.jsonrpc!==`2.0`||n!==void 0&&typeof n!=`string`&&typeof n!=`number`)return;let r=`error`in t;if(r!==`result`in t)return r?Number.isInteger(t.error?.code)&&typeof t.error?.message==`string`?e:void 0:n!==void 0&&typeof t.result==`object`?e:void 0}function jC(e){if(!e||typeof e!=`object`)return;let t=e?.challenges;if(!Array.isArray(t)||t.length===0)return;let n=[];for(let e of t){let t=fS.safeParse(e);if(!t.success)return;n.push(t.data)}let{httpStatus:r,problem:i}=e;return{challenges:n,...typeof r==`number`?{httpStatus:r}:{},...i===void 0?{}:{problem:i}}}function MC(e){if(e)return`error`in e?e.error?.code!==-32042&&e.error?.code!==-32043?void 0:jC(e.error.data):jC(e.result?._meta?.[$S])}function NC(e,t){return!e||e.id!==t?[]:MC(e)?.challenges??[]}async function PC(e){let t=e.clone().body?.getReader();if(!t)return;let n=new TextDecoder,r=!1,i,a=xe({onEvent(e){if(!(r||!e.data)&&(r=!0,!(e.event&&e.event!==`message`)))try{i=AC(JSON.parse(e.data))}catch{}}});try{for(;;){if(r)return i;let{done:e,value:o}=await t.read();if(e)return a.feed(n.decode()),a.reset({consume:!0}),i;a.feed(n.decode(o,{stream:!0}))}}finally{t.cancel().catch(()=>{})}}function FC(e){let t=LC.get(e);if(t)return t;let n=(async()=>{let t=e.headers.get(`content-type`)?.toLowerCase()??``;if(t.includes(`application/json`))return e.clone().json().then(AC).catch(()=>void 0);if(t.includes(`text/event-stream`))return PC(e)})();return LC.set(e,n),n}function IC(){return{getChallenges(e,t){let n=kC(t);return e.status===402||n===void 0?[]:FC(e).then(e=>NC(e,n))},setCredential(e,t){let n=JSON.parse(e.body),r=WS(t);return{...e,body:JSON.stringify({...n,params:{...n.params,_meta:{...n.params?._meta,[QS]:r}}})}}}}var LC,RC=F((()=>{pS(),ZS(),eC(),DC(),LC=new WeakMap}));function zC(){return{getChallenges(e){return e.status!==402||!e.headers.has(q.wwwAuthenticate)?[]:iS(e)},setCredential(e,t,n){return TC(e,n?.challenge?cS(n.challenge):q.authorization,t)}}}var BC=F((()=>{pS(),jx(),DC()}));function VC(e){return{encode(t){return O.fromString(JSON.stringify(e.parse(t)))},decode(t){try{return e.parse(JSON.parse(O.toString(t)))}catch{throw new HC}}}}var HC,UC=F((()=>{HC=class extends Error{name=`InvalidJsonHeaderError`;constructor(){super(`Invalid base64 JSON header.`)}}}));function WC(e){try{let t=JSON.parse(O.toString(e));return XC(t)}catch{throw new HC}}var GC,KC,qC,JC,YC,XC,ZC=F((()=>{UC(),wC(),GC=VC(vC),KC=VC(SC),qC=VC(CC),JC=GC.encode,GC.decode,YC=KC.encode,KC.decode,qC.encode,qC.decode,XC=e=>{if(!e||typeof e!=`object`||Array.isArray(e))throw new HC;let t=e;if(t.x402Version!==2||!Array.isArray(t.accepts))throw new HC;let n=mC.parse(t.resource),r=t.extensions===void 0?void 0:_C.safeParse(t.extensions).data;return{accepts:t.accepts,...r?{extensions:r}:{},resource:n,x402Version:2}}}));function QC(){return{getChallenges(e){if(e.status!==402)return[];let t=e.headers.get(oC);if(!t)return[];let n=WC(t);if(e.url&&n.resource.url!==e.url)throw Error(`x402 payment-required resource does not match response URL.`);return n.accepts.flatMap((e,t)=>{let r=hC.safeParse(e);if(!r.success)return[];let i=r.data;return bS(Jx({id:`${aC}${t}`,intent:nC,method:`evm`,realm:new URL(n.resource.url).host,request:{...i,...n.extensions?{extensions:n.extensions}:{},resource:n.resource}}))})},setCredential(e,t){return TC(e,sC,t)}}}var $C=F((()=>{pS(),ZC(),CS(),wC(),DC()}));function ew(e){return e}function tw(){let e=[zC(),QC(),IC()],t=new WeakMap,n=(e,n)=>{for(let r of n)t.set(r,e);return n},r=(t,r)=>{let i=(a,o)=>{for(let s=a;s<e.length;s++){let a=e[s],c=a.getChallenges(t,r);if(c instanceof Promise)return c.then(e=>i(s+1,[...o,...n(a,e)]));o.push(...n(a,c))}return o};return i(0,[])};return ew({name:`http`,isPaymentRequired(e,t){if(e.status===402)return!0;let n=r(e,t);return n instanceof Promise?n.then(e=>e.length>0):n.length>0},getChallenges(e,t){return r(e,t)},setCredential(n,r,i){let a=i?.challenge?t.get(i.challenge):void 0,o=e[0];if(!a&&!o)throw Error(`No protocol to attach the credential.`);return(a??o).setCredential(n,r,i)}})}var nw=F((()=>{RC(),BC(),DC(),$C()}));function rw(e,t){return ow.set(e,t),e}function iw(e){return ow.has(e)}function aw(e,t){return Promise.resolve(ow.get(e)?.(t))}var ow,sw=F((()=>{ow=new WeakMap}));function cw(e,t){return pw.set(e,t),e}function lw(e){pw.delete(e)}function uw(e,t,n){pw.has(e)&&mw.set(t,n)}function dw(e){return mw.get(e)}function fw(e,t){return Promise.resolve(pw.get(e)?.(t)??t.response)}var pw,mw,hw=F((()=>{pw=new WeakMap,mw=new WeakMap}));async function gw(e,t){let n=e?.attempt.settle;if(!n)return t.status!==`pending`;e.attempt.settle=void 0;let r=await n(t);return r||(e.attempt.settle=n),r}function _w(e){let{acceptPayment:t,acceptPaymentPolicy:n=`always`,fetch:r=globalThis.fetch,maxPaymentRetries:i=eT,methods:a,onChallenge:o,orderChallenges:s,transport:c=tw()}=e,l=e.eventDispatcher??bw(),u=t??TS(a),d=Vw(r),f=async(e,t,r)=>{let p=Bw(e,t?.headers),m=p.has(q.acceptPayment),h=Kw(p,u),g=Rw(e,t,p),_=Lw(e,t,p,h.header,m,n),v=await d(Hw(_.input),_.init),y=zw(_.init,await g);if(!await c.isPaymentRequired(v,y))return v;let b=t?.context,{context:x,orderChallenges:S,...C}=y??{},w,T,ee,E;try{for(let n=0;n<i;n++){T=await c.getChallenges(v,y);let i=(await qw(kS(T,a,h.entries),S??s))[0];if(!i){if(await gw(E,{challenges:T,response:v,status:`rejected`}),n>0)return v;throw Error(`No method found for challenges: ${T.map(e=>`${e.method}.${e.intent}`).join(`, `)}. Available: ${a.map(e=>`${e.name}.${e.intent}`).join(`, `)}`)}let u=i.challenge;w=u,ee=i.method,w.expires&&vS(w.expires,w.id);let p=Qw(v,_.input,_.input),m=E,g=Yx(u),x=m?.method===i.method&&m?.key===g,D=!1;if(m){let e=await gw(m,{challenges:T,response:v,status:x?`pending`:`rejected`});D=x&&!e}E=D?m:void 0;let te=Tw(async e=>{if(e===void 0&&D&&m)return m.promise;D&&m&&(await gw(m,{status:`rejected`}),E=void 0);let t=e??b;if(!iw(i.method))return Gw(u,i.method,t);let n={prepare:()=>aw(i.method,{challenge:u,context:t,fetch:d,input:p})},r=n.prepare().then(()=>Gw(u,i.method,t,n));return E={attempt:n,key:e===void 0?g:void 0,method:i.method,promise:r},r}),O=await l.emit(`challenge.received`,Ew({challenge:u,challenges:T,createCredential:te,init:t,input:e,method:i.method,response:v}))??(o?await o(w,{createCredential:te}):void 0)??await te(),ne=E;ne&&await ne.promise.catch(()=>void 0)!==O&&(await gw(ne,{status:`rejected`}),E=void 0),Ww(O),await l.emit(`credential.created`,Dw({challenge:u,credential:O,init:t,input:e,method:i.method,response:v})),v=await d(p,c.setCredential({...C,headers:_.headers},O,{challenge:u}));let k=await c.isPaymentRequired(v,y);if(k||(await gw(ne,{response:v,status:v.ok?`accepted`:`rejected`}),E=void 0),v.ok&&xw(l,`payment.response`)&&await l.emit(`payment.response`,Ow({challenge:u,credential:O,init:t,input:e,method:i.method,response:v})),!k)return v.ok?fw(i.method,{challenge:u,credential:O,fetch:d,headers:_.headers,input:p,...r?{refetch:()=>f(Hw(_.input),t,!1)}:{},response:v,signal:Uw(e,t)}):v}T=void 0;try{T=await c.getChallenges(v,y)}catch{}return await gw(E,{challenges:T,response:v,status:`rejected`}),v}catch(n){throw await gw(E,{challenges:T,response:v,status:`rejected`}),await l.emit(`payment.failed`,kw({challenge:w,challenges:T,error:n,init:t,input:e,method:ee,response:v})),n}},p=(e,t)=>f(e,t,!0);return p[$w]=d,p}function vw(e){let t=Object.getOwnPropertyDescriptor(globalThis,`fetch`);if(!t||!t.writable&&!t.set)throw Error(`globalThis.fetch is not writable`);tT||=globalThis.fetch,globalThis.fetch=_w({...e,acceptPaymentPolicy:e.acceptPaymentPolicy??(Xw()?`same-origin`:`always`),fetch:globalThis.fetch})}function yw(e){if(!e)return{};if(e instanceof Headers){let t={};return e.forEach((e,n)=>{t[n]=e}),t}return Array.isArray(e)?Object.fromEntries(e):e}function bw(){let e={"*":new Set,"challenge.received":new Set,"credential.created":new Set,"payment.failed":new Set,"payment.response":new Set},t={async emit(t,n){switch(t){case`challenge.received`:{let r;for(let t of e[`challenge.received`]){let e=await Sw(t,n);if(typeof e==`string`&&e.length>0){r=e;break}}return await ww(e[`*`],t,n),r}case`credential.created`:await Cw(e[`credential.created`],n),await ww(e[`*`],t,n);return;case`payment.failed`:await Cw(e[`payment.failed`],n),await ww(e[`*`],t,n);return;case`payment.response`:await Cw(e[`payment.response`],n),await ww(e[`*`],t,n);return}},on:(t,n)=>{switch(t){case`*`:case`challenge.received`:case`credential.created`:case`payment.failed`:case`payment.response`:return e[t].add(n),()=>e[t].delete(n);default:throw Error(`Unknown client event "${String(t)}".`)}}};return nT.set(t,t=>e[t].size>0||e[`*`].size>0),t}function xw(e,t){return nT.get(e)?.(t)??!0}async function Sw(e,t){try{return await e(t)}catch{return}}async function Cw(e,t){for(let n of e)try{await n(t)}catch{}}async function ww(e,t,n){await Cw(e,Object.freeze({name:t,payload:n}))}function Tw(e){let t;return n=>(t??=e(n),t)}function Ew(e){return Object.freeze({challenge:Pw(e.challenge),challenges:e.challenges.map(e=>Pw(e)),createCredential:e.createCredential,init:Aw(e.init),input:jw(e.input),method:Mw(e.method),response:Nw(e.response)})}function Dw(e){return Object.freeze({challenge:Pw(e.challenge),credential:e.credential,init:Aw(e.init),input:jw(e.input),method:Mw(e.method),...e.response===void 0?{}:{response:Nw(e.response)}})}function Ow(e){return Object.freeze({challenge:Pw(e.challenge),credential:e.credential,init:Aw(e.init),input:jw(e.input),method:Mw(e.method),response:Nw(e.response)})}function kw(e){return Object.freeze({...e.challenge?{challenge:Pw(e.challenge)}:{},...e.challenges?{challenges:e.challenges.map(e=>Pw(e))}:{},error:e.error,init:Aw(e.init),input:jw(e.input),...e.method?{method:Mw(e.method)}:{},...e.response===void 0?{}:{response:Nw(e.response)}})}function Aw(e){if(e)return Iw({...e,...e.headers?{headers:new Headers(e.headers)}:{}})}function jw(e){if(e instanceof Request)try{return e.clone()}catch{return e}return e instanceof URL?new URL(e):e}function Mw(e){return Iw(Object.assign({},e))}function Nw(e){return e instanceof Response?e.clone():Pw(e)}function Pw(e){try{return Fw(structuredClone(e))}catch{return Iw(e)}}function Fw(e){if(!e||typeof e!=`object`||Object.isFrozen(e))return e;Object.freeze(e);for(let t of Object.values(e))Fw(t);return e}function Iw(e){return!e||typeof e!=`object`||Object.isFrozen(e)||Object.freeze(e),e}function Lw(e,t,n,r,i,a){let o=!!r&&!i&&Jw(e,a);if(!o)return{headers:n,init:t,input:e};let s=new Headers(e instanceof Request?e.headers:void 0);return n.forEach((e,t)=>{s.set(t,e)}),s.set(q.acceptPayment,r),t?(t.headers=s,{headers:s,init:t,input:e}):{headers:s,init:o?{headers:s}:void 0,input:e}}function Rw(e,t,n){if(!(!(e instanceof Request)||t?.body!==void 0||!e.body||e.bodyUsed)){if(!n.has(`mcp-method`)){let e=n.get(`accept`)?.toLowerCase()??``;if(!e.includes(`application/json`)||!e.includes(`text/event-stream`))return}try{return e.clone().text().catch(()=>void 0)}catch{return}}}function zw(e,t){return t===void 0?e:{...e,body:t}}function Bw(e,t){return t?new Headers(t):new Headers(e instanceof Request?e.headers:void 0)}function Vw(e){let t=e;for(;t[$w];)t=t[$w];return t}function Hw(e){if(!(e instanceof Request)||!e.body||e.bodyUsed)return e;try{return e.clone()}catch{return e}}function Uw(e,t){return t?.signal??(e instanceof Request?e.signal:void 0)}function Ww(e){if(!e.trim())throw Error(`Credential header value must be non-empty`);if(e.includes(`\r`)||e.includes(`
224
+ `))throw Error(`Credential header value contains illegal newline characters`)}async function Gw(e,t,n,r){let i=t.context&&n!==void 0?t.context.parse(n):void 0,a=i===void 0?{challenge:e}:{challenge:e,context:i};return r&&uw(t,a,r),t.createCredential(a)}function Kw(e,t){let n=e.get(q.acceptPayment);if(!n)return t;try{return{...t,entries:ES(n),header:n}}catch{return t}}async function qw(e,t){return t?t(e):e}function Jw(e,t){if(t===`always`)return!0;if(t===`never`)return!1;let n=Zw(e);return t===`same-origin`?!Xw()||n.origin===globalThis.location.origin:t.origins.some(e=>Yw(n,e))}function Yw(e,t){if(t.startsWith(`*.`)){let n=t.slice(1);return e.hostname.endsWith(n)||e.hostname===t.slice(2)}return e.origin===new URL(t).origin}function Xw(){return globalThis.location!==void 0}function Zw(e){return e instanceof URL?e:e instanceof Request?new URL(e.url):new URL(e,Xw()?globalThis.location.href:void 0)}function Qw(e,t,n){if(!e.url)return t;let r=new URL(e.url),i=Zw(n);if(r.origin!==i.origin)throw Error(`Refusing to send payment credential across redirect from ${i.origin} to ${r.origin}`);return e.url}var $w,eT,tT,nT,rT=F((()=>{pS(),jx(),yS(),US(),nw(),sw(),hw(),$w=Symbol.for(`mppx.fetch.wrapper`),eT=3,nT=new WeakMap}));wx(),rT();function iT(){let e=new Uint8Array(64);return crypto.getRandomValues(e),Object.freeze({created:Math.floor(Date.now()/1e3),nonce:O.fromBytes(e,{pad:!1,url:!0})})}function aT(...e){return{protocol:`composed`,async sign(t,n=iT()){for(let r of e)t=await r.sign(t,n);return t}}}function oT(e,t){return async(n,r)=>e(await t.sign(new Request(n,r)))}jx(),yS(),US(),sw(),nw();const sT=new WeakMap;function cT(e){let{attestation:t,maxPaymentRetries:n,onChallenge:r,orderChallenges:i,polyfill:a=!0,acceptPaymentPolicy:o=a&&globalThis.location!==void 0?`same-origin`:`always`,transport:s=tw()}=e,c=Vw(e.fetch??globalThis.fetch),l=t?lT(t):void 0,u=l?oT(c,l):c,d=e.methods.flat(),f=TS(d,e.paymentPreferences),p=bw(),m=r,h={acceptPayment:f,acceptPaymentPolicy:o,...(e.fetch||t)&&{fetch:u},eventDispatcher:p,...n!==void 0&&{maxPaymentRetries:n},...m&&{onChallenge:m},...i&&{orderChallenges:i},methods:d,transport:s},g=_w(h);a&&vw(h);function _(e){return p.on(`challenge.received`,e)}function v(e){return p.on(`credential.created`,e)}function y(e){return p.on(`payment.failed`,e)}function b(e){return p.on(`payment.response`,e)}async function x(e,t){let n=CT(e),r=await s.getChallenges(e,t?.request),a=Object.freeze(r.map(e=>wT(e))),o=DT(f.entries,t?.acceptPayment),c,l;try{let e=(await OT(kS(r,d,o),t?.orderChallenges??i))[0];if(!e)throw Error(`No method found for challenges: ${r.map(e=>`${e.method}.${e.intent}`).join(`, `)}. Available: ${d.map(e=>`${e.name}.${e.intent}`).join(`, `)}`);let u=e.challenge;c=a[e.index],l=e.method,c.expires&&vS(c.expires,c.id);let f=c,m=l,h=vT(async e=>{try{f.expires&&vS(f.expires,f.id);let t=vT(t=>kT(f,m,t??e)),i=await p.emit(`challenge.received`,yT({challenge:f,challenges:r,createCredential:t,method:m,response:n}))??await t();return Ww(i),await p.emit(`credential.created`,bT({challenge:f,credential:i,method:m,response:n})),i}catch(e){throw await p.emit(`payment.failed`,xT({challenge:f,challenges:r,error:e,method:m,response:n})),e}}),g=Object.freeze({challenge:f,challenges:a,createCredential:h,method:ST(m),setCredential(e,t){return Ww(t),s.setCredential(e,t,{challenge:u})}});return sT.set(g,m),g}catch(e){throw await p.emit(`payment.failed`,xT({challenge:c,challenges:r,error:e,method:l,response:n})),e}}async function S(e,t,n){let{maxRedirects:r=20,requirePayment:i=!1,...a}=n??{},d=await pT({acceptPayment:f.header,acceptPaymentPolicy:o,fetch:c,init:t,input:e,maxRedirects:r,signer:l}),p=mT(d.replayRequest,d.body);if(!await s.isPaymentRequired(d.response,p)){if(i)throw Error(`Response does not require payment.`);return Object.freeze({payment:void 0,request:d.request,response:d.response,redirects:d.redirects})}let m=await x(d.response,{...a,request:p}),h=sT.get(m)??m.method,g=vT(async e=>(iw(h)&&await aw(h,{challenge:m.challenge,context:e,fetch:u,input:d.replayRequest}),m.createCredential(e))),_=Object.freeze({...m,createCredential:g,async pay(e){let t=await g(e),n=m.setCredential(mT(d.replayRequest,d.body),t);return u(d.replayRequest.url,{...n,redirect:`manual`})}});return Object.freeze({payment:_,request:d.request,response:d.response,redirects:d.redirects})}return{fetch:g,rawFetch:c,methods:d,transport:s,on:p.on,onChallengeReceived:_,onCredentialCreated:v,onPaymentFailed:y,onPaymentResponse:b,preparePayment:x,prepareRequest:S,async createCredential(e,t,n){return(await x(e,n)).createCredential(t)}}}function lT(e){let t=Object.values(e);if(t.length===0)throw TypeError(`Mppx client attestation must configure at least one signer.`);return aT(...t)}const uT=new Set([301,302,303,307,308]),dT=[`content-encoding`,`content-language`,`content-length`,`content-location`,`content-type`,`transfer-encoding`],fT=[`authorization`,`cookie`,`cookie2`,`host`,`payment-authorization`,`payment-signature`,`proxy-authorization`,`x-payment`];async function pT(e){let{acceptPayment:t,acceptPaymentPolicy:n,fetch:r,init:i,input:a,maxRedirects:o,signer:s}=e;if(!Number.isInteger(o)||o<0)throw TypeError(`maxRedirects must be a non-negative integer.`);let c=new Request(a,{...i,redirect:`manual`}),l=c.headers.has(q.acceptPayment),u=await hT(c,i?.body),d=[];for(;;){c=gT(c,t,l,n);let e=s?await s.sign(c.clone()):c.clone(),i=await r(e);if(i.type===`opaqueredirect`||i.status===0)throw Error(`prepareRequest requires a runtime that exposes manual redirect responses.`);if(!uT.has(i.status))return{body:u,replayRequest:c,request:e,response:i,redirects:Object.freeze(d)};let a=i.headers.get(`location`);if(!a)return{body:u,replayRequest:c,request:e,response:i,redirects:Object.freeze(d)};if(d.length>=o)throw await i.body?.cancel(),Error(`Payment request exceeded ${o} redirects.`);let f=new URL(c.url),p=new URL(a,f);if(f.protocol===`https:`&&p.protocol!==`https:`)throw await i.body?.cancel(),Error(`Payment request refused HTTPS downgrade redirect to ${p.href}`);let m=new Headers(c.headers),h=c.method;if((i.status===301||i.status===302)&&h===`POST`||i.status===303&&h!==`GET`&&h!==`HEAD`){h=`GET`,u=void 0;for(let e of dT)m.delete(e)}if(f.origin!==p.origin)for(let e of[...m.keys()]){let t=m.get(e)??``;(fT.includes(e)||t.startsWith(`Payment `))&&m.delete(e)}d.push(Object.freeze({from:f.href,status:i.status,to:p.href})),await i.body?.cancel(),c=new Request(p,_T(c,m,h,u))}}function mT(e,t){return _T(e,new Headers(e.headers),e.method,t)}async function hT(e,t){if(typeof t==`string`)return t;if(!e.body)return;let n=e.headers.get(`accept`)?.toLowerCase()??``;return e.headers.has(`mcp-method`)||n.includes(`application/json`)&&n.includes(`text/event-stream`)?e.clone().text():e.clone().arrayBuffer()}function gT(e,t,n,r){if(n)return e;let i=new Headers(e.headers);return i.delete(q.acceptPayment),t&&Jw(e,r)&&i.set(q.acceptPayment,t),new Request(e,{headers:i})}function _T(e,t,n,r){return{...r?{body:r}:{},cache:e.cache,credentials:e.credentials,headers:t,integrity:e.integrity,keepalive:e.keepalive,method:n,mode:e.mode,redirect:`manual`,referrer:e.referrer,referrerPolicy:e.referrerPolicy,signal:e.signal}}function vT(e){let t;return n=>(t??=e(n),t)}function yT(e){return Object.freeze({challenge:wT(e.challenge),challenges:e.challenges.map(e=>wT(e)),createCredential:e.createCredential,method:ST(e.method),response:CT(e.response)})}function bT(e){return Object.freeze({challenge:wT(e.challenge),credential:e.credential,method:ST(e.method),response:CT(e.response)})}function xT(e){return Object.freeze({...e.challenge?{challenge:wT(e.challenge)}:{},...e.challenges?{challenges:e.challenges.map(e=>wT(e))}:{},error:e.error,...e.method?{method:ST(e.method)}:{},response:CT(e.response)})}function ST(e){return ET(Object.assign({},e))}function CT(e){if(e instanceof Response)try{return e.clone()}catch{return new Response(null,{headers:e.headers,status:e.status,statusText:e.statusText})}return wT(e)}function wT(e){try{let t=structuredClone(e);if(e&&t&&typeof e==`object`&&typeof t==`object`)for(let n of Object.getOwnPropertySymbols(e)){let r=Object.getOwnPropertyDescriptor(e,n);r&&Object.defineProperty(t,n,r)}return TT(t)}catch{return ET(e)}}function TT(e){if(!e||typeof e!=`object`||Object.isFrozen(e))return e;Object.freeze(e);for(let t of Object.values(e))TT(t);return e}function ET(e){return!e||typeof e!=`object`||Object.isFrozen(e)||Object.freeze(e),e}function DT(e,t){return t?typeof t==`string`?ES(t):t:e}async function OT(e,t){return t?t(e):e}async function kT(e,t,n){let r=t.context&&n!==void 0?t.context.parse(n):void 0;return t.createCredential(r===void 0?{challenge:e}:{challenge:e,context:r})}function AT(){return J.string().check(J.regex(jT,`Invalid URI or path`))}var jT,MT,NT,PT,FT,IT,LT,RT,zT,BT=F((()=>{qx(),jT=/^([a-zA-Z][a-zA-Z\d+.-]*:\/\/\S+|\/\S*)$/,MT=new Set([`amount`,`currency`,`description`,`intent`,`method`]),NT=J.looseObject({amount:J.optional(J.union([J.null(),J.string().check(J.regex(/^(0|[1-9][0-9]*)$/,`Invalid amount`))])),currency:J.optional(J.string()),description:J.optional(J.string()),intent:J.optional(J.string()),method:J.optional(J.string())}),PT=J.pipe(J.looseObject({amount:J.optional(J.union([J.null(),J.string().check(J.regex(/^(0|[1-9][0-9]*)$/,`Invalid amount`))])),currency:J.optional(J.string()),description:J.optional(J.string()),intent:J.optional(J.string()),method:J.optional(J.string()),offers:J.optional(J.array(NT).check(J.minLength(1)))}).check(J.refine(e=>e.offers===void 0||Object.keys(e).every(e=>e===`offers`||!MT.has(e)),`Cannot mix offers with flat payment info fields`)),J.transform(e=>{if(e.offers)return{offers:e.offers};let t={};for(let[n,r]of Object.entries(e))n!==`offers`&&(MT.has(n)||r!==void 0)&&(t[n]=r);return{offers:[t]}})),FT=J.looseObject({apiReference:J.optional(AT()),homepage:J.optional(AT()),llms:J.optional(AT())}),IT=J.looseObject({categories:J.optional(J.array(J.string())),docs:J.optional(FT)}),LT=J.looseObject({"x-payment-info":J.optional(PT),requestBody:J.optional(J.unknown()),responses:J.optional(J.record(J.string(),J.unknown())),summary:J.optional(J.string())}),RT=J.looseObject({delete:J.optional(LT),get:J.optional(LT),head:J.optional(LT),options:J.optional(LT),patch:J.optional(LT),post:J.optional(LT),put:J.optional(LT),trace:J.optional(LT)}),zT=J.looseObject({openapi:J.string(),info:J.looseObject({title:J.string(),version:J.string()}),"x-service-info":J.optional(IT),paths:J.optional(J.record(J.string(),RT))})}));BT();function VT(e){let t=[],n=zT.safeParse(e);if(!n.success){for(let e of n.error.issues)t.push({message:e.message,path:e.path.map(String).join(`.`)||`(root)`,severity:`error`});return t}let r=n.data.paths;if(!r)return t;for(let[e,n]of Object.entries(r))for(let[r,i]of Object.entries(n)){if(!i||typeof i!=`object`||Array.isArray(i))continue;let n=i,a=`paths.${e}.${r}`,o=n[`x-payment-info`];if(!o)continue;let s=PT.safeParse(o);if(!s.success){for(let e of s.error.issues){let n=e.path.length>0?`.${e.path.map(String).join(`.`)}`:``;t.push({message:e.message,path:`${a}.x-payment-info${n}`,severity:`error`})}continue}let c=n.responses;(!c||!(`402`in c))&&t.push({message:`Operation with x-payment-info MUST have a 402 response`,path:`${a}.responses`,severity:`error`});let l=r.toUpperCase();!n.requestBody&&(l===`POST`||l===`PUT`||l===`PATCH`)&&t.push({message:`Operation with x-payment-info has no requestBody`,path:a,severity:`warning`})}return t}function HT(e){return e}function UT(e,t){let{canHandleChallenge:n,context:r,createCredential:i}=t;return{...e,canHandleChallenge:n,context:r,createCredential:i}}var WT=F((()=>{}));function GT(e){return J.refine(e=>{let{amount:t,decimals:n}=e;return N(t,n)>0n},e)}function KT(e){let{periodCount:t,periodUnit:n}=e;try{let e=XT[n];return e!==void 0&&BigInt(t)*e<=YT}catch{return!1}}var qT,JT,YT,XT,ZT,QT,$T,eE,tE,nE,rE,iE,aE,oE=F((()=>{jx(),WT(),qx(),qT=[`push`,`pull`],JT=J.object({amount:Lx(),memo:J.optional(Ux()),recipient:J.pipe(J.string(),J.transform(e=>e))}),YT=(1n<<64n)-1n,XT={dev_second:1n,day:86400n,week:604800n},ZT=J.pipe(Hx(),J.transform(e=>e.toLowerCase())),QT=J.object({accessKeyAddress:ZT,keyType:J.enum([`p256`,`secp256k1`,`webAuthn`])}),$T=J.object({accessKey:J.optional(QT),chainId:J.optional(J.number())}),eE=zx(`subscriptionExpires must be a valid date`).check(J.refine(e=>e.getTime()%1e3==0,`subscriptionExpires must be representable as whole seconds`)),tE=J.enum([`dev_second`,`day`,`week`]),nE=J.pipe(J.union([J.string(),J.bigint(),J.custom(e=>typeof e==`number`&&Number.isSafeInteger(e))]),J.transform(e=>e.toString())).check(J.regex(/^[1-9]\d*$/,`Invalid periodCount`),J.refine(e=>{try{return BigInt(e)<=YT}catch{return!1}},`periodCount exceeds uint64`)),rE=HT({name:`tempo`,intent:`charge`,schema:{credential:{payload:J.discriminatedUnion(`type`,[J.object({hash:Ux(),type:J.literal(`hash`)}),J.object({signature:Gx(),type:J.literal(`transaction`)}),J.object({signature:Gx(),type:J.literal(`proof`)})])},request:J.pipe(J.object({amount:Lx(),chainId:J.optional(J.number()),currency:J.string(),decimals:J.number(),description:J.optional(J.string()),externalId:J.optional(J.string()),feePayer:J.optional(J.pipe(J.union([J.boolean(),J.custom()]),J.transform(e=>typeof e==`object`||e))),memo:J.optional(Ux()),recipient:J.optional(J.string()),splits:J.optional(J.array(JT).check(J.minLength(1),J.maxLength(10))),supportedModes:J.optional(J.array(J.enum(qT)).check(J.minLength(1)))}).check(J.refine(({amount:e,decimals:t,splits:n})=>{if(!n)return!0;let r=N(e,t),i=n.reduce((e,n)=>e+N(n.amount,t),0n);return n.every(e=>N(e.amount,t)>0n)&&i<r},`Invalid splits`)),J.transform(({amount:e,chainId:t,decimals:n,feePayer:r,memo:i,splits:a,supportedModes:o,...s})=>({...s,amount:N(e,n).toString(),...t!==void 0||r!==void 0||i!==void 0||a!==void 0||o!==void 0?{methodDetails:{...t!==void 0&&{chainId:t},...r!==void 0&&{feePayer:r},...i!==void 0&&{memo:i},...a!==void 0&&{splits:a.map(e=>({...e,amount:N(e.amount,n).toString()}))},...o!==void 0&&{supportedModes:o}}}:{}})))}}),iE=HT({name:`tempo`,intent:`session`,schema:{credential:{payload:J.discriminatedUnion(`action`,[J.object({action:J.literal(`open`),authorizedSigner:J.optional(J.string()),channelId:Ux(),cumulativeAmount:Lx(),descriptor:J.optional(J.custom()),signature:Gx(),transaction:Gx(),type:J.literal(`transaction`)}),J.object({action:J.literal(`topUp`),additionalDeposit:Lx(),channelId:Ux(),descriptor:J.optional(J.custom()),transaction:Gx(),type:J.literal(`transaction`)}),J.object({action:J.literal(`voucher`),channelId:Ux(),cumulativeAmount:Lx(),descriptor:J.optional(J.custom()),signature:Gx()}),J.object({action:J.literal(`close`),channelId:Ux(),cumulativeAmount:Lx(),descriptor:J.optional(J.custom()),signature:Gx()})])},request:J.pipe(J.object({amount:Lx(),chainId:J.optional(J.number()),channelId:J.optional(Ux()),currency:J.string(),decimals:J.number(),escrowContract:J.optional(J.string()),feePayer:J.optional(J.pipe(J.union([J.boolean(),J.custom()]),J.transform(e=>typeof e==`object`||e))),feeToken:J.optional(Hx()),minVoucherDelta:J.optional(Lx()),operator:J.optional(Hx()),recipient:J.optional(J.string()),sessionProtocol:J.optional(J.enum([Ax.v2,Ax.v1])),sessionSnapshot:J.optional(J.custom()),suggestedDeposit:J.optional(Lx()),unitType:J.string()}).check(J.refine(({amount:e,decimals:t})=>N(e,t)>0n,`Session amount must be greater than 0`)),J.transform(({amount:e,chainId:t,channelId:n,decimals:r,escrowContract:i,feePayer:a,feeToken:o,minVoucherDelta:s,operator:c,sessionProtocol:l,sessionSnapshot:u,suggestedDeposit:d,...f})=>({...f,amount:N(e,r).toString(),...d?{suggestedDeposit:N(d,r).toString()}:{},methodDetails:{escrowContract:i,...n!==void 0&&{channelId:n},...s!==void 0&&{minVoucherDelta:N(s,r).toString()},...t!==void 0&&{chainId:t},...a!==void 0&&{feePayer:a},...o!==void 0&&{feeToken:o},...c!==void 0&&{operator:c},...l!==void 0&&{[kx.sessionProtocol]:l},...u!==void 0&&{[kx.sessionSnapshot]:u}}})))}}),aE=HT({name:`tempo`,intent:`subscription`,schema:{credential:{payload:J.object({signature:Gx(),type:J.literal(`keyAuthorization`)})},request:J.pipe(J.object({amount:Lx(),accessKey:J.optional(QT),chainId:J.optional(J.number()),currency:ZT,decimals:J.number(),description:J.optional(J.string()),externalId:J.optional(J.string()),methodDetails:J.optional($T),periodCount:nE,periodUnit:tE,recipient:ZT,subscriptionExpires:eE}).check(GT(`Subscription amount must be greater than 0`),J.refine(KT,`Subscription period exceeds uint64`)),J.transform(({accessKey:e,amount:t,chainId:n,decimals:r,methodDetails:i,subscriptionExpires:a,...o})=>{let s={...i,...e!==void 0&&{accessKey:e},...n!==void 0&&{chainId:n}};return{...o,amount:N(t,r).toString(),subscriptionExpires:a.toISOString(),...Object.keys(s).length>0?{methodDetails:s}:{}}}))}})}));function sE(e){return e>=0n&&e<=EE}function cE(e){if(!/^\d{1,29}$/.test(e))return;let t=BigInt(e);return sE(t)?t:void 0}function lE(e){return uE(e),e}function uE(e){if(!sE(e))throw Error(`Value ${e} is outside uint96 bounds.`)}function dE(e){return typeof e==`object`&&!!e}function fE(e){return typeof e==`string`&&DE.has(e)}function pE(e){if(typeof e!=`object`||!e)return!1;let t=e;return!(typeof t.channelId!=`string`||t.action!==void 0&&!fE(t.action))}function mE(e,t=`No session credential context available.`){if(!pE(e))throw Error(t);return e}function hE(e){let t=e.request.amount;if(typeof t!=`string`)throw Error(`Session challenge is missing amount.`);return BigInt(t)}function gE(e){return dE(e)?typeof e.channelId==`string`&&typeof e.requiredCumulative==`string`&&typeof e.acceptedCumulative==`string`&&typeof e.deposit==`string`:!1}function _E(e){return dE(e)?e.method===`tempo`&&e.intent===`session`&&e.status===`success`&&typeof e.timestamp==`string`&&typeof e.reference==`string`&&typeof e.challengeId==`string`&&typeof e.channelId==`string`&&typeof e.acceptedCumulative==`string`&&typeof e.spent==`string`&&(e.units===void 0||typeof e.units==`number`)&&(e.txHash===void 0||typeof e.txHash==`string`):!1}function vE(e){let t=O.toString(e),n=JSON.parse(t);if(!_E(n))throw Error(`Invalid session receipt.`);return n}function yE(e){return e.headers.get(`content-type`)?.toLowerCase().startsWith(`text/event-stream`)??!1}function bE(e){let t=`message`,n=[];for(let r of e.split(`
225
225
  `))r.startsWith(`event: `)?t=r.slice(7).trim():r.startsWith(`data: `)?n.push(r.slice(6)):r===`data:`&&n.push(``);if(n.length===0)return null;let r=n.join(`
226
- `);switch(t){case`message`:return{type:`message`,data:r};case`payment-need-voucher`:{let e=lE(r);return iE(e)?{type:`payment-need-voucher`,data:e}:null}case`payment-receipt`:{let e=lE(r);return aE(e)?{type:`payment-receipt`,data:e}:null}default:return{type:`message`,data:r}}}function lE(e){try{return JSON.parse(e)}catch{return null}}function uE(e){return JSON.stringify({mpp:`authorization`,authorization:e})}function dE(){return JSON.stringify({mpp:`payment-close-request`})}function fE(e){let t=pE(e);return t?t.mpp===`authorization`&&typeof t.authorization==`string`?{mpp:`authorization`,authorization:t.authorization}:t.mpp===`message`&&typeof t.data==`string`?{mpp:`message`,data:t.data}:t.mpp===`payment-close-request`?{mpp:`payment-close-request`}:t.mpp===`payment-close-ready`&&aE(t.data)?{mpp:`payment-close-ready`,data:t.data}:t.mpp===`payment-error`&&typeof t.status==`number`&&typeof t.message==`string`?{mpp:`payment-error`,status:t.status,message:t.message}:t.mpp===`payment-need-voucher`&&iE(t.data)?{mpp:`payment-need-voucher`,data:t.data}:t.mpp===`payment-receipt`&&aE(t.data)?{mpp:`payment-receipt`,data:t.data}:null:null}function pE(e){try{let t=JSON.parse(e);return typeof t!=`object`||!t?null:t}catch{return null}}var mE,hE,gE,_E=L((()=>{mE=(1n<<96n)-1n,hE=new Set([`open`,`topUp`,`voucher`,`close`]),gE=`0x4d50500000000000000000000000000000000000`}));function vE(e){return TE.encode(e)}function yE(e){return TE.decode(e)}var bE,xE,SE,CE,wE,TE,EE=L((()=>{BC(),Wx(),bE=X.custom(e=>typeof e==`string`&&ue(e,{strict:!1})),xE=X.custom(e=>typeof e==`string`&&/^0x[0-9a-fA-F]{64}$/.test(e)),SE=X.custom(e=>typeof e==`string`&&/^0x[0-9a-fA-F]+$/.test(e)),CE=X.object({authorizedSigner:bE,expiringNonceHash:xE,operator:bE,payee:bE,payer:bE,salt:xE,token:bE}),wE=X.object({acceptedCumulative:X.string(),chainId:X.number(),channelId:xE,closeRequestedAt:X.optional(X.string()),deposit:X.string(),descriptor:CE,escrow:bE,highestVoucher:X.optional(X.object({channelId:xE,cumulativeAmount:X.string(),signature:SE})),requiredCumulative:X.string(),settled:X.string(),spent:X.string(),units:X.optional(X.number())}),TE=RC(wE)}));function DE(e){return{status:`active`,...e}}function OE(e,t){switch(t.type){case`challengeReceived`:return e.status===`closing`||e.status===`closed`?NE(e,t):{state:{status:`challenged`,challengeId:t.challengeId},effects:[]};case`challenge`:return e.status!==`idle`&&e.status!==`active`?NE(e,t):t.snapshot?{state:{status:`hydrating`,challengeId:t.challengeId,snapshot:t.snapshot},effects:[{type:`hydrate`,snapshot:t.snapshot}]}:{state:{status:`opening`,challengeId:t.challengeId},effects:[{type:`open`}]};case`hydrated`:return e.status===`hydrating`?{state:jE(e.challengeId,t.snapshot),effects:[]}:NE(e,t);case`activated`:return e.status===`closing`||e.status===`closed`?NE(e,t):{state:GE({challengeId:t.challengeId,entry:t.entry,spent:t.spent,units:t.units??0}),effects:[]};case`opened`:return e.status===`opening`?{state:ME(e.challengeId,t.receipt,t.descriptor,t.deposit),effects:[]}:NE(e,t);case`receiptAccepted`:return e.status===`closing`||e.status===`closed`?NE(e,t):{state:JE(t.receipt,t.entry),effects:[]};case`needVoucher`:return e.status===`active`?AE({challengeId:e.challengeId,descriptor:t.descriptor,event:t.event}):NE(e,t);case`topUpStarted`:return e.status===`voucherNeeded`?{state:{status:`toppingUp`,challengeId:e.challengeId,channelId:e.channelId,descriptor:e.descriptor,deposit:e.deposit},effects:[]}:NE(e,t);case`voucherAccepted`:return e.status!==`voucherNeeded`&&e.status!==`toppingUp`?NE(e,t):{state:ME(e.challengeId,t.receipt,e.descriptor,t.deposit??e.deposit),effects:[]};case`settleStarted`:return e.status===`active`?{state:{status:`settling`,channelId:e.channelId,descriptor:e.descriptor,deposit:e.deposit},effects:[{type:`settle`,channelId:e.channelId}]}:NE(e,t);case`settled`:return e.status===`settling`?{state:ME(t.receipt.challengeId,t.receipt,e.descriptor,t.deposit??e.deposit),effects:[]}:NE(e,t);case`closeRequested`:return e.status===`active`?{state:{status:`closeRequested`,channelId:e.channelId,descriptor:e.descriptor},effects:[{type:`requestClose`,channelId:e.channelId}]}:NE(e,t);case`withdrawable`:return e.status===`closeRequested`?{state:{status:`withdrawable`,channelId:e.channelId,descriptor:e.descriptor},effects:[{type:`withdraw`,channelId:e.channelId}]}:NE(e,t);case`closeStarted`:return e.status!==`active`&&e.status!==`withdrawable`&&e.status!==`closeRequested`?NE(e,t):{state:{status:`closing`,channelId:e.channelId,descriptor:e.descriptor},effects:[{type:`close`,channelId:e.channelId}]};case`closed`:return e.status!==`closing`&&e.status!==`withdrawable`?NE(e,t):{state:{status:`closed`,channelId:e.channelId,descriptor:e.descriptor},effects:[]}}}function kE(e,t){let n=OE(e.state,t);return e.state=n.state,n}function AE(e){let{challengeId:t,descriptor:n,event:r}=e,i=BigInt(r.requiredCumulative),a=BigInt(r.deposit);return i>a?{state:{status:`toppingUp`,challengeId:t,channelId:r.channelId,descriptor:n,deposit:r.deposit},effects:[{type:`topUp`,channelId:r.channelId,amount:(i-a).toString()}]}:{state:{status:`voucherNeeded`,challengeId:t,channelId:r.channelId,descriptor:n,requiredCumulative:r.requiredCumulative,deposit:r.deposit},effects:[{type:`voucher`}]}}function jE(e,t){return DE({challengeId:e,channelId:t.channelId,descriptor:t.descriptor,acceptedCumulative:t.acceptedCumulative,deposit:t.deposit,spent:t.spent,units:t.units??0})}function ME(e,t,n,r){return DE({challengeId:e,channelId:t.channelId,descriptor:n,acceptedCumulative:t.acceptedCumulative,deposit:r,spent:t.spent,units:t.units??0})}function NE(e,t){throw Error(`Invalid session transition: ${e.status} + ${t.type}`)}function PE(e){let{cumulativeAmount:t,maxVoucherCumulative:n}=e;if(n!==null&&!(t<=n))throw Error(`requested voucher amount ${t} exceeds local maxDeposit ${n}`)}function FE(e){let{channel:t,maxVoucherCumulative:n,receipt:r}=e;if(!t||r.channelId!==t.channelId)return;let i=BigInt(r.acceptedCumulative),a=BigInt(r.spent);if(a>i)throw Error(`receipt spent exceeds accepted cumulative voucher amount`);if(i>t.cumulativeAmount)throw Error(`receipt accepted cumulative exceeds local voucher state`);if(a>t.cumulativeAmount)throw Error(`receipt spent exceeds local voucher state`);PE({cumulativeAmount:i,maxVoucherCumulative:n}),PE({cumulativeAmount:a,maxVoucherCumulative:n})}function IE(e){let{channel:t,maxVoucherCumulative:n,receipt:r,spent:i}=e;if(!r||r.channelId!==t?.channelId)return i;FE({channel:t,maxVoucherCumulative:n,receipt:r});let a=BigInt(r.spent);return i>a?i:a}function LE(e,t){return typeof e==`bigint`?e:F(e,t)}function RE(e){let{contextDepositRaw:t,maxDeposit:n,requestAmount:r,suggestedDepositRaw:i}=e;if(BE(r,n),t!==void 0){let e=BigInt(t);if(e<r)throw Error(`opening deposit ${e} below request amount ${r}`);return e}let a=i===void 0?void 0:BigInt(i),o=a!==void 0&&a>r?a:r;return n===void 0||o<n?o:n}function zE(e){let{deposit:t,maxDeposit:n,requiredCumulative:r,suggestedDeposit:i,topUpAmount:a}=e;if(r<=t)return 0n;PE({cumulativeAmount:r,maxVoucherCumulative:n??null});let o=r-t,s=a??i??o,c=s>o?s:o;if(n==null)return c;let l=n-t;return c<l?c:l}function BE(e,t){PE({cumulativeAmount:e,maxVoucherCumulative:t??null})}function VE(e){let{channel:t,currentSocket:n,lastChallenge:r}=e;if(!t?.opened)return;let i=n?.challenge??r,a=n?.channelId??t.channelId;if(!i)throw Error(`Cannot close session: no challenge available. This usually means close() was called on a SessionManager instance that was recreated after the session was opened. Use the same SessionManager instance that opened the session, or make a request first to receive a fresh 402 challenge.`);if(!a)throw Error(`Cannot close session: no channel ID available. The session may not have been fully opened.`);return{challenge:i,channel:t,channelId:a}}function HE(e){let{cumulativeAmount:t,spent:n}=e;return t>n?t:n}function UE(e){let{cumulativeAmount:t,readySpent:n,spent:r}=e;if(!YT(n))throw Error(`close-ready spent is not a uint96 amount`);if(n<r)throw Error(`close-ready spent is below locally confirmed spend`);if(n>HE({cumulativeAmount:t,spent:r}))throw Error(`close-ready spent exceeds local voucher state`)}function WE(e){let{challengeId:t,channelId:n,expectedCloseAmount:r,minimumSpent:i=0n,receipt:a}=e,o=XT(r),s=XT(a.spent);return o===void 0||s===void 0||!YT(i)?!1:!!a.txHash&&a.challengeId===t&&a.channelId===n&&a.acceptedCumulative===r&&s>=i&&s<=o}function GE(e){return DE({challengeId:e.challengeId,channelId:e.entry.channelId,descriptor:e.entry.descriptor,acceptedCumulative:e.entry.cumulativeAmount.toString(),deposit:e.entry.deposit.toString(),spent:e.spent,units:e.units})}function KE(){return{channel:null,lastChallenge:null,lastUrl:null,spent:0n,socketSession:null,state:eD}}function qE(e){let{maxVoucherCumulative:t,receipt:n,runtime:r}=e;r.spent=IE({channel:r.channel,maxVoucherCumulative:t,receipt:n,spent:r.spent}),n&&r.channel?.channelId===n.channelId&&kE(r,{type:`receiptAccepted`,receipt:n,entry:r.channel})}function JE(e,t){return DE({challengeId:e.challengeId,channelId:e.channelId,descriptor:t.descriptor,acceptedCumulative:e.acceptedCumulative,deposit:t.deposit.toString(),spent:e.spent,units:e.units??0})}function YE(e){let{challengeId:t,channelId:n,closeReadyReceipt:r,cumulativeAmount:i,deliveredChunks:a=0n,socketChallengeId:o,socketChannelId:s,spent:c,tickCost:l=0n}=e;if(c>i)throw Error(`locally confirmed spend exceeds local voucher state`);if(r&&r.challengeId===t&&r.channelId===n){let e=XT(r.spent);if(e===void 0)throw Error(`close-ready spent is not a uint96 amount`);return e>c?e:c}if(o===t&&s===n&&l>0n){let e=a*l,t=c>e?c:e;return t>i?i:t}return i}function XE(e){let{channel:t,channelId:n,challengeId:r,cumulativeAmount:i,spent:a,state:o}=e;if(!(!t||t.channelId!==n)&&(t.cumulativeAmount=i,r))return OE(o,{type:`activated`,challengeId:r,entry:t,spent:a.toString(),units:o.status===`active`?o.units:0}).state}function ZE(e){return{channel:e.channel===null?null:{entry:e.channel,cumulativeAmount:e.channel.cumulativeAmount,deposit:e.channel.deposit,opened:e.channel.opened},spent:e.spent,state:e.state}}function QE(e,t){return e.channel?(e.channel.entry.cumulativeAmount=e.channel.cumulativeAmount,e.channel.entry.deposit=e.channel.deposit,e.channel.entry.opened=e.channel.opened,{channel:e.channel.entry,spent:e.spent,state:e.state}):(t&&(t.opened=!1),{channel:null,spent:e.spent,state:e.state})}async function $E(e){let{activeSocket:t,currentSocket:n,target:r}=e,i=n.closeReadyReceipt??await(async()=>(t.send(dE()),e.waitForCloseReady()))(),a=BigInt(i.spent);UE({cumulativeAmount:r.channel.cumulativeAmount,readySpent:a,spent:e.spent});let o=await e.createSessionCredential(r.challenge,{action:`close`,channelId:r.channelId,descriptor:r.channel.descriptor,cumulativeAmountRaw:a.toString()}),s=a.toString();n.expectedCloseAmount=s;try{let i=e.waitForReceipt(e=>WE({challengeId:r.challenge.id,channelId:r.channelId,expectedCloseAmount:s,minimumSpent:a,receipt:e}));t.send(uE(o));let c=await i;return t.close(),n.closeReadyReceipt=null,c}finally{n.expectedCloseAmount=null}}var eD,tD=L((()=>{_E(),EE(),eD={status:`idle`}}));function nD(e){let t=new Map,n=!1,r=[],i=e.readyState,a=(e,n,i)=>{let a=t.get(e);if(a||(a=new Set,t.set(e,a)),a.add({once:typeof i==`object`&&i.once===!0,value:n}),e===`message`&&r){let e=r;r=null;for(let t of e)s(`message`,t)}},o=(e,n)=>{let r=t.get(e);if(r)for(let e of r)e.value===n&&r.delete(e)};function s(e,a){if(a.type===`close`){if(n)return;n=!0,i=zD.CLOSED,r=null}if(a.type===`open`&&(i=zD.OPEN),a.type===`message`&&r){r.push(a);return}switch(a.type){case`close`:l.onclose?.(a);break;case`error`:l.onerror?.(a);break;case`message`:l.onmessage?.(a);break;case`open`:l.onopen?.(a)}let o=t.get(e);if(o)for(let e of Array.from(o))typeof e.value==`function`?e.value(a):e.value.handleEvent(a),e.once&&o.delete(e)}let c=null,l={addEventListener:a,close(t,n){e.close(t,n)},get bufferedAmount(){return e.bufferedAmount},get extensions(){return e.extensions},on(e,t){a(e,t)},onclose:null,onerror:null,get onmessage(){return c},set onmessage(e){if(c=e,e&&r){let e=r;r=null;for(let t of e)s(`message`,t)}},onopen:null,off(e,t){o(e,t)},get protocol(){return e.protocol},get readyState(){return i},removeEventListener:o,send(t){e.send(t)},get url(){return e.url}};return{emit:s,socket:l}}function rD(e){return{acceptedCumulative:BigInt(e.acceptedCumulative),deposit:BigInt(e.deposit),requiredCumulative:BigInt(e.requiredCumulative)}}function iD(e){let{amount:t,assertVoucherWithinLocalLimit:n,channel:r,decimals:i,lastChallenge:a,lastUrl:o}=e;if(!r?.opened)throw Error(`Cannot top up session: no open channel.`);if(!a)throw Error(`Cannot top up session: no challenge available. Make a request first.`);if(!o)throw Error(`Cannot top up session: no URL available. Call fetch(), sse(), or ws() first.`);let s=LE(t,i);if(s<=0n)throw Error(`Top-up amount must be greater than zero.`);return n(r.cumulativeAmount+s),{additionalDeposit:s,challenge:a,channelId:r.channelId,input:o}}function aD(e){let{additionalDeposit:t,channel:n,channelId:r,challengeId:i,currentState:a,knownDeposit:o,receipt:s,spent:c}=e;if(n?.channelId!==r)return;let l=o!==void 0&&o>n.deposit?o:n.deposit,u={...n,deposit:l+t};return s?{channel:u,state:JE(s,u)}:i?{channel:u,state:GE({challengeId:i,entry:u,spent:c.toString(),units:a.status===`active`?a.units:0})}:{channel:u}}async function oD(e){if(e.event.channelId!==e.expectedChannelId)return{status:`ignored`,reason:`channel-mismatch`};let t=rD(e.event);e.assertVoucherWithinLocalLimit(t.requiredCumulative),await e.topUpIfNeeded({challenge:e.challenge,input:e.input,channelId:e.expectedChannelId,deposit:t.deposit,requiredCumulative:t.requiredCumulative});let n=e.getChannel();if(!n||n.channelId!==e.expectedChannelId)return{status:`ignored`,reason:`missing-channel`};let r=n.cumulativeAmount>t.requiredCumulative?n.cumulativeAmount:ZT(t.requiredCumulative);return{status:`ready`,context:{action:`voucher`,channelId:e.expectedChannelId,descriptor:n.descriptor,cumulativeAmountRaw:r.toString()}}}function sD(e){return e.method===wx.tempo&&e.intent===Tx.session}function cD(e){return sD(e)&&Sx(e.request.methodDetails,Ex.sessionProtocol)===Dx.v2}function lD(e){return Sx(e.request.methodDetails,Ex.sessionSnapshot)}function uD(e,t,n){let r=e instanceof Request?e.headers:void 0;return{...t,headers:{...gw(r),...gw(t?.headers),[Y.authorization]:n}}}function dD(e){try{let t=typeof location>`u`?void 0:location.href,n=e instanceof Request?new URL(e.url):e instanceof URL?new URL(e):new URL(String(e),t);return n.hash=``,n}catch{return e}}function fD(e){let t=new URL(e.toString());return t.protocol===`ws:`&&(t.protocol=`http:`),t.protocol===`wss:`&&(t.protocol=`https:`),t}async function pD(e){let t=await e.text().catch(()=>``);if(!t)return``;if(!e.headers.get(`Content-Type`)?.includes(`application/problem+json`))return t;try{return JSON.parse(t).detail??t}catch{return t}}async function mD(e){let{channel:t,channelId:n}=e;if(!t?.descriptor||t.channelId!==n)throw Error(`Cannot top up session: no local channel descriptor available.`);let r=await hD({challenge:e.challenge,context:{action:`topUp`,channelId:n,descriptor:t.descriptor,additionalDepositRaw:e.additionalDeposit.toString()},createSessionCredential:e.createSessionCredential,fetch:e.fetch,input:e.input});if(!r.ok)throw Error(`Top-up POST failed with status ${r.status}`);let i=r.headers.get(Y.paymentReceipt);return i?oE(i):void 0}async function hD(e){let t=async t=>e.fetch(dD(e.input),{method:`POST`,headers:{[Y.authorization]:await e.createSessionCredential(t,e.context)}}),n=await t(e.challenge);if(n.status!==402)return n;let r=tS(n).find(cD);return r?t(r):n}async function gD(e){let t=_D({channel:e.getChannel(),response:e.response});if(!t)return;let{channel:n,challenge:r,snapshot:i}=t;e.setChallenge(r);let a=BigInt(i.requiredCumulative),o=n.cumulativeAmount;await e.topUpIfNeeded({challenge:r,input:e.input,channelId:i.channelId,deposit:BigInt(i.deposit),requiredCumulative:a});let s=e.getChannel();if(!s?.descriptor||s.channelId!==i.channelId)return;let c=s.cumulativeAmount>a?s.cumulativeAmount:a,l=()=>e.restoreCumulative(i.channelId,o),u;try{let t=await e.createSessionCredential(r,{action:`voucher`,channelId:i.channelId,descriptor:s.descriptor,cumulativeAmountRaw:c.toString()});u=await e.fetch(e.input,uD(e.input,e.init,t))}catch(e){throw await l(),e}return!u.ok&&!u.headers.get(Y.paymentReceipt)&&await l(),u}function _D(e){let t=tS(e.response).find(cD);if(!t)return;let n=lD(t);if(!n)return;let{channel:r}=e;if(!(!r?.descriptor||r.channelId!==n.channelId))return{channel:r,challenge:t,snapshot:n}}async function vD(e){if(!e.lastUrl)throw Error(`Cannot close session: no URL available. This usually means close() was called on a SessionManager instance that was recreated after the session was opened. Use the same SessionManager instance that opened the session, or call fetch()/sse() before close().`);let t=e.target.challenge,n=e.signedCloseAmount,r=async(r,i=!1)=>{t=r,n=(i?e.resolveSignedCloseAmount?.(r):void 0)??e.signedCloseAmount;let a=await e.createSessionCredential(r,{action:`close`,channelId:e.target.channelId,descriptor:e.target.channel.descriptor,cumulativeAmountRaw:n});return e.fetch(e.lastUrl,{method:`POST`,headers:{[Y.authorization]:a}})},i=await r(e.target.challenge);if(i.status===402){let t=tS(i).find(cD);t&&(e.setChallenge?.(t),i=await r(t,!0))}if(!i.ok){let e=await pD(i),t=i.headers.get(Y.wwwAuthenticate)??``;throw Error(`Close request failed with status ${i.status}${e?`: ${e}`:``}${t?` [${Y.wwwAuthenticate}: ${t}]`:``}`)}let a=i.headers.get(Y.paymentReceipt);if(!a)return;let o=oE(a);if(!o.txHash||!j.validate(o.txHash,{strict:!0})||j.size(o.txHash)!==32||!WE({challengeId:t.id,channelId:e.target.channelId,expectedCloseAmount:n,minimumSpent:e.getMinimumSpent?.()??0n,receipt:o}))throw Error(`Session close response included a mismatched payment receipt.`);return o}async function yD(e,t,n){let{onReceipt:r,signal:i,...a}=t??{},o={...a,headers:{...gw(a.headers),Accept:`text/event-stream`},...i?{signal:i}:{}},s=await n.doFetch(e,o);return!sE(s)&&n.getChannel()?.opened&&(s=await n.doFetch(e,o)),bD(e,s,{onReceipt:r,signal:i},n)}function bD(e,t,n,r){if(!sE(t))throw Error(`SSE response is not an event stream.`);if(!t.body)throw Error(`Response has no body.`);let i=r.getChallenge();return xD({onNeedVoucher:t=>ED({challenge:i,driver:r,input:e},t),onReceipt(e){r.acceptReceipt(e),n?.onReceipt?.(e)},response:t,signal:n?.signal})}async function*xD(e){for await(let t of SD(e))t.data!==void 0&&(yield t.data)}async function*SD(e){if(!e.response.body)throw Error(`Response has no body.`);let t=e.response.body.getReader(),n=new TextDecoder,r=``,i=!1,a=()=>{t.cancel(e.signal?.reason).catch(()=>void 0)};e.signal?.addEventListener(`abort`,a,{once:!0}),e.signal?.aborted&&a();try{for(;!e.signal?.aborted;){let{done:a,value:o}=await t.read();for(a?(i=!0,r+=n.decode()):r+=n.decode(o,{stream:!0});;){let t=CD(r,a);if(!t)break;let n=t.index+t.length,i=r.slice(0,t.index),o=r.slice(0,n);if(r=r.slice(n),!i.trim())continue;let s=cE(i.replace(/\r\n|\r/g,`
227
- `));if(!s){yield{raw:o};continue}switch(s.type){case`message`:yield{data:s.data,raw:o};break;case`payment-need-voucher`:await e.onNeedVoucher(s.data);break;case`payment-receipt`:e.onReceipt(s.data)}}if(a)break}}finally{e.signal?.removeEventListener(`abort`,a),i||await t.cancel().catch(()=>void 0),t.releaseLock()}}function CD(e,t){for(let n=0;n<e.length;n++){let r=wD(e,n,t);if(!r)continue;let i=wD(e,n+r,t);if(i)return{index:n,length:r+i};n+=r-1}}function wD(e,t,n){return e[t]===`
226
+ `);switch(t){case`message`:return{type:`message`,data:r};case`payment-need-voucher`:{let e=xE(r);return gE(e)?{type:`payment-need-voucher`,data:e}:null}case`payment-receipt`:{let e=xE(r);return _E(e)?{type:`payment-receipt`,data:e}:null}default:return{type:`message`,data:r}}}function xE(e){try{return JSON.parse(e)}catch{return null}}function SE(e){return JSON.stringify({mpp:`authorization`,authorization:e})}function CE(){return JSON.stringify({mpp:`payment-close-request`})}function wE(e){let t=TE(e);return t?t.mpp===`authorization`&&typeof t.authorization==`string`?{mpp:`authorization`,authorization:t.authorization}:t.mpp===`message`&&typeof t.data==`string`?{mpp:`message`,data:t.data}:t.mpp===`payment-close-request`?{mpp:`payment-close-request`}:t.mpp===`payment-close-ready`&&_E(t.data)?{mpp:`payment-close-ready`,data:t.data}:t.mpp===`payment-error`&&typeof t.status==`number`&&typeof t.message==`string`?{mpp:`payment-error`,status:t.status,message:t.message}:t.mpp===`payment-need-voucher`&&gE(t.data)?{mpp:`payment-need-voucher`,data:t.data}:t.mpp===`payment-receipt`&&_E(t.data)?{mpp:`payment-receipt`,data:t.data}:null:null}function TE(e){try{let t=JSON.parse(e);return typeof t!=`object`||!t?null:t}catch{return null}}var EE,DE,OE,kE=F((()=>{EE=(1n<<96n)-1n,DE=new Set([`open`,`topUp`,`voucher`,`close`]),OE=`0x4d50500000000000000000000000000000000000`}));function AE(e){return LE.encode(e)}function jE(e){return LE.decode(e)}var ME,NE,PE,FE,IE,LE,RE=F((()=>{UC(),qx(),ME=J.custom(e=>typeof e==`string`&&pe(e,{strict:!1})),NE=J.custom(e=>typeof e==`string`&&/^0x[0-9a-fA-F]{64}$/.test(e)),PE=J.custom(e=>typeof e==`string`&&/^0x[0-9a-fA-F]+$/.test(e)),FE=J.object({authorizedSigner:ME,expiringNonceHash:NE,operator:ME,payee:ME,payer:ME,salt:NE,token:ME}),IE=J.object({acceptedCumulative:J.string(),chainId:J.number(),channelId:NE,closeRequestedAt:J.optional(J.string()),deposit:J.string(),descriptor:FE,escrow:ME,highestVoucher:J.optional(J.object({channelId:NE,cumulativeAmount:J.string(),signature:PE})),requiredCumulative:J.string(),settled:J.string(),spent:J.string(),units:J.optional(J.number())}),LE=VC(IE)}));function zE(e){return{status:`active`,...e}}function BE(e,t){switch(t.type){case`challengeReceived`:return e.status===`closing`||e.status===`closed`?GE(e,t):{state:{status:`challenged`,challengeId:t.challengeId},effects:[]};case`challenge`:return e.status!==`idle`&&e.status!==`active`?GE(e,t):t.snapshot?{state:{status:`hydrating`,challengeId:t.challengeId,snapshot:t.snapshot},effects:[{type:`hydrate`,snapshot:t.snapshot}]}:{state:{status:`opening`,challengeId:t.challengeId},effects:[{type:`open`}]};case`hydrated`:return e.status===`hydrating`?{state:UE(e.challengeId,t.snapshot),effects:[]}:GE(e,t);case`activated`:return e.status===`closing`||e.status===`closed`?GE(e,t):{state:rD({challengeId:t.challengeId,entry:t.entry,spent:t.spent,units:t.units??0}),effects:[]};case`opened`:return e.status===`opening`?{state:WE(e.challengeId,t.receipt,t.descriptor,t.deposit),effects:[]}:GE(e,t);case`receiptAccepted`:return e.status===`closing`||e.status===`closed`?GE(e,t):{state:oD(t.receipt,t.entry),effects:[]};case`needVoucher`:return e.status===`active`?HE({challengeId:e.challengeId,descriptor:t.descriptor,event:t.event}):GE(e,t);case`topUpStarted`:return e.status===`voucherNeeded`?{state:{status:`toppingUp`,challengeId:e.challengeId,channelId:e.channelId,descriptor:e.descriptor,deposit:e.deposit},effects:[]}:GE(e,t);case`voucherAccepted`:return e.status!==`voucherNeeded`&&e.status!==`toppingUp`?GE(e,t):{state:WE(e.challengeId,t.receipt,e.descriptor,t.deposit??e.deposit),effects:[]};case`settleStarted`:return e.status===`active`?{state:{status:`settling`,channelId:e.channelId,descriptor:e.descriptor,deposit:e.deposit},effects:[{type:`settle`,channelId:e.channelId}]}:GE(e,t);case`settled`:return e.status===`settling`?{state:WE(t.receipt.challengeId,t.receipt,e.descriptor,t.deposit??e.deposit),effects:[]}:GE(e,t);case`closeRequested`:return e.status===`active`?{state:{status:`closeRequested`,channelId:e.channelId,descriptor:e.descriptor},effects:[{type:`requestClose`,channelId:e.channelId}]}:GE(e,t);case`withdrawable`:return e.status===`closeRequested`?{state:{status:`withdrawable`,channelId:e.channelId,descriptor:e.descriptor},effects:[{type:`withdraw`,channelId:e.channelId}]}:GE(e,t);case`closeStarted`:return e.status!==`active`&&e.status!==`withdrawable`&&e.status!==`closeRequested`?GE(e,t):{state:{status:`closing`,channelId:e.channelId,descriptor:e.descriptor},effects:[{type:`close`,channelId:e.channelId}]};case`closed`:return e.status!==`closing`&&e.status!==`withdrawable`?GE(e,t):{state:{status:`closed`,channelId:e.channelId,descriptor:e.descriptor},effects:[]}}}function VE(e,t){let n=BE(e.state,t);return e.state=n.state,n}function HE(e){let{challengeId:t,descriptor:n,event:r}=e,i=BigInt(r.requiredCumulative),a=BigInt(r.deposit);return i>a?{state:{status:`toppingUp`,challengeId:t,channelId:r.channelId,descriptor:n,deposit:r.deposit},effects:[{type:`topUp`,channelId:r.channelId,amount:(i-a).toString()}]}:{state:{status:`voucherNeeded`,challengeId:t,channelId:r.channelId,descriptor:n,requiredCumulative:r.requiredCumulative,deposit:r.deposit},effects:[{type:`voucher`}]}}function UE(e,t){return zE({challengeId:e,channelId:t.channelId,descriptor:t.descriptor,acceptedCumulative:t.acceptedCumulative,deposit:t.deposit,spent:t.spent,units:t.units??0})}function WE(e,t,n,r){return zE({challengeId:e,channelId:t.channelId,descriptor:n,acceptedCumulative:t.acceptedCumulative,deposit:r,spent:t.spent,units:t.units??0})}function GE(e,t){throw Error(`Invalid session transition: ${e.status} + ${t.type}`)}function KE(e){let{cumulativeAmount:t,maxVoucherCumulative:n}=e;if(n!==null&&!(t<=n))throw Error(`requested voucher amount ${t} exceeds local maxDeposit ${n}`)}function qE(e){let{channel:t,maxVoucherCumulative:n,receipt:r}=e;if(!t||r.channelId!==t.channelId)return;let i=BigInt(r.acceptedCumulative),a=BigInt(r.spent);if(a>i)throw Error(`receipt spent exceeds accepted cumulative voucher amount`);if(i>t.cumulativeAmount)throw Error(`receipt accepted cumulative exceeds local voucher state`);if(a>t.cumulativeAmount)throw Error(`receipt spent exceeds local voucher state`);KE({cumulativeAmount:i,maxVoucherCumulative:n}),KE({cumulativeAmount:a,maxVoucherCumulative:n})}function JE(e){let{channel:t,maxVoucherCumulative:n,receipt:r,spent:i}=e;if(!r||r.channelId!==t?.channelId)return i;qE({channel:t,maxVoucherCumulative:n,receipt:r});let a=BigInt(r.spent);return i>a?i:a}function YE(e,t){return typeof e==`bigint`?e:N(e,t)}function XE(e){let{contextDepositRaw:t,maxDeposit:n,requestAmount:r,suggestedDepositRaw:i}=e;if(QE(r,n),t!==void 0){let e=BigInt(t);if(e<r)throw Error(`opening deposit ${e} below request amount ${r}`);return e}let a=i===void 0?void 0:BigInt(i),o=a!==void 0&&a>r?a:r;return n===void 0||o<n?o:n}function ZE(e){let{deposit:t,maxDeposit:n,requiredCumulative:r,suggestedDeposit:i,topUpAmount:a}=e;if(r<=t)return 0n;KE({cumulativeAmount:r,maxVoucherCumulative:n??null});let o=r-t,s=a??i??o,c=s>o?s:o;if(n==null)return c;let l=n-t;return c<l?c:l}function QE(e,t){KE({cumulativeAmount:e,maxVoucherCumulative:t??null})}function $E(e){let{channel:t,currentSocket:n,lastChallenge:r}=e;if(!t?.opened)return;let i=n?.challenge??r,a=n?.channelId??t.channelId;if(!i)throw Error(`Cannot close session: no challenge available. This usually means close() was called on a SessionManager instance that was recreated after the session was opened. Use the same SessionManager instance that opened the session, or make a request first to receive a fresh 402 challenge.`);if(!a)throw Error(`Cannot close session: no channel ID available. The session may not have been fully opened.`);return{challenge:i,channel:t,channelId:a}}function eD(e){let{cumulativeAmount:t,spent:n}=e;return t>n?t:n}function tD(e){let{cumulativeAmount:t,readySpent:n,spent:r}=e;if(!sE(n))throw Error(`close-ready spent is not a uint96 amount`);if(n<r)throw Error(`close-ready spent is below locally confirmed spend`);if(n>eD({cumulativeAmount:t,spent:r}))throw Error(`close-ready spent exceeds local voucher state`)}function nD(e){let{challengeId:t,channelId:n,expectedCloseAmount:r,minimumSpent:i=0n,receipt:a}=e,o=cE(r),s=cE(a.spent);return o===void 0||s===void 0||!sE(i)?!1:!!a.txHash&&a.challengeId===t&&a.channelId===n&&a.acceptedCumulative===r&&s>=i&&s<=o}function rD(e){return zE({challengeId:e.challengeId,channelId:e.entry.channelId,descriptor:e.entry.descriptor,acceptedCumulative:e.entry.cumulativeAmount.toString(),deposit:e.entry.deposit.toString(),spent:e.spent,units:e.units})}function iD(){return{channel:null,lastChallenge:null,lastUrl:null,spent:0n,socketSession:null,state:fD}}function aD(e){let{maxVoucherCumulative:t,receipt:n,runtime:r}=e;r.spent=JE({channel:r.channel,maxVoucherCumulative:t,receipt:n,spent:r.spent}),n&&r.channel?.channelId===n.channelId&&VE(r,{type:`receiptAccepted`,receipt:n,entry:r.channel})}function oD(e,t){return zE({challengeId:e.challengeId,channelId:e.channelId,descriptor:t.descriptor,acceptedCumulative:e.acceptedCumulative,deposit:t.deposit.toString(),spent:e.spent,units:e.units??0})}function sD(e){let{challengeId:t,channelId:n,closeReadyReceipt:r,cumulativeAmount:i,deliveredChunks:a=0n,socketChallengeId:o,socketChannelId:s,spent:c,tickCost:l=0n}=e;if(c>i)throw Error(`locally confirmed spend exceeds local voucher state`);if(r&&r.challengeId===t&&r.channelId===n){let e=cE(r.spent);if(e===void 0)throw Error(`close-ready spent is not a uint96 amount`);return e>c?e:c}if(o===t&&s===n&&l>0n){let e=a*l,t=c>e?c:e;return t>i?i:t}return i}function cD(e){let{channel:t,channelId:n,challengeId:r,cumulativeAmount:i,spent:a,state:o}=e;if(!(!t||t.channelId!==n)&&(t.cumulativeAmount=i,r))return BE(o,{type:`activated`,challengeId:r,entry:t,spent:a.toString(),units:o.status===`active`?o.units:0}).state}function lD(e){return{channel:e.channel===null?null:{entry:e.channel,cumulativeAmount:e.channel.cumulativeAmount,deposit:e.channel.deposit,opened:e.channel.opened},spent:e.spent,state:e.state}}function uD(e,t){return e.channel?(e.channel.entry.cumulativeAmount=e.channel.cumulativeAmount,e.channel.entry.deposit=e.channel.deposit,e.channel.entry.opened=e.channel.opened,{channel:e.channel.entry,spent:e.spent,state:e.state}):(t&&(t.opened=!1),{channel:null,spent:e.spent,state:e.state})}async function dD(e){let{activeSocket:t,currentSocket:n,target:r}=e,i=n.closeReadyReceipt??await(async()=>(t.send(CE()),e.waitForCloseReady()))(),a=BigInt(i.spent);tD({cumulativeAmount:r.channel.cumulativeAmount,readySpent:a,spent:e.spent});let o=await e.createSessionCredential(r.challenge,{action:`close`,channelId:r.channelId,descriptor:r.channel.descriptor,cumulativeAmountRaw:a.toString()}),s=a.toString();n.expectedCloseAmount=s;try{let i=e.waitForReceipt(e=>nD({challengeId:r.challenge.id,channelId:r.channelId,expectedCloseAmount:s,minimumSpent:a,receipt:e}));t.send(SE(o));let c=await i;return t.close(),n.closeReadyReceipt=null,c}finally{n.expectedCloseAmount=null}}var fD,pD=F((()=>{kE(),RE(),fD={status:`idle`}}));function mD(e){let t=new Map,n=!1,r=[],i=e.readyState,a=(e,n,i)=>{let a=t.get(e);if(a||(a=new Set,t.set(e,a)),a.add({once:typeof i==`object`&&i.once===!0,value:n}),e===`message`&&r){let e=r;r=null;for(let t of e)s(`message`,t)}},o=(e,n)=>{let r=t.get(e);if(r)for(let e of r)e.value===n&&r.delete(e)};function s(e,a){if(a.type===`close`){if(n)return;n=!0,i=ZD.CLOSED,r=null}if(a.type===`open`&&(i=ZD.OPEN),a.type===`message`&&r){r.push(a);return}switch(a.type){case`close`:l.onclose?.(a);break;case`error`:l.onerror?.(a);break;case`message`:l.onmessage?.(a);break;case`open`:l.onopen?.(a)}let o=t.get(e);if(o)for(let e of Array.from(o))typeof e.value==`function`?e.value(a):e.value.handleEvent(a),e.once&&o.delete(e)}let c=null,l={addEventListener:a,close(t,n){e.close(t,n)},get bufferedAmount(){return e.bufferedAmount},get extensions(){return e.extensions},on(e,t){a(e,t)},onclose:null,onerror:null,get onmessage(){return c},set onmessage(e){if(c=e,e&&r){let e=r;r=null;for(let t of e)s(`message`,t)}},onopen:null,off(e,t){o(e,t)},get protocol(){return e.protocol},get readyState(){return i},removeEventListener:o,send(t){e.send(t)},get url(){return e.url}};return{emit:s,socket:l}}function hD(e){return{acceptedCumulative:BigInt(e.acceptedCumulative),deposit:BigInt(e.deposit),requiredCumulative:BigInt(e.requiredCumulative)}}function gD(e){let{amount:t,assertVoucherWithinLocalLimit:n,channel:r,decimals:i,lastChallenge:a,lastUrl:o}=e;if(!r?.opened)throw Error(`Cannot top up session: no open channel.`);if(!a)throw Error(`Cannot top up session: no challenge available. Make a request first.`);if(!o)throw Error(`Cannot top up session: no URL available. Call fetch(), sse(), or ws() first.`);let s=YE(t,i);if(s<=0n)throw Error(`Top-up amount must be greater than zero.`);return n(r.cumulativeAmount+s),{additionalDeposit:s,challenge:a,channelId:r.channelId,input:o}}function _D(e){let{additionalDeposit:t,channel:n,channelId:r,challengeId:i,currentState:a,knownDeposit:o,receipt:s,spent:c}=e;if(n?.channelId!==r)return;let l=o!==void 0&&o>n.deposit?o:n.deposit,u={...n,deposit:l+t};return s?{channel:u,state:oD(s,u)}:i?{channel:u,state:rD({challengeId:i,entry:u,spent:c.toString(),units:a.status===`active`?a.units:0})}:{channel:u}}async function vD(e){if(e.event.channelId!==e.expectedChannelId)return{status:`ignored`,reason:`channel-mismatch`};let t=hD(e.event);e.assertVoucherWithinLocalLimit(t.requiredCumulative),await e.topUpIfNeeded({challenge:e.challenge,input:e.input,channelId:e.expectedChannelId,deposit:t.deposit,requiredCumulative:t.requiredCumulative});let n=e.getChannel();if(!n||n.channelId!==e.expectedChannelId)return{status:`ignored`,reason:`missing-channel`};let r=n.cumulativeAmount>t.requiredCumulative?n.cumulativeAmount:lE(t.requiredCumulative);return{status:`ready`,context:{action:`voucher`,channelId:e.expectedChannelId,descriptor:n.descriptor,cumulativeAmountRaw:r.toString()}}}function yD(e){return e.method===Dx.tempo&&e.intent===Ox.session}function bD(e){return yD(e)&&Tx(e.request.methodDetails,kx.sessionProtocol)===Ax.v2}function xD(e){return Tx(e.request.methodDetails,kx.sessionSnapshot)}function SD(e,t,n){let r=e instanceof Request?e.headers:void 0;return{...t,headers:{...yw(r),...yw(t?.headers),[q.authorization]:n}}}function CD(e){try{let t=typeof location>`u`?void 0:location.href,n=e instanceof Request?new URL(e.url):e instanceof URL?new URL(e):new URL(String(e),t);return n.hash=``,n}catch{return e}}function wD(e){let t=new URL(e.toString());return t.protocol===`ws:`&&(t.protocol=`http:`),t.protocol===`wss:`&&(t.protocol=`https:`),t}async function TD(e){let t=await e.text().catch(()=>``);if(!t)return``;if(!e.headers.get(`Content-Type`)?.includes(`application/problem+json`))return t;try{return JSON.parse(t).detail??t}catch{return t}}async function ED(e){let{channel:t,channelId:n}=e;if(!t?.descriptor||t.channelId!==n)throw Error(`Cannot top up session: no local channel descriptor available.`);let r=await DD({challenge:e.challenge,context:{action:`topUp`,channelId:n,descriptor:t.descriptor,additionalDepositRaw:e.additionalDeposit.toString()},createSessionCredential:e.createSessionCredential,fetch:e.fetch,input:e.input});if(!r.ok)throw Error(`Top-up POST failed with status ${r.status}`);let i=r.headers.get(q.paymentReceipt);return i?vE(i):void 0}async function DD(e){let t=async t=>e.fetch(CD(e.input),{method:`POST`,headers:{[q.authorization]:await e.createSessionCredential(t,e.context)}}),n=await t(e.challenge);if(n.status!==402)return n;let r=iS(n).find(bD);return r?t(r):n}async function OD(e){let t=kD({channel:e.getChannel(),response:e.response});if(!t)return;let{channel:n,challenge:r,snapshot:i}=t;e.setChallenge(r);let a=BigInt(i.requiredCumulative),o=n.cumulativeAmount;await e.topUpIfNeeded({challenge:r,input:e.input,channelId:i.channelId,deposit:BigInt(i.deposit),requiredCumulative:a});let s=e.getChannel();if(!s?.descriptor||s.channelId!==i.channelId)return;let c=s.cumulativeAmount>a?s.cumulativeAmount:a,l=()=>e.restoreCumulative(i.channelId,o),u;try{let t=await e.createSessionCredential(r,{action:`voucher`,channelId:i.channelId,descriptor:s.descriptor,cumulativeAmountRaw:c.toString()});u=await e.fetch(e.input,SD(e.input,e.init,t))}catch(e){throw await l(),e}return!u.ok&&!u.headers.get(q.paymentReceipt)&&await l(),u}function kD(e){let t=iS(e.response).find(bD);if(!t)return;let n=xD(t);if(!n)return;let{channel:r}=e;if(!(!r?.descriptor||r.channelId!==n.channelId))return{channel:r,challenge:t,snapshot:n}}async function AD(e){if(!e.lastUrl)throw Error(`Cannot close session: no URL available. This usually means close() was called on a SessionManager instance that was recreated after the session was opened. Use the same SessionManager instance that opened the session, or call fetch()/sse() before close().`);let t=e.target.challenge,n=e.signedCloseAmount,r=async(r,i=!1)=>{t=r,n=(i?e.resolveSignedCloseAmount?.(r):void 0)??e.signedCloseAmount;let a=await e.createSessionCredential(r,{action:`close`,channelId:e.target.channelId,descriptor:e.target.channel.descriptor,cumulativeAmountRaw:n});return e.fetch(e.lastUrl,{method:`POST`,headers:{[q.authorization]:a}})},i=await r(e.target.challenge);if(i.status===402){let t=iS(i).find(bD);t&&(e.setChallenge?.(t),i=await r(t,!0))}if(!i.ok){let e=await TD(i),t=i.headers.get(q.wwwAuthenticate)??``;throw Error(`Close request failed with status ${i.status}${e?`: ${e}`:``}${t?` [${q.wwwAuthenticate}: ${t}]`:``}`)}let a=i.headers.get(q.paymentReceipt);if(!a)return;let o=vE(a);if(!o.txHash||!A.validate(o.txHash,{strict:!0})||A.size(o.txHash)!==32||!nD({challengeId:t.id,channelId:e.target.channelId,expectedCloseAmount:n,minimumSpent:e.getMinimumSpent?.()??0n,receipt:o}))throw Error(`Session close response included a mismatched payment receipt.`);return o}async function jD(e,t,n){let{onReceipt:r,signal:i,...a}=t??{},o={...a,headers:{...yw(a.headers),Accept:`text/event-stream`},...i?{signal:i}:{}},s=await n.doFetch(e,o);return!yE(s)&&n.getChannel()?.opened&&(s=await n.doFetch(e,o)),MD(e,s,{onReceipt:r,signal:i},n)}function MD(e,t,n,r){if(!yE(t))throw Error(`SSE response is not an event stream.`);if(!t.body)throw Error(`Response has no body.`);let i=r.getChallenge();return ND({onNeedVoucher:t=>RD({challenge:i,driver:r,input:e},t),onReceipt(e){r.acceptReceipt(e),n?.onReceipt?.(e)},response:t,signal:n?.signal})}async function*ND(e){for await(let t of PD(e))t.data!==void 0&&(yield t.data)}async function*PD(e){if(!e.response.body)throw Error(`Response has no body.`);let t=e.response.body.getReader(),n=new TextDecoder,r=``,i=!1,a=()=>{t.cancel(e.signal?.reason).catch(()=>void 0)};e.signal?.addEventListener(`abort`,a,{once:!0}),e.signal?.aborted&&a();try{for(;!e.signal?.aborted;){let{done:a,value:o}=await t.read();for(a?(i=!0,r+=n.decode()):r+=n.decode(o,{stream:!0});;){let t=FD(r,a);if(!t)break;let n=t.index+t.length,i=r.slice(0,t.index),o=r.slice(0,n);if(r=r.slice(n),!i.trim())continue;let s=bE(i.replace(/\r\n|\r/g,`
227
+ `));if(!s){yield{raw:o};continue}switch(s.type){case`message`:yield{data:s.data,raw:o};break;case`payment-need-voucher`:await e.onNeedVoucher(s.data);break;case`payment-receipt`:e.onReceipt(s.data)}}if(a)break}}finally{e.signal?.removeEventListener(`abort`,a),i||await t.cancel().catch(()=>void 0),t.releaseLock()}}function FD(e,t){for(let n=0;n<e.length;n++){let r=ID(e,n,t);if(!r)continue;let i=ID(e,n+r,t);if(i)return{index:n,length:r+i};n+=r-1}}function ID(e,t,n){return e[t]===`
228
228
  `?1:e[t]===`\r`?e[t+1]===`
229
- `?2:t+1===e.length&&!n?0:1:0}function TD(e){let t=new AbortController,n=()=>t.abort(e.signal?.reason);e.signal?.addEventListener(`abort`,n,{once:!0}),e.signal?.aborted&&n();let r=SD({...e,signal:t.signal}),i=new TextEncoder,a=new Headers(e.response.headers);a.delete(`content-length`);let o=()=>e.signal?.removeEventListener(`abort`,n),s=new Response(new ReadableStream({async pull(e){try{let t=await r.next();if(t.done)return o(),e.close();e.enqueue(i.encode(t.value.raw))}catch(e){throw o(),e}},async cancel(){o(),t.abort(),await r.return(void 0)}}),{headers:a,status:e.response.status,statusText:e.response.statusText});for(let t of[`redirected`,`type`,`url`])Object.defineProperty(s,t,{configurable:!0,get:()=>e.response[t]});return s}async function ED(e,t){let n=e.driver.getChannel();if(!n||!e.challenge)return;let r=await oD({assertVoucherWithinLocalLimit:e.driver.assertVoucherWithinLocalLimit,challenge:e.challenge,event:t,expectedChannelId:n.channelId,getChannel:e.driver.getChannel,input:e.input,topUpIfNeeded:e.driver.topUpIfNeeded});if(r.status!==`ready`)return;let i=await hD({challenge:e.challenge,context:r.context,createSessionCredential:e.driver.createSessionCredential,fetch:e.driver.fetch,input:e.input});if(!i.ok)throw Error(`Voucher POST failed with status ${i.status}`)}async function DD(e){let t=new URL(e.input.toString()),n=fD(t);e.onProbeUrl?.(n);let r=await e.fetch(n,{...e.probeInit,...e.signal?{signal:e.signal}:{}});if(r.status!==402)throw Error(`Expected a 402 payment challenge from ${n}, received ${r.status} instead.`);let i=tS(r).find(cD);if(!i)throw Error(`No payment challenge received from HTTP endpoint for this WebSocket URL. The server may not require payment or did not advertise a challenge.`);return{challenge:i,httpUrl:n,wsUrl:t}}async function OD(e){let t=await DD(e);return{...t,credential:await e.createSessionCredential(t.challenge,{})}}function kD(e){let{challenge:t,credential:n,socket:r}=e;return{challenge:t,channelId:VS(n).payload.channelId,closeReadyReceipt:null,deliveredChunks:0n,expectedCloseAmount:null,socket:r,tickCost:rE(t)}}function AD(e){let{challengeId:t,channelId:n,receipt:r}=e;return r.challengeId===t&&r.channelId===n}function jD(e){if(!AD(e))return`received mismatched payment-close-ready frame`;let t=XT(e.receipt.spent);if(t===void 0)return`received invalid payment-close-ready spend`;if(t>e.cumulativeAmount)return`received payment-close-ready beyond local voucher state`}function MD(e){let{challengeId:t,channelId:n,expectedCloseAmount:r,receipt:i}=e;if(!AD(e))return`received mismatched payment-receipt frame`;if(r!==null&&i.txHash&&!WE({challengeId:t,channelId:n,expectedCloseAmount:r,minimumSpent:BigInt(r),receipt:i}))return`received mismatched payment-close receipt frame`}async function ND(e){let{challenge:t,credential:n,options:r,WebSocket:i,wsUrl:a}=e,o=new i(a,r?.protocols),s=kD({challenge:t,credential:n,socket:o});e.setSocketSession(s);let c=nD(o),l=t=>{e.rejectReceipt(Error(t)),e.rejectCloseReady(Error(t)),(o.readyState===zD.CONNECTING||o.readyState===zD.OPEN)&&o.close(BD,t)};return o.addEventListener(`close`,t=>{s.socket=null,s.expectedCloseAmount=null,e.rejectReceipt(Error(`WebSocket closed before the payment flow completed.`)),e.rejectCloseReady(Error(`WebSocket closed before the payment flow completed.`)),c.emit(`close`,{code:t.code??1e3,reason:t.reason??``,type:`close`,wasClean:!0})}),o.addEventListener(`error`,()=>{c.emit(`error`,{type:`error`})}),o.addEventListener(`message`,async t=>{let n=typeof t.data==`string`?t.data:void 0;n&&await FD({driver:e,failSocketFlow:l,managedEmit:c.emit,message:n,rawSocket:o,socketState:s})}),r?.signal?.addEventListener(`abort`,()=>{e.rejectReceipt(Error(`WebSocket payment flow aborted.`)),e.rejectCloseReady(Error(`WebSocket payment flow aborted.`)),o.close()},{once:!0}),await PD(o,c.emit,a),o.send(uE(n)),await e.waitForReceipt(),c.socket}function PD(e,t,n){return new Promise((r,i)=>{let a=()=>{e.removeEventListener(`error`,o),t(`open`,{type:`open`}),r()},o=()=>{e.removeEventListener(`open`,a),i(Error(`WebSocket connection to ${n} failed to open.`))};e.addEventListener(`open`,a,{once:!0}),e.addEventListener(`error`,o,{once:!0})})}async function FD(e){let t=fE(e.message);if(!t){e.managedEmit(`message`,{data:e.message,type:`message`});return}switch(t.mpp){case`authorization`:return;case`message`:e.socketState.deliveredChunks+=1n,e.managedEmit(`message`,{data:t.data,type:`message`});return;case`payment-close-ready`:ID(e,t.data);return;case`payment-error`:e.driver.rejectReceipt(Error(t.message)),e.driver.rejectCloseReady(Error(t.message));return;case`payment-need-voucher`:await LD(e,t.data);return;case`payment-receipt`:RD(e,t.data);return}}function ID(e,t){let n=e.driver.getChannel()?.cumulativeAmount??0n,r=jD({challengeId:e.driver.challenge.id,channelId:e.socketState.channelId,cumulativeAmount:n,receipt:t});if(r){e.failSocketFlow(r);return}e.driver.acceptReceipt(t),e.driver.options?.onReceipt?.(t),e.driver.settleCloseReady(t),e.managedEmit(`close`,{code:1e3,reason:`stream complete`,type:`close`,wasClean:!0})}async function LD(e,t){try{let n=e.driver.challenge;n.expires&&new Date(n.expires).getTime()<=Date.now()+VD&&(n=await e.driver.refreshChallenge(),e.driver.challenge=n,e.socketState.challenge=n);let r=await oD({assertVoucherWithinLocalLimit:e.driver.assertVoucherWithinLocalLimit,challenge:n,event:t,expectedChannelId:e.socketState.channelId,getChannel:e.driver.getChannel,input:e.driver.httpUrl,topUpIfNeeded:e.driver.topUpIfNeeded});if(r.status===`ignored`){e.failSocketFlow(r.reason===`channel-mismatch`?`received mismatched payment-need-voucher frame`:`cannot create voucher: no active channel`);return}let i=await e.driver.createSessionCredential(n,r.context);e.rawSocket.send(uE(i))}catch(t){e.failSocketFlow(t instanceof Error?t.message:`failed to create websocket voucher`)}}function RD(e,t){let n=MD({challengeId:e.driver.challenge.id,channelId:e.socketState.channelId,expectedCloseAmount:e.socketState.expectedCloseAmount,receipt:t});if(n){e.failSocketFlow(n);return}e.driver.acceptReceipt(t),e.driver.options?.onReceipt?.(t),e.driver.settleReceipt(t)}var zD,BD,VD,HD=L((()=>{uS(),eT(),Ox(),JS(),_E(),tD(),zD={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},BD=3008,VD=5e3})),UD,WD,GD,KD,qD,JD=L((()=>{UD={mainnet:4217,testnet:42431},WD={usdc:`0x20C000000000000000000000b9537d11c60E8b50`,pathUsd:`0x20c0000000000000000000000000000000000000`},GD={[UD.mainnet]:WD.usdc,[UD.testnet]:WD.pathUsd},KD={[UD.mainnet]:`0x33b901018174DDabE4841042ab76ba85D4e24f25`,[UD.testnet]:`0xe1c4d3dce17bc111181ddf716f75bae49e61a336`},qD={[UD.mainnet]:`https://rpc.tempo.xyz`,[UD.testnet]:`https://rpc.moderato.tempo.xyz`}})),YD=Ge({chainName:()=>dO,confirm:()=>oO,decodeMemo:()=>$D,fetchBalanceLines:()=>hO,fetchTokenInfo:()=>mO,fmtBalance:()=>sO,fmtChallengeValue:()=>eO,fmtRequestValue:()=>QD,isAgentEnvironment:()=>rO,isTempoAccount:()=>iO,isTestnet:()=>pO,link:()=>tO,mainnetTokens:()=>bO,networkRpcUrls:()=>_O,parseMethodOpts:()=>nO,pathUsd:()=>vO,pc:()=>Q,printRequestHeaders:()=>XD,printResponseHeaders:()=>ZD,prompt:()=>aO,resolveChain:()=>uO,resolveFundingNetwork:()=>lO,resolveRpcUrl:()=>cO,testnetTokens:()=>xO,usdc:()=>yO});function XD(e,t,n){let{pathname:r,host:i}=new URL(e);n(`> ${(t.method??`GET`).toUpperCase()} ${r} HTTP/1.1\n`),n(`> Host: ${i}\n`);for(let[e,r]of Object.entries(t.headers??{}))n(`> ${e}: ${r}\n`);n(`>
230
- `)}function ZD(e,t){if(!t.include&&t.verbose<2||t.silent)return;let n=`HTTP/1.1 ${e.status} ${e.statusText}`,r=t.verbose>=2?process.stderr:process.stdout,i=t.verbose>=2?`< `:``;r.write(`${i}${n}\n`);for(let[t,n]of e.headers)r.write(`${i}${t}: ${n}\n`);r.write(t.verbose>=2?`<
229
+ `?2:t+1===e.length&&!n?0:1:0}function LD(e){let t=new AbortController,n=()=>t.abort(e.signal?.reason);e.signal?.addEventListener(`abort`,n,{once:!0}),e.signal?.aborted&&n();let r=PD({...e,signal:t.signal}),i=new TextEncoder,a=new Headers(e.response.headers);a.delete(`content-length`);let o=()=>e.signal?.removeEventListener(`abort`,n),s=new Response(new ReadableStream({async pull(e){try{let t=await r.next();if(t.done)return o(),e.close();e.enqueue(i.encode(t.value.raw))}catch(e){throw o(),e}},async cancel(){o(),t.abort(),await r.return(void 0)}}),{headers:a,status:e.response.status,statusText:e.response.statusText});for(let t of[`redirected`,`type`,`url`])Object.defineProperty(s,t,{configurable:!0,get:()=>e.response[t]});return s}async function RD(e,t){let n=e.driver.getChannel();if(!n||!e.challenge)return;let r=await vD({assertVoucherWithinLocalLimit:e.driver.assertVoucherWithinLocalLimit,challenge:e.challenge,event:t,expectedChannelId:n.channelId,getChannel:e.driver.getChannel,input:e.input,topUpIfNeeded:e.driver.topUpIfNeeded});if(r.status!==`ready`)return;let i=await DD({challenge:e.challenge,context:r.context,createSessionCredential:e.driver.createSessionCredential,fetch:e.driver.fetch,input:e.input});if(!i.ok)throw Error(`Voucher POST failed with status ${i.status}`)}async function zD(e){let t=new URL(e.input.toString()),n=wD(t);e.onProbeUrl?.(n);let r=await e.fetch(n,{...e.probeInit,...e.signal?{signal:e.signal}:{}});if(r.status!==402)throw Error(`Expected a 402 payment challenge from ${n}, received ${r.status} instead.`);let i=iS(r).find(bD);if(!i)throw Error(`No payment challenge received from HTTP endpoint for this WebSocket URL. The server may not require payment or did not advertise a challenge.`);return{challenge:i,httpUrl:n,wsUrl:t}}async function BD(e){let t=await zD(e);return{...t,credential:await e.createSessionCredential(t.challenge,{})}}function VD(e){let{challenge:t,credential:n,socket:r}=e;return{challenge:t,channelId:WS(n).payload.channelId,closeReadyReceipt:null,deliveredChunks:0n,expectedCloseAmount:null,socket:r,tickCost:hE(t)}}function HD(e){let{challengeId:t,channelId:n,receipt:r}=e;return r.challengeId===t&&r.channelId===n}function UD(e){if(!HD(e))return`received mismatched payment-close-ready frame`;let t=cE(e.receipt.spent);if(t===void 0)return`received invalid payment-close-ready spend`;if(t>e.cumulativeAmount)return`received payment-close-ready beyond local voucher state`}function WD(e){let{challengeId:t,channelId:n,expectedCloseAmount:r,receipt:i}=e;if(!HD(e))return`received mismatched payment-receipt frame`;if(r!==null&&i.txHash&&!nD({challengeId:t,channelId:n,expectedCloseAmount:r,minimumSpent:BigInt(r),receipt:i}))return`received mismatched payment-close receipt frame`}async function GD(e){let{challenge:t,credential:n,options:r,WebSocket:i,wsUrl:a}=e,o=new i(a,r?.protocols),s=VD({challenge:t,credential:n,socket:o});e.setSocketSession(s);let c=mD(o),l=t=>{e.rejectReceipt(Error(t)),e.rejectCloseReady(Error(t)),(o.readyState===ZD.CONNECTING||o.readyState===ZD.OPEN)&&o.close(QD,t)};return o.addEventListener(`close`,t=>{s.socket=null,s.expectedCloseAmount=null,e.rejectReceipt(Error(`WebSocket closed before the payment flow completed.`)),e.rejectCloseReady(Error(`WebSocket closed before the payment flow completed.`)),c.emit(`close`,{code:t.code??1e3,reason:t.reason??``,type:`close`,wasClean:!0})}),o.addEventListener(`error`,()=>{c.emit(`error`,{type:`error`})}),o.addEventListener(`message`,async t=>{let n=typeof t.data==`string`?t.data:void 0;n&&await qD({driver:e,failSocketFlow:l,managedEmit:c.emit,message:n,rawSocket:o,socketState:s})}),r?.signal?.addEventListener(`abort`,()=>{e.rejectReceipt(Error(`WebSocket payment flow aborted.`)),e.rejectCloseReady(Error(`WebSocket payment flow aborted.`)),o.close()},{once:!0}),await KD(o,c.emit,a),o.send(SE(n)),await e.waitForReceipt(),c.socket}function KD(e,t,n){return new Promise((r,i)=>{let a=()=>{e.removeEventListener(`error`,o),t(`open`,{type:`open`}),r()},o=()=>{e.removeEventListener(`open`,a),i(Error(`WebSocket connection to ${n} failed to open.`))};e.addEventListener(`open`,a,{once:!0}),e.addEventListener(`error`,o,{once:!0})})}async function qD(e){let t=wE(e.message);if(!t){e.managedEmit(`message`,{data:e.message,type:`message`});return}switch(t.mpp){case`authorization`:return;case`message`:e.socketState.deliveredChunks+=1n,e.managedEmit(`message`,{data:t.data,type:`message`});return;case`payment-close-ready`:JD(e,t.data);return;case`payment-error`:e.driver.rejectReceipt(Error(t.message)),e.driver.rejectCloseReady(Error(t.message));return;case`payment-need-voucher`:await YD(e,t.data);return;case`payment-receipt`:XD(e,t.data);return}}function JD(e,t){let n=e.driver.getChannel()?.cumulativeAmount??0n,r=UD({challengeId:e.driver.challenge.id,channelId:e.socketState.channelId,cumulativeAmount:n,receipt:t});if(r){e.failSocketFlow(r);return}e.driver.acceptReceipt(t),e.driver.options?.onReceipt?.(t),e.driver.settleCloseReady(t),e.managedEmit(`close`,{code:1e3,reason:`stream complete`,type:`close`,wasClean:!0})}async function YD(e,t){try{let n=e.driver.challenge;n.expires&&new Date(n.expires).getTime()<=Date.now()+$D&&(n=await e.driver.refreshChallenge(),e.driver.challenge=n,e.socketState.challenge=n);let r=await vD({assertVoucherWithinLocalLimit:e.driver.assertVoucherWithinLocalLimit,challenge:n,event:t,expectedChannelId:e.socketState.channelId,getChannel:e.driver.getChannel,input:e.driver.httpUrl,topUpIfNeeded:e.driver.topUpIfNeeded});if(r.status===`ignored`){e.failSocketFlow(r.reason===`channel-mismatch`?`received mismatched payment-need-voucher frame`:`cannot create voucher: no active channel`);return}let i=await e.driver.createSessionCredential(n,r.context);e.rawSocket.send(SE(i))}catch(t){e.failSocketFlow(t instanceof Error?t.message:`failed to create websocket voucher`)}}function XD(e,t){let n=WD({challengeId:e.driver.challenge.id,channelId:e.socketState.channelId,expectedCloseAmount:e.socketState.expectedCloseAmount,receipt:t});if(n){e.failSocketFlow(n);return}e.driver.acceptReceipt(t),e.driver.options?.onReceipt?.(t),e.driver.settleReceipt(t)}var ZD,QD,$D,eO=F((()=>{pS(),rT(),jx(),ZS(),kE(),pD(),ZD={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},QD=3008,$D=5e3})),tO,nO,rO,iO,aO,oO=F((()=>{tO={mainnet:4217,testnet:42431},nO={usdc:`0x20C000000000000000000000b9537d11c60E8b50`,pathUsd:`0x20c0000000000000000000000000000000000000`},rO={[tO.mainnet]:nO.usdc,[tO.testnet]:nO.pathUsd},iO={[tO.mainnet]:`0x33b901018174DDabE4841042ab76ba85D4e24f25`,[tO.testnet]:`0xe1c4d3dce17bc111181ddf716f75bae49e61a336`},aO={[tO.mainnet]:`https://rpc.tempo.xyz`,[tO.testnet]:`https://rpc.moderato.tempo.xyz`}})),sO=Je({chainName:()=>CO,confirm:()=>vO,decodeMemo:()=>dO,fetchBalanceLines:()=>DO,fetchTokenInfo:()=>EO,fmtBalance:()=>yO,fmtChallengeValue:()=>fO,fmtRequestValue:()=>uO,isAgentEnvironment:()=>hO,isTempoAccount:()=>gO,isTestnet:()=>TO,link:()=>pO,mainnetTokens:()=>MO,networkRpcUrls:()=>kO,parseMethodOpts:()=>mO,pathUsd:()=>AO,pc:()=>X,printRequestHeaders:()=>cO,printResponseHeaders:()=>lO,prompt:()=>_O,resolveChain:()=>SO,resolveFundingNetwork:()=>xO,resolveRpcUrl:()=>bO,testnetTokens:()=>NO,usdc:()=>jO});function cO(e,t,n){let{pathname:r,host:i}=new URL(e);n(`> ${(t.method??`GET`).toUpperCase()} ${r} HTTP/1.1\n`),n(`> Host: ${i}\n`);for(let[e,r]of Object.entries(t.headers??{}))n(`> ${e}: ${r}\n`);n(`>
230
+ `)}function lO(e,t){if(!t.include&&t.verbose<2||t.silent)return;let n=`HTTP/1.1 ${e.status} ${e.statusText}`,r=t.verbose>=2?process.stderr:process.stdout,i=t.verbose>=2?`< `:``;r.write(`${i}${n}\n`);for(let[t,n]of e.headers)r.write(`${i}${t}: ${n}\n`);r.write(t.verbose>=2?`<
231
231
  `:`
232
- `)}function QD(e,t,n){if(gO.has(e)&&typeof t==`string`)return`${t} ${Q.dim(`(${sO(BigInt(t),n.tokenSymbol,n.tokenDecimals)})`)}`;if(e===`chainId`&&typeof t==`number`){let e=dO({id:t,name:``});return e?`${t} ${Q.dim(`(${e})`)}`:String(t)}return typeof t==`string`&&/^0x[0-9a-fA-F]{40}$/.test(t)?n.explorerUrl?tO(`${n.explorerUrl}/address/${t}`,t):t:typeof t==`string`&&/^https?:\/\//.test(t)?Q.link(t,t):String(t)}function $D(e){try{let t=e.replace(/^0x0*/,``);if(!t)return;let n=Uint8Array.from(t.match(/.{1,2}/g).map(e=>Number.parseInt(e,16))),r=new TextDecoder().decode(n);return/^[\x20-\x7e]+$/.test(r)?r:void 0}catch{return}}function eO(e,t){if(e===`realm`&&typeof t==`string`)try{let e=new URL(t.includes(`://`)?t:`https://${t}`);return Q.link(e.href,t)}catch{}return String(t)}function tO(e,t){return Q.link(e,t)}function nO(e){if(!e)return{};let t=Array.isArray(e)?e:[e],n={};for(let e of t){let t=e.indexOf(`=`);if(t===-1)throw Error(`Invalid method option format: ${e} (expected key=value)`);n[e.slice(0,t)]=e.slice(t+1)}return n}function rO(e=process.env){if(e.CLAUDECODE)return!0;for(let[t,n]of Object.entries(e))if(n&&(t===`CODEX`||t.startsWith(`CODEX_`)))return!0;return!1}function iO(e){return e.startsWith(`tempo:`)}function aO(e){let t=ye.createInterface({input:process.stdin,output:process.stderr});return new Promise(n=>{t.on(`close`,()=>n(void 0)),t.question(`${Q.bold(`▸ ${e}:`)} `,e=>{t.close(),n(e.trim()||void 0)})})}function oO(e,t=!1){let n=ye.createInterface({input:process.stdin,output:process.stderr});return new Promise(r=>{let i=t?`(Y/n)`:`(y/N)`;n.question(`${Q.bold(`▸ ${e}`)} ${Q.dim(i)} `,e=>{n.close();let i=e.trim().toLowerCase();r(i===``?t:i===`y`)})})}function sO(e,t,n=6,r){let[i,a]=(Number(e)/10**n).toString().split(`.`),o=i.replace(/\B(?=(\d{3})+(?!\d))/g,`_`),s=r?.explorerUrl&&r.token?Q.dim(Q.link(`${r.explorerUrl}/token/${r.token}`,t,!0)):Q.dim(t);return`${a?`${o}.${a}`:o} ${s}`}function cO(e,t={}){return e??(t.network?_O[t.network]:void 0)??(process.env.MPPX_RPC_URL?.trim()||process.env.RPC_URL?.trim()||void 0)}function lO(e={}){if(e.network)return e.network;if(!e.rpcUrl&&!(process.env.MPPX_RPC_URL?.trim()||process.env.RPC_URL?.trim()))return`testnet`}async function uO(e={}){let t=cO(e.rpcUrl,{network:e.network});if(!t)return he;let{getChainId:n}=await import(`viem/actions`),r=await n(N({transport:le(t)})),i=Object.values(await import(`viem/tempo/chains`)).filter(e=>typeof e==`object`&&!!e&&`id`in e&&e.id===r),a=i.find(e=>`serializers`in e&&e.serializers)??i[0];if(!a)throw Error(`Unknown chain ID ${r} from RPC ${t}`);return a}function dO(e){return{[he.id]:`mainnet`,[ge.id]:`testnet`}[e.id]??e.name}function fO(e){return typeof e==`bigint`?e:e.amount}function pO(e){return e.id!==he.id}async function mO(e,t,n){let{Actions:r}=await import(`viem/tempo`),[i,a]=await Promise.all([r.token.getBalance(e,{account:n,token:t}).then(fO).catch(()=>0n),r.token.getMetadata(e,{token:t}).catch(()=>({symbol:t}))]);return{balance:i,symbol:{"0x20c0000000000000000000000000000000000000":`PathUSD`,"0x20C000000000000000000000b9537d11c60E8b50":`USDC`}[t]??a.symbol,decimals:`decimals`in a&&typeof a.decimals==`number`?a.decimals:6,token:t}}async function hO(e,t){if(t?.chain){let n=N({chain:t.chain,transport:le(t.rpcUrl)}),r=t.chain.blockExplorers?.default?.url,i=Q.dim(`(${dO(t.chain)})`);return pO(t.chain)?(await Promise.all(xO.map(t=>mO(n,t,e)))).filter(e=>e.balance>0n).map(e=>`${sO(e.balance,e.symbol,e.decimals,{explorerUrl:r,token:e.token})} ${i}`):(await Promise.all(bO.map(t=>mO(n,t,e)))).map(e=>`${sO(e.balance,e.symbol,e.decimals,{explorerUrl:r,token:e.token})} ${i}`)}let n=N({chain:he,transport:le(cO())}),r=he.blockExplorers?.default?.url,i=(await Promise.all(bO.map(t=>mO(n,t,e)))).map(e=>sO(e.balance,e.symbol,e.decimals,{explorerUrl:r,token:e.token}));if(t?.includeTestnet!==!1){let t=N({chain:ge,transport:le()}),n=ge.blockExplorers?.default?.url,r=await Promise.all(xO.map(n=>mO(t,n,e)));for(let e of r)e.balance>0n&&i.push(`${sO(e.balance,e.symbol,e.decimals,{explorerUrl:n,token:e.token})} ${Q.dim(`(testnet)`)}`)}return i}var Q,gO,_O,vO,yO,bO,xO,SO=L((()=>{JD(),Q=(()=>{let e=process||{},t=e.argv||[],n=e.env||{},r=!(n.NO_COLOR||t.includes(`--no-color`))&&(!!n.FORCE_COLOR||t.includes(`--color`)||(e.stdout||{}).isTTY&&n.TERM!==`dumb`||!!n.CI),i=(e,t,n,r)=>{let i=``,a=0,o=r;do i+=e.substring(a,o)+n,a=o+t.length,o=e.indexOf(t,a);while(~o);return i+e.substring(a)},a=r?(e,t,n=e)=>r=>{let a=`${r}`,o=a.indexOf(t,e.length);return~o?e+i(a,t,n,o)+t:e+a+t}:()=>String;return{isColorSupported:r,reset:a(`\x1B[0m`,`\x1B[0m`),bold:a(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:a(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:a(`\x1B[3m`,`\x1B[23m`),underline:a(`\x1B[4m`,`\x1B[24m`),inverse:a(`\x1B[7m`,`\x1B[27m`),hidden:a(`\x1B[8m`,`\x1B[28m`),strikethrough:a(`\x1B[9m`,`\x1B[29m`),black:a(`\x1B[30m`,`\x1B[39m`),red:a(`\x1B[31m`,`\x1B[39m`),green:a(`\x1B[32m`,`\x1B[39m`),yellow:a(`\x1B[33m`,`\x1B[39m`),blue:a(`\x1B[34m`,`\x1B[39m`),magenta:a(`\x1B[35m`,`\x1B[39m`),cyan:a(`\x1B[36m`,`\x1B[39m`),white:a(`\x1B[37m`,`\x1B[39m`),gray:a(`\x1B[90m`,`\x1B[39m`),bgBlack:a(`\x1B[40m`,`\x1B[49m`),bgRed:a(`\x1B[41m`,`\x1B[49m`),bgGreen:a(`\x1B[42m`,`\x1B[49m`),bgYellow:a(`\x1B[43m`,`\x1B[49m`),bgBlue:a(`\x1B[44m`,`\x1B[49m`),bgMagenta:a(`\x1B[45m`,`\x1B[49m`),bgCyan:a(`\x1B[46m`,`\x1B[49m`),bgWhite:a(`\x1B[47m`,`\x1B[49m`),blackBright:a(`\x1B[90m`,`\x1B[39m`),redBright:a(`\x1B[91m`,`\x1B[39m`),greenBright:a(`\x1B[92m`,`\x1B[39m`),yellowBright:a(`\x1B[93m`,`\x1B[39m`),blueBright:a(`\x1B[94m`,`\x1B[39m`),magentaBright:a(`\x1B[95m`,`\x1B[39m`),cyanBright:a(`\x1B[96m`,`\x1B[39m`),whiteBright:a(`\x1B[97m`,`\x1B[39m`),bgBlackBright:a(`\x1B[100m`,`\x1B[49m`),bgRedBright:a(`\x1B[101m`,`\x1B[49m`),bgGreenBright:a(`\x1B[102m`,`\x1B[49m`),bgYellowBright:a(`\x1B[103m`,`\x1B[49m`),bgBlueBright:a(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:a(`\x1B[105m`,`\x1B[49m`),bgCyanBright:a(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:a(`\x1B[107m`,`\x1B[49m`),link(e,t,n){return r?`\x1b]8;;${e}\x07${n?t:Q.underline(t)}\x1b]8;;\x07`:t}}})(),gO=new Set([`amount`,`suggestedDeposit`,`minVoucherDelta`]),_O={mainnet:qD[UD.mainnet],testnet:qD[UD.testnet]},vO=`0x20c0000000000000000000000000000000000000`,yO=`0x20C000000000000000000000b9537d11c60E8b50`,bO=[vO,yO],xO=[`0x20c0000000000000000000000000000000000000`,`0x20c0000000000000000000000000000000000001`,`0x20c0000000000000000000000000000000000002`,`0x20c0000000000000000000000000000000000003`]}));function CO(){let e=Number.parseInt(process.env.MPPX_KEYCHAIN_COMMAND_TIMEOUT_MS??``,10);return Number.isFinite(e)&&e>0?e:FO}function wO(e,t){return`code`in e&&e.code===`ENOENT`&&e.message.includes(t)}function TO(e){return new R({code:`KEYCHAIN_UNAVAILABLE`,message:`Linux keyring requires secret-tool. Install libsecret-tools.`,hint:`On Debian/Ubuntu, run: sudo apt install libsecret-tools gnome-keyring dbus-x11`,exitCode:69,cause:e})}function EO(e){if(e&&wO(e,`secret-tool`))throw TO(e)}function DO(e,t){return new Promise(n=>{p.execFile(e,t,{timeout:CO()},(e,t,r)=>{n({stdout:t.trim(),stderr:r.trim(),error:e})})})}function OO(){let t=s.join(process.env.XDG_CONFIG_HOME||s.join(y.homedir(),`.config`),`mppx`,`default`);return{get(){try{return e.readFileSync(t,`utf-8`).trim()||`main`}catch{return`main`}},set(n){e.mkdirSync(s.dirname(t),{recursive:!0}),e.writeFileSync(t,n,`utf-8`)},clear(){try{e.unlinkSync(t)}catch{}}}}function kO(e){return e||(process.env.MPPX_ACCOUNT?.trim()?process.env.MPPX_ACCOUNT:OO().get())}function AO(e=`main`){let t=PO;return{async list(){let e=y.platform();if(e===`darwin`){let{stdout:e,error:n}=await DO(`security`,[`dump-keychain`]);if(n)return[];let r=[],i=e.split(`keychain:`);for(let e of i){let n=e.match(/"svce"<blob>="([^"]*)"/),i=e.match(/"acct"<blob>="([^"]*)"/);n?.[1]===t&&i?.[1]&&r.push(i[1])}return r}if(e===`linux`){let{stdout:e,stderr:n,error:r}=await DO(`secret-tool`,[`search`,`--all`,`--unlock`,`service`,t]);if(EO(r),r)return[];let i=`${e}\n${n}`,a=[],o=i.matchAll(/\baccount = (.+)/g);for(let e of o)e[1]&&a.push(e[1]);return a}throw Error(`Unsupported platform: ${e}`)},async get(){let n=y.platform();if(n===`darwin`){let{stdout:n,error:r}=await DO(`security`,[`find-generic-password`,`-s`,t,`-a`,e,`-w`]);return r?void 0:n}if(n===`linux`){let{stdout:n,error:r}=await DO(`secret-tool`,[`lookup`,`service`,t,`account`,e]);return EO(r),r?void 0:n||void 0}throw Error(`Unsupported platform: ${n}`)},async set(n){let r=y.platform();if(r===`darwin`){await DO(`security`,[`delete-generic-password`,`-s`,t,`-a`,e]);let{error:r}=await DO(`security`,[`add-generic-password`,`-s`,t,`-a`,e,`-w`,n]);if(r)throw r;return}if(r===`linux`){let r=p.execFile(`secret-tool`,[`store`,`--label`,`${t} ${e}`,`service`,t,`account`,e]),i=setTimeout(()=>r.kill(),CO());return r.stdin?.write(n),r.stdin?.end(),new Promise((e,t)=>{r.on(`close`,n=>{clearTimeout(i),n===0?e():t(Error(`secret-tool exited with code ${n}`))}),r.on(`error`,e=>{clearTimeout(i),t(wO(e,`secret-tool`)?TO(e):e)})})}throw Error(`Unsupported platform: ${r}`)},async delete(){let n=y.platform();if(n===`darwin`){await DO(`security`,[`delete-generic-password`,`-s`,t,`-a`,e]);return}if(n===`linux`){let{error:n}=await DO(`secret-tool`,[`clear`,`service`,t,`account`,e]);EO(n);return}throw Error(`Unsupported platform: ${n}`)}}}async function jO(e){let{privateKeyToAccount:t}=await import(`viem/accounts`),n=process.env.MPPX_PRIVATE_KEY?.trim();if(n)return{account:t(n),source:`environment`};let r=kO(e),i=await AO(r).get();if(i)return{account:t(i),accountName:r,source:`keychain`};throw Error(`Account "${r}" not found.`)}async function MO(e){let t=kO(e);if(!process.env.MPPX_PRIVATE_KEY?.trim()&&iO(t))throw new R({code:`UNSUPPORTED_ACCOUNT`,message:`Persistent sessions require an mppx account or MPPX_PRIVATE_KEY.`,exitCode:2});return jO(e).catch(e=>{throw new R({code:`ACCOUNT_NOT_FOUND`,message:e instanceof Error?e.message:`No account found.`,exitCode:69,...e instanceof Error&&{cause:e}})})}async function NO(e){return(await jO(e)).account}var PO,FO,IO=L((()=>{SO(),PO=`mppx`,FO=1e4}));const LO=Symbol(`mppx.x402.asset`);function RO(e){return{[LO]:!0,address:e.address,decimals:e.decimals,network:e.network,transfer:e.transfer}}function zO(e,t){let n=e(t.chainId);return RO({address:n.address,decimals:n.decimals,network:YO(t.chainId),transfer:ZO(t.transfer,n)})}const BO={USDC:RO({address:`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`,decimals:6,network:`eip155:8453`,transfer:{name:`USD Coin`,type:`eip3009`,version:`2`}})},VO={USDC:RO({address:`0x036CbD53842c5426634e7929541eC2318f3dCF7e`,decimals:6,network:`eip155:84532`,transfer:{name:`USDC`,type:`eip3009`,version:`2`}})},HO={USDC:RO({address:`0xcebA9300f2b948710d2653dD7B07f33A8B32118C`,decimals:6,network:`eip155:42220`,transfer:{name:`USDC`,type:`eip3009`,version:`2`}}),USDT:RO({address:`0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e`,decimals:6,network:`eip155:42220`,transfer:{name:`Tether USD`,type:`eip3009`,version:`1`}})},UO={USDC:RO({address:`0x01C5C0122039549AD1493B8220cABEdD739BC44E`,decimals:6,network:`eip155:11142220`,transfer:{name:`USDC`,type:`eip3009`,version:`2`}})};function WO(e){return typeof e!=`object`||!e?!1:e[LO]===!0}function GO(e){return typeof e==`function`&&typeof e.addresses==`object`&&typeof e.decimals==`number`}function KO(e){return typeof e==`string`}function qO(e,t){if(WO(e))return e.network===t?{address:e.address,decimals:e.decimals,transfer:e.transfer}:void 0;if(GO(e)){let n=e.addresses[XO(t)];return n?{address:n,decimals:e.decimals,name:e.name}:void 0}return{address:e}}function JO(e,t,n){let r=qO(e,n);return r?se(r.address)===se(t):!1}function YO(e){return`eip155:${e}`}function XO(e){return Number(e.slice(7))}function ZO(e,t){if(e.type!==`eip3009`)return e;if(e.name)return{...e,name:e.name};if(!t.name)throw Error(`EIP-3009 token assets require a token name.`);return{...e,name:t.name}}var QO=Ge({base:()=>BO,baseSepolia:()=>VO,celo:()=>HO,celoSepolia:()=>UO,define:()=>RO,fromToken:()=>zO,isAsset:()=>WO,isRawAddress:()=>KO,isToken:()=>GO,matches:()=>JO,resolve:()=>qO,toChainId:()=>XO,toNetwork:()=>YO}),$O=Ge({base:()=>ek,baseSepolia:()=>tk,celo:()=>nk,celoSepolia:()=>rk});const ek=8453,tk=84532,nk=42220,rk=11142220;Mx();function ik(e){let t=[jx(e.accepted),jx(e.resource),jx(e.extensions)].join(`|`);return ee.sha256(A.fromString(t),{as:`Hex`})}JC(),xC();async function ak(e){let t=e.context?.account??e.config.account;if(!t?.signTypedData)throw Error(`x402 exact requires a typed-data signer.`);let n=e.challenge.request,r=QS(n);if(lk(e.config,r),!n.resource)throw Error(`x402 exact EIP-3009 requires resource information.`);let i=n.extensions?.mppx?dk(n.extensions):n.extensions,a=r.extra?.assetTransferMethod??`eip3009`;if(a!==`eip3009`)throw Error(`x402 exact ${String(a)} signing is not implemented yet.`);let o=r.extra?.name,s=r.extra?.version;if(typeof o!=`string`||typeof s!=`string`)throw Error(`x402 exact EIP-3009 requires token name and version.`);let c=Math.floor(Date.now()/1e3),l={from:se(t.address),nonce:i?.mppx?ik({accepted:r,extensions:i,resource:n.resource}):pk(),to:se(r.payTo),validAfter:(c-600).toString(),validBefore:(c+r.maxTimeoutSeconds).toString(),value:r.amount},u=await t.signTypedData({domain:{chainId:ck(r.network),name:o,verifyingContract:se(r.asset),version:s},message:{...l,value:BigInt(l.value),validAfter:BigInt(l.validAfter),validBefore:BigInt(l.validBefore)},primaryType:`TransferWithAuthorization`,types:sk});return KC({accepted:r,...i?{extensions:i}:{},payload:{authorization:l,signature:u},...n.resource?{resource:n.resource}:{},x402Version:2})}function ok(e){let t=e.challenge.request,n;try{n=QS(t),lk(e.config,n)}catch{return!1}if(!t.resource||(n.extra?.assetTransferMethod??`eip3009`)!==`eip3009`)return!1;let r=n.extra?.name,i=n.extra?.version;return typeof r==`string`&&typeof i==`string`}const sk={TransferWithAuthorization:[{name:`from`,type:`address`},{name:`to`,type:`address`},{name:`value`,type:`uint256`},{name:`validAfter`,type:`uint256`},{name:`validBefore`,type:`uint256`},{name:`nonce`,type:`bytes32`}]};function ck(e){return Number(e.slice(tC.length))}function lk(e,t){let n=ck(t.network);if(e.networks&&!e.networks.includes(n))throw Error(`x402 exact chain ID is not allowed: ${n}.`);let r=e.currencies??e.assets;if(r?.some(e=>KO(e))&&!e.networks?.length)throw Error(`x402 exact raw currency allowlists require networks.`);if(r){let e=se(t.asset);if(!r.some(n=>JO(n,e,t.network)))throw Error(`x402 exact currency is not allowed: ${e}.`)}if(e.maxAtomicAmount!==void 0&&BigInt(t.amount)>BigInt(e.maxAtomicAmount))throw Error(`x402 exact amount exceeds maxAtomicAmount.`);if(e.maxAmount!==void 0){let n=uk(e,t);if(n===void 0)throw Error(`x402 exact maxAmount requires currency decimals.`);if(BigInt(t.amount)>F(e.maxAmount,n))throw Error(`x402 exact amount exceeds maxAmount.`)}}function uk(e,t){let n=e.currencies??e.assets,r=se(t.asset),i=n?.find(e=>JO(e,r,t.network)),a=i?qO(i,t.network):void 0;return a?.decimals===void 0?e.decimals:a.decimals}function dk(e){let t=e.mppx;return t?{...e,mppx:{...t,info:{...t.info,nonce:fk()}}}:e}function fk(){return mk().slice(2)}function pk(){return mk()}function mk(){let e=globalThis.crypto;if(!e?.getRandomValues)throw Error(`x402 exact requires crypto randomness.`);let t=e.getRandomValues(new Uint8Array(32));return`0x${Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``)}`}Wx();const hk=[`authorization`],gk=X.string().check(X.regex(/^\d+$/,`Invalid atomic amount`));X.object({name:X.string().check(X.minLength(1)),version:X.string().check(X.minLength(1))});const _k=X.object({chainId:X.number(),credentialTypes:X.optional(X.array(X.enum(hk)).check(X.minLength(1))),decimals:X.optional(X.number()),permit2Address:X.optional(zx()),splits:X.optional(X.array(X.object({amount:gk,recipient:zx()})))});X.object({amount:gk,currency:zx(),description:X.optional(X.string()),externalId:X.optional(X.string()),methodDetails:_k,recipient:zx()});const vk=X.object({amount:Px(),chainId:X.number(),currency:zx(),credentialTypes:X.optional(X.array(X.enum(hk)).check(X.minLength(1))),decimals:X.number(),description:X.optional(X.string()),externalId:X.optional(X.string()),permit2Address:X.optional(zx()),recipient:zx(),splits:X.optional(X.array(X.object({amount:gk,recipient:zx()})))}),yk=X.object({from:zx(),nonce:Bx(),signature:Hx(),to:zx(),type:X.literal(`authorization`),validAfter:gk,validBefore:gk,value:gk}),bk={TransferWithAuthorization:[{name:`from`,type:`address`},{name:`to`,type:`address`},{name:`value`,type:`uint256`},{name:`validAfter`,type:`uint256`},{name:`validBefore`,type:`uint256`},{name:`nonce`,type:`bytes32`}]};function xk(e){return{chainId:e.chainId,name:e.authorization.name,verifyingContract:e.currency,version:e.authorization.version}}function Sk(e){return ee.keccak256(A.fromString(`${e.id}${e.realm}`),{as:`Hex`})}function Ck(e){return`eip155:${e}`}function wk(e){return`did:pkh:eip155:${e.chainId}:${e.address}`}MT(),Wx();const Tk=AT({name:`evm`,intent:`charge`,schema:{credential:{payload:yk},request:X.pipe(vk,X.transform(({amount:e,chainId:t,credentialTypes:n=[`authorization`],currency:r,decimals:i,permit2Address:a,recipient:o,splits:s,...c})=>({...c,amount:F(e,i).toString(),currency:se(r),methodDetails:{chainId:t,credentialTypes:n,decimals:i,...a?{permit2Address:se(a)}:{},...s?{splits:s}:{}},recipient:se(o)})))}});JS(),MT(),bS(),Wx();function Ek(e){return jT(Tk,{canHandleChallenge({challenge:t}){return!Dk(t)||ok({challenge:t,config:e})},context:X.object({account:X.optional(X.custom())}),async createCredential({challenge:t,context:n}){if(Dk(t))return ak({challenge:t,config:e,context:n});let r=n?.account??e.account;if(!r?.signTypedData)throw Error(`EVM authorization requires a typed-data signer.`);let i=t.request;if(Ok(e,i),!i.methodDetails.credentialTypes?.includes(`authorization`))throw Error(`EVM authorization is not accepted by this challenge.`);if(i.methodDetails.splits?.length)throw Error(`EVM authorization does not support payment splits.`);let a=kk(e,i),o=t.expires?Math.floor(new Date(t.expires).getTime()/1e3).toString():(Math.floor(Date.now()/1e3)+300).toString();return GS(WS({challenge:t,payload:{from:se(r.address),nonce:Sk(t),signature:await r.signTypedData({domain:xk({authorization:a,chainId:i.methodDetails.chainId,currency:i.currency}),message:{from:se(r.address),nonce:Sk(t),to:se(i.recipient),validAfter:0n,validBefore:BigInt(o),value:BigInt(i.amount)},primaryType:`TransferWithAuthorization`,types:bk}),to:se(i.recipient),type:`authorization`,validAfter:`0`,validBefore:o,value:i.amount},source:wk({address:se(r.address),chainId:i.methodDetails.chainId})}))}})}function Dk(e){return vS(e)&&e.request.scheme===`exact`&&typeof e.request.network==`string`}function Ok(e,t){let n=t.methodDetails.chainId,r=Ck(n);if(e.networks&&!e.networks.includes(n))throw Error(`EVM chain ID is not allowed: ${n}.`);let i=e.currencies??e.assets;if(i?.some(e=>KO(e))&&!e.networks?.length)throw Error(`EVM raw currency allowlists require networks.`);if(i){let e=se(t.currency);if(!i.some(t=>JO(t,e,r)))throw Error(`EVM currency is not allowed: ${e}.`)}if(e.maxAtomicAmount!==void 0&&BigInt(t.amount)>BigInt(e.maxAtomicAmount))throw Error(`EVM charge amount exceeds maxAtomicAmount.`);if(e.maxAmount!==void 0){let n=Ak(e,t);if(n===void 0)throw Error(`EVM charge maxAmount requires currency decimals.`);if(BigInt(t.amount)>F(e.maxAmount,n))throw Error(`EVM charge amount exceeds maxAmount.`)}}function kk(e,t){let n=e.currencies??e.assets,r=se(t.currency),i=Ck(t.methodDetails.chainId),a=n?.find(e=>JO(e,r,i)),o=a?qO(a,i):void 0;if(o?.transfer?.type===`eip3009`)return{name:o.transfer.name,version:o.transfer.version};if(e.authorization)return e.authorization;throw Error(`EVM authorization requires token name and version.`)}function Ak(e,t){let n=e.currencies??e.assets,r=se(t.currency),i=Ck(t.methodDetails.chainId),a=n?.find(e=>JO(e,r,i)),o=a?qO(a,i):void 0;return o?.decimals===void 0?e.decimals:o.decimals}function jk(e){return[jk.charge(e)]}(function(e){e.charge=Ek,e.assets=QO,e.chains=$O})(jk||={});function Mk(e){return e}var Nk=L((()=>{}));bS(),IO(),Nk();function Pk(){return Mk({method:`evm`,supports:e=>e.method===`evm`&&!vS(e),async setup({challenge:e}){let t=e.request,n=t.methodDetails,r=n?.chainId,i=r?Fk(r):void 0,a=t.currency,o=await NO(),s=[...Object.values(BO),...Object.values(VO),...Object.values(HO),...Object.values(UO)],c=a??``;if(i&&a)try{let e=N({chain:i,transport:le()}),t=await be(e,{address:a,abi:ae,functionName:`symbol`});t&&(c=t)}catch{}return{tokenSymbol:c,tokenDecimals:n?.decimals??6,explorerUrl:i?.blockExplorers?.default?.url,methods:[...jk({account:o,currencies:s})]}}})}function Fk(e){return Object.values(Ne).find(t=>t.id===e)}function Ik(e,t){if(!Number.isInteger(t)||t<0)throw RangeError(`Decimals must be a non-negative integer.`);if(!/^-?(?:\d+(?:\.\d*)?|\.\d+)$/.test(e))throw TypeError(`Value \`${e}\` is not a valid decimal number.`);let n=e.startsWith(`-`),[r=`0`,i=``]=(n?e.slice(1):e).split(`.`),a=i.slice(0,t).padEnd(t,`0`),o=BigInt(`${r||`0`}${a}`);return i.length>t&&i[t]>=`5`&&(o+=1n),n?-o:o}Wx();const Lk=X.object({customer:X.optional(X.string().check(X.minLength(1))),hooks:X.optional(X.object({inputs:X.object({tax:X.object({calculation:X.string().check(X.minLength(1))})})})),metadata:X.optional(X.record(X.string(),X.string())),receipt_email:X.optional(X.string().check(X.minLength(1)))}),Rk=X.custom(e=>typeof e==`function`),zk=X.union([Lk,Rk]);MT(),Wx();const Bk=AT({name:`stripe`,intent:`charge`,schema:{credential:{payload:X.object({externalId:X.optional(X.string()),spt:X.string()})},request:X.pipe(X.object({amount:Px(),currency:X.string(),decimals:X.number(),description:X.optional(X.string()),externalId:X.optional(X.string()),metadata:X.optional(X.record(X.string(),X.string())),networkId:X.string(),paymentIntentOptions:X.optional(zk),paymentMethodTypes:X.array(X.string()).check(X.minLength(1)),recipient:X.optional(X.string())}),X.transform(({amount:e,decimals:t,metadata:n,networkId:r,paymentIntentOptions:i,paymentMethodTypes:a,...o})=>({...o,amount:Ik(e,t).toString(),methodDetails:{networkId:r,paymentMethodTypes:a,...n!==void 0&&{metadata:n}}})))}});JS(),MT(),Wx();function Vk(e){let{client:t,createToken:n,externalId:r,paymentMethod:i}=e;return jT(Bk,{context:X.object({paymentMethod:X.optional(X.string())}),async createCredential({challenge:e,context:a}){let o=a?.paymentMethod??i;if(!o)throw Error(`paymentMethod is required (pass via context or parameters)`);let s=e.request.amount,c=e.request.currency,l=typeof e.request.externalId==`string`?e.request.externalId:void 0,u=e.request.methodDetails?.networkId;if(!u)throw Error(`networkId is required in challenge.methodDetails`);let d=e.request.methodDetails?.metadata;if(d?.externalId)throw Error(`methodDetails.metadata.externalId is reserved; use credential externalId instead`);let f=e.expires?Math.floor(new Date(e.expires).getTime()/1e3):Math.floor(Date.now()/1e3)+3600,p=await n({amount:s,challenge:e,client:t,currency:c,expiresAt:f,metadata:d,networkId:u,paymentMethod:o}),m=l??r;return GS({challenge:e,payload:{spt:p,...m===void 0?{}:{externalId:m}}})}})}function Hk(e){return[Vk(e)]}(function(e){e.charge=Vk})(Hk||={}),xx(),SO(),Nk();function Uk(){return Mk({method:`stripe`,supports(e){return e.method===`stripe`&&e.intent===`charge`},async setup({challenge:e,methodOpts:t}){let n=e.request,r=n.currency,i=Gk(f.object({paymentMethod:f.string(),secretKey:f.string().optional()}),t,[`paymentMethod`,`secretKey`]),a=i.secretKey??process.env.MPPX_STRIPE_SECRET_KEY;if(!a)throw new R({code:`MISSING_ENV`,message:`MPPX_STRIPE_SECRET_KEY environment variable is required for Stripe payments.`,exitCode:2});return{tokenSymbol:r?.toUpperCase()??``,tokenDecimals:n.decimals??2,methods:[Hk.charge({paymentMethod:i.paymentMethod,createToken:async({paymentMethod:e,amount:t,currency:n,networkId:r,expiresAt:i,metadata:o})=>{let s=new URLSearchParams({payment_method:e,"usage_limits[currency]":n,"usage_limits[max_amount]":t,"usage_limits[expires_at]":i.toString()}),c=Wk(a),l=process.env.MPPX_STRIPE_SPT_URL?process.env.MPPX_STRIPE_SPT_URL:c?`https://api.stripe.com/v1/test_helpers/shared_payment/granted_tokens`:`https://api.stripe.com/v1/shared_payment/issued_tokens`;if(r){let e=c?`seller_details[network_id]`:`seller_details[network_business_profile]`;s.set(e,r)}if(o)for(let[e,t]of Object.entries(o))s.set(`metadata[${e}]`,t);let u={Authorization:`Basic ${btoa(`${a}:`)}`,"Content-Type":`application/x-www-form-urlencoded`,"Stripe-Version":`2026-07-29.preview`},d=await globalThis.fetch(l,{method:`POST`,headers:u,body:s});if(!d.ok){let a=await d.json();if(c&&(o||r)&&a.error.message.includes(`Received unknown parameter`)){let r=new URLSearchParams({payment_method:e,"usage_limits[currency]":n,"usage_limits[max_amount]":t,"usage_limits[expires_at]":i.toString()});if(d=await globalThis.fetch(l,{method:`POST`,headers:u,body:r}),!d.ok){let e=await d.json();throw new R({code:`STRIPE_ERROR`,message:`Failed to create SPT: ${e.error.message}`,exitCode:77})}}else throw new R({code:`STRIPE_ERROR`,message:`Failed to create SPT: ${a.error.message}`,exitCode:77})}let{id:f}=await d.json();return f}})]}},formatReceiptField(e,t){if(e===`reference`&&typeof t==`string`&&t.startsWith(`pi_`)){let e=process.env.MPPX_STRIPE_SECRET_KEY,n=`https://dashboard.stripe.com${e!==void 0&&Wk(e)?`/test`:``}/payments/${t}`;return Q.link(n,t,!0)}}})}function Wk(e){return e.startsWith(`sk_test_`)||e.startsWith(`rk_test_`)}function Gk(e,t,n){if(t&&typeof t==`object`&&!Array.isArray(t)){let e=Object.keys(t).filter(e=>!n.includes(e));if(e.length)throw Error(`Unsupported CLI method option(s): ${e.join(`, `)}`)}let r=e.safeParse(t??{});if(r.success)return r.data;let i=r.error.issues.map(e=>`${e.path.length?e.path.join(`.`):`options`}: ${e.message}`).join(`, `);throw Error(`Invalid CLI options (${i})`)}function Kk(e={}){let{account:t}=e;return(e,{account:n}={})=>{let r=n??t;if(!r){if(!e.account)throw Error("No `account` provided. Pass `account` to parameters or context.");return e.account}return pe(r)}}var qk=L((()=>{}));function Jk(e){return Object.fromEntries(Object.entries(e.headers??{}).filter(([e])=>e.toLowerCase()!==`content-type`))}var Yk=L((()=>{}));function Xk(e,t={}){return le(e.url,{fetchFn:e.fetch,fetchOptions:{headers:Jk(e)},...t})}function Zk(e){let{chain:t,getClient:n,remoteFeePayer:r,rpcUrl:i}=e;return n?!t?.serializers&&!r?n:async e=>{let i=await n(e),a=i;if(r&&i.transport.key!==`feePayer`){let e=i.request.bind(i),t=Me(re({request:t=>e(t)},{retryCount:0}),Xk(r,{retryCount:i.transport.retryCount}))({account:i.account,chain:i.chain,pollingInterval:i.pollingInterval,retryCount:0}),n=ne({...t.config,retryCount:0},t.value);a=Object.assign({},i,{request:n.request,transport:{...n.config,...n.value}})}return!t?.serializers||a.chain?.serializers?.transaction?a:Object.assign({},a,{chain:{...t,...a.chain,formatters:a.chain?.formatters??t.formatters,prepareTransactionRequest:a.chain?.prepareTransactionRequest??t.prepareTransactionRequest,serializers:a.chain?.serializers?.transaction?a.chain.serializers:t.serializers}})}:({chainId:e})=>{if(!i)throw Error("No `rpcUrl` provided.");let n=e||Number(Object.keys(i)[0]),a=i[n];if(!a)throw Error(`No \`rpcUrl\` configured for \`chainId\` (${n}).`);let o=r?Me(le(a),Xk(r)):le(a);return N({chain:Qk[n]??{...t,id:n},transport:o})}}var Qk,$k=L((()=>{Yk(),Qk={[he.id]:he,[ge.id]:ge}}));function eA(e){let t=ee.keccak256(A.fromString(e),{as:`Hex`});return j.toBytes(j.slice(t,0,10))}function tA(e){let{serverId:t,clientId:n,challengeId:r}=e,i=new Uint8Array(32);return i.set(j.toBytes(rA),0),i[4]=iA,i.set(eA(t),5),n&&i.set(eA(n),15),i.set(nA(r),25),j.fromBytes(i)}function nA(e){let t=ee.keccak256(A.fromString(e),{as:`Hex`});return j.toBytes(j.slice(t,0,7))}var rA,iA,aA=L((()=>{rA=j.slice(ee.keccak256(A.fromString(`mpp`),{as:`Hex`}),0,4),iA=1}));function oA(e,t){return Re.resolve(e).toLowerCase()===Re.resolve(t).toLowerCase()}var sA=L((()=>{}));async function cA(e,t){let{account:n,amountOut:r,tokenOut:i,tokenIn:a,slippage:o}=t,s=a.filter(e=>!oA(e,i)),c=await Promise.allSettled([be(e,Oe.token.getBalance.call(e,{account:n,token:i})),...s.map(t=>be(e,Oe.token.getBalance.call(e,{account:n,token:t})))]),l=c[0];if(!(l.status===`fulfilled`&&l.value>=r)){for(let t=0;t<s.length;t++){let n=c[t+1];if(n.status!==`fulfilled`)continue;let a=n.value;if(a<=0n)continue;let l=s[t];try{let t=await Oe.dex.getBuyQuote(e,{tokenIn:l,tokenOut:i,amountOut:r});if(a>=t){let n=t+t*BigInt(Math.round(o*100))/uA;return[Oe.token.approve.call(e,{amount:n,spender:ke.stablecoinDex,token:l}),Oe.dex.buy.call({tokenIn:l,tokenOut:i,amountOut:r,maxAmountIn:n})]}}catch{}}throw new fA({currency:i})}}function lA(e,t){return e?e===!0?{tokenIn:t,slippage:1}:{tokenIn:e.tokenIn?[...e.tokenIn,...t.filter(t=>!e.tokenIn.some(e=>oA(e,t)))]:t,slippage:e.slippage??1}:!1}var uA,dA,fA,pA=L((()=>{sA(),JD(),uA=10000n,dA=[WD.pathUsd,WD.usdc],fA=class extends Error{name=`InsufficientFundsError`;constructor({currency:e}){super(`Insufficient funds: no balance in ${e} and no viable swap route from fallback currencies.`)}}}));function mA(e){let t=BigInt(e.amount),n=e.methodDetails?.splits??[],r=n.reduce((e,t)=>e+BigInt(t.amount),0n);if(r>=t)throw Error(`Invalid charge request: split total must be less than total amount.`);let i=t-r;if(i<=0n)throw Error(`Invalid charge request: primary transfer amount must be positive.`);return[{amount:i.toString(),memo:e.methodDetails?.memo,recipient:e.recipient},...n.map(e=>({amount:e.amount,memo:e.memo,recipient:e.recipient}))]}var hA=L((()=>{}));function gA(e,t,n){t&&(n&&!n.some(e=>oA(e,t))||e.some(e=>oA(e,t))||e.push(t))}async function _A(e,t,n){try{return(await Oe.token.getBalance(e,{account:t,token:n})).amount>0n}catch{return!1}}function vA(e){let t=e.chain?.feeToken;if(t)return Ae.toAddress(t);let n=e.chain?.id;return n?GD[n]:void 0}function yA(e){let t=[];return gA(t,WD.pathUsd),gA(t,GD[e]),t}async function bA(e){let{account:t,allowedTokens:n,candidateTokens:r,client:i,prioritizeCandidates:a}=e,o=[];if(a)for(let e of r??[])gA(o,e,n);if(gA(o,await Oe.fee.getUserToken(i,{account:t}).then(e=>e?.address).catch(()=>void 0),n),gA(o,vA(i),n),!a)for(let e of r??[])gA(o,e,n);for(let e of o)if(await _A(i,t,e))return e;return o[0]}var xA=L((()=>{sA(),JD()}));function SA(e){return{name:`MPP`,version:`3`,chainId:e}}function CA(e){let{account:t,challengeId:n,realm:r}=e;return{account:t,challengeId:n,realm:r}}function wA(e){let{account:t,chainId:n,challengeId:r,realm:i}=e;return{domain:SA(n),types:DA,primaryType:EA,message:CA({account:t,challengeId:r,realm:i})}}function TA(e){return`did:pkh:eip155:${e.chainId}:${e.address}`}var EA,DA,OA=L((()=>{EA=`Proof`,DA={Proof:[{name:`account`,type:`address`},{name:`challengeId`,type:`string`},{name:`realm`,type:`string`}]}})),kA,AA=L((()=>{kA=Be({addresses:{4217:`0x20c000000000000000000000f37de3740ADec032`,42431:`0x20c000000000000000000000f37de3740ADec032`},currency:`USD`,decimals:6,name:`MACH`,symbol:`MACH`})}));function jA(e={}){let{clientId:t}=e,n=Zk({chain:he,getClient:e.getClient,rpcUrl:qD}),r=Kk({account:e.account});return jT(GT,{context:MA,async createCredential({challenge:i,context:a}){let o=i.request.methodDetails?.chainId;if(e.expectedChainId!==void 0&&o!==void 0&&o!==e.expectedChainId)throw Error(`Chain ID mismatch: expected ${e.expectedChainId}, got ${o}.`);let s=o??e.expectedChainId,c=await n({chainId:s}),l=s??c.chain?.id;if(l===void 0)throw Error("No `chainId` provided. Pass a chain ID in the challenge or client.");let{request:u}=i,{amount:d,methodDetails:f}=u,p=f?.supportedModes??[`pull`,`push`],m=r(c,a);if(BigInt(d)===0n)return GS({challenge:i,payload:{signature:await we(c,{account:m,...wA({account:m.address,chainId:l,challengeId:i.id,realm:i.realm})}),type:`proof`},source:TA({address:m.address,chainId:l})});let h=u.currency;if(e.expectedRecipients){let t=new Set(e.expectedRecipients.map(e=>e.toLowerCase())),n=f?.splits;if(n){for(let e of n)if(!t.has(e.recipient.toLowerCase()))throw Error(`Unexpected split recipient: ${e.recipient}`)}}let g=f?.memo?f.memo:tA({challengeId:i.id,clientId:t,serverId:i.realm}),_=mA({amount:d,methodDetails:{...f,memo:g},recipient:u.recipient}).map(e=>Oe.token.transfer.call(c,{amount:BigInt(e.amount),...e.memo&&{memo:e.memo},to:e.recipient,token:h})),v=lA(a?.autoSwap??e.autoSwap,dA),y=await e.resolveAccount?.({account:m,chainId:l,operation:{kind:`executeCalls`,...v?{}:{calls:_}}})??m,b=(()=>{let t=a?.mode??e.mode;if(t){if(!p.includes(t))throw Error(`Challenge does not support ${t} mode.`);return t}let n=y.type===`json-rpc`?`push`:`pull`;return p.includes(n)?n:p[0]})(),x=[...(v?await cA(c,{account:y.address,amountOut:BigInt(d),tokenOut:h,tokenIn:v.tokenIn,slippage:v.slippage}):void 0)??[],..._],S=kA.addresses[l],C=yA(l),w=S&&de(h,S)?await bA({account:y.address,allowedTokens:C,candidateTokens:C,client:c,prioritizeCandidates:!0}):void 0,T=(()=>{let e=Math.floor(Date.now()/1e3)+25;if(!i.expires)return e;let t=Math.floor(new Date(i.expires).getTime()/1e3);return Math.min(e,t)})();if(b===`push`){let{receipts:e}=y.type===`local`?{receipts:[await Se(c,{account:y,calls:x,...w?{feeToken:w}:{},nonceKey:`expiring`,validBefore:T})]}:await xe(c,{account:y,...w?{capabilities:{feeToken:w}}:{},calls:x,experimental_fallback:x.length===1,forceAtomic:x.length>1}),t=e?.[0]?.transactionHash;if(!t)throw Error(`No transaction receipt returned.`);return GS({challenge:i,payload:{hash:t,type:`hash`},source:TA({address:y.address,chainId:l})})}let E=await I(c,{account:y,calls:x,...w?{feeToken:w}:{},nonceKey:`expiring`,validBefore:T});if(E.gas=(E.gas??0n)+5000n,f?.feePayer){let e=E;delete e.feePayerSignature,delete e.feeToken,e.feePayer=!0}return GS({challenge:i,payload:{signature:await Ce(c,E),type:`transaction`},source:TA({address:y.address,chainId:l})})}})}var MA,NA=L((()=>{JS(),MT(),qk(),$k(),Wx(),aA(),pA(),hA(),JD(),xA(),OA(),JT(),AA(),MA=X.object({account:X.optional(X.custom()),autoSwap:X.optional(X.custom()),mode:X.optional(X.enum(FT))})}));function PA(e){return`accessKeyAddress`in e}function FA(e){return PA(e)?e.accessKeyAddress:e.address}var IA=L((()=>{}));function LA(e,t){return{name:GA,version:KA,chainId:t,verifyingContract:e}}function RA(e){return{channelId:e.channelId,cumulativeAmount:e.cumulativeAmount}}function zA(e,t,n){return ce({domain:LA(e,t),types:qA,primaryType:`Voucher`,message:RA(n)})}async function BA(e,t,n,r,i){return we(e,{account:t,domain:LA(r,i),types:qA,primaryType:`Voucher`,message:RA(n)})}function VA(e){let t=Le.from(e);if(t.type===`keychain`){if(t.inner.type!==`secp256k1`)throw Error(`Session vouchers only unwrap secp256k1 keychain signatures; pass a direct voucherSigner for other key types.`);return M.toHex(t.inner.signature)}return Le.serialize(t)}function HA(e){return e.type===`keychain`?!1:e.type===`secp256k1`||JA}function UA(e){if(!HA(e))throw Error(`Session vouchers only support secp256k1 signatures until TIP-1020 voucher verification is enabled.`)}async function WA(e,t,n,r,i,a){let o=a??t,s=FA(o),c=zA(r,i,n),l=VA(PA(o)?await o.sign({hash:c,raw:!0}):await BA(e,o,n,r,i)),u=Le.from(l);if(UA(u),!Le.verify(u,{address:s,payload:c}))throw Error(`voucher signature does not match voucher signer`);return l}var GA,KA,qA,JA,YA=L((()=>{IA(),GA=`Tempo Stream Channel`,KA=`1`,qA={Voucher:[{name:`channelId`,type:`bytes32`},{name:`cumulativeAmount`,type:`uint128`}]},JA=!1}));function XA(e){let t=O.encode(O.from([`address payer`,`address payee`,`address token`,`bytes32 salt`,`address authorizedSigner`,`address escrowContract`,`uint256 chainId`]),[e.payer,e.payee,e.token,e.salt,e.authorizedSigner,e.escrowContract,BigInt(e.chainId)]);return ee.keccak256(t)}var ZA=L((()=>{})),QA,$A=L((()=>{QA=[{type:`function`,name:`CLOSE_GRACE_PERIOD`,inputs:[],outputs:[{name:``,type:`uint64`,internalType:`uint64`}],stateMutability:`view`},{type:`function`,name:`VOUCHER_TYPEHASH`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`channels`,inputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`finalized`,type:`bool`,internalType:`bool`},{name:`closeRequestedAt`,type:`uint64`,internalType:`uint64`},{name:`payer`,type:`address`,internalType:`address`},{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`authorizedSigner`,type:`address`,internalType:`address`},{name:`deposit`,type:`uint128`,internalType:`uint128`},{name:`settled`,type:`uint128`,internalType:`uint128`}],stateMutability:`view`},{type:`function`,name:`close`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`},{name:`cumulativeAmount`,type:`uint128`,internalType:`uint128`},{name:`signature`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`computeChannelId`,inputs:[{name:`payer`,type:`address`,internalType:`address`},{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`salt`,type:`bytes32`,internalType:`bytes32`},{name:`authorizedSigner`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`domainSeparator`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`eip712Domain`,inputs:[],outputs:[{name:`fields`,type:`bytes1`,internalType:`bytes1`},{name:`name`,type:`string`,internalType:`string`},{name:`version`,type:`string`,internalType:`string`},{name:`chainId`,type:`uint256`,internalType:`uint256`},{name:`verifyingContract`,type:`address`,internalType:`address`},{name:`salt`,type:`bytes32`,internalType:`bytes32`},{name:`extensions`,type:`uint256[]`,internalType:`uint256[]`}],stateMutability:`view`},{type:`function`,name:`getChannel`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`tuple`,internalType:`struct TempoStreamChannel.Channel`,components:[{name:`finalized`,type:`bool`,internalType:`bool`},{name:`closeRequestedAt`,type:`uint64`,internalType:`uint64`},{name:`payer`,type:`address`,internalType:`address`},{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`authorizedSigner`,type:`address`,internalType:`address`},{name:`deposit`,type:`uint128`,internalType:`uint128`},{name:`settled`,type:`uint128`,internalType:`uint128`}]}],stateMutability:`view`},{type:`function`,name:`getChannelsBatch`,inputs:[{name:`channelIds`,type:`bytes32[]`,internalType:`bytes32[]`}],outputs:[{name:`channelStates`,type:`tuple[]`,internalType:`struct TempoStreamChannel.Channel[]`,components:[{name:`finalized`,type:`bool`,internalType:`bool`},{name:`closeRequestedAt`,type:`uint64`,internalType:`uint64`},{name:`payer`,type:`address`,internalType:`address`},{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`authorizedSigner`,type:`address`,internalType:`address`},{name:`deposit`,type:`uint128`,internalType:`uint128`},{name:`settled`,type:`uint128`,internalType:`uint128`}]}],stateMutability:`view`},{type:`function`,name:`getVoucherDigest`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`},{name:`cumulativeAmount`,type:`uint128`,internalType:`uint128`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`open`,inputs:[{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`deposit`,type:`uint128`,internalType:`uint128`},{name:`salt`,type:`bytes32`,internalType:`bytes32`},{name:`authorizedSigner`,type:`address`,internalType:`address`}],outputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`nonpayable`},{type:`function`,name:`requestClose`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`settle`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`},{name:`cumulativeAmount`,type:`uint128`,internalType:`uint128`},{name:`signature`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`topUp`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`},{name:`additionalDeposit`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`withdraw`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`}],outputs:[],stateMutability:`nonpayable`},{type:`event`,name:`ChannelClosed`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`settledToPayee`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`refundedToPayer`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ChannelExpired`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`ChannelOpened`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`token`,type:`address`,indexed:!1,internalType:`address`},{name:`authorizedSigner`,type:`address`,indexed:!1,internalType:`address`},{name:`salt`,type:`bytes32`,indexed:!1,internalType:`bytes32`},{name:`deposit`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`CloseRequestCancelled`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`CloseRequested`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`closeGraceEnd`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`Settled`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`cumulativeAmount`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`deltaPaid`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`newSettled`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`TopUp`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`additionalDeposit`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`newDeposit`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`error`,name:`AmountExceedsDeposit`,inputs:[]},{type:`error`,name:`AmountNotIncreasing`,inputs:[]},{type:`error`,name:`ChannelAlreadyExists`,inputs:[]},{type:`error`,name:`ChannelFinalized`,inputs:[]},{type:`error`,name:`ChannelNotFound`,inputs:[]},{type:`error`,name:`CloseNotReady`,inputs:[]},{type:`error`,name:`DepositOverflow`,inputs:[]},{type:`error`,name:`InvalidPayee`,inputs:[]},{type:`error`,name:`InvalidSignature`,inputs:[]},{type:`error`,name:`NotPayee`,inputs:[]},{type:`error`,name:`NotPayer`,inputs:[]},{type:`error`,name:`TransferFailed`,inputs:[]}]}));async function ej(e,t,n){return be(e,{address:t,abi:QA,functionName:`getChannel`,args:[n]})}var tj=L((()=>{$A(),P({abi:QA,name:`open`}),P({abi:QA,name:`topUp`})}));function nj(e,t){return t??e}function rj(e,t,n,r=!1){let i=e.request.methodDetails?.escrowContract,a=n??KD[t];if(!a&&!(r&&i))throw Error("No trusted `escrowContract` available. Provide it in client parameters or use a supported chain.");if(i&&a&&i.toLowerCase()!==a.toLowerCase()&&(!r||n!==void 0))throw Error(`Tempo session escrow ${i} does not match client escrow ${a}.`);return i&&(!a||i.toLowerCase()!==a.toLowerCase())?i:a}function ij(e,t,n,r){return GS({challenge:e,payload:t,source:`did:pkh:eip155:${n}:${r.address}`})}async function aj(e,t,n,r,i,a,o){let s=nj(t,o),c=await WA(e,t,{channelId:n,cumulativeAmount:r},i,a,s);return{action:`voucher`,channelId:n,cumulativeAmount:r.toString(),signature:c}}async function oj(e,t,n){let{escrowContract:r,payee:i,currency:a,deposit:o,initialAmount:s,chainId:c,feePayer:l}=n,u=nj(t,n.voucherSigner),d=FA(u),f=j.random(32),p=XA({authorizedSigner:d,chainId:c,escrowContract:r,payee:i,payer:t.address,salt:f,token:a}),m=ie({abi:Ee.tip20,functionName:`approve`,args:[r,o]}),h=ie({abi:QA,functionName:`open`,args:[i,a,o,f,d]}),g=Math.floor(Date.now()/1e3)+25,_=await I(e,{account:t,calls:[{to:a,data:m},{to:r,data:h}],feeToken:a,nonceKey:`expiring`,validBefore:g});_.gas=(_.gas??0n)+5000n,l&&(_.feePayer=!0);let v=await Ce(e,_),y=await WA(e,t,{channelId:p,cumulativeAmount:s},r,c,u);return{entry:{authorizedSigner:d,channelId:p,salt:f,cumulativeAmount:s,escrowContract:r,chainId:c,opened:!0},payload:{action:`open`,type:`transaction`,channelId:p,transaction:v,authorizedSigner:d,cumulativeAmount:s.toString(),signature:y}}}async function sj(e,t,n,r){try{let i=await ej(e,t,n);if(i.deposit>0n&&!i.finalized)return{authorizedSigner:BigInt(i.authorizedSigner)===0n?i.payer:i.authorizedSigner,channelId:n,salt:`0x`,cumulativeAmount:i.settled,escrowContract:t,chainId:r,opened:!0}}catch{}}var cj=L((()=>{JS(),IA(),JD(),tj(),ZA(),YA()}));function lj(e={}){let{allowCustomEscrow:t=!1,decimals:n=6}=e,r=Zk({chain:he,getClient:e.getClient,rpcUrl:qD}),i=Kk({account:e.account}),a=e.maxDeposit===void 0?void 0:F(e.maxDeposit,n),o=new Map,s=new Map,c=new Map;function l(t){e.onChannelUpdate?.(t)}function u(e,t,n){return`${e.toLowerCase()}:${t.toLowerCase()}:${n.toLowerCase()}`}function d(n,r,i){if(i){let e=o.get(i);if(e)return rj(n,r,e)}return rj(n,r,e.escrowContract,t)}async function f(t,i,f){let p=t.request.methodDetails,m=p?.chainId??0,h=await r({chainId:m}),g=d(t,m),_=t.request.recipient,v=t.request.currency,y=BigInt(t.request.amount),b=t.request.suggestedDeposit,x=b?BigInt(b):void 0,S=(()=>{if(f?.depositRaw)return BigInt(f.depositRaw);if(e.deposit!==void 0)return F(e.deposit,n);if(x!==void 0&&a!==void 0)return x<a?x:a;if(a!==void 0)return a;if(x!==void 0)return x;throw Error("No deposit amount available. Set `deposit`, `maxDeposit`, or ensure the server challenge includes `suggestedDeposit`.")})(),C=e.voucherSigner??i,w=u(_,v,g),T=s.get(w);if(!T){let e=f?.channelId??p?.channelId;if(e){let t=await sj(h,g,e,m);if(t){let e=f?.cumulativeAmountRaw?BigInt(f.cumulativeAmountRaw):f?.cumulativeAmount?F(f.cumulativeAmount,n):void 0;e!==void 0&&(t.cumulativeAmount=e),s.set(w,t),c.set(t.channelId,w),o.set(t.channelId,g),T=t,l(T)}else if(f?.channelId)throw Error(`Channel ${f.channelId} cannot be reused (closed or not found on-chain).`)}}T?.opened&&T.authorizedSigner.toLowerCase()!==FA(C).toLowerCase()&&(T=void 0);let E;if(T?.opened)T.cumulativeAmount+=y,E=await aj(h,i,T.channelId,T.cumulativeAmount,g,m,C),l(T);else{let e=await oj(h,i,{voucherSigner:C,escrowContract:g,payee:_,currency:v,deposit:S,initialAmount:y,chainId:m,feePayer:p?.feePayer});s.set(w,e.entry),c.set(e.entry.channelId,w),o.set(e.entry.channelId,g),E=e.payload,l(e.entry)}return ij(t,E,m,i)}async function p(t,i,a){let u=t.request.methodDetails?.chainId??0,f=await r({chainId:u}),p=a.action,{channelId:m,transaction:h}=a,g=e.voucherSigner??i,_=m,v=a.cumulativeAmountRaw?BigInt(a.cumulativeAmountRaw):a.cumulativeAmount?F(a.cumulativeAmount,n):void 0,y=a.additionalDepositRaw?BigInt(a.additionalDepositRaw):a.additionalDeposit?F(a.additionalDeposit,n):void 0,b=d(t,u,_);o.set(_,b);let x;switch(p){case`open`:{if(!h)throw Error(`transaction required for open action`);if(v===void 0)throw Error(`cumulativeAmount required for open action`);let e=await WA(f,i,{channelId:_,cumulativeAmount:v},b,u,g);x={action:`open`,type:`transaction`,channelId:_,transaction:h,authorizedSigner:FA(g),cumulativeAmount:v.toString(),signature:e};break}case`topUp`:if(!h)throw Error(`transaction required for topUp action`);if(y===void 0)throw Error(`additionalDeposit required for topUp action`);x={action:`topUp`,type:`transaction`,channelId:_,transaction:h,additionalDeposit:y.toString()};break;case`voucher`:{if(v===void 0)throw Error(`cumulativeAmount required for voucher action`);x=await aj(f,i,_,v,b,u,g);let e=c.get(_);if(e){let t=s.get(e);t&&(t.cumulativeAmount=t.cumulativeAmount>v?t.cumulativeAmount:v,l(t))}break}case`close`:{if(v===void 0)throw Error(`cumulativeAmount required for close action`);let e=await WA(f,i,{channelId:_,cumulativeAmount:v},b,u,g);x={action:`close`,channelId:_,cumulativeAmount:v.toString(),signature:e};let t=c.get(_);if(t){let e=s.get(t);e&&(e.opened=!1,e.cumulativeAmount=e.cumulativeAmount>v?e.cumulativeAmount:v,l(e))}break}}return ij(t,x,u,i)}return jT(KT,{canHandleChallenge({challenge:e}){let t=Sx(e.request.methodDetails,Ex.sessionProtocol);return t===void 0||t===Dx.v1},context:uj,async createCredential({challenge:t,context:n}){let o=t.request.methodDetails?.chainId??0,s=await r({chainId:o}),c=i(s,n);if(!n?.action&&(e.deposit!==void 0||a!==void 0))return f(t,c,n);if(n?.action)return p(t,c,n);throw Error("No `action` in context and no `deposit` or `maxDeposit` configured. Either provide context with action/channelId/cumulativeAmount, or configure `deposit`/`maxDeposit` for auto-management.")}})}var uj,dj=L((()=>{Ox(),MT(),qk(),$k(),Wx(),IA(),JD(),JT(),YA(),cj(),uj=X.object({account:X.optional(X.custom()),action:X.optional(X.enum([`open`,`topUp`,`voucher`,`close`])),channelId:X.optional(X.string()),cumulativeAmount:X.optional(Px()),cumulativeAmountRaw:X.optional(X.string()),transaction:X.optional(X.string()),additionalDeposit:X.optional(Px()),additionalDepositRaw:X.optional(X.string()),depositRaw:X.optional(X.string())})}));function fj(e){let t=e.allowCustomEscrow??!1,n=e.fetch??globalThis.fetch,r=e.webSocket??globalThis.WebSocket,i=e.maxDeposit===void 0?null:F(e.maxDeposit,e.decimals??6),a=null,o=null,s=null,c=0n,l=0n,u=null,d=null,f=null,p=null,m=null,h=null,g=null,_=0n,v=0n,y=lj({account:e.account,allowCustomEscrow:t,voucherSigner:e.voucherSigner,getClient:e.client?()=>e.client:e.getClient,escrowContract:e.escrowContract,decimals:e.decimals,maxDeposit:e.maxDeposit,onChannelUpdate(e){e.channelId!==a?.channelId&&(c=0n,l=0n),a=e}}),b=mw({fetch:n,methods:[y],onChallenge:async(e,t)=>{o=e},orderChallenges:e.orderChallenges});function x(e){if(!e||e.channelId!==a?.channelId)return;S(e);let t=BigInt(e.acceptedCumulative),n=BigInt(e.spent);c=c>t?c:t,l=l>n?l:n}function S(e){if(!a||e.channelId!==a.channelId)return;let t=BigInt(e.acceptedCumulative),n=BigInt(e.spent);if(n>t)throw Error(`receipt spent exceeds accepted cumulative voucher amount`);if(t>a.cumulativeAmount)throw Error(`receipt accepted cumulative exceeds local voucher state`);if(n>a.cumulativeAmount)throw Error(`receipt spent exceeds local voucher state`);A(t),A(n)}function C(e=()=>!0){if(g)throw Error(`receipt wait already in progress`);return new Promise((t,n)=>{g={predicate:e,resolve:t,reject:n}})}function w(){if(p)return Promise.resolve(p);if(m)throw Error(`close-ready wait already in progress`);return new Promise((e,t)=>{m={resolve:e,reject:t}})}function T(e){if(!g||!g.predicate(e))return;let t=g;g=null,t.resolve(e)}function E(e){if(p=e,!m)return;let t=m;m=null,t.resolve(e)}function D(e){if(!g)return;let t=g;g=null,t.reject(e)}function O(e){if(!m)return;let t=m;m=null,t.reject(e)}function k(e,t){if(p&&p.challengeId===e.id&&p.channelId===t)return p.spent;let n=a?.channelId===t?a.cumulativeAmount:0n;if(v>0n){let e=_*v,t=l>e?l:e;return(t>n?n:t).toString()}return(l>c?l:c).toString()}function A(e){if(i!==null&&!(e<=i))throw Error(`requested voucher amount ${e} exceeds local maxDeposit ${i}`)}function ee(e){let t=e.headers.get(Y.paymentReceipt),n=t?oE(t):null;return x(n),Object.assign(e,{receipt:n,challenge:o,channelId:a?.channelId??null,cumulative:a?.cumulativeAmount??0n})}async function j(e,t){return s=e,ee(await b(e,t))}function te(e){let t=new Map,n=!1,r=[],i=e.readyState,a=(e,n,i)=>{let a=t.get(e);if(a||(a=new Set,t.set(e,a)),a.add({once:typeof i==`object`&&i.once===!0,value:n}),e===`message`&&r){let e=r;r=null;for(let t of e)s(`message`,t)}},o=(e,n)=>{let r=t.get(e);if(r)for(let e of r)e.value===n&&r.delete(e)},s=(e,a)=>{if(e===`close`){if(n)return;n=!0,i=mj.CLOSED,r=null}if(e===`open`&&(i=mj.OPEN),e===`message`&&r){r.push(a);return}let o=`on${e}`,s=c[o];typeof s==`function`&&s(a);let l=t.get(e);if(l)for(let e of Array.from(l))typeof e.value==`function`?e.value(a):e.value.handleEvent(a),e.once&&l.delete(e)},c={addEventListener:a,close(t,n){e.close(t,n)},get bufferedAmount(){return e.bufferedAmount},get extensions(){return e.extensions},on(e,t){a(e,t)},onclose:null,onerror:null,_onmessage:null,get onmessage(){return c._onmessage},set onmessage(e){if(c._onmessage=e,e&&r){let e=r;r=null;for(let t of e)s(`message`,t)}},onopen:null,off(e,t){o(e,t)},get protocol(){return e.protocol},get readyState(){return i},removeEventListener:o,send(t){e.send(t)},get url(){return e.url}};return{emit:s,socket:c}}return{get channelId(){return a?.channelId},get cumulative(){return a?.cumulativeAmount??0n},get opened(){return a?.opened??!1},async open(e){if(a?.opened)return;if(!o)throw Error(`No challenge available. Make a request first to receive a 402 challenge, or pass a challenge via .fetch()/.sse().`);let t=e?.deposit,r=await y.createCredential({challenge:o,context:{...t!==void 0&&{depositRaw:t.toString()}}});if(!s)throw Error(`No URL available — call fetch() or sse() before open().`);let i=await n(s,{method:`POST`,headers:{[Y.authorization]:r}});if(!i.ok){let e=await i.text().catch(()=>``),t=i.headers.get(Y.wwwAuthenticate)??``;throw Error(`Open request failed with status ${i.status}${e?`: ${e}`:``}${t?` [${Y.wwwAuthenticate}: ${t}]`:``}`)}},fetch:j,async sse(e,t){let{onReceipt:r,signal:i,...s}=t??{},c=await j(e,{...s,headers:{...gw(s.headers),Accept:`text/event-stream`},...i?{signal:i}:{}}),l=o;if(!c.body)throw Error(`Response has no body.`);let u=c.body.getReader(),d=new TextDecoder;async function*f(){let t=``;try{for(;!i?.aborted;){let{done:i,value:o}=await u.read();if(i)break;t+=d.decode(o,{stream:!0});let s=t.split(`
232
+ `)}function uO(e,t,n){if(OO.has(e)&&typeof t==`string`)return`${t} ${X.dim(`(${yO(BigInt(t),n.tokenSymbol,n.tokenDecimals)})`)}`;if(e===`chainId`&&typeof t==`number`){let e=CO({id:t,name:``});return e?`${t} ${X.dim(`(${e})`)}`:String(t)}return typeof t==`string`&&/^0x[0-9a-fA-F]{40}$/.test(t)?n.explorerUrl?pO(`${n.explorerUrl}/address/${t}`,t):t:typeof t==`string`&&/^https?:\/\//.test(t)?X.link(t,t):String(t)}function dO(e){try{let t=e.replace(/^0x0*/,``);if(!t)return;let n=Uint8Array.from(t.match(/.{1,2}/g).map(e=>Number.parseInt(e,16))),r=new TextDecoder().decode(n);return/^[\x20-\x7e]+$/.test(r)?r:void 0}catch{return}}function fO(e,t){if(e===`realm`&&typeof t==`string`)try{let e=new URL(t.includes(`://`)?t:`https://${t}`);return X.link(e.href,t)}catch{}return String(t)}function pO(e,t){return X.link(e,t)}function mO(e){if(!e)return{};let t=Array.isArray(e)?e:[e],n={};for(let e of t){let t=e.indexOf(`=`);if(t===-1)throw Error(`Invalid method option format: ${e} (expected key=value)`);n[e.slice(0,t)]=e.slice(t+1)}return n}function hO(e=process.env){if(e.CLAUDECODE)return!0;for(let[t,n]of Object.entries(e))if(n&&(t===`CODEX`||t.startsWith(`CODEX_`)))return!0;return!1}function gO(e){return e.startsWith(`tempo:`)}function _O(e){let t=P.createInterface({input:process.stdin,output:process.stderr});return new Promise(n=>{t.on(`close`,()=>n(void 0)),t.question(`${X.bold(`▸ ${e}:`)} `,e=>{t.close(),n(e.trim()||void 0)})})}function vO(e,t=!1){let n=P.createInterface({input:process.stdin,output:process.stderr});return new Promise(r=>{let i=t?`(Y/n)`:`(y/N)`;n.question(`${X.bold(`▸ ${e}`)} ${X.dim(i)} `,e=>{n.close();let i=e.trim().toLowerCase();r(i===``?t:i===`y`)})})}function yO(e,t,n=6,r){let[i,a]=(Number(e)/10**n).toString().split(`.`),o=i.replace(/\B(?=(\d{3})+(?!\d))/g,`_`),s=r?.explorerUrl&&r.token?X.dim(X.link(`${r.explorerUrl}/token/${r.token}`,t,!0)):X.dim(t);return`${a?`${o}.${a}`:o} ${s}`}function bO(e,t={}){return e??(t.network?kO[t.network]:void 0)??(process.env.MPPX_RPC_URL?.trim()||process.env.RPC_URL?.trim()||void 0)}function xO(e={}){if(e.network)return e.network;if(!e.rpcUrl&&!(process.env.MPPX_RPC_URL?.trim()||process.env.RPC_URL?.trim()))return`testnet`}async function SO(e={}){let t=bO(e.rpcUrl,{network:e.network});if(!t)return ve;let{getChainId:n}=await import(`viem/actions`),r=await n(ie({transport:fe(t)})),i=Object.values(await import(`viem/tempo/chains`)).filter(e=>typeof e==`object`&&!!e&&`id`in e&&e.id===r),a=i.find(e=>`serializers`in e&&e.serializers)??i[0];if(!a)throw Error(`Unknown chain ID ${r} from RPC ${t}`);return a}function CO(e){return{[ve.id]:`mainnet`,[ye.id]:`testnet`}[e.id]??e.name}function wO(e){return typeof e==`bigint`?e:e.amount}function TO(e){return e.id!==ve.id}async function EO(e,t,n){let{Actions:r}=await import(`viem/tempo`),[i,a]=await Promise.all([r.token.getBalance(e,{account:n,token:t}).then(wO).catch(()=>0n),r.token.getMetadata(e,{token:t}).catch(()=>({symbol:t}))]);return{balance:i,symbol:{"0x20c0000000000000000000000000000000000000":`PathUSD`,"0x20C000000000000000000000b9537d11c60E8b50":`USDC`}[t]??a.symbol,decimals:`decimals`in a&&typeof a.decimals==`number`?a.decimals:6,token:t}}async function DO(e,t){if(t?.chain){let n=ie({chain:t.chain,transport:fe(t.rpcUrl)}),r=t.chain.blockExplorers?.default?.url,i=X.dim(`(${CO(t.chain)})`);return TO(t.chain)?(await Promise.all(NO.map(t=>EO(n,t,e)))).filter(e=>e.balance>0n).map(e=>`${yO(e.balance,e.symbol,e.decimals,{explorerUrl:r,token:e.token})} ${i}`):(await Promise.all(MO.map(t=>EO(n,t,e)))).map(e=>`${yO(e.balance,e.symbol,e.decimals,{explorerUrl:r,token:e.token})} ${i}`)}let n=ie({chain:ve,transport:fe(bO())}),r=ve.blockExplorers?.default?.url,i=(await Promise.all(MO.map(t=>EO(n,t,e)))).map(e=>yO(e.balance,e.symbol,e.decimals,{explorerUrl:r,token:e.token}));if(t?.includeTestnet!==!1){let t=ie({chain:ye,transport:fe()}),n=ye.blockExplorers?.default?.url,r=await Promise.all(NO.map(n=>EO(t,n,e)));for(let e of r)e.balance>0n&&i.push(`${yO(e.balance,e.symbol,e.decimals,{explorerUrl:n,token:e.token})} ${X.dim(`(testnet)`)}`)}return i}var X,OO,kO,AO,jO,MO,NO,PO=F((()=>{oO(),X=(()=>{let e=process||{},t=e.argv||[],n=e.env||{},r=!(n.NO_COLOR||t.includes(`--no-color`))&&(!!n.FORCE_COLOR||t.includes(`--color`)||(e.stdout||{}).isTTY&&n.TERM!==`dumb`||!!n.CI),i=(e,t,n,r)=>{let i=``,a=0,o=r;do i+=e.substring(a,o)+n,a=o+t.length,o=e.indexOf(t,a);while(~o);return i+e.substring(a)},a=r?(e,t,n=e)=>r=>{let a=`${r}`,o=a.indexOf(t,e.length);return~o?e+i(a,t,n,o)+t:e+a+t}:()=>String;return{isColorSupported:r,reset:a(`\x1B[0m`,`\x1B[0m`),bold:a(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:a(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:a(`\x1B[3m`,`\x1B[23m`),underline:a(`\x1B[4m`,`\x1B[24m`),inverse:a(`\x1B[7m`,`\x1B[27m`),hidden:a(`\x1B[8m`,`\x1B[28m`),strikethrough:a(`\x1B[9m`,`\x1B[29m`),black:a(`\x1B[30m`,`\x1B[39m`),red:a(`\x1B[31m`,`\x1B[39m`),green:a(`\x1B[32m`,`\x1B[39m`),yellow:a(`\x1B[33m`,`\x1B[39m`),blue:a(`\x1B[34m`,`\x1B[39m`),magenta:a(`\x1B[35m`,`\x1B[39m`),cyan:a(`\x1B[36m`,`\x1B[39m`),white:a(`\x1B[37m`,`\x1B[39m`),gray:a(`\x1B[90m`,`\x1B[39m`),bgBlack:a(`\x1B[40m`,`\x1B[49m`),bgRed:a(`\x1B[41m`,`\x1B[49m`),bgGreen:a(`\x1B[42m`,`\x1B[49m`),bgYellow:a(`\x1B[43m`,`\x1B[49m`),bgBlue:a(`\x1B[44m`,`\x1B[49m`),bgMagenta:a(`\x1B[45m`,`\x1B[49m`),bgCyan:a(`\x1B[46m`,`\x1B[49m`),bgWhite:a(`\x1B[47m`,`\x1B[49m`),blackBright:a(`\x1B[90m`,`\x1B[39m`),redBright:a(`\x1B[91m`,`\x1B[39m`),greenBright:a(`\x1B[92m`,`\x1B[39m`),yellowBright:a(`\x1B[93m`,`\x1B[39m`),blueBright:a(`\x1B[94m`,`\x1B[39m`),magentaBright:a(`\x1B[95m`,`\x1B[39m`),cyanBright:a(`\x1B[96m`,`\x1B[39m`),whiteBright:a(`\x1B[97m`,`\x1B[39m`),bgBlackBright:a(`\x1B[100m`,`\x1B[49m`),bgRedBright:a(`\x1B[101m`,`\x1B[49m`),bgGreenBright:a(`\x1B[102m`,`\x1B[49m`),bgYellowBright:a(`\x1B[103m`,`\x1B[49m`),bgBlueBright:a(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:a(`\x1B[105m`,`\x1B[49m`),bgCyanBright:a(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:a(`\x1B[107m`,`\x1B[49m`),link(e,t,n){return r?`\x1b]8;;${e}\x07${n?t:X.underline(t)}\x1b]8;;\x07`:t}}})(),OO=new Set([`amount`,`suggestedDeposit`,`minVoucherDelta`]),kO={mainnet:aO[tO.mainnet],testnet:aO[tO.testnet]},AO=`0x20c0000000000000000000000000000000000000`,jO=`0x20C000000000000000000000b9537d11c60E8b50`,MO=[AO,jO],NO=[`0x20c0000000000000000000000000000000000000`,`0x20c0000000000000000000000000000000000001`,`0x20c0000000000000000000000000000000000002`,`0x20c0000000000000000000000000000000000003`]}));function FO(){let e=Number.parseInt(process.env.MPPX_KEYCHAIN_COMMAND_TIMEOUT_MS??``,10);return Number.isFinite(e)&&e>0?e:qO}function IO(e,t){return`code`in e&&e.code===`ENOENT`&&e.message.includes(t)}function LO(e){return new I({code:`KEYCHAIN_UNAVAILABLE`,message:`Linux keyring requires secret-tool. Install libsecret-tools.`,hint:`On Debian/Ubuntu, run: sudo apt install libsecret-tools gnome-keyring dbus-x11`,exitCode:69,cause:e})}function RO(e){if(e&&IO(e,`secret-tool`))throw LO(e)}function zO(e,t){return new Promise(n=>{m.execFile(e,t,{timeout:FO()},(e,t,r)=>{n({stdout:t.trim(),stderr:r.trim(),error:e})})})}function BO(){let e=c.join(process.env.XDG_CONFIG_HOME||c.join(b.homedir(),`.config`),`mppx`,`default`);return{get(){try{return t.readFileSync(e,`utf-8`).trim()||`main`}catch{return`main`}},set(n){t.mkdirSync(c.dirname(e),{recursive:!0}),t.writeFileSync(e,n,`utf-8`)},clear(){try{t.unlinkSync(e)}catch{}}}}function VO(e){return e||(process.env.MPPX_ACCOUNT?.trim()?process.env.MPPX_ACCOUNT:BO().get())}function HO(e=`main`){let t=KO;return{async list(){let e=b.platform();if(e===`darwin`){let{stdout:e,error:n}=await zO(`security`,[`dump-keychain`]);if(n)return[];let r=[],i=e.split(`keychain:`);for(let e of i){let n=e.match(/"svce"<blob>="([^"]*)"/),i=e.match(/"acct"<blob>="([^"]*)"/);n?.[1]===t&&i?.[1]&&r.push(i[1])}return r}if(e===`linux`){let{stdout:e,stderr:n,error:r}=await zO(`secret-tool`,[`search`,`--all`,`--unlock`,`service`,t]);if(RO(r),r)return[];let i=`${e}\n${n}`,a=[],o=i.matchAll(/\baccount = (.+)/g);for(let e of o)e[1]&&a.push(e[1]);return a}throw Error(`Unsupported platform: ${e}`)},async get(){let n=b.platform();if(n===`darwin`){let{stdout:n,error:r}=await zO(`security`,[`find-generic-password`,`-s`,t,`-a`,e,`-w`]);return r?void 0:n}if(n===`linux`){let{stdout:n,error:r}=await zO(`secret-tool`,[`lookup`,`service`,t,`account`,e]);return RO(r),r?void 0:n||void 0}throw Error(`Unsupported platform: ${n}`)},async set(n){let r=b.platform();if(r===`darwin`){await zO(`security`,[`delete-generic-password`,`-s`,t,`-a`,e]);let{error:r}=await zO(`security`,[`add-generic-password`,`-s`,t,`-a`,e,`-w`,n]);if(r)throw r;return}if(r===`linux`){let r=m.execFile(`secret-tool`,[`store`,`--label`,`${t} ${e}`,`service`,t,`account`,e]),i=setTimeout(()=>r.kill(),FO());return r.stdin?.write(n),r.stdin?.end(),new Promise((e,t)=>{r.on(`close`,n=>{clearTimeout(i),n===0?e():t(Error(`secret-tool exited with code ${n}`))}),r.on(`error`,e=>{clearTimeout(i),t(IO(e,`secret-tool`)?LO(e):e)})})}throw Error(`Unsupported platform: ${r}`)},async delete(){let n=b.platform();if(n===`darwin`){await zO(`security`,[`delete-generic-password`,`-s`,t,`-a`,e]);return}if(n===`linux`){let{error:n}=await zO(`secret-tool`,[`clear`,`service`,t,`account`,e]);RO(n);return}throw Error(`Unsupported platform: ${n}`)}}}async function UO(e){let{privateKeyToAccount:t}=await import(`viem/accounts`),n=process.env.MPPX_PRIVATE_KEY?.trim();if(n)return{account:t(n),source:`environment`};let r=VO(e),i=await HO(r).get();if(i)return{account:t(i),accountName:r,source:`keychain`};throw Error(`Account "${r}" not found.`)}async function WO(e){let t=VO(e);if(!process.env.MPPX_PRIVATE_KEY?.trim()&&gO(t))throw new I({code:`UNSUPPORTED_ACCOUNT`,message:`Persistent sessions require an mppx account or MPPX_PRIVATE_KEY.`,exitCode:2});return UO(e).catch(e=>{throw new I({code:`ACCOUNT_NOT_FOUND`,message:e instanceof Error?e.message:`No account found.`,exitCode:69,...e instanceof Error&&{cause:e}})})}async function GO(e){return(await UO(e)).account}var KO,qO,JO=F((()=>{PO(),KO=`mppx`,qO=1e4}));const YO=Symbol(`mppx.x402.asset`);function XO(e){return{[YO]:!0,address:e.address,decimals:e.decimals,network:e.network,transfer:e.transfer}}function ZO(e,t){let n=e(t.chainId);return XO({address:n.address,decimals:n.decimals,network:sk(t.chainId),transfer:lk(t.transfer,n)})}const QO={USDC:XO({address:`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`,decimals:6,network:`eip155:8453`,transfer:{name:`USD Coin`,type:`eip3009`,version:`2`}})},$O={USDC:XO({address:`0x036CbD53842c5426634e7929541eC2318f3dCF7e`,decimals:6,network:`eip155:84532`,transfer:{name:`USDC`,type:`eip3009`,version:`2`}})},ek={USDC:XO({address:`0xcebA9300f2b948710d2653dD7B07f33A8B32118C`,decimals:6,network:`eip155:42220`,transfer:{name:`USDC`,type:`eip3009`,version:`2`}}),USDT:XO({address:`0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e`,decimals:6,network:`eip155:42220`,transfer:{name:`Tether USD`,type:`eip3009`,version:`1`}})},tk={USDC:XO({address:`0x01C5C0122039549AD1493B8220cABEdD739BC44E`,decimals:6,network:`eip155:11142220`,transfer:{name:`USDC`,type:`eip3009`,version:`2`}})};function nk(e){return typeof e!=`object`||!e?!1:e[YO]===!0}function rk(e){return typeof e==`function`&&typeof e.addresses==`object`&&typeof e.decimals==`number`}function ik(e){return typeof e==`string`}function ak(e,t){if(nk(e))return e.network===t?{address:e.address,decimals:e.decimals,transfer:e.transfer}:void 0;if(rk(e)){let n=e.addresses[ck(t)];return n?{address:n,decimals:e.decimals,name:e.name}:void 0}return{address:e}}function ok(e,t,n){let r=ak(e,n);return r?ue(r.address)===ue(t):!1}function sk(e){return`eip155:${e}`}function ck(e){return Number(e.slice(7))}function lk(e,t){if(e.type!==`eip3009`)return e;if(e.name)return{...e,name:e.name};if(!t.name)throw Error(`EIP-3009 token assets require a token name.`);return{...e,name:t.name}}var uk=Je({base:()=>QO,baseSepolia:()=>$O,celo:()=>ek,celoSepolia:()=>tk,define:()=>XO,fromToken:()=>ZO,isAsset:()=>nk,isRawAddress:()=>ik,isToken:()=>rk,matches:()=>ok,resolve:()=>ak,toChainId:()=>ck,toNetwork:()=>sk}),dk=Je({base:()=>fk,baseSepolia:()=>pk,celo:()=>mk,celoSepolia:()=>hk});const fk=8453,pk=84532,mk=42220,hk=11142220;Fx();function gk(e){let t=[Px(e.accepted),Px(e.resource),Px(e.extensions)].join(`|`);return k.sha256(ne.fromString(t),{as:`Hex`})}ZC(),wC();async function _k(e){let t=e.context?.account??e.config.account;if(!t?.signTypedData)throw Error(`x402 exact requires a typed-data signer.`);let n=e.challenge.request,r=tC(n);if(xk(e.config,r),!n.resource)throw Error(`x402 exact EIP-3009 requires resource information.`);let i=n.extensions?.mppx?Ck(n.extensions):n.extensions,a=r.extra?.assetTransferMethod??`eip3009`;if(a!==`eip3009`)throw Error(`x402 exact ${String(a)} signing is not implemented yet.`);let o=r.extra?.name,s=r.extra?.version;if(typeof o!=`string`||typeof s!=`string`)throw Error(`x402 exact EIP-3009 requires token name and version.`);let c=Math.floor(Date.now()/1e3),l={from:ue(t.address),nonce:i?.mppx?gk({accepted:r,extensions:i,resource:n.resource}):Tk(),to:ue(r.payTo),validAfter:(c-600).toString(),validBefore:(c+r.maxTimeoutSeconds).toString(),value:r.amount},u=await t.signTypedData({domain:{chainId:bk(r.network),name:o,verifyingContract:ue(r.asset),version:s},message:{...l,value:BigInt(l.value),validAfter:BigInt(l.validAfter),validBefore:BigInt(l.validBefore)},primaryType:`TransferWithAuthorization`,types:yk});return YC({accepted:r,...i?{extensions:i}:{},payload:{authorization:l,signature:u},...n.resource?{resource:n.resource}:{},x402Version:2})}function vk(e){let t=e.challenge.request,n;try{n=tC(t),xk(e.config,n)}catch{return!1}if(!t.resource||(n.extra?.assetTransferMethod??`eip3009`)!==`eip3009`)return!1;let r=n.extra?.name,i=n.extra?.version;return typeof r==`string`&&typeof i==`string`}const yk={TransferWithAuthorization:[{name:`from`,type:`address`},{name:`to`,type:`address`},{name:`value`,type:`uint256`},{name:`validAfter`,type:`uint256`},{name:`validBefore`,type:`uint256`},{name:`nonce`,type:`bytes32`}]};function bk(e){return Number(e.slice(iC.length))}function xk(e,t){let n=bk(t.network);if(e.networks&&!e.networks.includes(n))throw Error(`x402 exact chain ID is not allowed: ${n}.`);let r=e.currencies??e.assets;if(r?.some(e=>ik(e))&&!e.networks?.length)throw Error(`x402 exact raw currency allowlists require networks.`);if(r){let e=ue(t.asset);if(!r.some(n=>ok(n,e,t.network)))throw Error(`x402 exact currency is not allowed: ${e}.`)}if(e.maxAtomicAmount!==void 0&&BigInt(t.amount)>BigInt(e.maxAtomicAmount))throw Error(`x402 exact amount exceeds maxAtomicAmount.`);if(e.maxAmount!==void 0){let n=Sk(e,t);if(n===void 0)throw Error(`x402 exact maxAmount requires currency decimals.`);if(BigInt(t.amount)>N(e.maxAmount,n))throw Error(`x402 exact amount exceeds maxAmount.`)}}function Sk(e,t){let n=e.currencies??e.assets,r=ue(t.asset),i=n?.find(e=>ok(e,r,t.network)),a=i?ak(i,t.network):void 0;return a?.decimals===void 0?e.decimals:a.decimals}function Ck(e){let t=e.mppx;return t?{...e,mppx:{...t,info:{...t.info,nonce:wk()}}}:e}function wk(){return Ek().slice(2)}function Tk(){return Ek()}function Ek(){let e=globalThis.crypto;if(!e?.getRandomValues)throw Error(`x402 exact requires crypto randomness.`);let t=e.getRandomValues(new Uint8Array(32));return`0x${Array.from(t,e=>e.toString(16).padStart(2,`0`)).join(``)}`}qx();const Dk=[`authorization`],Ok=J.string().check(J.regex(/^\d+$/,`Invalid atomic amount`));J.object({name:J.string().check(J.minLength(1)),version:J.string().check(J.minLength(1))});const kk=J.object({chainId:J.number(),credentialTypes:J.optional(J.array(J.enum(Dk)).check(J.minLength(1))),decimals:J.optional(J.number()),permit2Address:J.optional(Hx()),splits:J.optional(J.array(J.object({amount:Ok,recipient:Hx()})))});J.object({amount:Ok,currency:Hx(),description:J.optional(J.string()),externalId:J.optional(J.string()),methodDetails:kk,recipient:Hx()});const Ak=J.object({amount:Lx(),chainId:J.number(),currency:Hx(),credentialTypes:J.optional(J.array(J.enum(Dk)).check(J.minLength(1))),decimals:J.number(),description:J.optional(J.string()),externalId:J.optional(J.string()),permit2Address:J.optional(Hx()),recipient:Hx(),splits:J.optional(J.array(J.object({amount:Ok,recipient:Hx()})))}),jk=J.object({from:Hx(),nonce:Ux(),signature:Gx(),to:Hx(),type:J.literal(`authorization`),validAfter:Ok,validBefore:Ok,value:Ok}),Mk={TransferWithAuthorization:[{name:`from`,type:`address`},{name:`to`,type:`address`},{name:`value`,type:`uint256`},{name:`validAfter`,type:`uint256`},{name:`validBefore`,type:`uint256`},{name:`nonce`,type:`bytes32`}]};function Nk(e){return{chainId:e.chainId,name:e.authorization.name,verifyingContract:e.currency,version:e.authorization.version}}function Pk(e){return k.keccak256(ne.fromString(`${e.id}${e.realm}`),{as:`Hex`})}function Fk(e){return`eip155:${e}`}function Ik(e){return`did:pkh:eip155:${e.chainId}:${e.address}`}WT(),qx();const Lk=HT({name:`evm`,intent:`charge`,schema:{credential:{payload:jk},request:J.pipe(Ak,J.transform(({amount:e,chainId:t,credentialTypes:n=[`authorization`],currency:r,decimals:i,permit2Address:a,recipient:o,splits:s,...c})=>({...c,amount:N(e,i).toString(),currency:ue(r),methodDetails:{chainId:t,credentialTypes:n,decimals:i,...a?{permit2Address:ue(a)}:{},...s?{splits:s}:{}},recipient:ue(o)})))}});ZS(),WT(),CS(),qx();function Rk(e){return UT(Lk,{canHandleChallenge({challenge:t}){return!zk(t)||vk({challenge:t,config:e})},context:J.object({account:J.optional(J.custom())}),async createCredential({challenge:t,context:n}){if(zk(t))return _k({challenge:t,config:e,context:n});let r=n?.account??e.account;if(!r?.signTypedData)throw Error(`EVM authorization requires a typed-data signer.`);let i=t.request;if(Bk(e,i),!i.methodDetails.credentialTypes?.includes(`authorization`))throw Error(`EVM authorization is not accepted by this challenge.`);if(i.methodDetails.splits?.length)throw Error(`EVM authorization does not support payment splits.`);let a=Vk(e,i),o=t.expires?Math.floor(new Date(t.expires).getTime()/1e3).toString():(Math.floor(Date.now()/1e3)+300).toString();return JS(qS({challenge:t,payload:{from:ue(r.address),nonce:Pk(t),signature:await r.signTypedData({domain:Nk({authorization:a,chainId:i.methodDetails.chainId,currency:i.currency}),message:{from:ue(r.address),nonce:Pk(t),to:ue(i.recipient),validAfter:0n,validBefore:BigInt(o),value:BigInt(i.amount)},primaryType:`TransferWithAuthorization`,types:Mk}),to:ue(i.recipient),type:`authorization`,validAfter:`0`,validBefore:o,value:i.amount},source:Ik({address:ue(r.address),chainId:i.methodDetails.chainId})}))}})}function zk(e){return xS(e)&&e.request.scheme===`exact`&&typeof e.request.network==`string`}function Bk(e,t){let n=t.methodDetails.chainId,r=Fk(n);if(e.networks&&!e.networks.includes(n))throw Error(`EVM chain ID is not allowed: ${n}.`);let i=e.currencies??e.assets;if(i?.some(e=>ik(e))&&!e.networks?.length)throw Error(`EVM raw currency allowlists require networks.`);if(i){let e=ue(t.currency);if(!i.some(t=>ok(t,e,r)))throw Error(`EVM currency is not allowed: ${e}.`)}if(e.maxAtomicAmount!==void 0&&BigInt(t.amount)>BigInt(e.maxAtomicAmount))throw Error(`EVM charge amount exceeds maxAtomicAmount.`);if(e.maxAmount!==void 0){let n=Hk(e,t);if(n===void 0)throw Error(`EVM charge maxAmount requires currency decimals.`);if(BigInt(t.amount)>N(e.maxAmount,n))throw Error(`EVM charge amount exceeds maxAmount.`)}}function Vk(e,t){let n=e.currencies??e.assets,r=ue(t.currency),i=Fk(t.methodDetails.chainId),a=n?.find(e=>ok(e,r,i)),o=a?ak(a,i):void 0;if(o?.transfer?.type===`eip3009`)return{name:o.transfer.name,version:o.transfer.version};if(e.authorization)return e.authorization;throw Error(`EVM authorization requires token name and version.`)}function Hk(e,t){let n=e.currencies??e.assets,r=ue(t.currency),i=Fk(t.methodDetails.chainId),a=n?.find(e=>ok(e,r,i)),o=a?ak(a,i):void 0;return o?.decimals===void 0?e.decimals:o.decimals}function Uk(e){return[Uk.charge(e)]}(function(e){e.charge=Rk,e.assets=uk,e.chains=dk})(Uk||={});function Wk(e){return e}var Gk=F((()=>{}));CS(),JO(),Gk();function Kk(){return Wk({method:`evm`,supports:e=>e.method===`evm`&&!xS(e),async setup({challenge:e}){let t=e.request,n=t.methodDetails,r=n?.chainId,i=r?qk(r):void 0,a=t.currency,o=await GO(),s=[...Object.values(QO),...Object.values($O),...Object.values(ek),...Object.values(tk)],c=a??``;if(i&&a)try{let e=ie({chain:i,transport:fe()}),t=await Ce(e,{address:a,abi:ce,functionName:`symbol`});t&&(c=t)}catch{}return{tokenSymbol:c,tokenDecimals:n?.decimals??6,explorerUrl:i?.blockExplorers?.default?.url,methods:[...Uk({account:o,currencies:s})]}}})}function qk(e){return Object.values(Ie).find(t=>t.id===e)}function Jk(e,t){if(!Number.isInteger(t)||t<0)throw RangeError(`Decimals must be a non-negative integer.`);if(!/^-?(?:\d+(?:\.\d*)?|\.\d+)$/.test(e))throw TypeError(`Value \`${e}\` is not a valid decimal number.`);let n=e.startsWith(`-`),[r=`0`,i=``]=(n?e.slice(1):e).split(`.`),a=i.slice(0,t).padEnd(t,`0`),o=BigInt(`${r||`0`}${a}`);return i.length>t&&i[t]>=`5`&&(o+=1n),n?-o:o}qx();const Yk=J.object({customer:J.optional(J.string().check(J.minLength(1))),hooks:J.optional(J.object({inputs:J.object({tax:J.object({calculation:J.string().check(J.minLength(1))})})})),metadata:J.optional(J.record(J.string(),J.string())),receipt_email:J.optional(J.string().check(J.minLength(1)))}),Xk=J.custom(e=>typeof e==`function`),Zk=J.union([Yk,Xk]);WT(),qx();const Qk=HT({name:`stripe`,intent:`charge`,schema:{credential:{payload:J.object({externalId:J.optional(J.string()),spt:J.string()})},request:J.pipe(J.object({amount:Lx(),currency:J.string(),decimals:J.number(),description:J.optional(J.string()),externalId:J.optional(J.string()),metadata:J.optional(J.record(J.string(),J.string())),networkId:J.string(),paymentIntentOptions:J.optional(Zk),paymentMethodTypes:J.array(J.string()).check(J.minLength(1)),recipient:J.optional(J.string())}),J.transform(({amount:e,decimals:t,metadata:n,networkId:r,paymentIntentOptions:i,paymentMethodTypes:a,...o})=>({...o,amount:Jk(e,t).toString(),methodDetails:{networkId:r,paymentMethodTypes:a,...n!==void 0&&{metadata:n}}})))}});ZS(),WT(),qx();function $k(e){let{client:t,createToken:n,externalId:r,paymentMethod:i}=e;return UT(Qk,{context:J.object({paymentMethod:J.optional(J.string())}),async createCredential({challenge:e,context:a}){let o=a?.paymentMethod??i;if(!o)throw Error(`paymentMethod is required (pass via context or parameters)`);let s=e.request.amount,c=e.request.currency,l=typeof e.request.externalId==`string`?e.request.externalId:void 0,u=e.request.methodDetails?.networkId;if(!u)throw Error(`networkId is required in challenge.methodDetails`);let d=e.request.methodDetails?.metadata;if(d?.externalId)throw Error(`methodDetails.metadata.externalId is reserved; use credential externalId instead`);let f=e.expires?Math.floor(new Date(e.expires).getTime()/1e3):Math.floor(Date.now()/1e3)+3600,p=await n({amount:s,challenge:e,client:t,currency:c,expiresAt:f,metadata:d,networkId:u,paymentMethod:o}),m=l??r;return JS({challenge:e,payload:{spt:p,...m===void 0?{}:{externalId:m}}})}})}function eA(e){return[$k(e)]}(function(e){e.charge=$k})(eA||={}),wx(),PO(),Gk();function tA(){return Wk({method:`stripe`,supports(e){return e.method===`stripe`&&e.intent===`charge`},async setup({challenge:e,methodOpts:t}){let n=e.request,r=n.currency,i=rA(p.object({paymentMethod:p.string(),secretKey:p.string().optional()}),t,[`paymentMethod`,`secretKey`]),a=i.secretKey??process.env.MPPX_STRIPE_SECRET_KEY;if(!a)throw new I({code:`MISSING_ENV`,message:`MPPX_STRIPE_SECRET_KEY environment variable is required for Stripe payments.`,exitCode:2});return{tokenSymbol:r?.toUpperCase()??``,tokenDecimals:n.decimals??2,methods:[eA.charge({paymentMethod:i.paymentMethod,createToken:async({paymentMethod:e,amount:t,currency:n,networkId:r,expiresAt:i,metadata:o})=>{let s=new URLSearchParams({payment_method:e,"usage_limits[currency]":n,"usage_limits[max_amount]":t,"usage_limits[expires_at]":i.toString()}),c=nA(a),l=process.env.MPPX_STRIPE_SPT_URL?process.env.MPPX_STRIPE_SPT_URL:c?`https://api.stripe.com/v1/test_helpers/shared_payment/granted_tokens`:`https://api.stripe.com/v1/shared_payment/issued_tokens`;if(r){let e=c?`seller_details[network_id]`:`seller_details[network_business_profile]`;s.set(e,r)}if(o)for(let[e,t]of Object.entries(o))s.set(`metadata[${e}]`,t);let u={Authorization:`Basic ${btoa(`${a}:`)}`,"Content-Type":`application/x-www-form-urlencoded`,"Stripe-Version":`2026-07-29.preview`},d=await globalThis.fetch(l,{method:`POST`,headers:u,body:s});if(!d.ok){let a=await d.json();if(c&&(o||r)&&a.error.message.includes(`Received unknown parameter`)){let r=new URLSearchParams({payment_method:e,"usage_limits[currency]":n,"usage_limits[max_amount]":t,"usage_limits[expires_at]":i.toString()});if(d=await globalThis.fetch(l,{method:`POST`,headers:u,body:r}),!d.ok){let e=await d.json();throw new I({code:`STRIPE_ERROR`,message:`Failed to create SPT: ${e.error.message}`,exitCode:77})}}else throw new I({code:`STRIPE_ERROR`,message:`Failed to create SPT: ${a.error.message}`,exitCode:77})}let{id:f}=await d.json();return f}})]}},formatReceiptField(e,t){if(e===`reference`&&typeof t==`string`&&t.startsWith(`pi_`)){let e=process.env.MPPX_STRIPE_SECRET_KEY,n=`https://dashboard.stripe.com${e!==void 0&&nA(e)?`/test`:``}/payments/${t}`;return X.link(n,t,!0)}}})}function nA(e){return e.startsWith(`sk_test_`)||e.startsWith(`rk_test_`)}function rA(e,t,n){if(t&&typeof t==`object`&&!Array.isArray(t)){let e=Object.keys(t).filter(e=>!n.includes(e));if(e.length)throw Error(`Unsupported CLI method option(s): ${e.join(`, `)}`)}let r=e.safeParse(t??{});if(r.success)return r.data;let i=r.error.issues.map(e=>`${e.path.length?e.path.join(`.`):`options`}: ${e.message}`).join(`, `);throw Error(`Invalid CLI options (${i})`)}function iA(e={}){let{account:t}=e;return(e,{account:n}={})=>{let r=n??t;if(!r){if(!e.account)throw Error("No `account` provided. Pass `account` to parameters or context.");return e.account}return ge(r)}}var aA=F((()=>{}));function oA(e){return Object.fromEntries(Object.entries(e.headers??{}).filter(([e])=>e.toLowerCase()!==`content-type`))}var sA=F((()=>{}));function cA(e,t={}){return fe(e.url,{fetchFn:e.fetch,fetchOptions:{headers:oA(e)},...t})}function lA(e){let{chain:t,getClient:n,remoteFeePayer:r,rpcUrl:i}=e;return n?!t?.serializers&&!r?n:async e=>{let i=await n(e),a=i;if(r&&i.transport.key!==`feePayer`){let e=i.request.bind(i),t=Fe(oe({request:t=>e(t)},{retryCount:0}),cA(r,{retryCount:i.transport.retryCount}))({account:i.account,chain:i.chain,pollingInterval:i.pollingInterval,retryCount:0}),n=ae({...t.config,retryCount:0},t.value);a=Object.assign({},i,{request:n.request,transport:{...n.config,...n.value}})}return!t?.serializers||a.chain?.serializers?.transaction?a:Object.assign({},a,{chain:{...t,...e.chainId===void 0?{}:{id:e.chainId},...a.chain,formatters:a.chain?.formatters??t.formatters,prepareTransactionRequest:a.chain?.prepareTransactionRequest??t.prepareTransactionRequest,serializers:a.chain?.serializers?.transaction?a.chain.serializers:t.serializers}})}:({chainId:e})=>{if(!i)throw Error("No `rpcUrl` provided.");let n=e||Number(Object.keys(i)[0]),a=i[n];if(!a)throw Error(`No \`rpcUrl\` configured for \`chainId\` (${n}).`);let o=r?Fe(fe(a),cA(r)):fe(a);return ie({chain:fA[n]??{...t,id:n},transport:o})}}function uA(e,t){if(t!==void 0&&e.chain?.id!==void 0&&e.chain.id!==t)throw Error(`Chain ID mismatch: expected ${t}, got ${e.chain.id}.`)}function dA(e,t){if(e!==void 0&&(t===void 0||!e.includes(t)))throw Error(`Chain ID not allowed: ${t??`unknown`}.`)}var fA,pA=F((()=>{sA(),fA={[ve.id]:ve,[ye.id]:ye}}));function mA(e){let t=k.keccak256(ne.fromString(e),{as:`Hex`});return A.toBytes(A.slice(t,0,10))}function hA(e){let{serverId:t,clientId:n,challengeId:r}=e,i=new Uint8Array(32);return i.set(A.toBytes(_A),0),i[4]=vA,i.set(mA(t),5),n&&i.set(mA(n),15),i.set(gA(r),25),A.fromBytes(i)}function gA(e){let t=k.keccak256(ne.fromString(e),{as:`Hex`});return A.toBytes(A.slice(t,0,7))}var _A,vA,yA=F((()=>{_A=A.slice(k.keccak256(ne.fromString(`mpp`),{as:`Hex`}),0,4),vA=1}));function bA(e,t){return Ve.resolve(e).toLowerCase()===Ve.resolve(t).toLowerCase()}var xA=F((()=>{}));async function SA(e,t){let{account:n,amountOut:r,tokenOut:i,tokenIn:a,slippage:o}=t,s=a.filter(e=>!bA(e,i)),c=await Promise.allSettled([Ce(e,je.token.getBalance.call(e,{account:n,token:i})),...s.map(t=>Ce(e,je.token.getBalance.call(e,{account:n,token:t})))]),l=c[0];if(!(l.status===`fulfilled`&&l.value>=r)){for(let t=0;t<s.length;t++){let n=c[t+1];if(n.status!==`fulfilled`)continue;let a=n.value;if(a<=0n)continue;let l=s[t];try{let t=await je.dex.getBuyQuote(e,{tokenIn:l,tokenOut:i,amountOut:r});if(a>=t){let n=t+t*BigInt(Math.round(o*100))/wA;return[je.token.approve.call(e,{amount:n,spender:Me.stablecoinDex,token:l}),je.dex.buy.call({tokenIn:l,tokenOut:i,amountOut:r,maxAmountIn:n})]}}catch{}}throw new EA({currency:i})}}function CA(e,t){return e?e===!0?{tokenIn:t,slippage:1}:{tokenIn:e.tokenIn?[...e.tokenIn,...t.filter(t=>!e.tokenIn.some(e=>bA(e,t)))]:t,slippage:e.slippage??1}:!1}var wA,TA,EA,DA=F((()=>{xA(),oO(),wA=10000n,TA=[nO.pathUsd,nO.usdc],EA=class extends Error{name=`InsufficientFundsError`;constructor({currency:e}){super(`Insufficient funds: no balance in ${e} and no viable swap route from fallback currencies.`)}}}));function OA(e){let t=BigInt(e.amount),n=e.methodDetails?.splits??[],r=n.reduce((e,t)=>e+BigInt(t.amount),0n);if(r>=t)throw Error(`Invalid charge request: split total must be less than total amount.`);let i=t-r;if(i<=0n)throw Error(`Invalid charge request: primary transfer amount must be positive.`);return[{amount:i.toString(),memo:e.methodDetails?.memo,recipient:e.recipient},...n.map(e=>({amount:e.amount,memo:e.memo,recipient:e.recipient}))]}var kA=F((()=>{}));function AA(e,t,n){t&&(n&&!n.some(e=>bA(e,t))||e.some(e=>bA(e,t))||e.push(t))}async function jA(e,t,n){try{return(await je.token.getBalance(e,{account:t,token:n})).amount>0n}catch{return!1}}function MA(e){let t=e.chain?.feeToken;if(t)return Ne.toAddress(t);let n=e.chain?.id;return n?rO[n]:void 0}function NA(e){let t=[];return AA(t,nO.pathUsd),AA(t,rO[e]),t}async function PA(e){let{account:t,allowedTokens:n,candidateTokens:r,client:i,prioritizeCandidates:a}=e,o=[];if(a)for(let e of r??[])AA(o,e,n);if(AA(o,await je.fee.getUserToken(i,{account:t}).then(e=>e?.address).catch(()=>void 0),n),AA(o,MA(i),n),!a)for(let e of r??[])AA(o,e,n);for(let e of o)if(await jA(i,t,e))return e;return o[0]}var FA=F((()=>{xA(),oO()}));function IA(e){return{name:`MPP`,version:`3`,chainId:e}}function LA(e){let{account:t,challengeId:n,realm:r}=e;return{account:t,challengeId:n,realm:r}}function RA(e){let{account:t,chainId:n,challengeId:r,realm:i}=e;return{domain:IA(n),types:VA,primaryType:BA,message:LA({account:t,challengeId:r,realm:i})}}function zA(e){return`did:pkh:eip155:${e.chainId}:${e.address}`}var BA,VA,HA=F((()=>{BA=`Proof`,VA={Proof:[{name:`account`,type:`address`},{name:`challengeId`,type:`string`},{name:`realm`,type:`string`}]}})),UA,WA=F((()=>{UA=Ue({addresses:{4217:`0x20c000000000000000000000f37de3740ADec032`,42431:`0x20c000000000000000000000f37de3740ADec032`},currency:`USD`,decimals:6,name:`MACH`,symbol:`MACH`})}));function GA(e={}){let{clientId:t}=e,n=lA({chain:ve,getClient:e.getClient,rpcUrl:aO}),r=iA({account:e.account});return UT(rE,{context:KA,async createCredential({challenge:i,context:a}){let o=i.request.methodDetails?.chainId;if(e.expectedChainId!==void 0&&o!==void 0&&o!==e.expectedChainId)throw Error(`Chain ID mismatch: expected ${e.expectedChainId}, got ${o}.`);(o!==void 0||e.allowedChainIds?.length===0)&&dA(e.allowedChainIds,o);let s=o??e.expectedChainId??(e.allowedChainIds?.length===1?e.allowedChainIds[0]:void 0),c=await n({chainId:s});uA(c,s);let l=s??c.chain?.id;if(dA(e.allowedChainIds,l),l===void 0)throw Error("No `chainId` provided. Pass a chain ID in the challenge or client.");let{request:u}=i,{amount:d,methodDetails:f}=u,p=f?.supportedModes??[`pull`,`push`],m=r(c,a);if(e.expectedRecipients){let t=new Set(e.expectedRecipients.map(e=>e.toLowerCase()));if(!u.recipient||!t.has(u.recipient.toLowerCase()))throw Error(`Unexpected primary recipient: ${u.recipient}`);let n=f?.splits;if(n){for(let e of n)if(!t.has(e.recipient.toLowerCase()))throw Error(`Unexpected split recipient: ${e.recipient}`)}}if(BigInt(d)===0n)return JS({challenge:i,payload:{signature:await De(c,{account:m,...RA({account:m.address,chainId:l,challengeId:i.id,realm:i.realm})}),type:`proof`},source:zA({address:m.address,chainId:l})});let h=u.currency,g=f?.memo?f.memo:hA({challengeId:i.id,clientId:t,serverId:i.realm}),_=OA({amount:d,methodDetails:{...f,memo:g},recipient:u.recipient}).map(e=>je.token.transfer.call(c,{amount:BigInt(e.amount),...e.memo&&{memo:e.memo},to:e.recipient,token:h})),v=CA(a?.autoSwap??e.autoSwap,TA),y=await e.resolveAccount?.({account:m,chainId:l,operation:{kind:`executeCalls`,...v?{}:{calls:_}}})??m,b=(()=>{let t=a?.mode??e.mode;if(t){if(!p.includes(t))throw Error(`Challenge does not support ${t} mode.`);return t}let n=y.type===`json-rpc`?`push`:`pull`;return p.includes(n)?n:p[0]})(),x=[...(v?await SA(c,{account:y.address,amountOut:BigInt(d),tokenOut:h,tokenIn:v.tokenIn,slippage:v.slippage}):void 0)??[],..._],S=UA.addresses[l],C=NA(l),w=S&&me(h,S)?await PA({account:y.address,allowedTokens:C,candidateTokens:C,client:c,prioritizeCandidates:!0}):void 0,T=(()=>{let e=Math.floor(Date.now()/1e3)+25;if(!i.expires)return e;let t=Math.floor(new Date(i.expires).getTime()/1e3);return Math.min(e,t)})();if(b===`push`){let{receipts:e}=y.type===`local`?{receipts:[await Te(c,{account:y,calls:x,...w?{feeToken:w}:{},nonceKey:`expiring`,validBefore:T})]}:await we(c,{account:y,...w?{capabilities:{feeToken:w}}:{},calls:x,experimental_fallback:x.length===1,forceAtomic:x.length>1}),t=e?.[0]?.transactionHash;if(!t)throw Error(`No transaction receipt returned.`);return JS({challenge:i,payload:{hash:t,type:`hash`},source:zA({address:y.address,chainId:l})})}let ee=await Se(c,{account:y,calls:x,...w?{feeToken:w}:{},nonceKey:`expiring`,validBefore:T});if(ee.gas=(ee.gas??0n)+5000n,f?.feePayer){let e=ee;delete e.feePayerSignature,delete e.feeToken,e.feePayer=!0}return JS({challenge:i,payload:{signature:await Ee(c,ee),type:`transaction`},source:zA({address:y.address,chainId:l})})}})}var KA,qA=F((()=>{ZS(),WT(),aA(),pA(),qx(),yA(),DA(),kA(),oO(),FA(),HA(),oE(),WA(),KA=J.object({account:J.optional(J.custom()),autoSwap:J.optional(J.custom()),mode:J.optional(J.enum(qT))})}));function JA(e){return`accessKeyAddress`in e}function YA(e){return JA(e)?e.accessKeyAddress:e.address}var XA=F((()=>{}));function ZA(e,t){return{name:aj,version:oj,chainId:t,verifyingContract:e}}function QA(e){return{channelId:e.channelId,cumulativeAmount:e.cumulativeAmount}}function $A(e,t,n){return de({domain:ZA(e,t),types:sj,primaryType:`Voucher`,message:QA(n)})}async function ej(e,t,n,r,i){return De(e,{account:t,domain:ZA(r,i),types:sj,primaryType:`Voucher`,message:QA(n)})}function tj(e){let t=Be.from(e);if(t.type===`keychain`){if(t.inner.type!==`secp256k1`)throw Error(`Session vouchers only unwrap secp256k1 keychain signatures; pass a direct voucherSigner for other key types.`);return re.toHex(t.inner.signature)}return Be.serialize(t)}function nj(e){return e.type===`keychain`?!1:e.type===`secp256k1`||cj}function rj(e){if(!nj(e))throw Error(`Session vouchers only support secp256k1 signatures until TIP-1020 voucher verification is enabled.`)}async function ij(e,t,n,r,i,a){let o=a??t,s=YA(o),c=$A(r,i,n),l=tj(JA(o)?await o.sign({hash:c,raw:!0}):await ej(e,o,n,r,i)),u=Be.from(l);if(rj(u),!Be.verify(u,{address:s,payload:c}))throw Error(`voucher signature does not match voucher signer`);return l}var aj,oj,sj,cj,lj=F((()=>{XA(),aj=`Tempo Stream Channel`,oj=`1`,sj={Voucher:[{name:`channelId`,type:`bytes32`},{name:`cumulativeAmount`,type:`uint128`}]},cj=!1}));function uj(e){let t=te.encode(te.from([`address payer`,`address payee`,`address token`,`bytes32 salt`,`address authorizedSigner`,`address escrowContract`,`uint256 chainId`]),[e.payer,e.payee,e.token,e.salt,e.authorizedSigner,e.escrowContract,BigInt(e.chainId)]);return k.keccak256(t)}var dj=F((()=>{})),fj,pj=F((()=>{fj=[{type:`function`,name:`CLOSE_GRACE_PERIOD`,inputs:[],outputs:[{name:``,type:`uint64`,internalType:`uint64`}],stateMutability:`view`},{type:`function`,name:`VOUCHER_TYPEHASH`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`channels`,inputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:`finalized`,type:`bool`,internalType:`bool`},{name:`closeRequestedAt`,type:`uint64`,internalType:`uint64`},{name:`payer`,type:`address`,internalType:`address`},{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`authorizedSigner`,type:`address`,internalType:`address`},{name:`deposit`,type:`uint128`,internalType:`uint128`},{name:`settled`,type:`uint128`,internalType:`uint128`}],stateMutability:`view`},{type:`function`,name:`close`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`},{name:`cumulativeAmount`,type:`uint128`,internalType:`uint128`},{name:`signature`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`computeChannelId`,inputs:[{name:`payer`,type:`address`,internalType:`address`},{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`salt`,type:`bytes32`,internalType:`bytes32`},{name:`authorizedSigner`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`domainSeparator`,inputs:[],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`eip712Domain`,inputs:[],outputs:[{name:`fields`,type:`bytes1`,internalType:`bytes1`},{name:`name`,type:`string`,internalType:`string`},{name:`version`,type:`string`,internalType:`string`},{name:`chainId`,type:`uint256`,internalType:`uint256`},{name:`verifyingContract`,type:`address`,internalType:`address`},{name:`salt`,type:`bytes32`,internalType:`bytes32`},{name:`extensions`,type:`uint256[]`,internalType:`uint256[]`}],stateMutability:`view`},{type:`function`,name:`getChannel`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`}],outputs:[{name:``,type:`tuple`,internalType:`struct TempoStreamChannel.Channel`,components:[{name:`finalized`,type:`bool`,internalType:`bool`},{name:`closeRequestedAt`,type:`uint64`,internalType:`uint64`},{name:`payer`,type:`address`,internalType:`address`},{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`authorizedSigner`,type:`address`,internalType:`address`},{name:`deposit`,type:`uint128`,internalType:`uint128`},{name:`settled`,type:`uint128`,internalType:`uint128`}]}],stateMutability:`view`},{type:`function`,name:`getChannelsBatch`,inputs:[{name:`channelIds`,type:`bytes32[]`,internalType:`bytes32[]`}],outputs:[{name:`channelStates`,type:`tuple[]`,internalType:`struct TempoStreamChannel.Channel[]`,components:[{name:`finalized`,type:`bool`,internalType:`bool`},{name:`closeRequestedAt`,type:`uint64`,internalType:`uint64`},{name:`payer`,type:`address`,internalType:`address`},{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`authorizedSigner`,type:`address`,internalType:`address`},{name:`deposit`,type:`uint128`,internalType:`uint128`},{name:`settled`,type:`uint128`,internalType:`uint128`}]}],stateMutability:`view`},{type:`function`,name:`getVoucherDigest`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`},{name:`cumulativeAmount`,type:`uint128`,internalType:`uint128`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`open`,inputs:[{name:`payee`,type:`address`,internalType:`address`},{name:`token`,type:`address`,internalType:`address`},{name:`deposit`,type:`uint128`,internalType:`uint128`},{name:`salt`,type:`bytes32`,internalType:`bytes32`},{name:`authorizedSigner`,type:`address`,internalType:`address`}],outputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`}],stateMutability:`nonpayable`},{type:`function`,name:`requestClose`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`settle`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`},{name:`cumulativeAmount`,type:`uint128`,internalType:`uint128`},{name:`signature`,type:`bytes`,internalType:`bytes`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`topUp`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`},{name:`additionalDeposit`,type:`uint256`,internalType:`uint256`}],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`withdraw`,inputs:[{name:`channelId`,type:`bytes32`,internalType:`bytes32`}],outputs:[],stateMutability:`nonpayable`},{type:`event`,name:`ChannelClosed`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`settledToPayee`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`refundedToPayer`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`ChannelExpired`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`ChannelOpened`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`token`,type:`address`,indexed:!1,internalType:`address`},{name:`authorizedSigner`,type:`address`,indexed:!1,internalType:`address`},{name:`salt`,type:`bytes32`,indexed:!1,internalType:`bytes32`},{name:`deposit`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`CloseRequestCancelled`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`}],anonymous:!1},{type:`event`,name:`CloseRequested`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`closeGraceEnd`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`Settled`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`cumulativeAmount`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`deltaPaid`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`newSettled`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`TopUp`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0,internalType:`bytes32`},{name:`payer`,type:`address`,indexed:!0,internalType:`address`},{name:`payee`,type:`address`,indexed:!0,internalType:`address`},{name:`additionalDeposit`,type:`uint256`,indexed:!1,internalType:`uint256`},{name:`newDeposit`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`error`,name:`AmountExceedsDeposit`,inputs:[]},{type:`error`,name:`AmountNotIncreasing`,inputs:[]},{type:`error`,name:`ChannelAlreadyExists`,inputs:[]},{type:`error`,name:`ChannelFinalized`,inputs:[]},{type:`error`,name:`ChannelNotFound`,inputs:[]},{type:`error`,name:`CloseNotReady`,inputs:[]},{type:`error`,name:`DepositOverflow`,inputs:[]},{type:`error`,name:`InvalidPayee`,inputs:[]},{type:`error`,name:`InvalidSignature`,inputs:[]},{type:`error`,name:`NotPayee`,inputs:[]},{type:`error`,name:`NotPayer`,inputs:[]},{type:`error`,name:`TransferFailed`,inputs:[]}]}));async function mj(e,t,n){return Ce(e,{address:t,abi:fj,functionName:`getChannel`,args:[n]})}var hj=F((()=>{pj(),le({abi:fj,name:`open`}),le({abi:fj,name:`topUp`})}));function gj(e,t){return t??e}function _j(e,t,n,r=!1){let i=e.request.methodDetails?.escrowContract,a=n??iO[t];if(!a&&!(r&&i))throw Error("No trusted `escrowContract` available. Provide it in client parameters or use a supported chain.");if(i&&a&&i.toLowerCase()!==a.toLowerCase()&&(!r||n!==void 0))throw Error(`Tempo session escrow ${i} does not match client escrow ${a}.`);return i&&(!a||i.toLowerCase()!==a.toLowerCase())?i:a}function vj(e,t,n,r){return JS({challenge:e,payload:t,source:`did:pkh:eip155:${n}:${r.address}`})}async function yj(e,t,n,r,i,a,o){let s=gj(t,o),c=await ij(e,t,{channelId:n,cumulativeAmount:r},i,a,s);return{action:`voucher`,channelId:n,cumulativeAmount:r.toString(),signature:c}}async function bj(e,t,n){let{escrowContract:r,payee:i,currency:a,deposit:o,initialAmount:s,chainId:c,feePayer:l}=n,u=gj(t,n.voucherSigner),d=YA(u),f=A.random(32),p=uj({authorizedSigner:d,chainId:c,escrowContract:r,payee:i,payer:t.address,salt:f,token:a}),m=se({abi:ke.tip20,functionName:`approve`,args:[r,o]}),h=se({abi:fj,functionName:`open`,args:[i,a,o,f,d]}),g=Math.floor(Date.now()/1e3)+25,_=await Se(e,{account:t,calls:[{to:a,data:m},{to:r,data:h}],feeToken:a,nonceKey:`expiring`,validBefore:g});_.gas=(_.gas??0n)+5000n,l&&(_.feePayer=!0);let v=await Ee(e,_),y=await ij(e,t,{channelId:p,cumulativeAmount:s},r,c,u);return{entry:{authorizedSigner:d,channelId:p,salt:f,cumulativeAmount:s,escrowContract:r,chainId:c,opened:!0},payload:{action:`open`,type:`transaction`,channelId:p,transaction:v,authorizedSigner:d,cumulativeAmount:s.toString(),signature:y}}}async function xj(e,t,n,r){try{let i=await mj(e,t,n);if(i.deposit>0n&&!i.finalized)return{authorizedSigner:BigInt(i.authorizedSigner)===0n?i.payer:i.authorizedSigner,channelId:n,salt:`0x`,cumulativeAmount:i.settled,escrowContract:t,chainId:r,opened:!0}}catch{}}var Sj=F((()=>{ZS(),XA(),oO(),hj(),dj(),lj()}));function Cj(e={}){let{allowCustomEscrow:t=!1,decimals:n=6}=e,r=lA({chain:ve,getClient:e.getClient,rpcUrl:aO}),i=iA({account:e.account}),a=e.maxDeposit===void 0?void 0:N(e.maxDeposit,n),o=new Map,s=new Map,c=new Map;function l(t){e.onChannelUpdate?.(t)}function u(e,t,n){return`${e.toLowerCase()}:${t.toLowerCase()}:${n.toLowerCase()}`}function d(n,r,i){if(i){let e=o.get(i);if(e)return _j(n,r,e)}return _j(n,r,e.escrowContract,t)}async function f(t,i,f){let p=t.request.methodDetails,m=p?.chainId??0,h=await r({chainId:m}),g=d(t,m),_=t.request.recipient,v=t.request.currency,y=BigInt(t.request.amount),b=t.request.suggestedDeposit,x=b?BigInt(b):void 0,S=(()=>{if(f?.depositRaw)return BigInt(f.depositRaw);if(e.deposit!==void 0)return N(e.deposit,n);if(x!==void 0&&a!==void 0)return x<a?x:a;if(a!==void 0)return a;if(x!==void 0)return x;throw Error("No deposit amount available. Set `deposit`, `maxDeposit`, or ensure the server challenge includes `suggestedDeposit`.")})(),C=e.voucherSigner??i,w=u(_,v,g),T=s.get(w);if(!T){let e=f?.channelId??p?.channelId;if(e){let t=await xj(h,g,e,m);if(t){let e=f?.cumulativeAmountRaw?BigInt(f.cumulativeAmountRaw):f?.cumulativeAmount?N(f.cumulativeAmount,n):void 0;e!==void 0&&(t.cumulativeAmount=e),s.set(w,t),c.set(t.channelId,w),o.set(t.channelId,g),T=t,l(T)}else if(f?.channelId)throw Error(`Channel ${f.channelId} cannot be reused (closed or not found on-chain).`)}}T?.opened&&T.authorizedSigner.toLowerCase()!==YA(C).toLowerCase()&&(T=void 0);let ee;if(T?.opened)T.cumulativeAmount+=y,ee=await yj(h,i,T.channelId,T.cumulativeAmount,g,m,C),l(T);else{let e=await bj(h,i,{voucherSigner:C,escrowContract:g,payee:_,currency:v,deposit:S,initialAmount:y,chainId:m,feePayer:p?.feePayer});s.set(w,e.entry),c.set(e.entry.channelId,w),o.set(e.entry.channelId,g),ee=e.payload,l(e.entry)}return vj(t,ee,m,i)}async function p(t,i,a){let u=t.request.methodDetails?.chainId??0,f=await r({chainId:u}),p=a.action,{channelId:m,transaction:h}=a,g=e.voucherSigner??i,_=m,v=a.cumulativeAmountRaw?BigInt(a.cumulativeAmountRaw):a.cumulativeAmount?N(a.cumulativeAmount,n):void 0,y=a.additionalDepositRaw?BigInt(a.additionalDepositRaw):a.additionalDeposit?N(a.additionalDeposit,n):void 0,b=d(t,u,_);o.set(_,b);let x;switch(p){case`open`:{if(!h)throw Error(`transaction required for open action`);if(v===void 0)throw Error(`cumulativeAmount required for open action`);let e=await ij(f,i,{channelId:_,cumulativeAmount:v},b,u,g);x={action:`open`,type:`transaction`,channelId:_,transaction:h,authorizedSigner:YA(g),cumulativeAmount:v.toString(),signature:e};break}case`topUp`:if(!h)throw Error(`transaction required for topUp action`);if(y===void 0)throw Error(`additionalDeposit required for topUp action`);x={action:`topUp`,type:`transaction`,channelId:_,transaction:h,additionalDeposit:y.toString()};break;case`voucher`:{if(v===void 0)throw Error(`cumulativeAmount required for voucher action`);x=await yj(f,i,_,v,b,u,g);let e=c.get(_);if(e){let t=s.get(e);t&&(t.cumulativeAmount=t.cumulativeAmount>v?t.cumulativeAmount:v,l(t))}break}case`close`:{if(v===void 0)throw Error(`cumulativeAmount required for close action`);let e=await ij(f,i,{channelId:_,cumulativeAmount:v},b,u,g);x={action:`close`,channelId:_,cumulativeAmount:v.toString(),signature:e};let t=c.get(_);if(t){let e=s.get(t);e&&(e.opened=!1,e.cumulativeAmount=e.cumulativeAmount>v?e.cumulativeAmount:v,l(e))}break}}return vj(t,x,u,i)}return UT(iE,{canHandleChallenge({challenge:e}){let t=Tx(e.request.methodDetails,kx.sessionProtocol);return t===void 0||t===Ax.v1},context:wj,async createCredential({challenge:t,context:n}){let o=t.request.methodDetails?.chainId??0,s=await r({chainId:o}),c=i(s,n);if(!n?.action&&(e.deposit!==void 0||a!==void 0))return f(t,c,n);if(n?.action)return p(t,c,n);throw Error("No `action` in context and no `deposit` or `maxDeposit` configured. Either provide context with action/channelId/cumulativeAmount, or configure `deposit`/`maxDeposit` for auto-management.")}})}var wj,Tj=F((()=>{jx(),WT(),aA(),pA(),qx(),XA(),oO(),oE(),lj(),Sj(),wj=J.object({account:J.optional(J.custom()),action:J.optional(J.enum([`open`,`topUp`,`voucher`,`close`])),channelId:J.optional(J.string()),cumulativeAmount:J.optional(Lx()),cumulativeAmountRaw:J.optional(J.string()),transaction:J.optional(J.string()),additionalDeposit:J.optional(Lx()),additionalDepositRaw:J.optional(J.string()),depositRaw:J.optional(J.string())})}));function Ej(e){let t=e.allowCustomEscrow??!1,n=e.fetch??globalThis.fetch,r=e.webSocket??globalThis.WebSocket,i=e.maxDeposit===void 0?null:N(e.maxDeposit,e.decimals??6),a=null,o=null,s=null,c=0n,l=0n,u=null,d=null,f=null,p=null,m=null,h=null,g=null,_=0n,v=0n,y=Cj({account:e.account,allowCustomEscrow:t,voucherSigner:e.voucherSigner,getClient:e.client?()=>e.client:e.getClient,escrowContract:e.escrowContract,decimals:e.decimals,maxDeposit:e.maxDeposit,onChannelUpdate(e){e.channelId!==a?.channelId&&(c=0n,l=0n),a=e}}),b=_w({fetch:n,methods:[y],onChallenge:async(e,t)=>{o=e},orderChallenges:e.orderChallenges});function x(e){if(!e||e.channelId!==a?.channelId)return;S(e);let t=BigInt(e.acceptedCumulative),n=BigInt(e.spent);c=c>t?c:t,l=l>n?l:n}function S(e){if(!a||e.channelId!==a.channelId)return;let t=BigInt(e.acceptedCumulative),n=BigInt(e.spent);if(n>t)throw Error(`receipt spent exceeds accepted cumulative voucher amount`);if(t>a.cumulativeAmount)throw Error(`receipt accepted cumulative exceeds local voucher state`);if(n>a.cumulativeAmount)throw Error(`receipt spent exceeds local voucher state`);O(t),O(n)}function C(e=()=>!0){if(g)throw Error(`receipt wait already in progress`);return new Promise((t,n)=>{g={predicate:e,resolve:t,reject:n}})}function w(){if(p)return Promise.resolve(p);if(m)throw Error(`close-ready wait already in progress`);return new Promise((e,t)=>{m={resolve:e,reject:t}})}function T(e){if(!g||!g.predicate(e))return;let t=g;g=null,t.resolve(e)}function ee(e){if(p=e,!m)return;let t=m;m=null,t.resolve(e)}function E(e){if(!g)return;let t=g;g=null,t.reject(e)}function D(e){if(!m)return;let t=m;m=null,t.reject(e)}function te(e,t){if(p&&p.challengeId===e.id&&p.channelId===t)return p.spent;let n=a?.channelId===t?a.cumulativeAmount:0n;if(v>0n){let e=_*v,t=l>e?l:e;return(t>n?n:t).toString()}return(l>c?l:c).toString()}function O(e){if(i!==null&&!(e<=i))throw Error(`requested voucher amount ${e} exceeds local maxDeposit ${i}`)}function ne(e){let t=e.headers.get(q.paymentReceipt),n=t?vE(t):null;return x(n),Object.assign(e,{receipt:n,challenge:o,channelId:a?.channelId??null,cumulative:a?.cumulativeAmount??0n})}async function k(e,t){return s=e,ne(await b(e,t))}function A(e){let t=new Map,n=!1,r=[],i=e.readyState,a=(e,n,i)=>{let a=t.get(e);if(a||(a=new Set,t.set(e,a)),a.add({once:typeof i==`object`&&i.once===!0,value:n}),e===`message`&&r){let e=r;r=null;for(let t of e)s(`message`,t)}},o=(e,n)=>{let r=t.get(e);if(r)for(let e of r)e.value===n&&r.delete(e)},s=(e,a)=>{if(e===`close`){if(n)return;n=!0,i=Oj.CLOSED,r=null}if(e===`open`&&(i=Oj.OPEN),e===`message`&&r){r.push(a);return}let o=`on${e}`,s=c[o];typeof s==`function`&&s(a);let l=t.get(e);if(l)for(let e of Array.from(l))typeof e.value==`function`?e.value(a):e.value.handleEvent(a),e.once&&l.delete(e)},c={addEventListener:a,close(t,n){e.close(t,n)},get bufferedAmount(){return e.bufferedAmount},get extensions(){return e.extensions},on(e,t){a(e,t)},onclose:null,onerror:null,_onmessage:null,get onmessage(){return c._onmessage},set onmessage(e){if(c._onmessage=e,e&&r){let e=r;r=null;for(let t of e)s(`message`,t)}},onopen:null,off(e,t){o(e,t)},get protocol(){return e.protocol},get readyState(){return i},removeEventListener:o,send(t){e.send(t)},get url(){return e.url}};return{emit:s,socket:c}}return{get channelId(){return a?.channelId},get cumulative(){return a?.cumulativeAmount??0n},get opened(){return a?.opened??!1},async open(e){if(a?.opened)return;if(!o)throw Error(`No challenge available. Make a request first to receive a 402 challenge, or pass a challenge via .fetch()/.sse().`);let t=e?.deposit,r=await y.createCredential({challenge:o,context:{...t!==void 0&&{depositRaw:t.toString()}}});if(!s)throw Error(`No URL available — call fetch() or sse() before open().`);let i=await n(s,{method:`POST`,headers:{[q.authorization]:r}});if(!i.ok){let e=await i.text().catch(()=>``),t=i.headers.get(q.wwwAuthenticate)??``;throw Error(`Open request failed with status ${i.status}${e?`: ${e}`:``}${t?` [${q.wwwAuthenticate}: ${t}]`:``}`)}},fetch:k,async sse(e,t){let{onReceipt:r,signal:i,...s}=t??{},c=await k(e,{...s,headers:{...yw(s.headers),Accept:`text/event-stream`},...i?{signal:i}:{}}),l=o;if(!c.body)throw Error(`Response has no body.`);let u=c.body.getReader(),d=new TextDecoder;async function*f(){let t=``;try{for(;!i?.aborted;){let{done:i,value:o}=await u.read();if(i)break;t+=d.decode(o,{stream:!0});let s=t.split(`
233
233
 
234
- `);t=s.pop();for(let t of s){if(!t.trim())continue;let i=cE(t);if(i)switch(i.type){case`message`:yield i.data;break;case`payment-need-voucher`:{if(!a||!l)break;let t=BigInt(i.data.requiredCumulative);A(t),a.cumulativeAmount=a.cumulativeAmount>t?a.cumulativeAmount:t;let r=await y.createCredential({challenge:l,context:{action:`voucher`,channelId:a.channelId,cumulativeAmountRaw:a.cumulativeAmount.toString()}}),o=await n(e,{method:`POST`,headers:{Accept:`text/event-stream`,[Y.authorization]:r}});if(!o.ok)throw Error(`Voucher POST failed with status ${o.status}`);break}case`payment-receipt`:x(i.data),r?.(i.data)}}}}finally{u.releaseLock()}}return f()},async ws(t,i){if(!r)throw Error("No WebSocket implementation available. Pass `webSocket` to sessionManager() in this runtime.");let{onReceipt:c,protocols:l,signal:m}=i??{},g=new URL(t.toString()),b=new URL(g.toString());b.protocol===`ws:`&&(b.protocol=`http:`),b.protocol===`wss:`&&(b.protocol=`https:`),s=b.toString();let S=await n(b,m?{signal:m}:void 0);if(S.status!==402)throw Error(`Expected a 402 payment challenge from ${b}, received ${S.status} instead.`);let w=(await pj(ES(tS(S),[y],SS([y]).entries),i?.orderChallenges??e.orderChallenges))[0]?.challenge;if(!w)throw Error(`No payment challenge received from HTTP endpoint for this WebSocket URL. The server may not require payment or did not advertise a challenge.`);o=w;let k=await y.createCredential({challenge:w,context:{}});p=null,u=w,_=0n,v=BigInt(w.request.amount);let ee=VS(k);d=ee.payload.channelId;let j=new r(g,l);f=j;let M=te(j),N=e=>{D(Error(e)),O(Error(e)),(j.readyState===mj.CONNECTING||j.readyState===mj.OPEN)&&j.close(hj,e)},ne=e=>e.challengeId===w.id&&e.channelId===d,re=new Promise((e,t)=>{let n=()=>{j.removeEventListener(`error`,r),M.emit(`open`,{type:`open`}),e()},r=()=>{j.removeEventListener(`open`,n),t(Error(`WebSocket connection to ${g} failed to open.`))};j.addEventListener(`open`,n,{once:!0}),j.addEventListener(`error`,r,{once:!0})});return j.addEventListener(`close`,e=>{f===j&&(f=null),u===w&&(u=null),d===ee.payload.channelId&&(d=null),h=null,D(Error(`WebSocket closed before the payment flow completed.`)),O(Error(`WebSocket closed before the payment flow completed.`)),M.emit(`close`,{code:e.code??1e3,reason:e.reason??``,type:`close`,wasClean:!0})}),j.addEventListener(`error`,()=>{M.emit(`error`,{type:`error`})}),j.addEventListener(`message`,async e=>{let t=typeof e.data==`string`?e.data:void 0;if(!t)return;let n=fE(t);if(!n){M.emit(`message`,{data:t,type:`message`});return}switch(n.mpp){case`authorization`:break;case`message`:_+=1n,M.emit(`message`,{data:n.data,type:`message`});break;case`payment-close-ready`:if(!ne(n.data)){N(`received mismatched payment-close-ready frame`);break}if(BigInt(n.data.spent)>(a?.cumulativeAmount??0n)){N(`received payment-close-ready beyond local voucher state`);break}x(n.data),c?.(n.data),E(n.data),M.emit(`close`,{code:1e3,reason:`stream complete`,type:`close`});break;case`payment-error`:D(Error(n.message)),O(Error(n.message));break;case`payment-need-voucher`:{if(n.data.channelId!==d){N(`received mismatched payment-need-voucher frame`);break}let e=BigInt(n.data.requiredCumulative);try{A(e)}catch(e){N(e instanceof Error?e.message:`requested voucher amount exceeds local maxDeposit`);break}let t=(a?.cumulativeAmount??0n)>e?a?.cumulativeAmount??0n:e;a?.channelId===d&&(a.cumulativeAmount=t);let r=await y.createCredential({challenge:w,context:{action:`voucher`,channelId:d,cumulativeAmountRaw:t.toString()}});j.send(uE(r));break}case`payment-receipt`:if(!ne(n.data)){N(`received mismatched payment-receipt frame`);break}if(h!==null&&n.data.txHash&&(n.data.acceptedCumulative!==h||n.data.spent!==h)){N(`received mismatched payment-close receipt frame`);break}x(n.data),c?.(n.data),T(n.data)}}),m&&m.addEventListener(`abort`,()=>{D(Error(`WebSocket payment flow aborted.`)),O(Error(`WebSocket payment flow aborted.`)),j.close()},{once:!0}),await re,j.send(uE(k)),await C(),M.socket},async close(){let e=u??o,t=d??a?.channelId;if(!a?.opened)return;if(!e)throw Error(`Cannot close session: no challenge available. This usually means close() was called on a SessionManager instance that was recreated after the session was opened. Use the same SessionManager instance that opened the session, or make a request first to receive a fresh 402 challenge.`);if(!t)throw Error(`Cannot close session: no channel ID available. The session may not have been fully opened.`);if(f?.readyState===mj.OPEN){let n=p??await(async()=>(f.send(dE()),w()))(),r=BigInt(n.spent);if(r>(a.cumulativeAmount>l?a.cumulativeAmount:l))throw Error(`close-ready spent exceeds local voucher state`);let i=await y.createCredential({challenge:e,context:{action:`close`,channelId:t,cumulativeAmountRaw:r.toString()}}),o=r.toString();h=o;try{let n=C(n=>!!n.txHash&&n.challengeId===e.id&&n.channelId===t&&n.acceptedCumulative===o&&n.spent===o);f.send(uE(i));let r=await n;return f.close(),p=null,r}finally{h=null}}let r=await y.createCredential({challenge:e,context:{action:`close`,channelId:t,cumulativeAmountRaw:(()=>{let n=BigInt(k(e,t));if(n>a.cumulativeAmount)throw Error(`fallback close amount exceeds local voucher state`);return A(n),n.toString()})()}});if(!s)throw Error(`Cannot close session: no URL available. This usually means close() was called on a SessionManager instance that was recreated after the session was opened. Use the same SessionManager instance that opened the session, or call fetch()/sse() before close().`);let i=await n(s,{method:`POST`,headers:{[Y.authorization]:r}});if(!i.ok){let e=await i.text().catch(()=>``),t=(()=>{if(!e)return``;if(!i.headers.get(`Content-Type`)?.includes(`application/problem+json`))return e;try{return JSON.parse(e).detail??e}catch{return e}})(),n=i.headers.get(Y.wwwAuthenticate)??``;throw Error(`Close request failed with status ${i.status}${t?`: ${t}`:``}${n?` [${Y.wwwAuthenticate}: ${n}]`:``}`)}let c=i.headers.get(Y.paymentReceipt);return c?oE(c):void 0}}}async function pj(e,t){let n=t;return n?n(e):e}var mj,hj,gj=L((()=>{uS(),eT(),Ox(),JS(),BS(),_E(),dj(),mj={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},hj=3008})),_j=L((()=>{dj(),gj()}));function vj(e){return BigInt(e.authorizedSigner)===0n?e.payer:e.authorizedSigner}function yj(e){let t=O.encode(O.from([`address payer`,`address payee`,`address operator`,`address token`,`bytes32 salt`,`address authorizedSigner`,`bytes32 expiringNonceHash`,`address escrow`,`uint256 chainId`]),[e.payer,e.payee,e.operator,e.token,e.salt,e.authorizedSigner,e.expiringNonceHash,e.escrow??`0x4d50500000000000000000000000000000000000`,BigInt(e.chainId)]);return ee.keccak256(t)}function bj(e){return ze.encodeForSigning(e)}function xj(e){let{feePayer:t,transaction:n}=e;return t?{...n,feePayerSignature:null}:n}function Sj(e,t){return ee.keccak256(j.concat(bj(e),t.sender))}var Cj=L((()=>{_E()})),wj,Tj,Ej,Dj,Oj=L((()=>{wj=[{name:`payer`,type:`address`},{name:`payee`,type:`address`},{name:`operator`,type:`address`},{name:`token`,type:`address`},{name:`salt`,type:`bytes32`},{name:`authorizedSigner`,type:`address`},{name:`expiringNonceHash`,type:`bytes32`}],Tj=[{name:`settled`,type:`uint96`},{name:`deposit`,type:`uint96`},{name:`closeRequestedAt`,type:`uint32`}],Ej={name:`descriptor`,type:`tuple`,components:wj},Dj=[{type:`function`,name:`CLOSE_GRACE_PERIOD`,stateMutability:`view`,inputs:[],outputs:[{type:`uint64`}]},{type:`function`,name:`VOUCHER_TYPEHASH`,stateMutability:`view`,inputs:[],outputs:[{type:`bytes32`}]},{type:`function`,name:`open`,stateMutability:`nonpayable`,inputs:[{name:`payee`,type:`address`},{name:`operator`,type:`address`},{name:`token`,type:`address`},{name:`deposit`,type:`uint96`},{name:`salt`,type:`bytes32`},{name:`authorizedSigner`,type:`address`}],outputs:[{name:`channelId`,type:`bytes32`}]},{type:`function`,name:`settle`,stateMutability:`nonpayable`,inputs:[Ej,{name:`cumulativeAmount`,type:`uint96`},{name:`signature`,type:`bytes`}],outputs:[]},{type:`function`,name:`topUp`,stateMutability:`nonpayable`,inputs:[Ej,{name:`additionalDeposit`,type:`uint96`}],outputs:[]},{type:`function`,name:`close`,stateMutability:`nonpayable`,inputs:[Ej,{name:`cumulativeAmount`,type:`uint96`},{name:`captureAmount`,type:`uint96`},{name:`signature`,type:`bytes`}],outputs:[]},{type:`function`,name:`requestClose`,stateMutability:`nonpayable`,inputs:[Ej],outputs:[]},{type:`function`,name:`withdraw`,stateMutability:`nonpayable`,inputs:[Ej],outputs:[]},{type:`function`,name:`getChannel`,stateMutability:`view`,inputs:[Ej],outputs:[{type:`tuple`,components:[{name:`descriptor`,type:`tuple`,components:wj},{name:`state`,type:`tuple`,components:Tj}]}]},{type:`function`,name:`getChannelState`,stateMutability:`view`,inputs:[{name:`channelId`,type:`bytes32`}],outputs:[{type:`tuple`,components:Tj}]},{type:`function`,name:`getChannelStatesBatch`,stateMutability:`view`,inputs:[{name:`channelIds`,type:`bytes32[]`}],outputs:[{type:`tuple[]`,components:Tj}]},{type:`function`,name:`computeChannelId`,stateMutability:`view`,inputs:[{name:`payer`,type:`address`},{name:`payee`,type:`address`},{name:`operator`,type:`address`},{name:`token`,type:`address`},{name:`salt`,type:`bytes32`},{name:`authorizedSigner`,type:`address`},{name:`expiringNonceHash`,type:`bytes32`}],outputs:[{type:`bytes32`}]},{type:`function`,name:`getVoucherDigest`,stateMutability:`view`,inputs:[{name:`channelId`,type:`bytes32`},{name:`cumulativeAmount`,type:`uint96`}],outputs:[{type:`bytes32`}]},{type:`function`,name:`domainSeparator`,stateMutability:`view`,inputs:[],outputs:[{type:`bytes32`}]},{type:`event`,name:`ChannelOpened`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`operator`,type:`address`},{name:`token`,type:`address`},{name:`authorizedSigner`,type:`address`},{name:`salt`,type:`bytes32`},{name:`expiringNonceHash`,type:`bytes32`},{name:`deposit`,type:`uint96`}]},{type:`event`,name:`Settled`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`cumulativeAmount`,type:`uint96`},{name:`deltaPaid`,type:`uint96`},{name:`newSettled`,type:`uint96`}]},{type:`event`,name:`TopUp`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`additionalDeposit`,type:`uint96`},{name:`newDeposit`,type:`uint96`}]},{type:`event`,name:`CloseRequested`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`closeGraceEnd`,type:`uint256`}]},{type:`event`,name:`ChannelClosed`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`settledToPayee`,type:`uint96`},{name:`refundedToPayer`,type:`uint96`}]},{type:`event`,name:`CloseRequestCancelled`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0}]}]}));function kj(e,t){return{name:Ij,version:Lj,chainId:t,verifyingContract:e}}function Aj(e,t){return Fe.getVoucherSignPayload({chainId:e,channelId:t.channelId,cumulativeAmount:t.cumulativeAmount})}function jj(e,t,n){return e.toLowerCase()===Fe.address.toLowerCase()?Aj(t,n):ce({domain:kj(e,t),types:Rj,primaryType:`Voucher`,message:{channelId:n.channelId,cumulativeAmount:n.cumulativeAmount}})}function Mj(e){return e===`secp256k1`||e===`p256`||e===`webAuthn`}function Nj(e,t){return De.signVoucher(e,{chainId:t.chainId,channel:t.channelId,cumulativeAmount:t.cumulativeAmount})}async function Pj(e,t,n,r,i){let a=await(async()=>{if(r.toLowerCase()===Fe.address.toLowerCase())try{return await Nj(t,{chainId:i,channelId:n.channelId,cumulativeAmount:n.cumulativeAmount})}catch{}return we(e,{account:t,domain:kj(r,i),types:Rj,primaryType:`Voucher`,message:n})})(),o=Le.from(a);if(!Mj(o.type))throw Error(`TIP-1034 vouchers require a TIP-1020 primitive signature; received "${o.type}".`);return Le.serialize(o)}function Fj(e,t,n,r){try{let i=Le.from(n.signature);if(!Mj(i.type)||Le.serialize(i).toLowerCase()!==n.signature.toLowerCase())return!1;let a=jj(e,t,n),o=Le.extractAddress({payload:a,signature:i});return Le.verify(i,{address:o,payload:a})&&oA(o,r)}catch{return!1}}var Ij,Lj,Rj,zj=L((()=>{sA(),Ij=`TIP20 Channel Reserve`,Lj=`1`,Rj={Voucher:[{name:`channelId`,type:`bytes32`},{name:`cumulativeAmount`,type:`uint96`}]}}));function Bj(e){return typeof e==`object`&&!!e}function Vj(e){return typeof e==`string`&&ue(e,{strict:!1})?e:void 0}function Hj(e){return Vj(e.accessKeyAddress)}function Uj(){let e=BigInt(Math.floor(Date.now()/1e3))-60n;return e<=0n?0:Number(BigInt(j.random(8))%e)}function Wj(e){return Hj(e)??e.address}async function Gj(e,t){let{account:n,calls:r,feePayer:i,feeToken:a,validAfter:o}=t;return I(e,{account:n,calls:r,nonceKey:`expiring`,...i?{feePayer:!0}:{},feeToken:a,...o===void 0?{}:{validAfter:o}})}async function Kj(e,t){return await Ce(e,t)}function qj(e,t,n=!1){let r=e.request.methodDetails,i=Bj(r)?Vj(r.escrowContract)??Vj(r.escrow):void 0,a=t??`0x4d50500000000000000000000000000000000000`;if(i&&!Yj(i,a)&&(!n||t!==void 0))throw Error(`Tempo session escrow ${i} does not match client escrow ${a}.`);return i&&!Yj(i,a)?i:a}function Jj(e,t,n,r){return GS({challenge:e,payload:t,source:`did:pkh:eip155:${n}:${r.address}`})}function Yj(e,t){return e.toLowerCase()===t.toLowerCase()}async function Xj(e,t,n,r,i,a=gE){let o=yj({...n,chainId:i,escrow:a}),s=ZT(r),c=await Pj(e,t,{channelId:o,cumulativeAmount:s},a,i);return{action:`voucher`,channelId:o,descriptor:n,cumulativeAmount:s.toString(),signature:c}}async function Zj(e,t,n,r,i,a=gE){let o=await Xj(e,t,n,r,i,a);return{action:`close`,channelId:o.channelId,descriptor:n,cumulativeAmount:o.cumulativeAmount,signature:o.signature}}async function Qj(e,t,n){let r=Wj(t),i=n.escrow??`0x4d50500000000000000000000000000000000000`,a=n.operator??`0x0000000000000000000000000000000000000000`,o=j.random(32),s=ZT(n.deposit),c=ZT(n.initialAmount),l=ie({abi:Dj,functionName:`open`,args:[n.payee,a,n.token,s,o,r]}),u=await Kj(e,await Gj(e,{account:t,calls:[...n.prefixCalls??[],{to:i,data:l}],feePayer:n.feePayer,feeToken:n.feeToken??n.token})),d=je.deserialize(u),f={authorizedSigner:r,expiringNonceHash:Sj(xj({...n.feePayer?{feePayer:!0}:{},transaction:d}),{sender:t.address}),operator:a,payee:n.payee,payer:t.address,salt:o,token:n.token},p=yj({...f,chainId:n.chainId,escrow:i});return{action:`open`,type:`transaction`,channelId:p,transaction:u,signature:await Pj(e,t,{channelId:p,cumulativeAmount:c},i,n.chainId),descriptor:f,cumulativeAmount:c.toString(),authorizedSigner:f.authorizedSigner}}async function $j(e,t,n,r,i,a,o=gE,s=[],c=n.token){let l=yj({...n,chainId:i,escrow:o}),u=ZT(r);return{action:`topUp`,type:`transaction`,channelId:l,transaction:await Kj(e,await Gj(e,{account:t,calls:[...s,{to:o,data:ie({abi:Dj,functionName:`topUp`,args:[n,u]})}],feePayer:a,feeToken:c,validAfter:Uj()})),descriptor:n,additionalDeposit:u.toString()}}var eM=L((()=>{JS(),Cj(),Oj(),_E(),zj()}));function tM(e){let{payee:t,token:n,escrow:r,chainId:i}=e;return`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${i}`}function nM(e){return tM({payee:e.descriptor.payee,token:e.descriptor.token,escrow:e.escrow,chainId:e.chainId})}function rM(){let e=new Map;return{get:t=>e.get(t),set(t){e.set(nM(t),t)},delete(t){e.delete(t)}}}function iM(e){return{...e,cumulativeAmount:e.cumulativeAmount.toString(),deposit:e.deposit.toString()}}function aM(e){return{...e,cumulativeAmount:BigInt(e.cumulativeAmount),deposit:BigInt(e.deposit)}}var oM=L((()=>{}));function sM(e){if(e<0n||e>uM)throw new Z({reason:`amount exceeds uint96 range`})}async function cM(e,t,n=gE,r){return lM(await be(e,{address:n,abi:Dj,functionName:`getChannelState`,args:[t],...r===void 0?{}:{blockNumber:r}}))}function lM(e){return sM(e.settled),sM(e.deposit),{settled:e.settled,deposit:e.deposit,closeRequestedAt:e.closeRequestedAt}}var uM,dM=L((()=>{mS(),Oj(),_E(),uM=2n**96n-1n}));function fM(e){return`cumulativeAmount`in e}function pM(e){if(fM(e))return BigInt(e.cumulativeAmount)}async function mM(e,t){t.opened?await e.store.set(t):await e.store.delete(nM(t)),e.notifyUpdate(t)}async function hM(e,t,n){let r=pM(n);if(r===void 0)return;let i=await e.store.get(t);i&&i.channelId.toLowerCase()===n.channelId.toLowerCase()&&(i.cumulativeAmount=i.cumulativeAmount>r?i.cumulativeAmount:r,n.action===`close`&&(i.opened=!1),await mM(e,i))}function gM(e){return e?.action!==void 0}function _M(e){return gM(e)&&e.descriptor!==void 0}function vM(e,t,n){let r=n===`additionalDeposit`?e.additionalDepositRaw:e.cumulativeAmountRaw,i=n===`additionalDeposit`?e.additionalDeposit:e.cumulativeAmount;if(r)return BigInt(r);if(i)return F(i,t)}function yM(e,t,n,r){let i=vM(e,t,n);if(i===void 0)throw Error(`${n} required for ${r} action`);return i}function bM(e){return typeof e==`object`&&!!e}function xM(e){return typeof e==`string`&&ue(e,{strict:!1})?e:void 0}function SM(e){let t=e.request.methodDetails;return bM(t)?{chainId:typeof t.chainId==`number`?t.chainId:void 0,escrowContract:xM(t.escrowContract),escrow:xM(t.escrow),feePayer:typeof t.feePayer==`boolean`?t.feePayer:void 0,feeToken:xM(t.feeToken),operator:xM(t.operator),sessionSnapshot:Sx(t,Ex.sessionSnapshot)}:{}}function CM(e,t){if(typeof e==`string`&&ue(e,{strict:!1}))return e;throw Error(`tempo session challenge missing ${t}`)}function wM(e){if(typeof e==`string`)return BigInt(e);throw Error(`tempo session challenge missing amount`)}function TM(e){return typeof e==`string`?e:void 0}async function EM(e){let{allowCustomEscrow:t,challenge:n,escrowOverride:r,getClient:i}=e,a=SM(n),o=await i({chainId:a.chainId}),s=a.chainId??o.chain?.id;if(!s)throw Error(`No chainId configured for TIP-1034 session challenge.`);let c=qj(n,r,t),l=CM(n.request.recipient,`recipient`),u=CM(n.request.currency,`currency`);return{amount:wM(n.request.amount),challenge:n,chainId:s,client:o,escrow:c,feePayer:a.feePayer,feeToken:a.feeToken,key:tM({payee:l,token:u,escrow:c,chainId:s}),operator:a.operator,payee:l,snapshot:a.sessionSnapshot,suggestedDepositRaw:TM(n.request.suggestedDeposit),token:u}}async function DM(e){let{channelId:t,client:n,descriptor:r,expected:i,readChannelState:a=cM}=e,o=yj({...r,chainId:i.chainId,escrow:i.escrow});OM({channelId:t,descriptor:r,expectedChannelId:o,payee:i.payee,payer:i.payer,authorizedSigner:i.authorizedSigner,token:i.token});let s=await a(n,o,i.escrow);if(s.deposit===0n)throw Error(`Channel ${o} cannot be reused (closed or not found on-chain).`);if(s.closeRequestedAt!==0)throw Error(`Channel ${o} cannot be reused (pending close request).`);return{channelId:o,state:s}}function OM(e){let{authorizedSigner:t,channelId:n,descriptor:r,expectedChannelId:i,payee:a,payer:o,token:s}=e;if(n&&n.toLowerCase()!==i.toLowerCase())throw Error(`context channelId does not match descriptor`);if(!Yj(r.payee,a))throw Error(`context descriptor payee does not match challenge`);if(!Yj(r.token,s))throw Error(`context descriptor token does not match challenge`);if(!Yj(r.payer,o))throw Error(`context descriptor payer does not match account`);if(!Yj(vj(r),t))throw Error(`context descriptor authorizedSigner does not match account`)}function kM(e){let{context:t,snapshot:n}=e,r=t?.descriptor??n?.descriptor;if(r)return{...t,channelId:t?.channelId??n?.channelId,descriptor:r}}function AM(e){let{context:t,decimals:n,requestAmount:r,snapshot:i,settled:a}=e;if(i)return[BigInt(i.acceptedCumulative),BigInt(i.requiredCumulative),BigInt(i.spent)+r,a].reduce((e,t)=>t>e?t:e,0n);let o=vM(t,n,`cumulativeAmount`);return o===void 0?a+r:o+r}async function jM(e){let{account:t,client:n,readChannelState:r,snapshot:i}=e,a=i.highestVoucher;if(!a)throw Error(`session snapshot is missing its highest signed voucher`);if(a.channelId.toLowerCase()!==i.channelId.toLowerCase())throw Error(`session snapshot voucher channelId does not match snapshot channelId`);let o=BigInt(i.acceptedCumulative),s=BigInt(a.cumulativeAmount),c=BigInt(i.requiredCumulative),l=BigInt(i.deposit),u=BigInt(i.settled),d=BigInt(i.spent);if(s!==o)throw Error(`session snapshot voucher amount does not match acceptedCumulative`);if(d>o)throw Error(`session snapshot spent exceeds acceptedCumulative`);if(u>l)throw Error(`session snapshot settled amount exceeds deposit`);if(!Fj(i.escrow,i.chainId,{channelId:a.channelId,cumulativeAmount:s,signature:a.signature},vj(i.descriptor)))throw Error(`session snapshot highest voucher signature is invalid`);let f=await DM({channelId:i.channelId,client:n,descriptor:i.descriptor,expected:{chainId:i.chainId,escrow:i.escrow,payee:i.descriptor.payee,payer:t.address,authorizedSigner:Wj(t),token:i.descriptor.token},readChannelState:r}),p=[o,c,f.state.settled].reduce((e,t)=>t>e?t:e,0n);if(p>f.state.deposit)throw Error(`recovered session cumulative amount exceeds on-chain channel deposit`);return{entry:{channelId:f.channelId,cumulativeAmount:p,deposit:f.state.deposit,descriptor:i.descriptor,escrow:i.escrow,chainId:i.chainId,opened:!0},spent:d}}function MM(e,t){return Yj(e.address,t.payer)?Yj(Wj(e),vj(t)):!1}function NM(e){let{account:t,entry:n,context:r,decimals:i,maxDeposit:a,resolved:o}=e;if(gM(r)){if(!_M(r))throw Error(`descriptor required for TIP-1034 session action`);return{type:`manual`,account:t,context:r,decimals:i,resolved:o}}if(!n&&r?.channelId&&!r.descriptor)throw Error(`descriptor required to reuse TIP-1034 channel`);let s=kM({context:r,snapshot:o.snapshot});return!n&&s&&MM(t,s.descriptor)?{type:`recover`,account:t,context:s,decimals:i,maxDeposit:a,resolved:o}:n?.opened&&MM(t,n.descriptor)?{type:`voucher`,account:t,entry:n,maxDeposit:a,resolved:o}:{type:`open`,account:t,context:r,maxDeposit:a,resolved:o}}async function PM(e,t,n=!1){switch(e.type){case`open`:return IM(e,t,n);case`recover`:return LM(e,t);case`voucher`:return RM(e,t);case`manual`:return zM(e,t,n)}}async function FM(e,t){if(e)return await cA(t.client,{account:t.account,amountOut:t.amountOut,tokenOut:t.tokenOut,tokenIn:e.tokenIn,slippage:e.slippage})}async function IM(e,t,n){let{account:r,resolved:i}=e,a=RE({contextDepositRaw:e.context?.depositRaw,maxDeposit:e.maxDeposit,requestAmount:i.amount,suggestedDepositRaw:i.suggestedDepositRaw}),o=await Qj(i.client,r,{chainId:i.chainId,deposit:a,escrow:i.escrow,feePayer:i.feePayer,feeToken:i.feeToken,initialAmount:i.amount,operator:i.operator,payee:i.payee,prefixCalls:await FM(n,{account:r.address,amountOut:a,client:i.client,tokenOut:i.token}),token:i.token});return await mM(t,{channelId:o.channelId,cumulativeAmount:i.amount,deposit:a,descriptor:o.descriptor,escrow:i.escrow,chainId:i.chainId,opened:!0}),o}async function LM(e,t){let{account:n,context:r,decimals:i,maxDeposit:a,resolved:o}=e,{descriptor:s}=r,c=await DM({channelId:r.channelId,client:o.client,descriptor:s,expected:{chainId:o.chainId,escrow:o.escrow,payee:o.payee,payer:n.address,authorizedSigner:Wj(n),token:o.token}}),l=AM({context:r,decimals:i,requestAmount:o.amount,settled:c.state.settled,snapshot:o.snapshot});if(l>c.state.deposit)throw Error(`recovered voucher amount exceeds on-chain channel deposit`);BE(l,a);let u=await Xj(o.client,n,s,l,o.chainId,o.escrow);return await mM(t,{channelId:c.channelId,cumulativeAmount:l,deposit:c.state.deposit,descriptor:s,escrow:o.escrow,chainId:o.chainId,opened:!0}),u}async function RM(e,t){let{account:n,entry:r,resolved:i}=e,a=r.cumulativeAmount+i.amount;BE(a,e.maxDeposit);let o=await Xj(i.client,n,r.descriptor,a,i.chainId,i.escrow);return r.cumulativeAmount=a,await mM(t,r),o}async function zM(e,t,n){let{account:r,context:i,decimals:a,resolved:o}=e,{descriptor:s}=i,c=yj({...s,chainId:o.chainId,escrow:o.escrow});OM({channelId:i.channelId,descriptor:s,expectedChannelId:c,payee:o.payee,payer:r.address,authorizedSigner:Wj(r),token:o.token});let l=await BM({account:r,channelId:c,context:i,decimals:a,descriptor:s,resolved:o},n);return await hM(t,o.key,l),l}async function BM(e,t){switch(e.context.action){case`open`:return VM(e);case`topUp`:return HM(e,t);case`voucher`:return UM(e);case`close`:return WM(e)}}async function VM(e){let{account:t,channelId:n,context:r,decimals:i,descriptor:a,resolved:o}=e;if(!r.transaction)throw Error(`transaction required for open action`);let s=yM(r,i,`cumulativeAmount`,`open`),c=await Xj(o.client,t,a,s,o.chainId,o.escrow);return{action:`open`,type:`transaction`,channelId:n,transaction:r.transaction,signature:c.signature,descriptor:a,cumulativeAmount:s.toString(),authorizedSigner:a.authorizedSigner}}async function HM(e,t){let{account:n,channelId:r,context:i,decimals:a,descriptor:o,resolved:s}=e,c=yM(i,a,`additionalDeposit`,`topUp`);return i.transaction?{action:`topUp`,type:`transaction`,channelId:r,transaction:i.transaction,descriptor:o,additionalDeposit:c.toString()}:$j(s.client,n,o,c,s.chainId,s.feePayer,s.escrow,await FM(t,{account:n.address,amountOut:c,client:s.client,tokenOut:s.token}),s.feeToken)}function UM(e){let{account:t,context:n,decimals:r,descriptor:i,resolved:a}=e;return Xj(a.client,t,i,yM(n,r,`cumulativeAmount`,`voucher`),a.chainId,a.escrow)}function WM(e){let{account:t,context:n,decimals:r,descriptor:i,resolved:a}=e;return Zj(a.client,t,i,yM(n,r,`cumulativeAmount`,`close`),a.chainId,a.escrow)}var GM,KM,qM,JM=L((()=>{Ox(),Wx(),pA(),dM(),Cj(),zj(),eM(),oM(),tD(),GM=X.custom(e=>typeof e==`string`&&/^0x[0-9a-fA-F]*$/.test(e)),KM=X.custom(e=>typeof e==`string`&&/^0x[0-9a-fA-F]{64}$/.test(e)),qM=X.object({account:X.optional(X.custom()),autoSwap:X.optional(X.custom()),action:X.optional(X.enum([`open`,`topUp`,`voucher`,`close`])),channelId:X.optional(KM),cumulativeAmount:X.optional(Px()),cumulativeAmountRaw:X.optional(X.string()),transaction:X.optional(GM),descriptor:X.optional(X.custom()),additionalDeposit:X.optional(Px()),additionalDepositRaw:X.optional(X.string()),depositRaw:X.optional(X.string())})}));async function YM(e,t){let n=$M.get(e)??new Map;$M.set(e,n);let r=n.get(t),i,a=new Promise(e=>{i=e});return n.set(t,a),await r,()=>{i(),n.get(t)===a&&n.delete(t)}}function XM(e,t){try{return t?.channelId.toLowerCase()===e.channelId.toLowerCase()&&BigInt(t.acceptedCumulative)===e.cumulativeAmount}catch{return!1}}function ZM(e,t,n){try{let r=e.response?.headers.get(Y.paymentReceipt);if(r){let e=oE(r);if(e.challengeId===t.id&&XM(n,e))return!0}}catch{}return e.challenges?.some(e=>cD(e)?XM(n,lD(e)):!1)??!1}function QM(e={}){let{account:t,allowCustomEscrow:n=!1,autoSwap:r,channelStore:i,decimals:a=6,escrow:o,getClient:s,maxDeposit:c,topUpAmount:l,onChannelUpdate:u,resolveAccount:d}=e,f=Zk({chain:Pe,getClient:s,rpcUrl:qD}),p=Kk({account:t}),m=c===void 0?void 0:F(c,a),h=l===void 0?void 0:F(l,a),g=i??rM(),_={store:g,notifyUpdate:e=>u?.(e)},v=async(e,t,n)=>{let r=p(e.client,t),i=t?.action?t.descriptor:n?.descriptor??kM({context:t,snapshot:e.snapshot})?.descriptor;return await d?.({account:r,chainId:e.chainId,operation:{kind:`authorizePaymentChannel`,...i?{authority:vj(i)}:{}}})??r},y=async(e,t,n)=>NM({account:await v(e,t,n),entry:n,context:t,decimals:a,maxDeposit:m,resolved:e}),b=jT(KT,{canHandleChallenge:({challenge:e})=>cD(e),context:qM,async createCredential(e){let{challenge:t,context:i}=e,a=await EM({allowCustomEscrow:n,challenge:t,escrowOverride:o,getClient:f}),s=cw(e),c=()=>{};try{let e=!gM(i)&&i?.descriptor===void 0;e&&(c=await YM(g,a.key),s&&(await g.get(a.key))?.opened&&await s.prepare());let n=await g.get(a.key),o=await y(a,i,n);if(!e&&s&&o.type===`open`){c=await YM(g,a.key);let e=await g.get(a.key);e?.channelId!==n?.channelId&&(n=e,n?.opened&&(await s.prepare(),n=await g.get(a.key)),o=await y(a,i,n))}let l,u=s&&o.type===`open`?{store:{get:e=>g.get(e),async set(e){l=e},delete:e=>g.delete(e)},notifyUpdate(){}}:_,d=await Jj(t,await PM(o,u,lA(i?.autoSwap??r,dA)),a.chainId,o.account);if(s&&l){let e=l;s.settle=async n=>{let r=n.status===`accepted`||ZM(n,t,e);if(!r&&n.status===`pending`)return!1;try{if(r){let t=await g.get(a.key);(!t?.opened||t.channelId.toLowerCase()!==e.channelId.toLowerCase())&&(await g.set(e),_.notifyUpdate(e))}return!0}finally{c()}}}else c();return d}catch(e){throw c(),e}}}),x=async({challenge:e,channel:t,deposit:n,fetch:r,input:i,requiredCumulative:a})=>{let o=t.deposit>n?t.deposit:n,s=zE({deposit:o,maxDeposit:m,requiredCumulative:a,suggestedDeposit:e.request.suggestedDeposit===void 0?void 0:BigInt(e.request.suggestedDeposit),topUpAmount:h});s>0n&&await mD({additionalDeposit:s,challenge:e,channel:t,channelId:t.channelId,createSessionCredential:(e,t)=>b.createCredential({challenge:e,context:t}),fetch:r,input:i});let c=o+s;if(c===t.deposit)return;let l=await g.get(nM(t)),u=l?.channelId.toLowerCase()===t.channelId.toLowerCase()?l:t,d={...u,deposit:u.deposit>c?u.deposit:c};await g.set(d),_.notifyUpdate(d)};return ew(b,async({challenge:e,context:t,fetch:r,input:i})=>{if(!cD(e))return;let a=t===void 0?void 0:qM.parse(t);if(gM(a))return;let s=await EM({allowCustomEscrow:n,challenge:e,escrowOverride:o,getClient:f}),c=await g.get(s.key);if(!c?.opened)return;let l=s.snapshot?.channelId.toLowerCase()===c.channelId.toLowerCase()?s.snapshot:void 0,u=c.cumulativeAmount+rE(e),d=l?BigInt(l.requiredCumulative):u,p=d>u?d:u,m=l?BigInt(l.deposit):c.deposit,h=m>c.deposit?m:c.deposit;p<=h&&h===c.deposit||!MM(await v(s,a,c),c.descriptor)||await x({challenge:e,channel:c,deposit:h,fetch:r,input:i,requiredCumulative:p})}),aw(b,async({challenge:e,credential:t,fetch:r,headers:i,input:a,refetch:s,response:c,signal:l})=>{if(!cD(e))return c;if(!sE(c))return nE(VS(t).payload).action===`open`&&i.get(`accept`)?.toLowerCase().includes(`text/event-stream`)?await s?.()??c:c;let u=(await EM({allowCustomEscrow:n,challenge:e,escrowOverride:o,getClient:f})).key,d=await g.get(u),p={assertVoucherWithinLocalLimit:e=>BE(e,m),createSessionCredential:(e,t)=>b.createCredential({challenge:e,context:t}),fetch:r,getChannel:()=>d??null,async topUpIfNeeded({deposit:t,requiredCumulative:n}){d&&await x({challenge:e,channel:d,deposit:d.deposit>t?d.deposit:t,fetch:r,input:a,requiredCumulative:n})}};return TD({onNeedVoucher:t=>ED({challenge:e,driver:p,input:a},t),onReceipt(){},response:c,signal:l})})}var $M,eN=L((()=>{iw(),fw(),Ox(),JS(),MT(),qk(),$k(),pA(),JD(),JT(),Cj(),_E(),eM(),oM(),JM(),tD(),HD(),$M=new WeakMap}));function tN(e,t){rN.set(e,t)}function nN(e){let t=rN.get(e);if(!t)throw Error(`Session manager internals are unavailable.`);return t}var rN,iN=L((()=>{rN=new WeakMap}));function aN(e){let t=null;return{wait(n=()=>!0){if(t)throw Error(`${e} wait already in progress`);return new Promise((e,r)=>{t={predicate:n,resolve:e,reject:r}})},settle(e){if(!t||!t.predicate(e))return;let n=t;t=null,n.resolve(e)},reject(e){if(!t)return;let n=t;t=null,n.reject(e)}}}function oN(e){let t=aN(`close-ready`),n=aN(`receipt`);return{waitForReceipt(e){return n.wait(e)},waitForCloseReady(){let n=e.getSocketSession()?.closeReadyReceipt;return n?Promise.resolve(n):t.wait()},settleReceipt(e){n.settle(e)},settleCloseReady(n){let r=e.getSocketSession();r&&r.challenge.id===n.challengeId&&r.channelId===n.channelId&&(r.closeReadyReceipt=n),t.settle(n)},rejectReceipt(e){n.reject(e)},rejectCloseReady(e){t.reject(e)}}}var sN=L((()=>{}));function cN(e){return e.method===wx.tempo&&e.intent===Tx.charge}function lN(e){if(!cN(e)||typeof e.request.amount!=`string`)return!1;try{return BigInt(e.request.amount)===0n}catch{return!1}}function uN(e,t,n){if(!n)return t;let r={...gw(e instanceof Request?e.headers:void 0),...gw(t?.headers)};return Object.keys(r).some(e=>e.toLowerCase()===Y.paymentSession.toLowerCase())?t:{...t,headers:{...r,[Y.paymentSession]:n}}}function dN(e,t){return e===void 0?t:{...qM.parse(e),...t}}function fN(e){let t=e.decimals??6,n=e.webSocket??globalThis.WebSocket;return{decimals:t,fetch:e.fetch??globalThis.fetch.bind(globalThis),maxVoucherCumulative:e.maxDeposit===void 0?null:F(e.maxDeposit,t),topUpAmount:e.topUpAmount===void 0?null:F(e.topUpAmount,t),WebSocket:n}}function pN(e){let t=e.allowCustomEscrow??!1,n=fN(e),r=Zk({chain:Pe,getClient:e.client?()=>e.client:e.getClient,rpcUrl:qD}),i=Kk({account:e.account}),a=KE(),o=e.credentialContext===void 0?void 0:dN(e.credentialContext,{}),s=oN({getSocketSession:()=>a.socketSession}),c=e.channelStore??rM(),l=new Set,u;async function d(e){let t=await c.get(e);if(t?.opened&&!l.has(t.channelId))return t}let f={async get(e){let t=await d(e);return t&&u&&(u.seenExisting.add(e),!u.committed&&!u.created.has(e)&&(u.resumed??=t)),t},async set(e){let t=nM(e);e.opened&&l.delete(e.channelId),u?.trackCreates&&!u.seenExisting.has(t)&&u.created.set(t,e),await c.set(e)},delete:e=>c.delete(e)};async function p(e){let t=nM(e);l.add(e.channelId),u?.seenExisting.delete(t),u?.resumed===e&&(u.resumed=void 0),await Promise.resolve(c.delete(t)).catch(()=>void 0)}async function m(){let e=u;if(e?.created.size){for(let[t,n]of e.created)l.add(n.channelId),await Promise.resolve(c.delete(t)).catch(()=>void 0);e.created.clear(),await N(e.committed??e.previous)}}function h(e){let t=Sx(e.request.methodDetails,Ex.sessionSnapshot);if(typeof t?.channelId!=`string`)return!1;let n=u;if(!n?.created.size||!a.channel)return!1;for(let[e,r]of n.created)if(r.channelId.toLowerCase()===t.channelId.toLowerCase()&&a.channel.channelId.toLowerCase()===t.channelId.toLowerCase())return n.created.delete(e),n.committed=ZE({channel:a.channel,spent:a.spent,state:a.state}),!0;return!1}function g(e){return kE(a,e)}function _(){let e=a.state.status===`active`?a.state:u?.committed?.state??u?.previous.state;return e?.status===`active`?e.units:0}function v(e){let t=u,n=t?.committed?.channel?.entry??t?.resumed;!t||n?.channelId.toLowerCase()!==e.channelId.toLowerCase()||e.deposit<=n.deposit||(t.resumed=void 0,t.committed=ZE({channel:a.channel,spent:a.spent,state:a.state}))}let y=QM({account:e.account,allowCustomEscrow:t,autoSwap:e.autoSwap,getClient:e.client?()=>e.client:e.getClient,resolveAccount:e.resolveAccount,escrow:e.escrow,decimals:n.decimals,maxDeposit:e.maxDeposit,topUpAmount:e.topUpAmount,channelStore:f,onChannelUpdate(e){e.channelId!==a.channel?.channelId&&(a.spent=0n),a.channel=e,a.lastChallenge&&g({type:`activated`,challengeId:a.lastChallenge.id,entry:e,spent:a.spent.toString(),units:_()}),v(e)}});ow(y);let b=jA({account:e.account,getClient:e.client?()=>e.client:e.getClient}),x=mw({fetch:n.fetch,methods:[y],onChallenge:async(e,t)=>{if(!sD(e))return;let n=u,r=n&&n.challengesReceived>0&&e.id===a.lastChallenge?.id,i=r&&Kx(e)===Kx(a.lastChallenge);n&&n.challengesReceived++,!i&&(h(e)||(n?.created.size?await m():r&&await N(n.committed??n.previous)),a.lastChallenge=e,g({type:`challengeReceived`,challengeId:e.id}))}});function S(e,t){return y.createCredential({challenge:e,context:dN(o,t)})}function C(e){qE({maxVoucherCumulative:n.maxVoucherCumulative,receipt:e,runtime:a})}function w(e=a.state.status===`active`?a.state.units:0){!a.channel||!a.lastChallenge||a.state.status!==`active`&&a.state.status!==`withdrawable`&&a.state.status!==`closeRequested`&&g({type:`activated`,challengeId:a.lastChallenge.id,entry:a.channel,spent:a.spent.toString(),units:e})}async function T(t){let n=t.headers.get(Y.paymentSessionSnapshot);if(!n)return;let o=yE(n),s=await r({chainId:o.chainId}),c=i(s),{entry:l,spent:u}=await jM({account:await e.resolveAccount?.({account:c,chainId:o.chainId,operation:{authority:vj(o.descriptor),kind:`authorizePaymentChannel`}})??c,client:s,snapshot:o});return ee(l.cumulativeAmount),await Promise.resolve(f.set(l)).catch(()=>void 0),a.channel=l,a.spent=u,l}async function E(t,r){if(!e.bootstrap||a.channel?.opened)return;let i=t instanceof Request?t.headers:void 0,{body:o,method:s,...c}=r??{},l=t instanceof Request?t.url:t,u={...c,method:`HEAD`,headers:{...gw(i),...gw(r?.headers),[Y.acceptPayment]:`${wx.tempo}/${Tx.charge}`}};try{let e=await n.fetch(l,u);if(e.status!==402)return await T(e);let t=tS(e).find(cN);if(!t||!lN(t))return;let r=await b.createCredential({challenge:t,context:{}}),i=await n.fetch(l,{...u,headers:{...gw(u.headers),[Y.authorization]:r}});return i.ok?await T(i):void 0}catch{return}}function D(e,t){let n=a.socketSession;return YE({challengeId:e.id,channelId:t,closeReadyReceipt:n?.closeReadyReceipt,cumulativeAmount:a.channel?.channelId===t?a.channel.cumulativeAmount:0n,deliveredChunks:n?.deliveredChunks,socketChallengeId:n?.challenge.id,socketChannelId:n?.channelId,spent:a.spent,tickCost:n?.tickCost})}function O(e,t){let n=lD(t);if(!n)return;if(yj({...n.descriptor,chainId:n.chainId,escrow:n.escrow}).toLowerCase()!==n.channelId.toLowerCase())throw Error(`close snapshot descriptor does not match its channel ID`);if(n.channelId.toLowerCase()!==e.channelId.toLowerCase())throw Error(`close snapshot channel ID does not match local session`);if(n.chainId!==e.chainId||n.escrow.toLowerCase()!==e.escrow.toLowerCase())throw Error(`close snapshot payment scope does not match local session`);let r=BigInt(n.acceptedCumulative),i=BigInt(n.spent);if(r<0n||i<0n)throw Error(`close snapshot amounts must not be negative`);if(i>r)throw Error(`close snapshot spent exceeds accepted cumulative amount`);if(r>e.cumulativeAmount)throw Error(`close snapshot accepted cumulative exceeds local voucher state`);return{acceptedCumulative:r,spent:i}}function k(e,t){let n=O(e.channel,t);if(!n)return;let{acceptedCumulative:r,spent:i}=n;if(a.spent>r)throw Error(`close snapshot accepted cumulative is below locally confirmed spend`);return i>a.spent&&(a.spent=i),n}function A(e,t=e.challenge,n=!1){let r=(n?k(e,t):O(e.channel,t))?.acceptedCumulative??D(t,e.channelId);if(r>e.channel.cumulativeAmount)throw Error(`fallback close amount exceeds local voucher state`);return ee(r),r.toString()}function ee(e){PE({cumulativeAmount:e,maxVoucherCumulative:n.maxVoucherCumulative})}async function j(e){let{knownDeposit:t,...r}=e,i=await mD({...r,channel:a.channel,createSessionCredential:S,fetch:n.fetch});C(i);let o=aD({additionalDeposit:e.additionalDeposit,channel:a.channel,channelId:e.channelId,challengeId:a.lastChallenge?.id,currentState:a.state,knownDeposit:t,receipt:i,spent:a.spent});return o?.channel&&a.lastChallenge&&(await f.set(o.channel),g({type:`activated`,challengeId:a.lastChallenge.id,entry:o.channel,spent:a.spent.toString(),units:_()}),v(o.channel)),i}async function te(e){let t=a.channel?.channelId===e.channelId?a.channel.deposit:0n,r=t>e.deposit?t:e.deposit,i=zE({deposit:r,maxDeposit:n.maxVoucherCumulative,requiredCumulative:e.requiredCumulative,suggestedDeposit:e.challenge.request.suggestedDeposit===void 0?void 0:BigInt(e.challenge.request.suggestedDeposit),topUpAmount:n.topUpAmount});i!==0n&&await j({challenge:e.challenge,input:e.input,channelId:e.channelId,additionalDeposit:i,knownDeposit:r})}async function M(e,t){let n=XE({channel:a.channel,channelId:e,challengeId:a.lastChallenge?.id,cumulativeAmount:t,spent:a.spent,state:a.state});n&&a.channel&&(g({type:`activated`,challengeId:n.challengeId,entry:a.channel,spent:n.spent,units:n.units}),await c.set(a.channel))}async function N(e){let t=QE(e,a.channel);a.channel=t.channel,a.spent=t.spent,a.state=t.state,a.channel?.opened&&await c.set(a.channel)}function ne(e){let t=e.headers.get(Y.paymentReceipt),n=t?oE(t):null;return C(n),Object.assign(e,{receipt:n,challenge:a.lastChallenge,channelId:a.channel?.channelId??null,cumulative:a.channel?.cumulativeAmount??0n})}async function re(e,t){if(u)throw Error(`SessionManager: a request is already in flight; concurrent requests on one manager are not supported`);a.lastUrl=e;let r=ZE({channel:a.channel,spent:a.spent,state:a.state}),i={challengesReceived:0,committed:void 0,created:new Map,previous:r,seenExisting:new Set,resumed:void 0,trackCreates:!1};u=i;try{await E(e,t),i.trackCreates=!0;let s=uN(e,t,a.channel?.opened?a.channel.channelId:void 0);o&&(s={...s,context:o});let c=!r.channel?.opened;async function l(){let n=i.resumed;return!c||!n?!1:(c=!1,await p(n),s=uN(e,t,void 0),!0)}for(;;){let t;try{t=await x(e,s)}catch(e){if(i.created.size?await m():await N(i.committed??r),await l())continue;throw e}let o=ne(t),c=!1;if(o.status===402){let t=await gD({input:e,init:s,response:o,createSessionCredential:S,fetch:n.fetch,getChannel:()=>a.channel,restoreCumulative:M,setChallenge(e){a.lastChallenge=e},topUpIfNeeded:te});t&&(c=!0,o=ne(t))}if(!c&&!o.ok&&!o.receipt){if(i.created.size?await m():await N(i.committed??r),await l())continue;return o}return o}}finally{u=void 0}}async function ie(e){let t=await vD({createSessionCredential:S,fetch:n.fetch,getMinimumSpent:()=>a.spent,lastUrl:a.lastUrl,resolveSignedCloseAmount:t=>A(e,t,!0),signedCloseAmount:A(e),setChallenge(e){a.lastChallenge=e},target:e});return t&&(w(),g({type:`closeStarted`}),g({type:`closed`,receipt:t})),t}let ae={createSessionCredential:S,doFetch:re,fetch:n.fetch,getChannel:()=>a.channel,getChallenge:()=>a.lastChallenge,assertVoucherWithinLocalLimit:ee,acceptReceipt(e){C(e)},topUpIfNeeded:te},oe={get channelId(){return a.channel?.channelId},get cumulative(){return a.channel?.cumulativeAmount??0n},get opened(){return a.channel?.opened??!1},get state(){return a.state},fetch:re,async topUp(e){let t=iD({amount:e,assertVoucherWithinLocalLimit:ee,channel:a.channel,decimals:n.decimals,lastChallenge:a.lastChallenge,lastUrl:a.lastUrl});return j({additionalDeposit:t.additionalDeposit,challenge:t.challenge,channelId:t.channelId,input:t.input})},async sse(e,t){return yD(e,t,ae)},async ws(e,t){if(!n.WebSocket)throw Error("No WebSocket implementation available. Pass `webSocket` to sessionManager() in this runtime.");let r=fD(e),i=t?.signal?{signal:t.signal}:void 0;await E(r,i);let o=a.channel?.opened?a.channel.channelId:void 0,{challenge:c,credential:l,httpUrl:u,wsUrl:d}=await OD({async createSessionCredential(e,t){return a.lastChallenge=e,await nw(y,{challenge:e,context:t,fetch:n.fetch,input:r}),S(e,t)},fetch:n.fetch,input:e,onProbeUrl(e){a.lastUrl=e.toString()},probeInit:uN(r,i,o),signal:t?.signal});return a.lastChallenge=c,ND({challenge:c,credential:l,httpUrl:u,WebSocket:n.WebSocket,wsUrl:d,options:t,createSessionCredential:S,getChannel:()=>a.channel,setSocketSession(e){a.socketSession=e},async refreshChallenge(){let e=await DD({fetch:n.fetch,input:u,probeInit:uN(u,i,a.channel?.opened?a.channel.channelId:void 0),signal:t?.signal});return a.lastChallenge=e.challenge,e.challenge},assertVoucherWithinLocalLimit:ee,acceptReceipt:C,rejectCloseReady:s.rejectCloseReady,rejectReceipt:s.rejectReceipt,settleCloseReady:s.settleCloseReady,settleReceipt:s.settleReceipt,topUpIfNeeded:te,waitForReceipt:s.waitForReceipt})},async close(){let e=a.socketSession,t=VE({channel:a.channel,currentSocket:e,lastChallenge:a.lastChallenge});if(!t)return;let n=e?.socket;if(e&&n?.readyState===zD.OPEN){let r=await $E({activeSocket:n,createSessionCredential:S,currentSocket:e,spent:a.spent,target:t,waitForCloseReady:s.waitForCloseReady,waitForReceipt:s.waitForReceipt});return w(),g({type:`closeStarted`}),g({type:`closed`,receipt:r}),r}return ie(t)}};return tN(oe,{consumeSseResponse(e,t,n){return bD(e,t,n,ae)},rehydrate({channel:e,challenge:t,input:n,spent:r}){if(!e.opened)throw Error(`Cannot restore a closed session channel.`);if(!sD(t))throw Error(`Cannot restore session: challenge is not tempo/session.`);if(r<0n)throw Error(`Cannot restore session: spent must not be negative.`);if(r>e.cumulativeAmount)throw Error(`Cannot restore session: spent exceeds local voucher state.`);ee(e.cumulativeAmount);let i=O(e,t),o=i&&i.spent>r?i.spent:r;a.lastUrl=n,a.lastChallenge=t,a.channel=e,a.spent=o,g({type:`challengeReceived`,challengeId:t.id}),g({type:`activated`,challengeId:t.id,entry:e,spent:o.toString(),units:0})}}),oe}var mN=L((()=>{uS(),eT(),iw(),fw(),Ox(),qk(),$k(),NA(),JD(),oM(),JM(),eN(),Cj(),_E(),EE(),iN(),sN(),tD(),HD(),(function(e){e.serializeSnapshot=vE,e.deserializeSnapshot=yE})(pN||={})}));function hN(e){return e instanceof Date?e:new Date(e)}function gN(e){let t=e.getTime();if(!Number.isFinite(t))throw new Z({reason:`subscriptionExpires is invalid`});if(t%1e3!=0)throw new Z({reason:`subscriptionExpires must be representable as whole seconds`});let n=t/1e3;if(n<=0||!Number.isSafeInteger(n))throw new Z({reason:`subscriptionExpires cannot be represented in a Tempo key authorization`});return n}function _N(e){if(!/^[1-9]\d*$/.test(e.periodCount))throw new Z({reason:`periodCount is invalid`});let t=IN[e.periodUnit];if(t===void 0)throw new Z({reason:`periodUnit is invalid`});let n=BigInt(e.periodCount)*t;if(n>FN)throw new Z({reason:`subscription period cannot be represented as an unsigned 64-bit integer`});if(n>BigInt(2**53-1))throw new Z({reason:`subscription period cannot be represented exactly by this Tempo client`});return Number(n)}function vN(e){let{challengeExpires:t,request:n}=e;_N(n);let r=gN(hN(n.subscriptionExpires));if(t){let e=Math.floor(new Date(t).getTime()/1e3);if(!Number.isFinite(e)||r<=e)throw new Z({reason:`subscriptionExpires must be strictly later than challenge expires`})}}function yN(e){let t=MN(e.currency,`currency`),n=MN(e.recipient,`recipient`);return[{address:t,selector:PN,recipients:[n]}]}function bN(e){try{let t=j.fromBytes(k.toBytes(e));if(j.size(t)!==32)throw Error(`invalid challenge id size`);return t}catch{throw new Z({reason:`challenge id must encode 32 bytes`})}}async function xN(e){let{accessKey:t,account:n,challengeId:r,chainId:i,request:a}=e;if(typeof n.sign!=`function`)return;let o=CN({accessKey:t,challengeId:r,chainId:i,request:a}),s=await n.sign({hash:Ie.getSignPayload(o)}),c=Le.from(s);if(c.type===`keychain`||c.type===`multisig`)throw new Z({reason:`keyAuthorization must use a primitive signature`});return Ie.from(o,{signature:s})}function SN(e){let{accessKey:t,challengeId:n,chainId:r,payload:i,request:a}=e;if(i.type!==`keyAuthorization`)throw new Z({reason:`invalid keyAuthorization payload`});let o=wN(i.signature),s=TN(o);if(EN({accessKey:t,authorization:o,chainId:r}),o.witness?.toLowerCase()!==bN(n))throw new Z({reason:`keyAuthorization challenge mismatch`});return DN(o,a),kN(ON(o),a),AN(o.scopes,a),{authorization:o,source:{address:jN(o,s),chainId:r}}}function CN(e){let{accessKey:t,challengeId:n,chainId:r,request:i}=e;return Ie.from({address:MN(t.accessKeyAddress,`accessKeyAddress`),chainId:BigInt(r),expiry:gN(hN(i.subscriptionExpires)),limits:[{token:MN(i.currency,`currency`),limit:BigInt(i.amount),period:_N(i)}],scopes:yN(i),type:t.keyType,witness:bN(n)})}function wN(e){try{return Ie.deserialize(e)}catch(e){throw e instanceof Ie.InvalidSignatureTypeError?new Z({reason:`keyAuthorization must use a primitive signature`}):new Z({reason:`invalid keyAuthorization payload`})}}function TN(e){let t=e.signature;if(!t)throw new Z({reason:`keyAuthorization must use a primitive signature`});return t}function EN(e){let{accessKey:t,authorization:n,chainId:r}=e;if(n.chainId!==BigInt(r))throw new Z({reason:`keyAuthorization chainId mismatch`});if(t){if(!de(n.address,MN(t.accessKeyAddress,`accessKeyAddress`)))throw new Z({reason:`keyAuthorization access key mismatch`});if(n.type!==t.keyType)throw new Z({reason:`keyAuthorization key type mismatch`})}}function DN(e,t){if(vN({request:t}),e.expiry!==gN(hN(t.subscriptionExpires)))throw new Z({reason:`keyAuthorization expiry mismatch`})}function ON(e){let[t]=e.limits??[];if(!t||e.limits?.length!==1)throw new Z({reason:`keyAuthorization must contain exactly one token limit`});return t}function kN(e,t){if(!de(e.token,MN(t.currency,`currency`)))throw new Z({reason:`keyAuthorization currency mismatch`});if(e.limit!==BigInt(t.amount))throw new Z({reason:`keyAuthorization amount mismatch`});if(e.period!==_N(t))throw new Z({reason:`keyAuthorization period mismatch`})}function AN(e,t){if(!e||e.length!==1)throw new Z({reason:`keyAuthorization must contain a recipient-scoped transferWithMemo call`});let n=MN(t.currency,`currency`),r=MN(t.recipient,`recipient`),i=new Set;for(let t of e){if(!de(t.address,n))throw new Z({reason:`keyAuthorization call target mismatch`});let e=NN(t.selector);if(e!==`0xa9059cbb`&&e!==`0x95777d59`)throw new Z({reason:`keyAuthorization selector not allowed`});if(i.has(e))throw new Z({reason:`keyAuthorization duplicate selector`});if(i.add(e),t.recipients?.length!==1||!de(t.recipients[0],r))throw new Z({reason:`keyAuthorization recipient mismatch`})}if(!i.has(`0x95777d59`))throw new Z({reason:`keyAuthorization must allow transferWithMemo`})}function jN(e,t){let n=Ie.getSignPayload(e);try{let e=Le.extractAddress({payload:n,signature:t});if(!Le.verify(t,{address:e,payload:n}))throw new Z({reason:`keyAuthorization signature is invalid`});return e}catch(e){throw e instanceof Z?e:new Z({reason:`keyAuthorization signature is invalid`})}}function MN(e,t){if(!ue(e))throw new Z({reason:`${t} must be an address`});return e.toLowerCase()}function NN(e){return typeof e==`string`?e.toLowerCase():``}var PN,FN,IN,LN=L((()=>{mS(),PN=`0x95777d59`,FN=(1n<<64n)-1n,IN={dev_second:1n,day:86400n,week:604800n}}));function RN(e={}){let t=Zk({chain:he,getClient:e.getClient,rpcUrl:qD}),n=Kk({account:e.account});return jT(qT,{context:VN,async createCredential({challenge:r,context:i}){let a=r.request.methodDetails?.chainId??UD.testnet,o=await t({chainId:a}),s=n(o,i),c=i?.accessKey??e.accessKey??r.request.methodDetails?.accessKey;if(!c)throw Error("No `accessKey` provided. The subscription challenge must include `accessKey`, or the client must pass one to parameters/context.");BN(r.request),await e.validateRequest?.(r.request);let l=await zN(o,{accessKey:c,account:s,challengeId:r.id,chainId:a,request:r.request}),u=SN({accessKey:c,challengeId:r.id,chainId:a,payload:{signature:Ie.serialize(l),type:`keyAuthorization`},request:r.request});if(!de(u.source.address,s.address))throw Error(`keyAuthorization signer does not match the selected account`);return GS({challenge:r,payload:{signature:Ie.serialize(l),type:`keyAuthorization`},source:`did:pkh:eip155:${a}:${s.address.toLowerCase()}`})}})}async function zN(e,t){let{accessKey:n,account:r,challengeId:i,chainId:a,request:o}=t,s=await xN({accessKey:n,account:r,challengeId:i,chainId:a,request:o});if(s)return s;let c=await e.request({method:`wallet_authorizeAccessKey`,params:[{address:n.accessKeyAddress,expiry:gN(hN(o.subscriptionExpires)),keyType:n.keyType,limits:[{token:o.currency,limit:j.fromNumber(BigInt(o.amount)),period:_N(o)}],scopes:yN(o),witness:bN(i)}]});return Ie.fromRpc(c.keyAuthorization)}function BN(e){_N(e),gN(hN(e.subscriptionExpires))}var VN,HN=L((()=>{JS(),MT(),qk(),$k(),Wx(),JD(),JT(),LN(),VN=X.object({accessKey:X.optional(X.custom()),account:X.optional(X.custom())})}));function UN(e={}){return[jA(e),WN(e)]}var WN,GN,KN=L((()=>{_j(),eN(),mN(),NA(),HN(),WN=Object.assign(QM,{manager:pN}),GN=Object.assign(fj,{method:lj}),(function(e){e.charge=jA,e.common=UN,e.session=WN,e.sessionLegacy=GN,e.subscription=RN})(UN||={})})),qN=L((()=>{NA(),KN(),_j(),HN(),eN(),mN()})),JN=Ge({orderTempoChargeChallengesByBalance:()=>XN,readTempoKeystore:()=>gP,resolveTempoAccount:()=>_P,tempo:()=>ZN});async function YN(e){process.stdout.write(Buffer.from(await e.arrayBuffer()))}async function XN(e,t){let n=[],r=[];for(let[t,i]of e.entries())iP(i)&&(n.push(t),r.push(i));if(r.length<2)return[...e];let i=await aP(t).catch(()=>void 0);if(!i)return[...e];let a=await Promise.all(r.map(async(e,t)=>({challenge:e,index:t,score:await oP(e,i)})));a.sort((e,t)=>TP.indexOf(e.score)-TP.indexOf(t.score)||e.index-t.index);let o=[...e];for(let[e,t]of n.entries())o[t]=a[e].challenge;return o}function ZN(){let e;return Mk({method:`tempo`,supports(e){return e.method===`tempo`&&[`charge`,`session`].includes(e.intent)},async setup({challenge:t,options:n,methodOpts:r}){let i=kO(n.account),a=t.request,o=a.currency,s=rP(r),c=uP({autoSwap:s.autoSwap??n.autoSwap,payWith:s.payWith??n.payWith,slippage:s.slippage??n.slippage,tokenIn:s.tokenIn}),l=o??``,u=a.decimals??6,d,f,p,m=!1,h=process.env.MPPX_PRIVATE_KEY?.trim()||(iO(i)?void 0:await AO(i).get());if(!h&&iO(i)&&vP()){m=!0;let e=_P(i);if(e){let r=cO(n.rpcUrl,{network:n.network});p=N({chain:await uO({network:n.network,rpcUrl:r}),transport:le(r)}),cP({challenge:t,clientChainId:p.chain?.id}),d=p.chain?.blockExplorers?.default?.url;let i=o?await mO(p,o,e.wallet_address).catch(()=>void 0):void 0;l=i?.symbol??o??``,u=i?.decimals??a.decimals??6}}else if(h)f=me(h);else{let e=bP();if(e){let t=await AO(e).get();t&&(f=me(t))}if(!f)throw n.account?new R({code:`ACCOUNT_NOT_FOUND`,message:`Account "${i}" not found.`,exitCode:69}):new R({code:`ACCOUNT_NOT_FOUND`,message:`No account found.`,exitCode:69})}if(!m&&f){let e=cO(n.rpcUrl,{network:n.network});p=N({chain:await uO({network:n.network,rpcUrl:e}),transport:le(e)}),cP({challenge:t,clientChainId:p.chain?.id}),d=p.chain?.blockExplorers?.default?.url;let r=o?await mO(p,o,f.address).catch(()=>void 0):void 0;l=r?.symbol??o??``,u=r?.decimals??a.decimals??6}if(m)return{tokenSymbol:l,tokenDecimals:u,explorerUrl:d,methods:[],async createCredential(e){let t=e.headers.get(`www-authenticate`);if(!t)throw Error(`No WWW-Authenticate header in 402 response.`);return yP(t)}};if(!f||!p)throw new R({code:`ACCOUNT_NOT_FOUND`,message:`Tempo requires a configured account.`,exitCode:69});let g=UN({account:f,...s.allowCustomEscrow===void 0?{}:{allowCustomEscrow:s.allowCustomEscrow},getClient:()=>p,...c===void 0?{}:{autoSwap:c},maxDeposit:(()=>{if(t.intent!==`session`)return;let e=t.request.suggestedDeposit,n=(s.deposit===void 0?void 0:String(s.deposit))??e??(pO(p.chain)?`10`:void 0);if(!n)throw new R({code:`MISSING_DEPOSIT`,message:`Session payment requires a deposit. Use -M deposit=<amount> or connect to testnet.`,exitCode:2});return n})()}),_=(()=>{if(!s.channel)return;let e=s.channel,t=fP(e);return{channelId:e,...t!==void 0&&{cumulativeAmountRaw:t.toString()}}})();return e={descriptor:void 0,async signVoucher({channelId:n,cumulativeAmount:r,escrowContract:i,chainId:a,action:o=`voucher`}){let s=e?.descriptor;if(!s)throw Error(`session descriptor not available`);return GS({challenge:t,payload:{action:o,channelId:n,descriptor:s,cumulativeAmount:r.toString(),signature:await Pj(p,f,{channelId:n,cumulativeAmount:r},i,a)},source:`did:pkh:eip155:${a}:${f.address}`})},source:`did:pkh:eip155:${p.chain.id}:${f.address}`},{tokenSymbol:l,tokenDecimals:u,explorerUrl:d,methods:[...g],credentialContext:_}},prepareCredentialRequest({challenge:e,headers:t}){e.intent===`session`&&(t.Accept=`text/event-stream`)},async handleResponse(t){if(t.challenge.intent!==`session`||!e)return!1;let{challenge:n,credential:r,response:i,fetchUrl:a,fetchInit:o,verbose:s}=t,{silent:c,confirmEnabled:l,tokenSymbol:u,tokenDecimals:d,explorerUrl:f,shownKeys:p}=t,m=c?e=>{}:e=>process.stderr.write(e),h=VS(r),g=n.request,_=g.methodDetails,v=h.payload.channelId,y=_?.escrowContract??_?.escrow??`0x4d50500000000000000000000000000000000000`,b=_?.chainId??0,x=BigInt(g.amount),S=`cumulativeAmount`in h.payload&&h.payload.cumulativeAmount?BigInt(h.payload.cumulativeAmount):0n;if(`descriptor`in h.payload&&(e.descriptor=h.payload.descriptor),s>=1){if(h.payload.action===`open`){let e=g.suggestedDeposit,t=e?` ${Q.dim(`(deposit ${e} ${u})`)}`:``;m(`${l?``:`
235
- `}${Q.dim(`Channel opened ${h.payload.channelId}`)}${t}\n`)}else m(`${l?``:`
236
- `}${Q.dim(`Channel reused ${h.payload.channelId}`)}\n`)}let C=i;C.ok&&!C.headers.get(`Content-Type`)?.includes(`text/event-stream`)&&h.payload.action===`open`&&`cumulativeAmount`in h.payload&&(S=BigInt(h.payload.cumulativeAmount));let w=C.headers.get(Y.paymentReceipt);if(w)try{let e=JSON.parse(k.toString(w));$N(e,S),typeof e.acceptedCumulative==`string`&&e.acceptedCumulative&&pP(v,S),s>=1&&QN(e,{info:m,shownKeys:p,tokenSymbol:u,tokenDecimals:d,explorerUrl:f,handler:this,prefix:`
237
- `})}catch{}return(C.headers.get(`Content-Type`)??``).includes(`text/event-stream`)?await eP(C,{challenge:n,channelId:v,escrowContract:y,chainId:b,cumulativeAmount:S,tickCost:x,fetchUrl:a,fetchInit:o,session:e,info:m,verbose:s,shownKeys:p,tokenSymbol:u,tokenDecimals:d,explorerUrl:f,handler:this}):(await YN(C),v&&y&&b&&(l&&m(`
238
- `),l&&!await t.confirm(`Close channel?`,!0)?s>=1&&m(`${Q.dim(`Kept channel open.`)}\n`):await tP({channelId:v,cumulativeAmount:S,escrowContract:y,chainId:b,fetchUrl:a,fetchInit:o,session:e,info:m,verbose:s,tokenSymbol:u,tokenDecimals:d,explorerUrl:f,confirmEnabled:l}))),!0},formatReceiptField(e,t){(e===`reference`||e===`txHash`)&&typeof t==`string`&&t.startsWith(`0x`)}})}function QN(e,t){t.info(`${t.prefix??``}${Q.bold(Q.green(`Payment Receipt`))}\n`);let n=[],r=e.channelId&&e.reference&&e.channelId===e.reference,i=new Set([`acceptedCumulative`,`spent`]);for(let[a,o]of Object.entries(e)){if(o===void 0||t.shownKeys.has(a)||a===`reference`&&r)continue;let e=t.handler.formatReceiptField?.(a,o);e===void 0?i.has(a)&&typeof o==`string`?n.push([a,`${o} ${Q.dim(`(${sO(BigInt(o),t.tokenSymbol,t.tokenDecimals)})`)}`]):(a===`reference`||a===`txHash`)&&typeof o==`string`&&t.explorerUrl?n.push([a,tO(`${t.explorerUrl}/tx/${o}`,o)]):n.push([a,String(o)]):n.push([a,e])}n.sort(([e],[t])=>e.localeCompare(t));let a=Math.max(...n.map(([e])=>e.length));for(let[e,r]of n)t.info(` ${Q.dim(e.padEnd(a))} ${r}\n`);t.prefix&&t.info(`
239
- `)}function $N(e,t){if(typeof e.acceptedCumulative!=`string`)return;let n=BigInt(e.acceptedCumulative),r=typeof e.spent==`string`?BigInt(e.spent):0n;if(r>n)throw Error(`receipt spent exceeds accepted cumulative voucher amount`);if(n>t)throw Error(`receipt accepted cumulative exceeds locally signed voucher amount`);if(r>t)throw Error(`receipt spent exceeds locally signed voucher amount`)}async function eP(e,t){let n=t.cumulativeAmount,r=e.body?.getReader();if(!r)throw Error(`No response body`);let i=new TextDecoder,a=``,o=``,s=t.verbose?await nP():void 0,c=(()=>{if(!s||!Q.isColorSupported)return;let e=e=>Math.max(0,Math.min(255,Math.round(e))),t=.299*s.r+.587*s.g+.114*s.b<128?1:-1,n=n=>r=>`\x1b[48;2;${e(s.r+n*t)};${e(s.g+n*t)};${e(s.b+n*t)}m${r}\x1b[49m`;return[n(12),n(24)]})(),l=0,u=e=>{if(c){let t=c[l%c.length];process.stdout.write(e.replace(/[^\n]+/g,e=>t(e))),l++}else process.stdout.write(e)},d=async e=>{for(let r of e){if(r.startsWith(`event: `)){o=r.slice(7).trim();continue}if(!r.startsWith(`data: `)){r===``&&(o=``);continue}let e=r.slice(6);if(e.trim()!==`[DONE]`){if(o===`payment-need-voucher`&&t.channelId&&t.escrowContract&&t.chainId){try{let r=JSON.parse(e);if(r.channelId!==t.channelId)throw Error(`payment-need-voucher channelId does not match current session`);let i=BigInt(r.requiredCumulative);if(i>n+t.tickCost)throw Error(`payment-need-voucher exceeds next locally billable amount`);n=n>i?n:i;let a=await t.session.signVoucher({channelId:t.channelId,cumulativeAmount:n,escrowContract:t.escrowContract,chainId:t.chainId});await globalThis.fetch(t.fetchUrl,{method:`POST`,headers:{[Y.authorization]:a}})}catch(e){t.info(Q.dim(Q.yellow(` [voucher failed: ${e instanceof Error?e.message:e}]`)))}o=``;continue}if(o===`payment-receipt`){if(t.verbose>=1)try{QN(JSON.parse(e),{info:t.info,shownKeys:t.shownKeys,tokenSymbol:t.tokenSymbol,tokenDecimals:t.tokenDecimals,explorerUrl:t.explorerUrl,handler:t.handler,prefix:`
234
+ `);t=s.pop();for(let t of s){if(!t.trim())continue;let i=bE(t);if(i)switch(i.type){case`message`:yield i.data;break;case`payment-need-voucher`:{if(!a||!l)break;let t=BigInt(i.data.requiredCumulative);O(t),a.cumulativeAmount=a.cumulativeAmount>t?a.cumulativeAmount:t;let r=await y.createCredential({challenge:l,context:{action:`voucher`,channelId:a.channelId,cumulativeAmountRaw:a.cumulativeAmount.toString()}}),o=await n(e,{method:`POST`,headers:{Accept:`text/event-stream`,[q.authorization]:r}});if(!o.ok)throw Error(`Voucher POST failed with status ${o.status}`);break}case`payment-receipt`:x(i.data),r?.(i.data)}}}}finally{u.releaseLock()}}return f()},async ws(t,i){if(!r)throw Error("No WebSocket implementation available. Pass `webSocket` to sessionManager() in this runtime.");let{onReceipt:c,protocols:l,signal:m}=i??{},g=new URL(t.toString()),b=new URL(g.toString());b.protocol===`ws:`&&(b.protocol=`http:`),b.protocol===`wss:`&&(b.protocol=`https:`),s=b.toString();let S=await n(b,m?{signal:m}:void 0);if(S.status!==402)throw Error(`Expected a 402 payment challenge from ${b}, received ${S.status} instead.`);let w=(await Dj(kS(iS(S),[y],TS([y]).entries),i?.orderChallenges??e.orderChallenges))[0]?.challenge;if(!w)throw Error(`No payment challenge received from HTTP endpoint for this WebSocket URL. The server may not require payment or did not advertise a challenge.`);o=w;let te=await y.createCredential({challenge:w,context:{}});p=null,u=w,_=0n,v=BigInt(w.request.amount);let ne=WS(te);d=ne.payload.channelId;let k=new r(g,l);f=k;let j=A(k),re=e=>{E(Error(e)),D(Error(e)),(k.readyState===Oj.CONNECTING||k.readyState===Oj.OPEN)&&k.close(kj,e)},ie=e=>e.challengeId===w.id&&e.channelId===d,ae=new Promise((e,t)=>{let n=()=>{k.removeEventListener(`error`,r),j.emit(`open`,{type:`open`}),e()},r=()=>{k.removeEventListener(`open`,n),t(Error(`WebSocket connection to ${g} failed to open.`))};k.addEventListener(`open`,n,{once:!0}),k.addEventListener(`error`,r,{once:!0})});return k.addEventListener(`close`,e=>{f===k&&(f=null),u===w&&(u=null),d===ne.payload.channelId&&(d=null),h=null,E(Error(`WebSocket closed before the payment flow completed.`)),D(Error(`WebSocket closed before the payment flow completed.`)),j.emit(`close`,{code:e.code??1e3,reason:e.reason??``,type:`close`,wasClean:!0})}),k.addEventListener(`error`,()=>{j.emit(`error`,{type:`error`})}),k.addEventListener(`message`,async e=>{let t=typeof e.data==`string`?e.data:void 0;if(!t)return;let n=wE(t);if(!n){j.emit(`message`,{data:t,type:`message`});return}switch(n.mpp){case`authorization`:break;case`message`:_+=1n,j.emit(`message`,{data:n.data,type:`message`});break;case`payment-close-ready`:if(!ie(n.data)){re(`received mismatched payment-close-ready frame`);break}if(BigInt(n.data.spent)>(a?.cumulativeAmount??0n)){re(`received payment-close-ready beyond local voucher state`);break}x(n.data),c?.(n.data),ee(n.data),j.emit(`close`,{code:1e3,reason:`stream complete`,type:`close`});break;case`payment-error`:E(Error(n.message)),D(Error(n.message));break;case`payment-need-voucher`:{if(n.data.channelId!==d){re(`received mismatched payment-need-voucher frame`);break}let e=BigInt(n.data.requiredCumulative);try{O(e)}catch(e){re(e instanceof Error?e.message:`requested voucher amount exceeds local maxDeposit`);break}let t=(a?.cumulativeAmount??0n)>e?a?.cumulativeAmount??0n:e;a?.channelId===d&&(a.cumulativeAmount=t);let r=await y.createCredential({challenge:w,context:{action:`voucher`,channelId:d,cumulativeAmountRaw:t.toString()}});k.send(SE(r));break}case`payment-receipt`:if(!ie(n.data)){re(`received mismatched payment-receipt frame`);break}if(h!==null&&n.data.txHash&&(n.data.acceptedCumulative!==h||n.data.spent!==h)){re(`received mismatched payment-close receipt frame`);break}x(n.data),c?.(n.data),T(n.data)}}),m&&m.addEventListener(`abort`,()=>{E(Error(`WebSocket payment flow aborted.`)),D(Error(`WebSocket payment flow aborted.`)),k.close()},{once:!0}),await ae,k.send(SE(te)),await C(),j.socket},async close(){let e=u??o,t=d??a?.channelId;if(!a?.opened)return;if(!e)throw Error(`Cannot close session: no challenge available. This usually means close() was called on a SessionManager instance that was recreated after the session was opened. Use the same SessionManager instance that opened the session, or make a request first to receive a fresh 402 challenge.`);if(!t)throw Error(`Cannot close session: no channel ID available. The session may not have been fully opened.`);if(f?.readyState===Oj.OPEN){let n=p??await(async()=>(f.send(CE()),w()))(),r=BigInt(n.spent);if(r>(a.cumulativeAmount>l?a.cumulativeAmount:l))throw Error(`close-ready spent exceeds local voucher state`);let i=await y.createCredential({challenge:e,context:{action:`close`,channelId:t,cumulativeAmountRaw:r.toString()}}),o=r.toString();h=o;try{let n=C(n=>!!n.txHash&&n.challengeId===e.id&&n.channelId===t&&n.acceptedCumulative===o&&n.spent===o);f.send(SE(i));let r=await n;return f.close(),p=null,r}finally{h=null}}let r=await y.createCredential({challenge:e,context:{action:`close`,channelId:t,cumulativeAmountRaw:(()=>{let n=BigInt(te(e,t));if(n>a.cumulativeAmount)throw Error(`fallback close amount exceeds local voucher state`);return O(n),n.toString()})()}});if(!s)throw Error(`Cannot close session: no URL available. This usually means close() was called on a SessionManager instance that was recreated after the session was opened. Use the same SessionManager instance that opened the session, or call fetch()/sse() before close().`);let i=await n(s,{method:`POST`,headers:{[q.authorization]:r}});if(!i.ok){let e=await i.text().catch(()=>``),t=(()=>{if(!e)return``;if(!i.headers.get(`Content-Type`)?.includes(`application/problem+json`))return e;try{return JSON.parse(e).detail??e}catch{return e}})(),n=i.headers.get(q.wwwAuthenticate)??``;throw Error(`Close request failed with status ${i.status}${t?`: ${t}`:``}${n?` [${q.wwwAuthenticate}: ${n}]`:``}`)}let c=i.headers.get(q.paymentReceipt);return c?vE(c):void 0}}}async function Dj(e,t){let n=t;return n?n(e):e}var Oj,kj,Aj=F((()=>{pS(),rT(),jx(),ZS(),US(),kE(),Tj(),Oj={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},kj=3008})),jj=F((()=>{Tj(),Aj()}));function Mj(e){return BigInt(e.authorizedSigner)===0n?e.payer:e.authorizedSigner}function Nj(e){let t=te.encode(te.from([`address payer`,`address payee`,`address operator`,`address token`,`bytes32 salt`,`address authorizedSigner`,`bytes32 expiringNonceHash`,`address escrow`,`uint256 chainId`]),[e.payer,e.payee,e.operator,e.token,e.salt,e.authorizedSigner,e.expiringNonceHash,e.escrow??`0x4d50500000000000000000000000000000000000`,BigInt(e.chainId)]);return k.keccak256(t)}function Pj(e){return He.encodeForSigning(e)}function Fj(e){let{feePayer:t,transaction:n}=e;return t?{...n,feePayerSignature:null}:n}function Ij(e,t){return k.keccak256(A.concat(Pj(e),t.sender))}var Lj=F((()=>{kE()})),Rj,zj,Bj,Vj,Hj=F((()=>{Rj=[{name:`payer`,type:`address`},{name:`payee`,type:`address`},{name:`operator`,type:`address`},{name:`token`,type:`address`},{name:`salt`,type:`bytes32`},{name:`authorizedSigner`,type:`address`},{name:`expiringNonceHash`,type:`bytes32`}],zj=[{name:`settled`,type:`uint96`},{name:`deposit`,type:`uint96`},{name:`closeRequestedAt`,type:`uint32`}],Bj={name:`descriptor`,type:`tuple`,components:Rj},Vj=[{type:`function`,name:`CLOSE_GRACE_PERIOD`,stateMutability:`view`,inputs:[],outputs:[{type:`uint64`}]},{type:`function`,name:`VOUCHER_TYPEHASH`,stateMutability:`view`,inputs:[],outputs:[{type:`bytes32`}]},{type:`function`,name:`open`,stateMutability:`nonpayable`,inputs:[{name:`payee`,type:`address`},{name:`operator`,type:`address`},{name:`token`,type:`address`},{name:`deposit`,type:`uint96`},{name:`salt`,type:`bytes32`},{name:`authorizedSigner`,type:`address`}],outputs:[{name:`channelId`,type:`bytes32`}]},{type:`function`,name:`settle`,stateMutability:`nonpayable`,inputs:[Bj,{name:`cumulativeAmount`,type:`uint96`},{name:`signature`,type:`bytes`}],outputs:[]},{type:`function`,name:`topUp`,stateMutability:`nonpayable`,inputs:[Bj,{name:`additionalDeposit`,type:`uint96`}],outputs:[]},{type:`function`,name:`close`,stateMutability:`nonpayable`,inputs:[Bj,{name:`cumulativeAmount`,type:`uint96`},{name:`captureAmount`,type:`uint96`},{name:`signature`,type:`bytes`}],outputs:[]},{type:`function`,name:`requestClose`,stateMutability:`nonpayable`,inputs:[Bj],outputs:[]},{type:`function`,name:`withdraw`,stateMutability:`nonpayable`,inputs:[Bj],outputs:[]},{type:`function`,name:`getChannel`,stateMutability:`view`,inputs:[Bj],outputs:[{type:`tuple`,components:[{name:`descriptor`,type:`tuple`,components:Rj},{name:`state`,type:`tuple`,components:zj}]}]},{type:`function`,name:`getChannelState`,stateMutability:`view`,inputs:[{name:`channelId`,type:`bytes32`}],outputs:[{type:`tuple`,components:zj}]},{type:`function`,name:`getChannelStatesBatch`,stateMutability:`view`,inputs:[{name:`channelIds`,type:`bytes32[]`}],outputs:[{type:`tuple[]`,components:zj}]},{type:`function`,name:`computeChannelId`,stateMutability:`view`,inputs:[{name:`payer`,type:`address`},{name:`payee`,type:`address`},{name:`operator`,type:`address`},{name:`token`,type:`address`},{name:`salt`,type:`bytes32`},{name:`authorizedSigner`,type:`address`},{name:`expiringNonceHash`,type:`bytes32`}],outputs:[{type:`bytes32`}]},{type:`function`,name:`getVoucherDigest`,stateMutability:`view`,inputs:[{name:`channelId`,type:`bytes32`},{name:`cumulativeAmount`,type:`uint96`}],outputs:[{type:`bytes32`}]},{type:`function`,name:`domainSeparator`,stateMutability:`view`,inputs:[],outputs:[{type:`bytes32`}]},{type:`event`,name:`ChannelOpened`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`operator`,type:`address`},{name:`token`,type:`address`},{name:`authorizedSigner`,type:`address`},{name:`salt`,type:`bytes32`},{name:`expiringNonceHash`,type:`bytes32`},{name:`deposit`,type:`uint96`}]},{type:`event`,name:`Settled`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`cumulativeAmount`,type:`uint96`},{name:`deltaPaid`,type:`uint96`},{name:`newSettled`,type:`uint96`}]},{type:`event`,name:`TopUp`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`additionalDeposit`,type:`uint96`},{name:`newDeposit`,type:`uint96`}]},{type:`event`,name:`CloseRequested`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`closeGraceEnd`,type:`uint256`}]},{type:`event`,name:`ChannelClosed`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0},{name:`settledToPayee`,type:`uint96`},{name:`refundedToPayer`,type:`uint96`}]},{type:`event`,name:`CloseRequestCancelled`,inputs:[{name:`channelId`,type:`bytes32`,indexed:!0},{name:`payer`,type:`address`,indexed:!0},{name:`payee`,type:`address`,indexed:!0}]}]}));function Uj(e,t){return{name:Xj,version:Zj,chainId:t,verifyingContract:e}}function Wj(e,t){return Re.getVoucherSignPayload({chainId:e,channelId:t.channelId,cumulativeAmount:t.cumulativeAmount})}function Gj(e,t,n){return e.toLowerCase()===Re.address.toLowerCase()?Wj(t,n):de({domain:Uj(e,t),types:Qj,primaryType:`Voucher`,message:{channelId:n.channelId,cumulativeAmount:n.cumulativeAmount}})}function Kj(e){return e===`secp256k1`||e===`p256`||e===`webAuthn`}function qj(e,t){return Ae.signVoucher(e,{chainId:t.chainId,channel:t.channelId,cumulativeAmount:t.cumulativeAmount})}async function Jj(e,t,n,r,i){let a=await(async()=>{if(r.toLowerCase()===Re.address.toLowerCase())try{return await qj(t,{chainId:i,channelId:n.channelId,cumulativeAmount:n.cumulativeAmount})}catch{}return De(e,{account:t,domain:Uj(r,i),types:Qj,primaryType:`Voucher`,message:n})})(),o=Be.from(a);if(!Kj(o.type))throw Error(`TIP-1034 vouchers require a TIP-1020 primitive signature; received "${o.type}".`);return Be.serialize(o)}function Yj(e,t,n,r){try{let i=Be.from(n.signature);if(!Kj(i.type)||Be.serialize(i).toLowerCase()!==n.signature.toLowerCase())return!1;let a=Gj(e,t,n),o=Be.extractAddress({payload:a,signature:i});return Be.verify(i,{address:o,payload:a})&&bA(o,r)}catch{return!1}}var Xj,Zj,Qj,$j=F((()=>{xA(),Xj=`TIP20 Channel Reserve`,Zj=`1`,Qj={Voucher:[{name:`channelId`,type:`bytes32`},{name:`cumulativeAmount`,type:`uint96`}]}}));function eM(e){return typeof e==`object`&&!!e}function tM(e){return typeof e==`string`&&pe(e,{strict:!1})?e:void 0}function nM(e){return tM(e.accessKeyAddress)}function rM(){let e=BigInt(Math.floor(Date.now()/1e3))-60n;return e<=0n?0:Number(BigInt(A.random(8))%e)}function iM(e){return nM(e)??e.address}async function aM(e,t){let{account:n,calls:r,feePayer:i,feeToken:a,validAfter:o}=t;return Se(e,{account:n,calls:r,nonceKey:`expiring`,...i?{feePayer:!0}:{},feeToken:a,...o===void 0?{}:{validAfter:o}})}async function oM(e,t){return await Ee(e,t)}function sM(e,t,n=!1){let r=e.request.methodDetails,i=eM(r)?tM(r.escrowContract)??tM(r.escrow):void 0,a=t??`0x4d50500000000000000000000000000000000000`;if(i&&!lM(i,a)&&(!n||t!==void 0))throw Error(`Tempo session escrow ${i} does not match client escrow ${a}.`);return i&&!lM(i,a)?i:a}function cM(e,t,n,r){return JS({challenge:e,payload:t,source:`did:pkh:eip155:${n}:${r.address}`})}function lM(e,t){return e.toLowerCase()===t.toLowerCase()}async function uM(e,t,n,r,i,a=OE){let o=Nj({...n,chainId:i,escrow:a}),s=lE(r),c=await Jj(e,t,{channelId:o,cumulativeAmount:s},a,i);return{action:`voucher`,channelId:o,descriptor:n,cumulativeAmount:s.toString(),signature:c}}async function dM(e,t,n,r,i,a=OE){let o=await uM(e,t,n,r,i,a);return{action:`close`,channelId:o.channelId,descriptor:n,cumulativeAmount:o.cumulativeAmount,signature:o.signature}}async function fM(e,t,n){let r=iM(t),i=n.escrow??`0x4d50500000000000000000000000000000000000`,a=n.operator??`0x0000000000000000000000000000000000000000`,o=A.random(32),s=lE(n.deposit),c=lE(n.initialAmount),l=se({abi:Vj,functionName:`open`,args:[n.payee,a,n.token,s,o,r]}),u=await oM(e,await aM(e,{account:t,calls:[...n.prefixCalls??[],{to:i,data:l}],feePayer:n.feePayer,feeToken:n.feeToken??n.token})),d=Pe.deserialize(u),f={authorizedSigner:r,expiringNonceHash:Ij(Fj({...n.feePayer?{feePayer:!0}:{},transaction:d}),{sender:t.address}),operator:a,payee:n.payee,payer:t.address,salt:o,token:n.token},p=Nj({...f,chainId:n.chainId,escrow:i});return{action:`open`,type:`transaction`,channelId:p,transaction:u,signature:await Jj(e,t,{channelId:p,cumulativeAmount:c},i,n.chainId),descriptor:f,cumulativeAmount:c.toString(),authorizedSigner:f.authorizedSigner}}async function pM(e,t,n,r,i,a,o=OE,s=[],c=n.token){let l=Nj({...n,chainId:i,escrow:o}),u=lE(r);return{action:`topUp`,type:`transaction`,channelId:l,transaction:await oM(e,await aM(e,{account:t,calls:[...s,{to:o,data:se({abi:Vj,functionName:`topUp`,args:[n,u]})}],feePayer:a,feeToken:c,validAfter:rM()})),descriptor:n,additionalDeposit:u.toString()}}var mM=F((()=>{ZS(),Lj(),Hj(),kE(),$j()}));function hM(e){let{payee:t,token:n,escrow:r,chainId:i}=e;return`${t.toLowerCase()}:${n.toLowerCase()}:${r.toLowerCase()}:${i}`}function gM(e){return hM({payee:e.descriptor.payee,token:e.descriptor.token,escrow:e.escrow,chainId:e.chainId})}function _M(){let e=new Map;return{get:t=>e.get(t),set(t){e.set(gM(t),t)},delete(t){e.delete(t)}}}function vM(e){return{...e,cumulativeAmount:e.cumulativeAmount.toString(),deposit:e.deposit.toString()}}function yM(e){return{...e,cumulativeAmount:BigInt(e.cumulativeAmount),deposit:BigInt(e.deposit)}}var bM=F((()=>{}));function xM(e){if(e<0n||e>wM)throw new Y({reason:`amount exceeds uint96 range`})}async function SM(e,t,n=OE,r){return CM(await Ce(e,{address:n,abi:Vj,functionName:`getChannelState`,args:[t],...r===void 0?{}:{blockNumber:r}}))}function CM(e){return xM(e.settled),xM(e.deposit),{settled:e.settled,deposit:e.deposit,closeRequestedAt:e.closeRequestedAt}}var wM,TM=F((()=>{_S(),Hj(),kE(),wM=2n**96n-1n}));function EM(e){return`cumulativeAmount`in e}function DM(e){if(EM(e))return BigInt(e.cumulativeAmount)}async function OM(e,t){t.opened?await e.store.set(t):await e.store.delete(gM(t)),e.notifyUpdate(t)}async function kM(e,t,n){let r=DM(n);if(r===void 0)return;let i=await e.store.get(t);i&&i.channelId.toLowerCase()===n.channelId.toLowerCase()&&(i.cumulativeAmount=i.cumulativeAmount>r?i.cumulativeAmount:r,n.action===`close`&&(i.opened=!1),await OM(e,i))}function AM(e){return e?.action!==void 0}function jM(e){return AM(e)&&e.descriptor!==void 0}function MM(e,t,n){let r=n===`additionalDeposit`?e.additionalDepositRaw:e.cumulativeAmountRaw,i=n===`additionalDeposit`?e.additionalDeposit:e.cumulativeAmount;if(r)return BigInt(r);if(i)return N(i,t)}function NM(e,t,n,r){let i=MM(e,t,n);if(i===void 0)throw Error(`${n} required for ${r} action`);return i}function PM(e){return typeof e==`object`&&!!e}function FM(e){return typeof e==`string`&&pe(e,{strict:!1})?e:void 0}function IM(e){let t=e.request.methodDetails;return PM(t)?{chainId:typeof t.chainId==`number`?t.chainId:void 0,escrowContract:FM(t.escrowContract),escrow:FM(t.escrow),feePayer:typeof t.feePayer==`boolean`?t.feePayer:void 0,feeToken:FM(t.feeToken),operator:FM(t.operator),sessionSnapshot:Tx(t,kx.sessionSnapshot)}:{}}function LM(e,t){if(typeof e==`string`&&pe(e,{strict:!1}))return e;throw Error(`tempo session challenge missing ${t}`)}function RM(e){if(typeof e==`string`)return BigInt(e);throw Error(`tempo session challenge missing amount`)}function zM(e){return typeof e==`string`?e:void 0}async function BM(e){let{allowCustomEscrow:t,challenge:n,escrowOverride:r,allowedChainIds:i,getClient:a}=e,o=IM(n);(o.chainId!==void 0||i?.length===0)&&dA(i,o.chainId);let s=o.chainId??(i?.length===1?i[0]:void 0),c=await a({chainId:s});uA(c,s);let l=s??c.chain?.id;if(dA(i,l),!l)throw Error(`No chainId configured for TIP-1034 session challenge.`);let u=sM(n,r,t),d=LM(n.request.recipient,`recipient`),f=LM(n.request.currency,`currency`);return{amount:RM(n.request.amount),challenge:n,chainId:l,client:c,escrow:u,feePayer:o.feePayer,feeToken:o.feeToken,key:hM({payee:d,token:f,escrow:u,chainId:l}),operator:o.operator,payee:d,snapshot:o.sessionSnapshot,suggestedDepositRaw:zM(n.request.suggestedDeposit),token:f}}async function VM(e){let{channelId:t,client:n,descriptor:r,expected:i,readChannelState:a=SM}=e,o=Nj({...r,chainId:i.chainId,escrow:i.escrow});HM({channelId:t,descriptor:r,expectedChannelId:o,payee:i.payee,payer:i.payer,authorizedSigner:i.authorizedSigner,token:i.token});let s=await a(n,o,i.escrow);if(s.deposit===0n)throw Error(`Channel ${o} cannot be reused (closed or not found on-chain).`);if(s.closeRequestedAt!==0)throw Error(`Channel ${o} cannot be reused (pending close request).`);return{channelId:o,state:s}}function HM(e){let{authorizedSigner:t,channelId:n,descriptor:r,expectedChannelId:i,payee:a,payer:o,token:s}=e;if(n&&n.toLowerCase()!==i.toLowerCase())throw Error(`context channelId does not match descriptor`);if(!lM(r.payee,a))throw Error(`context descriptor payee does not match challenge`);if(!lM(r.token,s))throw Error(`context descriptor token does not match challenge`);if(!lM(r.payer,o))throw Error(`context descriptor payer does not match account`);if(!lM(Mj(r),t))throw Error(`context descriptor authorizedSigner does not match account`)}function UM(e){let{context:t,snapshot:n}=e,r=t?.descriptor??n?.descriptor;if(r)return{...t,channelId:t?.channelId??n?.channelId,descriptor:r}}function WM(e){let{context:t,decimals:n,requestAmount:r,snapshot:i,settled:a}=e;if(i)return[BigInt(i.acceptedCumulative),BigInt(i.requiredCumulative),BigInt(i.spent)+r,a].reduce((e,t)=>t>e?t:e,0n);let o=MM(t,n,`cumulativeAmount`);return o===void 0?a+r:o+r}async function GM(e){let{account:t,client:n,readChannelState:r,snapshot:i}=e,a=i.highestVoucher;if(!a)throw Error(`session snapshot is missing its highest signed voucher`);if(a.channelId.toLowerCase()!==i.channelId.toLowerCase())throw Error(`session snapshot voucher channelId does not match snapshot channelId`);let o=BigInt(i.acceptedCumulative),s=BigInt(a.cumulativeAmount),c=BigInt(i.requiredCumulative),l=BigInt(i.deposit),u=BigInt(i.settled),d=BigInt(i.spent);if(s!==o)throw Error(`session snapshot voucher amount does not match acceptedCumulative`);if(d>o)throw Error(`session snapshot spent exceeds acceptedCumulative`);if(u>l)throw Error(`session snapshot settled amount exceeds deposit`);if(!Yj(i.escrow,i.chainId,{channelId:a.channelId,cumulativeAmount:s,signature:a.signature},Mj(i.descriptor)))throw Error(`session snapshot highest voucher signature is invalid`);let f=await VM({channelId:i.channelId,client:n,descriptor:i.descriptor,expected:{chainId:i.chainId,escrow:i.escrow,payee:i.descriptor.payee,payer:t.address,authorizedSigner:iM(t),token:i.descriptor.token},readChannelState:r}),p=[o,c,f.state.settled].reduce((e,t)=>t>e?t:e,0n);if(p>f.state.deposit)throw Error(`recovered session cumulative amount exceeds on-chain channel deposit`);return{entry:{channelId:f.channelId,cumulativeAmount:p,deposit:f.state.deposit,descriptor:i.descriptor,escrow:i.escrow,chainId:i.chainId,opened:!0},spent:d}}function KM(e,t){return lM(e.address,t.payer)?lM(iM(e),Mj(t)):!1}function qM(e){let{account:t,entry:n,context:r,decimals:i,maxDeposit:a,resolved:o}=e;if(AM(r)){if(!jM(r))throw Error(`descriptor required for TIP-1034 session action`);return{type:`manual`,account:t,context:r,decimals:i,resolved:o}}if(!n&&r?.channelId&&!r.descriptor)throw Error(`descriptor required to reuse TIP-1034 channel`);let s=UM({context:r,snapshot:o.snapshot});return!n&&s&&KM(t,s.descriptor)?{type:`recover`,account:t,context:s,decimals:i,maxDeposit:a,resolved:o}:n?.opened&&KM(t,n.descriptor)?{type:`voucher`,account:t,entry:n,maxDeposit:a,resolved:o}:{type:`open`,account:t,context:r,maxDeposit:a,resolved:o}}async function JM(e,t,n=!1){switch(e.type){case`open`:return XM(e,t,n);case`recover`:return ZM(e,t);case`voucher`:return QM(e,t);case`manual`:return $M(e,t,n)}}async function YM(e,t){if(e)return await SA(t.client,{account:t.account,amountOut:t.amountOut,tokenOut:t.tokenOut,tokenIn:e.tokenIn,slippage:e.slippage})}async function XM(e,t,n){let{account:r,resolved:i}=e,a=XE({contextDepositRaw:e.context?.depositRaw,maxDeposit:e.maxDeposit,requestAmount:i.amount,suggestedDepositRaw:i.suggestedDepositRaw}),o=await fM(i.client,r,{chainId:i.chainId,deposit:a,escrow:i.escrow,feePayer:i.feePayer,feeToken:i.feeToken,initialAmount:i.amount,operator:i.operator,payee:i.payee,prefixCalls:await YM(n,{account:r.address,amountOut:a,client:i.client,tokenOut:i.token}),token:i.token});return await OM(t,{channelId:o.channelId,cumulativeAmount:i.amount,deposit:a,descriptor:o.descriptor,escrow:i.escrow,chainId:i.chainId,opened:!0}),o}async function ZM(e,t){let{account:n,context:r,decimals:i,maxDeposit:a,resolved:o}=e,{descriptor:s}=r,c=await VM({channelId:r.channelId,client:o.client,descriptor:s,expected:{chainId:o.chainId,escrow:o.escrow,payee:o.payee,payer:n.address,authorizedSigner:iM(n),token:o.token}}),l=WM({context:r,decimals:i,requestAmount:o.amount,settled:c.state.settled,snapshot:o.snapshot});if(l>c.state.deposit)throw Error(`recovered voucher amount exceeds on-chain channel deposit`);QE(l,a);let u=await uM(o.client,n,s,l,o.chainId,o.escrow);return await OM(t,{channelId:c.channelId,cumulativeAmount:l,deposit:c.state.deposit,descriptor:s,escrow:o.escrow,chainId:o.chainId,opened:!0}),u}async function QM(e,t){let{account:n,entry:r,resolved:i}=e,a=r.cumulativeAmount+i.amount;QE(a,e.maxDeposit);let o=await uM(i.client,n,r.descriptor,a,i.chainId,i.escrow);return r.cumulativeAmount=a,await OM(t,r),o}async function $M(e,t,n){let{account:r,context:i,decimals:a,resolved:o}=e,{descriptor:s}=i,c=Nj({...s,chainId:o.chainId,escrow:o.escrow});HM({channelId:i.channelId,descriptor:s,expectedChannelId:c,payee:o.payee,payer:r.address,authorizedSigner:iM(r),token:o.token});let l=await eN({account:r,channelId:c,context:i,decimals:a,descriptor:s,resolved:o},n);return await kM(t,o.key,l),l}async function eN(e,t){switch(e.context.action){case`open`:return tN(e);case`topUp`:return nN(e,t);case`voucher`:return rN(e);case`close`:return iN(e)}}async function tN(e){let{account:t,channelId:n,context:r,decimals:i,descriptor:a,resolved:o}=e;if(!r.transaction)throw Error(`transaction required for open action`);let s=NM(r,i,`cumulativeAmount`,`open`),c=await uM(o.client,t,a,s,o.chainId,o.escrow);return{action:`open`,type:`transaction`,channelId:n,transaction:r.transaction,signature:c.signature,descriptor:a,cumulativeAmount:s.toString(),authorizedSigner:a.authorizedSigner}}async function nN(e,t){let{account:n,channelId:r,context:i,decimals:a,descriptor:o,resolved:s}=e,c=NM(i,a,`additionalDeposit`,`topUp`);return i.transaction?{action:`topUp`,type:`transaction`,channelId:r,transaction:i.transaction,descriptor:o,additionalDeposit:c.toString()}:pM(s.client,n,o,c,s.chainId,s.feePayer,s.escrow,await YM(t,{account:n.address,amountOut:c,client:s.client,tokenOut:s.token}),s.feeToken)}function rN(e){let{account:t,context:n,decimals:r,descriptor:i,resolved:a}=e;return uM(a.client,t,i,NM(n,r,`cumulativeAmount`,`voucher`),a.chainId,a.escrow)}function iN(e){let{account:t,context:n,decimals:r,descriptor:i,resolved:a}=e;return dM(a.client,t,i,NM(n,r,`cumulativeAmount`,`close`),a.chainId,a.escrow)}var aN,oN,sN,cN=F((()=>{jx(),pA(),qx(),DA(),TM(),Lj(),$j(),mM(),bM(),pD(),aN=J.custom(e=>typeof e==`string`&&/^0x[0-9a-fA-F]*$/.test(e)),oN=J.custom(e=>typeof e==`string`&&/^0x[0-9a-fA-F]{64}$/.test(e)),sN=J.object({account:J.optional(J.custom()),autoSwap:J.optional(J.custom()),action:J.optional(J.enum([`open`,`topUp`,`voucher`,`close`])),channelId:J.optional(oN),cumulativeAmount:J.optional(Lx()),cumulativeAmountRaw:J.optional(J.string()),transaction:J.optional(aN),descriptor:J.optional(J.custom()),additionalDeposit:J.optional(Lx()),additionalDepositRaw:J.optional(J.string()),depositRaw:J.optional(J.string())})}));async function lN(e,t){let n=pN.get(e)??new Map;pN.set(e,n);let r=n.get(t),i,a=new Promise(e=>{i=e});return n.set(t,a),await r,()=>{i(),n.get(t)===a&&n.delete(t)}}function uN(e,t){try{return t?.channelId.toLowerCase()===e.channelId.toLowerCase()&&BigInt(t.acceptedCumulative)===e.cumulativeAmount}catch{return!1}}function dN(e,t,n){try{let r=e.response?.headers.get(q.paymentReceipt);if(r){let e=vE(r);if(e.challengeId===t.id&&uN(n,e))return!0}}catch{}return e.challenges?.some(e=>bD(e)?uN(n,xD(e)):!1)??!1}function fN(e={}){let{account:t,allowCustomEscrow:n=!1,autoSwap:r,channelStore:i,decimals:a=6,escrow:o,allowedChainIds:s,getClient:c,maxDeposit:l,topUpAmount:u,onChannelUpdate:d,resolveAccount:f}=e,p=lA({chain:Le,getClient:c,rpcUrl:aO}),m=iA({account:t}),h=l===void 0?void 0:N(l,a),g=u===void 0?void 0:N(u,a),_=i??_M(),v={store:_,notifyUpdate:e=>d?.(e)},y=async(e,t,n)=>{let r=m(e.client,t),i=t?.action?t.descriptor:n?.descriptor??UM({context:t,snapshot:e.snapshot})?.descriptor;return await f?.({account:r,chainId:e.chainId,operation:{kind:`authorizePaymentChannel`,...i?{authority:Mj(i)}:{}}})??r},b=async(e,t,n)=>qM({account:await y(e,t,n),entry:n,context:t,decimals:a,maxDeposit:h,resolved:e}),x=UT(iE,{canHandleChallenge:({challenge:e})=>bD(e),context:sN,async createCredential(e){let{challenge:t,context:i}=e,a=await BM({allowCustomEscrow:n,challenge:t,escrowOverride:o,allowedChainIds:s,getClient:p}),c=dw(e),l=()=>{};try{let e=!AM(i)&&i?.descriptor===void 0;e&&(l=await lN(_,a.key),c&&(await _.get(a.key))?.opened&&await c.prepare());let n=await _.get(a.key),o=await b(a,i,n);if(!e&&c&&o.type===`open`){l=await lN(_,a.key);let e=await _.get(a.key);e?.channelId!==n?.channelId&&(n=e,n?.opened&&(await c.prepare(),n=await _.get(a.key)),o=await b(a,i,n))}let s,u=c&&o.type===`open`?{store:{get:e=>_.get(e),async set(e){s=e},delete:e=>_.delete(e)},notifyUpdate(){}}:v,d=await cM(t,await JM(o,u,CA(i?.autoSwap??r,TA)),a.chainId,o.account);if(c&&s){let e=s;c.settle=async n=>{let r=n.status===`accepted`||dN(n,t,e);if(!r&&n.status===`pending`)return!1;try{if(r){let t=await _.get(a.key);(!t?.opened||t.channelId.toLowerCase()!==e.channelId.toLowerCase())&&(await _.set(e),v.notifyUpdate(e))}return!0}finally{l()}}}else l();return d}catch(e){throw l(),e}}}),S=async({challenge:e,channel:t,deposit:n,fetch:r,input:i,requiredCumulative:a})=>{let o=t.deposit>n?t.deposit:n,s=ZE({deposit:o,maxDeposit:h,requiredCumulative:a,suggestedDeposit:e.request.suggestedDeposit===void 0?void 0:BigInt(e.request.suggestedDeposit),topUpAmount:g});s>0n&&await ED({additionalDeposit:s,challenge:e,channel:t,channelId:t.channelId,createSessionCredential:(e,t)=>x.createCredential({challenge:e,context:t}),fetch:r,input:i});let c=o+s;if(c===t.deposit)return;let l=await _.get(gM(t)),u=l?.channelId.toLowerCase()===t.channelId.toLowerCase()?l:t,d={...u,deposit:u.deposit>c?u.deposit:c};await _.set(d),v.notifyUpdate(d)};return rw(x,async({challenge:e,context:t,fetch:r,input:i})=>{if(!bD(e))return;let a=t===void 0?void 0:sN.parse(t);if(AM(a))return;let c=await BM({allowCustomEscrow:n,challenge:e,escrowOverride:o,allowedChainIds:s,getClient:p}),l=await _.get(c.key);if(!l?.opened)return;let u=c.snapshot?.channelId.toLowerCase()===l.channelId.toLowerCase()?c.snapshot:void 0,d=l.cumulativeAmount+hE(e),f=u?BigInt(u.requiredCumulative):d,m=f>d?f:d,h=u?BigInt(u.deposit):l.deposit,g=h>l.deposit?h:l.deposit;m<=g&&g===l.deposit||!KM(await y(c,a,l),l.descriptor)||await S({challenge:e,channel:l,deposit:g,fetch:r,input:i,requiredCumulative:m})}),cw(x,async({challenge:e,credential:t,fetch:r,headers:i,input:a,refetch:c,response:l,signal:u})=>{if(!bD(e))return l;if(!yE(l))return mE(WS(t).payload).action===`open`&&i.get(`accept`)?.toLowerCase().includes(`text/event-stream`)?await c?.()??l:l;let d=(await BM({allowCustomEscrow:n,challenge:e,escrowOverride:o,allowedChainIds:s,getClient:p})).key,f=await _.get(d),m={assertVoucherWithinLocalLimit:e=>QE(e,h),createSessionCredential:(e,t)=>x.createCredential({challenge:e,context:t}),fetch:r,getChannel:()=>f??null,async topUpIfNeeded({deposit:t,requiredCumulative:n}){f&&await S({challenge:e,channel:f,deposit:f.deposit>t?f.deposit:t,fetch:r,input:a,requiredCumulative:n})}};return LD({onNeedVoucher:t=>RD({challenge:e,driver:m,input:a},t),onReceipt(){},response:l,signal:u})})}var pN,mN=F((()=>{sw(),hw(),jx(),ZS(),WT(),aA(),pA(),DA(),oO(),oE(),Lj(),kE(),mM(),bM(),cN(),pD(),eO(),pN=new WeakMap}));function hN(e,t){_N.set(e,t)}function gN(e){let t=_N.get(e);if(!t)throw Error(`Session manager internals are unavailable.`);return t}var _N,vN=F((()=>{_N=new WeakMap}));function yN(e){let t=null;return{wait(n=()=>!0){if(t)throw Error(`${e} wait already in progress`);return new Promise((e,r)=>{t={predicate:n,resolve:e,reject:r}})},settle(e){if(!t||!t.predicate(e))return;let n=t;t=null,n.resolve(e)},reject(e){if(!t)return;let n=t;t=null,n.reject(e)}}}function bN(e){let t=yN(`close-ready`),n=yN(`receipt`);return{waitForReceipt(e){return n.wait(e)},waitForCloseReady(){let n=e.getSocketSession()?.closeReadyReceipt;return n?Promise.resolve(n):t.wait()},settleReceipt(e){n.settle(e)},settleCloseReady(n){let r=e.getSocketSession();r&&r.challenge.id===n.challengeId&&r.channelId===n.channelId&&(r.closeReadyReceipt=n),t.settle(n)},rejectReceipt(e){n.reject(e)},rejectCloseReady(e){t.reject(e)}}}var xN=F((()=>{}));function SN(e){return e.method===Dx.tempo&&e.intent===Ox.charge}function CN(e){if(!SN(e)||typeof e.request.amount!=`string`)return!1;try{return BigInt(e.request.amount)===0n}catch{return!1}}function wN(e,t,n){if(!n)return t;let r={...yw(e instanceof Request?e.headers:void 0),...yw(t?.headers)};return Object.keys(r).some(e=>e.toLowerCase()===q.paymentSession.toLowerCase())?t:{...t,headers:{...r,[q.paymentSession]:n}}}function TN(e,t){return e===void 0?t:{...sN.parse(e),...t}}function EN(e){let t=e.decimals??6,n=e.webSocket??globalThis.WebSocket;return{decimals:t,fetch:e.fetch??globalThis.fetch.bind(globalThis),maxVoucherCumulative:e.maxDeposit===void 0?null:N(e.maxDeposit,t),topUpAmount:e.topUpAmount===void 0?null:N(e.topUpAmount,t),WebSocket:n}}function DN(e){let t=e.client?.chain?.id;(t!==void 0||e.allowedChainIds?.length===0)&&dA(e.allowedChainIds,t);let n=e.allowCustomEscrow??!1,r=EN(e),i=lA({chain:Le,getClient:e.client?()=>e.client:e.getClient,rpcUrl:aO}),a=iA({account:e.account}),o=iD(),s=e.credentialContext===void 0?void 0:TN(e.credentialContext,{}),c=bN({getSocketSession:()=>o.socketSession}),l=e.channelStore??_M(),u=new Set,d;async function f(e){let t=await l.get(e);if(t?.opened&&!u.has(t.channelId))return t}let p={async get(e){let t=await f(e);return t&&d&&(d.seenExisting.add(e),!d.committed&&!d.created.has(e)&&(d.resumed??=t)),t},async set(e){let t=gM(e);e.opened&&u.delete(e.channelId),d?.trackCreates&&!d.seenExisting.has(t)&&d.created.set(t,e),await l.set(e)},delete:e=>l.delete(e)};async function m(e){let t=gM(e);u.add(e.channelId),d?.seenExisting.delete(t),d?.resumed===e&&(d.resumed=void 0),await Promise.resolve(l.delete(t)).catch(()=>void 0)}async function h(){let e=d;if(e?.created.size){for(let[t,n]of e.created)u.add(n.channelId),await Promise.resolve(l.delete(t)).catch(()=>void 0);e.created.clear(),await ie(e.committed??e.previous)}}function g(e){let t=Tx(e.request.methodDetails,kx.sessionSnapshot);if(typeof t?.channelId!=`string`)return!1;let n=d;if(!n?.created.size||!o.channel)return!1;for(let[e,r]of n.created)if(r.channelId.toLowerCase()===t.channelId.toLowerCase()&&o.channel.channelId.toLowerCase()===t.channelId.toLowerCase())return n.created.delete(e),n.committed=lD({channel:o.channel,spent:o.spent,state:o.state}),!0;return!1}function _(e){return VE(o,e)}function v(){let e=o.state.status===`active`?o.state:d?.committed?.state??d?.previous.state;return e?.status===`active`?e.units:0}function y(e){let t=d,n=t?.committed?.channel?.entry??t?.resumed;!t||n?.channelId.toLowerCase()!==e.channelId.toLowerCase()||e.deposit<=n.deposit||(t.resumed=void 0,t.committed=lD({channel:o.channel,spent:o.spent,state:o.state}))}let b=fN({account:e.account,allowCustomEscrow:n,autoSwap:e.autoSwap,getClient:e.client?()=>e.client:e.getClient,resolveAccount:e.resolveAccount,escrow:e.escrow,allowedChainIds:e.allowedChainIds,decimals:r.decimals,maxDeposit:e.maxDeposit,topUpAmount:e.topUpAmount,channelStore:p,onChannelUpdate(e){e.channelId!==o.channel?.channelId&&(o.spent=0n),o.channel=e,o.lastChallenge&&_({type:`activated`,challengeId:o.lastChallenge.id,entry:e,spent:o.spent.toString(),units:v()}),y(e)}});lw(b);let x=GA({allowedChainIds:e.allowedChainIds,account:e.account,getClient:e.client?()=>e.client:e.getClient}),S=_w({fetch:r.fetch,methods:[b],onChallenge:async(e,t)=>{if(!yD(e))return;let n=d,r=n&&n.challengesReceived>0&&e.id===o.lastChallenge?.id,i=r&&Yx(e)===Yx(o.lastChallenge);n&&n.challengesReceived++,!i&&(g(e)||(n?.created.size?await h():r&&await ie(n.committed??n.previous)),o.lastChallenge=e,_({type:`challengeReceived`,challengeId:e.id}))}});function C(e,t){return b.createCredential({challenge:e,context:TN(s,t)})}function w(e){aD({maxVoucherCumulative:r.maxVoucherCumulative,receipt:e,runtime:o})}function T(e=o.state.status===`active`?o.state.units:0){!o.channel||!o.lastChallenge||o.state.status!==`active`&&o.state.status!==`withdrawable`&&o.state.status!==`closeRequested`&&_({type:`activated`,challengeId:o.lastChallenge.id,entry:o.channel,spent:o.spent.toString(),units:e})}async function ee(t){let n=t.headers.get(q.paymentSessionSnapshot);if(!n)return;let r=jE(n);dA(e.allowedChainIds,r.chainId);let s=await i({chainId:r.chainId});uA(s,r.chainId);let c=a(s),{entry:l,spent:u}=await GM({account:await e.resolveAccount?.({account:c,chainId:r.chainId,operation:{authority:Mj(r.descriptor),kind:`authorizePaymentChannel`}})??c,client:s,snapshot:r});return k(l.cumulativeAmount),await Promise.resolve(p.set(l)).catch(()=>void 0),o.channel=l,o.spent=u,l}async function E(t,n){if(!e.bootstrap||o.channel?.opened)return;let i=t instanceof Request?t.headers:void 0,{body:a,method:s,...c}=n??{},l=t instanceof Request?t.url:t,u={...c,method:`HEAD`,headers:{...yw(i),...yw(n?.headers),[q.acceptPayment]:`${Dx.tempo}/${Ox.charge}`}};try{let e=await r.fetch(l,u);if(e.status!==402)return await ee(e);let t=iS(e).find(SN);if(!t||!CN(t))return;let n=await x.createCredential({challenge:t,context:{}}),i=await r.fetch(l,{...u,headers:{...yw(u.headers),[q.authorization]:n}});return i.ok?await ee(i):void 0}catch{return}}function D(e,t){let n=o.socketSession;return sD({challengeId:e.id,channelId:t,closeReadyReceipt:n?.closeReadyReceipt,cumulativeAmount:o.channel?.channelId===t?o.channel.cumulativeAmount:0n,deliveredChunks:n?.deliveredChunks,socketChallengeId:n?.challenge.id,socketChannelId:n?.channelId,spent:o.spent,tickCost:n?.tickCost})}function te(e,t){let n=xD(t);if(!n)return;if(Nj({...n.descriptor,chainId:n.chainId,escrow:n.escrow}).toLowerCase()!==n.channelId.toLowerCase())throw Error(`close snapshot descriptor does not match its channel ID`);if(n.channelId.toLowerCase()!==e.channelId.toLowerCase())throw Error(`close snapshot channel ID does not match local session`);if(n.chainId!==e.chainId||n.escrow.toLowerCase()!==e.escrow.toLowerCase())throw Error(`close snapshot payment scope does not match local session`);let r=BigInt(n.acceptedCumulative),i=BigInt(n.spent);if(r<0n||i<0n)throw Error(`close snapshot amounts must not be negative`);if(i>r)throw Error(`close snapshot spent exceeds accepted cumulative amount`);if(r>e.cumulativeAmount)throw Error(`close snapshot accepted cumulative exceeds local voucher state`);return{acceptedCumulative:r,spent:i}}function O(e,t){let n=te(e.channel,t);if(!n)return;let{acceptedCumulative:r,spent:i}=n;if(o.spent>r)throw Error(`close snapshot accepted cumulative is below locally confirmed spend`);return i>o.spent&&(o.spent=i),n}function ne(e,t=e.challenge,n=!1){let r=(n?O(e,t):te(e.channel,t))?.acceptedCumulative??D(t,e.channelId);if(r>e.channel.cumulativeAmount)throw Error(`fallback close amount exceeds local voucher state`);return k(r),r.toString()}function k(e){KE({cumulativeAmount:e,maxVoucherCumulative:r.maxVoucherCumulative})}async function A(e){let{knownDeposit:t,...n}=e,i=await ED({...n,channel:o.channel,createSessionCredential:C,fetch:r.fetch});w(i);let a=_D({additionalDeposit:e.additionalDeposit,channel:o.channel,channelId:e.channelId,challengeId:o.lastChallenge?.id,currentState:o.state,knownDeposit:t,receipt:i,spent:o.spent});return a?.channel&&o.lastChallenge&&(await p.set(a.channel),_({type:`activated`,challengeId:o.lastChallenge.id,entry:a.channel,spent:o.spent.toString(),units:v()}),y(a.channel)),i}async function j(e){let t=o.channel?.channelId===e.channelId?o.channel.deposit:0n,n=t>e.deposit?t:e.deposit,i=ZE({deposit:n,maxDeposit:r.maxVoucherCumulative,requiredCumulative:e.requiredCumulative,suggestedDeposit:e.challenge.request.suggestedDeposit===void 0?void 0:BigInt(e.challenge.request.suggestedDeposit),topUpAmount:r.topUpAmount});i!==0n&&await A({challenge:e.challenge,input:e.input,channelId:e.channelId,additionalDeposit:i,knownDeposit:n})}async function re(e,t){let n=cD({channel:o.channel,channelId:e,challengeId:o.lastChallenge?.id,cumulativeAmount:t,spent:o.spent,state:o.state});n&&o.channel&&(_({type:`activated`,challengeId:n.challengeId,entry:o.channel,spent:n.spent,units:n.units}),await l.set(o.channel))}async function ie(e){let t=uD(e,o.channel);o.channel=t.channel,o.spent=t.spent,o.state=t.state,o.channel?.opened&&await l.set(o.channel)}function ae(e){let t=e.headers.get(q.paymentReceipt),n=t?vE(t):null;return w(n),Object.assign(e,{receipt:n,challenge:o.lastChallenge,channelId:o.channel?.channelId??null,cumulative:o.channel?.cumulativeAmount??0n})}async function oe(e,t){if(d)throw Error(`SessionManager: a request is already in flight; concurrent requests on one manager are not supported`);o.lastUrl=e;let n=lD({channel:o.channel,spent:o.spent,state:o.state}),i={challengesReceived:0,committed:void 0,created:new Map,previous:n,seenExisting:new Set,resumed:void 0,trackCreates:!1};d=i;try{await E(e,t),i.trackCreates=!0;let a=wN(e,t,o.channel?.opened?o.channel.channelId:void 0);s&&(a={...a,context:s});let c=!n.channel?.opened;async function l(){let n=i.resumed;return!c||!n?!1:(c=!1,await m(n),a=wN(e,t,void 0),!0)}for(;;){let t;try{t=await S(e,a)}catch(e){if(i.created.size?await h():await ie(i.committed??n),await l())continue;throw e}let s=ae(t),c=!1;if(s.status===402){let t=await OD({input:e,init:a,response:s,createSessionCredential:C,fetch:r.fetch,getChannel:()=>o.channel,restoreCumulative:re,setChallenge(e){o.lastChallenge=e},topUpIfNeeded:j});t&&(c=!0,s=ae(t))}if(!c&&!s.ok&&!s.receipt){if(i.created.size?await h():await ie(i.committed??n),await l())continue;return s}return s}}finally{d=void 0}}async function se(e){let t=await AD({createSessionCredential:C,fetch:r.fetch,getMinimumSpent:()=>o.spent,lastUrl:o.lastUrl,resolveSignedCloseAmount:t=>ne(e,t,!0),signedCloseAmount:ne(e),setChallenge(e){o.lastChallenge=e},target:e});return t&&(T(),_({type:`closeStarted`}),_({type:`closed`,receipt:t})),t}let ce={createSessionCredential:C,doFetch:oe,fetch:r.fetch,getChannel:()=>o.channel,getChallenge:()=>o.lastChallenge,assertVoucherWithinLocalLimit:k,acceptReceipt(e){w(e)},topUpIfNeeded:j},M={get channelId(){return o.channel?.channelId},get cumulative(){return o.channel?.cumulativeAmount??0n},get opened(){return o.channel?.opened??!1},get state(){return o.state},fetch:oe,async topUp(e){let t=gD({amount:e,assertVoucherWithinLocalLimit:k,channel:o.channel,decimals:r.decimals,lastChallenge:o.lastChallenge,lastUrl:o.lastUrl});return A({additionalDeposit:t.additionalDeposit,challenge:t.challenge,channelId:t.channelId,input:t.input})},async sse(e,t){return jD(e,t,ce)},async ws(e,t){if(!r.WebSocket)throw Error("No WebSocket implementation available. Pass `webSocket` to sessionManager() in this runtime.");let n=wD(e),i=t?.signal?{signal:t.signal}:void 0;await E(n,i);let a=o.channel?.opened?o.channel.channelId:void 0,{challenge:s,credential:l,httpUrl:u,wsUrl:d}=await BD({async createSessionCredential(e,t){return o.lastChallenge=e,await aw(b,{challenge:e,context:t,fetch:r.fetch,input:n}),C(e,t)},fetch:r.fetch,input:e,onProbeUrl(e){o.lastUrl=e.toString()},probeInit:wN(n,i,a),signal:t?.signal});return o.lastChallenge=s,GD({challenge:s,credential:l,httpUrl:u,WebSocket:r.WebSocket,wsUrl:d,options:t,createSessionCredential:C,getChannel:()=>o.channel,setSocketSession(e){o.socketSession=e},async refreshChallenge(){let e=await zD({fetch:r.fetch,input:u,probeInit:wN(u,i,o.channel?.opened?o.channel.channelId:void 0),signal:t?.signal});return o.lastChallenge=e.challenge,e.challenge},assertVoucherWithinLocalLimit:k,acceptReceipt:w,rejectCloseReady:c.rejectCloseReady,rejectReceipt:c.rejectReceipt,settleCloseReady:c.settleCloseReady,settleReceipt:c.settleReceipt,topUpIfNeeded:j,waitForReceipt:c.waitForReceipt})},async close(){let e=o.socketSession,t=$E({channel:o.channel,currentSocket:e,lastChallenge:o.lastChallenge});if(!t)return;let n=e?.socket;if(e&&n?.readyState===ZD.OPEN){let r=await dD({activeSocket:n,createSessionCredential:C,currentSocket:e,spent:o.spent,target:t,waitForCloseReady:c.waitForCloseReady,waitForReceipt:c.waitForReceipt});return T(),_({type:`closeStarted`}),_({type:`closed`,receipt:r}),r}return se(t)}};return hN(M,{consumeSseResponse(e,t,n){return MD(e,t,n,ce)},rehydrate({channel:e,challenge:t,input:n,spent:r}){if(!e.opened)throw Error(`Cannot restore a closed session channel.`);if(!yD(t))throw Error(`Cannot restore session: challenge is not tempo/session.`);if(r<0n)throw Error(`Cannot restore session: spent must not be negative.`);if(r>e.cumulativeAmount)throw Error(`Cannot restore session: spent exceeds local voucher state.`);k(e.cumulativeAmount);let i=te(e,t),a=i&&i.spent>r?i.spent:r;o.lastUrl=n,o.lastChallenge=t,o.channel=e,o.spent=a,_({type:`challengeReceived`,challengeId:t.id}),_({type:`activated`,challengeId:t.id,entry:e,spent:a.toString(),units:0})}}),M}var ON=F((()=>{pS(),rT(),sw(),hw(),jx(),aA(),pA(),qA(),oO(),bM(),cN(),mN(),Lj(),kE(),RE(),vN(),xN(),pD(),eO(),(function(e){e.serializeSnapshot=AE,e.deserializeSnapshot=jE})(DN||={})}));function kN(e){return e instanceof Date?e:new Date(e)}function AN(e){let t=e.getTime();if(!Number.isFinite(t))throw new Y({reason:`subscriptionExpires is invalid`});if(t%1e3!=0)throw new Y({reason:`subscriptionExpires must be representable as whole seconds`});let n=t/1e3;if(n<=0||!Number.isSafeInteger(n))throw new Y({reason:`subscriptionExpires cannot be represented in a Tempo key authorization`});return n}function jN(e){if(!/^[1-9]\d*$/.test(e.periodCount))throw new Y({reason:`periodCount is invalid`});let t=XN[e.periodUnit];if(t===void 0)throw new Y({reason:`periodUnit is invalid`});let n=BigInt(e.periodCount)*t;if(n>YN)throw new Y({reason:`subscription period cannot be represented as an unsigned 64-bit integer`});if(n>BigInt(2**53-1))throw new Y({reason:`subscription period cannot be represented exactly by this Tempo client`});return Number(n)}function MN(e){let{challengeExpires:t,request:n}=e;jN(n);let r=AN(kN(n.subscriptionExpires));if(t){let e=Math.floor(new Date(t).getTime()/1e3);if(!Number.isFinite(e)||r<=e)throw new Y({reason:`subscriptionExpires must be strictly later than challenge expires`})}}function NN(e){let t=KN(e.currency,`currency`),n=KN(e.recipient,`recipient`);return[{address:t,selector:JN,recipients:[n]}]}function PN(e){try{let t=A.fromBytes(O.toBytes(e));if(A.size(t)!==32)throw Error(`invalid challenge id size`);return t}catch{throw new Y({reason:`challenge id must encode 32 bytes`})}}async function FN(e){let{accessKey:t,account:n,challengeId:r,chainId:i,request:a}=e;if(typeof n.sign!=`function`)return;let o=LN({accessKey:t,challengeId:r,chainId:i,request:a}),s=await n.sign({hash:ze.getSignPayload(o)}),c=Be.from(s);if(c.type===`keychain`||c.type===`multisig`)throw new Y({reason:`keyAuthorization must use a primitive signature`});return ze.from(o,{signature:s})}function IN(e){let{accessKey:t,challengeId:n,chainId:r,payload:i,request:a}=e;if(i.type!==`keyAuthorization`)throw new Y({reason:`invalid keyAuthorization payload`});let o=RN(i.signature),s=zN(o);if(BN({accessKey:t,authorization:o,chainId:r}),o.witness?.toLowerCase()!==PN(n))throw new Y({reason:`keyAuthorization challenge mismatch`});return VN(o,a),UN(HN(o),a),WN(o.scopes,a),{authorization:o,source:{address:GN(o,s),chainId:r}}}function LN(e){let{accessKey:t,challengeId:n,chainId:r,request:i}=e;return ze.from({address:KN(t.accessKeyAddress,`accessKeyAddress`),chainId:BigInt(r),expiry:AN(kN(i.subscriptionExpires)),limits:[{token:KN(i.currency,`currency`),limit:BigInt(i.amount),period:jN(i)}],scopes:NN(i),type:t.keyType,witness:PN(n)})}function RN(e){try{return ze.deserialize(e)}catch(e){throw e instanceof ze.InvalidSignatureTypeError?new Y({reason:`keyAuthorization must use a primitive signature`}):new Y({reason:`invalid keyAuthorization payload`})}}function zN(e){let t=e.signature;if(!t)throw new Y({reason:`keyAuthorization must use a primitive signature`});return t}function BN(e){let{accessKey:t,authorization:n,chainId:r}=e;if(n.chainId!==BigInt(r))throw new Y({reason:`keyAuthorization chainId mismatch`});if(t){if(!me(n.address,KN(t.accessKeyAddress,`accessKeyAddress`)))throw new Y({reason:`keyAuthorization access key mismatch`});if(n.type!==t.keyType)throw new Y({reason:`keyAuthorization key type mismatch`})}}function VN(e,t){if(MN({request:t}),e.expiry!==AN(kN(t.subscriptionExpires)))throw new Y({reason:`keyAuthorization expiry mismatch`})}function HN(e){let[t]=e.limits??[];if(!t||e.limits?.length!==1)throw new Y({reason:`keyAuthorization must contain exactly one token limit`});return t}function UN(e,t){if(!me(e.token,KN(t.currency,`currency`)))throw new Y({reason:`keyAuthorization currency mismatch`});if(e.limit!==BigInt(t.amount))throw new Y({reason:`keyAuthorization amount mismatch`});if(e.period!==jN(t))throw new Y({reason:`keyAuthorization period mismatch`})}function WN(e,t){if(!e||e.length!==1)throw new Y({reason:`keyAuthorization must contain a recipient-scoped transferWithMemo call`});let n=KN(t.currency,`currency`),r=KN(t.recipient,`recipient`),i=new Set;for(let t of e){if(!me(t.address,n))throw new Y({reason:`keyAuthorization call target mismatch`});let e=qN(t.selector);if(e!==`0xa9059cbb`&&e!==`0x95777d59`)throw new Y({reason:`keyAuthorization selector not allowed`});if(i.has(e))throw new Y({reason:`keyAuthorization duplicate selector`});if(i.add(e),t.recipients?.length!==1||!me(t.recipients[0],r))throw new Y({reason:`keyAuthorization recipient mismatch`})}if(!i.has(`0x95777d59`))throw new Y({reason:`keyAuthorization must allow transferWithMemo`})}function GN(e,t){let n=ze.getSignPayload(e);try{let e=Be.extractAddress({payload:n,signature:t});if(!Be.verify(t,{address:e,payload:n}))throw new Y({reason:`keyAuthorization signature is invalid`});return e}catch(e){throw e instanceof Y?e:new Y({reason:`keyAuthorization signature is invalid`})}}function KN(e,t){if(!pe(e))throw new Y({reason:`${t} must be an address`});return e.toLowerCase()}function qN(e){return typeof e==`string`?e.toLowerCase():``}var JN,YN,XN,ZN=F((()=>{_S(),JN=`0x95777d59`,YN=(1n<<64n)-1n,XN={dev_second:1n,day:86400n,week:604800n}}));function QN(e={}){let t=lA({chain:ve,getClient:e.getClient,rpcUrl:aO}),n=iA({account:e.account});return UT(aE,{context:tP,async createCredential({challenge:r,context:i}){let a=r.request.methodDetails?.chainId??tO.testnet,o=await t({chainId:a}),s=n(o,i),c=i?.accessKey??e.accessKey??r.request.methodDetails?.accessKey;if(!c)throw Error("No `accessKey` provided. The subscription challenge must include `accessKey`, or the client must pass one to parameters/context.");eP(r.request),await e.validateRequest?.(r.request);let l=await $N(o,{accessKey:c,account:s,challengeId:r.id,chainId:a,request:r.request}),u=IN({accessKey:c,challengeId:r.id,chainId:a,payload:{signature:ze.serialize(l),type:`keyAuthorization`},request:r.request});if(!me(u.source.address,s.address))throw Error(`keyAuthorization signer does not match the selected account`);return JS({challenge:r,payload:{signature:ze.serialize(l),type:`keyAuthorization`},source:`did:pkh:eip155:${a}:${s.address.toLowerCase()}`})}})}async function $N(e,t){let{accessKey:n,account:r,challengeId:i,chainId:a,request:o}=t,s=await FN({accessKey:n,account:r,challengeId:i,chainId:a,request:o});if(s)return s;let c=await e.request({method:`wallet_authorizeAccessKey`,params:[{address:n.accessKeyAddress,expiry:AN(kN(o.subscriptionExpires)),keyType:n.keyType,limits:[{token:o.currency,limit:A.fromNumber(BigInt(o.amount)),period:jN(o)}],scopes:NN(o),witness:PN(i)}]});return ze.fromRpc(c.keyAuthorization)}function eP(e){jN(e),AN(kN(e.subscriptionExpires))}var tP,nP=F((()=>{ZS(),WT(),aA(),pA(),qx(),oO(),oE(),ZN(),tP=J.object({accessKey:J.optional(J.custom()),account:J.optional(J.custom())})}));function rP(e={}){return[GA(e),iP(e)]}var iP,aP,oP=F((()=>{jj(),mN(),ON(),qA(),nP(),iP=Object.assign(fN,{manager:DN}),aP=Object.assign(Ej,{method:Cj}),(function(e){e.charge=GA,e.common=rP,e.session=iP,e.sessionLegacy=aP,e.subscription=QN})(rP||={})})),sP=F((()=>{qA(),oP(),jj(),nP(),mN(),ON()})),cP=Je({orderTempoChargeChallengesByBalance:()=>uP,readTempoKeystore:()=>AP,resolveTempoAccount:()=>jP,tempo:()=>dP});async function lP(e){process.stdout.write(Buffer.from(await e.arrayBuffer()))}async function uP(e,t){let n=[],r=[];for(let[t,i]of e.entries())vP(i)&&(n.push(t),r.push(i));if(r.length<2)return[...e];let i=await yP(t).catch(()=>void 0);if(!i)return[...e];let a=await Promise.all(r.map(async(e,t)=>({challenge:e,index:t,score:await bP(e,i)})));a.sort((e,t)=>zP.indexOf(e.score)-zP.indexOf(t.score)||e.index-t.index);let o=[...e];for(let[e,t]of n.entries())o[t]=a[e].challenge;return o}function dP(){let e;return Wk({method:`tempo`,supports(e){return e.method===`tempo`&&[`charge`,`session`].includes(e.intent)},async setup({challenge:t,options:n,methodOpts:r}){let i=VO(n.account),a=t.request,o=a.currency,s=_P(r),c=wP({autoSwap:s.autoSwap??n.autoSwap,payWith:s.payWith??n.payWith,slippage:s.slippage??n.slippage,tokenIn:s.tokenIn}),l=o??``,u=a.decimals??6,d,f,p,m=!1,h=process.env.MPPX_PRIVATE_KEY?.trim()||(gO(i)?void 0:await HO(i).get());if(!h&&gO(i)&&MP()){m=!0;let e=jP(i);if(e){let r=bO(n.rpcUrl,{network:n.network});p=ie({chain:await SO({network:n.network,rpcUrl:r}),transport:fe(r)}),SP({challenge:t,clientChainId:p.chain?.id}),d=p.chain?.blockExplorers?.default?.url;let i=o?await EO(p,o,e.wallet_address).catch(()=>void 0):void 0;l=i?.symbol??o??``,u=i?.decimals??a.decimals??6}}else if(h)f=_e(h);else{let e=PP();if(e){let t=await HO(e).get();t&&(f=_e(t))}if(!f)throw n.account?new I({code:`ACCOUNT_NOT_FOUND`,message:`Account "${i}" not found.`,exitCode:69}):new I({code:`ACCOUNT_NOT_FOUND`,message:`No account found.`,exitCode:69})}if(!m&&f){let e=bO(n.rpcUrl,{network:n.network});p=ie({chain:await SO({network:n.network,rpcUrl:e}),transport:fe(e)}),SP({challenge:t,clientChainId:p.chain?.id}),d=p.chain?.blockExplorers?.default?.url;let r=o?await EO(p,o,f.address).catch(()=>void 0):void 0;l=r?.symbol??o??``,u=r?.decimals??a.decimals??6}if(m)return{tokenSymbol:l,tokenDecimals:u,explorerUrl:d,methods:[],async createCredential(e){let t=e.headers.get(`www-authenticate`);if(!t)throw Error(`No WWW-Authenticate header in 402 response.`);return NP(t)}};if(!f||!p)throw new I({code:`ACCOUNT_NOT_FOUND`,message:`Tempo requires a configured account.`,exitCode:69});let g=rP({account:f,...s.allowCustomEscrow===void 0?{}:{allowCustomEscrow:s.allowCustomEscrow},getClient:()=>p,...c===void 0?{}:{autoSwap:c},maxDeposit:(()=>{if(t.intent!==`session`)return;let e=t.request.suggestedDeposit,n=(s.deposit===void 0?void 0:String(s.deposit))??e??(TO(p.chain)?`10`:void 0);if(!n)throw new I({code:`MISSING_DEPOSIT`,message:`Session payment requires a deposit. Use -M deposit=<amount> or connect to testnet.`,exitCode:2});return n})()}),_=(()=>{if(!s.channel)return;let e=s.channel,t=EP(e);return{channelId:e,...t!==void 0&&{cumulativeAmountRaw:t.toString()}}})();return e={descriptor:void 0,async signVoucher({channelId:n,cumulativeAmount:r,escrowContract:i,chainId:a,action:o=`voucher`}){let s=e?.descriptor;if(!s)throw Error(`session descriptor not available`);return JS({challenge:t,payload:{action:o,channelId:n,descriptor:s,cumulativeAmount:r.toString(),signature:await Jj(p,f,{channelId:n,cumulativeAmount:r},i,a)},source:`did:pkh:eip155:${a}:${f.address}`})},source:`did:pkh:eip155:${p.chain.id}:${f.address}`},{tokenSymbol:l,tokenDecimals:u,explorerUrl:d,methods:[...g],credentialContext:_}},prepareCredentialRequest({challenge:e,headers:t}){e.intent===`session`&&(t.Accept=`text/event-stream`)},async handleResponse(t){if(t.challenge.intent!==`session`||!e)return!1;let{challenge:n,credential:r,response:i,fetchUrl:a,fetchInit:o,verbose:s}=t,{silent:c,confirmEnabled:l,tokenSymbol:u,tokenDecimals:d,explorerUrl:f,shownKeys:p}=t,m=c?e=>{}:e=>process.stderr.write(e),h=WS(r),g=n.request,_=g.methodDetails,v=h.payload.channelId,y=_?.escrowContract??_?.escrow??`0x4d50500000000000000000000000000000000000`,b=_?.chainId??0,x=BigInt(g.amount),S=`cumulativeAmount`in h.payload&&h.payload.cumulativeAmount?BigInt(h.payload.cumulativeAmount):0n;if(`descriptor`in h.payload&&(e.descriptor=h.payload.descriptor),s>=1){if(h.payload.action===`open`){let e=g.suggestedDeposit,t=e?` ${X.dim(`(deposit ${e} ${u})`)}`:``;m(`${l?``:`
235
+ `}${X.dim(`Channel opened ${h.payload.channelId}`)}${t}\n`)}else m(`${l?``:`
236
+ `}${X.dim(`Channel reused ${h.payload.channelId}`)}\n`)}let C=i;C.ok&&!C.headers.get(`Content-Type`)?.includes(`text/event-stream`)&&h.payload.action===`open`&&`cumulativeAmount`in h.payload&&(S=BigInt(h.payload.cumulativeAmount));let w=C.headers.get(q.paymentReceipt);if(w)try{let e=JSON.parse(O.toString(w));pP(e,S),typeof e.acceptedCumulative==`string`&&e.acceptedCumulative&&DP(v,S),s>=1&&fP(e,{info:m,shownKeys:p,tokenSymbol:u,tokenDecimals:d,explorerUrl:f,handler:this,prefix:`
237
+ `})}catch{}return(C.headers.get(`Content-Type`)??``).includes(`text/event-stream`)?await mP(C,{challenge:n,channelId:v,escrowContract:y,chainId:b,cumulativeAmount:S,tickCost:x,fetchUrl:a,fetchInit:o,session:e,info:m,verbose:s,shownKeys:p,tokenSymbol:u,tokenDecimals:d,explorerUrl:f,handler:this}):(await lP(C),v&&y&&b&&(l&&m(`
238
+ `),l&&!await t.confirm(`Close channel?`,!0)?s>=1&&m(`${X.dim(`Kept channel open.`)}\n`):await hP({channelId:v,cumulativeAmount:S,escrowContract:y,chainId:b,fetchUrl:a,fetchInit:o,session:e,info:m,verbose:s,tokenSymbol:u,tokenDecimals:d,explorerUrl:f,confirmEnabled:l}))),!0},formatReceiptField(e,t){(e===`reference`||e===`txHash`)&&typeof t==`string`&&t.startsWith(`0x`)}})}function fP(e,t){t.info(`${t.prefix??``}${X.bold(X.green(`Payment Receipt`))}\n`);let n=[],r=e.channelId&&e.reference&&e.channelId===e.reference,i=new Set([`acceptedCumulative`,`spent`]);for(let[a,o]of Object.entries(e)){if(o===void 0||t.shownKeys.has(a)||a===`reference`&&r)continue;let e=t.handler.formatReceiptField?.(a,o);e===void 0?i.has(a)&&typeof o==`string`?n.push([a,`${o} ${X.dim(`(${yO(BigInt(o),t.tokenSymbol,t.tokenDecimals)})`)}`]):(a===`reference`||a===`txHash`)&&typeof o==`string`&&t.explorerUrl?n.push([a,pO(`${t.explorerUrl}/tx/${o}`,o)]):n.push([a,String(o)]):n.push([a,e])}n.sort(([e],[t])=>e.localeCompare(t));let a=Math.max(...n.map(([e])=>e.length));for(let[e,r]of n)t.info(` ${X.dim(e.padEnd(a))} ${r}\n`);t.prefix&&t.info(`
239
+ `)}function pP(e,t){if(typeof e.acceptedCumulative!=`string`)return;let n=BigInt(e.acceptedCumulative),r=typeof e.spent==`string`?BigInt(e.spent):0n;if(r>n)throw Error(`receipt spent exceeds accepted cumulative voucher amount`);if(n>t)throw Error(`receipt accepted cumulative exceeds locally signed voucher amount`);if(r>t)throw Error(`receipt spent exceeds locally signed voucher amount`)}async function mP(e,t){let n=t.cumulativeAmount,r=e.body?.getReader();if(!r)throw Error(`No response body`);let i=new TextDecoder,a=``,o=``,s=t.verbose?await gP():void 0,c=(()=>{if(!s||!X.isColorSupported)return;let e=e=>Math.max(0,Math.min(255,Math.round(e))),t=.299*s.r+.587*s.g+.114*s.b<128?1:-1,n=n=>r=>`\x1b[48;2;${e(s.r+n*t)};${e(s.g+n*t)};${e(s.b+n*t)}m${r}\x1b[49m`;return[n(12),n(24)]})(),l=0,u=e=>{if(c){let t=c[l%c.length];process.stdout.write(e.replace(/[^\n]+/g,e=>t(e))),l++}else process.stdout.write(e)},d=async e=>{for(let r of e){if(r.startsWith(`event: `)){o=r.slice(7).trim();continue}if(!r.startsWith(`data: `)){r===``&&(o=``);continue}let e=r.slice(6);if(e.trim()!==`[DONE]`){if(o===`payment-need-voucher`&&t.channelId&&t.escrowContract&&t.chainId){try{let r=JSON.parse(e);if(r.channelId!==t.channelId)throw Error(`payment-need-voucher channelId does not match current session`);let i=BigInt(r.requiredCumulative);if(i>n+t.tickCost)throw Error(`payment-need-voucher exceeds next locally billable amount`);n=n>i?n:i;let a=await t.session.signVoucher({channelId:t.channelId,cumulativeAmount:n,escrowContract:t.escrowContract,chainId:t.chainId});await globalThis.fetch(t.fetchUrl,{method:`POST`,headers:{[q.authorization]:a}})}catch(e){t.info(X.dim(X.yellow(` [voucher failed: ${e instanceof Error?e.message:e}]`)))}o=``;continue}if(o===`payment-receipt`){if(t.verbose>=1)try{fP(JSON.parse(e),{info:t.info,shownKeys:t.shownKeys,tokenSymbol:t.tokenSymbol,tokenDecimals:t.tokenDecimals,explorerUrl:t.explorerUrl,handler:t.handler,prefix:`
240
240
 
241
241
  `})}catch{}o=``;continue}if(e.length===0)u(`
242
242
  `);else try{let t=JSON.parse(e);u(t.token??t.choices?.[0]?.delta?.content??e)}catch{u(e)}o=``}}};for(;;){let{done:e,value:t}=await r.read();if(e)break;a+=i.decode(t,{stream:!0});let n=a.split(`
243
- `);a=n.pop(),await d(n)}a.trim()&&await d([a]),t.channelId&&t.escrowContract&&t.chainId&&await tP({channelId:t.channelId,cumulativeAmount:n,escrowContract:t.escrowContract,chainId:t.chainId,fetchUrl:t.fetchUrl,fetchInit:t.fetchInit,session:t.session,info:t.info,verbose:t.verbose,tokenSymbol:t.tokenSymbol,tokenDecimals:t.tokenDecimals,explorerUrl:t.explorerUrl,confirmEnabled:!1})}async function tP(e){let t=await e.session.signVoucher({channelId:e.channelId,cumulativeAmount:e.cumulativeAmount,escrowContract:e.escrowContract,chainId:e.chainId,action:`close`}),n=await globalThis.fetch(e.fetchUrl,{...e.fetchInit,headers:{...gw(e.fetchInit.headers),Authorization:t}});if(n.ok){if(mP(e.channelId),e.verbose>=1){let t=n.headers.get(Y.paymentReceipt),r;if(t)try{let e=JSON.parse(k.toString(t));typeof e.txHash==`string`&&(r=e.txHash)}catch{}let i=r&&e.explorerUrl?` ${Q.dim(tO(`${e.explorerUrl}/tx/${r}`,r))}`:``;e.info(`${Q.dim(`Channel closed.`)} ${Q.dim(`Spent ${sO(e.cumulativeAmount,e.tokenSymbol,e.tokenDecimals)}.`)}${i}\n`)}}else{let t=await n.text().catch(()=>``);e.info(`\n${Q.dim(Q.yellow(`Channel close failed`))} ${Q.dim(`(${n.status})`)}\n`),e.info(`${Q.dim(` channelId: ${e.channelId}`)}\n${Q.dim(` cumulativeAmount: ${e.cumulativeAmount}`)}\n${Q.dim(` escrowContract: ${e.escrowContract}`)}\n${Q.dim(` chainId: ${e.chainId}`)}\n${Q.dim(` response: ${t||`(empty)`}`)}\n`)}}function nP(e=100){return!process.stdin.isTTY||!process.stdout.isTTY?Promise.resolve(void 0):new Promise(t=>{let n=process.stdin.isRaw,r=``,i=()=>{clearTimeout(a),process.stdin.removeListener(`data`,o),process.stdin.isTTY&&process.stdin.setRawMode(n??!1),process.stdin.pause()},a=setTimeout(()=>{i(),t(void 0)},e),o=e=>{r+=e.toString();let n=r.match(/\x1b\]11;rgb:([0-9a-f]+)\/([0-9a-f]+)\/([0-9a-f]+)/i);if(!n)return;i();let a=e=>Number.parseInt(e.slice(0,2),16);t({r:a(n[1]),g:a(n[2]),b:a(n[3])})};process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on(`data`,o),process.stdout.write(`\x1B]11;?\x07`)})}function rP(e){return sP(CP,e,wP)}function iP(e){return e.method===`tempo`&&e.intent===`charge`}async function aP(e){let t=kO(e.options.account),n=process.env.MPPX_PRIVATE_KEY?.trim()||(iO(t)?void 0:await AO(t).get()),r;if(n)r=me(n).address;else if(iO(t)&&vP())r=_P(t)?.wallet_address;else{let e=bP();if(e){let t=await AO(e).get();t&&(r=me(t).address)}}if(!r)return;let i=cO(e.options.rpcUrl,{network:e.options.network}),a=N({chain:await uO({network:e.options.network,rpcUrl:i}),transport:le(i)});return{account:r,client:a}}async function oP(e,t){let n=e.request,r=n.currency,i=n.amount;if(typeof r!=`string`||typeof i!=`string`)return`unsupported`;let a=n.methodDetails?.chainId;if(a&&t.client.chain?.id&&a!==t.client.chain.id)return`unsupported`;let o=BigInt(i);if(o===0n)return`payable`;let s=await Oe.token.getBalance(t.client,{account:t.account,token:r}).then(e=>e.amount).catch(()=>void 0);return s===void 0?`unknownBalance`:s>=o?`payable`:`insufficientBalance`}function sP(e,t,n){if(t&&typeof t==`object`&&!Array.isArray(t)){let e=Object.keys(t).filter(e=>!n.includes(e));if(e.length)throw Error(`Unsupported CLI method option(s): ${e.join(`, `)}`)}let r=e.safeParse(t??{});if(r.success)return r.data;let i=r.error.issues.map(e=>`${e.path.length?e.path.join(`.`):`options`}: ${e.message}`).join(`, `);throw Error(`Invalid CLI options (${i})`)}function cP(e){let t=e.challenge.request.methodDetails?.chainId;if(!t||!e.clientChainId||t===e.clientChainId)return;let n=t===4217?` Use --network mainnet or --rpc-url https://rpc.tempo.xyz.`:t===42431?` Use --network testnet or --rpc-url https://rpc.moderato.tempo.xyz.`:``;throw new R({code:`CHAIN_MISMATCH`,message:`Challenge requires chainId ${t}, but RPC is chainId ${e.clientChainId}.${n}`,exitCode:2})}function lP(e){if(e)return e.split(`,`).map(e=>e.trim()).filter(Boolean)}function uP(e){let t=lP(e.tokenIn)??lP(e.payWith);if(!(!e.autoSwap&&!t&&e.slippage===void 0)){if(e.autoSwap===!1&&!t&&e.slippage===void 0)return!1;if(e.slippage!==void 0&&(!Number.isFinite(e.slippage)||e.slippage<0))throw Error(`Invalid CLI options (slippage: expected a non-negative number)`);return{...t?{tokenIn:t}:{},...e.slippage===void 0?{}:{slippage:e.slippage}}}}function dP(){return s.join(process.env.XDG_CONFIG_HOME||s.join(y.homedir(),`.config`),`mppx`,`channels`)}function fP(t){try{let n=e.readFileSync(s.join(dP(),t),`utf-8`).trim();return n?BigInt(n):void 0}catch{return}}function pP(t,n){let r=dP();e.mkdirSync(r,{recursive:!0}),e.writeFileSync(s.join(r,t),n.toString(),`utf-8`)}function mP(t){try{e.unlinkSync(s.join(dP(),t))}catch{}}function hP(){return y.platform()===`darwin`?s.join(y.homedir(),`Library`,`Application Support`,`tempo`,`wallet`,`keys.toml`):s.join(process.env.XDG_DATA_HOME||s.join(y.homedir(),`.local`,`share`),`tempo`,`wallet`,`keys.toml`)}function gP(){try{let t=e.readFileSync(hP(),`utf-8`),n=[],r;for(let e of t.split(`
244
- `)){let t=e.trim();if(t===`[[keys]]`){r?.wallet_address&&n.push(r),r={wallet_type:`local`,wallet_address:``,chain_id:0};continue}if(!r)continue;let i=t.match(/^(\w+)\s*=\s*"?([^"]*)"?$/);if(!i)continue;let[,a,o]=i;a===`wallet_type`?r.wallet_type=o:a===`wallet_address`?r.wallet_address=o:a===`chain_id`&&(r.chain_id=Number.parseInt(o,10))}return r?.wallet_address&&n.push(r),n}catch{return[]}}function _P(e){let t=gP();if(t.length===0)return;let n=e.slice(6);if(n==="default"||n===``)return t[0];let r=Number.parseInt(n,10);if(!Number.isNaN(r)&&r>=0&&r<t.length)return t[r]}function vP(){if(EP!==void 0)return EP;try{p.execFileSync(`which`,[`tempo`],{stdio:`ignore`}),EP=!0}catch{EP=!1}return EP}async function yP(e){return new Promise((t,n)=>{p.execFile(`tempo`,[`mpp`,`sign`,`--challenge`,e],(e,r,i)=>{if(e){let t=i?.trim()||e.message;n(Error(`tempo mpp sign failed: ${t}`));return}let a=r.trim();if(!a){n(Error(`tempo mpp sign returned empty output`));return}t(a)})})}function bP(){let e=OO();if(iO(e.get())&&!vP()&&y.platform()===`darwin`)try{let t=p.execFileSync(`security`,[`dump-keychain`],{encoding:`utf-8`}),n=[];for(let e of t.split(`keychain:`)){let t=e.match(/"svce"<blob>="([^"]*)"/),r=e.match(/"acct"<blob>="([^"]*)"/);t?.[1]===xP&&r?.[1]&&n.push(r[1])}if(n.length>0)return e.set(n[0]),n[0]}catch{}}var xP,SP,CP,wP,TP,EP,DP=L((()=>{xx(),eT(),Ox(),JS(),qN(),_E(),zj(),IO(),SO(),Nk(),xP=`mppx`,SP=f.union([f.boolean(),f.literal(`true`).transform(()=>!0),f.literal(`false`).transform(()=>!1)]),CP=f.object({allowCustomEscrow:f.optional(SP),autoSwap:f.optional(SP),channel:f.optional(f.coerce.string()),deposit:f.optional(f.union([f.string(),f.number()])),payWith:f.optional(f.string()),slippage:f.optional(f.coerce.number()),tokenIn:f.optional(f.string())}),wP=[`allowCustomEscrow`,`autoSwap`,`channel`,`deposit`,`payWith`,`slippage`,`tokenIn`],TP=[`payable`,`unknownBalance`,`insufficientBalance`,`unsupported`]}));bS(),IO(),Nk();const OP=[...Object.entries(BO),...Object.entries(VO),...Object.entries(HO),...Object.entries(UO)];function kP(){return Mk({method:`evm`,supports:AP,async setup({challenge:e,options:t}){let n=e.request,r=n.network?jP(XO(n.network)):void 0,i=n.network&&n.asset?OP.find(([,e])=>JO(e,n.asset,n.network)):void 0,a=n.extra?.name,o=n.extra?.version,s=n.asset&&n.network&&typeof a==`string`&&typeof o==`string`?RO({address:n.asset,decimals:i?.[1].decimals??6,network:n.network,transfer:{name:a,type:`eip3009`,version:o}}):void 0,c=await NO(t.account);return{explorerUrl:r?.blockExplorers?.default?.url,methods:[...jk({account:c,...s&&{currencies:[s]}})],tokenDecimals:i?.[1].decimals??6,tokenSymbol:i?.[0]??``}}})}function AP(e){if(!vS(e))return!1;let t=e.request,n=t.extra,r=n?.assetTransferMethod;return t.scheme===`exact`&&typeof t.asset==`string`&&typeof t.network==`string`&&typeof n?.name==`string`&&typeof n?.version==`string`&&(r===void 0||r===`eip3009`)}function jP(e){return Object.values(Ne).find(t=>t.id===e)}BS(),DP();const MP=[ZN(),Uk(),Pk(),kP()];async function NP(e,t,n){let r=n;for(let n of t??[]){let t=await n.preparePayment?.({challenge:e,...r===void 0?{}:{credentialContext:r}});t&&`credentialContext`in t&&(r=t.credentialContext)}return r}function PP(e,t){let n=t?.plugins?.find(t=>RP(t,e));if(n)return{plugin:n};let r=MP.find(t=>RP(t,e));if(r)return{plugin:r};let i=LP(t)?.find(t=>t.name===e.method&&t.intent===e.intent);return i?{method:i}:{}}function FP(e,t){let n=LP(t);if(n?.length){let r=TS(e,n,SS(n,t?.paymentPreferences).entries);return r?{challenge:r.challenge,...PP(r.challenge,t)}:void 0}for(let n of e){let e=PP(n,t);if(e.plugin||e.method)return{challenge:n,...e}}}function IP(e){let t=LP(e);if(t?.length)return SS(t,e?.paymentPreferences).header}function LP(e){return Array.isArray(e?.methods)?e.methods.flat():void 0}function RP(e,t){return e.supports?e.supports(t):e.method===t.method}async function zP(e){let t=BP(e);if(!t)return;let n=await import(t);return{config:n.default??n,path:t}}function BP(t){if(t){let n=s.resolve(t);return e.existsSync(n)?n:void 0}let n=process.env.MPPX_CONFIG?.trim();if(n){let t=s.resolve(n);return e.existsSync(t)?t:void 0}}DP(),uS(),eM(),iN(),mN(),HD();function VP(e){return e??globalThis.fetch.bind(globalThis)}function HP(e,t){let n=e.request.methodDetails?.chainId;if(n!==void 0&&n!==t.chainId)throw Error(`Close challenge changed the session chain.`);if(typeof e.request.recipient!=`string`||e.request.recipient.toLowerCase()!==t.descriptor.payee.toLowerCase())throw Error(`Close challenge changed the session payee.`);if(typeof e.request.currency!=`string`||e.request.currency.toLowerCase()!==t.descriptor.token.toLowerCase())throw Error(`Close challenge changed the session token.`);if(qj(e,t.escrow).toLowerCase()!==t.escrow.toLowerCase())throw Error(`Close challenge changed the session escrow.`);let r=lD(e);if(r&&r.channelId.toLowerCase()!==t.channelId.toLowerCase())throw Error(`Close challenge changed the session channel.`)}async function UP(e){HP(e.challenge,e.channel);let t=VP(e.fetch),n,r=async(r,i)=>{n&&=(await e.onChallenge?.(n),void 0);let a=await t(r,i);if(a.status!==402)return a;let o=tS(a).find(sD);if(!o)throw Error(`Refreshed close response did not include tempo/session.`);return HP(o,e.channel),n=o,a},i=pN({...e.manager,bootstrap:!1,escrow:e.channel.escrow,fetch:r});nN(i).rehydrate(e);let a=await i.close();if(!a)throw Error(`Session close response did not include a payment receipt.`);return{manager:i,receipt:a}}uS(),eM(),oM(),HD(),Cj(),Wx();var WP=class extends Error{name=`SessionStateError`;code=`SESSION_STATE_INVALID`;file;constructor(e,t={}){super(e,t.cause===void 0?void 0:{cause:t.cause}),this.file=t.file}},GP=class extends Error{name=`SessionBusyError`;code=`SESSION_BUSY`;exitCode=75;scope;owner;constructor(e,t){super(`Session scope is busy in process ${t.pid} on ${t.hostname}.`),this.scope=e,this.owner=t}};const KP=X.object({channelId:Bx(),cumulativeAmount:X.string(),deposit:X.string(),descriptor:X.object({payer:zx(),payee:zx(),operator:zx(),token:zx(),salt:Bx(),authorizedSigner:zx(),expiringNonceHash:Bx()}),escrow:zx(),chainId:X.number(),opened:X.boolean()}),qP=X.object({name:X.optional(X.string()),address:zx()}),JP=X.object({method:X.literal(`tempo`),intent:X.literal(`session`),status:X.literal(`success`),timestamp:X.string(),reference:X.string(),challengeId:X.string(),channelId:Bx(),acceptedCumulative:X.string(),spent:X.string(),units:X.optional(X.number()),txHash:X.optional(Bx())}),YP=X.object({version:X.literal(1),method:X.literal(`tempo`),intent:X.literal(`session`),status:X.enum([`opening`,`open`,`closing`,`stale`]),channel:KP,account:qP,endpoint:X.string(),challenge:lS,receipt:X.optional(JP),spent:X.string(),units:X.number(),createdAt:X.string(),updatedAt:X.string()}),XP=X.object({version:X.literal(1),channelId:Bx()}),ZP=X.object({version:X.literal(1),scope:X.string(),hostname:X.string(),pid:X.number(),token:X.string(),createdAt:X.string()});function QP(e,t,n,r){let i=e.safeParse(t);if(!i.success)throw $(n,r,i.error);return i.data}function $P(e){let t=lF(e);return[t.payer,t.payee,t.token,t.escrow,t.chainId].join(`:`)}function eF(e){return{payer:e.descriptor.payer,payee:e.descriptor.payee,token:e.descriptor.token,escrow:e.escrow,chainId:e.chainId}}function tF(e={}){let t=e.stateRoot??rF(),n={root:t,channels:s.join(t,`channels`),locks:s.join(t,`locks`),preferred:s.join(t,`preferred`)},r=e.hostname??y.hostname(),i=e.pid??process.pid,a=e.now??(()=>new Date),o=e.isProcessAlive??FF;async function c(){for(let e of[n.root,n.channels,n.locks,n.preferred])await S.mkdir(e,{recursive:!0,mode:448}),await S.chmod(e,448)}async function l(e){let t=sF(e),r=iF(n,t),i=await EF(r);if(i===void 0)return;let a=_F(i,r);if(a.channel.channelId.toLowerCase()!==t)throw $(r,`Session filename does not match its channel ID.`);return vF(a)}async function u(){let e;try{e=await S.readdir(n.channels,{withFileTypes:!0})}catch(e){if(LF(e,`ENOENT`))return[];throw $(n.channels,`Unable to list managed sessions.`,e)}let t=[];for(let n of e){if(!n.isFile()||n.name.includes(`.tmp-`)||!n.name.endsWith(`.json`))continue;let e=n.name.slice(0,-5);sF(e);let r=await l(e);r&&t.push(r)}return t.sort((e,t)=>e.createdAt.localeCompare(t.createdAt))}async function d(e){await c();let t=pF(e.channel),r=sF(t.channelId),i=iF(n,r),o=await EF(i),s=o===void 0?void 0:_F(o,i);s&&yF(s,e,i);let l=hF(e.challenge,i);xF(l,t,i);let u=e.receipt?gF(e.receipt,t.channelId,i):void 0,d=s?aM(s.channel):void 0,f=TF(t.cumulativeAmount,d?.cumulativeAmount??0n),p=TF(e.spent??0n,u?BigInt(u.spent):0n,s?BigInt(s.spent):0n);if(p>f)throw $(i,`Session spend exceeds the locally authorized cumulative amount.`);let m=mF(iM({...t,cumulativeAmount:f}),i),h=wF(s?.updatedAt,a(),i),g=CF(s?.receipt,u),_=fF(e.account,i),v=_F({version:1,method:`tempo`,intent:`session`,status:e.status,channel:m,account:{..._.name===void 0?s?.account.name===void 0?{}:{name:s.account.name}:{name:_.name},address:_.address},endpoint:dF(e.endpoint,i),challenge:l,...g!==void 0&&{receipt:g},spent:p.toString(),units:Math.max(s?.units??0,e.units??0,u?.units??0),createdAt:s?.createdAt??h,updatedAt:h},i);return await DF(i,v),vF(v)}async function f(e){let t=oF(n,e),r=await EF(t);if(r===void 0)return;let{channelId:i}=QP(XP,r,t,`Preferred session is invalid.`),a=await l(i);if(!a)throw $(t,`Preferred session ${i} does not exist.`);return SF(a.channel,e,t),i}async function p(e,t){let r=sF(t),i=await l(r),a=oF(n,e);if(!i)throw $(a,`Session ${r} does not exist.`);SF(i.channel,e,a),await DF(a,{version:1,channelId:r})}async function m(e,t){let r=oF(n,e),i=t===void 0?void 0:sF(t),a=await EF(r);if(a===void 0)return;let o=QP(XP,a,r,`Preferred session is invalid.`).channelId;i&&o.toLowerCase()!==i||await NF(r,`Unable to clear preferred session.`)}async function h(e){let t=sF(e),r=await l(t);r&&(await m(eF(r.channel),t),await NF(iF(n,t),`Unable to remove session.`))}async function _(e){await c();let t=aF(n,e);for(let n=0;n<3;n++){let n={version:1,scope:e,hostname:r,pid:i,token:g(),createdAt:a().toISOString()};try{if(await OF(t,n),await jF(AF(t))){await MF(t,n);continue}return{async release(){await MF(t,n)}}}catch(e){if(!LF(e,`EEXIST`))throw e}let s=await EF(t);if(s===void 0)continue;let c=QP(ZP,s,t,`Session lock is invalid.`);if(c.scope!==e)throw $(t,`Session lock scope is invalid.`);if(c.hostname!==r||o(c.pid))throw new GP(e,c);await kF(t,c)}let s=await EF(t);throw s===void 0?$(t,`Unable to acquire session lock.`):new GP(e,QP(ZP,s,t,`Session lock is invalid.`))}async function v(e){return _($P(e))}return{root:t,get:l,list:u,upsert:d,remove:h,getPreferred:f,setPreferred:p,clearPreferred:m,acquire:v}}function nF(e,t){let n=uF(t.scope),r=t.selection===`auto`||t.selection===`new`?void 0:sF(t.selection);function i(e){if(e.toLowerCase()!==n)throw new WP(`Session manager requested an unexpected payment scope.`)}async function a(n=!0){if(t.selection===`new`&&!r)return;let i=r??await e.getPreferred(t.scope);if(!i)return;let a=await e.get(i);if(!a)throw new WP(`Session ${i} does not exist.`);if(SF(a.channel,t.scope),!(n&&(a.status!==`open`||!a.channel.opened)))return r=i,a}return{async get(e){return i(e),(await a())?.channel},async set(n){if(i(nM(n)),SF(n,t.scope),r&&r.toLowerCase()!==n.channelId.toLowerCase())throw new WP(`Session manager selected ${r}, but attempted to store ${n.channelId}.`);r||t.onNewChannel?.(n);let a=await e.upsert({...t.context(),channel:n});r=a.channel.channelId,await e.setPreferred(t.scope,a.channel.channelId)},async delete(n){i(n);let o=await a(!1);if(!o)return;let s=t.context();await e.upsert({...o,...s,status:s.status===`closing`?`closing`:`stale`,channel:o.channel,spent:s.spent??o.spent,units:s.units??o.units}),s.status!==`closing`&&await e.clearPreferred(t.scope,o.channel.channelId),r=void 0}}}function rF(){let e=process.env.XDG_STATE_HOME||s.join(y.homedir(),`.local`,`state`);return s.join(e,`mppx`,`sessions`,`v1`)}function iF(e,t){return s.join(e.channels,`${t}.json`)}function aF(e,t){let n=h(`sha256`).update(t).digest(`hex`);return s.join(e.locks,`${n}.lock`)}function oF(e,t){let n=h(`sha256`).update($P(t)).digest(`hex`);return s.join(e.preferred,`${n}.json`)}function sF(e){return QP(Bx(),e,void 0,`Invalid session channel ID: ${e}.`).toLowerCase()}function cF(e,t,n){return QP(zx(),e,n,`Invalid ${t}.`).toLowerCase()}function lF(e){if(!Number.isSafeInteger(e.chainId)||e.chainId<0)throw new WP(`Invalid session chain ID.`);return{payer:cF(e.payer,`session payer`),payee:cF(e.payee,`session payee`),token:cF(e.token,`session token`),escrow:cF(e.escrow,`session escrow`),chainId:e.chainId}}function uF(e){let t=lF(e);return[t.payee,t.token,t.escrow,t.chainId].join(`:`)}function dF(e,t){if(typeof e!=`string`)throw $(t,`Session endpoint is invalid.`);let n;try{n=new URL(e)}catch(e){throw $(t,`Session endpoint is invalid.`,e)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw $(t,`Session endpoint must use HTTP or HTTPS.`);if(n.username||n.password)throw $(t,`Session endpoint must not contain credentials.`);let r=e.indexOf(`#`);return r===-1?e:e.slice(0,r)}function fF(e,t){return QP(qP,e,t,`Session account is invalid.`)}function pF(e){return aM(mF(iM(e)))}function mF(e,t){return QP(KP,e,t,`Stored session channel is invalid.`)}function hF(e,t){let n=lS.safeParse(e);if(!n.success||!sD(n.data))throw $(t,`Stored session challenge is invalid.`);return n.data}function gF(e,t,n){let r=QP(JP,e,n,`Stored session receipt is invalid.`);if(r.channelId!==t.toLowerCase())throw $(n,`Stored session receipt has a different channel ID.`);if(r.reference.toLowerCase()!==t.toLowerCase())throw $(n,`Stored session receipt has a different reference.`);if(BigInt(r.spent)>BigInt(r.acceptedCumulative))throw $(n,`Stored session receipt spend exceeds its accepted amount.`);return r}function _F(e,t){let n=QP(YP,e,t,`Stored session is invalid.`),{receipt:r,...i}=n,a=n.channel,o=n.account;if(o.address.toLowerCase()!==a.descriptor.payer.toLowerCase())throw $(t,`Stored session account does not match the channel payer.`);let s=r?gF(r,a.channelId,t):void 0,c=n.spent,l=BigInt(a.cumulativeAmount);if(BigInt(c)>l)throw $(t,`Stored session spend exceeds its cumulative authorization.`);if(s&&BigInt(s.acceptedCumulative)>l)throw $(t,`Stored receipt exceeds the cumulative authorization.`);if(Date.parse(n.updatedAt)<Date.parse(n.createdAt))throw $(t,`Stored session timestamps are not monotonic.`);let u=dF(n.endpoint,t);if(u!==n.endpoint)throw $(t,`Stored session endpoint contains a fragment.`);let d=hF(n.challenge,t);return xF(d,aM(a),t),{...i,account:o,channel:a,endpoint:u,challenge:d,...s&&{receipt:s}}}function vF(e){return{version:1,status:e.status,channel:aM(e.channel),account:e.account,endpoint:e.endpoint,challenge:e.challenge,...e.receipt&&{receipt:e.receipt},spent:BigInt(e.spent),units:e.units,createdAt:e.createdAt,updatedAt:e.updatedAt}}function yF(e,t,n){let r=pF(t.channel),i=fF(t.account,n),a=aM(e.channel);if(JSON.stringify(bF(r))!==JSON.stringify(bF(a)))throw $(n,`Session update changed immutable channel identity.`);if(i.address.toLowerCase()!==e.account.address.toLowerCase())throw $(n,`Session update changed the payer account.`)}function bF(e){return{channelId:e.channelId.toLowerCase(),descriptor:Object.fromEntries(Object.entries(e.descriptor).map(([e,t])=>[e,typeof t==`string`?t.toLowerCase():t])),escrow:e.escrow.toLowerCase(),chainId:e.chainId}}function xF(e,t,n){if(yj({...t.descriptor,chainId:t.chainId,escrow:t.escrow}).toLowerCase()!==t.channelId.toLowerCase())throw $(n,`Session channel ID does not match its descriptor.`);let r=cF(e.request.recipient,`challenge recipient`,n),i=cF(e.request.currency,`challenge currency`,n);if(r!==t.descriptor.payee.toLowerCase())throw $(n,`Session challenge payee does not match the channel.`);if(i!==t.descriptor.token.toLowerCase())throw $(n,`Session challenge token does not match the channel.`);if(qj(e,t.escrow).toLowerCase()!==t.escrow.toLowerCase())throw $(n,`Session challenge escrow does not match the channel.`);if(IF(e.request.methodDetails)){let r=e.request.methodDetails;if(r.chainId!==void 0&&r.chainId!==t.chainId)throw $(n,`Session challenge chain does not match the channel.`)}}function SF(e,t,n){let r=lF(t);if(e.descriptor.payer.toLowerCase()!==r.payer||e.descriptor.payee.toLowerCase()!==r.payee||e.descriptor.token.toLowerCase()!==r.token||e.escrow.toLowerCase()!==r.escrow||e.chainId!==r.chainId)throw $(n,`Session channel does not match the selected payment scope.`)}function CF(e,t){return e?t&&Date.parse(t.timestamp)>=Date.parse(e.timestamp)?t:e:t}function wF(e,t,n){if(!Number.isFinite(t.getTime()))throw $(n,`Session clock is invalid.`);let r=t.toISOString();return!e||Date.parse(r)>=Date.parse(e)?r:e}function TF(...e){return e.reduce((e,t)=>t>e?t:e,0n)}async function EF(e){let t;try{t=await S.readFile(e,`utf8`)}catch(t){if(LF(t,`ENOENT`))return;throw $(e,`Unable to read session state.`,t)}try{return JSON.parse(t)}catch(t){throw $(e,`Session state contains invalid JSON.`,t)}}async function DF(e,t){await S.mkdir(s.dirname(e),{recursive:!0,mode:448}),await S.chmod(s.dirname(e),448);let n=`${e}.tmp-${process.pid}-${g()}`,r;try{r=await S.open(n,`wx`,384),await r.writeFile(`${JSON.stringify(t,null,2)}\n`,`utf8`),await r.sync(),await r.close(),r=void 0,await S.rename(n,e),await S.chmod(e,384),await PF(s.dirname(e))}catch(t){throw await r?.close().catch(()=>void 0),await S.unlink(n).catch(()=>void 0),t instanceof WP?t:$(e,`Unable to write session state.`,t)}}async function OF(e,t){let n;try{n=await S.open(e,`wx`,384),await n.writeFile(`${JSON.stringify(t)}\n`,`utf8`),await n.sync(),await n.close(),n=void 0,await PF(s.dirname(e))}catch(t){throw await n?.close().catch(()=>void 0),n&&await S.unlink(e).catch(()=>void 0),t}}async function kF(e,t){let n=AF(e);try{await S.link(e,n)}catch(t){if(LF(t,`EEXIST`)||LF(t,`ENOENT`))return;throw $(e,`Unable to claim dead lock.`,t)}try{let r=await EF(n);if(r===void 0||QP(ZP,r,n,`Session lock is invalid.`).token!==t.token)return;await NF(e,`Unable to reclaim dead lock.`)}finally{await NF(n,`Unable to release dead lock claim.`)}}function AF(e){return`${e}.reclaim`}async function jF(e){try{return await S.access(e),!0}catch(t){if(LF(t,`ENOENT`))return!1;throw $(e,`Unable to inspect session lock.`,t)}}async function MF(e,t){let n=await EF(e);n!==void 0&&QP(ZP,n,e,`Session lock is invalid.`).token===t.token&&await NF(e,`Unable to release session lock.`)}async function NF(e,t){try{await S.unlink(e),await PF(s.dirname(e))}catch(n){if(!LF(n,`ENOENT`))throw $(e,t,n)}}async function PF(e){let t=await S.open(e,`r`);try{await t.sync()}finally{await t.close()}}function FF(e){try{return process.kill(e,0),!0}catch(e){if(LF(e,`ESRCH`))return!1;if(LF(e,`EPERM`))return!0;throw e}}function IF(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function LF(e,t){return e instanceof Error&&`code`in e&&e.code===t}function $(e,t,n){return new WP(t,{...n!==void 0&&{cause:n},file:e})}xx(),eT(),JM(),dM(),Cj(),IO(),SO();const RF=f.object({status:f.enum([`opening`,`open`,`closing`,`stale`]),channelId:f.string(),account:f.string().optional(),payer:f.string(),payee:f.string(),authorizedSigner:f.string(),token:f.string(),escrow:f.string(),chainId:f.number(),cumulativeAmount:f.string(),confirmedSpend:f.string(),deposit:f.string(),units:f.number(),resourceUrl:f.string(),createdAt:f.string(),updatedAt:f.string()}),zF=f.object({channelId:f.string(),status:f.enum([`closed`,`already-closed`]),spent:f.string(),txHash:f.string().optional()}),BF=f.object({closed:f.array(zF),failed:f.array(f.object({channelId:f.string(),message:f.string()}))});function VF(e){return e===`mainnet`?he.id:ge.id}function HF(e){if(e===he.id)return`mainnet`;if(e===ge.id)return`testnet`}function UF(e){let t={};for(let n of e??[]){let e=n.indexOf(`:`);if(e===-1)throw new R({code:`INVALID_HEADER`,message:`Invalid header format: ${n}`,exitCode:2});t[n.slice(0,e).trim()]=n.slice(e+1).trim()}return t}function WF(e){return{status:e.status,channelId:e.channel.channelId,...e.account.name&&{account:e.account.name},payer:e.channel.descriptor.payer,payee:e.channel.descriptor.payee,authorizedSigner:e.channel.descriptor.authorizedSigner,token:e.channel.descriptor.token,escrow:e.channel.escrow,chainId:e.channel.chainId,cumulativeAmount:e.channel.cumulativeAmount.toString(),confirmedSpend:e.spent.toString(),deposit:e.channel.deposit.toString(),units:e.units,resourceUrl:e.endpoint,createdAt:e.createdAt,updatedAt:e.updatedAt}}function GF(e,t){throw e instanceof R?e:e instanceof GP?new R({code:e.code,message:e.message,exitCode:e.exitCode,cause:e}):e instanceof WP?new R({code:e.code,message:e.message,exitCode:65,cause:e}):new R({code:t,message:e instanceof Error?e.message:String(e),exitCode:75,...e instanceof Error&&{cause:e}})}async function KF(e,t){let n=await MO(t??e.account.name);if(!MM(n.account,e.channel.descriptor))throw new R({code:`SESSION_ACCOUNT_MISMATCH`,message:`Account ${n.account.address} cannot sign for session ${e.channel.channelId}.`,exitCode:2});return n}async function qF(e,t){if(t.network&&VF(t.network)!==e)throw new R({code:`CHAIN_MISMATCH`,message:`Session uses chainId ${e}, not ${t.network}.`,exitCode:2});let n=t.network??HF(e),r=cO(t.rpcUrl,{network:n}),i=await uO({network:n,rpcUrl:r});if(i.id!==e)throw new R({code:`CHAIN_MISMATCH`,message:`Session uses chainId ${e}, but RPC is chainId ${i.id}.`,exitCode:2});return N({chain:i,transport:le(r)})}const JF=tb(`sessions`,{description:`Manage persistent payment sessions (list, view, close)`}).command(`list`,{description:`List persistent payment sessions`,options:f.object({account:f.string().optional().describe(`Filter by account name`),network:f.enum([`mainnet`,`testnet`]).optional().describe(`Filter by Tempo network`)}),output:f.object({sessions:f.array(RF)}),alias:{account:`a`},async run(e){try{let t=(await tF().list()).filter(t=>!(e.options.account&&t.account.name!==e.options.account||e.options.network&&t.channel.chainId!==VF(e.options.network))).map(WF),n={sessions:t};if(e.format===`json`&&e.formatExplicit)return e.ok(n);t.length===0&&console.log(`No sessions.`);for(let[e,n]of t.entries())e>0&&console.log(``),YF(n);return}catch(e){return GF(e,`SESSION_LIST_FAILED`)}}}).command(`view`,{description:`View a persistent payment session`,args:f.object({channelId:f.string().describe(`Full session channel ID`)}),output:RF,async run(e){try{let t=await tF().get(e.args.channelId);if(!t)throw new R({code:`SESSION_NOT_FOUND`,message:`Session ${e.args.channelId} was not found.`,exitCode:2});let n=WF(t);if(e.format===`json`&&e.formatExplicit)return e.ok(n);YF(n);return}catch(e){return GF(e,`SESSION_VIEW_FAILED`)}}}).command(`close`,{description:`Cooperatively close persistent payment sessions`,usage:[{suffix:`<channel-id> [options]`},{suffix:`--all --yes [options]`}],args:f.object({channelId:f.string().optional().describe(`Full session channel ID`)}),options:f.object({account:f.string().optional().describe(`Account name`),all:f.boolean().optional().default(!1).describe(`Close every matching session`),header:f.array(f.string()).optional().describe(`Add close request header (repeatable)`),network:f.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),rpcUrl:f.string().optional().describe(`RPC endpoint (env: MPPX_RPC_URL)`),url:f.string().optional().describe(`Override the stored resource URL`),yes:f.boolean().optional().default(!1).describe(`Confirm closing every session`)}),output:f.union([zF,BF]),alias:{account:`a`,header:`H`,rpcUrl:`r`},async run(e){if(e.options.all&&e.args.channelId)return e.error({code:`INVALID_SESSION_CLOSE`,message:`Specify a channel ID or --all, not both.`,exitCode:2});if(!e.options.all&&!e.args.channelId)return e.error({code:`INVALID_SESSION_CLOSE`,message:`Specify a channel ID or --all.`,exitCode:2});if(e.options.all&&!e.options.yes)return e.error({code:`CONFIRMATION_REQUIRED`,message:`Closing all sessions requires --yes.`,exitCode:2});if(e.options.all&&(e.options.header||e.options.rpcUrl||e.options.url))return e.error({code:`INVALID_SESSION_CLOSE`,message:`--header, --rpc-url, and --url only apply to a single session.`,exitCode:2});let t=tF();async function n(e,n={}){let r=await t.get(e);if(!r)throw new R({code:`SESSION_NOT_FOUND`,message:`Session ${e} was not found.`,exitCode:2});let i=eF(r.channel),a=await t.acquire(i);try{let r=await t.get(e);if(!r)throw new R({code:`SESSION_NOT_FOUND`,message:`Session ${e} was not found.`,exitCode:2});let a=await KF(r,n.account),o=await qF(r.channel.chainId,n);if(yj({...r.channel.descriptor,escrow:r.channel.escrow,chainId:r.channel.chainId}).toLowerCase()!==r.channel.channelId.toLowerCase())throw new R({code:`SESSION_STATE_INVALID`,message:`Stored descriptor does not derive the session channel ID.`,exitCode:65});if((await cM(o,r.channel.channelId,r.channel.escrow)).deposit===0n)return await t.remove(r.channel.channelId),{channelId:r.channel.channelId,status:`already-closed`,spent:r.spent.toString()};let s=dF(n.resourceUrl??r.endpoint),c={...a.source===`keychain`&&{name:a.accountName},address:a.account.address},l=(e=r.challenge)=>({status:`closing`,account:c,endpoint:s,challenge:e,...r.receipt&&{receipt:r.receipt},spent:r.spent,units:r.units}),u=await t.upsert({...l(),channel:r.channel}),d=UF(n.headers),f=u.challenge,p=await UP({channel:u.channel,challenge:u.challenge,fetch:async(e,t)=>globalThis.fetch(e,{...t,headers:{...d,...gw(t?.headers)}}),input:s,spent:u.spent,async onChallenge(e){f=e,await t.upsert({...l(e),channel:u.channel})},manager:{account:a.account,client:o,channelStore:nF(t,{scope:i,selection:u.channel.channelId,context:()=>l(f)})}});return await t.remove(u.channel.channelId),{channelId:u.channel.channelId,status:`closed`,spent:p.receipt.spent,txHash:p.receipt.txHash}}finally{await a.release()}}try{if(e.options.all){let r=(await t.list()).filter(t=>(!e.options.account||t.account.name===e.options.account)&&(!e.options.network||t.channel.chainId===VF(e.options.network))),i=[],a=[];for(let t of r)try{i.push(await n(t.channel.channelId,{account:e.options.account,network:e.options.network}))}catch(e){a.push({channelId:t.channel.channelId,message:e instanceof Error?e.message:String(e)})}let o={closed:i,failed:a};if(a.length>0){for(let e of a)process.stderr.write(`${e.channelId}: ${e.message}\n`);process.exitCode=1}if(e.format===`json`&&e.formatExplicit)return e.ok(o);for(let e of i)console.log(`${e.channelId} ${e.status} ${e.spent}`);for(let e of a)console.log(`${e.channelId} failed ${e.message}`);return}let r=await n(e.args.channelId,{account:e.options.account,headers:e.options.header,network:e.options.network,resourceUrl:e.options.url,rpcUrl:e.options.rpcUrl});if(e.format===`json`&&e.formatExplicit)return e.ok(r);console.log(`${r.channelId} ${r.status} ${r.spent}`),r.txHash&&console.log(` transaction ${r.txHash}`);return}catch(e){return GF(e,`SESSION_CLOSE_FAILED`)}}});function YF(e){console.log(e.channelId),console.log(` status ${e.status}`),console.log(` cumulative amount ${e.cumulativeAmount}`),console.log(` confirmed spend ${e.confirmedSpend}`),console.log(` deposit ${e.deposit}`),console.log(` chain ${e.chainId}`),console.log(` payer ${e.payer}`),console.log(` payee ${e.payee}`),console.log(` token ${e.token}`),console.log(` resource ${e.resourceUrl}`)}xx(),JM(),iN(),mN(),_E(),IO(),SO();function XF(e,t){if(t&&e!==`auto`&&t.toLowerCase()!==e.toLowerCase())throw new R({code:`SESSION_SELECTION_CONFLICT`,message:`--session and -M channel= select different sessions.`,exitCode:2});let n=t??e;if(n===`auto`||n===`new`)return n;if(/^0x[0-9a-fA-F]{64}$/.test(n))return n.toLowerCase();throw new R({code:`INVALID_SESSION`,message:`Session must be auto, new, or a 32-byte channel ID.`,exitCode:2})}function ZF(e){return typeof e.request.decimals==`number`?e.request.decimals:6}function QF(e){let t=e.allowCustomEscrow;if(t!==void 0){if(t===`true`)return!0;if(t===`false`)return!1;throw new R({code:`INVALID_ALLOW_CUSTOM_ESCROW`,message:`allowCustomEscrow must be true or false.`,exitCode:2})}}function $F(e,t,n){if(t.deposit!==void 0)return t.deposit;let r=e.request.suggestedDeposit;return typeof r==`string`?oe(BigInt(r),ZF(e)):n?`10`:void 0}function eI(e,t){if(!e)return;if(e.challengeId!==t.challenge.id)throw Error(`Session receipt challenge does not match the paid request.`);if(e.channelId.toLowerCase()!==t.channelId.toLowerCase())throw Error(`Session receipt channel does not match the selected channel.`);let n=BigInt(e.acceptedCumulative),r=BigInt(e.spent);if(n>t.cumulative)throw Error(`Session receipt exceeds the local cumulative authorization.`);if(r>n)throw Error(`Session receipt spend exceeds its accepted authorization.`);return e}function tI(e,t){return e.channel.channelId.toLowerCase()===t.toLowerCase()}function nI(e){if(e.trim()!==`[DONE]`){if(e.length===0){process.stdout.write(`
245
- `);return}try{let t=JSON.parse(e);process.stdout.write(t.token??t.choices?.[0]?.delta?.content??e)}catch{process.stdout.write(e)}}}async function rI(e){let{options:t}=e,n=await MO(t.account),r=cO(t.rpcUrl,{network:t.network}),i=await uO({network:t.network,rpcUrl:r}),a=N({chain:i,transport:le(r)}),o=QF(e.methodOptions),s=await EM({allowCustomEscrow:o,challenge:e.challenge,getClient:async()=>a});if(s.chainId!==i.id)throw new R({code:`CHAIN_MISMATCH`,message:`Challenge requires chainId ${s.chainId}, but RPC is chainId ${i.id}.`,exitCode:2});let c={payer:n.account.address,payee:s.payee,token:s.token,escrow:s.escrow,chainId:s.chainId},l=XF(t.session,e.methodOptions.channel),u=e.registry??tF(),d=await u.acquire(c).catch(e=>{throw e instanceof GP?new R({code:e.code,message:e.message,exitCode:e.exitCode,cause:e}):e});try{let r=l===`auto`?await u.getPreferred(c):l===`new`?void 0:l,s=r?await u.get(r):void 0;if(r&&!s)throw new R({code:`SESSION_NOT_FOUND`,message:`Session ${r} was not found.`,exitCode:2});if(s&&l!==`auto`&&(s.status!==`open`||!s.channel.opened||$P(eF(s.channel))!==$P(c)||!MM(n.account,s.channel.descriptor)))throw new R({code:`SESSION_MISMATCH`,message:`Session ${s.channel.channelId} cannot be used for this account and challenge.`,exitCode:2});let d=s?.status===`open`&&s.channel.opened?s:void 0,f=d?`open`:`opening`,p=e.challenge,m=d?.receipt,h=d?.spent??0n,g=d?.units??0,_=dF(e.endpoint),v={...n.source===`keychain`&&{name:n.accountName},address:n.account.address},y=nF(u,{scope:c,selection:l,context:()=>({status:f,account:v,endpoint:_,challenge:p,...m&&{receipt:m},spent:h,units:g}),onNewChannel(){f=`opening`,m=void 0,h=0n,g=0}}),{signal:b,...x}=e.init,S={...x,...b&&{signal:b},onReceipt(e){m=e,h=h>BigInt(e.spent)?h:BigInt(e.spent),g=Math.max(g,e.units??0)}};if(e.challengeResponse.status!==402||e.challengeResponse.bodyUsed)throw Error(`Session manager requires an unconsumed 402 challenge response.`);let C=!0,w=pN({account:n.account,allowCustomEscrow:o,bootstrap:!1,client:a,channelStore:y,credentialContext:e.credentialContext,decimals:ZF(e.challenge),maxDeposit:$F(e.challenge,e.methodOptions,pO(i)),fetch:async(t,n)=>C?(C=!1,e.challengeResponse):e.fetch(t,n)});d&&nN(w).rehydrate({channel:d.channel,challenge:e.challenge,input:e.fetchInput,spent:d.spent});let{onReceipt:T,...E}=S,D=await w.fetch(e.fetchInput,E);if(t.fail&&D.status>=400)throw new R({code:`HTTP_ERROR`,message:`HTTP error ${D.status}`,exitCode:22});if(D.status===402)throw new R({code:`PAYMENT_REJECTED`,message:`Payment rejected.`,exitCode:75});ZD(D,{include:!1,verbose:t.include?Math.max(t.verbose,2):t.verbose,silent:t.silent}),p=D.challenge??e.challenge;let O=w.channelId;if(!O)throw Error(`Session manager did not select a channel.`);if(m=eI(D.receipt,{challenge:p,channelId:O,cumulative:w.cumulative})??m,sE(D)){let t=nN(w).consumeSseResponse(e.fetchInput,D,{onReceipt:T,signal:e.init.signal??void 0});for await(let e of t)nI(e)}else process.stdout.write(Buffer.from(await D.arrayBuffer()));let k=await u.get(O);if(!k||!tI(k,O))throw Error(`Session ${O} was not persisted.`);if(m){let e=eI(m,{challenge:p,channelId:O,cumulative:w.cumulative});if(!e)throw Error(`Session receipt validation failed.`);m=e,h=h>BigInt(e.spent)?h:BigInt(e.spent),g=Math.max(g,e.units??0),f=`open`}await u.upsert({status:f,channel:k.channel,account:v,endpoint:_,challenge:p,...m&&{receipt:m},spent:h,units:g}),t.silent||(e.info(`Session retained ${O}\n`),e.info(`Close with: mppx sessions close ${O}\n`))}finally{await d.release()}}SO();function iI(e,t){return t?{label:e,detail:t,severity:`pass`}:{label:e,severity:`pass`}}function aI(e,t,n){let r={label:e,severity:`fail`};return t&&(r.detail=t),n&&(r.hint=n),r}function oI(e,t,n){let r={label:e,severity:`warn`};return t&&(r.detail=t),n&&(r.hint=n),r}function sI(e,t,n){let r=t?{label:e,detail:t,severity:`skip`}:{label:e,severity:`skip`};return n&&(r.hint=n),r}const cI={pass:Q.green(`✓`),fail:Q.red(`✗`),warn:Q.yellow(`⚠`),skip:Q.dim(`○`)};function lI(e){let t=cI[e.severity],n=e.detail?`${e.label} (${e.detail})`:e.label;console.log(` ${t} ${n}`),e.hint&&e.severity!==`pass`&&console.log(Q.dim(` → ${e.hint}`))}function uI(e){console.log(`\n${Q.bold(e)}`)}function dI(e,t){for(let n of e)lI(n),n.severity===`pass`?t.passed++:n.severity===`fail`?t.failed++:n.severity===`warn`?t.warnings++:n.severity===`skip`&&t.skipped++}async function fI(e,t,n=15e3){let r=new AbortController,i=setTimeout(()=>r.abort(),n);try{return await fetch(e,{...t,signal:r.signal})}finally{clearTimeout(i)}}function pI(e){return e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(1)}MB`}const mI=new Set([`get`,`post`,`put`,`patch`,`delete`,`head`,`options`,`trace`]);function hI(e){return typeof e==`string`&&/^0x[0-9a-fA-F]{40}$/.test(e)}function gI(e){return typeof e==`string`&&/^(0|[1-9][0-9]*)$/.test(e)}function _I(e){let t=e.indexOf(`:`);if(t<1)return null;let n=e.slice(0,t).toLowerCase();if(!mI.has(n))return null;let r=e.slice(t+1);if(!r)return null;let i=r.startsWith(`/`)?r:`/`+r;return{method:n.toUpperCase(),path:i}}function vI(e,t){if(e){try{let n=JSON.parse(e);if(n&&typeof n==`object`&&!Array.isArray(n)){let e=Object.keys(n);if(e.length>0&&e.every(e=>e.startsWith(`/`))){let e=n[t];return e===void 0?void 0:typeof e==`string`?e:JSON.stringify(e)}}}catch{}return e}}function yI(e){if(!e)return{};let t={};for(let n of e){let e=n.indexOf(`:`);e>0&&(t[n.slice(0,e).trim().toLowerCase()]=n.slice(e+1).trim())}return t}async function bI(e){let t=new URL(`openapi.json`,e.replace(/\/?$/,`/`)).href;try{let e=await fI(t,{});if(!e.ok)return{error:`HTTP ${e.status}`};let n=await e.text();return{doc:JSON.parse(n),raw:n}}catch(e){return e instanceof DOMException&&e.name===`AbortError`?{error:`Request timed out after 15s`}:e instanceof SyntaxError?{error:`Invalid JSON`}:{error:e.message}}}function xI(e){let t=[],n=[],r=e.paths;if(!r)return[];for(let[e,i]of Object.entries(r)){let r=wI(i.parameters);for(let[a,o]of Object.entries(i)){if(!mI.has(a)||!o||typeof o!=`object`||Array.isArray(o))continue;let i=o,s=TI(r,wI(i.parameters)),c=s.length>0?s:void 0;if(i[`x-payment-info`]){let n=i[`x-payment-info`];t.push({method:a.toUpperCase(),path:e,amount:n.amount,parameters:c})}else{let t=i.responses;t&&`402`in t&&n.push({method:a.toUpperCase(),path:e,parameters:c})}}}return t.length>0?t:n}function SI(e,t){let n=e.paths;if(!n)return;let r=n[t.path];if(!r)return;let i=r[t.method.toLowerCase()];if(!i?.requestBody)return;let a=i.requestBody.content?.[`application/json`];if(!a)return;if(a.example)return JSON.stringify(a.example);if(a.examples&&typeof a.examples==`object`){let e=Object.values(a.examples)[0];if(e?.value)return JSON.stringify(e.value)}let o=a.schema,s=new Set;if(o=DI(o,e,s),!o||o.type!==`object`)return;let c=OI(o,e,s);if(c&&typeof c==`object`&&Object.keys(c).length>0)return JSON.stringify(c)}function CI(e,t,n){let r=t.path;t.parameters&&(r=EI(r,t.parameters));let i=r.startsWith(`/`)?r.slice(1):r,a=new URL(i,e.replace(/\/?$/,`/`)).href;if(n){let e=new URL(a);for(let t of n){let[n,...r]=t.split(`=`);n&&e.searchParams.set(n,r.join(`=`))}a=e.href}return a}function wI(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;e.in===`path`&&typeof e.name==`string`&&t.push(e.schema&&typeof e.schema==`object`?{name:e.name,in:`path`,schema:e.schema,example:e.example}:{name:e.name,in:`path`,example:e.example})}return t}function TI(e,t){let n=[...e];for(let e of t){let t=n.findIndex(t=>t.name===e.name);t>=0?n[t]=e:n.push(e)}return n}function EI(e,t){return e.replace(/\{([^}]+)\}/g,(e,n)=>{let r=t.find(e=>e.name===n&&e.in===`path`);if(!r)return e;let i=r.example??r.schema?.example??r.schema?.default;return i===void 0?e:encodeURIComponent(String(i))})}function DI(e,t,n){if(!e||typeof e.$ref!=`string`)return e;if(n?.has(e.$ref))return;let r=e.$ref.replace(/^#\//,``).split(`/`),i=t;for(let e of r)if(i&&typeof i==`object`)i=i[e];else return;return i}function OI(e,t,n){let r=DI(e,t,n)??e;if(r.const!==void 0)return r.const;if(r.example!==void 0)return r.example;if(r.default!==void 0)return r.default;switch(r.type){case`string`:return r.enum&&Array.isArray(r.enum)?r.enum[0]:r.format===`email`?`test@example.com`:r.format===`uuid`?`00000000-0000-0000-0000-000000000000`:r.format===`uri`||r.format===`url`?`https://example.com`:r.format===`date`?`2026-01-01`:r.pattern===`^\\d{5}(?:-\\d{4})?$`?`10001`:r.pattern===`^[A-Z]{2}$`?`US`:`test`;case`number`:case`integer`:return r.minimum??1;case`boolean`:return!0;case`array`:return[];case`object`:{let e=r.properties;if(!e)return{};let i=r.required||[],a={};for(let r of i){let i=e[r];i&&(a[r]=OI(i,t,n))}return a}default:return null}}uS(),Ox(),JC(),SO();const kI=Object.values(Ne);function AI(e){let t=e.request.methodDetails;return typeof t?.chainId==`number`&&kI.find(e=>e.id===t.chainId)?.testnet===!0}async function jI(e,t,n,r){let i=[],a=CI(e,t,r?.query),o=yI(r?.extraHeaders),s;r?.body&&!r.bodyIsAutogenerated&&(s=r.body,o[`content-type`]||=`application/json`);let c;try{let e={method:t.method};Object.keys(o).length>0&&(e.headers=o),s&&(e.body=s),c=await fI(a,e)}catch(e){return i.push(aI(`Request failed`,e.message)),{results:i}}if(!s&&(c.status===400||c.status===422)){let e=r?.body??(r?.discoveryDoc?SI(r.discoveryDoc,t):void 0);if(e){n&&console.log(Q.dim(` Retrying with body: ${e}`)),s=e,o[`content-type`]=`application/json`;try{c=await fI(a,{method:t.method,headers:o,body:s})}catch(e){return i.push(aI(`Request failed`,e.message)),{results:i}}}}if(c.status!==402)return c.status===200?i.push(sI(`Returns 402 without credentials`,`Got 200 (endpoint may not require payment in all cases)`)):c.status===401||c.status===403?i.push(sI(`Returns 402 without credentials`,`Got ${c.status} (endpoint requires auth before payment gate)`)):i.push(aI(`Returns 402 without credentials`,`Got ${c.status} instead`,c.status===400||c.status===422?`Server requires a valid request body before returning 402. Add a requestBody schema with examples to your OpenAPI doc, or use --body.`:`Endpoints that require payment must return HTTP 402 with a WWW-Authenticate: Payment header when no valid credential is provided.`)),{results:i};i.push(iI(`Returns 402 without credentials`));let l=c.headers.get(Y.wwwAuthenticate),u=HI(c);if(!l)return u.length>0?(i.push(sI(`Not an MPP endpoint`,`No WWW-Authenticate header — x402 protocol detected`)),i.push(...u)):i.push(sI(`Not an MPP endpoint`,`No WWW-Authenticate header (may be x402 or other protocol)`)),{results:i};if(u.length>0&&i.push(...u),!l.startsWith(`${Cx.payment} `))return i.push(sI(`Not an MPP endpoint`,`WWW-Authenticate scheme is not Payment`)),{results:i};i.push(iI(`WWW-Authenticate header present`,`Payment scheme`));let d;try{d=tS(c)}catch(e){let t=e.message;i.push(aI(`Challenge parseable`,t,`The Payment challenge must include a request="<base64url>" parameter containing JSON-encoded payment details.`));let n=l.slice(l.indexOf(` `)+1);return i.push(oI(`Received`,n.length>200?n.slice(0,200)+`...`:n)),{results:i}}if(d.length===0)return i.push(aI(`Challenge parseable`,`No Payment challenges found in header`)),{results:i};let f=d.map(e=>`${e.method}/${e.intent}`).join(`, `);i.push(iI(`Challenge parseable`,d.length===1?f:`${d.length} methods: ${f}`));let p=new URL(e).hostname;MI(d,i),NI(d,i),PI(d,i),FI(d,p,i);let m=d.length>1;for(let e of d){let t=e.request;II(e,t,i,m)}if(n)for(let e of d)console.log(Q.dim(` Challenge (${e.method}/${e.intent}): ${JSON.stringify(e,null,2)}`));return{results:i,resolvedBody:s,challenges:d}}function MI(e,t){let n=e.filter(e=>!e.id);n.length===0?t.push(iI(`Challenge has id`)):t.push(aI(`Challenge has id`,`${n.length} missing`,`Every challenge must include a unique id field.`))}function NI(e,t){let n=e.filter(e=>!e.realm);n.length===0?t.push(iI(`Challenge has realm`)):t.push(aI(`Challenge has realm`,`${n.length} missing`,`Set realm to your server's hostname.`))}function PI(e,t){let n=new Date;for(let r of e){if(!r.expires){t.push(oI(`Challenge has expiration`,`missing expires field`,`Add an expires field (ISO 8601) to prevent replay attacks.`));return}if(new Date(r.expires)<=n){t.push(aI(`Challenge expires in the future`,`Expired at ${r.expires}`,`The expires timestamp must be in the future.`));return}}let r=Math.min(...e.map(e=>new Date(e.expires).getTime()-n.getTime()));t.push(iI(`Challenge expires in the future`,`${Math.round(r/6e4)}m from now`))}function FI(e,t,n){let r=[...new Set(e.map(e=>e.realm??``))].filter(e=>e&&e!==t&&!t.endsWith(`.${e}`));r.length>0?n.push(oI(`Realm matches server hostname`,`realm="${r[0]}" vs host="${t}"`,`Set the realm to your production hostname (or base domain) in the challenge.`)):n.push(iI(`Realm matches server hostname`))}function II(e,t,n,r){let i=r?`[${e.method}] `:``;e.method===wx.tempo?LI(t,i,n,e):e.method===wx.stripe?RI(t,i,n):e.method===wx.evm&&zI(e,t,i,n)}function LI(e,t,n,r){let i=e.methodDetails,a=Array.isArray(i?.splits)&&i.splits.length>0;if(hI(e.recipient)?n.push(iI(`${t}Valid recipient address`)):e.recipient===void 0&&a?n.push(iI(`${t}Uses splits (no single recipient)`)):e.recipient===void 0?n.push(aI(`${t}Valid recipient address`,`Missing recipient (and no splits defined)`,`Set request.recipient to a valid 0x address, or use methodDetails.splits for multiple recipients.`)):n.push(aI(`${t}Valid recipient address`,`Got: ${String(e.recipient)}`,`Set request.recipient to a valid 0x-prefixed 40-hex-char address.`)),hI(e.currency)){let e=AI(r)?`testnet`:`mainnet`;n.push(iI(`${t}Valid currency address`,e))}else n.push(aI(`${t}Valid currency address`,`Got: ${String(e.currency)}`,`Set request.currency to a valid token address.`));BI(e,t,n,`token's smallest unit (e.g. "10000" = $0.01 for 6-decimal tokens)`)}function RI(e,t,n){BI(e,t,n,`currency's smallest unit (e.g. "100" = $1.00 for USD)`);let r=e.currency;typeof r==`string`&&/^[a-z]{3}$/i.test(r)?n.push(iI(`${t}Valid currency code`,r.toUpperCase())):n.push(aI(`${t}Valid currency code`,r?`Got: ${r}`:`missing`,`Must be a three-letter ISO currency code (e.g. "usd").`));let i=e.methodDetails,a=i?.networkId;a?n.push(iI(`${t}Has networkId`,a.slice(0,20))):n.push(aI(`${t}Has networkId`,`Missing methodDetails.networkId`,`Set methodDetails.networkId to your Stripe Business Network profile ID.`));let o=i?.paymentMethodTypes;Array.isArray(o)&&o.length>0?n.push(iI(`${t}Has paymentMethodTypes`,o.join(`, `))):n.push(aI(`${t}Has paymentMethodTypes`,`Missing or empty`,`Set methodDetails.paymentMethodTypes to an array (e.g. ["card"]).`))}function zI(e,t,n,r){if(hI(t.recipient)?r.push(iI(`${n}Valid recipient address`)):r.push(aI(`${n}Valid recipient address`,`Got: ${String(t.recipient)}`,`Set request.recipient to a valid 0x-prefixed Ethereum address.`)),hI(t.currency)){let t=AI(e)?`testnet`:`mainnet`;r.push(iI(`${n}Valid currency address`,t))}else r.push(aI(`${n}Valid currency address`,`Got: ${String(t.currency)}`,`Set request.currency to a valid ERC-20 token contract address.`));BI(t,n,r,`token's smallest unit`);let i=t.methodDetails?.chainId;typeof i==`number`&&i>0?r.push(iI(`${n}Has chainId`,String(i))):r.push(aI(`${n}Has chainId`,`Missing methodDetails.chainId`,`Set methodDetails.chainId to the EVM chain ID.`))}function BI(e,t,n,r){gI(e.amount)?n.push(iI(`${t}Amount is valid integer string`)):e.amount===void 0||e.amount===null?n.push(aI(`${t}Amount is valid integer string`,`Missing amount`,`Set request.amount to a string of digits in the ${r}.`)):n.push(aI(`${t}Amount is valid integer string`,`Got: ${String(e.amount)}`,`request.amount must be a string of digits (no decimals, no prefix).`))}async function VI(e,t,n){let r=[],i=CI(e,t,n?.query),a={[Y.authorization]:`${Cx.payment} dGhpcyBpcyBnYXJiYWdl`},o;n?.body&&(o=n.body,a[`content-type`]=`application/json`);try{let e=await fI(i,{method:t.method,headers:a,body:o??null});e.status===402?(r.push(iI(`Malformed credential returns 402`,`not 500`)),e.headers.get(Y.wwwAuthenticate)?.startsWith(`${Cx.payment} `)?r.push(iI(`Error response includes fresh challenge`)):r.push(oI(`Error response includes fresh challenge`,`No WWW-Authenticate header`,`When rejecting an invalid credential, respond with 402 and include a fresh WWW-Authenticate: Payment challenge so the client can retry.`))):e.status>=500?r.push(aI(`Malformed credential returns 402`,`Got ${e.status} (server error)`,`When the Authorization header contains an invalid credential, respond with 402 (not 500). Catch credential validation errors and return a fresh challenge.`)):r.push(oI(`Malformed credential returns 402`,`Got ${e.status}`,`When the Authorization header contains an invalid Payment credential, respond with 402 and a fresh WWW-Authenticate challenge. Returning ${e.status} prevents the client from retrying with a valid payment.`))}catch(e){r.push(aI(`Error handling test`,e.message))}return r}function HI(e){let t=[],n=e.headers.get(`payment-required`)??e.headers.get(`x-payment-required`);if(!n)return t;let r=e.headers.get(`payment-required`)?`PAYMENT-REQUIRED`:`X-Payment-Required`;try{let e=VC(n);t.push(iI(`x402 payment challenge`,`${r} with valid x402 v${e.x402Version} payload`))}catch{t.push(oI(`x402 payment challenge`,`${r} header present but failed schema validation`,`Ensure the PAYMENT-REQUIRED header contains a valid base64-encoded JSON payload matching the x402 schema.`))}return t}const UI=[`No discovery document found, endpoints could not be automatically found.`,`MPP servers must serve an OpenAPI document at /openapi.json with x-payment-info extensions.`,`The MPP SDKs can automatically expose this endpoint. See https://mpp.dev/sdk.`,``,`To test a specific endpoint: mppx validate <url> --endpoint POST:/your/path`].join(`
246
- `);Wx();const WI={method:X.string(),reference:X.string(),externalId:X.optional(X.string()),subscriptionId:X.optional(X.string()),status:X.literal(`success`),timestamp:Fx()};X.object(WI);const GI=X.looseObject(WI);function KI(e){let t=k.toString(e);return qI(JSON.parse(t))}function qI(e){return GI.parse(e)}uS(),Ox(),qN(),JD(),IO(),SO();async function JI(e,t,n){try{n||console.log(Q.dim(` Provisioning testnet wallet and funding via faucet...`));let t=fe(),r=me(t),i=N({chain:ge,transport:le()}),a=await Oe.faucet.fund(i,{account:r});await Promise.all(a.map(e=>Te(i,{hash:e}))),n||console.log(Q.dim(` Using wallet: ${r.address}`));let o=e.request.currency;if(typeof o==`string`)for(let e=0;e<10;e++){let e=await Oe.token.getBalance(i,{account:r.address,token:o}).catch(()=>void 0);if(e&&e.amount>0n)break;await new Promise(e=>setTimeout(e,500))}return{methods:[...UN({account:r})]}}catch(e){t&&console.log(Q.dim(` Provisioning failed: ${e.message}`));return}}async function YI(){let e=kO(),{isTempoAccount:t}=await Promise.resolve().then(()=>(SO(),YD)),{resolveTempoAccount:n}=await Promise.resolve().then(()=>(DP(),JN));if(t(e)){let t=n(e);if(t)return t.wallet_address}try{return(await NO()).address}catch{return}}function XI(e){try{let{execSync:t}=p,n=t(`stripe config --list`,{encoding:`utf8`,timeout:5e3}).match(/test_mode_api_key\s*=\s*'([^']+)'/);if(n?.[1])return e&&console.log(Q.dim(` Using Stripe test key from stripe CLI`)),n[1]}catch{}}async function ZI(e,t,n){let r=N({chain:e,transport:le()}),[i,a]=await Promise.all([be(r,{address:t,abi:ae,functionName:`balanceOf`,args:[n]}),be(r,{address:t,abi:ae,functionName:`symbol`}).catch(()=>void 0)]);return{balance:i,symbol:a??void 0}}function QI(e){return Object.values(Ne).find(t=>t.id===e)}function $I(e,t){return`$${(Number(e)/10**t).toFixed(2)}`}function eL(e){switch(e.method){case wx.evm:return`no EVM payment plugin yet`;case`solana`:return`no Solana payment plugin yet`;default:return`no plugin for ${e.method}/${e.intent}`}}async function tL(e,t,n,r){let i=[],a=CI(e,t,r.query),o=yI(r.extraHeaders),s;r.body&&(s=r.body,o[`content-type`]=`application/json`);let c;try{c=await fI(a,{method:t.method,headers:o,body:s??null})}catch(e){return i.push(aI(`Payment: fetch challenge`,e.message)),i}if(c.status!==402)return i.push(sI(`Payment: skipped`,`Endpoint returned ${c.status}`)),i;let l;try{l=tS(c)}catch(e){return i.push(aI(`Payment: parse challenge`,e.message)),i}if(l.length===0)return i.push(aI(`Payment: parse challenge`,`No Payment challenges in response`)),i;let u=await zP().catch(()=>void 0),d=l.find(e=>{if(e.method!==wx.tempo)return!1;let t=e.request.methodDetails;return typeof t?.chainId==`number`&&t.chainId!==UD.mainnet});if(d){let e=await JI(d,n,r.silent);if(e){let r=new Response(null,{status:402,headers:{[Y.wwwAuthenticate]:Kx(d)}});try{let c=iT({methods:e.methods,polyfill:!1}),l=await NP(d,u?.config.extensions),f=await c.createCredential(r,l);i.push(iI(`Payment: submitted`,`ephemeral testnet wallet`)),await aL(i,a,t,f,o,s,n,ge)}catch(e){i.push(aI(`Payment: create credential`,e.message))}}else i.push(aI(`Payment: auto-provision wallet`,`Failed to create and fund testnet wallet`));r.onResults?.(i)}let f=r.interactive,p=process.env.MPPX_STRIPE_SECRET_KEY??XI(n),m=p?.startsWith(`sk_test_`)||p?.startsWith(`rk_test_`),h=new Set([wx.tempo,wx.evm,wx.stripe]);for(let e of l){if(e===d||!h.has(e.method))continue;r.silent||console.log(``);let c=i.length,l=()=>{r.onResults&&i.length>c&&r.onResults(i.slice(c))},g=`Payment [${e.method}]`;try{switch(e.method){case wx.tempo:case wx.evm:await nL(e,g,{results:i,url:a,endpoint:t,fetchHeaders:o,fetchBody:s,verbose:n,loaded:u,isInteractive:f,options:r});break;case wx.stripe:await rL(e,g,{results:i,url:a,endpoint:t,fetchHeaders:o,fetchBody:s,verbose:n,loaded:u,isInteractive:f,isStripeTestKey:m??!1,stripeKey:p,options:r})}}finally{l()}}return i}async function nL(e,t,n){let{results:r,url:i,endpoint:a,fetchHeaders:o,fetchBody:s,verbose:c,loaded:l,options:u}=n,d=e.request,f=d.methodDetails,p=gI(d.amount)?BigInt(d.amount):void 0,m=f?.decimals??d.decimals??6,h=d.currency,g;try{g=await YI()}catch{}if(!g){r.push(sI(t,`no wallet configured. Run "mppx account create" to create one.`));return}let _;if(e.method===wx.tempo)_=he;else if(e.method===wx.evm){let e=f?.chainId;e&&(_=QI(e))}let v;if(p&&h&&_)try{let n;if(e.method===wx.tempo){let e=await mO(N({chain:he,transport:le()}),h,g);n=e.balance,v=e.symbol}else{let e=await ZI(_,h,g);n=e.balance,v=e.symbol}if(n<p){let e=$I(p,m),i=$I(n,m),a=v??`tokens`;r.push(sI(t,`insufficient balance (have ${i}, need ${e} ${a} on ${_.name})`,`Fund wallet ${g} with at least ${e} ${a} on ${_.name}.`));return}}catch(e){c&&console.log(Q.dim(` Balance check skipped: ${e.message}`))}let y=p?$I(p,m):`unknown amount`,b=v??(h?.length===3?h.toUpperCase():``),x=_?.name,S=`${y}${b?` ${b}`:``}${x?` on ${x}`:``}`;if(u.silent||console.log(Q.dim(` Attempting payment with wallet ${g}`)),_?.testnet)u.silent||console.log(Q.dim(` Auto-approved: ${S} (testnet)`));else if(!u.yes&&!n.isInteractive){r.push(sI(t,`non-interactive mode, use --yes to approve`));return}else if(u.yes)u.silent||console.log(Q.dim(` Auto-approved: ${S}`));else if(!await oO(` ${Q.yellow(`Pay`)} ${S}. Continue?`,!1)){r.push(sI(t,`declined`));return}let C=PP(e,l?.config),w=C.plugin,T=C.method;if(!w&&!T){r.push(sI(t,eL(e)));return}let E,D,O;if(w)try{let t=await w.setup({challenge:e,options:{network:`mainnet`},methodOpts:{}});E=t.methods,D=t.createCredential,O=t.credentialContext}catch(e){r.push(sI(t,e.message));return}else E=[T];let k=await iL(e,E,D,t,r,l?.config.extensions,O);k&&(w?.prepareCredentialRequest?.({challenge:e,credential:k,headers:o}),await aL(r,i,a,k,o,s,c,_))}async function rL(e,t,n){let{results:r,url:i,endpoint:a,fetchHeaders:o,fetchBody:s,verbose:c,loaded:l,options:u,isStripeTestKey:d,stripeKey:f}=n,p=e.request,m=gI(p.amount)?BigInt(p.amount):void 0,h=p.decimals??2,g=p.currency,_=m?$I(m,h):`unknown amount`,v=g?.length===3?g.toUpperCase():``,y=`${_}${v?` ${v}`:``} via Stripe${d?` (testmode)`:``}`;if(d)u.silent||console.log(Q.dim(` Attempting: ${y}`));else if(!u.yes&&!n.isInteractive){r.push(sI(t,`non-interactive mode, use --yes to approve`));return}else if(u.yes)u.silent||console.log(Q.dim(` Auto-approved: ${y}`));else if(!await oO(` ${Q.yellow(`Pay`)} ${y}. Continue?`,!1)){r.push(sI(t,`declined`));return}let b=PP(e,l?.config).plugin;if(!b){r.push(sI(t,`no Stripe plugin available`));return}let x,S,C;try{let t={paymentMethod:`pm_card_visa`};f&&(t.secretKey=f);let n=await b.setup({challenge:e,options:{},methodOpts:t});x=n.methods,S=n.createCredential,C=n.credentialContext}catch(e){r.push(sI(t,e.message));return}let w=await iL(e,x,S,t,r,l?.config.extensions,C);if(w){if(b.prepareCredentialRequest?.({challenge:e,credential:w,headers:o}),d){let e=await fI(i,{method:a.method,headers:{...o,[Y.authorization]:w},body:s??null},3e4);e.status>=200&&e.status<300?r.push(iI(`${t}: successful`,`HTTP ${e.status}`)):r.push(sI(`${t}: server is in livemode`,void 0,`Run your server with a Stripe test key to automatically validate Stripe payments in testmode.`));return}await aL(r,i,a,w,o,s,c,void 0)}}async function iL(e,t,n,r,i,a,o){let s=new Response(null,{status:402,headers:{[Y.wwwAuthenticate]:Kx(e)}});try{let c=await NP(e,a,o),l;return l=n?await n(s,c):await iT({methods:t,polyfill:!1}).createCredential(s,c),i.push(iI(`${r}: submitted`)),l}catch(e){let t=e.message;t.toLowerCase().includes(`insufficient`)?i.push(sI(r,`insufficient balance: ${t}`)):i.push(aI(r,t));return}}async function aL(e,t,n,r,i,a,o,s){let c;try{c=await fI(t,{method:n.method,headers:{...i,[Y.authorization]:r},body:a??null},3e4)}catch(t){return e.push(aI(`Payment: send credential`,t.message)),e}if(c.status===402){let t=await c.text().catch(()=>``),n=`Payment rejected`;try{let e=JSON.parse(t);n=e.detail??e.title??n}catch{}return e.push(aI(`Payment: accepted`,n,`The server rejected a valid credential. Check that your payment verification logic accepts the credential format and that the payment was processed on-chain.`)),e}if(c.status>=400&&c.status<500)e.push(oI(`Payment: post-payment response`,`Got ${c.status}`,`Payment succeeded but the endpoint returned a client error. The endpoint likely requires request body parameters. Use --body to provide them.`));else if(c.status>=500)return e.push(aI(`Payment: server response`,`Got ${c.status}`,`Payment was accepted but the server errored while generating the response. Check server logs for the underlying error.`)),e;else e.push(iI(`Payment: successful`,`HTTP ${c.status}`));let l=c.headers.get(Y.paymentReceipt);if(!l)e.push(aI(`Payment-Receipt header present`,void 0,`After accepting payment, include a Payment-Receipt header with a base64url-encoded JSON object containing: method, reference, status ("success"), and timestamp (ISO 8601).`));else{e.push(iI(`Payment-Receipt header present`));try{let t=KI(l);if(e.push(iI(`Receipt parseable`)),t.status===`success`?e.push(iI(`Receipt status is "success"`)):e.push(aI(`Receipt status is "success"`,`Got: ${t.status}`)),t.reference){let n=/^0x[0-9a-fA-F]{64}$/.test(t.reference),r=t.reference.startsWith(`pi_`);n||r?e.push(iI(`Receipt reference valid`,t.reference.slice(0,20)+`...`)):e.push(oI(`Receipt reference format`,t.reference.slice(0,40)))}else e.push(oI(`Receipt has reference`,`No reference field`));if(t.timestamp){let n=new Date(t.timestamp),r=Date.now()-n.getTime();r<6e4?e.push(iI(`Receipt timestamp recent`,`${Math.round(r/1e3)}s ago`)):e.push(oI(`Receipt timestamp recent`,`${Math.round(r/6e4)}m ago`))}o&&console.log(Q.dim(` Receipt: ${JSON.stringify(t,null,2)}`))}catch(t){e.push(aI(`Receipt parseable`,t.message))}}let u=c.headers.get(`content-type`)??``,d=await c.text().catch(()=>``);if(d.length>0)e.push(iI(`Response body non-empty`,`${u.split(`;`)[0]}, ${pI(d.length)}`));else{let t=[...c.headers.entries()].filter(([e])=>!e.startsWith(`x-`)&&![`content-type`,`content-length`,`date`,`server`,`connection`,`keep-alive`,`cache-control`,`vary`,`access-control-allow-origin`,`payment-receipt`,`payment-session`,`payment-session-snapshot`].includes(e.toLowerCase()));t.length>0?e.push(oI(`Response body empty -- data may be in headers only`,t.map(([e])=>e).join(`, `))):e.push(oI(`Response body empty`))}if(u?e.push(iI(`Content-Type header set`,u.split(`;`)[0])):e.push(oI(`Content-Type header set`)),l)try{let t=KI(l);if(t.reference&&/^0x[0-9a-fA-F]{64}$/.test(t.reference)){let n=s?.blockExplorers?.default?.url;if(n){let r=n.includes(`tempo`)?`receipt`:`tx`;e.push(iI(`On-chain transaction`,`${n}/${r}/${t.reference}`))}}}catch{}return e}async function*oL(e){let t=e.url.replace(/\/$/,``).replace(/\/openapi\.json$/i,``),n=e.verbose??!1,r=await dL(t,e);yield{phase:`discovery`,discovery:r,results:r.checks};for(let i of r.endpoints){yield{phase:`endpoint`,endpoint:i};let a,o=!1;e.endpoint?a=e.body:(a=vI(e.body,i.path),!a&&r.doc&&(a=SI(r.doc,i),o=!!a));let{results:s,resolvedBody:c,challenges:l}=await jI(t,i,n,{body:a,bodyIsAutogenerated:o,query:e.query,extraHeaders:e.headers,discoveryDoc:r.doc??void 0}),u=c??a,d=s.some(e=>e.severity===`pass`&&e.label===`Challenge parseable`),f=(l??[]).filter(e=>e.method!==`stripe`).map(e=>e.request.methodDetails?.chainId).filter(e=>typeof e==`number`),p=f.some(uL),m=f.some(e=>!uL(e)),h=!d&&s.some(e=>e.label===`Not an MPP endpoint`),g=s.some(e=>e.severity===`pass`&&e.label===`WWW-Authenticate header present`),_=s.some(e=>e.severity===`fail`&&e.label===`Challenge parseable`);if(yield{phase:`challenge`,endpoint:i,results:s,isMpp:d,isTestnet:p,isMainnet:m,isNonMppPayment:h,isMalformedChallenge:!d&&g&&_,methods:l?.map(e=>e.method)??[]},d&&(yield{phase:`errorHandling`,endpoint:i,results:await VI(t,i,{body:u,query:e.query})},!e.skipPayment)){let r=e.onPaymentResults,a=await tL(t,i,n,{body:u,query:e.query,extraHeaders:e.headers,yes:e.yes,silent:!r,interactive:e.interactive,...r&&{onResults:r}});yield{phase:`payment`,endpoint:i,results:a,succeeded:a.some(e=>e.severity===`pass`&&e.label===`Payment: successful`)}}}}async function sL(e){let t=e.url.replace(/\/$/,``).replace(/\/openapi\.json$/i,``),n,r=[],i,a=!1,o=!1;for await(let t of oL(e))switch(t.phase){case`discovery`:n=t.discovery;break;case`endpoint`:i={method:t.endpoint.method,path:t.endpoint.path,challenge:[],errorHandling:[],payment:[]},r.push(i);break;case`challenge`:i&&(i.challenge=t.results),t.isMpp&&(t.isTestnet&&(a=!0),t.isMainnet&&(o=!0));break;case`errorHandling`:i&&(i.errorHandling=t.results);break;case`payment`:i&&(i.payment=t.results)}let s={passed:0,failed:0,warnings:0,skipped:0};if(n)for(let e of n.checks)e.severity===`pass`?s.passed++:e.severity===`fail`?s.failed++:e.severity===`warn`?s.warnings++:e.severity===`skip`&&s.skipped++;for(let e of r)for(let t of[...e.challenge,...e.errorHandling,...e.payment])t.severity===`pass`?s.passed++:t.severity===`fail`?s.failed++:t.severity===`warn`?s.warnings++:t.severity===`skip`&&s.skipped++;if(!n)throw Error(`Discovery phase did not complete`);let c=cL(r,n,{sawTestnet:a,sawMainnet:o});return{url:t,discovery:n,endpoints:r,summary:s,suggestions:c}}function cL(e,t,n){let r=[],i=e.flatMap(e=>[...e.challenge,...e.payment]);t.found||r.push(UI);let a=n.sawMainnet,o=n.sawTestnet,s=i.some(e=>e.label.includes(`[stripe]`)&&e.label.includes(`livemode`));return a&&!o?r.push(`Validate your testnet server to test without real funds (Tempo wallets are automatically provisioned).`):o&&!a&&r.push(`Validate your mainnet server to confirm real payments work end-to-end.`),s&&r.push(`Validate your testmode Stripe server to test card payments end-to-end (auto-pays with test card).`),r}const lL=Object.values(Ne);function uL(e){return lL.find(t=>t.id===e)?.testnet===!0}async function dL(e,t){let n=[],r=[],i=null,a=!1,o=!1,s=new URL(e).origin,c;t.discoveryPath?c=[new URL(t.discoveryPath,e+`/`).href.replace(/\/openapi\.json$/i,``)]:(c=[e,s,`${s}/api`],c=[...new Set(c)]);let l,u=[];for(let e of c)if(l=await bI(e),`error`in l)u.push(`${e}/openapi.json: ${l.error}`);else break;if(!l||`error`in l)n.push({label:`Document found`,detail:u.join(`; `),hint:`MPP servers must serve an OpenAPI document at /openapi.json with x-payment-info extensions.`,severity:`fail`});else{a=!0,n.push({label:`Document found and parseable`,severity:`pass`});let e=kT(l.doc),t=e.filter(e=>e.severity===`error`),r=e.filter(e=>e.severity===`warning`);if(t.length>0){n.push({label:`Valid OpenAPI structure`,detail:`${t.length} error(s)`,severity:`fail`});for(let e of t)n.push({label:e.message,detail:e.path,severity:`fail`})}else o=!0,n.push({label:`Valid OpenAPI structure`,severity:`pass`});for(let e of r)n.push({label:e.message,detail:e.path,severity:`warn`});i=l.doc}if(t.endpoint){let e=_I(t.endpoint);e&&r.push(e)}else if(i){r=xI(i);let e=BigInt(`999999999999999999`);r.sort((t,n)=>{let r=gI(t.amount)?BigInt(t.amount):e,i=gI(n.amount)?BigInt(n.amount):e;return r<i?-1:+(r>i)}),r.length>0?n.push({label:`Paid endpoints found`,detail:`${r.length} endpoint(s)`,severity:`pass`}):n.push({label:`Paid endpoints found`,detail:`No endpoints with x-payment-info`,severity:`warn`})}return{found:a,valid:o,endpoints:r,checks:n,doc:i}}xx(),SO();const fL=tb(`validate`,{description:`Validate an MPP server implementation end-to-end`,args:f.object({url:f.string().describe(`Base URL of the MPP server to validate`)}),options:f.object({endpoint:f.string().optional().describe(`Endpoint to test (METHOD:path). Skips discovery.`),body:f.string().optional().describe(`Request body. With --endpoint, used directly. In discovery mode, JSON with / keys is a per-path mapping.`),query:f.array(f.string()).optional().describe(`Query parameter (key=value, repeatable)`),header:f.array(f.string()).optional().describe(`Request header (key:value, repeatable)`),verbose:f.number().default(0).meta({count:!0}).describe(`Verbosity level`),yes:f.boolean().default(!1).describe(`Auto-approve mainnet payments`),outputJson:f.boolean().default(!1).describe(`Output results as JSON (auto-enabled in known agent environments)`)}),alias:{endpoint:`e`,header:`H`,verbose:`v`,yes:`y`,outputJson:`j`},async run(e){if(e.options.outputJson||rO()){let t=await sL({url:e.args.url,endpoint:e.options.endpoint,body:e.options.body,query:e.options.query,headers:e.options.header,verbose:e.options.verbose>0,yes:e.options.yes,interactive:!1});console.log(JSON.stringify(t,null,2));let n=t.endpoints.length===0&&!e.options.endpoint;(t.summary.failed>0||!t.discovery.found||n)&&process.exit(1);return}let t=e.args.url.replace(/\/$/,``).replace(/\/openapi\.json$/i,``);console.log(`\n${Q.bold(`mppx validate`)} ${Q.dim(t)}\n`);let n={passed:0,failed:0,warnings:0,skipped:0},r=!1,i=!1,a=!1,o=!1,s=!1,c=!1,l=!1,u=0;for await(let t of oL({url:e.args.url,endpoint:e.options.endpoint,body:e.options.body,query:e.options.query,headers:e.options.header,verbose:e.options.verbose>0,yes:e.options.yes,interactive:!!process.stdin.isTTY,onPaymentResults:e=>dI(e,n)}))switch(t.phase){case`discovery`:if(uI(`Discovery (/openapi.json)`),dI(t.results,n),l=t.discovery.found,!l&&!e.options.endpoint){console.log(``);let[e,...t]=UI.split(`
247
- `);console.log(Q.yellow(` ${e}`));for(let e of t)console.log(e?Q.dim(` ${e}`):``);console.log(``),process.exit(1)}t.discovery.endpoints.length===0&&!e.options.endpoint&&l&&(console.log(Q.dim(` Use --endpoint to specify endpoints manually.`)),console.log(``),process.exit(1));break;case`endpoint`:u++,uI(`${t.endpoint.method} ${t.endpoint.path}`);break;case`challenge`:console.log(Q.dim(` Challenge`)),dI(t.results,n),t.isMpp&&(r=!0,t.isTestnet&&(o=!0),t.isMainnet&&(s=!0)),t.isNonMppPayment&&(i=!0),t.isMalformedChallenge&&(a=!0);break;case`errorHandling`:console.log(Q.dim(` Error Handling`)),dI(t.results,n);break;case`payment`:t.succeeded&&(c=!0)}pL(n,{sawMppEndpoint:r,sawNonMppPaymentEndpoint:i,sawMalformedChallenge:a,sawTestnet:o,sawMainnet:s,paymentSucceeded:c},u)}});function pL(e,t,n){!t.sawMppEndpoint&&n>0&&(console.log(``),t.sawMalformedChallenge?(console.log(Q.yellow(` Payment scheme detected but challenge format is invalid on ${n} endpoint(s).`)),console.log(Q.dim(` The server uses WWW-Authenticate: Payment but the challenge parameters do not conform to MPP.`)),console.log(Q.dim(` Fix: encode payment details as base64url JSON in a request="..." parameter. See errors above.`))):t.sawNonMppPaymentEndpoint?(console.log(Q.yellow(` No MPP endpoints found. Tested ${n} endpoint(s) but none use WWW-Authenticate: Payment.`)),console.log(Q.dim(` This server may use x402 or another payment protocol.`))):e.skipped>0&&e.failed===0?(console.log(Q.yellow(` Could not reach payment gate on any endpoint (all returned 401/403/200).`)),console.log(Q.dim(` The server may require authentication before payment. Try providing auth or use --endpoint with a public path.`))):(console.log(Q.yellow(` No MPP endpoints found. Tested ${n} endpoint(s) but none use WWW-Authenticate: Payment.`)),console.log(Q.dim(` This server may use x402 or another payment protocol.`))),console.log(``),process.exit(1)),console.log(``);let r=[];e.passed>0&&r.push(Q.green(`${e.passed} passed`)),e.failed>0&&r.push(Q.red(`${e.failed} failed`)),e.warnings>0&&r.push(Q.yellow(`${e.warnings} warning(s)`)),e.skipped>0&&r.push(Q.yellow(`${e.skipped} skipped`)),console.log(`${Q.bold(`Summary:`)} ${r.join(`, `)}`),t.paymentSucceeded&&t.sawTestnet&&!t.sawMainnet?(console.log(``),console.log(Q.dim(` Tip: also validate your mainnet server to confirm real payments work end-to-end.`))):t.sawMainnet&&!t.sawTestnet&&(console.log(``),console.log(Q.dim(` Tip: also validate your testnet server for free. This CLI automatically provisions and funds a testnet wallet for testing.`))),console.log(``),e.failed>0&&process.exit(1)}function mL(e){return gL(e)?e.offers:[e]}function hL(e){let{_canonicalRequest:t,intent:n,name:r}=e,i=t.methodDetails??{},a=_L(t.amount)??_L(i.amount)??null,o=_L(t.currency)??_L(i.currency),s=_L(e.description)??_L(t.description),c={amount:a,...o?{currency:o}:{},...s?{description:s}:{},intent:n,method:r},l=new Set([`amount`,`currency`,`description`,`methodDetails`]);for(let[e,n]of Object.entries(t))!l.has(e)&&n!==void 0&&(c[e]=n);return c}function gL(e){return`offers`in e&&!(`_canonicalRequest`in e)}function _L(e){return typeof e==`string`?e:void 0}var vL=L((()=>{})),yL=Ge({generate:()=>bL,generateProxy:()=>xL});function bL(e,t){let n=e.methods,r=new Map,i={};for(let e of n)r.set(`${e.name}/${e.intent}`,e),i[e.intent]=(i[e.intent]??0)+1;for(let e of n)i[e.intent]===1&&r.set(e.intent,e);let a=t.routes.map(e=>CL(e,r));return SL({info:{title:t.info?.title??e.realm,version:t.info?.version??`1.0.0`},routes:a,serviceInfo:t.serviceInfo})}function xL(e){let t=e.routes.map(t=>({...t,path:wL(e.basePath,t.path)}));return SL({info:{title:e.info?.title??`API Proxy`,version:e.info?.version??`1.0.0`},routes:t,serviceInfo:e.serviceInfo})}function SL(e){let t={};for(let n of e.routes){let e=n.method.toLowerCase(),r={responses:{...n.payment?{402:{description:`Payment Required`}}:{},200:{description:`Successful response`}}};n.payment&&(r[`x-payment-info`]=ST.parse(n.payment)),n.summary&&(r.summary=n.summary),n.requestBody&&(r.requestBody=n.requestBody),t[n.path]||(t[n.path]={}),t[n.path][e]=r}let n={info:e.info,openapi:`3.1.0`,paths:t};return e.serviceInfo&&(n[`x-service-info`]=e.serviceInfo),n}function CL(e,t){if(`handler`in e){let t=e.handler._internal;if(!t)throw Error(`Route ${e.method.toUpperCase()} ${e.path} is missing discovery metadata`);return{method:e.method,path:e.path,payment:{offers:mL(t).map(hL)},...e.requestBody?{requestBody:e.requestBody}:{},...e.summary?{summary:e.summary}:{}}}let n=t.get(e.intent);if(!n)throw Error(`Unknown intent "${e.intent}" for route ${e.method.toUpperCase()} ${e.path}. Available: ${[...t.keys()].join(`, `)}`);let{description:r,...i}=e.options,a={_canonicalRequest:Ax(n,i),...typeof r==`string`?{description:r}:{},intent:n.intent,name:n.name};return{method:e.method,path:e.path,payment:hL(a),...e.requestBody?{requestBody:e.requestBody}:{},...e.summary?{summary:e.summary}:{}}}function wL(e,t){if(!e)return t;let n=e.startsWith(`/`)?e:`/${e}`;return`${n.endsWith(`/`)?n.slice(0,-1):n}${t}`}var TL=L((()=>{Mx(),OT(),vL()}));xx(),uS(),eT(),LC(),XC(),$C(),Ox(),HD(),JC(),bS(),xC(),IO(),SO();const EL=`0.9.3`,DL=f.object({address:f.string(),isDefault:f.boolean().optional(),name:f.string(),source:f.string().optional()}),OL=f.object({address:f.string(),balances:f.array(f.string()).optional(),name:f.string(),type:f.string().optional()}),kL=f.object({message:f.string(),path:f.string(),severity:f.string()}),AL=f.object({description:f.string().optional(),id:f.string(),name:f.string().optional(),paidEndpoints:f.number(),status:f.string().optional(),url:f.string().optional()}),jL=f.object({description:f.string().optional(),method:f.string(),path:f.string(),payment:f.unknown().optional()});function ML(e){return e.format===`json`&&e.formatExplicit}function NL(e,t,n){if(ML(e))return e.ok(t);n()}async function PL(e){process.stdout.write(Buffer.from(await e.arrayBuffer()))}function FL(){return process.stdin.isTTY===!1&&process.stdin.listenerCount(`data`)===0&&process.stdin.listenerCount(`readable`)===0}function IL(e){return typeof e==`string`?e:void 0}function LL(e){return Array.isArray(e.endpoints)?e.endpoints.filter(e=>typeof e==`object`&&!!e):[]}function RL(e){let t=LL(e);return{...IL(e.description)?{description:IL(e.description)}:{},id:IL(e.id)??IL(e.name)??`unknown`,...IL(e.name)?{name:IL(e.name)}:{},paidEndpoints:t.filter(e=>e.payment).length,...IL(e.status)?{status:IL(e.status)}:{},...IL(e.serviceUrl)||IL(e.url)?{url:IL(e.serviceUrl)??IL(e.url)}:{}}}function zL(e){return{...IL(e.description)?{description:IL(e.description)}:{},method:IL(e.method)??`GET`,path:IL(e.path)??`/`,...e.payment===void 0?{}:{payment:e.payment}}}function BL(e){if(!e)return`free`;if(typeof e!=`object`)return String(e);let t=e,n=IL(t.amount),r=IL(t.currency),i=IL(t.method),a=IL(t.intent);return[n,r,i&&a?`${i}/${a}`:i??a].filter(Boolean).join(` `)}function VL(e){return e.request.currency??e.request.asset}function HL(e,t){if(!t)return[...e];let n=t.toLowerCase();return e.filter(e=>{let t=VL(e);return typeof t==`string`&&t.toLowerCase()===n})}async function UL(e,t,n={}){let r=()=>IC().getChallenges(e),i=()=>YC().getChallenges(n.ignoreX402ResponseUrl?new Response(null,{headers:e.headers,status:e.status}):e);if(t===`mpp`)return r();if(t===`x402`)return i();let a=[],o;try{a=await r()}catch(e){o=e}let s=[],c;try{s=await i()}catch(e){c=e}if(a.length||s.length)return[...a,...s];if(o)throw o;if(c)throw c;return[]}function WL(e){return ZC({name:`selected-challenge`,isPaymentRequired:e=>e.status===402,getChallenges:()=>[e],setCredential:e=>e})}function GL(e,t){if(!vS(e))return new Response(null,{status:402,headers:{[Y.wwwAuthenticate]:Kx(e)}});let n=e.request;return n.resource?new Response(null,{status:402,headers:{[rC]:GC({accepts:[QS(n)],...n.extensions&&{extensions:n.extensions},resource:n.resource,x402Version:2})}}):t}function KL(e){let{host:t,hostname:n}=new URL(e);return!n.endsWith(`.localhost`)||n===`localhost`?{url:e}:{host:t,url:e.replace(n,`127.0.0.1`)}}function qL(e,t){for(let t of Object.keys(e))t.toLowerCase()===`host`&&delete e[t];t&&(e.Host=t)}function JL(e){let t=e.request.resource;return typeof t?.url==`string`?t.url:void 0}async function YL(){let e=process.env.MPPX_SERVICES_URL??`https://mpp.dev/api/services`,t=await globalThis.fetch(e);if(!t.ok)throw new R({code:`SERVICES_FETCH_FAILED`,message:`Failed to fetch services registry: HTTP ${t.status}`,exitCode:1});let n=await t.json();if(!n||typeof n!=`object`||!Array.isArray(n.services))throw new R({code:`SERVICES_INVALID`,message:`Services registry response did not contain a services array.`,exitCode:1});return n.services}function XL(e,t){let n=t.toLowerCase();return e.find(e=>{let t=IL(e.id)?.toLowerCase(),r=IL(e.name)?.toLowerCase();return t===n||r===n})}const ZL=tb(`mppx`,{mcp:{tools:{discovery:`direct`}},version:EL,description:`Make HTTP requests with automatic payment handling`,usage:[{suffix:`<url> [options]`}],args:f.object({url:f.string().describe(`URL to make request to`)}),options:f.object({account:f.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),autoSwap:f.boolean().optional().describe(`Auto-swap source tokens into payment currency`),config:f.string().optional().describe(`Path to config file`),confirm:f.boolean().optional().default(!1).describe(`Show confirmation prompts`),currency:f.string().optional().describe(`Payment currency/token address to select`),data:f.string().optional().describe(`Send request body (implies POST unless -X is set)`),fail:f.boolean().optional().describe(`Fail silently on HTTP errors (exit 22)`),header:f.array(f.string()).optional().describe(`Add header (repeatable)`),include:f.boolean().optional().describe(`Include response headers in output`),insecure:f.boolean().optional().describe(`Skip TLS certificate verification (true for localhost/.local)`),jsonBody:f.string().optional().describe(`Send JSON body (sets Content-Type and Accept, implies POST)`),location:f.boolean().optional().describe(`Follow redirects`),method:f.string().optional().describe(`HTTP method`),methodOpt:f.array(f.string()).optional().describe(`Method-specific option (key=value, repeatable)`),network:f.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),payWith:f.string().optional().describe(`Source token for Tempo auto-swap`),protocol:f.enum([`auto`,`mpp`,`x402`]).default(`auto`).describe(`Payment protocol to use`),rpcUrl:f.string().optional().describe(`RPC endpoint, defaults to public RPC for chain (env: MPPX_RPC_URL)`),session:f.string().optional().default(`auto`).refine(e=>e===`auto`||e===`new`||/^0x[0-9a-fA-F]{64}$/.test(e),`Expected auto, new, or a 32-byte channel ID`).describe(`Session selection: auto, new, or channel ID`),silent:f.boolean().default(!1).describe(`Silent mode (suppress progress and info)`),slippage:f.number().optional().describe(`Tempo auto-swap max slippage percentage`),userAgent:f.string().optional().default(`mppx/${EL}`).describe(`Set User-Agent header`),verbose:f.number().default(0).meta({count:!0}).describe(`Verbosity (-v details, -vv headers)`)}),alias:{account:`a`,config:`c`,data:`d`,fail:`f`,header:`H`,include:`i`,insecure:`k`,jsonBody:`J`,location:`L`,method:`X`,methodOpt:`M`,rpcUrl:`r`,silent:`s`,userAgent:`A`,verbose:`v`},examples:[{args:{url:`mpp.dev/api/ping/paid`},description:`Make a payment request`}],async run(e){let t=e.options.silent?e=>{}:e=>process.stderr.write(e),n=await zP(e.options.config);n&&e.options.verbose>=1&&t(`${Q.dim(`Using config`)} ${Q.blue(s.relative(process.cwd(),n.path))}\n`);let r={"User-Agent":e.options.userAgent};if(e.options.header)for(let t of e.options.header){let n=t.indexOf(`:`);if(n===-1)return e.error({code:`INVALID_HEADER`,message:`Invalid header format: ${t}`,exitCode:2});r[t.slice(0,n).trim()]=t.slice(n+1).trim()}let i=IP(n?.config);i&&!Object.keys(r).some(e=>e.toLowerCase()===`accept-payment`)&&(r[`Accept-Payment`]=i);let a=(()=>{let t=/^https?:\/\//.test(e.args.url),n=/^(localhost|.*\.localhost|127\.0\.0\.1|\[::1\])(:\d+)?/.test(e.args.url);return t?e.args.url:`${n?`http`:`https`}://${e.args.url}`})(),{hostname:o}=new URL(a),c=e.options.insecure||o===`localhost`||o.endsWith(`.localhost`)||o.endsWith(`.local`)?async(e,t)=>{let n=process.env.NODE_TLS_REJECT_UNAUTHORIZED;process.env.NODE_TLS_REJECT_UNAUTHORIZED=`0`;try{return await globalThis.fetch(e,t)}finally{n===void 0?delete process.env.NODE_TLS_REJECT_UNAUTHORIZED:process.env.NODE_TLS_REJECT_UNAUTHORIZED=n}}:globalThis.fetch,l=KL(a),u=l.url;l.host&&(r.Host=l.host);try{let i=nO(e.options.methodOpt),o=tF(),s={redirect:e.options.location?`follow`:`manual`};e.options.jsonBody?(s.body=e.options.jsonBody,r[`Content-Type`]??=`application/json`,r.Accept??=`application/json`):e.options.data&&(s.body=e.options.data),e.options.method?s.method=e.options.method.toUpperCase():s.body&&(s.method=`POST`),Object.keys(r).length>0&&(s.headers=r);let d={include:e.options.include??!1,verbose:e.options.verbose,silent:e.options.silent};e.options.verbose>=2&&XD(a,s,t);let f=await c(u,s);if(f.status!==402){if(e.options.session!==`auto`)return e.error({code:`UNSUPPORTED_SESSION`,message:`--session requires a tempo/session payment challenge.`,exitCode:2});if(e.options.fail&&f.status>=400)return e.error({code:`HTTP_ERROR`,message:`HTTP error ${f.status}`,exitCode:22});ZD(f,d),await PL(f);return}let p=f.url?new URL(f.url):void 0,m=l.host!==void 0&&p?.hostname===`127.0.0.1`,h=await UL(f,e.options.protocol,{ignoreX402ResponseUrl:m});if(h.length===0)return e.error({code:`UNSUPPORTED_PROTOCOL`,message:e.options.protocol===`auto`?`Server did not offer a payment challenge.`:`Server did not offer an ${e.options.protocol} payment challenge.`,exitCode:2});let g=HL(h,e.options.currency);if(e.options.currency&&g.length===0){let t=h.map(VL).filter(e=>typeof e==`string`).join(`, `);return e.error({code:`UNSUPPORTED_CURRENCY`,message:`Server did not offer payment currency ${e.options.currency}.${t?` Offered currencies: ${t}.`:``}`,exitCode:2})}let _=await XN(g,{options:{account:e.options.account,network:e.options.network,rpcUrl:e.options.rpcUrl}}),v=FP(_,n?.config);if(!v){let t=_.map(e=>`${e.method}/${e.intent}`).join(`, `);return e.error({code:`UNSUPPORTED_METHOD`,message:`Unsupported payment method. Server offers: ${t}. Add it to mppx.config.ts using defineConfig().`,exitCode:2})}let{challenge:y,plugin:b,method:x}=v,S=vS(y),C=GL(y,f),w=y.request.currency??``,T=y.request.decimals??6,E,D;b&&(D=await b.setup({challenge:y,options:{account:e.options.account,autoSwap:e.options.autoSwap,network:e.options.network,payWith:e.options.payWith,rpcUrl:e.options.rpcUrl,slippage:e.options.slippage},methodOpts:i}),w=D.tokenSymbol,T=D.tokenDecimals,E=D.explorerUrl);let O=!e.options.silent&&e.options.confirm,A=new Set;{ZD(f,y.method===`tempo`&&y.intent===`session`&&e.options.include?{...d,include:!1,verbose:Math.max(d.verbose,2)}:d);let n=(()=>{let e=new Set([`id`,`request`]),t=[];for(let[n,r]of Object.entries(y))e.has(n)||r===void 0||t.push([n,eO(n,r)]);return t.sort(([e],[t])=>e.localeCompare(t))})(),r={tokenSymbol:w,tokenDecimals:T,explorerUrl:E},i=(()=>{let e=new Set([`decimals`,`currency`,`methodDetails`]),t=[];for(let[n,i]of Object.entries(y.request))e.has(n)||i===void 0||t.push([n,QD(n,i,r)]);return t.sort(([e],[t])=>e.localeCompare(t))})(),a=(()=>{let e=y.request.methodDetails;if(!e)return[];let t=[];for(let[n,i]of Object.entries(e))if(i!==void 0){if(n===`memo`&&typeof i==`string`){let e=$D(i);t.push([n,e?`${e}\n${Q.dim(i)}`:i])}else t.push([n,QD(n,i,r)])}return t.sort(([e],[t])=>e.localeCompare(t))})(),o=[[`Challenge`,n],[`Request`,i],...a.length?[[`Details`,a]]:[]];for(let[,e]of o)for(let[t]of e)A.add(t);let s=Math.max(...o.flatMap(([,e])=>e.map(([e])=>e.length))),c=` ${``.padEnd(s)} `;if(e.options.verbose>=1||O){t(`${Q.bold(Q.yellow(`Payment Required`))}\n`);for(let[e,n]of o){t(`${Q.bold(e)}\n`);for(let[e,r]of n){let[n,...i]=r.split(`
248
- `);t(` ${Q.dim(e.padEnd(s))} ${n}\n`);for(let e of i)t(`${c}${e}\n`)}}}if(O&&(t(`
249
- `),!await oO(`Proceed with ${y.intent}?`,!0))){t(`Aborted.
250
- `);return}}let ee=process.env.MPPX_PRIVATE_KEY?.trim()||!iO(kO(e.options.account));if(sD(y)&&ee){try{await rI({challenge:y,challengeResponse:C,credentialContext:await NP(y,n?.config.extensions,D?.credentialContext),endpoint:a,fetch:c,fetchInput:u,init:s,info:t,methodOptions:i,options:{account:e.options.account,fail:e.options.fail,include:e.options.include,network:e.options.network,rpcUrl:e.options.rpcUrl,session:e.options.session,silent:e.options.silent,verbose:e.options.verbose},registry:o})}catch(e){return GF(e,`SESSION_REQUEST_FAILED`)}return}if(e.options.session!==`auto`)return e.error({code:`UNSUPPORTED_SESSION`,message:`--session requires a tempo/session payment challenge.`,exitCode:2});let j=await NP(y,n?.config.extensions,D?.credentialContext),te;if(D?.createCredential)te=await D.createCredential(C,j);else if(D)te=await iT({methods:D.methods,polyfill:!1,transport:WL(y)}).createCredential(C,j);else if(x)te=await iT({methods:[x],polyfill:!1,transport:WL(y)}).createCredential(C,j);else throw Error(`unreachable`);let M=S?iC:aS(y),N={...gw(s.headers),[M]:te},ne=S?KL((JL(y)??f.url)||a):l;S&&qL(N,ne.host),b?.prepareCredentialRequest?.({challenge:y,credential:te,headers:N});let re={...s,...S&&{redirect:`manual`},headers:N};e.options.verbose>=2&&XD(ne.url,re,t);let ie=await c(ne.url,re);if(e.options.fail&&ie.status>=400)return e.error({code:`HTTP_ERROR`,message:`HTTP error ${ie.status}`,exitCode:22});if(ie.status===402){let n=await ie.text();t(`${Q.bold(Q.red(`Payment Rejected`))}\n`);try{let e=JSON.parse(n),r=[];for(let[t,n]of Object.entries(e))n!==void 0&&r.push([t,String(n)]);r.sort(([e],[t])=>e.localeCompare(t));let i=Math.max(...r.map(([e])=>e.length));for(let[e,n]of r)t(` ${Q.dim(e.padEnd(i))} ${n}\n`)}catch{n&&t(` ${n}\n`)}return e.error({code:`PAYMENT_REJECTED`,message:`Payment rejected`,exitCode:75})}if(ZD(ie,d),!await b?.handleResponse?.({challenge:y,credential:te,response:ie,fetchUrl:u,fetchInit:s,silent:e.options.silent,verbose:e.options.verbose,confirmEnabled:O,confirm:oO,tokenSymbol:w,tokenDecimals:T,explorerUrl:E,shownKeys:A})){let n=ie.headers.get(Y.paymentReceipt);if(n&&e.options.verbose>=1)try{let e=JSON.parse(k.toString(n));t(`\n${Q.bold(Q.green(`Payment Receipt`))}\n`);let r=[],i=e.channelId,a=e.reference,o=i&&a&&i===a,s=new Set([`acceptedCumulative`,`spent`]);for(let[t,n]of Object.entries(e)){if(n===void 0||A.has(t)||t===`reference`&&o)continue;let e=b?.formatReceiptField?.(t,n);e===void 0?s.has(t)&&typeof n==`string`?r.push([t,`${n} ${Q.dim(`(${sO(BigInt(n),w,T)})`)}`]):(t===`reference`||t===`txHash`)&&typeof n==`string`&&E?r.push([t,tO(`${E}/tx/${n}`,n)]):r.push([t,String(n)]):r.push([t,e])}r.sort(([e],[t])=>e.localeCompare(t));let c=Math.max(...r.map(([e])=>e.length));for(let[e,n]of r)t(` ${Q.dim(e.padEnd(c))} ${n}\n`);t(`
251
- `)}catch{}await PL(ie)}}catch(t){if(t instanceof R)throw t;let n=t instanceof Error?t.cause:void 0,r=n instanceof Error?n:void 0;if(r&&`code`in r){let t=r.code;return t===`ENOTFOUND`?e.error({code:`DNS_ERROR`,message:`Could not resolve host "${o}". Check the URL and try again.`,exitCode:6}):t===`ECONNREFUSED`?e.error({code:`CONNECTION_REFUSED`,message:`Connection refused by "${o}". Is the server running?`,retryable:!0,exitCode:7}):t===`ECONNRESET`?e.error({code:`CONNECTION_RESET`,message:`Connection to "${o}" was reset.`,retryable:!0,exitCode:56}):t===`ETIMEDOUT`?e.error({code:`CONNECTION_TIMEOUT`,message:`Connection to "${o}" timed out.`,retryable:!0,exitCode:28}):t===`CERT_HAS_EXPIRED`||t===`UNABLE_TO_VERIFY_LEAF_SIGNATURE`?e.error({code:`TLS_ERROR`,message:`TLS certificate error for "${o}". Use --insecure to skip verification.`,exitCode:60}):e.error({code:`REQUEST_FAILED`,message:`Request to "${o}" failed: ${r.message}`})}{let n=t instanceof Error?t.message:String(t);return e.error({code:`REQUEST_FAILED`,message:r?`Request failed: ${n} (Cause: ${r.message})`:`Request failed: ${n}`})}}}}),QL=tb(`account`,{description:`Manage accounts (create, default, delete, export, fund, list, view)`}).command(`create`,{description:`Create new account`,options:f.object({account:f.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),network:f.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),rpcUrl:f.string().optional().describe(`RPC endpoint (env: MPPX_RPC_URL)`)}),output:f.object({address:f.string(),name:f.string()}),alias:{account:`a`,rpcUrl:`r`},async run(e){let t=ML(e),n=e.options.account;if(!n){if((await AO().list()).length===0)n=`main`;else{if(t)return e.error({code:`ACCOUNT_REQUIRED`,message:`Account name is required in structured mode.`,exitCode:2});let r=await aO(`Account name`);if(!r)return;n=r}}let r=AO(n);for(;await r.get();){if(t)return e.error({code:`ACCOUNT_EXISTS`,message:`Account "${n}" already exists.`,exitCode:1});process.stderr.write(`${Q.dim(`Account "${n}" already exists.`)}\n\n`);let i=await aO(`Enter different name`);if(!i)return;n=i,r=AO(n)}let i=fe(),a=me(i);await r.set(i),(await AO().list()).length===1&&OO().set(n);let o=he.blockExplorers?.default?.url,s=o?tO(`${o}/address/${a.address}`,a.address):a.address,c=lO(e.options),l=cO(e.options.rpcUrl,{network:c});return uO({network:c,rpcUrl:l}).then(e=>N({chain:e,transport:le(l)})).then(e=>import(`viem/tempo`).then(({Actions:t})=>t.faucet.fund(e,{account:a}).catch(()=>{}))),NL(e,{address:a.address,name:n},()=>{console.log(`Account "${n}" saved to keychain.`),console.log(Q.dim(`Address ${s}`)),console.log(Q.dim(`Fund testnet tokens: mppx account fund --account ${n} --network testnet`))})}}).command(`default`,{description:`Set default account`,options:f.object({account:f.string().describe(`Account name`)}),output:f.object({name:f.string()}),alias:{account:`a`},async run(e){let t=e.options.account;return iO(t)?_P(t)?(OO().set(t),NL(e,{name:t},()=>{console.log(`Default account set to "${t}"`)})):e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found. Is Tempo wallet configured?`,exitCode:69}):await AO(t).get()?(OO().set(t),NL(e,{name:t},()=>{console.log(`Default account set to "${t}"`)})):e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found.`,exitCode:69})}}).command(`delete`,{description:`Delete account`,options:f.object({account:f.string().describe(`Account name`),yes:f.boolean().optional().describe(`DANGER!! Skip confirmation prompts`)}),output:f.object({defaultAccount:f.string().optional(),name:f.string()}),alias:{account:`a`},async run(e){let t=AO(e.options.account),n=await t.get();if(!n)return e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${e.options.account}" not found.`,exitCode:69});let r=me(n),i=await hO(r.address,{includeTestnet:!1});if(!e.options.yes){if(ML(e))return e.error({code:`CONFIRMATION_REQUIRED`,message:`Pass --yes to delete an account in structured mode.`,exitCode:2});let t=he.blockExplorers?.default?.url,n=t?tO(`${t}/address/${r.address}`,r.address):r.address;process.stderr.write(Q.dim(`Delete account "${e.options.account}"\n`)),process.stderr.write(Q.dim(` Address ${n}\n`));for(let e=0;e<i.length;e++)process.stderr.write(Q.dim(` ${e===0?`Balance`:` `} ${i[e]}\n`));if(process.stderr.write(Q.dim(`This action cannot be undone
243
+ `);a=n.pop(),await d(n)}a.trim()&&await d([a]),t.channelId&&t.escrowContract&&t.chainId&&await hP({channelId:t.channelId,cumulativeAmount:n,escrowContract:t.escrowContract,chainId:t.chainId,fetchUrl:t.fetchUrl,fetchInit:t.fetchInit,session:t.session,info:t.info,verbose:t.verbose,tokenSymbol:t.tokenSymbol,tokenDecimals:t.tokenDecimals,explorerUrl:t.explorerUrl,confirmEnabled:!1})}async function hP(e){let t=await e.session.signVoucher({channelId:e.channelId,cumulativeAmount:e.cumulativeAmount,escrowContract:e.escrowContract,chainId:e.chainId,action:`close`}),n=await globalThis.fetch(e.fetchUrl,{...e.fetchInit,headers:{...yw(e.fetchInit.headers),Authorization:t}});if(n.ok){if(OP(e.channelId),e.verbose>=1){let t=n.headers.get(q.paymentReceipt),r;if(t)try{let e=JSON.parse(O.toString(t));typeof e.txHash==`string`&&(r=e.txHash)}catch{}let i=r&&e.explorerUrl?` ${X.dim(pO(`${e.explorerUrl}/tx/${r}`,r))}`:``;e.info(`${X.dim(`Channel closed.`)} ${X.dim(`Spent ${yO(e.cumulativeAmount,e.tokenSymbol,e.tokenDecimals)}.`)}${i}\n`)}}else{let t=await n.text().catch(()=>``);e.info(`\n${X.dim(X.yellow(`Channel close failed`))} ${X.dim(`(${n.status})`)}\n`),e.info(`${X.dim(` channelId: ${e.channelId}`)}\n${X.dim(` cumulativeAmount: ${e.cumulativeAmount}`)}\n${X.dim(` escrowContract: ${e.escrowContract}`)}\n${X.dim(` chainId: ${e.chainId}`)}\n${X.dim(` response: ${t||`(empty)`}`)}\n`)}}function gP(e=100){return!process.stdin.isTTY||!process.stdout.isTTY?Promise.resolve(void 0):new Promise(t=>{let n=process.stdin.isRaw,r=``,i=()=>{clearTimeout(a),process.stdin.removeListener(`data`,o),process.stdin.isTTY&&process.stdin.setRawMode(n??!1),process.stdin.pause()},a=setTimeout(()=>{i(),t(void 0)},e),o=e=>{r+=e.toString();let n=r.match(/\x1b\]11;rgb:([0-9a-f]+)\/([0-9a-f]+)\/([0-9a-f]+)/i);if(!n)return;i();let a=e=>Number.parseInt(e.slice(0,2),16);t({r:a(n[1]),g:a(n[2]),b:a(n[3])})};process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on(`data`,o),process.stdout.write(`\x1B]11;?\x07`)})}function _P(e){return xP(LP,e,RP)}function vP(e){return e.method===`tempo`&&e.intent===`charge`}async function yP(e){let t=VO(e.options.account),n=process.env.MPPX_PRIVATE_KEY?.trim()||(gO(t)?void 0:await HO(t).get()),r;if(n)r=_e(n).address;else if(gO(t)&&MP())r=jP(t)?.wallet_address;else{let e=PP();if(e){let t=await HO(e).get();t&&(r=_e(t).address)}}if(!r)return;let i=bO(e.options.rpcUrl,{network:e.options.network}),a=ie({chain:await SO({network:e.options.network,rpcUrl:i}),transport:fe(i)});return{account:r,client:a}}async function bP(e,t){let n=e.request,r=n.currency,i=n.amount;if(typeof r!=`string`||typeof i!=`string`)return`unsupported`;let a=n.methodDetails?.chainId;if(a&&t.client.chain?.id&&a!==t.client.chain.id)return`unsupported`;let o=BigInt(i);if(o===0n)return`payable`;let s=await je.token.getBalance(t.client,{account:t.account,token:r}).then(e=>e.amount).catch(()=>void 0);return s===void 0?`unknownBalance`:s>=o?`payable`:`insufficientBalance`}function xP(e,t,n){if(t&&typeof t==`object`&&!Array.isArray(t)){let e=Object.keys(t).filter(e=>!n.includes(e));if(e.length)throw Error(`Unsupported CLI method option(s): ${e.join(`, `)}`)}let r=e.safeParse(t??{});if(r.success)return r.data;let i=r.error.issues.map(e=>`${e.path.length?e.path.join(`.`):`options`}: ${e.message}`).join(`, `);throw Error(`Invalid CLI options (${i})`)}function SP(e){let t=e.challenge.request.methodDetails?.chainId;if(!t||!e.clientChainId||t===e.clientChainId)return;let n=t===4217?` Use --network mainnet or --rpc-url https://rpc.tempo.xyz.`:t===42431?` Use --network testnet or --rpc-url https://rpc.moderato.tempo.xyz.`:``;throw new I({code:`CHAIN_MISMATCH`,message:`Challenge requires chainId ${t}, but RPC is chainId ${e.clientChainId}.${n}`,exitCode:2})}function CP(e){if(e)return e.split(`,`).map(e=>e.trim()).filter(Boolean)}function wP(e){let t=CP(e.tokenIn)??CP(e.payWith);if(!(!e.autoSwap&&!t&&e.slippage===void 0)){if(e.autoSwap===!1&&!t&&e.slippage===void 0)return!1;if(e.slippage!==void 0&&(!Number.isFinite(e.slippage)||e.slippage<0))throw Error(`Invalid CLI options (slippage: expected a non-negative number)`);return{...t?{tokenIn:t}:{},...e.slippage===void 0?{}:{slippage:e.slippage}}}}function TP(){return c.join(process.env.XDG_CONFIG_HOME||c.join(b.homedir(),`.config`),`mppx`,`channels`)}function EP(e){try{let n=t.readFileSync(c.join(TP(),e),`utf-8`).trim();return n?BigInt(n):void 0}catch{return}}function DP(e,n){let r=TP();t.mkdirSync(r,{recursive:!0}),t.writeFileSync(c.join(r,e),n.toString(),`utf-8`)}function OP(e){try{t.unlinkSync(c.join(TP(),e))}catch{}}function kP(){return b.platform()===`darwin`?c.join(b.homedir(),`Library`,`Application Support`,`tempo`,`wallet`,`keys.toml`):c.join(process.env.XDG_DATA_HOME||c.join(b.homedir(),`.local`,`share`),`tempo`,`wallet`,`keys.toml`)}function AP(){try{let e=t.readFileSync(kP(),`utf-8`),n=[],r;for(let t of e.split(`
244
+ `)){let e=t.trim();if(e===`[[keys]]`){r?.wallet_address&&n.push(r),r={wallet_type:`local`,wallet_address:``,chain_id:0};continue}if(!r)continue;let i=e.match(/^(\w+)\s*=\s*"?([^"]*)"?$/);if(!i)continue;let[,a,o]=i;a===`wallet_type`?r.wallet_type=o:a===`wallet_address`?r.wallet_address=o:a===`chain_id`&&(r.chain_id=Number.parseInt(o,10))}return r?.wallet_address&&n.push(r),n}catch{return[]}}function jP(e){let t=AP();if(t.length===0)return;let n=e.slice(6);if(n==="default"||n===``)return t[0];let r=Number.parseInt(n,10);if(!Number.isNaN(r)&&r>=0&&r<t.length)return t[r]}function MP(){if(BP!==void 0)return BP;try{m.execFileSync(`which`,[`tempo`],{stdio:`ignore`}),BP=!0}catch{BP=!1}return BP}async function NP(e){return new Promise((t,n)=>{m.execFile(`tempo`,[`mpp`,`sign`,`--challenge`,e],(e,r,i)=>{if(e){let t=i?.trim()||e.message;n(Error(`tempo mpp sign failed: ${t}`));return}let a=r.trim();if(!a){n(Error(`tempo mpp sign returned empty output`));return}t(a)})})}function PP(){let e=BO();if(gO(e.get())&&!MP()&&b.platform()===`darwin`)try{let t=m.execFileSync(`security`,[`dump-keychain`],{encoding:`utf-8`}),n=[];for(let e of t.split(`keychain:`)){let t=e.match(/"svce"<blob>="([^"]*)"/),r=e.match(/"acct"<blob>="([^"]*)"/);t?.[1]===FP&&r?.[1]&&n.push(r[1])}if(n.length>0)return e.set(n[0]),n[0]}catch{}}var FP,IP,LP,RP,zP,BP,VP=F((()=>{wx(),rT(),jx(),ZS(),sP(),kE(),$j(),JO(),PO(),Gk(),FP=`mppx`,IP=p.union([p.boolean(),p.literal(`true`).transform(()=>!0),p.literal(`false`).transform(()=>!1)]),LP=p.object({allowCustomEscrow:p.optional(IP),autoSwap:p.optional(IP),channel:p.optional(p.coerce.string()),deposit:p.optional(p.union([p.string(),p.number()])),payWith:p.optional(p.string()),slippage:p.optional(p.coerce.number()),tokenIn:p.optional(p.string())}),RP=[`allowCustomEscrow`,`autoSwap`,`channel`,`deposit`,`payWith`,`slippage`,`tokenIn`],zP=[`payable`,`unknownBalance`,`insufficientBalance`,`unsupported`]}));CS(),JO(),Gk();const HP=[...Object.entries(QO),...Object.entries($O),...Object.entries(ek),...Object.entries(tk)];function UP(){return Wk({method:`evm`,supports:WP,async setup({challenge:e,options:t}){let n=e.request,r=n.network?GP(ck(n.network)):void 0,i=n.network&&n.asset?HP.find(([,e])=>ok(e,n.asset,n.network)):void 0,a=n.extra?.name,o=n.extra?.version,s=n.asset&&n.network&&typeof a==`string`&&typeof o==`string`?XO({address:n.asset,decimals:i?.[1].decimals??6,network:n.network,transfer:{name:a,type:`eip3009`,version:o}}):void 0,c=await GO(t.account);return{explorerUrl:r?.blockExplorers?.default?.url,methods:[...Uk({account:c,...s&&{currencies:[s]}})],tokenDecimals:i?.[1].decimals??6,tokenSymbol:i?.[0]??``}}})}function WP(e){if(!xS(e))return!1;let t=e.request,n=t.extra,r=n?.assetTransferMethod;return t.scheme===`exact`&&typeof t.asset==`string`&&typeof t.network==`string`&&typeof n?.name==`string`&&typeof n?.version==`string`&&(r===void 0||r===`eip3009`)}function GP(e){return Object.values(Ie).find(t=>t.id===e)}pS(),US(),VP();const KP=[dP(),tA(),Kk(),UP()];async function qP(e,t,n){let r=n;for(let n of t??[]){let t=await n.preparePayment?.({challenge:e,...r===void 0?{}:{credentialContext:r}});t&&`credentialContext`in t&&(r=t.credentialContext)}return r}function JP(e,t){let n=t?.plugins?.find(t=>QP(t,e));if(n)return{plugin:n};let r=ZP(t)?.filter(t=>t.name===e.method&&t.intent===e.intent),i=r?.find(t=>t.canHandleChallenge?.({challenge:e})??!0);if(i)return{method:i};if(r?.length)return{};let a=KP.find(t=>QP(t,e));return a?{plugin:a}:{}}function YP(e,t){let n=ZP(t);if(n?.length){let r=OS(e,n,TS(n,t?.paymentPreferences).entries);if(r){let e=t?.plugins?.find(e=>QP(e,r.challenge));return{challenge:r.challenge,...e?{plugin:e}:{method:r.method}}}return}for(let n of e){let e=JP(n,t);if(e.plugin||e.method)return{challenge:n,...e}}}function XP(e){let t=ZP(e);if(t?.length)return TS(t,e?.paymentPreferences).header}function ZP(e){return Array.isArray(e?.methods)?e.methods.flat():void 0}function QP(e,t){return e.supports?e.supports(t):e.method===t.method}async function $P(e){let t=eF(e);if(!t)return;let n=await import(t);return{config:n.default??n,path:t}}function eF(e){if(e){let n=c.resolve(e);return t.existsSync(n)?n:void 0}let n=process.env.MPPX_CONFIG?.trim();if(n){let e=c.resolve(n);return t.existsSync(e)?e:void 0}}function tF(e,t){function n(t){let n={...t.request};if(t.method===`tempo`&&t.intent===`session`){let e={...n.methodDetails};delete e.sessionSnapshot,Object.keys(e).length?n.methodDetails=e:delete n.methodDetails}return Yx({...t,request:n,id:e.id,expires:e.expires})}if(n(t)!==n(e))throw Error(`Payment request changed on retry. Run the command again to approve the new payment.`)}VP(),pS(),mM(),vN(),ON(),eO();function nF(e){return e??globalThis.fetch.bind(globalThis)}function rF(e,t){let n=e.request.methodDetails?.chainId;if(n!==void 0&&n!==t.chainId)throw Error(`Close challenge changed the session chain.`);if(typeof e.request.recipient!=`string`||e.request.recipient.toLowerCase()!==t.descriptor.payee.toLowerCase())throw Error(`Close challenge changed the session payee.`);if(typeof e.request.currency!=`string`||e.request.currency.toLowerCase()!==t.descriptor.token.toLowerCase())throw Error(`Close challenge changed the session token.`);if(sM(e,t.escrow).toLowerCase()!==t.escrow.toLowerCase())throw Error(`Close challenge changed the session escrow.`);let r=xD(e);if(r&&r.channelId.toLowerCase()!==t.channelId.toLowerCase())throw Error(`Close challenge changed the session channel.`)}async function iF(e){rF(e.challenge,e.channel);let t=nF(e.fetch),n,r=async(r,i)=>{n&&=(await e.onChallenge?.(n),void 0);let a=await t(r,i);if(a.status!==402)return a;let o=iS(a).find(yD);if(!o)throw Error(`Refreshed close response did not include tempo/session.`);return rF(o,e.channel),n=o,a},i=DN({...e.manager,bootstrap:!1,escrow:e.channel.escrow,fetch:r});gN(i).rehydrate(e);let a=await i.close();if(!a)throw Error(`Session close response did not include a payment receipt.`);return{manager:i,receipt:a}}pS(),mM(),bM(),eO(),Lj(),qx();var aF=class extends Error{name=`SessionStateError`;code=`SESSION_STATE_INVALID`;file;constructor(e,t={}){super(e,t.cause===void 0?void 0:{cause:t.cause}),this.file=t.file}},oF=class extends Error{name=`SessionBusyError`;code=`SESSION_BUSY`;exitCode=75;scope;owner;constructor(e,t){super(`Session scope is busy in process ${t.pid} on ${t.hostname}.`),this.scope=e,this.owner=t}};const sF=J.object({channelId:Ux(),cumulativeAmount:J.string(),deposit:J.string(),descriptor:J.object({payer:Hx(),payee:Hx(),operator:Hx(),token:Hx(),salt:Ux(),authorizedSigner:Hx(),expiringNonceHash:Ux()}),escrow:Hx(),chainId:J.number(),opened:J.boolean()}),cF=J.object({name:J.optional(J.string()),address:Hx()}),lF=J.object({method:J.literal(`tempo`),intent:J.literal(`session`),status:J.literal(`success`),timestamp:J.string(),reference:J.string(),challengeId:J.string(),channelId:Ux(),acceptedCumulative:J.string(),spent:J.string(),units:J.optional(J.number()),txHash:J.optional(Ux())}),uF=J.object({version:J.literal(1),method:J.literal(`tempo`),intent:J.literal(`session`),status:J.enum([`opening`,`open`,`closing`,`stale`]),channel:sF,account:cF,endpoint:J.string(),challenge:fS,receipt:J.optional(lF),spent:J.string(),units:J.number(),createdAt:J.string(),updatedAt:J.string()}),dF=J.object({version:J.literal(1),channelId:Ux()}),fF=J.object({version:J.literal(1),scope:J.string(),hostname:J.string(),pid:J.number(),token:J.string(),createdAt:J.string()});function pF(e,t,n,r){let i=e.safeParse(t);if(!i.success)throw Z(n,r,i.error);return i.data}function mF(e){let t=wF(e);return[t.payer,t.payee,t.token,t.escrow,t.chainId].join(`:`)}function hF(e){return{payer:e.descriptor.payer,payee:e.descriptor.payee,token:e.descriptor.token,escrow:e.escrow,chainId:e.chainId}}function gF(e={}){let t=e.stateRoot??vF(),n={root:t,channels:c.join(t,`channels`),locks:c.join(t,`locks`),preferred:c.join(t,`preferred`)},r=e.hostname??b.hostname(),i=e.pid??process.pid,a=e.now??(()=>new Date),o=e.isProcessAlive??XF;async function s(){for(let e of[n.root,n.channels,n.locks,n.preferred])await C.mkdir(e,{recursive:!0,mode:448}),await C.chmod(e,448)}async function l(e){let t=SF(e),r=yF(n,t),i=await VF(r);if(i===void 0)return;let a=MF(i,r);if(a.channel.channelId.toLowerCase()!==t)throw Z(r,`Session filename does not match its channel ID.`);return NF(a)}async function u(){let e;try{e=await C.readdir(n.channels,{withFileTypes:!0})}catch(e){if(QF(e,`ENOENT`))return[];throw Z(n.channels,`Unable to list managed sessions.`,e)}let t=[];for(let n of e){if(!n.isFile()||n.name.includes(`.tmp-`)||!n.name.endsWith(`.json`))continue;let e=n.name.slice(0,-5);SF(e);let r=await l(e);r&&t.push(r)}return t.sort((e,t)=>e.createdAt.localeCompare(t.createdAt))}async function d(e){await s();let t=OF(e.channel),r=SF(t.channelId),i=yF(n,r),o=await VF(i),c=o===void 0?void 0:MF(o,i);c&&PF(c,e,i);let l=AF(e.challenge,i);IF(l,t,i);let u=e.receipt?jF(e.receipt,t.channelId,i):void 0,d=c?yM(c.channel):void 0,f=BF(t.cumulativeAmount,d?.cumulativeAmount??0n),p=BF(e.spent??0n,u?BigInt(u.spent):0n,c?BigInt(c.spent):0n);if(p>f)throw Z(i,`Session spend exceeds the locally authorized cumulative amount.`);let m=kF(vM({...t,cumulativeAmount:f}),i),h=zF(c?.updatedAt,a(),i),g=RF(c?.receipt,u),_=DF(e.account,i),v=MF({version:1,method:`tempo`,intent:`session`,status:e.status,channel:m,account:{..._.name===void 0?c?.account.name===void 0?{}:{name:c.account.name}:{name:_.name},address:_.address},endpoint:EF(e.endpoint,i),challenge:l,...g!==void 0&&{receipt:g},spent:p.toString(),units:Math.max(c?.units??0,e.units??0,u?.units??0),createdAt:c?.createdAt??h,updatedAt:h},i);return await HF(i,v),NF(v)}async function f(e){let t=xF(n,e),r=await VF(t);if(r===void 0)return;let{channelId:i}=pF(dF,r,t,`Preferred session is invalid.`),a=await l(i);if(!a)throw Z(t,`Preferred session ${i} does not exist.`);return LF(a.channel,e,t),i}async function p(e,t){let r=SF(t),i=await l(r),a=xF(n,e);if(!i)throw Z(a,`Session ${r} does not exist.`);LF(i.channel,e,a),await HF(a,{version:1,channelId:r})}async function m(e,t){let r=xF(n,e),i=t===void 0?void 0:SF(t),a=await VF(r);if(a===void 0)return;let o=pF(dF,a,r,`Preferred session is invalid.`).channelId;i&&o.toLowerCase()!==i||await JF(r,`Unable to clear preferred session.`)}async function h(e){let t=SF(e),r=await l(t);r&&(await m(hF(r.channel),t),await JF(yF(n,t),`Unable to remove session.`))}async function g(e){await s();let t=bF(n,e);for(let n=0;n<3;n++){let n={version:1,scope:e,hostname:r,pid:i,token:_(),createdAt:a().toISOString()};try{if(await UF(t,n),await KF(GF(t))){await qF(t,n);continue}return{async release(){await qF(t,n)}}}catch(e){if(!QF(e,`EEXIST`))throw e}let s=await VF(t);if(s===void 0)continue;let c=pF(fF,s,t,`Session lock is invalid.`);if(c.scope!==e)throw Z(t,`Session lock scope is invalid.`);if(c.hostname!==r||o(c.pid))throw new oF(e,c);await WF(t,c)}let c=await VF(t);throw c===void 0?Z(t,`Unable to acquire session lock.`):new oF(e,pF(fF,c,t,`Session lock is invalid.`))}async function v(e){return g(mF(e))}return{root:t,get:l,list:u,upsert:d,remove:h,getPreferred:f,setPreferred:p,clearPreferred:m,acquire:v}}function _F(e,t){let n=TF(t.scope),r=t.selection===`auto`||t.selection===`new`?void 0:SF(t.selection);function i(e){if(e.toLowerCase()!==n)throw new aF(`Session manager requested an unexpected payment scope.`)}async function a(n=!0){if(t.selection===`new`&&!r)return;let i=r??await e.getPreferred(t.scope);if(!i)return;let a=await e.get(i);if(!a)throw new aF(`Session ${i} does not exist.`);if(LF(a.channel,t.scope),!(n&&(a.status!==`open`||!a.channel.opened)))return r=i,a}return{async get(e){return i(e),(await a())?.channel},async set(n){if(i(gM(n)),LF(n,t.scope),r&&r.toLowerCase()!==n.channelId.toLowerCase())throw new aF(`Session manager selected ${r}, but attempted to store ${n.channelId}.`);r||t.onNewChannel?.(n);let a=await e.upsert({...t.context(),channel:n});r=a.channel.channelId,await e.setPreferred(t.scope,a.channel.channelId)},async delete(n){i(n);let o=await a(!1);if(!o)return;let s=t.context();await e.upsert({...o,...s,status:s.status===`closing`?`closing`:`stale`,channel:o.channel,spent:s.spent??o.spent,units:s.units??o.units}),s.status!==`closing`&&await e.clearPreferred(t.scope,o.channel.channelId),r=void 0}}}function vF(){let e=process.env.XDG_STATE_HOME||c.join(b.homedir(),`.local`,`state`);return c.join(e,`mppx`,`sessions`,`v1`)}function yF(e,t){return c.join(e.channels,`${t}.json`)}function bF(e,t){let n=g(`sha256`).update(t).digest(`hex`);return c.join(e.locks,`${n}.lock`)}function xF(e,t){let n=g(`sha256`).update(mF(t)).digest(`hex`);return c.join(e.preferred,`${n}.json`)}function SF(e){return pF(Ux(),e,void 0,`Invalid session channel ID: ${e}.`).toLowerCase()}function CF(e,t,n){return pF(Hx(),e,n,`Invalid ${t}.`).toLowerCase()}function wF(e){if(!Number.isSafeInteger(e.chainId)||e.chainId<0)throw new aF(`Invalid session chain ID.`);return{payer:CF(e.payer,`session payer`),payee:CF(e.payee,`session payee`),token:CF(e.token,`session token`),escrow:CF(e.escrow,`session escrow`),chainId:e.chainId}}function TF(e){let t=wF(e);return[t.payee,t.token,t.escrow,t.chainId].join(`:`)}function EF(e,t){if(typeof e!=`string`)throw Z(t,`Session endpoint is invalid.`);let n;try{n=new URL(e)}catch(e){throw Z(t,`Session endpoint is invalid.`,e)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw Z(t,`Session endpoint must use HTTP or HTTPS.`);if(n.username||n.password)throw Z(t,`Session endpoint must not contain credentials.`);let r=e.indexOf(`#`);return r===-1?e:e.slice(0,r)}function DF(e,t){return pF(cF,e,t,`Session account is invalid.`)}function OF(e){return yM(kF(vM(e)))}function kF(e,t){return pF(sF,e,t,`Stored session channel is invalid.`)}function AF(e,t){let n=fS.safeParse(e);if(!n.success||!yD(n.data))throw Z(t,`Stored session challenge is invalid.`);return n.data}function jF(e,t,n){let r=pF(lF,e,n,`Stored session receipt is invalid.`);if(r.channelId!==t.toLowerCase())throw Z(n,`Stored session receipt has a different channel ID.`);if(r.reference.toLowerCase()!==t.toLowerCase())throw Z(n,`Stored session receipt has a different reference.`);if(BigInt(r.spent)>BigInt(r.acceptedCumulative))throw Z(n,`Stored session receipt spend exceeds its accepted amount.`);return r}function MF(e,t){let n=pF(uF,e,t,`Stored session is invalid.`),{receipt:r,...i}=n,a=n.channel,o=n.account;if(o.address.toLowerCase()!==a.descriptor.payer.toLowerCase())throw Z(t,`Stored session account does not match the channel payer.`);let s=r?jF(r,a.channelId,t):void 0,c=n.spent,l=BigInt(a.cumulativeAmount);if(BigInt(c)>l)throw Z(t,`Stored session spend exceeds its cumulative authorization.`);if(s&&BigInt(s.acceptedCumulative)>l)throw Z(t,`Stored receipt exceeds the cumulative authorization.`);if(Date.parse(n.updatedAt)<Date.parse(n.createdAt))throw Z(t,`Stored session timestamps are not monotonic.`);let u=EF(n.endpoint,t);if(u!==n.endpoint)throw Z(t,`Stored session endpoint contains a fragment.`);let d=AF(n.challenge,t);return IF(d,yM(a),t),{...i,account:o,channel:a,endpoint:u,challenge:d,...s&&{receipt:s}}}function NF(e){return{version:1,status:e.status,channel:yM(e.channel),account:e.account,endpoint:e.endpoint,challenge:e.challenge,...e.receipt&&{receipt:e.receipt},spent:BigInt(e.spent),units:e.units,createdAt:e.createdAt,updatedAt:e.updatedAt}}function PF(e,t,n){let r=OF(t.channel),i=DF(t.account,n),a=yM(e.channel);if(JSON.stringify(FF(r))!==JSON.stringify(FF(a)))throw Z(n,`Session update changed immutable channel identity.`);if(i.address.toLowerCase()!==e.account.address.toLowerCase())throw Z(n,`Session update changed the payer account.`)}function FF(e){return{channelId:e.channelId.toLowerCase(),descriptor:Object.fromEntries(Object.entries(e.descriptor).map(([e,t])=>[e,typeof t==`string`?t.toLowerCase():t])),escrow:e.escrow.toLowerCase(),chainId:e.chainId}}function IF(e,t,n){if(Nj({...t.descriptor,chainId:t.chainId,escrow:t.escrow}).toLowerCase()!==t.channelId.toLowerCase())throw Z(n,`Session channel ID does not match its descriptor.`);let r=CF(e.request.recipient,`challenge recipient`,n),i=CF(e.request.currency,`challenge currency`,n);if(r!==t.descriptor.payee.toLowerCase())throw Z(n,`Session challenge payee does not match the channel.`);if(i!==t.descriptor.token.toLowerCase())throw Z(n,`Session challenge token does not match the channel.`);if(sM(e,t.escrow).toLowerCase()!==t.escrow.toLowerCase())throw Z(n,`Session challenge escrow does not match the channel.`);if(ZF(e.request.methodDetails)){let r=e.request.methodDetails;if(r.chainId!==void 0&&r.chainId!==t.chainId)throw Z(n,`Session challenge chain does not match the channel.`)}}function LF(e,t,n){let r=wF(t);if(e.descriptor.payer.toLowerCase()!==r.payer||e.descriptor.payee.toLowerCase()!==r.payee||e.descriptor.token.toLowerCase()!==r.token||e.escrow.toLowerCase()!==r.escrow||e.chainId!==r.chainId)throw Z(n,`Session channel does not match the selected payment scope.`)}function RF(e,t){return e?t&&Date.parse(t.timestamp)>=Date.parse(e.timestamp)?t:e:t}function zF(e,t,n){if(!Number.isFinite(t.getTime()))throw Z(n,`Session clock is invalid.`);let r=t.toISOString();return!e||Date.parse(r)>=Date.parse(e)?r:e}function BF(...e){return e.reduce((e,t)=>t>e?t:e,0n)}async function VF(e){let t;try{t=await C.readFile(e,`utf8`)}catch(t){if(QF(t,`ENOENT`))return;throw Z(e,`Unable to read session state.`,t)}try{return JSON.parse(t)}catch(t){throw Z(e,`Session state contains invalid JSON.`,t)}}async function HF(e,t){await C.mkdir(c.dirname(e),{recursive:!0,mode:448}),await C.chmod(c.dirname(e),448);let n=`${e}.tmp-${process.pid}-${_()}`,r;try{r=await C.open(n,`wx`,384),await r.writeFile(`${JSON.stringify(t,null,2)}\n`,`utf8`),await r.sync(),await r.close(),r=void 0,await C.rename(n,e),await C.chmod(e,384),await YF(c.dirname(e))}catch(t){throw await r?.close().catch(()=>void 0),await C.unlink(n).catch(()=>void 0),t instanceof aF?t:Z(e,`Unable to write session state.`,t)}}async function UF(e,t){let n;try{n=await C.open(e,`wx`,384),await n.writeFile(`${JSON.stringify(t)}\n`,`utf8`),await n.sync(),await n.close(),n=void 0,await YF(c.dirname(e))}catch(t){throw await n?.close().catch(()=>void 0),n&&await C.unlink(e).catch(()=>void 0),t}}async function WF(e,t){let n=GF(e);try{await C.link(e,n)}catch(t){if(QF(t,`EEXIST`)||QF(t,`ENOENT`))return;throw Z(e,`Unable to claim dead lock.`,t)}try{let r=await VF(n);if(r===void 0||pF(fF,r,n,`Session lock is invalid.`).token!==t.token)return;await JF(e,`Unable to reclaim dead lock.`)}finally{await JF(n,`Unable to release dead lock claim.`)}}function GF(e){return`${e}.reclaim`}async function KF(e){try{return await C.access(e),!0}catch(t){if(QF(t,`ENOENT`))return!1;throw Z(e,`Unable to inspect session lock.`,t)}}async function qF(e,t){let n=await VF(e);n!==void 0&&pF(fF,n,e,`Session lock is invalid.`).token===t.token&&await JF(e,`Unable to release session lock.`)}async function JF(e,t){try{await C.unlink(e),await YF(c.dirname(e))}catch(n){if(!QF(n,`ENOENT`))throw Z(e,t,n)}}async function YF(e){let t=await C.open(e,`r`);try{await t.sync()}finally{await t.close()}}function XF(e){try{return process.kill(e,0),!0}catch(e){if(QF(e,`ESRCH`))return!1;if(QF(e,`EPERM`))return!0;throw e}}function ZF(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function QF(e,t){return e instanceof Error&&`code`in e&&e.code===t}function Z(e,t,n){return new aF(t,{...n!==void 0&&{cause:n},file:e})}wx(),rT(),cN(),TM(),Lj(),JO(),PO();const $F=p.object({status:p.enum([`opening`,`open`,`closing`,`stale`]),channelId:p.string(),account:p.string().optional(),payer:p.string(),payee:p.string(),authorizedSigner:p.string(),token:p.string(),escrow:p.string(),chainId:p.number(),cumulativeAmount:p.string(),confirmedSpend:p.string(),deposit:p.string(),units:p.number(),resourceUrl:p.string(),createdAt:p.string(),updatedAt:p.string()}),eI=p.object({channelId:p.string(),status:p.enum([`closed`,`already-closed`]),spent:p.string(),txHash:p.string().optional()}),tI=p.object({closed:p.array(eI),failed:p.array(p.object({channelId:p.string(),message:p.string()}))});function nI(e){return e===`mainnet`?ve.id:ye.id}function rI(e){if(e===ve.id)return`mainnet`;if(e===ye.id)return`testnet`}function iI(e){let t={};for(let n of e??[]){let e=n.indexOf(`:`);if(e===-1)throw new I({code:`INVALID_HEADER`,message:`Invalid header format: ${n}`,exitCode:2});t[n.slice(0,e).trim()]=n.slice(e+1).trim()}return t}function aI(e){return{status:e.status,channelId:e.channel.channelId,...e.account.name&&{account:e.account.name},payer:e.channel.descriptor.payer,payee:e.channel.descriptor.payee,authorizedSigner:e.channel.descriptor.authorizedSigner,token:e.channel.descriptor.token,escrow:e.channel.escrow,chainId:e.channel.chainId,cumulativeAmount:e.channel.cumulativeAmount.toString(),confirmedSpend:e.spent.toString(),deposit:e.channel.deposit.toString(),units:e.units,resourceUrl:e.endpoint,createdAt:e.createdAt,updatedAt:e.updatedAt}}function oI(e,t){throw e instanceof I?e:e instanceof oF?new I({code:e.code,message:e.message,exitCode:e.exitCode,cause:e}):e instanceof aF?new I({code:e.code,message:e.message,exitCode:65,cause:e}):new I({code:t,message:e instanceof Error?e.message:String(e),exitCode:75,...e instanceof Error&&{cause:e}})}async function sI(e,t){let n=await WO(t??e.account.name);if(!KM(n.account,e.channel.descriptor))throw new I({code:`SESSION_ACCOUNT_MISMATCH`,message:`Account ${n.account.address} cannot sign for session ${e.channel.channelId}.`,exitCode:2});return n}async function cI(e,t){if(t.network&&nI(t.network)!==e)throw new I({code:`CHAIN_MISMATCH`,message:`Session uses chainId ${e}, not ${t.network}.`,exitCode:2});let n=t.network??rI(e),r=bO(t.rpcUrl,{network:n}),i=await SO({network:n,rpcUrl:r});if(i.id!==e)throw new I({code:`CHAIN_MISMATCH`,message:`Session uses chainId ${e}, but RPC is chainId ${i.id}.`,exitCode:2});return ie({chain:i,transport:fe(r)})}const lI=ib(`sessions`,{description:`Manage persistent payment sessions (list, view, close)`}).command(`list`,{description:`List persistent payment sessions`,options:p.object({account:p.string().optional().describe(`Filter by account name`),network:p.enum([`mainnet`,`testnet`]).optional().describe(`Filter by Tempo network`)}),output:p.object({sessions:p.array($F)}),alias:{account:`a`},async run(e){try{let t=(await gF().list()).filter(t=>!(e.options.account&&t.account.name!==e.options.account||e.options.network&&t.channel.chainId!==nI(e.options.network))).map(aI),n={sessions:t};if(e.format===`json`&&e.formatExplicit)return e.ok(n);t.length===0&&console.log(`No sessions.`);for(let[e,n]of t.entries())e>0&&console.log(``),uI(n);return}catch(e){return oI(e,`SESSION_LIST_FAILED`)}}}).command(`view`,{description:`View a persistent payment session`,args:p.object({channelId:p.string().describe(`Full session channel ID`)}),output:$F,async run(e){try{let t=await gF().get(e.args.channelId);if(!t)throw new I({code:`SESSION_NOT_FOUND`,message:`Session ${e.args.channelId} was not found.`,exitCode:2});let n=aI(t);if(e.format===`json`&&e.formatExplicit)return e.ok(n);uI(n);return}catch(e){return oI(e,`SESSION_VIEW_FAILED`)}}}).command(`close`,{description:`Cooperatively close persistent payment sessions`,usage:[{suffix:`<channel-id> [options]`},{suffix:`--all --yes [options]`}],args:p.object({channelId:p.string().optional().describe(`Full session channel ID`)}),options:p.object({account:p.string().optional().describe(`Account name`),all:p.boolean().optional().default(!1).describe(`Close every matching session`),header:p.array(p.string()).optional().describe(`Add close request header (repeatable)`),network:p.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),rpcUrl:p.string().optional().describe(`RPC endpoint (env: MPPX_RPC_URL)`),url:p.string().optional().describe(`Override the stored resource URL`),yes:p.boolean().optional().default(!1).describe(`Confirm closing every session`)}),output:p.union([eI,tI]),alias:{account:`a`,header:`H`,rpcUrl:`r`},async run(e){if(e.options.all&&e.args.channelId)return e.error({code:`INVALID_SESSION_CLOSE`,message:`Specify a channel ID or --all, not both.`,exitCode:2});if(!e.options.all&&!e.args.channelId)return e.error({code:`INVALID_SESSION_CLOSE`,message:`Specify a channel ID or --all.`,exitCode:2});if(e.options.all&&!e.options.yes)return e.error({code:`CONFIRMATION_REQUIRED`,message:`Closing all sessions requires --yes.`,exitCode:2});if(e.options.all&&(e.options.header||e.options.rpcUrl||e.options.url))return e.error({code:`INVALID_SESSION_CLOSE`,message:`--header, --rpc-url, and --url only apply to a single session.`,exitCode:2});let t=gF();async function n(e,n={}){let r=await t.get(e);if(!r)throw new I({code:`SESSION_NOT_FOUND`,message:`Session ${e} was not found.`,exitCode:2});let i=hF(r.channel),a=await t.acquire(i);try{let r=await t.get(e);if(!r)throw new I({code:`SESSION_NOT_FOUND`,message:`Session ${e} was not found.`,exitCode:2});let a=await sI(r,n.account),o=await cI(r.channel.chainId,n);if(Nj({...r.channel.descriptor,escrow:r.channel.escrow,chainId:r.channel.chainId}).toLowerCase()!==r.channel.channelId.toLowerCase())throw new I({code:`SESSION_STATE_INVALID`,message:`Stored descriptor does not derive the session channel ID.`,exitCode:65});if((await SM(o,r.channel.channelId,r.channel.escrow)).deposit===0n)return await t.remove(r.channel.channelId),{channelId:r.channel.channelId,status:`already-closed`,spent:r.spent.toString()};let s=EF(n.resourceUrl??r.endpoint),c={...a.source===`keychain`&&{name:a.accountName},address:a.account.address},l=(e=r.challenge)=>({status:`closing`,account:c,endpoint:s,challenge:e,...r.receipt&&{receipt:r.receipt},spent:r.spent,units:r.units}),u=await t.upsert({...l(),channel:r.channel}),d=iI(n.headers),f=u.challenge,p=await iF({channel:u.channel,challenge:u.challenge,fetch:async(e,t)=>globalThis.fetch(e,{...t,headers:{...d,...yw(t?.headers)}}),input:s,spent:u.spent,async onChallenge(e){f=e,await t.upsert({...l(e),channel:u.channel})},manager:{account:a.account,client:o,channelStore:_F(t,{scope:i,selection:u.channel.channelId,context:()=>l(f)})}});return await t.remove(u.channel.channelId),{channelId:u.channel.channelId,status:`closed`,spent:p.receipt.spent,txHash:p.receipt.txHash}}finally{await a.release()}}try{if(e.options.all){let r=(await t.list()).filter(t=>(!e.options.account||t.account.name===e.options.account)&&(!e.options.network||t.channel.chainId===nI(e.options.network))),i=[],a=[];for(let t of r)try{i.push(await n(t.channel.channelId,{account:e.options.account,network:e.options.network}))}catch(e){a.push({channelId:t.channel.channelId,message:e instanceof Error?e.message:String(e)})}let o={closed:i,failed:a};if(a.length>0){for(let e of a)process.stderr.write(`${e.channelId}: ${e.message}\n`);process.exitCode=1}if(e.format===`json`&&e.formatExplicit)return e.ok(o);for(let e of i)console.log(`${e.channelId} ${e.status} ${e.spent}`);for(let e of a)console.log(`${e.channelId} failed ${e.message}`);return}let r=await n(e.args.channelId,{account:e.options.account,headers:e.options.header,network:e.options.network,resourceUrl:e.options.url,rpcUrl:e.options.rpcUrl});if(e.format===`json`&&e.formatExplicit)return e.ok(r);console.log(`${r.channelId} ${r.status} ${r.spent}`),r.txHash&&console.log(` transaction ${r.txHash}`);return}catch(e){return oI(e,`SESSION_CLOSE_FAILED`)}}});function uI(e){console.log(e.channelId),console.log(` status ${e.status}`),console.log(` cumulative amount ${e.cumulativeAmount}`),console.log(` confirmed spend ${e.confirmedSpend}`),console.log(` deposit ${e.deposit}`),console.log(` chain ${e.chainId}`),console.log(` payer ${e.payer}`),console.log(` payee ${e.payee}`),console.log(` token ${e.token}`),console.log(` resource ${e.resourceUrl}`)}wx(),cN(),vN(),ON(),kE(),JO(),PO();function dI(e,t){if(t&&e!==`auto`&&t.toLowerCase()!==e.toLowerCase())throw new I({code:`SESSION_SELECTION_CONFLICT`,message:`--session and -M channel= select different sessions.`,exitCode:2});let n=t??e;if(n===`auto`||n===`new`)return n;if(/^0x[0-9a-fA-F]{64}$/.test(n))return n.toLowerCase();throw new I({code:`INVALID_SESSION`,message:`Session must be auto, new, or a 32-byte channel ID.`,exitCode:2})}function fI(e){return typeof e.request.decimals==`number`?e.request.decimals:6}function pI(e){let t=e.allowCustomEscrow;if(t!==void 0){if(t===`true`)return!0;if(t===`false`)return!1;throw new I({code:`INVALID_ALLOW_CUSTOM_ESCROW`,message:`allowCustomEscrow must be true or false.`,exitCode:2})}}function mI(e,t,n){if(t.deposit!==void 0)return t.deposit;let r=e.request.suggestedDeposit;return typeof r==`string`?M(BigInt(r),fI(e)):n?`10`:void 0}function hI(e,t){if(!e)return;if(e.challengeId!==t.challenge.id)throw Error(`Session receipt challenge does not match the paid request.`);if(e.channelId.toLowerCase()!==t.channelId.toLowerCase())throw Error(`Session receipt channel does not match the selected channel.`);let n=BigInt(e.acceptedCumulative),r=BigInt(e.spent);if(n>t.cumulative)throw Error(`Session receipt exceeds the local cumulative authorization.`);if(r>n)throw Error(`Session receipt spend exceeds its accepted authorization.`);return e}function gI(e,t){return e.channel.channelId.toLowerCase()===t.toLowerCase()}function _I(e){if(e.trim()!==`[DONE]`){if(e.length===0){process.stdout.write(`
245
+ `);return}try{let t=JSON.parse(e);process.stdout.write(t.token??t.choices?.[0]?.delta?.content??e)}catch{process.stdout.write(e)}}}async function vI(e){let{options:t}=e,n=await WO(t.account),r=bO(t.rpcUrl,{network:t.network}),i=await SO({network:t.network,rpcUrl:r}),a=ie({chain:i,transport:fe(r)}),o=pI(e.methodOptions),s=await BM({allowCustomEscrow:o,challenge:e.challenge,getClient:async()=>a});if(s.chainId!==i.id)throw new I({code:`CHAIN_MISMATCH`,message:`Challenge requires chainId ${s.chainId}, but RPC is chainId ${i.id}.`,exitCode:2});let c={payer:n.account.address,payee:s.payee,token:s.token,escrow:s.escrow,chainId:s.chainId},l=dI(t.session,e.methodOptions.channel),u=e.registry??gF(),d=await u.acquire(c).catch(e=>{throw e instanceof oF?new I({code:e.code,message:e.message,exitCode:e.exitCode,cause:e}):e});try{let r=l===`auto`?await u.getPreferred(c):l===`new`?void 0:l,s=r?await u.get(r):void 0;if(r&&!s)throw new I({code:`SESSION_NOT_FOUND`,message:`Session ${r} was not found.`,exitCode:2});if(s&&l!==`auto`&&(s.status!==`open`||!s.channel.opened||mF(hF(s.channel))!==mF(c)||!KM(n.account,s.channel.descriptor)))throw new I({code:`SESSION_MISMATCH`,message:`Session ${s.channel.channelId} cannot be used for this account and challenge.`,exitCode:2});let d=s?.status===`open`&&s.channel.opened?s:void 0,f=d?`open`:`opening`,p=e.challenge,m=d?.receipt,h=d?.spent??0n,g=d?.units??0,_=EF(e.endpoint),v={...n.source===`keychain`&&{name:n.accountName},address:n.account.address},y=_F(u,{scope:c,selection:l,context:()=>({status:f,account:v,endpoint:_,challenge:p,...m&&{receipt:m},spent:h,units:g}),onNewChannel(){f=`opening`,m=void 0,h=0n,g=0}}),{signal:b,...x}=e.init,S={...x,...b&&{signal:b},onReceipt(e){m=e,h=h>BigInt(e.spent)?h:BigInt(e.spent),g=Math.max(g,e.units??0)}};if(e.challengeResponse.status!==402||e.challengeResponse.bodyUsed)throw Error(`Session manager requires an unconsumed 402 challenge response.`);let C=!0,w=DN({account:n.account,allowCustomEscrow:o,bootstrap:!1,client:a,channelStore:y,credentialContext:e.credentialContext,decimals:fI(e.challenge),maxDeposit:mI(e.challenge,e.methodOptions,TO(i)),fetch:async(t,n)=>C?(C=!1,e.challengeResponse):e.fetch(t,n)});d&&gN(w).rehydrate({channel:d.channel,challenge:e.challenge,input:e.fetchInput,spent:d.spent});let{onReceipt:T,...ee}=S,E=await w.fetch(e.fetchInput,ee);if(t.fail&&E.status>=400)throw new I({code:`HTTP_ERROR`,message:`HTTP error ${E.status}`,exitCode:22});if(E.status===402)throw new I({code:`PAYMENT_REJECTED`,message:`Payment rejected.`,exitCode:75});lO(E,{include:!1,verbose:t.include?Math.max(t.verbose,2):t.verbose,silent:t.silent}),p=E.challenge??e.challenge;let D=w.channelId;if(!D)throw Error(`Session manager did not select a channel.`);if(m=hI(E.receipt,{challenge:p,channelId:D,cumulative:w.cumulative})??m,yE(E)){let t=gN(w).consumeSseResponse(e.fetchInput,E,{onReceipt:T,signal:e.init.signal??void 0});for await(let e of t)_I(e)}else process.stdout.write(Buffer.from(await E.arrayBuffer()));let te=await u.get(D);if(!te||!gI(te,D))throw Error(`Session ${D} was not persisted.`);if(m){let e=hI(m,{challenge:p,channelId:D,cumulative:w.cumulative});if(!e)throw Error(`Session receipt validation failed.`);m=e,h=h>BigInt(e.spent)?h:BigInt(e.spent),g=Math.max(g,e.units??0),f=`open`}await u.upsert({status:f,channel:te.channel,account:v,endpoint:_,challenge:p,...m&&{receipt:m},spent:h,units:g}),t.silent||(e.info(`Session retained ${D}\n`),e.info(`Close with: mppx sessions close ${D}\n`))}finally{await d.release()}}PO();function Q(e,t){return t?{label:e,detail:t,severity:`pass`}:{label:e,severity:`pass`}}function $(e,t,n){let r={label:e,severity:`fail`};return t&&(r.detail=t),n&&(r.hint=n),r}function yI(e,t,n){let r={label:e,severity:`warn`};return t&&(r.detail=t),n&&(r.hint=n),r}function bI(e,t,n){let r=t?{label:e,detail:t,severity:`skip`}:{label:e,severity:`skip`};return n&&(r.hint=n),r}const xI={pass:X.green(`✓`),fail:X.red(`✗`),warn:X.yellow(`⚠`),suggested:X.cyan(`◇`),skip:X.dim(`○`)};function SI(e){let t=xI[e.severity],n=e.detail?`${e.label} (${e.detail})`:e.label;console.log(` ${t} ${n}`),e.hint&&e.severity!==`pass`&&console.log(X.dim(` → ${e.hint}`))}function CI(e){console.log(`\n${X.bold(e)}`)}function wI(e,t){for(let n of e)SI(n),n.severity===`pass`?t.passed++:n.severity===`fail`?t.failed++:n.severity===`warn`?t.warnings++:n.severity===`suggested`?t.suggested++:n.severity===`skip`&&t.skipped++}async function TI(e,t,n=15e3){let r=new AbortController,i=setTimeout(()=>r.abort(),n);try{return await fetch(e,{...t,signal:r.signal})}finally{clearTimeout(i)}}function EI(e){return e<1024?`${e}B`:e<1048576?`${(e/1024).toFixed(1)}KB`:`${(e/1048576).toFixed(1)}MB`}const DI=new Set([`get`,`post`,`put`,`patch`,`delete`,`head`,`options`,`trace`]);function OI(e){return typeof e==`string`&&/^0x[0-9a-fA-F]{40}$/.test(e)}function kI(e){return typeof e==`string`&&/^(0|[1-9][0-9]*)$/.test(e)}function AI(e){let t=e.indexOf(`:`);if(t<1)return null;let n=e.slice(0,t).toLowerCase();if(!DI.has(n))return null;let r=e.slice(t+1);if(!r)return null;let i=r.startsWith(`/`)?r:`/`+r;return{method:n.toUpperCase(),path:i}}function jI(e,t){if(e){try{let n=JSON.parse(e);if(n&&typeof n==`object`&&!Array.isArray(n)){let e=Object.keys(n);if(e.length>0&&e.every(e=>e.startsWith(`/`))){let e=n[t];return e===void 0?void 0:typeof e==`string`?e:JSON.stringify(e)}}}catch{}return e}}function MI(e){if(!e)return{};let t={};for(let n of e){let e=n.indexOf(`:`);e>0&&(t[n.slice(0,e).trim().toLowerCase()]=n.slice(e+1).trim())}return t}async function NI(e){let t=new URL(`openapi.json`,e.replace(/\/?$/,`/`)).href;try{let e=await TI(t,{});if(!e.ok)return{error:`HTTP ${e.status}`};let n=await e.text();return{doc:JSON.parse(n),raw:n}}catch(e){return e instanceof DOMException&&e.name===`AbortError`?{error:`Request timed out after 15s`}:e instanceof SyntaxError?{error:`Invalid JSON`}:{error:e.message}}}async function PI(e){let t=new URL(`/llms.txt`,e).href,n=`llms.txt found and nonempty`;try{let e=await TI(t,{});if(!e.ok)throw Error(`HTTP ${e.status}`);let r=(await e.text()).trim();if(!r)throw Error(`Empty document`);let i=e.headers.get(`content-type`)?.split(`;`)[0]?.trim().toLowerCase();if(i&&!i.startsWith(`text/`)||i===`text/html`||/^<(?:!doctype html|html|head|body)\b/i.test(r))throw Error(`Expected text documentation, received non-text or HTML content`);return Q(n,t)}catch(e){return{label:n,detail:`${t}: ${e.message}`,severity:`suggested`,hint:`Serve nonempty text documentation at /llms.txt.`}}}function FI(e){let t=[],n=[],r=e.paths;if(!r)return[];for(let[e,i]of Object.entries(r)){let r=RI(i.parameters);for(let[a,o]of Object.entries(i)){if(!DI.has(a)||!o||typeof o!=`object`||Array.isArray(o))continue;let i=o,s=zI(r,RI(i.parameters)),c=s.length>0?s:void 0;if(i[`x-payment-info`]){let n=i[`x-payment-info`];t.push({method:a.toUpperCase(),path:e,amount:n.amount,parameters:c})}else{let t=i.responses;t&&`402`in t&&n.push({method:a.toUpperCase(),path:e,parameters:c})}}}return t.length>0?t:n}function II(e,t){let n=e.paths;if(!n)return;let r=n[t.path];if(!r)return;let i=r[t.method.toLowerCase()];if(!i?.requestBody)return;let a=i.requestBody.content?.[`application/json`];if(!a)return;if(a.example)return JSON.stringify(a.example);if(a.examples&&typeof a.examples==`object`){let e=Object.values(a.examples)[0];if(e?.value)return JSON.stringify(e.value)}let o=a.schema,s=new Set;if(o=VI(o,e,s),!o||o.type!==`object`)return;let c=HI(o,e,s);if(c&&typeof c==`object`&&Object.keys(c).length>0)return JSON.stringify(c)}function LI(e,t,n){let r=t.path;t.parameters&&(r=BI(r,t.parameters));let i=r.startsWith(`/`)?r.slice(1):r,a=new URL(i,e.replace(/\/?$/,`/`)).href;if(n){let e=new URL(a);for(let t of n){let[n,...r]=t.split(`=`);n&&e.searchParams.set(n,r.join(`=`))}a=e.href}return a}function RI(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;e.in===`path`&&typeof e.name==`string`&&t.push(e.schema&&typeof e.schema==`object`?{name:e.name,in:`path`,schema:e.schema,example:e.example}:{name:e.name,in:`path`,example:e.example})}return t}function zI(e,t){let n=[...e];for(let e of t){let t=n.findIndex(t=>t.name===e.name);t>=0?n[t]=e:n.push(e)}return n}function BI(e,t){return e.replace(/\{([^}]+)\}/g,(e,n)=>{let r=t.find(e=>e.name===n&&e.in===`path`);if(!r)return e;let i=r.example??r.schema?.example??r.schema?.default;return i===void 0?e:encodeURIComponent(String(i))})}function VI(e,t,n){if(!e||typeof e.$ref!=`string`)return e;if(n?.has(e.$ref))return;let r=e.$ref.replace(/^#\//,``).split(`/`),i=t;for(let e of r)if(i&&typeof i==`object`)i=i[e];else return;return i}function HI(e,t,n){let r=VI(e,t,n)??e;if(r.const!==void 0)return r.const;if(r.example!==void 0)return r.example;if(r.default!==void 0)return r.default;switch(r.type){case`string`:return r.enum&&Array.isArray(r.enum)?r.enum[0]:r.format===`email`?`test@example.com`:r.format===`uuid`?`00000000-0000-0000-0000-000000000000`:r.format===`uri`||r.format===`url`?`https://example.com`:r.format===`date`?`2026-01-01`:r.pattern===`^\\d{5}(?:-\\d{4})?$`?`10001`:r.pattern===`^[A-Z]{2}$`?`US`:`test`;case`number`:case`integer`:return r.minimum??1;case`boolean`:return!0;case`array`:return[];case`object`:{let e=r.properties;if(!e)return{};let i=r.required||[],a={};for(let r of i){let i=e[r];i&&(a[r]=HI(i,t,n))}return a}default:return null}}pS(),jx(),ZC(),PO();const UI=Object.values(Ie);function WI(e){let t=e.request.methodDetails;return typeof t?.chainId==`number`&&UI.find(e=>e.id===t.chainId)?.testnet===!0}async function GI(e,t,n,r){let i=[],a=LI(e,t,r?.query),o=MI(r?.extraHeaders),s;r?.body&&!r.bodyIsAutogenerated&&(s=r.body,o[`content-type`]||=`application/json`);let c;try{let e={method:t.method};Object.keys(o).length>0&&(e.headers=o),s&&(e.body=s),c=await TI(a,e)}catch(e){return i.push($(`Request failed`,e.message)),{results:i}}if(!s&&(c.status===400||c.status===422)){let e=r?.body??(r?.discoveryDoc?II(r.discoveryDoc,t):void 0);if(e){n&&console.log(X.dim(` Retrying with body: ${e}`)),s=e,o[`content-type`]=`application/json`;try{c=await TI(a,{method:t.method,headers:o,body:s})}catch(e){return i.push($(`Request failed`,e.message)),{results:i}}}}if(c.status!==402)return c.status===200?i.push(bI(`Returns 402 without credentials`,`Got 200 (endpoint may not require payment in all cases)`)):c.status===401||c.status===403?i.push(bI(`Returns 402 without credentials`,`Got ${c.status} (endpoint requires auth before payment gate)`)):i.push($(`Returns 402 without credentials`,`Got ${c.status} instead`,c.status===400||c.status===422?`Server requires a valid request body before returning 402. Add a requestBody schema with examples to your OpenAPI doc, or use --body.`:`Endpoints that require payment must return HTTP 402 with a WWW-Authenticate: Payment header when no valid credential is provided.`)),{results:i};i.push(Q(`Returns 402 without credentials`));let l=c.headers.get(q.wwwAuthenticate),u=nL(c);if(!l)return u.length>0?(i.push(bI(`Not an MPP endpoint`,`No WWW-Authenticate header — x402 protocol detected`)),i.push(...u)):i.push(bI(`Not an MPP endpoint`,`No WWW-Authenticate header (may be x402 or other protocol)`)),{results:i};if(u.length>0&&i.push(...u),!l.startsWith(`${Ex.payment} `))return i.push(bI(`Not an MPP endpoint`,`WWW-Authenticate scheme is not Payment`)),{results:i};i.push(Q(`WWW-Authenticate header present`,`Payment scheme`));let d;try{d=iS(c)}catch(e){let t=e.message;i.push($(`Challenge parseable`,t,`The Payment challenge must include a request="<base64url>" parameter containing JSON-encoded payment details.`));let n=l.slice(l.indexOf(` `)+1);return i.push(yI(`Received`,n.length>200?n.slice(0,200)+`...`:n)),{results:i}}if(d.length===0)return i.push($(`Challenge parseable`,`No Payment challenges found in header`)),{results:i};let f=d.map(e=>`${e.method}/${e.intent}`).join(`, `);i.push(Q(`Challenge parseable`,d.length===1?f:`${d.length} methods: ${f}`));let p=new URL(e).hostname;KI(d,i),qI(d,i),JI(d,i),YI(d,p,i);let m=d.length>1;for(let e of d){let t=e.request;XI(e,t,i,m)}if(n)for(let e of d)console.log(X.dim(` Challenge (${e.method}/${e.intent}): ${JSON.stringify(e,null,2)}`));return{results:i,resolvedBody:s,challenges:d}}function KI(e,t){let n=e.filter(e=>!e.id);n.length===0?t.push(Q(`Challenge has id`)):t.push($(`Challenge has id`,`${n.length} missing`,`Every challenge must include a unique id field.`))}function qI(e,t){let n=e.filter(e=>!e.realm);n.length===0?t.push(Q(`Challenge has realm`)):t.push($(`Challenge has realm`,`${n.length} missing`,`Set realm to your server's hostname.`))}function JI(e,t){let n=new Date;for(let r of e){if(!r.expires){t.push(yI(`Challenge has expiration`,`missing expires field`,`Add an expires field (ISO 8601) to prevent replay attacks.`));return}if(new Date(r.expires)<=n){t.push($(`Challenge expires in the future`,`Expired at ${r.expires}`,`The expires timestamp must be in the future.`));return}}let r=Math.min(...e.map(e=>new Date(e.expires).getTime()-n.getTime()));t.push(Q(`Challenge expires in the future`,`${Math.round(r/6e4)}m from now`))}function YI(e,t,n){let r=[...new Set(e.map(e=>e.realm??``))].filter(e=>e&&e!==t&&!t.endsWith(`.${e}`));r.length>0?n.push(yI(`Realm matches server hostname`,`realm="${r[0]}" vs host="${t}"`,`Set the realm to your production hostname (or base domain) in the challenge.`)):n.push(Q(`Realm matches server hostname`))}function XI(e,t,n,r){let i=r?`[${e.method}] `:``;e.method===Dx.tempo?ZI(t,i,n,e):e.method===Dx.stripe?QI(t,i,n):e.method===Dx.evm&&$I(e,t,i,n)}function ZI(e,t,n,r){let i=e.methodDetails,a=Array.isArray(i?.splits)&&i.splits.length>0;if(OI(e.recipient)?n.push(Q(`${t}Valid recipient address`)):e.recipient===void 0&&a?n.push(Q(`${t}Uses splits (no single recipient)`)):e.recipient===void 0?n.push($(`${t}Valid recipient address`,`Missing recipient (and no splits defined)`,`Set request.recipient to a valid 0x address, or use methodDetails.splits for multiple recipients.`)):n.push($(`${t}Valid recipient address`,`Got: ${String(e.recipient)}`,`Set request.recipient to a valid 0x-prefixed 40-hex-char address.`)),OI(e.currency)){let e=WI(r)?`testnet`:`mainnet`;n.push(Q(`${t}Valid currency address`,e))}else n.push($(`${t}Valid currency address`,`Got: ${String(e.currency)}`,`Set request.currency to a valid token address.`));eL(e,t,n,`token's smallest unit (e.g. "10000" = $0.01 for 6-decimal tokens)`)}function QI(e,t,n){eL(e,t,n,`currency's smallest unit (e.g. "100" = $1.00 for USD)`);let r=e.currency;typeof r==`string`&&/^[a-z]{3}$/i.test(r)?n.push(Q(`${t}Valid currency code`,r.toUpperCase())):n.push($(`${t}Valid currency code`,r?`Got: ${r}`:`missing`,`Must be a three-letter ISO currency code (e.g. "usd").`));let i=e.methodDetails,a=i?.networkId;a?n.push(Q(`${t}Has networkId`,a.slice(0,20))):n.push($(`${t}Has networkId`,`Missing methodDetails.networkId`,`Set methodDetails.networkId to your Stripe Business Network profile ID.`));let o=i?.paymentMethodTypes;Array.isArray(o)&&o.length>0?n.push(Q(`${t}Has paymentMethodTypes`,o.join(`, `))):n.push($(`${t}Has paymentMethodTypes`,`Missing or empty`,`Set methodDetails.paymentMethodTypes to an array (e.g. ["card"]).`))}function $I(e,t,n,r){if(OI(t.recipient)?r.push(Q(`${n}Valid recipient address`)):r.push($(`${n}Valid recipient address`,`Got: ${String(t.recipient)}`,`Set request.recipient to a valid 0x-prefixed Ethereum address.`)),OI(t.currency)){let t=WI(e)?`testnet`:`mainnet`;r.push(Q(`${n}Valid currency address`,t))}else r.push($(`${n}Valid currency address`,`Got: ${String(t.currency)}`,`Set request.currency to a valid ERC-20 token contract address.`));eL(t,n,r,`token's smallest unit`);let i=t.methodDetails?.chainId;typeof i==`number`&&i>0?r.push(Q(`${n}Has chainId`,String(i))):r.push($(`${n}Has chainId`,`Missing methodDetails.chainId`,`Set methodDetails.chainId to the EVM chain ID.`))}function eL(e,t,n,r){kI(e.amount)?n.push(Q(`${t}Amount is valid integer string`)):e.amount===void 0||e.amount===null?n.push($(`${t}Amount is valid integer string`,`Missing amount`,`Set request.amount to a string of digits in the ${r}.`)):n.push($(`${t}Amount is valid integer string`,`Got: ${String(e.amount)}`,`request.amount must be a string of digits (no decimals, no prefix).`))}async function tL(e,t,n){let r=[],i=LI(e,t,n?.query),a={[q.authorization]:`${Ex.payment} dGhpcyBpcyBnYXJiYWdl`},o;n?.body&&(o=n.body,a[`content-type`]=`application/json`);try{let e=await TI(i,{method:t.method,headers:a,body:o??null});e.status===402?(r.push(Q(`Malformed credential returns 402`,`not 500`)),e.headers.get(q.wwwAuthenticate)?.startsWith(`${Ex.payment} `)?r.push(Q(`Error response includes fresh challenge`)):r.push(yI(`Error response includes fresh challenge`,`No WWW-Authenticate header`,`When rejecting an invalid credential, respond with 402 and include a fresh WWW-Authenticate: Payment challenge so the client can retry.`))):e.status>=500?r.push($(`Malformed credential returns 402`,`Got ${e.status} (server error)`,`When the Authorization header contains an invalid credential, respond with 402 (not 500). Catch credential validation errors and return a fresh challenge.`)):r.push(yI(`Malformed credential returns 402`,`Got ${e.status}`,`When the Authorization header contains an invalid Payment credential, respond with 402 and a fresh WWW-Authenticate challenge. Returning ${e.status} prevents the client from retrying with a valid payment.`))}catch(e){r.push($(`Error handling test`,e.message))}return r}function nL(e){let t=[],n=e.headers.get(`payment-required`)??e.headers.get(`x-payment-required`);if(!n)return t;let r=e.headers.get(`payment-required`)?`PAYMENT-REQUIRED`:`X-Payment-Required`;try{let e=WC(n);t.push(Q(`x402 payment challenge`,`${r} with valid x402 v${e.x402Version} payload`))}catch{t.push(yI(`x402 payment challenge`,`${r} header present but failed schema validation`,`Ensure the PAYMENT-REQUIRED header contains a valid base64-encoded JSON payload matching the x402 schema.`))}return t}const rL=[`No discovery document found, endpoints could not be automatically found.`,`MPP servers must serve an OpenAPI document at /openapi.json with x-payment-info extensions.`,`The MPP SDKs can automatically expose this endpoint. See https://mpp.dev/sdk.`,``,`To test a specific endpoint: mppx validate <url> --endpoint POST:/your/path`].join(`
246
+ `);qx();const iL={method:J.string(),reference:J.string(),externalId:J.optional(J.string()),subscriptionId:J.optional(J.string()),status:J.literal(`success`),timestamp:Rx()};J.object(iL);const aL=J.looseObject(iL);function oL(e){let t=O.toString(e);return sL(JSON.parse(t))}function sL(e){return aL.parse(e)}pS(),jx(),sP(),oO(),eO(),JO(),PO();async function cL(e,t,n){try{n||console.log(X.dim(` Provisioning testnet wallet and funding via faucet...`));let t=he(),r=_e(t),i=ie({chain:ye,transport:fe()}),a=await je.faucet.fund(i,{account:r});await Promise.all(a.map(e=>Oe(i,{hash:e}))),n||console.log(X.dim(` Using wallet: ${r.address}`));let o=e.request.currency;if(typeof o==`string`)for(let e=0;e<10;e++){let e=await je.token.getBalance(i,{account:r.address,token:o}).catch(()=>void 0);if(e&&e.amount>0n)break;await new Promise(e=>setTimeout(e,500))}return{methods:[...rP({account:r})]}}catch(e){t&&console.log(X.dim(` Provisioning failed: ${e.message}`));return}}async function lL(){let e=VO(),{isTempoAccount:t}=await Promise.resolve().then(()=>(PO(),sO)),{resolveTempoAccount:n}=await Promise.resolve().then(()=>(VP(),cP));if(t(e)){let t=n(e);if(t)return t.wallet_address}try{return(await GO()).address}catch{return}}function uL(e){try{let{execSync:t}=m,n=t(`stripe config --list`,{encoding:`utf8`,timeout:5e3}).match(/test_mode_api_key\s*=\s*'([^']+)'/);if(n?.[1])return e&&console.log(X.dim(` Using Stripe test key from stripe CLI`)),n[1]}catch{}}async function dL(e,t,n){let r=ie({chain:e,transport:fe()}),[i,a]=await Promise.all([Ce(r,{address:t,abi:ce,functionName:`balanceOf`,args:[n]}),Ce(r,{address:t,abi:ce,functionName:`symbol`}).catch(()=>void 0)]);return{balance:i,symbol:a??void 0}}function fL(e){return Object.values(Ie).find(t=>t.id===e)}function pL(e,t){return`$${(Number(e)/10**t).toFixed(2)}`}function mL(e){switch(e.method){case Dx.evm:return`no EVM payment plugin yet`;case`solana`:return`no Solana payment plugin yet`;default:return`no plugin for ${e.method}/${e.intent}`}}async function hL(e,t,n,r){let i=[],a=LI(e,t,r.query),o=MI(r.extraHeaders),s;r.body&&(s=r.body,o[`content-type`]=`application/json`);let c;try{c=await TI(a,{method:t.method,headers:o,body:s??null})}catch(e){return i.push($(`Payment: fetch challenge`,e.message)),i}if(c.status!==402)return i.push(bI(`Payment: skipped`,`Endpoint returned ${c.status}`)),i;let l;try{l=iS(c)}catch(e){return i.push($(`Payment: parse challenge`,e.message)),i}if(l.length===0)return i.push($(`Payment: parse challenge`,`No Payment challenges in response`)),i;let u=await $P().catch(()=>void 0),d=l.find(e=>{if(e.method!==Dx.tempo||ZP(u?.config)?.some(t=>t.name===e.method&&t.intent===e.intent))return!1;let t=e.request.methodDetails;return typeof t?.chainId==`number`&&t.chainId!==tO.mainnet});if(d){let e=await cL(d,n,r.silent);if(e){let r=new Response(null,{status:402,headers:{[q.wwwAuthenticate]:Yx(d)}});try{let c=cT({methods:e.methods,polyfill:!1}),l=await qP(d,u?.config.extensions),f=await c.createCredential(r,l);i.push(Q(`Payment: submitted`,`ephemeral testnet wallet`)),await yL(i,a,t,f,o,s,n,ye,cS(d))}catch(e){i.push($(`Payment: create credential`,e.message))}}else i.push($(`Payment: auto-provision wallet`,`Failed to create and fund testnet wallet`));r.onResults?.(i)}let f=r.interactive,p=process.env.MPPX_STRIPE_SECRET_KEY??uL(n),m=p?.startsWith(`sk_test_`)||p?.startsWith(`rk_test_`),h=new Set([Dx.tempo,Dx.evm,Dx.stripe]);for(let e of l){if(e===d||!h.has(e.method))continue;r.silent||console.log(``);let c=i.length,l=()=>{r.onResults&&i.length>c&&r.onResults(i.slice(c))},g=`Payment [${e.method}]`;try{switch(e.method){case Dx.tempo:case Dx.evm:await gL(e,g,{results:i,url:a,endpoint:t,fetchHeaders:o,fetchBody:s,verbose:n,loaded:u,isInteractive:f,options:r});break;case Dx.stripe:await _L(e,g,{results:i,url:a,endpoint:t,fetchHeaders:o,fetchBody:s,verbose:n,loaded:u,isInteractive:f,isStripeTestKey:m??!1,stripeKey:p,options:r})}}finally{l()}}return i}async function gL(e,t,n){let{results:r,url:i,endpoint:a,fetchHeaders:o,fetchBody:s,verbose:c,loaded:l,options:u}=n,d=e.request,f=d.methodDetails,p=kI(d.amount)?BigInt(d.amount):void 0,m=f?.decimals??d.decimals??6,h=d.currency,{plugin:g,method:_}=JP(e,l?.config);if(!g&&!_){r.push(bI(t,mL(e)));return}let v;if(!_){try{v=await lL()}catch{}if(!v){r.push(bI(t,`no wallet configured. Run "mppx account create" to create one.`));return}}let y;if(e.method===Dx.tempo){let e=f?.chainId??(_?void 0:ve.id);e!==void 0&&(y=e===ye.id?ye:fL(e))}else if(e.method===Dx.evm){let e=f?.chainId;e&&(y=fL(e))}let b;if(v&&p&&h&&y)try{let n;if(e.method===Dx.tempo){let e=await EO(ie({chain:y,transport:fe()}),h,v);n=e.balance,b=e.symbol}else{let e=await dL(y,h,v);n=e.balance,b=e.symbol}if(n<p){let e=pL(p,m),i=pL(n,m),a=b??`tokens`;r.push(bI(t,`insufficient balance (have ${i}, need ${e} ${a} on ${y.name})`,`Fund wallet ${v} with at least ${e} ${a} on ${y.name}.`));return}}catch(e){c&&console.log(X.dim(` Balance check skipped: ${e.message}`))}let x=p?pL(p,m):`unknown amount`,S=b??(h?.length===3?h.toUpperCase():``),C=y?.name,w=`${x}${S?` ${S}`:``}${C?` on ${C}`:``}`;if(u.silent||console.log(X.dim(v?` Attempting payment with wallet ${v}`:` Attempting payment with configured method`)),!_&&y?.testnet)u.silent||console.log(X.dim(` Auto-approved: ${w} (testnet)`));else if(!u.yes&&!n.isInteractive){r.push(bI(t,`non-interactive mode, use --yes to approve`));return}else if(u.yes)u.silent||console.log(X.dim(` Auto-approved: ${w}`));else if(!await vO(` ${X.yellow(`Pay`)} ${w}. Continue?`,!1)){r.push(bI(t,`declined`));return}let T,ee,E;if(g)try{let t=await g.setup({challenge:e,options:{network:`mainnet`},methodOpts:{}});T=t.methods,ee=t.createCredential,E=t.credentialContext}catch(e){r.push(bI(t,e.message));return}else T=[_];if(_&&yD(e)){let n=!0,u=cT({methods:[_],polyfill:!1,async onChallenge(n,{createCredential:i}){let a=await qP(n,l?.config.extensions);tF(e,n);let o=await i(a);return r.push(Q(`${t}: submitted`)),o},fetch:async(t,r)=>n?(n=!1,new Response(null,{status:402,headers:{[q.wwwAuthenticate]:Yx(e)}})):TI(t,r??{},3e4)});try{await bL(r,await u.fetch(i,{method:a.method,headers:o,body:s??null}),c,y)}catch(e){r.push($(t,e.message))}return}let D=await vL(e,T,ee,t,r,l?.config.extensions,E);D&&(g?.prepareCredentialRequest?.({challenge:e,credential:D,headers:o}),await yL(r,i,a,D,o,s,c,y,cS(e)))}async function _L(e,t,n){let{results:r,url:i,endpoint:a,fetchHeaders:o,fetchBody:s,verbose:c,loaded:l,options:u,stripeKey:d}=n,{plugin:f,method:p}=JP(e,l?.config);if(!f&&!p){r.push(bI(t,`no Stripe payment method available`));return}let m=!!(f&&!l?.config.plugins?.includes(f)&&n.isStripeTestKey),h=e.request,g=kI(h.amount)?BigInt(h.amount):void 0,_=h.decimals??2,v=h.currency,y=g?pL(g,_):`unknown amount`,b=v?.length===3?v.toUpperCase():``,x=`${y}${b?` ${b}`:``} via Stripe${m?` (testmode)`:``}`;if(m)u.silent||console.log(X.dim(` Attempting: ${x}`));else if(!u.yes&&!n.isInteractive){r.push(bI(t,`non-interactive mode, use --yes to approve`));return}else if(u.yes)u.silent||console.log(X.dim(` Auto-approved: ${x}`));else if(!await vO(` ${X.yellow(`Pay`)} ${x}. Continue?`,!1)){r.push(bI(t,`declined`));return}let S,C,w;if(f)try{let t={paymentMethod:`pm_card_visa`};d&&(t.secretKey=d);let n=await f.setup({challenge:e,options:{},methodOpts:t});S=n.methods,C=n.createCredential,w=n.credentialContext}catch(e){r.push(bI(t,e.message));return}else S=[p];let T=await vL(e,S,C,t,r,l?.config.extensions,w);if(T){if(f?.prepareCredentialRequest?.({challenge:e,credential:T,headers:o}),m){let n=await TI(i,{method:a.method,headers:{...o,[cS(e)]:T},body:s??null},3e4);n.status>=200&&n.status<300?r.push(Q(`${t}: successful`,`HTTP ${n.status}`)):r.push(bI(`${t}: server is in livemode`,void 0,`Run your server with a Stripe test key to automatically validate Stripe payments in testmode.`));return}await yL(r,i,a,T,o,s,c,void 0,cS(e))}}async function vL(e,t,n,r,i,a,o){let s=new Response(null,{status:402,headers:{[q.wwwAuthenticate]:Yx(e)}});try{let c=await qP(e,a,o),l;return l=n?await n(s,c):await cT({methods:t,polyfill:!1}).createCredential(s,c),i.push(Q(`${r}: submitted`)),l}catch(e){let t=e.message;t.toLowerCase().includes(`insufficient`)?i.push(bI(r,`insufficient balance: ${t}`)):i.push($(r,t));return}}async function yL(e,t,n,r,i,a,o,s,c=q.authorization){let l;try{l=await TI(t,{method:n.method,headers:{...i,[c]:r},body:a??null},3e4)}catch(t){return e.push($(`Payment: send credential`,t.message)),e}return bL(e,l,o,s)}async function bL(e,t,n,r){if(t.status===402){let n=await t.text().catch(()=>``),r=`Payment rejected`;try{let e=JSON.parse(n);r=e.detail??e.title??r}catch{}return e.push($(`Payment: accepted`,r,`The server rejected a valid credential. Check that your payment verification logic accepts the credential format and that the payment was processed on-chain.`)),e}if(t.status>=400&&t.status<500)e.push(yI(`Payment: post-payment response`,`Got ${t.status}`,`Payment succeeded but the endpoint returned a client error. The endpoint likely requires request body parameters. Use --body to provide them.`));else if(t.status>=500)return e.push($(`Payment: server response`,`Got ${t.status}`,`Payment was accepted but the server errored while generating the response. Check server logs for the underlying error.`)),e;else e.push(Q(`Payment: successful`,`HTTP ${t.status}`));let i=t.headers.get(q.paymentReceipt);if(!i)e.push($(`Payment-Receipt header present`,void 0,`After accepting payment, include a Payment-Receipt header with a base64url-encoded JSON object containing: method, reference, status ("success"), and timestamp (ISO 8601).`));else{e.push(Q(`Payment-Receipt header present`));try{let t=oL(i);if(e.push(Q(`Receipt parseable`)),t.status===`success`?e.push(Q(`Receipt status is "success"`)):e.push($(`Receipt status is "success"`,`Got: ${t.status}`)),t.reference){let n=/^0x[0-9a-fA-F]{64}$/.test(t.reference),r=t.reference.startsWith(`pi_`);n||r?e.push(Q(`Receipt reference valid`,t.reference.slice(0,20)+`...`)):e.push(yI(`Receipt reference format`,t.reference.slice(0,40)))}else e.push(yI(`Receipt has reference`,`No reference field`));if(t.timestamp){let n=new Date(t.timestamp),r=Date.now()-n.getTime();r<6e4?e.push(Q(`Receipt timestamp recent`,`${Math.round(r/1e3)}s ago`)):e.push(yI(`Receipt timestamp recent`,`${Math.round(r/6e4)}m ago`))}n&&console.log(X.dim(` Receipt: ${JSON.stringify(t,null,2)}`))}catch(t){e.push($(`Receipt parseable`,t.message))}}let a=t.headers.get(`content-type`)??``,o=await t.text().catch(()=>``);if(o.length>0)e.push(Q(`Response body non-empty`,`${a.split(`;`)[0]}, ${EI(o.length)}`));else{let n=[...t.headers.entries()].filter(([e])=>!e.startsWith(`x-`)&&![`content-type`,`content-length`,`date`,`server`,`connection`,`keep-alive`,`cache-control`,`vary`,`access-control-allow-origin`,`payment-receipt`,`payment-session`,`payment-session-snapshot`].includes(e.toLowerCase()));n.length>0?e.push(yI(`Response body empty -- data may be in headers only`,n.map(([e])=>e).join(`, `))):e.push(yI(`Response body empty`))}if(a?e.push(Q(`Content-Type header set`,a.split(`;`)[0])):e.push(yI(`Content-Type header set`)),i)try{let t=oL(i);if(t.reference&&/^0x[0-9a-fA-F]{64}$/.test(t.reference)){let n=r?.blockExplorers?.default?.url;if(n){let r=n.includes(`tempo`)?`receipt`:`tx`;e.push(Q(`On-chain transaction`,`${n}/${r}/${t.reference}`))}}}catch{}return e}async function*xL(e){let t=e.url.replace(/\/$/,``).replace(/\/openapi\.json$/i,``),n=e.verbose??!1,r=await EL(t,e);yield{phase:`discovery`,discovery:r,results:r.checks};for(let i of r.endpoints){yield{phase:`endpoint`,endpoint:i};let a,o=!1;e.endpoint?a=e.body:(a=jI(e.body,i.path),!a&&r.doc&&(a=II(r.doc,i),o=!!a));let{results:s,resolvedBody:c,challenges:l}=await GI(t,i,n,{body:a,bodyIsAutogenerated:o,query:e.query,extraHeaders:e.headers,discoveryDoc:r.doc??void 0}),u=c??a,d=s.some(e=>e.severity===`pass`&&e.label===`Challenge parseable`),f=(l??[]).filter(e=>e.method!==`stripe`).map(e=>e.request.methodDetails?.chainId).filter(e=>typeof e==`number`),p=f.some(TL),m=f.some(e=>!TL(e)),h=!d&&s.some(e=>e.label===`Not an MPP endpoint`),g=s.some(e=>e.severity===`pass`&&e.label===`WWW-Authenticate header present`),_=s.some(e=>e.severity===`fail`&&e.label===`Challenge parseable`);if(yield{phase:`challenge`,endpoint:i,results:s,isMpp:d,isTestnet:p,isMainnet:m,isNonMppPayment:h,isMalformedChallenge:!d&&g&&_,methods:l?.map(e=>e.method)??[]},d&&(yield{phase:`errorHandling`,endpoint:i,results:await tL(t,i,{body:u,query:e.query})},!e.skipPayment)){let r=e.onPaymentResults,a=await hL(t,i,n,{body:u,query:e.query,extraHeaders:e.headers,yes:e.yes,silent:!r,interactive:e.interactive,...r&&{onResults:r}});yield{phase:`payment`,endpoint:i,results:a,succeeded:a.some(e=>e.severity===`pass`&&e.label===`Payment: successful`)}}}}async function SL(e){let t=e.url.replace(/\/$/,``).replace(/\/openapi\.json$/i,``),n,r=[],i,a=!1,o=!1;for await(let t of xL(e))switch(t.phase){case`discovery`:n=t.discovery;break;case`endpoint`:i={method:t.endpoint.method,path:t.endpoint.path,challenge:[],errorHandling:[],payment:[]},r.push(i);break;case`challenge`:i&&(i.challenge=t.results),t.isMpp&&(t.isTestnet&&(a=!0),t.isMainnet&&(o=!0));break;case`errorHandling`:i&&(i.errorHandling=t.results);break;case`payment`:i&&(i.payment=t.results)}let s={passed:0,failed:0,warnings:0,suggested:0,skipped:0};if(n)for(let e of n.checks)e.severity===`pass`?s.passed++:e.severity===`fail`?s.failed++:e.severity===`warn`?s.warnings++:e.severity===`suggested`?s.suggested++:e.severity===`skip`&&s.skipped++;for(let e of r)for(let t of[...e.challenge,...e.errorHandling,...e.payment])t.severity===`pass`?s.passed++:t.severity===`fail`?s.failed++:t.severity===`warn`?s.warnings++:t.severity===`suggested`?s.suggested++:t.severity===`skip`&&s.skipped++;if(!n)throw Error(`Discovery phase did not complete`);let c=CL(r,n,{sawTestnet:a,sawMainnet:o});return{url:t,discovery:n,endpoints:r,summary:s,suggestions:c}}function CL(e,t,n){let r=[],i=e.flatMap(e=>[...e.challenge,...e.payment]);t.found||r.push(rL);let a=n.sawMainnet,o=n.sawTestnet,s=i.some(e=>e.label.includes(`[stripe]`)&&e.label.includes(`livemode`));return a&&!o?r.push(`Validate your testnet server to test without real funds (Tempo wallets are automatically provisioned).`):o&&!a&&r.push(`Validate your mainnet server to confirm real payments work end-to-end.`),s&&r.push(`Validate your testmode Stripe server to test card payments end-to-end (auto-pays with test card).`),r}const wL=Object.values(Ie);function TL(e){return wL.find(t=>t.id===e)?.testnet===!0}async function EL(e,t){let n=[],r=[],i=null,a=!1,o=!1;n.push(await PI(e));let s=new URL(e).origin,c;t.discoveryPath?c=[new URL(t.discoveryPath,e+`/`).href.replace(/\/openapi\.json$/i,``)]:(c=[e,s,`${s}/api`],c=[...new Set(c)]);let l,u=[];for(let e of c)if(l=await NI(e),`error`in l)u.push(`${e}/openapi.json: ${l.error}`);else break;if(!l||`error`in l)n.push({label:`Document found`,detail:u.join(`; `),hint:`MPP servers must serve an OpenAPI document at /openapi.json with x-payment-info extensions.`,severity:`fail`});else{a=!0,n.push({label:`Document found and parseable`,severity:`pass`});let e=VT(l.doc),t=e.filter(e=>e.severity===`error`),r=e.filter(e=>e.severity===`warning`);if(t.length>0){n.push({label:`Valid OpenAPI structure`,detail:`${t.length} error(s)`,severity:`fail`});for(let e of t)n.push({label:e.message,detail:e.path,severity:`fail`})}else o=!0,n.push({label:`Valid OpenAPI structure`,severity:`pass`});for(let e of r)n.push({label:e.message,detail:e.path,severity:`warn`});i=l.doc}if(t.endpoint){let e=AI(t.endpoint);e&&r.push(e)}else if(i){r=FI(i);let e=BigInt(`999999999999999999`);r.sort((t,n)=>{let r=kI(t.amount)?BigInt(t.amount):e,i=kI(n.amount)?BigInt(n.amount):e;return r<i?-1:+(r>i)}),r.length>0?n.push({label:`Paid endpoints found`,detail:`${r.length} endpoint(s)`,severity:`pass`}):n.push({label:`Paid endpoints found`,detail:`No endpoints with x-payment-info`,severity:`warn`})}return{found:a,valid:o,endpoints:r,checks:n,doc:i}}wx(),PO();const DL=ib(`validate`,{description:`Validate an MPP server implementation end-to-end`,args:p.object({url:p.string().describe(`Base URL of the MPP server to validate`)}),options:p.object({endpoint:p.string().optional().describe(`Endpoint to test (METHOD:path). Skips discovery.`),body:p.string().optional().describe(`Request body. With --endpoint, used directly. In discovery mode, JSON with / keys is a per-path mapping.`),query:p.array(p.string()).optional().describe(`Query parameter (key=value, repeatable)`),header:p.array(p.string()).optional().describe(`Request header (key:value, repeatable)`),verbose:p.number().default(0).meta({count:!0}).describe(`Verbosity level`),yes:p.boolean().default(!1).describe(`Auto-approve mainnet payments`),outputJson:p.boolean().default(!1).describe(`Output results as JSON (auto-enabled in known agent environments)`)}),alias:{endpoint:`e`,header:`H`,verbose:`v`,yes:`y`,outputJson:`j`},async run(e){if(e.options.outputJson||hO()){let t=await SL({url:e.args.url,endpoint:e.options.endpoint,body:e.options.body,query:e.options.query,headers:e.options.header,verbose:e.options.verbose>0,yes:e.options.yes,interactive:!1});console.log(JSON.stringify(t,null,2));let n=t.endpoints.length===0&&!e.options.endpoint;(t.summary.failed>0||!t.discovery.found||n)&&process.exit(1);return}let t=e.args.url.replace(/\/$/,``).replace(/\/openapi\.json$/i,``);console.log(`\n${X.bold(`mppx validate`)} ${X.dim(t)}\n`);let n={passed:0,failed:0,warnings:0,suggested:0,skipped:0},r=!1,i=!1,a=!1,o=!1,s=!1,c=!1,l=!1,u=0;for await(let t of xL({url:e.args.url,endpoint:e.options.endpoint,body:e.options.body,query:e.options.query,headers:e.options.header,verbose:e.options.verbose>0,yes:e.options.yes,interactive:!!process.stdin.isTTY,onPaymentResults:e=>wI(e,n)}))switch(t.phase){case`discovery`:if(CI(`Discovery (/openapi.json)`),wI(t.results,n),l=t.discovery.found,!l&&!e.options.endpoint){console.log(``);let[e,...t]=rL.split(`
247
+ `);console.log(X.yellow(` ${e}`));for(let e of t)console.log(e?X.dim(` ${e}`):``);console.log(``),process.exit(1)}t.discovery.endpoints.length===0&&!e.options.endpoint&&l&&(console.log(X.dim(` Use --endpoint to specify endpoints manually.`)),console.log(``),process.exit(1));break;case`endpoint`:u++,CI(`${t.endpoint.method} ${t.endpoint.path}`);break;case`challenge`:console.log(X.dim(` Challenge`)),wI(t.results,n),t.isMpp&&(r=!0,t.isTestnet&&(o=!0),t.isMainnet&&(s=!0)),t.isNonMppPayment&&(i=!0),t.isMalformedChallenge&&(a=!0);break;case`errorHandling`:console.log(X.dim(` Error Handling`)),wI(t.results,n);break;case`payment`:t.succeeded&&(c=!0)}OL(n,{sawMppEndpoint:r,sawNonMppPaymentEndpoint:i,sawMalformedChallenge:a,sawTestnet:o,sawMainnet:s,paymentSucceeded:c},u)}});function OL(e,t,n){!t.sawMppEndpoint&&n>0&&(console.log(``),t.sawMalformedChallenge?(console.log(X.yellow(` Payment scheme detected but challenge format is invalid on ${n} endpoint(s).`)),console.log(X.dim(` The server uses WWW-Authenticate: Payment but the challenge parameters do not conform to MPP.`)),console.log(X.dim(` Fix: encode payment details as base64url JSON in a request="..." parameter. See errors above.`))):t.sawNonMppPaymentEndpoint?(console.log(X.yellow(` No MPP endpoints found. Tested ${n} endpoint(s) but none use WWW-Authenticate: Payment.`)),console.log(X.dim(` This server may use x402 or another payment protocol.`))):e.skipped>0&&e.failed===0?(console.log(X.yellow(` Could not reach payment gate on any endpoint (all returned 401/403/200).`)),console.log(X.dim(` The server may require authentication before payment. Try providing auth or use --endpoint with a public path.`))):(console.log(X.yellow(` No MPP endpoints found. Tested ${n} endpoint(s) but none use WWW-Authenticate: Payment.`)),console.log(X.dim(` This server may use x402 or another payment protocol.`))),console.log(``),process.exit(1)),console.log(``);let r=[];e.passed>0&&r.push(X.green(`${e.passed} passed`)),e.failed>0&&r.push(X.red(`${e.failed} failed`)),e.warnings>0&&r.push(X.yellow(`${e.warnings} warning(s)`)),e.suggested>0&&r.push(X.cyan(`${e.suggested} suggested`)),e.skipped>0&&r.push(X.yellow(`${e.skipped} skipped`)),console.log(`${X.bold(`Summary:`)} ${r.join(`, `)}`),t.paymentSucceeded&&t.sawTestnet&&!t.sawMainnet?(console.log(``),console.log(X.dim(` Tip: also validate your mainnet server to confirm real payments work end-to-end.`))):t.sawMainnet&&!t.sawTestnet&&(console.log(``),console.log(X.dim(` Tip: also validate your testnet server for free. This CLI automatically provisions and funds a testnet wallet for testing.`))),console.log(``),e.failed>0&&process.exit(1)}function kL(e){return jL(e)?e.offers:[e]}function AL(e){let{_canonicalRequest:t,intent:n,name:r}=e,i=t.methodDetails??{},a=ML(t.amount)??ML(i.amount)??null,o=ML(t.currency)??ML(i.currency),s=ML(e.description)??ML(t.description),c={amount:a,...o?{currency:o}:{},...s?{description:s}:{},intent:n,method:r},l=new Set([`amount`,`currency`,`description`,`methodDetails`]);for(let[e,n]of Object.entries(t))!l.has(e)&&n!==void 0&&(c[e]=n);return c}function jL(e){return`offers`in e&&!(`_canonicalRequest`in e)}function ML(e){return typeof e==`string`?e:void 0}var NL=F((()=>{})),PL=Je({generate:()=>FL,generateProxy:()=>IL});function FL(e,t){let n=e.methods,r=new Map,i={};for(let e of n)r.set(`${e.name}/${e.intent}`,e),i[e.intent]=(i[e.intent]??0)+1;for(let e of n)i[e.intent]===1&&r.set(e.intent,e);let a=t.routes.map(e=>RL(e,r));return LL({info:{title:t.info?.title??e.realm,version:t.info?.version??`1.0.0`},routes:a,serviceInfo:t.serviceInfo})}function IL(e){let t=e.routes.map(t=>({...t,path:zL(e.basePath,t.path)}));return LL({info:{title:e.info?.title??`API Proxy`,version:e.info?.version??`1.0.0`},routes:t,serviceInfo:e.serviceInfo})}function LL(e){let t={};for(let n of e.routes){let e=n.method.toLowerCase(),r={responses:{...n.payment?{402:{description:`Payment Required`}}:{},200:{description:`Successful response`}}};n.payment&&(r[`x-payment-info`]=PT.parse(n.payment)),n.summary&&(r.summary=n.summary),n.requestBody&&(r.requestBody=n.requestBody),t[n.path]||(t[n.path]={}),t[n.path][e]=r}let n={info:e.info,openapi:`3.1.0`,paths:t};return e.serviceInfo&&(n[`x-service-info`]=e.serviceInfo),n}function RL(e,t){if(`handler`in e){let t=e.handler._internal;if(!t)throw Error(`Route ${e.method.toUpperCase()} ${e.path} is missing discovery metadata`);return{method:e.method,path:e.path,payment:{offers:kL(t).map(AL)},...e.requestBody?{requestBody:e.requestBody}:{},...e.summary?{summary:e.summary}:{}}}let n=t.get(e.intent);if(!n)throw Error(`Unknown intent "${e.intent}" for route ${e.method.toUpperCase()} ${e.path}. Available: ${[...t.keys()].join(`, `)}`);let{description:r,...i}=e.options,a={_canonicalRequest:Nx(n,i),...typeof r==`string`?{description:r}:{},intent:n.intent,name:n.name};return{method:e.method,path:e.path,payment:AL(a),...e.requestBody?{requestBody:e.requestBody}:{},...e.summary?{summary:e.summary}:{}}}function zL(e,t){if(!e)return t;let n=e.startsWith(`/`)?e:`/${e}`;return`${n.endsWith(`/`)?n.slice(0,-1):n}${t}`}var BL=F((()=>{Fx(),BT(),NL()}));wx(),pS(),rT(),BC(),$C(),nw(),jx(),eO(),ZC(),CS(),wC(),JO(),PO();const VL=`0.10.1`,HL=p.object({address:p.string(),isDefault:p.boolean().optional(),name:p.string(),source:p.string().optional()}),UL=p.object({address:p.string(),balances:p.array(p.string()).optional(),name:p.string(),type:p.string().optional()}),WL=p.object({message:p.string(),path:p.string(),severity:p.string()}),GL=p.object({description:p.string().optional(),id:p.string(),name:p.string().optional(),paidEndpoints:p.number(),status:p.string().optional(),url:p.string().optional()}),KL=p.object({description:p.string().optional(),method:p.string(),path:p.string(),payment:p.unknown().optional()});function qL(e){return e.format===`json`&&e.formatExplicit}function JL(e,t,n){if(qL(e))return e.ok(t);n()}async function YL(t){if(!t.body)return;let n=t.body.getReader();try{for(;;){let{done:t,value:r}=await n.read();if(t)break;process.stdout.write(Buffer.from(r))||await e(process.stdout,`drain`)}}finally{n.releaseLock()}}function XL(){return process.stdin.isTTY===!1&&process.stdin.listenerCount(`data`)===0&&process.stdin.listenerCount(`readable`)===0}function ZL(e){return typeof e==`string`?e:void 0}function QL(e){return Array.isArray(e.endpoints)?e.endpoints.filter(e=>typeof e==`object`&&!!e):[]}function $L(e){let t=QL(e);return{...ZL(e.description)?{description:ZL(e.description)}:{},id:ZL(e.id)??ZL(e.name)??`unknown`,...ZL(e.name)?{name:ZL(e.name)}:{},paidEndpoints:t.filter(e=>e.payment).length,...ZL(e.status)?{status:ZL(e.status)}:{},...ZL(e.serviceUrl)||ZL(e.url)?{url:ZL(e.serviceUrl)??ZL(e.url)}:{}}}function eR(e){return{...ZL(e.description)?{description:ZL(e.description)}:{},method:ZL(e.method)??`GET`,path:ZL(e.path)??`/`,...e.payment===void 0?{}:{payment:e.payment}}}function tR(e){if(!e)return`free`;if(typeof e!=`object`)return String(e);let t=e,n=ZL(t.amount),r=ZL(t.currency),i=ZL(t.method),a=ZL(t.intent);return[n,r,i&&a?`${i}/${a}`:i??a].filter(Boolean).join(` `)}function nR(e){return e.request.currency??e.request.asset}function rR(e,t){if(!t)return[...e];let n=t.toLowerCase();return e.filter(e=>{let t=nR(e);return typeof t==`string`&&t.toLowerCase()===n})}async function iR(e,t,n={}){let r=()=>zC().getChallenges(e),i=()=>QC().getChallenges(n.ignoreX402ResponseUrl?new Response(null,{headers:e.headers,status:e.status}):e);if(t===`mpp`)return r();if(t===`x402`)return i();let a=[],o;try{a=await r()}catch(e){o=e}let s=[],c;try{s=await i()}catch(e){c=e}if(a.length||s.length)return[...a,...s];if(o)throw o;if(c)throw c;return[]}function aR(e){return ew({name:`selected-challenge`,isPaymentRequired:e=>e.status===402,getChallenges:()=>[e],setCredential:e=>e})}function oR(e,t){if(!xS(e))return new Response(null,{status:402,headers:{[q.wwwAuthenticate]:Yx(e)}});let n=e.request;return n.resource?new Response(null,{status:402,headers:{[oC]:JC({accepts:[tC(n)],...n.extensions&&{extensions:n.extensions},resource:n.resource,x402Version:2})}}):t}function sR(e){let{host:t,hostname:n}=new URL(e);return!n.endsWith(`.localhost`)||n===`localhost`?{url:e}:{host:t,url:e.replace(n,`127.0.0.1`)}}function cR(e,t){for(let t of Object.keys(e))t.toLowerCase()===`host`&&delete e[t];t&&(e.Host=t)}function lR(e){let t=e.request.resource;return typeof t?.url==`string`?t.url:void 0}async function uR(){let e=process.env.MPPX_SERVICES_URL??`https://mpp.dev/api/services`,t=await globalThis.fetch(e);if(!t.ok)throw new I({code:`SERVICES_FETCH_FAILED`,message:`Failed to fetch services registry: HTTP ${t.status}`,exitCode:1});let n=await t.json();if(!n||typeof n!=`object`||!Array.isArray(n.services))throw new I({code:`SERVICES_INVALID`,message:`Services registry response did not contain a services array.`,exitCode:1});return n.services}function dR(e,t){let n=t.toLowerCase();return e.find(e=>{let t=ZL(e.id)?.toLowerCase(),r=ZL(e.name)?.toLowerCase();return t===n||r===n})}const fR=ib(`mppx`,{mcp:{tools:{discovery:`direct`}},version:VL,description:`Make HTTP requests with automatic payment handling`,usage:[{suffix:`<url> [options]`}],args:p.object({url:p.string().describe(`URL to make request to`)}),options:p.object({account:p.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),autoSwap:p.boolean().optional().describe(`Auto-swap source tokens into payment currency`),config:p.string().optional().describe(`Path to config file`),confirm:p.boolean().optional().default(!1).describe(`Show confirmation prompts`),currency:p.string().optional().describe(`Payment currency/token address to select`),data:p.string().optional().describe(`Send request body (implies POST unless -X is set)`),fail:p.boolean().optional().describe(`Fail silently on HTTP errors (exit 22)`),header:p.array(p.string()).optional().describe(`Add header (repeatable)`),include:p.boolean().optional().describe(`Include response headers in output`),insecure:p.boolean().optional().describe(`Skip TLS certificate verification (true for localhost/.local)`),jsonBody:p.string().optional().describe(`Send JSON body (sets Content-Type and Accept, implies POST)`),location:p.boolean().optional().describe(`Follow redirects`),method:p.string().optional().describe(`HTTP method`),methodOpt:p.array(p.string()).optional().describe(`Method-specific option (key=value, repeatable)`),network:p.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),payWith:p.string().optional().describe(`Source token for Tempo auto-swap`),protocol:p.enum([`auto`,`mpp`,`x402`]).default(`auto`).describe(`Payment protocol to use`),rpcUrl:p.string().optional().describe(`RPC endpoint, defaults to public RPC for chain (env: MPPX_RPC_URL)`),session:p.string().optional().default(`auto`).refine(e=>e===`auto`||e===`new`||/^0x[0-9a-fA-F]{64}$/.test(e),`Expected auto, new, or a 32-byte channel ID`).describe(`Session selection: auto, new, or channel ID`),silent:p.boolean().default(!1).describe(`Silent mode (suppress progress and info)`),slippage:p.number().optional().describe(`Tempo auto-swap max slippage percentage`),userAgent:p.string().optional().default(`mppx/${VL}`).describe(`Set User-Agent header`),verbose:p.number().default(0).meta({count:!0}).describe(`Verbosity (-v details, -vv headers)`)}),alias:{account:`a`,config:`c`,data:`d`,fail:`f`,header:`H`,include:`i`,insecure:`k`,jsonBody:`J`,location:`L`,method:`X`,methodOpt:`M`,rpcUrl:`r`,silent:`s`,userAgent:`A`,verbose:`v`},examples:[{args:{url:`mpp.dev/api/ping/paid`},description:`Make a payment request`}],async run(e){let t=e.options.silent?e=>{}:e=>process.stderr.write(e),n=await $P(e.options.config);n&&e.options.verbose>=1&&t(`${X.dim(`Using config`)} ${X.blue(c.relative(process.cwd(),n.path))}\n`);let r={"User-Agent":e.options.userAgent};if(e.options.header)for(let t of e.options.header){let n=t.indexOf(`:`);if(n===-1)return e.error({code:`INVALID_HEADER`,message:`Invalid header format: ${t}`,exitCode:2});r[t.slice(0,n).trim()]=t.slice(n+1).trim()}let i=XP(n?.config);i&&!Object.keys(r).some(e=>e.toLowerCase()===`accept-payment`)&&(r[`Accept-Payment`]=i);let a=(()=>{let t=/^https?:\/\//.test(e.args.url),n=/^(localhost|.*\.localhost|127\.0\.0\.1|\[::1\])(:\d+)?/.test(e.args.url);return t?e.args.url:`${n?`http`:`https`}://${e.args.url}`})(),{hostname:o}=new URL(a),s=e.options.insecure||o===`localhost`||o.endsWith(`.localhost`)||o.endsWith(`.local`)?async(e,t)=>{let n=process.env.NODE_TLS_REJECT_UNAUTHORIZED;process.env.NODE_TLS_REJECT_UNAUTHORIZED=`0`;try{return await globalThis.fetch(e,t)}finally{n===void 0?delete process.env.NODE_TLS_REJECT_UNAUTHORIZED:process.env.NODE_TLS_REJECT_UNAUTHORIZED=n}}:globalThis.fetch,l=sR(a),u=l.url;l.host&&(r.Host=l.host);try{let i=mO(e.options.methodOpt),o=gF(),c={redirect:e.options.location?`follow`:`manual`};e.options.jsonBody?(c.body=e.options.jsonBody,r[`Content-Type`]??=`application/json`,r.Accept??=`application/json`):e.options.data&&(c.body=e.options.data),e.options.method?c.method=e.options.method.toUpperCase():c.body&&(c.method=`POST`),Object.keys(r).length>0&&(c.headers=r);let d={include:e.options.include??!1,verbose:e.options.verbose,silent:e.options.silent};e.options.verbose>=2&&cO(a,c,t);let f=await s(u,c);if(f.status!==402){if(e.options.session!==`auto`)return e.error({code:`UNSUPPORTED_SESSION`,message:`--session requires a tempo/session payment challenge.`,exitCode:2});if(e.options.fail&&f.status>=400)return e.error({code:`HTTP_ERROR`,message:`HTTP error ${f.status}`,exitCode:22});lO(f,d),await YL(f);return}let p=f.url?new URL(f.url):void 0,m=l.host!==void 0&&p?.hostname===`127.0.0.1`,h=await iR(f,e.options.protocol,{ignoreX402ResponseUrl:m});if(h.length===0)return e.error({code:`UNSUPPORTED_PROTOCOL`,message:e.options.protocol===`auto`?`Server did not offer a payment challenge.`:`Server did not offer an ${e.options.protocol} payment challenge.`,exitCode:2});let g=rR(h,e.options.currency);if(e.options.currency&&g.length===0){let t=h.map(nR).filter(e=>typeof e==`string`).join(`, `);return e.error({code:`UNSUPPORTED_CURRENCY`,message:`Server did not offer payment currency ${e.options.currency}.${t?` Offered currencies: ${t}.`:``}`,exitCode:2})}let _=ZP(n?.config)?.length?g:await uP(g,{options:{account:e.options.account,network:e.options.network,rpcUrl:e.options.rpcUrl}}),v=YP(_,n?.config);if(!v){let t=_.map(e=>`${e.method}/${e.intent}`).join(`, `);return e.error({code:`UNSUPPORTED_METHOD`,message:`Unsupported payment method. Server offers: ${t}. Add it to mppx.config.ts using defineConfig().`,exitCode:2})}let{challenge:y,plugin:b,method:x}=v,S=xS(y),C=oR(y,f),w=y.request.currency??``,T=y.request.decimals??6,ee,E;b&&(E=await b.setup({challenge:y,options:{account:e.options.account,autoSwap:e.options.autoSwap,network:e.options.network,payWith:e.options.payWith,rpcUrl:e.options.rpcUrl,slippage:e.options.slippage},methodOpts:i}),w=E.tokenSymbol,T=E.tokenDecimals,ee=E.explorerUrl);let D=!e.options.silent&&e.options.confirm,te=new Set;{lO(f,y.method===`tempo`&&y.intent===`session`&&e.options.include?{...d,include:!1,verbose:Math.max(d.verbose,2)}:d);let n=(()=>{let e=new Set([`id`,`request`]),t=[];for(let[n,r]of Object.entries(y))e.has(n)||r===void 0||t.push([n,fO(n,r)]);return t.sort(([e],[t])=>e.localeCompare(t))})(),r={tokenSymbol:w,tokenDecimals:T,explorerUrl:ee},i=(()=>{let e=new Set([`decimals`,`currency`,`methodDetails`]),t=[];for(let[n,i]of Object.entries(y.request))e.has(n)||i===void 0||t.push([n,uO(n,i,r)]);return t.sort(([e],[t])=>e.localeCompare(t))})(),a=(()=>{let e=y.request.methodDetails;if(!e)return[];let t=[];for(let[n,i]of Object.entries(e))if(i!==void 0){if(n===`memo`&&typeof i==`string`){let e=dO(i);t.push([n,e?`${e}\n${X.dim(i)}`:i])}else t.push([n,uO(n,i,r)])}return t.sort(([e],[t])=>e.localeCompare(t))})(),o=[[`Challenge`,n],[`Request`,i],...a.length?[[`Details`,a]]:[]];for(let[,e]of o)for(let[t]of e)te.add(t);let s=Math.max(...o.flatMap(([,e])=>e.map(([e])=>e.length))),c=` ${``.padEnd(s)} `;if(e.options.verbose>=1||D){t(`${X.bold(X.yellow(`Payment Required`))}\n`);for(let[e,n]of o){t(`${X.bold(e)}\n`);for(let[e,r]of n){let[n,...i]=r.split(`
248
+ `);t(` ${X.dim(e.padEnd(s))} ${n}\n`);for(let e of i)t(`${c}${e}\n`)}}}if(D&&(t(`
249
+ `),!await vO(`Proceed with ${y.intent}?`,!0))){t(`Aborted.
250
+ `);return}}let ne=process.env.MPPX_PRIVATE_KEY?.trim()||!gO(VO(e.options.account));if(yD(y)&&ne&&!x){try{await vI({challenge:y,challengeResponse:C,credentialContext:await qP(y,n?.config.extensions,E?.credentialContext),endpoint:a,fetch:s,fetchInput:u,init:c,info:t,methodOptions:i,options:{account:e.options.account,fail:e.options.fail,include:e.options.include,network:e.options.network,rpcUrl:e.options.rpcUrl,session:e.options.session,silent:e.options.silent,verbose:e.options.verbose},registry:o})}catch(e){return oI(e,`SESSION_REQUEST_FAILED`)}return}if(e.options.session!==`auto`)return e.error({code:`UNSUPPORTED_SESSION`,message:x&&yD(y)?`--session cannot override a configured session method. Configure its channelStore instead.`:`--session requires a tempo/session payment challenge.`,exitCode:2});let k=x&&yD(y)?void 0:await qP(y,n?.config.extensions,E?.credentialContext),A,j;if(x&&yD(y)){let e=C;A=await cT({methods:[x],polyfill:!1,async onChallenge(e,{createCredential:t}){let r=await qP(e,n?.config.extensions,E?.credentialContext);return tF(y,e),t(r)},fetch:async(t,n)=>{if(e){let t=e;return e=void 0,t}return s(t,n)}}).fetch(u,{...c,context:k})}else{if(E?.createCredential)j=await E.createCredential(C,k);else if(E)j=await cT({methods:E.methods,polyfill:!1,transport:aR(y)}).createCredential(C,k);else if(x)j=await cT({methods:[x],polyfill:!1,transport:aR(y)}).createCredential(C,k);else throw Error(`unreachable`);let n=S?sC:cS(y),r={...yw(c.headers),[n]:j},i=S?sR((lR(y)??f.url)||a):l;S&&cR(r,i.host),b?.prepareCredentialRequest?.({challenge:y,credential:j,headers:r});let o={...c,...S&&{redirect:`manual`},headers:r};e.options.verbose>=2&&cO(i.url,o,t),A=await s(i.url,o)}if(e.options.fail&&A.status>=400)return e.error({code:`HTTP_ERROR`,message:`HTTP error ${A.status}`,exitCode:22});if(A.status===402){let n=await A.text();t(`${X.bold(X.red(`Payment Rejected`))}\n`);try{let e=JSON.parse(n),r=[];for(let[t,n]of Object.entries(e))n!==void 0&&r.push([t,String(n)]);r.sort(([e],[t])=>e.localeCompare(t));let i=Math.max(...r.map(([e])=>e.length));for(let[e,n]of r)t(` ${X.dim(e.padEnd(i))} ${n}\n`)}catch{n&&t(` ${n}\n`)}return e.error({code:`PAYMENT_REJECTED`,message:`Payment rejected`,exitCode:75})}if(lO(A,d),!(j&&await b?.handleResponse?.({challenge:y,credential:j,response:A,fetchUrl:u,fetchInit:c,silent:e.options.silent,verbose:e.options.verbose,confirmEnabled:D,confirm:vO,tokenSymbol:w,tokenDecimals:T,explorerUrl:ee,shownKeys:te}))){let n=A.headers.get(q.paymentReceipt);if(n&&e.options.verbose>=1)try{let e=JSON.parse(O.toString(n));t(`\n${X.bold(X.green(`Payment Receipt`))}\n`);let r=[],i=e.channelId,a=e.reference,o=i&&a&&i===a,s=new Set([`acceptedCumulative`,`spent`]);for(let[t,n]of Object.entries(e)){if(n===void 0||te.has(t)||t===`reference`&&o)continue;let e=b?.formatReceiptField?.(t,n);e===void 0?s.has(t)&&typeof n==`string`?r.push([t,`${n} ${X.dim(`(${yO(BigInt(n),w,T)})`)}`]):(t===`reference`||t===`txHash`)&&typeof n==`string`&&ee?r.push([t,pO(`${ee}/tx/${n}`,n)]):r.push([t,String(n)]):r.push([t,e])}r.sort(([e],[t])=>e.localeCompare(t));let c=Math.max(...r.map(([e])=>e.length));for(let[e,n]of r)t(` ${X.dim(e.padEnd(c))} ${n}\n`);t(`
251
+ `)}catch{}await YL(A)}}catch(t){if(t instanceof I)throw t;let n=t instanceof Error?t.cause:void 0,r=n instanceof Error?n:void 0;if(r&&`code`in r){let t=r.code;return t===`ENOTFOUND`?e.error({code:`DNS_ERROR`,message:`Could not resolve host "${o}". Check the URL and try again.`,exitCode:6}):t===`ECONNREFUSED`?e.error({code:`CONNECTION_REFUSED`,message:`Connection refused by "${o}". Is the server running?`,retryable:!0,exitCode:7}):t===`ECONNRESET`?e.error({code:`CONNECTION_RESET`,message:`Connection to "${o}" was reset.`,retryable:!0,exitCode:56}):t===`ETIMEDOUT`?e.error({code:`CONNECTION_TIMEOUT`,message:`Connection to "${o}" timed out.`,retryable:!0,exitCode:28}):t===`CERT_HAS_EXPIRED`||t===`UNABLE_TO_VERIFY_LEAF_SIGNATURE`?e.error({code:`TLS_ERROR`,message:`TLS certificate error for "${o}". Use --insecure to skip verification.`,exitCode:60}):e.error({code:`REQUEST_FAILED`,message:`Request to "${o}" failed: ${r.message}`})}{let n=t instanceof Error?t.message:String(t);return e.error({code:`REQUEST_FAILED`,message:r?`Request failed: ${n} (Cause: ${r.message})`:`Request failed: ${n}`})}}}}),pR=ib(`account`,{description:`Manage accounts (create, default, delete, export, fund, list, view)`}).command(`create`,{description:`Create new account`,options:p.object({account:p.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),network:p.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),rpcUrl:p.string().optional().describe(`RPC endpoint (env: MPPX_RPC_URL)`)}),output:p.object({address:p.string(),name:p.string()}),alias:{account:`a`,rpcUrl:`r`},async run(e){let t=qL(e),n=e.options.account;if(!n){if((await HO().list()).length===0)n=`main`;else{if(t)return e.error({code:`ACCOUNT_REQUIRED`,message:`Account name is required in structured mode.`,exitCode:2});let r=await _O(`Account name`);if(!r)return;n=r}}let r=HO(n);for(;await r.get();){if(t)return e.error({code:`ACCOUNT_EXISTS`,message:`Account "${n}" already exists.`,exitCode:1});process.stderr.write(`${X.dim(`Account "${n}" already exists.`)}\n\n`);let i=await _O(`Enter different name`);if(!i)return;n=i,r=HO(n)}let i=he(),a=_e(i);await r.set(i),(await HO().list()).length===1&&BO().set(n);let o=ve.blockExplorers?.default?.url,s=o?pO(`${o}/address/${a.address}`,a.address):a.address,c=xO(e.options),l=bO(e.options.rpcUrl,{network:c});return SO({network:c,rpcUrl:l}).then(e=>ie({chain:e,transport:fe(l)})).then(e=>import(`viem/tempo`).then(({Actions:t})=>t.faucet.fund(e,{account:a}).catch(()=>{}))),JL(e,{address:a.address,name:n},()=>{console.log(`Account "${n}" saved to keychain.`),console.log(X.dim(`Address ${s}`)),console.log(X.dim(`Fund testnet tokens: mppx account fund --account ${n} --network testnet`))})}}).command(`default`,{description:`Set default account`,options:p.object({account:p.string().describe(`Account name`)}),output:p.object({name:p.string()}),alias:{account:`a`},async run(e){let t=e.options.account;return gO(t)?jP(t)?(BO().set(t),JL(e,{name:t},()=>{console.log(`Default account set to "${t}"`)})):e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found. Is Tempo wallet configured?`,exitCode:69}):await HO(t).get()?(BO().set(t),JL(e,{name:t},()=>{console.log(`Default account set to "${t}"`)})):e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found.`,exitCode:69})}}).command(`delete`,{description:`Delete account`,options:p.object({account:p.string().describe(`Account name`),yes:p.boolean().optional().describe(`DANGER!! Skip confirmation prompts`)}),output:p.object({defaultAccount:p.string().optional(),name:p.string()}),alias:{account:`a`},async run(e){let t=HO(e.options.account),n=await t.get();if(!n)return e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${e.options.account}" not found.`,exitCode:69});let r=_e(n),i=await DO(r.address,{includeTestnet:!1});if(!e.options.yes){if(qL(e))return e.error({code:`CONFIRMATION_REQUIRED`,message:`Pass --yes to delete an account in structured mode.`,exitCode:2});let t=ve.blockExplorers?.default?.url,n=t?pO(`${t}/address/${r.address}`,r.address):r.address;process.stderr.write(X.dim(`Delete account "${e.options.account}"\n`)),process.stderr.write(X.dim(` Address ${n}\n`));for(let e=0;e<i.length;e++)process.stderr.write(X.dim(` ${e===0?`Balance`:` `} ${i[e]}\n`));if(process.stderr.write(X.dim(`This action cannot be undone
252
252
 
253
- `)),!await oO(`Confirm delete?`)){console.log(`Canceled`);return}}await t.delete();let a=OO().get(),o;if(a===e.options.account){let e=await AO().list();e.length>0?(o=e[0],OO().set(o)):OO().clear()}return NL(e,{defaultAccount:o,name:e.options.account},()=>{o&&console.log(`Default account set to "${o}"`),console.log(`Account "${e.options.account}" deleted`)})}}).command(`fund`,{description:`Fund account with testnet tokens`,options:f.object({account:f.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),network:f.enum([`testnet`]).optional().describe(`Tempo network`),rpcUrl:f.string().optional().describe(`RPC endpoint (env: MPPX_RPC_URL)`)}),output:f.object({account:f.string(),chain:f.string(),transactions:f.array(f.string())}),alias:{account:`a`,rpcUrl:`r`},async run(e){let t=ML(e),n=kO(e.options.account),r=await AO(n).get();if(!r)return e.options.account?e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${n}" not found.`,exitCode:69}):e.error({code:`ACCOUNT_NOT_FOUND`,message:`No account found.`,exitCode:69});let i=me(r),a=lO(e.options),o=cO(e.options.rpcUrl,{network:a}),s=await uO({network:a,rpcUrl:o}),c=N({chain:s,transport:le(o)});t||console.log(`Funding "${n}" on ${dO(s)}`);try{let{Actions:r}=await import(`viem/tempo`),a=await r.faucet.fund(c,{account:i}),o=s.blockExplorers?.default?.url;if(!t)for(let e of a){let t=o?tO(`${o}/tx/${e}`,Q.gray(e)):e;console.log(` ${t}`)}let{waitForTransactionReceipt:l}=await import(`viem/actions`);return await Promise.all(a.map(e=>l(c,{hash:e}))),NL(e,{account:n,chain:dO(s),transactions:[...a]},()=>{console.log(`Funded successfully`)})}catch(n){let r=n instanceof Error?n.message:String(n);return t?e.error({code:`FUNDING_FAILED`,message:r,exitCode:1}):e.error({code:`FUNDING_FAILED`,message:`Funding failed: ${r}`,exitCode:1})}}}).command(`list`,{description:`List all accounts`,output:f.object({accounts:f.array(DL)}),async run(e){let t=OO().get(),n=(await AO().list()).sort(),r=[];for(let e of n){let t=await AO(e).get();t&&r.push({name:e,address:me(t).address})}let i=gP();for(let e=0;e<i.length;e++){let t=i[e],n=e===0?`tempo:default`:`tempo:${e}`;t.wallet_address&&r.push({name:n,address:t.wallet_address,source:`tempo wallet`})}if(r.length===0)return NL(e,{accounts:[]},()=>{console.log(`No accounts found.`)});let a=he.blockExplorers?.default?.url,o=Math.max(...r.map(e=>e.name.length+ +(e.name===t)));return NL(e,{accounts:r.map(e=>({...e,...e.name===t?{isDefault:!0}:void 0}))},()=>{for(let e of r){let n=e.name===t,r=n?`${e.name}${Q.dim(`*`)}`:e.name,i=e.name.length+ +!!n,s=a?tO(`${a}/address/${e.address}`,e.address):e.address,c=e.source?` ${Q.dim(`(${e.source})`)}`:``;console.log(`${r}${` `.repeat(o-i+2)}${Q.dim(s)}${c}`)}})}}).command(`export`,{description:`Export the private key for a local account`,options:f.object({account:f.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`)}),output:f.object({privateKey:f.string()}),alias:{account:`a`},async run(e){let t=kO(e.options.account);if(iO(t))return e.error({code:`UNSUPPORTED_ACCOUNT`,message:`Account "${t}" is managed by Tempo wallet and does not expose a private key via mppx.`,exitCode:2});let n=await AO(t).get();return n?NL(e,{privateKey:n},()=>{console.log(n)}):e.options.account?e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found.`,exitCode:69}):e.error({code:`ACCOUNT_NOT_FOUND`,message:`No account found.`,exitCode:69})}}).command(`view`,{description:`View account address`,options:f.object({account:f.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),network:f.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),rpcUrl:f.string().optional().describe(`RPC endpoint (env: MPPX_RPC_URL)`)}),output:OL,alias:{account:`a`,rpcUrl:`r`},async run(e){let t=kO(e.options.account);if(iO(t)){let n=_P(t);if(!n)return e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found. Is Tempo wallet configured?`,exitCode:69});let r=n.wallet_address,i=cO(e.options.rpcUrl,{network:e.options.network}),a=await uO({network:e.options.network,rpcUrl:i}),o=a.blockExplorers?.default?.url,s=o?tO(`${o}/address/${r}`,r):r,c=await hO(r,a&&i?{chain:a,rpcUrl:i}:void 0);return NL(e,{address:r,balances:c,name:t,type:`${n.wallet_type} (tempo wallet)`},()=>{console.log(`${Q.dim(`Address`)} ${s}`);for(let e=0;e<c.length;e++)console.log(`${Q.dim(e===0?`Balance`:` `)} ${c[e]}`);console.log(`${Q.dim(`Name`)} ${t}`),console.log(`${Q.dim(`Type`)} ${n.wallet_type} ${Q.dim(`(tempo wallet)`)}`)})}let n=await AO(t).get();if(!n)return e.options.account?e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found.`,exitCode:69}):e.error({code:`ACCOUNT_NOT_FOUND`,message:`No account found.`,exitCode:69});let r=me(n),i=cO(e.options.rpcUrl,{network:e.options.network}),a=await uO({network:e.options.network,rpcUrl:i}),o=a.blockExplorers?.default?.url,s=o?tO(`${o}/address/${r.address}`,r.address):r.address,c=await hO(r.address,a&&i?{chain:a,rpcUrl:i}:void 0);return NL(e,{address:r.address,balances:c,name:t},()=>{console.log(`${Q.dim(`Address`)} ${s}`);for(let e=0;e<c.length;e++)console.log(`${Q.dim(e===0?`Balance`:` `)} ${c[e]}`);console.log(`${Q.dim(`Name`)} ${t}`)})}}),$L=tb(`sign`,{description:`Sign a payment challenge and output the Authorization header`,usage:[{suffix:`--challenge <value> [options]`},{prefix:`echo <challenge> |`,suffix:`[options]`}],options:f.object({account:f.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),challenge:f.string().optional().describe(`WWW-Authenticate challenge value`),config:f.string().optional().describe(`Path to config file`),dryRun:f.boolean().optional().describe(`Validate and parse the challenge without signing`),autoSwap:f.boolean().optional().describe(`Auto-swap source tokens into payment currency`),methodOpt:f.array(f.string()).optional().describe(`Method-specific option (key=value, repeatable)`),network:f.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),payWith:f.string().optional().describe(`Source token for Tempo auto-swap`),rpcUrl:f.string().optional().describe(`RPC endpoint, defaults to public RPC for chain (env: MPPX_RPC_URL)`),slippage:f.number().optional().describe(`Tempo auto-swap max slippage percentage`)}),output:f.object({authorization:f.string()}),alias:{account:`a`,challenge:`C`,config:`c`,methodOpt:`M`,rpcUrl:`r`},async run(e){let t=e.options.challenge||(FL()?await new Promise((e,t)=>{let n=``;process.stdin.setEncoding(`utf-8`),process.stdin.on(`data`,e=>{n+=e}),process.stdin.on(`end`,()=>e(n.trim())),process.stdin.on(`error`,t)}):void 0);if(!t)return e.error({code:`NO_CHALLENGE`,message:`No challenge provided. Use --challenge or pipe via stdin.`,exitCode:2});let n;try{n=rS(t)}catch(t){return e.error({code:`INVALID_CHALLENGE`,message:`Failed to parse challenge: ${t instanceof Error?t.message:t}`,exitCode:2})}if(e.options.dryRun){process.stderr.write(`Challenge is valid.
254
- `);return}let r=await zP(e.options.config),i=FP(n,r?.config);if(!i){let t=n.map(e=>`${e.method}/${e.intent}`).join(`, `);return e.error({code:`UNSUPPORTED_METHOD`,message:`Unsupported payment method. Server offers: ${t}. Add it to mppx.config.ts using defineConfig().`,exitCode:2})}let{challenge:a,plugin:o,method:s}=i,c=nO(e.options.methodOpt),l=Kx(a),u=new Response(null,{status:402,headers:{[Y.wwwAuthenticate]:l}}),d;o&&(d=await o.setup({challenge:a,options:{account:e.options.account,autoSwap:e.options.autoSwap,network:e.options.network,payWith:e.options.payWith,rpcUrl:e.options.rpcUrl,slippage:e.options.slippage},methodOpts:c}));let f=await NP(a,r?.config.extensions,d?.credentialContext),p;if(d)p=d.createCredential?await d.createCredential(u,f):await iT({methods:d.methods,polyfill:!1}).createCredential(u,f);else if(s)p=await iT({methods:[s],polyfill:!1}).createCredential(u,f);else return e.error({code:`UNSUPPORTED_METHOD`,message:`Unsupported payment method: ${a.method}/${a.intent}. Add it to mppx.config.ts using defineConfig().`,exitCode:2});return NL(e,{authorization:p},()=>{console.log(p)})}}),eR=tb(`init`,{description:`Create an mppx.config.ts file in the current directory`,options:f.object({force:f.boolean().optional().describe(`Overwrite existing config file`)}),output:f.object({file:f.string()}),alias:{force:`f`},async run(t){let n=process.cwd(),r=`mppx.config${(()=>{if(e.existsSync(s.join(n,`tsconfig.json`)))return`.ts`;try{if(JSON.parse(e.readFileSync(s.join(n,`package.json`),`utf-8`)).type===`module`)return`.mjs`}catch{}return`.js`})()}`,i=s.join(n,r);return e.existsSync(i)&&!t.options.force?t.error({code:`CONFIG_EXISTS`,message:`${r} already exists. Use --force to overwrite.`,exitCode:1}):(e.writeFileSync(i,`import { defineConfig } from 'mppx/cli'
253
+ `)),!await vO(`Confirm delete?`)){console.log(`Canceled`);return}}await t.delete();let a=BO().get(),o;if(a===e.options.account){let e=await HO().list();e.length>0?(o=e[0],BO().set(o)):BO().clear()}return JL(e,{defaultAccount:o,name:e.options.account},()=>{o&&console.log(`Default account set to "${o}"`),console.log(`Account "${e.options.account}" deleted`)})}}).command(`fund`,{description:`Fund account with testnet tokens`,options:p.object({account:p.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),network:p.enum([`testnet`]).optional().describe(`Tempo network`),rpcUrl:p.string().optional().describe(`RPC endpoint (env: MPPX_RPC_URL)`)}),output:p.object({account:p.string(),chain:p.string(),transactions:p.array(p.string())}),alias:{account:`a`,rpcUrl:`r`},async run(e){let t=qL(e),n=VO(e.options.account),r=await HO(n).get();if(!r)return e.options.account?e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${n}" not found.`,exitCode:69}):e.error({code:`ACCOUNT_NOT_FOUND`,message:`No account found.`,exitCode:69});let i=_e(r),a=xO(e.options),o=bO(e.options.rpcUrl,{network:a}),s=await SO({network:a,rpcUrl:o}),c=ie({chain:s,transport:fe(o)});t||console.log(`Funding "${n}" on ${CO(s)}`);try{let{Actions:r}=await import(`viem/tempo`),a=await r.faucet.fund(c,{account:i}),o=s.blockExplorers?.default?.url;if(!t)for(let e of a){let t=o?pO(`${o}/tx/${e}`,X.gray(e)):e;console.log(` ${t}`)}let{waitForTransactionReceipt:l}=await import(`viem/actions`);return await Promise.all(a.map(e=>l(c,{hash:e}))),JL(e,{account:n,chain:CO(s),transactions:[...a]},()=>{console.log(`Funded successfully`)})}catch(n){let r=n instanceof Error?n.message:String(n);return t?e.error({code:`FUNDING_FAILED`,message:r,exitCode:1}):e.error({code:`FUNDING_FAILED`,message:`Funding failed: ${r}`,exitCode:1})}}}).command(`list`,{description:`List all accounts`,output:p.object({accounts:p.array(HL)}),async run(e){let t=BO().get(),n=(await HO().list()).sort(),r=[];for(let e of n){let t=await HO(e).get();t&&r.push({name:e,address:_e(t).address})}let i=AP();for(let e=0;e<i.length;e++){let t=i[e],n=e===0?`tempo:default`:`tempo:${e}`;t.wallet_address&&r.push({name:n,address:t.wallet_address,source:`tempo wallet`})}if(r.length===0)return JL(e,{accounts:[]},()=>{console.log(`No accounts found.`)});let a=ve.blockExplorers?.default?.url,o=Math.max(...r.map(e=>e.name.length+ +(e.name===t)));return JL(e,{accounts:r.map(e=>({...e,...e.name===t?{isDefault:!0}:void 0}))},()=>{for(let e of r){let n=e.name===t,r=n?`${e.name}${X.dim(`*`)}`:e.name,i=e.name.length+ +!!n,s=a?pO(`${a}/address/${e.address}`,e.address):e.address,c=e.source?` ${X.dim(`(${e.source})`)}`:``;console.log(`${r}${` `.repeat(o-i+2)}${X.dim(s)}${c}`)}})}}).command(`export`,{description:`Export the private key for a local account`,options:p.object({account:p.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`)}),output:p.object({privateKey:p.string()}),alias:{account:`a`},async run(e){let t=VO(e.options.account);if(gO(t))return e.error({code:`UNSUPPORTED_ACCOUNT`,message:`Account "${t}" is managed by Tempo wallet and does not expose a private key via mppx.`,exitCode:2});let n=await HO(t).get();return n?JL(e,{privateKey:n},()=>{console.log(n)}):e.options.account?e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found.`,exitCode:69}):e.error({code:`ACCOUNT_NOT_FOUND`,message:`No account found.`,exitCode:69})}}).command(`view`,{description:`View account address`,options:p.object({account:p.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),network:p.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),rpcUrl:p.string().optional().describe(`RPC endpoint (env: MPPX_RPC_URL)`)}),output:UL,alias:{account:`a`,rpcUrl:`r`},async run(e){let t=VO(e.options.account);if(gO(t)){let n=jP(t);if(!n)return e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found. Is Tempo wallet configured?`,exitCode:69});let r=n.wallet_address,i=bO(e.options.rpcUrl,{network:e.options.network}),a=await SO({network:e.options.network,rpcUrl:i}),o=a.blockExplorers?.default?.url,s=o?pO(`${o}/address/${r}`,r):r,c=await DO(r,a&&i?{chain:a,rpcUrl:i}:void 0);return JL(e,{address:r,balances:c,name:t,type:`${n.wallet_type} (tempo wallet)`},()=>{console.log(`${X.dim(`Address`)} ${s}`);for(let e=0;e<c.length;e++)console.log(`${X.dim(e===0?`Balance`:` `)} ${c[e]}`);console.log(`${X.dim(`Name`)} ${t}`),console.log(`${X.dim(`Type`)} ${n.wallet_type} ${X.dim(`(tempo wallet)`)}`)})}let n=await HO(t).get();if(!n)return e.options.account?e.error({code:`ACCOUNT_NOT_FOUND`,message:`Account "${t}" not found.`,exitCode:69}):e.error({code:`ACCOUNT_NOT_FOUND`,message:`No account found.`,exitCode:69});let r=_e(n),i=bO(e.options.rpcUrl,{network:e.options.network}),a=await SO({network:e.options.network,rpcUrl:i}),o=a.blockExplorers?.default?.url,s=o?pO(`${o}/address/${r.address}`,r.address):r.address,c=await DO(r.address,a&&i?{chain:a,rpcUrl:i}:void 0);return JL(e,{address:r.address,balances:c,name:t},()=>{console.log(`${X.dim(`Address`)} ${s}`);for(let e=0;e<c.length;e++)console.log(`${X.dim(e===0?`Balance`:` `)} ${c[e]}`);console.log(`${X.dim(`Name`)} ${t}`)})}}),mR=ib(`sign`,{description:`Sign a payment challenge and output the Authorization header`,usage:[{suffix:`--challenge <value> [options]`},{prefix:`echo <challenge> |`,suffix:`[options]`}],options:p.object({account:p.string().optional().describe(`Account name (env: MPPX_ACCOUNT)`),challenge:p.string().optional().describe(`WWW-Authenticate challenge value`),config:p.string().optional().describe(`Path to config file`),dryRun:p.boolean().optional().describe(`Validate and parse the challenge without signing`),autoSwap:p.boolean().optional().describe(`Auto-swap source tokens into payment currency`),methodOpt:p.array(p.string()).optional().describe(`Method-specific option (key=value, repeatable)`),network:p.enum([`mainnet`,`testnet`]).optional().describe(`Tempo network`),payWith:p.string().optional().describe(`Source token for Tempo auto-swap`),rpcUrl:p.string().optional().describe(`RPC endpoint, defaults to public RPC for chain (env: MPPX_RPC_URL)`),slippage:p.number().optional().describe(`Tempo auto-swap max slippage percentage`)}),output:p.object({authorization:p.string()}),alias:{account:`a`,challenge:`C`,config:`c`,methodOpt:`M`,rpcUrl:`r`},async run(e){let t=e.options.challenge||(XL()?await new Promise((e,t)=>{let n=``;process.stdin.setEncoding(`utf-8`),process.stdin.on(`data`,e=>{n+=e}),process.stdin.on(`end`,()=>e(n.trim())),process.stdin.on(`error`,t)}):void 0);if(!t)return e.error({code:`NO_CHALLENGE`,message:`No challenge provided. Use --challenge or pipe via stdin.`,exitCode:2});let n;try{n=oS(t)}catch(t){return e.error({code:`INVALID_CHALLENGE`,message:`Failed to parse challenge: ${t instanceof Error?t.message:t}`,exitCode:2})}if(e.options.dryRun){process.stderr.write(`Challenge is valid.
254
+ `);return}let r=await $P(e.options.config),i=YP(n,r?.config);if(!i){let t=n.map(e=>`${e.method}/${e.intent}`).join(`, `);return e.error({code:`UNSUPPORTED_METHOD`,message:`Unsupported payment method. Server offers: ${t}. Add it to mppx.config.ts using defineConfig().`,exitCode:2})}let{challenge:a,plugin:o,method:s}=i,c=mO(e.options.methodOpt),l=Yx(a),u=new Response(null,{status:402,headers:{[q.wwwAuthenticate]:l}}),d;o&&(d=await o.setup({challenge:a,options:{account:e.options.account,autoSwap:e.options.autoSwap,network:e.options.network,payWith:e.options.payWith,rpcUrl:e.options.rpcUrl,slippage:e.options.slippage},methodOpts:c}));let f=await qP(a,r?.config.extensions,d?.credentialContext),p;if(d)p=d.createCredential?await d.createCredential(u,f):await cT({methods:d.methods,polyfill:!1}).createCredential(u,f);else if(s)p=await cT({methods:[s],polyfill:!1}).createCredential(u,f);else return e.error({code:`UNSUPPORTED_METHOD`,message:`Unsupported payment method: ${a.method}/${a.intent}. Add it to mppx.config.ts using defineConfig().`,exitCode:2});return JL(e,{authorization:p},()=>{console.log(p)})}}),hR=ib(`init`,{description:`Create an mppx.config.ts file in the current directory`,options:p.object({force:p.boolean().optional().describe(`Overwrite existing config file`)}),output:p.object({file:p.string()}),alias:{force:`f`},async run(e){let n=process.cwd(),r=`mppx.config${(()=>{if(t.existsSync(c.join(n,`tsconfig.json`)))return`.ts`;try{if(JSON.parse(t.readFileSync(c.join(n,`package.json`),`utf-8`)).type===`module`)return`.mjs`}catch{}return`.js`})()}`,i=c.join(n,r);return t.existsSync(i)&&!e.options.force?e.error({code:`CONFIG_EXISTS`,message:`${r} already exists. Use --force to overwrite.`,exitCode:1}):(t.writeFileSync(i,`import { defineConfig } from 'mppx/cli'
255
255
 
256
256
  export default defineConfig({
257
257
  methods: [],
258
258
  plugins: [],
259
259
  })
260
- `),NL(t,{file:i},()=>{console.log(`Created ${r}`)}))}}),tR=tb(`services`,{description:`Browse the MPP services registry`}).command(`list`,{description:`List registered MPP services`,options:f.object({query:f.string().optional().describe(`Filter by id, name, category, tag, or description`)}),output:f.object({services:f.array(AL)}),alias:{query:`q`},async run(e){let t=e.options.query?.toLowerCase(),n=await YL(),r=(t?n.filter(e=>[e.id,e.name,e.description,...Array.isArray(e.categories)?e.categories:[],...Array.isArray(e.tags)?e.tags:[]].filter(e=>typeof e==`string`).some(e=>e.toLowerCase().includes(t))):n).map(RL).sort((e,t)=>e.id.localeCompare(t.id));return NL(e,{services:r},()=>{if(r.length===0){console.log(`No services found.`);return}let e=Math.max(...r.map(e=>e.id.length)),t=Math.max(...r.map(e=>String(e.paidEndpoints).length));for(let n of r){let r=n.name&&n.name!==n.id?` ${n.name}`:``,i=n.url?` ${Q.dim(n.url)}`:``;console.log(`${n.id.padEnd(e)} ${String(n.paidEndpoints).padStart(t)} paid${r}${i}`)}})}}).command(`show`,{description:`Show one registered MPP service`,args:f.object({service:f.string().describe(`Service id or name`)}),output:f.object({service:f.record(f.string(),f.unknown())}),async run(e){let t=XL(await YL(),e.args.service);if(!t)return e.error({code:`SERVICE_NOT_FOUND`,message:`Service not found: ${e.args.service}`,exitCode:1});let n=RL(t),r=LL(t);return NL(e,{service:t},()=>{console.log(`${n.name??n.id} ${Q.dim(`(${n.id})`)}`),n.description&&console.log(n.description),n.url&&console.log(`${Q.dim(`URL`)} ${tO(n.url,n.url)}`),n.status&&console.log(`${Q.dim(`Status`)} ${n.status}`),console.log(`${Q.dim(`Endpoints`)} ${r.length} (${n.paidEndpoints} paid)`);let e=t.docs,i=e&&IL(e.homepage);i&&console.log(`${Q.dim(`Docs`)} ${tO(i,i)}`)})}}).command(`endpoints`,{description:`List endpoints for a registered MPP service`,args:f.object({service:f.string().describe(`Service id or name`)}),output:f.object({endpoints:f.array(jL),service:AL}),async run(e){let t=XL(await YL(),e.args.service);if(!t)return e.error({code:`SERVICE_NOT_FOUND`,message:`Service not found: ${e.args.service}`,exitCode:1});let n=RL(t),r=LL(t).map(zL);return NL(e,{endpoints:r,service:n},()=>{if(r.length===0){console.log(`No endpoints found for ${n.id}.`);return}let e=Math.max(...r.map(e=>e.method.length)),t=Math.max(...r.map(e=>e.path.length));for(let n of r){let r=BL(n.payment),i=n.description?` ${Q.dim(n.description)}`:``;console.log(`${n.method.padEnd(e)} ${n.path.padEnd(t)} ${r}${i}`)}})}}),nR=tb(`discover`,{description:`Discovery tooling`}).command(`generate`,{description:`Generate a static OpenAPI discovery document from a module`,args:f.object({module:f.string().describe(`Path to a module that default-exports a discovery config`)}),options:f.object({output:f.string().optional().describe(`Write output to a file instead of stdout`)}),output:f.record(f.string(),f.unknown()),alias:{output:`o`},async run(t){let n=s.resolve(t.args.module);if(!e.existsSync(n))return t.error({code:`MODULE_NOT_FOUND`,message:`Module not found: ${n}`,exitCode:1});let r;try{r=await import(n)}catch(e){return t.error({code:`MODULE_IMPORT_FAILED`,message:`Failed to import module: ${e.message}`,exitCode:1})}let i=r.default??r,a;if(typeof i.openapi==`string`)a=i;else{let{generate:e}=await Promise.resolve().then(()=>(TL(),yL)),n=i.mppx;if(!n)return t.error({code:`INVALID_MODULE`,message:"Module must default-export an OpenAPI document (with `openapi` key) or an object with `mppx` (server instance) and `routes`.",exitCode:1});a=e(n,i)}let o=JSON.stringify(a,null,2);if(t.options.output){let n=s.resolve(t.options.output);return e.writeFileSync(n,`${o}\n`),process.stderr.write(`Wrote ${n}\n`),NL(t,a,()=>{})}return NL(t,a,()=>{console.log(o)})}}).command(`validate`,{description:`Validate an OpenAPI discovery document from a file or URL`,args:f.object({input:f.string().describe(`Path or URL to a discovery document`)}),output:f.object({errorCount:f.number(),issues:f.array(kL),valid:f.boolean(),warningCount:f.number()}),async run(t){let n=t.args.input,r;if(/^https?:\/\//.test(n)){let e=new AbortController,i=setTimeout(()=>e.abort(),3e4),a;try{a=await globalThis.fetch(n,{signal:e.signal})}catch(e){clearTimeout(i);let n=e instanceof DOMException&&e.name===`AbortError`?`Request timed out after 30s`:e.message;return t.error({code:`DISCOVERY_FETCH_FAILED`,message:`Failed to fetch discovery document: ${n}`,exitCode:1})}if(clearTimeout(i),!a.ok)return t.error({code:`DISCOVERY_FETCH_FAILED`,message:`Failed to fetch discovery document: HTTP ${a.status}`,exitCode:1});let o=10485760,s=a.headers.get(`content-length`);if(s&&Number(s)>o||(r=await a.text(),r.length>o))return t.error({code:`DISCOVERY_TOO_LARGE`,message:`Discovery document exceeds 10 MB limit`,exitCode:1})}else{let i=s.resolve(n);if(!e.existsSync(i))return t.error({code:`DISCOVERY_NOT_FOUND`,message:`Discovery document not found: ${i}`,exitCode:1});r=e.readFileSync(i,`utf-8`)}let i;try{i=JSON.parse(r)}catch(e){return t.error({code:`DISCOVERY_INVALID_JSON`,message:`Invalid discovery JSON: ${e.message}`,exitCode:1})}let a=kT(i);if(!ML(t))for(let e of a)console.log(`[${e.severity}] ${e.path}: ${e.message}`);let o=a.filter(e=>e.severity===`error`).length,c=a.filter(e=>e.severity===`warning`).length;return o>0?t.error({code:`DISCOVERY_INVALID`,message:`Discovery document has ${o} error(s) and ${c} warning(s).`,exitCode:1}):NL(t,{errorCount:o,issues:a,valid:!0,warningCount:c},()=>{console.log(c>0?`Discovery document is valid with ${c} warning(s).`:`Discovery document is valid.`)})}});ZL.command(QL),ZL.command(nR),ZL.command(eR),ZL.command(tR),ZL.command(JF),ZL.command($L),ZL.command(fL);export{ZL as default};
260
+ `),JL(e,{file:i},()=>{console.log(`Created ${r}`)}))}}),gR=ib(`services`,{description:`Browse the MPP services registry`}).command(`list`,{description:`List registered MPP services`,options:p.object({query:p.string().optional().describe(`Filter by id, name, category, tag, or description`)}),output:p.object({services:p.array(GL)}),alias:{query:`q`},async run(e){let t=e.options.query?.toLowerCase(),n=await uR(),r=(t?n.filter(e=>[e.id,e.name,e.description,...Array.isArray(e.categories)?e.categories:[],...Array.isArray(e.tags)?e.tags:[]].filter(e=>typeof e==`string`).some(e=>e.toLowerCase().includes(t))):n).map($L).sort((e,t)=>e.id.localeCompare(t.id));return JL(e,{services:r},()=>{if(r.length===0){console.log(`No services found.`);return}let e=Math.max(...r.map(e=>e.id.length)),t=Math.max(...r.map(e=>String(e.paidEndpoints).length));for(let n of r){let r=n.name&&n.name!==n.id?` ${n.name}`:``,i=n.url?` ${X.dim(n.url)}`:``;console.log(`${n.id.padEnd(e)} ${String(n.paidEndpoints).padStart(t)} paid${r}${i}`)}})}}).command(`show`,{description:`Show one registered MPP service`,args:p.object({service:p.string().describe(`Service id or name`)}),output:p.object({service:p.record(p.string(),p.unknown())}),async run(e){let t=dR(await uR(),e.args.service);if(!t)return e.error({code:`SERVICE_NOT_FOUND`,message:`Service not found: ${e.args.service}`,exitCode:1});let n=$L(t),r=QL(t);return JL(e,{service:t},()=>{console.log(`${n.name??n.id} ${X.dim(`(${n.id})`)}`),n.description&&console.log(n.description),n.url&&console.log(`${X.dim(`URL`)} ${pO(n.url,n.url)}`),n.status&&console.log(`${X.dim(`Status`)} ${n.status}`),console.log(`${X.dim(`Endpoints`)} ${r.length} (${n.paidEndpoints} paid)`);let e=t.docs,i=e&&ZL(e.homepage);i&&console.log(`${X.dim(`Docs`)} ${pO(i,i)}`)})}}).command(`endpoints`,{description:`List endpoints for a registered MPP service`,args:p.object({service:p.string().describe(`Service id or name`)}),output:p.object({endpoints:p.array(KL),service:GL}),async run(e){let t=dR(await uR(),e.args.service);if(!t)return e.error({code:`SERVICE_NOT_FOUND`,message:`Service not found: ${e.args.service}`,exitCode:1});let n=$L(t),r=QL(t).map(eR);return JL(e,{endpoints:r,service:n},()=>{if(r.length===0){console.log(`No endpoints found for ${n.id}.`);return}let e=Math.max(...r.map(e=>e.method.length)),t=Math.max(...r.map(e=>e.path.length));for(let n of r){let r=tR(n.payment),i=n.description?` ${X.dim(n.description)}`:``;console.log(`${n.method.padEnd(e)} ${n.path.padEnd(t)} ${r}${i}`)}})}}),_R=ib(`discover`,{description:`Discovery tooling`}).command(`generate`,{description:`Generate a static OpenAPI discovery document from a module`,args:p.object({module:p.string().describe(`Path to a module that default-exports a discovery config`)}),options:p.object({output:p.string().optional().describe(`Write output to a file instead of stdout`)}),output:p.record(p.string(),p.unknown()),alias:{output:`o`},async run(e){let n=c.resolve(e.args.module);if(!t.existsSync(n))return e.error({code:`MODULE_NOT_FOUND`,message:`Module not found: ${n}`,exitCode:1});let r;try{r=await import(n)}catch(t){return e.error({code:`MODULE_IMPORT_FAILED`,message:`Failed to import module: ${t.message}`,exitCode:1})}let i=r.default??r,a;if(typeof i.openapi==`string`)a=i;else{let{generate:t}=await Promise.resolve().then(()=>(BL(),PL)),n=i.mppx;if(!n)return e.error({code:`INVALID_MODULE`,message:"Module must default-export an OpenAPI document (with `openapi` key) or an object with `mppx` (server instance) and `routes`.",exitCode:1});a=t(n,i)}let o=JSON.stringify(a,null,2);if(e.options.output){let n=c.resolve(e.options.output);return t.writeFileSync(n,`${o}\n`),process.stderr.write(`Wrote ${n}\n`),JL(e,a,()=>{})}return JL(e,a,()=>{console.log(o)})}}).command(`validate`,{description:`Validate an OpenAPI discovery document from a file or URL`,args:p.object({input:p.string().describe(`Path or URL to a discovery document`)}),output:p.object({errorCount:p.number(),issues:p.array(WL),valid:p.boolean(),warningCount:p.number()}),async run(e){let n=e.args.input,r;if(/^https?:\/\//.test(n)){let t=new AbortController,i=setTimeout(()=>t.abort(),3e4),a;try{a=await globalThis.fetch(n,{signal:t.signal})}catch(t){clearTimeout(i);let n=t instanceof DOMException&&t.name===`AbortError`?`Request timed out after 30s`:t.message;return e.error({code:`DISCOVERY_FETCH_FAILED`,message:`Failed to fetch discovery document: ${n}`,exitCode:1})}if(clearTimeout(i),!a.ok)return e.error({code:`DISCOVERY_FETCH_FAILED`,message:`Failed to fetch discovery document: HTTP ${a.status}`,exitCode:1});let o=10485760,s=a.headers.get(`content-length`);if(s&&Number(s)>o||(r=await a.text(),r.length>o))return e.error({code:`DISCOVERY_TOO_LARGE`,message:`Discovery document exceeds 10 MB limit`,exitCode:1})}else{let i=c.resolve(n);if(!t.existsSync(i))return e.error({code:`DISCOVERY_NOT_FOUND`,message:`Discovery document not found: ${i}`,exitCode:1});r=t.readFileSync(i,`utf-8`)}let i;try{i=JSON.parse(r)}catch(t){return e.error({code:`DISCOVERY_INVALID_JSON`,message:`Invalid discovery JSON: ${t.message}`,exitCode:1})}let a=VT(i);if(!qL(e))for(let e of a)console.log(`[${e.severity}] ${e.path}: ${e.message}`);let o=a.filter(e=>e.severity===`error`).length,s=a.filter(e=>e.severity===`warning`).length;return o>0?e.error({code:`DISCOVERY_INVALID`,message:`Discovery document has ${o} error(s) and ${s} warning(s).`,exitCode:1}):JL(e,{errorCount:o,issues:a,valid:!0,warningCount:s},()=>{console.log(s>0?`Discovery document is valid with ${s} warning(s).`:`Discovery document is valid.`)})}});fR.command(pR),fR.command(_R),fR.command(hR),fR.command(gR),fR.command(lI),fR.command(mR),fR.command(DL);export{fR as default};