@kaptures/cli 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import{createRequire as e}from"node:module";import{formatWithOptions as t,parseA
3
3
  `)}function Ie(e){return typeof e==`function`?e():e}var Le=class extends Error{code;constructor(e,t){super(e),this.name=`CLIError`,this.code=t}};function Re(e=[],t={}){let r=new Set(t.boolean||[]),i=new Set(t.string||[]),a=t.alias||{},o=t.default||{},s=new Map,c=new Map;for(let[e,t]of Object.entries(a)){let n=t;for(let t of n)s.set(e,t),c.has(t)||c.set(t,[]),c.get(t).push(e),s.set(t,e),c.has(e)||c.set(e,[]),c.get(e).push(t)}let l={};function u(e){if(r.has(e))return`boolean`;let t=c.get(e)||[];for(let e of t)if(r.has(e))return`boolean`;return`string`}let d=new Set([...r,...i,...Object.keys(a),...Object.values(a).flat(),...Object.keys(o)]);for(let e of d)l[e]||(l[e]={type:u(e),default:o[e]});for(let[e,t]of s.entries())e.length===1&&l[t]&&!l[t].short&&(l[t].short=e);let f=[],p={};for(let t=0;t<e.length;t++){let n=e[t];if(n===`--`){f.push(...e.slice(t));break}if(n.startsWith(`--no-`)){let e=n.slice(5);p[e]=!0;continue}f.push(n)}let m;try{m=n({args:f,options:Object.keys(l).length>0?l:void 0,allowPositionals:!0,strict:!1})}catch{m={values:{},positionals:f}}let h={_:[]};h._=m.positionals;for(let[e,t]of Object.entries(m.values))h[e]=t;for(let[e]of Object.entries(p)){h[e]=!1;let t=s.get(e);t&&(h[t]=!1);let n=c.get(e);if(n)for(let e of n)h[e]=!1}for(let[e,t]of s.entries())h[e]!==void 0&&h[t]===void 0&&(h[t]=h[e]),h[t]!==void 0&&h[e]===void 0&&(h[e]=h[t]);return h}const ze=(()=>{let e=globalThis.process?.env??{};return e.NO_COLOR===`1`||e.TERM===`dumb`||e.TEST||e.CI})(),Be=(e,t=39)=>n=>ze?n:`\u001B[${e}m${n}\u001B[${t}m`,Ve=Be(1,22),He=Be(36),Ue=Be(90),We=Be(4,24);function Ge(e,t){let n={boolean:[],string:[],alias:{},default:{}},r=Ke(t);for(let e of r){if(e.type===`positional`)continue;e.type===`string`||e.type===`enum`?n.string.push(e.name):e.type===`boolean`&&n.boolean.push(e.name),e.default!==void 0&&(n.default[e.name]=e.default),e.alias&&(n.alias[e.name]=e.alias);let t=Me(e.name),r=Ne(e.name);if(t!==e.name||r!==e.name){let i=Pe(n.alias[e.name]||[]);t!==e.name&&!i.includes(t)&&i.push(t),r!==e.name&&!i.includes(r)&&i.push(r),i.length>0&&(n.alias[e.name]=i)}}let i=Re(e,n),[...a]=i._,o=new Proxy(i,{get(e,t){return e[t]??e[Me(t)]??e[Ne(t)]}});for(let[,e]of r.entries())if(e.type===`positional`){let t=a.shift();if(t!==void 0)o[e.name]=t;else if(e.default===void 0&&e.required!==!1)throw new Le(`Missing required positional argument: ${e.name.toUpperCase()}`,`EARG`);else o[e.name]=e.default}else if(e.type===`enum`){let t=o[e.name],n=e.options||[];if(t!==void 0&&n.length>0&&!n.includes(t))throw new Le(`Invalid value for argument: ${He(`--${e.name}`)} (${He(t)}). Expected one of: ${n.map(e=>He(e)).join(`, `)}.`,`EARG`)}else if(e.required&&o[e.name]===void 0)throw new Le(`Missing required argument: --${e.name}`,`EARG`);return o}function Ke(e){let t=[];for(let[n,r]of Object.entries(e||{}))t.push({...r,name:n,alias:Pe(r.alias)});return t}function T(e){return e}async function qe(e,t){let n=await Ie(e.args||{}),r=Ge(t.rawArgs,n),i={rawArgs:t.rawArgs,args:r,data:t.data,cmd:e};typeof e.setup==`function`&&await e.setup(i);let a;try{let n=await Ie(e.subCommands);if(n&&Object.keys(n).length>0){let r=t.rawArgs.findIndex(e=>!e.startsWith(`-`)),i=t.rawArgs[r];if(i){if(!n[i])throw new Le(`Unknown command ${He(i)}`,`E_UNKNOWN_COMMAND`);let e=await Ie(n[i]);e&&await qe(e,{rawArgs:t.rawArgs.slice(r+1)})}else if(!e.run)throw new Le(`No command specified.`,`E_NO_COMMAND`)}typeof e.run==`function`&&(a=await e.run(i))}finally{typeof e.cleanup==`function`&&await e.cleanup(i)}return{result:a}}async function Je(e,t,n){let r=await Ie(e.subCommands);if(r&&Object.keys(r).length>0){let n=t.findIndex(e=>!e.startsWith(`-`)),i=t[n],a=await Ie(r[i]);if(a)return Je(a,t.slice(n+1),e)}return[e,n]}async function Ye(e,t){try{console.log(await Ze(e,t)+`
4
4
  `)}catch(e){console.error(e)}}const Xe=/^no[-A-Z]/;async function Ze(e,t){let n=await Ie(e.meta||{}),r=Ke(await Ie(e.args||{})),i=await Ie(t?.meta||{}),a=`${i.name?`${i.name} `:``}`+(n.name||process.argv[1]),o=[],s=[],c=[],l=[];for(let e of r)if(e.type===`positional`){let t=e.name.toUpperCase(),n=e.required!==!1&&e.default===void 0,r=e.default?`="${e.default}"`:``;s.push([He(t+r),e.description||``,e.valueHint?`<${e.valueHint}>`:``]),l.push(n?`<${t}>`:`[${t}]`)}else{let t=e.required===!0&&e.default===void 0,n=[...(e.alias||[]).map(e=>`-${e}`),`--${e.name}`].join(`, `)+(e.type===`string`&&(e.valueHint||e.default)?`=${e.valueHint?`<${e.valueHint}>`:`"${e.default||``}"`}`:``)+(e.type===`enum`&&e.options?`=<${e.options.join(`|`)}>`:``);if(o.push([He(n+(t?` (required)`:``)),e.description||``]),e.type===`boolean`&&(e.default===!0||e.negativeDescription)&&!Xe.test(e.name)){let n=[...(e.alias||[]).map(e=>`--no-${e}`),`--no-${e.name}`].join(`, `);o.push([He(n+(t?` (required)`:``)),e.negativeDescription||``])}t&&l.push(n)}if(e.subCommands){let t=[],n=await Ie(e.subCommands);for(let[e,r]of Object.entries(n)){let n=await Ie((await Ie(r))?.meta);n?.hidden||(c.push([He(e),n?.description||``]),t.push(e))}l.push(t.join(`|`))}let u=[],d=n.version||i.version;u.push(Ue(`${n.description} (${a+(d?` v${d}`:``)})`),``);let f=o.length>0||s.length>0;return u.push(`${We(Ve(`USAGE`))} ${He(`${a}${f?` [OPTIONS]`:``} ${l.join(` `)}`)}`,``),s.length>0&&(u.push(We(Ve(`ARGUMENTS`)),``),u.push(Fe(s,` `)),u.push(``)),o.length>0&&(u.push(We(Ve(`OPTIONS`)),``),u.push(Fe(o,` `)),u.push(``)),c.length>0&&(u.push(We(Ve(`COMMANDS`)),``),u.push(Fe(c,` `)),u.push(``,`Use ${He(`${a} <command> --help`)} for more information about a command.`)),u.filter(e=>typeof e==`string`).join(`
5
5
  `)}async function Qe(e,t={}){let n=t.rawArgs||process.argv.slice(2),r=t.showUsage||Ye;try{if(n.includes(`--help`)||n.includes(`-h`))await r(...await Je(e,n)),process.exit(0);else if(n.length===1&&n[0]===`--version`){let t=typeof e.meta==`function`?await e.meta():await e.meta;if(!t?.version)throw new Le(`No version specified`,`E_NO_VERSION`);console.log(t.version)}else await qe(e,{rawArgs:n})}catch(t){t instanceof Le?(await r(...await Je(e,n)),console.error(t.message)):console.error(t,`
6
- `),process.exit(1)}}var $e=`0.0.5`;const et=e(import.meta.url);async function tt(e=!1){let t=et.resolve(`agent-browser/package.json`),n=[f(a(t),`bin`,`agent-browser.js`),`install`];e&&n.push(`--with-deps`);let i=await new Promise((e,t)=>{let i=r(process.execPath,n,{stdio:`inherit`});i.once(`error`,t),i.once(`exit`,(n,r)=>{r?t(Error(`agent-browser install stopped by ${r}`)):e(n??1)})});if(i!==0)throw Error(`agent-browser install exited with code ${i}`)}const nt=T({meta:{name:`browser`,description:`Manage the Kapture browser runtime`},subCommands:{install:T({meta:{name:`install`,description:`Install the Chrome runtime used by agent-browser`},args:{"with-deps":{type:`boolean`,default:!1,description:`Also install Linux system dependencies`}},async run({args:e}){await tt(e[`with-deps`])}})}});function rt(e,t,n,r,i,a={}){let{threshold:o=.1,alpha:s=.1,aaColor:c=[255,255,0],diffColor:l=[255,0,0],includeAA:u,diffColorAlt:d,diffMask:f}=a;if(!it(e)||!it(t)||n&&!it(n))throw Error(`Image data: Uint8Array, Uint8ClampedArray or Buffer expected.`);if(e.length!==t.length||n&&n.length!==e.length)throw Error(`Image sizes do not match.`);if(e.length!==r*i*4)throw Error(`Image data size does not match width/height.`);let p=r*i,m=new Uint32Array(e.buffer,e.byteOffset,p),h=new Uint32Array(t.buffer,t.byteOffset,p),g=!0;for(let e=0;e<p;e++)if(m[e]!==h[e]){g=!1;break}if(g){if(n&&!f)for(let t=0;t<p;t++)lt(e,4*t,s,n);return 0}let _=35215*o*o,[ee,v,y]=c,[te,b,x]=l,[ne,re,ie]=d||l,ae=0;for(let a=0;a<i;a++)for(let o=0;o<r;o++){let c=a*r+o,l=c*4,d=m[c]===h[c]?0:st(e,t,l,l,!1);if(Math.abs(d)>_){let s=at(e,o,a,r,i,m,h)||at(t,o,a,r,i,h,m);!u&&s?n&&!f&&ct(n,l,ee,v,y):(n&&(d<0?ct(n,l,ne,re,ie):ct(n,l,te,b,x)),ae++)}else n&&!f&&lt(e,l,s,n)}return ae}function it(e){return ArrayBuffer.isView(e)&&e.BYTES_PER_ELEMENT===1}function at(e,t,n,r,i,a,o){let s=Math.max(t-1,0),c=Math.max(n-1,0),l=Math.min(t+1,r-1),u=Math.min(n+1,i-1),d=n*r+t,f=+(t===s||t===l||n===c||n===u),p=0,m=0,h=0,g=0,_=0,ee=0;for(let i=s;i<=l;i++)for(let a=c;a<=u;a++){if(i===t&&a===n)continue;let o=st(e,e,d*4,(a*r+i)*4,!0);if(o===0){if(f++,f>2)return!1}else o<p?(p=o,h=i,g=a):o>m&&(m=o,_=i,ee=a)}return p===0||m===0?!1:ot(a,h,g,r,i)&&ot(o,h,g,r,i)||ot(a,_,ee,r,i)&&ot(o,_,ee,r,i)}function ot(e,t,n,r,i){let a=Math.max(t-1,0),o=Math.max(n-1,0),s=Math.min(t+1,r-1),c=Math.min(n+1,i-1),l=e[n*r+t],u=+(t===a||t===s||n===o||n===c);for(let i=a;i<=s;i++)for(let a=o;a<=c;a++)if((i!==t||a!==n)&&(u+=+(l===e[a*r+i]),u>2))return!0;return!1}function st(e,t,n,r,i){let a=e[n],o=e[n+1],s=e[n+2],c=e[n+3],l=t[r],u=t[r+1],d=t[r+2],f=t[r+3],p=a-l,m=o-u,h=s-d,g=c-f;if(!p&&!m&&!h&&!g)return 0;if(c<255||f<255){let e=48+n%2*159,t=48+159*((n/1.618033988749895|0)%2),r=48+159*((n/2.618033988749895|0)%2);p=(a*c-l*f-e*g)/255,m=(o*c-u*f-t*g)/255,h=(s*c-d*f-r*g)/255}let _=p*.29889531+m*.58662247+h*.11448223;if(i)return _;let ee=p*.59597799-m*.2741761-h*.32180189,v=p*.21147017-m*.52261711+h*.31114694,y=.5053*_*_+.299*ee*ee+.1957*v*v;return _>0?-y:y}function ct(e,t,n,r,i){e[t+0]=n,e[t+1]=r,e[t+2]=i,e[t+3]=255}function lt(e,t,n,r){let i=255+(e[t]*.29889531+e[t+1]*.58662247+e[t+2]*.11448223-255)*n*e[t+3]/255;ct(r,t,i,i,i)}var ut=C(((e,t)=>{let n=w(`util`),r=w(`stream`),i=t.exports=function(){r.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding=`utf8`,this.writable=!0};n.inherits(i,r),i.prototype.read=function(e,t){this._reads.push({length:Math.abs(e),allowLess:e<0,func:t}),process.nextTick(function(){this._process(),this._paused&&this._reads&&this._reads.length>0&&(this._paused=!1,this.emit(`drain`))}.bind(this))},i.prototype.write=function(e,t){if(!this.writable)return this.emit(`error`,Error(`Stream not writable`)),!1;let n;return n=Buffer.isBuffer(e)?e:Buffer.from(e,t||this._encoding),this._buffers.push(n),this._buffered+=n.length,this._process(),this._reads&&this._reads.length===0&&(this._paused=!0),this.writable&&!this._paused},i.prototype.end=function(e,t){e&&this.write(e,t),this.writable=!1,this._buffers&&(this._buffers.length===0?this._end():(this._buffers.push(null),this._process()))},i.prototype.destroySoon=i.prototype.end,i.prototype._end=function(){this._reads.length>0&&this.emit(`error`,Error(`Unexpected end of input`)),this.destroy()},i.prototype.destroy=function(){this._buffers&&(this.writable=!1,this._reads=null,this._buffers=null,this.emit(`close`))},i.prototype._processReadAllowingLess=function(e){this._reads.shift();let t=this._buffers[0];t.length>e.length?(this._buffered-=e.length,this._buffers[0]=t.slice(e.length),e.func.call(this,t.slice(0,e.length))):(this._buffered-=t.length,this._buffers.shift(),e.func.call(this,t))},i.prototype._processRead=function(e){this._reads.shift();let t=0,n=0,r=Buffer.alloc(e.length);for(;t<e.length;){let i=this._buffers[n++],a=Math.min(i.length,e.length-t);i.copy(r,t,0,a),t+=a,a!==i.length&&(this._buffers[--n]=i.slice(a))}n>0&&this._buffers.splice(0,n),this._buffered-=e.length,e.func.call(this,r)},i.prototype._process=function(){try{for(;this._buffered>0&&this._reads&&this._reads.length>0;){let e=this._reads[0];if(e.allowLess)this._processReadAllowingLess(e);else if(this._buffered>=e.length)this._processRead(e);else break}this._buffers&&!this.writable&&this._end()}catch(e){this.emit(`error`,e)}}})),dt=C((e=>{let t=[{x:[0],y:[0]},{x:[4],y:[0]},{x:[0,4],y:[4]},{x:[2,6],y:[0,4]},{x:[0,2,4,6],y:[2,6]},{x:[1,3,5,7],y:[0,2,4,6]},{x:[0,1,2,3,4,5,6,7],y:[1,3,5,7]}];e.getImagePasses=function(e,n){let r=[],i=e%8,a=n%8,o=(e-i)/8,s=(n-a)/8;for(let e=0;e<t.length;e++){let n=t[e],c=o*n.x.length,l=s*n.y.length;for(let e=0;e<n.x.length&&n.x[e]<i;e++)c++;for(let e=0;e<n.y.length&&n.y[e]<a;e++)l++;c>0&&l>0&&r.push({width:c,height:l,index:e})}return r},e.getInterlaceIterator=function(e){return function(n,r,i){let a=n%t[i].x.length,o=(n-a)/t[i].x.length*8+t[i].x[a],s=r%t[i].y.length,c=(r-s)/t[i].y.length*8+t[i].y[s];return o*4+c*e*4}}})),ft=C(((e,t)=>{t.exports=function(e,t,n){let r=e+t-n,i=Math.abs(r-e),a=Math.abs(r-t),o=Math.abs(r-n);return i<=a&&i<=o?e:a<=o?t:n}})),pt=C(((e,t)=>{let n=dt(),r=ft();function i(e,t,n){let r=e*t;return n!==8&&(r=Math.ceil(r/(8/n))),r}let a=t.exports=function(e,t){let r=e.width,a=e.height,o=e.interlace,s=e.bpp,c=e.depth;if(this.read=t.read,this.write=t.write,this.complete=t.complete,this._imageIndex=0,this._images=[],o){let e=n.getImagePasses(r,a);for(let t=0;t<e.length;t++)this._images.push({byteWidth:i(e[t].width,s,c),height:e[t].height,lineIndex:0})}else this._images.push({byteWidth:i(r,s,c),height:a,lineIndex:0});this._xComparison=c===8?s:c===16?s*2:1};a.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))},a.prototype._unFilterType1=function(e,t,n){let r=this._xComparison,i=r-1;for(let a=0;a<n;a++){let n=e[1+a],o=a>i?t[a-r]:0;t[a]=n+o}},a.prototype._unFilterType2=function(e,t,n){let r=this._lastLine;for(let i=0;i<n;i++){let n=e[1+i],a=r?r[i]:0;t[i]=n+a}},a.prototype._unFilterType3=function(e,t,n){let r=this._xComparison,i=r-1,a=this._lastLine;for(let o=0;o<n;o++){let n=e[1+o],s=a?a[o]:0,c=o>i?t[o-r]:0,l=Math.floor((c+s)/2);t[o]=n+l}},a.prototype._unFilterType4=function(e,t,n){let i=this._xComparison,a=i-1,o=this._lastLine;for(let s=0;s<n;s++){let n=e[1+s],c=o?o[s]:0,l=s>a?t[s-i]:0,u=s>a&&o?o[s-i]:0,d=r(l,c,u);t[s]=n+d}},a.prototype._reverseFilterLine=function(e){let t=e[0],n,r=this._images[this._imageIndex],i=r.byteWidth;if(t===0)n=e.slice(1,i+1);else switch(n=Buffer.alloc(i),t){case 1:this._unFilterType1(e,n,i);break;case 2:this._unFilterType2(e,n,i);break;case 3:this._unFilterType3(e,n,i);break;case 4:this._unFilterType4(e,n,i);break;default:throw Error(`Unrecognised filter type - `+t)}this.write(n),r.lineIndex++,r.lineIndex>=r.height?(this._lastLine=null,this._imageIndex++,r=this._images[this._imageIndex]):this._lastLine=n,r?this.read(r.byteWidth+1,this._reverseFilterLine.bind(this)):(this._lastLine=null,this.complete())}})),mt=C(((e,t)=>{let n=w(`util`),r=ut(),i=pt(),a=t.exports=function(e){r.call(this);let t=[],n=this;this._filter=new i(e,{read:this.read.bind(this),write:function(e){t.push(e)},complete:function(){n.emit(`complete`,Buffer.concat(t))}}),this._filter.start()};n.inherits(a,r)})),ht=C(((e,t)=>{t.exports={PNG_SIGNATURE:[137,80,78,71,13,10,26,10],TYPE_IHDR:1229472850,TYPE_IEND:1229278788,TYPE_IDAT:1229209940,TYPE_PLTE:1347179589,TYPE_tRNS:1951551059,TYPE_gAMA:1732332865,COLORTYPE_GRAYSCALE:0,COLORTYPE_PALETTE:1,COLORTYPE_COLOR:2,COLORTYPE_ALPHA:4,COLORTYPE_PALETTE_COLOR:3,COLORTYPE_COLOR_ALPHA:6,COLORTYPE_TO_BPP_MAP:{0:1,2:3,3:1,4:2,6:4},GAMMA_DIVISION:1e5}})),gt=C(((e,t)=>{let n=[];(function(){for(let e=0;e<256;e++){let t=e;for(let e=0;e<8;e++)t&1?t=3988292384^t>>>1:t>>>=1;n[e]=t}})();let r=t.exports=function(){this._crc=-1};r.prototype.write=function(e){for(let t=0;t<e.length;t++)this._crc=n[(this._crc^e[t])&255]^this._crc>>>8;return!0},r.prototype.crc32=function(){return this._crc^-1},r.crc32=function(e){let t=-1;for(let r=0;r<e.length;r++)t=n[(t^e[r])&255]^t>>>8;return t^-1}})),_t=C(((e,t)=>{let n=ht(),r=gt(),i=t.exports=function(e,t){this._options=e,e.checkCRC=e.checkCRC!==!1,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[n.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[n.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[n.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[n.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[n.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[n.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=t.read,this.error=t.error,this.metadata=t.metadata,this.gamma=t.gamma,this.transColor=t.transColor,this.palette=t.palette,this.parsed=t.parsed,this.inflateData=t.inflateData,this.finished=t.finished,this.simpleTransparency=t.simpleTransparency,this.headersFinished=t.headersFinished||function(){}};i.prototype.start=function(){this.read(n.PNG_SIGNATURE.length,this._parseSignature.bind(this))},i.prototype._parseSignature=function(e){let t=n.PNG_SIGNATURE;for(let n=0;n<t.length;n++)if(e[n]!==t[n]){this.error(Error(`Invalid file signature`));return}this.read(8,this._parseChunkBegin.bind(this))},i.prototype._parseChunkBegin=function(e){let t=e.readUInt32BE(0),i=e.readUInt32BE(4),a=``;for(let t=4;t<8;t++)a+=String.fromCharCode(e[t]);let o=!!(e[4]&32);if(!this._hasIHDR&&i!==n.TYPE_IHDR){this.error(Error(`Expected IHDR on beggining`));return}if(this._crc=new r,this._crc.write(Buffer.from(a)),this._chunks[i])return this._chunks[i](t);if(!o){this.error(Error(`Unsupported critical chunk type `+a));return}this.read(t+4,this._skipChunk.bind(this))},i.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))},i.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))},i.prototype._parseChunkEnd=function(e){let t=e.readInt32BE(0),n=this._crc.crc32();if(this._options.checkCRC&&n!==t){this.error(Error(`Crc error - `+t+` - `+n));return}this._hasIEND||this.read(8,this._parseChunkBegin.bind(this))},i.prototype._handleIHDR=function(e){this.read(e,this._parseIHDR.bind(this))},i.prototype._parseIHDR=function(e){this._crc.write(e);let t=e.readUInt32BE(0),r=e.readUInt32BE(4),i=e[8],a=e[9],o=e[10],s=e[11],c=e[12];if(i!==8&&i!==4&&i!==2&&i!==1&&i!==16){this.error(Error(`Unsupported bit depth `+i));return}if(!(a in n.COLORTYPE_TO_BPP_MAP)){this.error(Error(`Unsupported color type`));return}if(o!==0){this.error(Error(`Unsupported compression method`));return}if(s!==0){this.error(Error(`Unsupported filter method`));return}if(c!==0&&c!==1){this.error(Error(`Unsupported interlace method`));return}this._colorType=a;let l=n.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width:t,height:r,depth:i,interlace:!!c,palette:!!(a&n.COLORTYPE_PALETTE),color:!!(a&n.COLORTYPE_COLOR),alpha:!!(a&n.COLORTYPE_ALPHA),bpp:l,colorType:a}),this._handleChunkEnd()},i.prototype._handlePLTE=function(e){this.read(e,this._parsePLTE.bind(this))},i.prototype._parsePLTE=function(e){this._crc.write(e);let t=Math.floor(e.length/3);for(let n=0;n<t;n++)this._palette.push([e[n*3],e[n*3+1],e[n*3+2],255]);this.palette(this._palette),this._handleChunkEnd()},i.prototype._handleTRNS=function(e){this.simpleTransparency(),this.read(e,this._parseTRNS.bind(this))},i.prototype._parseTRNS=function(e){if(this._crc.write(e),this._colorType===n.COLORTYPE_PALETTE_COLOR){if(this._palette.length===0){this.error(Error(`Transparency chunk must be after palette`));return}if(e.length>this._palette.length){this.error(Error(`More transparent colors than palette size`));return}for(let t=0;t<e.length;t++)this._palette[t][3]=e[t];this.palette(this._palette)}this._colorType===n.COLORTYPE_GRAYSCALE&&this.transColor([e.readUInt16BE(0)]),this._colorType===n.COLORTYPE_COLOR&&this.transColor([e.readUInt16BE(0),e.readUInt16BE(2),e.readUInt16BE(4)]),this._handleChunkEnd()},i.prototype._handleGAMA=function(e){this.read(e,this._parseGAMA.bind(this))},i.prototype._parseGAMA=function(e){this._crc.write(e),this.gamma(e.readUInt32BE(0)/n.GAMMA_DIVISION),this._handleChunkEnd()},i.prototype._handleIDAT=function(e){this._emittedHeadersFinished||(this._emittedHeadersFinished=!0,this.headersFinished()),this.read(-e,this._parseIDAT.bind(this,e))},i.prototype._parseIDAT=function(e,t){if(this._crc.write(t),this._colorType===n.COLORTYPE_PALETTE_COLOR&&this._palette.length===0)throw Error(`Expected palette not found`);this.inflateData(t);let r=e-t.length;r>0?this._handleIDAT(r):this._handleChunkEnd()},i.prototype._handleIEND=function(e){this.read(e,this._parseIEND.bind(this))},i.prototype._parseIEND=function(e){this._crc.write(e),this._hasIEND=!0,this._handleChunkEnd(),this.finished&&this.finished()}})),vt=C((e=>{let t=dt(),n=[function(){},function(e,t,n,r){if(r===t.length)throw Error(`Ran out of data`);let i=t[r];e[n]=i,e[n+1]=i,e[n+2]=i,e[n+3]=255},function(e,t,n,r){if(r+1>=t.length)throw Error(`Ran out of data`);let i=t[r];e[n]=i,e[n+1]=i,e[n+2]=i,e[n+3]=t[r+1]},function(e,t,n,r){if(r+2>=t.length)throw Error(`Ran out of data`);e[n]=t[r],e[n+1]=t[r+1],e[n+2]=t[r+2],e[n+3]=255},function(e,t,n,r){if(r+3>=t.length)throw Error(`Ran out of data`);e[n]=t[r],e[n+1]=t[r+1],e[n+2]=t[r+2],e[n+3]=t[r+3]}],r=[function(){},function(e,t,n,r){let i=t[0];e[n]=i,e[n+1]=i,e[n+2]=i,e[n+3]=r},function(e,t,n){let r=t[0];e[n]=r,e[n+1]=r,e[n+2]=r,e[n+3]=t[1]},function(e,t,n,r){e[n]=t[0],e[n+1]=t[1],e[n+2]=t[2],e[n+3]=r},function(e,t,n){e[n]=t[0],e[n+1]=t[1],e[n+2]=t[2],e[n+3]=t[3]}];function i(e,t){let n=[],r=0;function i(){if(r===e.length)throw Error(`Ran out of data`);let i=e[r];r++;let a,o,s,c,l,u,d,f;switch(t){default:throw Error(`unrecognised depth`);case 16:d=e[r],r++,n.push((i<<8)+d);break;case 4:d=i&15,f=i>>4,n.push(f,d);break;case 2:l=i&3,u=i>>2&3,d=i>>4&3,f=i>>6&3,n.push(f,d,u,l);break;case 1:a=i&1,o=i>>1&1,s=i>>2&1,c=i>>3&1,l=i>>4&1,u=i>>5&1,d=i>>6&1,f=i>>7&1,n.push(f,d,u,l,c,s,o,a)}}return{get:function(e){for(;n.length<e;)i();let t=n.slice(0,e);return n=n.slice(e),t},resetAfterLine:function(){n.length=0},end:function(){if(r!==e.length)throw Error(`extra data found`)}}}function a(e,t,r,i,a,o){let s=e.width,c=e.height,l=e.index;for(let e=0;e<c;e++)for(let c=0;c<s;c++){let s=r(c,e,l);n[i](t,a,s,o),o+=i}return o}function o(e,t,n,i,a,o){let s=e.width,c=e.height,l=e.index;for(let e=0;e<c;e++){for(let c=0;c<s;c++){let s=a.get(i),u=n(c,e,l);r[i](t,s,u,o)}a.resetAfterLine()}}e.dataToBitMap=function(e,n){let r=n.width,s=n.height,c=n.depth,l=n.bpp,u=n.interlace,d;c!==8&&(d=i(e,c));let f;f=c<=8?Buffer.alloc(r*s*4):new Uint16Array(r*s*4);let p=2**c-1,m=0,h,g;if(u)h=t.getImagePasses(r,s),g=t.getInterlaceIterator(r,s);else{let e=0;g=function(){let t=e;return e+=4,t},h=[{width:r,height:s}]}for(let t=0;t<h.length;t++)c===8?m=a(h[t],f,g,l,e,m):o(h[t],f,g,l,d,p);if(c===8){if(m!==e.length)throw Error(`extra data found`)}else d.end();return f}})),yt=C(((e,t)=>{function n(e,t,n,r,i){let a=0;for(let o=0;o<r;o++)for(let r=0;r<n;r++){let n=i[e[a]];if(!n)throw Error(`index `+e[a]+` not in palette`);for(let e=0;e<4;e++)t[a+e]=n[e];a+=4}}function r(e,t,n,r,i){let a=0;for(let o=0;o<r;o++)for(let r=0;r<n;r++){let n=!1;if(i.length===1?i[0]===e[a]&&(n=!0):i[0]===e[a]&&i[1]===e[a+1]&&i[2]===e[a+2]&&(n=!0),n)for(let e=0;e<4;e++)t[a+e]=0;a+=4}}function i(e,t,n,r,i){let a=2**i-1,o=0;for(let i=0;i<r;i++)for(let r=0;r<n;r++){for(let n=0;n<4;n++)t[o+n]=Math.floor(e[o+n]*255/a+.5);o+=4}}t.exports=function(e,t,a=!1){let o=t.depth,s=t.width,c=t.height,l=t.colorType,u=t.transColor,d=t.palette,f=e;return l===3?n(e,f,s,c,d):(u&&r(e,f,s,c,u),o!==8&&!a&&(o===16&&(f=Buffer.alloc(s*c*4)),i(e,f,s,c,o))),f}})),bt=C(((e,t)=>{let n=w(`util`),r=w(`zlib`),i=ut(),a=mt(),o=_t(),s=vt(),c=yt(),l=t.exports=function(e){i.call(this),this._parser=new o(e,{read:this.read.bind(this),error:this._handleError.bind(this),metadata:this._handleMetaData.bind(this),gamma:this.emit.bind(this,`gamma`),palette:this._handlePalette.bind(this),transColor:this._handleTransColor.bind(this),finished:this._finished.bind(this),inflateData:this._inflateData.bind(this),simpleTransparency:this._simpleTransparency.bind(this),headersFinished:this._headersFinished.bind(this)}),this._options=e,this.writable=!0,this._parser.start()};n.inherits(l,i),l.prototype._handleError=function(e){this.emit(`error`,e),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy&&this._inflate.destroy(),this._filter&&(this._filter.destroy(),this._filter.on(`error`,function(){})),this.errord=!0},l.prototype._inflateData=function(e){if(!this._inflate){if(this._bitmapInfo.interlace)this._inflate=r.createInflate(),this._inflate.on(`error`,this.emit.bind(this,`error`)),this._filter.on(`complete`,this._complete.bind(this)),this._inflate.pipe(this._filter);else{let e=((this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3)+1)*this._bitmapInfo.height,t=Math.max(e,r.Z_MIN_CHUNK);this._inflate=r.createInflate({chunkSize:t});let n=e,i=this.emit.bind(this,`error`);this._inflate.on(`error`,function(e){n&&i(e)}),this._filter.on(`complete`,this._complete.bind(this));let a=this._filter.write.bind(this._filter);this._inflate.on(`data`,function(e){n&&(e.length>n&&(e=e.slice(0,n)),n-=e.length,a(e))}),this._inflate.on(`end`,this._filter.end.bind(this._filter))}}this._inflate.write(e)},l.prototype._handleMetaData=function(e){this._metaData=e,this._bitmapInfo=Object.create(e),this._filter=new a(this._bitmapInfo)},l.prototype._handleTransColor=function(e){this._bitmapInfo.transColor=e},l.prototype._handlePalette=function(e){this._bitmapInfo.palette=e},l.prototype._simpleTransparency=function(){this._metaData.alpha=!0},l.prototype._headersFinished=function(){this.emit(`metadata`,this._metaData)},l.prototype._finished=function(){this.errord||(this._inflate?this._inflate.end():this.emit(`error`,`No Inflate block`))},l.prototype._complete=function(e){if(this.errord)return;let t;try{let n=s.dataToBitMap(e,this._bitmapInfo);t=c(n,this._bitmapInfo,this._options.skipRescale),n=null}catch(e){this._handleError(e);return}this.emit(`parsed`,t)}})),xt=C(((e,t)=>{let n=ht();t.exports=function(e,t,r,i){let a=[n.COLORTYPE_COLOR_ALPHA,n.COLORTYPE_ALPHA].indexOf(i.colorType)!==-1;if(i.colorType===i.inputColorType){let t=(function(){let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),new Int16Array(e)[0]!==256})();if(i.bitDepth===8||i.bitDepth===16&&t)return e}let o=i.bitDepth===16?new Uint16Array(e.buffer):e,s=255,c=n.COLORTYPE_TO_BPP_MAP[i.inputColorType];c===4&&!i.inputHasAlpha&&(c=3);let l=n.COLORTYPE_TO_BPP_MAP[i.colorType];i.bitDepth===16&&(s=65535,l*=2);let u=Buffer.alloc(t*r*l),d=0,f=0,p=i.bgColor||{};p.red===void 0&&(p.red=s),p.green===void 0&&(p.green=s),p.blue===void 0&&(p.blue=s);function m(){let e,t,r,c=s;switch(i.inputColorType){case n.COLORTYPE_COLOR_ALPHA:c=o[d+3],e=o[d],t=o[d+1],r=o[d+2];break;case n.COLORTYPE_COLOR:e=o[d],t=o[d+1],r=o[d+2];break;case n.COLORTYPE_ALPHA:c=o[d+1],e=o[d],t=e,r=e;break;case n.COLORTYPE_GRAYSCALE:e=o[d],t=e,r=e;break;default:throw Error(`input color type:`+i.inputColorType+` is not supported at present`)}return i.inputHasAlpha&&(a||(c/=s,e=Math.min(Math.max(Math.round((1-c)*p.red+c*e),0),s),t=Math.min(Math.max(Math.round((1-c)*p.green+c*t),0),s),r=Math.min(Math.max(Math.round((1-c)*p.blue+c*r),0),s))),{red:e,green:t,blue:r,alpha:c}}for(let e=0;e<r;e++)for(let e=0;e<t;e++){let e=m(o,d);switch(i.colorType){case n.COLORTYPE_COLOR_ALPHA:case n.COLORTYPE_COLOR:i.bitDepth===8?(u[f]=e.red,u[f+1]=e.green,u[f+2]=e.blue,a&&(u[f+3]=e.alpha)):(u.writeUInt16BE(e.red,f),u.writeUInt16BE(e.green,f+2),u.writeUInt16BE(e.blue,f+4),a&&u.writeUInt16BE(e.alpha,f+6));break;case n.COLORTYPE_ALPHA:case n.COLORTYPE_GRAYSCALE:{let t=(e.red+e.green+e.blue)/3;i.bitDepth===8?(u[f]=t,a&&(u[f+1]=e.alpha)):(u.writeUInt16BE(t,f),a&&u.writeUInt16BE(e.alpha,f+2));break}default:throw Error(`unrecognised color Type `+i.colorType)}d+=c,f+=l}return u}})),St=C(((e,t)=>{let n=ft();function r(e,t,n,r,i){for(let a=0;a<n;a++)r[i+a]=e[t+a]}function i(e,t,n){let r=0,i=t+n;for(let n=t;n<i;n++)r+=Math.abs(e[n]);return r}function a(e,t,n,r,i,a){for(let o=0;o<n;o++){let n=o>=a?e[t+o-a]:0,s=e[t+o]-n;r[i+o]=s}}function o(e,t,n,r){let i=0;for(let a=0;a<n;a++){let n=a>=r?e[t+a-r]:0,o=e[t+a]-n;i+=Math.abs(o)}return i}function s(e,t,n,r,i){for(let a=0;a<n;a++){let o=t>0?e[t+a-n]:0,s=e[t+a]-o;r[i+a]=s}}function c(e,t,n){let r=0,i=t+n;for(let a=t;a<i;a++){let i=t>0?e[a-n]:0,o=e[a]-i;r+=Math.abs(o)}return r}function l(e,t,n,r,i,a){for(let o=0;o<n;o++){let s=o>=a?e[t+o-a]:0,c=t>0?e[t+o-n]:0,l=e[t+o]-(s+c>>1);r[i+o]=l}}function u(e,t,n,r){let i=0;for(let a=0;a<n;a++){let o=a>=r?e[t+a-r]:0,s=t>0?e[t+a-n]:0,c=e[t+a]-(o+s>>1);i+=Math.abs(c)}return i}function d(e,t,r,i,a,o){for(let s=0;s<r;s++){let c=s>=o?e[t+s-o]:0,l=t>0?e[t+s-r]:0,u=t>0&&s>=o?e[t+s-(r+o)]:0,d=e[t+s]-n(c,l,u);i[a+s]=d}}function f(e,t,r,i){let a=0;for(let o=0;o<r;o++){let s=o>=i?e[t+o-i]:0,c=t>0?e[t+o-r]:0,l=t>0&&o>=i?e[t+o-(r+i)]:0,u=e[t+o]-n(s,c,l);a+=Math.abs(u)}return a}let p={0:r,1:a,2:s,3:l,4:d},m={0:i,1:o,2:c,3:u,4:f};t.exports=function(e,t,n,r,i){let a;if(!(`filterType`in r)||r.filterType===-1)a=[0,1,2,3,4];else if(typeof r.filterType==`number`)a=[r.filterType];else throw Error(`unrecognised filter types`);r.bitDepth===16&&(i*=2);let o=t*i,s=0,c=0,l=Buffer.alloc((o+1)*n),u=a[0];for(let t=0;t<n;t++){if(a.length>1){let t=1/0;for(let n=0;n<a.length;n++){let r=m[a[n]](e,c,o,i);r<t&&(u=a[n],t=r)}}l[s]=u,s++,p[u](e,c,o,l,s,i),s+=o,c+=o}return l}})),Ct=C(((e,t)=>{let n=ht(),r=gt(),i=xt(),a=St(),o=w(`zlib`),s=t.exports=function(e){if(this._options=e,e.deflateChunkSize=e.deflateChunkSize||32768,e.deflateLevel=e.deflateLevel==null?9:e.deflateLevel,e.deflateStrategy=e.deflateStrategy==null?3:e.deflateStrategy,e.inputHasAlpha=e.inputHasAlpha==null||e.inputHasAlpha,e.deflateFactory=e.deflateFactory||o.createDeflate,e.bitDepth=e.bitDepth||8,e.colorType=typeof e.colorType==`number`?e.colorType:n.COLORTYPE_COLOR_ALPHA,e.inputColorType=typeof e.inputColorType==`number`?e.inputColorType:n.COLORTYPE_COLOR_ALPHA,[n.COLORTYPE_GRAYSCALE,n.COLORTYPE_COLOR,n.COLORTYPE_COLOR_ALPHA,n.COLORTYPE_ALPHA].indexOf(e.colorType)===-1)throw Error(`option color type:`+e.colorType+` is not supported at present`);if([n.COLORTYPE_GRAYSCALE,n.COLORTYPE_COLOR,n.COLORTYPE_COLOR_ALPHA,n.COLORTYPE_ALPHA].indexOf(e.inputColorType)===-1)throw Error(`option input color type:`+e.inputColorType+` is not supported at present`);if(e.bitDepth!==8&&e.bitDepth!==16)throw Error(`option bit depth:`+e.bitDepth+` is not supported at present`)};s.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}},s.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())},s.prototype.filterData=function(e,t,r){let o=i(e,t,r,this._options),s=n.COLORTYPE_TO_BPP_MAP[this._options.colorType];return a(o,t,r,this._options,s)},s.prototype._packChunk=function(e,t){let n=t?t.length:0,i=Buffer.alloc(n+12);return i.writeUInt32BE(n,0),i.writeUInt32BE(e,4),t&&t.copy(i,8),i.writeInt32BE(r.crc32(i.slice(4,i.length-4)),i.length-4),i},s.prototype.packGAMA=function(e){let t=Buffer.alloc(4);return t.writeUInt32BE(Math.floor(e*n.GAMMA_DIVISION),0),this._packChunk(n.TYPE_gAMA,t)},s.prototype.packIHDR=function(e,t){let r=Buffer.alloc(13);return r.writeUInt32BE(e,0),r.writeUInt32BE(t,4),r[8]=this._options.bitDepth,r[9]=this._options.colorType,r[10]=0,r[11]=0,r[12]=0,this._packChunk(n.TYPE_IHDR,r)},s.prototype.packIDAT=function(e){return this._packChunk(n.TYPE_IDAT,e)},s.prototype.packIEND=function(){return this._packChunk(n.TYPE_IEND,null)}})),wt=C(((e,t)=>{let n=w(`util`),r=w(`stream`),i=ht(),a=Ct(),o=t.exports=function(e){r.call(this);let t=e||{};this._packer=new a(t),this._deflate=this._packer.createDeflate(),this.readable=!0};n.inherits(o,r),o.prototype.pack=function(e,t,n,r){this.emit(`data`,Buffer.from(i.PNG_SIGNATURE)),this.emit(`data`,this._packer.packIHDR(t,n)),r&&this.emit(`data`,this._packer.packGAMA(r));let a=this._packer.filterData(e,t,n);this._deflate.on(`error`,this.emit.bind(this,`error`)),this._deflate.on(`data`,function(e){this.emit(`data`,this._packer.packIDAT(e))}.bind(this)),this._deflate.on(`end`,function(){this.emit(`data`,this._packer.packIEND()),this.emit(`end`)}.bind(this)),this._deflate.end(a)}})),Tt=C(((e,t)=>{let n=w(`assert`).ok,r=w(`zlib`),i=w(`util`),a=w(`buffer`).kMaxLength;function o(e){if(!(this instanceof o))return new o(e);e&&e.chunkSize<r.Z_MIN_CHUNK&&(e.chunkSize=r.Z_MIN_CHUNK),r.Inflate.call(this,e),this._offset=this._offset===void 0?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,e&&e.maxLength!=null&&(this._maxLength=e.maxLength)}function s(e){return new o(e)}function c(e,t){t&&process.nextTick(t),e._handle&&=(e._handle.close(),null)}o.prototype._processChunk=function(e,t,i){if(typeof i==`function`)return r.Inflate._processChunk.call(this,e,t,i);let o=this,s=e&&e.length,l=this._chunkSize-this._offset,u=this._maxLength,d=0,f=[],p=0,m;this.on(`error`,function(e){m=e});function h(e,t){if(o._hadError)return;let r=l-t;if(n(r>=0,`have should not go down`),r>0){let e=o._buffer.slice(o._offset,o._offset+r);if(o._offset+=r,e.length>u&&(e=e.slice(0,u)),f.push(e),p+=e.length,u-=e.length,u===0)return!1}return(t===0||o._offset>=o._chunkSize)&&(l=o._chunkSize,o._offset=0,o._buffer=Buffer.allocUnsafe(o._chunkSize)),t===0&&(d+=s-e,s=e,!0)}n(this._handle,`zlib binding closed`);let g;do g=this._handle.writeSync(t,e,d,s,this._buffer,this._offset,l),g||=this._writeState;while(!this._hadError&&h(g[0],g[1]));if(this._hadError)throw m;if(p>=a)throw c(this),RangeError(`Cannot create final Buffer. It would be larger than 0x`+a.toString(16)+` bytes`);let _=Buffer.concat(f,p);return c(this),_},i.inherits(o,r.Inflate);function l(e,t){if(typeof t==`string`&&(t=Buffer.from(t)),!(t instanceof Buffer))throw TypeError(`Not a string or buffer`);let n=e._finishFlushFlag;return n??=r.Z_FINISH,e._processChunk(t,n)}function u(e,t){return l(new o(t),e)}t.exports=e=u,e.Inflate=o,e.createInflate=s,e.inflateSync=u})),Et=C(((e,t)=>{let n=t.exports=function(e){this._buffer=e,this._reads=[]};n.prototype.read=function(e,t){this._reads.push({length:Math.abs(e),allowLess:e<0,func:t})},n.prototype.process=function(){for(;this._reads.length>0&&this._buffer.length;){let e=this._reads[0];if(this._buffer.length&&(this._buffer.length>=e.length||e.allowLess)){this._reads.shift();let t=this._buffer;this._buffer=t.slice(e.length),e.func.call(this,t.slice(0,e.length))}else break}if(this._reads.length>0)throw Error(`There are some read requests waitng on finished stream`);if(this._buffer.length>0)throw Error(`unrecognised content at end of stream`)}})),Dt=C((e=>{let t=Et(),n=pt();e.process=function(e,r){let i=[],a=new t(e);return new n(r,{read:a.read.bind(a),write:function(e){i.push(e)},complete:function(){}}).start(),a.process(),Buffer.concat(i)}})),Ot=C(((e,t)=>{let n=!0,r=w(`zlib`),i=Tt();r.deflateSync||(n=!1);let a=Et(),o=Dt(),s=_t(),c=vt(),l=yt();t.exports=function(e,t){if(!n)throw Error(`To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0`);let u;function d(e){u=e}let f;function p(e){f=e}function m(e){f.transColor=e}function h(e){f.palette=e}function g(){f.alpha=!0}let _;function ee(e){_=e}let v=[];function y(e){v.push(e)}let te=new a(e);if(new s(t,{read:te.read.bind(te),error:d,metadata:p,gamma:ee,palette:h,transColor:m,inflateData:y,simpleTransparency:g}).start(),te.process(),u)throw u;let b=Buffer.concat(v);v.length=0;let x;if(f.interlace)x=r.inflateSync(b);else{let e=((f.width*f.bpp*f.depth+7>>3)+1)*f.height;x=i(b,{chunkSize:e,maxLength:e})}if(b=null,!x||!x.length)throw Error(`bad png - invalid inflate data response`);let ne=o.process(x,f);b=null;let re=c.dataToBitMap(ne,f);ne=null;let ie=l(re,f,t.skipRescale);return f.data=ie,f.gamma=_||0,f}})),kt=C(((e,t)=>{let n=!0,r=w(`zlib`);r.deflateSync||(n=!1);let i=ht(),a=Ct();t.exports=function(e,t){if(!n)throw Error(`To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0`);let o=new a(t||{}),s=[];s.push(Buffer.from(i.PNG_SIGNATURE)),s.push(o.packIHDR(e.width,e.height)),e.gamma&&s.push(o.packGAMA(e.gamma));let c=o.filterData(e.data,e.width,e.height),l=r.deflateSync(c,o.getDeflateOptions());if(c=null,!l||!l.length)throw Error(`bad png - invalid compressed data response`);return s.push(o.packIDAT(l)),s.push(o.packIEND()),Buffer.concat(s)}})),At=C((e=>{let t=Ot(),n=kt();e.read=function(e,n){return t(e,n||{})},e.write=function(e,t){return n(e,t)}})),jt=C((e=>{let t=w(`util`),n=w(`stream`),r=bt(),i=wt(),a=At(),o=e.PNG=function(e){n.call(this),e||={},this.width=e.width|0,this.height=e.height|0,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,e.fill&&this.data&&this.data.fill(0),this.gamma=0,this.readable=this.writable=!0,this._parser=new r(e),this._parser.on(`error`,this.emit.bind(this,`error`)),this._parser.on(`close`,this._handleClose.bind(this)),this._parser.on(`metadata`,this._metadata.bind(this)),this._parser.on(`gamma`,this._gamma.bind(this)),this._parser.on(`parsed`,function(e){this.data=e,this.emit(`parsed`,e)}.bind(this)),this._packer=new i(e),this._packer.on(`data`,this.emit.bind(this,`data`)),this._packer.on(`end`,this.emit.bind(this,`end`)),this._parser.on(`close`,this._handleClose.bind(this)),this._packer.on(`error`,this.emit.bind(this,`error`))};t.inherits(o,n),o.sync=a,o.prototype.pack=function(){return!this.data||!this.data.length?(this.emit(`error`,`No data provided`),this):(process.nextTick(function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}.bind(this)),this)},o.prototype.parse=function(e,t){if(t){let e,n;e=function(e){this.removeListener(`error`,n),this.data=e,t(null,this)}.bind(this),n=function(n){this.removeListener(`parsed`,e),t(n,null)}.bind(this),this.once(`parsed`,e),this.once(`error`,n)}return this.end(e),this},o.prototype.write=function(e){return this._parser.write(e),!0},o.prototype.end=function(e){this._parser.end(e)},o.prototype._metadata=function(e){this.width=e.width,this.height=e.height,this.emit(`metadata`,e)},o.prototype._gamma=function(e){this.gamma=e},o.prototype._handleClose=function(){!this._parser.writable&&!this._packer.readable&&this.emit(`close`)},o.bitblt=function(e,t,n,r,i,a,o,s){if(n|=0,r|=0,i|=0,a|=0,o|=0,s|=0,n>e.width||r>e.height||n+i>e.width||r+a>e.height)throw Error(`bitblt reading outside image`);if(o>t.width||s>t.height||o+i>t.width||s+a>t.height)throw Error(`bitblt writing outside image`);for(let c=0;c<a;c++)e.data.copy(t.data,(s+c)*t.width+o<<2,(r+c)*e.width+n<<2,(r+c)*e.width+n+i<<2)},o.prototype.bitblt=function(e,t,n,r,i,a,s){return o.bitblt(this,e,t,n,r,i,a,s),this},o.adjustGamma=function(e){if(e.gamma){for(let t=0;t<e.height;t++)for(let n=0;n<e.width;n++){let r=e.width*t+n<<2;for(let t=0;t<3;t++){let n=e.data[r+t]/255;n**=1/2.2/e.gamma,e.data[r+t]=Math.round(n*255)}}e.gamma=0}},o.prototype.adjustGamma=function(){o.adjustGamma(this)}}));Object.freeze({status:`aborted`});function E(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,"name",{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var Mt=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Nt=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};const Pt={};function Ft(e){return e&&Object.assign(Pt,e),Pt}function It(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function Lt(e,t){return typeof t==`bigint`?t.toString():t}function Rt(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function zt(e){return e==null}function Bt(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Vt(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}const Ht=Symbol(`evaluating`);function D(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Ht)return r===void 0&&(r=Ht,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Ut(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Wt(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Gt(e){return JSON.stringify(e)}function Kt(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}const qt=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function Jt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const Yt=Rt(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Xt(e){if(Jt(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return Jt(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function Zt(e){return Xt(e)?{...e}:Array.isArray(e)?[...e]:e}const Qt=new Set([`string`,`number`,`symbol`]);function $t(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function en(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function O(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function tn(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}const nn={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function rn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return en(e,Wt(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return Ut(this,`shape`,e),e},checks:[]}))}function an(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return en(e,Wt(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return Ut(this,`shape`,r),r},checks:[]}))}function on(e,t){if(!Xt(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return en(e,Wt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ut(this,`shape`,n),n}}))}function sn(e,t){if(!Xt(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return en(e,Wt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ut(this,`shape`,n),n}}))}function cn(e,t){return en(e,Wt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Ut(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function ln(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return en(t,Wt(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return Ut(this,`shape`,i),i},checks:[]}))}function un(e,t,n){return en(t,Wt(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return Ut(this,`shape`,i),i}}))}function dn(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function fn(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function pn(e){return typeof e==`string`?e:e?.message}function mn(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=pn(e.inst?._zod.def?.error?.(e))??pn(t?.error?.(e))??pn(n.customError?.(e))??pn(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function hn(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function gn(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}const _n=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Lt,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},vn=E(`$ZodError`,_n),yn=E(`$ZodError`,_n,{Parent:Error});function bn(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function xn(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}const Sn=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new Mt;if(o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>mn(e,a,Ft())));throw qt(t,i?.callee),t}return o.value},Cn=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>mn(e,a,Ft())));throw qt(t,i?.callee),t}return o.value},wn=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new Mt;return a.issues.length?{success:!1,error:new(e??vn)(a.issues.map(e=>mn(e,i,Ft())))}:{success:!0,data:a.value}},Tn=wn(yn),En=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>mn(e,i,Ft())))}:{success:!0,data:a.value}},Dn=En(yn),On=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return Sn(e)(t,n,i)},kn=e=>(t,n,r)=>Sn(e)(t,n,r),An=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return Cn(e)(t,n,i)},jn=e=>async(t,n,r)=>Cn(e)(t,n,r),Mn=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return wn(e)(t,n,i)},Nn=e=>(t,n,r)=>wn(e)(t,n,r),Pn=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return En(e)(t,n,i)},Fn=e=>async(t,n,r)=>En(e)(t,n,r),In=/^[cC][^\s-]{8,}$/,Ln=/^[0-9a-z]+$/,Rn=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,zn=/^[0-9a-vA-V]{20}$/,Bn=/^[A-Za-z0-9]{27}$/,Vn=/^[a-zA-Z0-9_-]{21}$/,Hn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Un=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Wn=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Gn=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function Kn(){return RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)}const qn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Jn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Yn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Xn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Zn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Qn=/^[A-Za-z0-9_-]*$/,$n=/^\+[1-9]\d{6,14}$/,er=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,tr=RegExp(`^${er}$`);function nr(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function rr(e){return RegExp(`^${nr(e)}$`)}function ir(e){let t=nr({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${er}T(?:${r})$`)}const ar=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},or=/^-?\d+$/,sr=/^-?\d+(?:\.\d+)?$/,cr=/^(?:true|false)$/i,lr=/^[^A-Z]*$/,ur=/^[^a-z]*$/,k=E(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),dr={number:`number`,bigint:`bigint`,object:`date`},fr=E(`$ZodCheckLessThan`,(e,t)=>{k.init(e,t);let n=dr[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),pr=E(`$ZodCheckGreaterThan`,(e,t)=>{k.init(e,t);let n=dr[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),mr=E(`$ZodCheckMultipleOf`,(e,t)=>{k.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Vt(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),hr=E(`$ZodCheckNumberFormat`,(e,t)=>{k.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=nn[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=or)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),gr=E(`$ZodCheckMaxLength`,(e,t)=>{var n;k.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!zt(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=hn(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),_r=E(`$ZodCheckMinLength`,(e,t)=>{var n;k.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!zt(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=hn(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),vr=E(`$ZodCheckLengthEquals`,(e,t)=>{var n;k.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!zt(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=hn(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),yr=E(`$ZodCheckStringFormat`,(e,t)=>{var n,r;k.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),br=E(`$ZodCheckRegex`,(e,t)=>{yr.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),xr=E(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=lr,yr.init(e,t)}),Sr=E(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=ur,yr.init(e,t)}),Cr=E(`$ZodCheckIncludes`,(e,t)=>{k.init(e,t);let n=$t(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),wr=E(`$ZodCheckStartsWith`,(e,t)=>{k.init(e,t);let n=RegExp(`^${$t(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Tr=E(`$ZodCheckEndsWith`,(e,t)=>{k.init(e,t);let n=RegExp(`.*${$t(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Er=E(`$ZodCheckOverwrite`,(e,t)=>{k.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});var Dr=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
6
+ `),process.exit(1)}}var $e=`0.1.0`;const et=e(import.meta.url);async function tt(e=!1){let t=et.resolve(`agent-browser/package.json`),n=[f(a(t),`bin`,`agent-browser.js`),`install`];e&&n.push(`--with-deps`);let i=await new Promise((e,t)=>{let i=r(process.execPath,n,{stdio:`inherit`});i.once(`error`,t),i.once(`exit`,(n,r)=>{r?t(Error(`agent-browser install stopped by ${r}`)):e(n??1)})});if(i!==0)throw Error(`agent-browser install exited with code ${i}`)}const nt=T({meta:{name:`browser`,description:`Manage the Kapture browser runtime`},subCommands:{install:T({meta:{name:`install`,description:`Install the Chrome runtime used by agent-browser`},args:{"with-deps":{type:`boolean`,default:!1,description:`Also install Linux system dependencies`}},async run({args:e}){await tt(e[`with-deps`])}})}});function rt(e,t,n,r,i,a={}){let{threshold:o=.1,alpha:s=.1,aaColor:c=[255,255,0],diffColor:l=[255,0,0],includeAA:u,diffColorAlt:d,diffMask:f}=a;if(!it(e)||!it(t)||n&&!it(n))throw Error(`Image data: Uint8Array, Uint8ClampedArray or Buffer expected.`);if(e.length!==t.length||n&&n.length!==e.length)throw Error(`Image sizes do not match.`);if(e.length!==r*i*4)throw Error(`Image data size does not match width/height.`);let p=r*i,m=new Uint32Array(e.buffer,e.byteOffset,p),h=new Uint32Array(t.buffer,t.byteOffset,p),g=!0;for(let e=0;e<p;e++)if(m[e]!==h[e]){g=!1;break}if(g){if(n&&!f)for(let t=0;t<p;t++)lt(e,4*t,s,n);return 0}let _=35215*o*o,[ee,v,y]=c,[te,b,x]=l,[ne,re,ie]=d||l,ae=0;for(let a=0;a<i;a++)for(let o=0;o<r;o++){let c=a*r+o,l=c*4,d=m[c]===h[c]?0:st(e,t,l,l,!1);if(Math.abs(d)>_){let s=at(e,o,a,r,i,m,h)||at(t,o,a,r,i,h,m);!u&&s?n&&!f&&ct(n,l,ee,v,y):(n&&(d<0?ct(n,l,ne,re,ie):ct(n,l,te,b,x)),ae++)}else n&&!f&&lt(e,l,s,n)}return ae}function it(e){return ArrayBuffer.isView(e)&&e.BYTES_PER_ELEMENT===1}function at(e,t,n,r,i,a,o){let s=Math.max(t-1,0),c=Math.max(n-1,0),l=Math.min(t+1,r-1),u=Math.min(n+1,i-1),d=n*r+t,f=+(t===s||t===l||n===c||n===u),p=0,m=0,h=0,g=0,_=0,ee=0;for(let i=s;i<=l;i++)for(let a=c;a<=u;a++){if(i===t&&a===n)continue;let o=st(e,e,d*4,(a*r+i)*4,!0);if(o===0){if(f++,f>2)return!1}else o<p?(p=o,h=i,g=a):o>m&&(m=o,_=i,ee=a)}return p===0||m===0?!1:ot(a,h,g,r,i)&&ot(o,h,g,r,i)||ot(a,_,ee,r,i)&&ot(o,_,ee,r,i)}function ot(e,t,n,r,i){let a=Math.max(t-1,0),o=Math.max(n-1,0),s=Math.min(t+1,r-1),c=Math.min(n+1,i-1),l=e[n*r+t],u=+(t===a||t===s||n===o||n===c);for(let i=a;i<=s;i++)for(let a=o;a<=c;a++)if((i!==t||a!==n)&&(u+=+(l===e[a*r+i]),u>2))return!0;return!1}function st(e,t,n,r,i){let a=e[n],o=e[n+1],s=e[n+2],c=e[n+3],l=t[r],u=t[r+1],d=t[r+2],f=t[r+3],p=a-l,m=o-u,h=s-d,g=c-f;if(!p&&!m&&!h&&!g)return 0;if(c<255||f<255){let e=48+n%2*159,t=48+159*((n/1.618033988749895|0)%2),r=48+159*((n/2.618033988749895|0)%2);p=(a*c-l*f-e*g)/255,m=(o*c-u*f-t*g)/255,h=(s*c-d*f-r*g)/255}let _=p*.29889531+m*.58662247+h*.11448223;if(i)return _;let ee=p*.59597799-m*.2741761-h*.32180189,v=p*.21147017-m*.52261711+h*.31114694,y=.5053*_*_+.299*ee*ee+.1957*v*v;return _>0?-y:y}function ct(e,t,n,r,i){e[t+0]=n,e[t+1]=r,e[t+2]=i,e[t+3]=255}function lt(e,t,n,r){let i=255+(e[t]*.29889531+e[t+1]*.58662247+e[t+2]*.11448223-255)*n*e[t+3]/255;ct(r,t,i,i,i)}var ut=C(((e,t)=>{let n=w(`util`),r=w(`stream`),i=t.exports=function(){r.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding=`utf8`,this.writable=!0};n.inherits(i,r),i.prototype.read=function(e,t){this._reads.push({length:Math.abs(e),allowLess:e<0,func:t}),process.nextTick(function(){this._process(),this._paused&&this._reads&&this._reads.length>0&&(this._paused=!1,this.emit(`drain`))}.bind(this))},i.prototype.write=function(e,t){if(!this.writable)return this.emit(`error`,Error(`Stream not writable`)),!1;let n;return n=Buffer.isBuffer(e)?e:Buffer.from(e,t||this._encoding),this._buffers.push(n),this._buffered+=n.length,this._process(),this._reads&&this._reads.length===0&&(this._paused=!0),this.writable&&!this._paused},i.prototype.end=function(e,t){e&&this.write(e,t),this.writable=!1,this._buffers&&(this._buffers.length===0?this._end():(this._buffers.push(null),this._process()))},i.prototype.destroySoon=i.prototype.end,i.prototype._end=function(){this._reads.length>0&&this.emit(`error`,Error(`Unexpected end of input`)),this.destroy()},i.prototype.destroy=function(){this._buffers&&(this.writable=!1,this._reads=null,this._buffers=null,this.emit(`close`))},i.prototype._processReadAllowingLess=function(e){this._reads.shift();let t=this._buffers[0];t.length>e.length?(this._buffered-=e.length,this._buffers[0]=t.slice(e.length),e.func.call(this,t.slice(0,e.length))):(this._buffered-=t.length,this._buffers.shift(),e.func.call(this,t))},i.prototype._processRead=function(e){this._reads.shift();let t=0,n=0,r=Buffer.alloc(e.length);for(;t<e.length;){let i=this._buffers[n++],a=Math.min(i.length,e.length-t);i.copy(r,t,0,a),t+=a,a!==i.length&&(this._buffers[--n]=i.slice(a))}n>0&&this._buffers.splice(0,n),this._buffered-=e.length,e.func.call(this,r)},i.prototype._process=function(){try{for(;this._buffered>0&&this._reads&&this._reads.length>0;){let e=this._reads[0];if(e.allowLess)this._processReadAllowingLess(e);else if(this._buffered>=e.length)this._processRead(e);else break}this._buffers&&!this.writable&&this._end()}catch(e){this.emit(`error`,e)}}})),dt=C((e=>{let t=[{x:[0],y:[0]},{x:[4],y:[0]},{x:[0,4],y:[4]},{x:[2,6],y:[0,4]},{x:[0,2,4,6],y:[2,6]},{x:[1,3,5,7],y:[0,2,4,6]},{x:[0,1,2,3,4,5,6,7],y:[1,3,5,7]}];e.getImagePasses=function(e,n){let r=[],i=e%8,a=n%8,o=(e-i)/8,s=(n-a)/8;for(let e=0;e<t.length;e++){let n=t[e],c=o*n.x.length,l=s*n.y.length;for(let e=0;e<n.x.length&&n.x[e]<i;e++)c++;for(let e=0;e<n.y.length&&n.y[e]<a;e++)l++;c>0&&l>0&&r.push({width:c,height:l,index:e})}return r},e.getInterlaceIterator=function(e){return function(n,r,i){let a=n%t[i].x.length,o=(n-a)/t[i].x.length*8+t[i].x[a],s=r%t[i].y.length,c=(r-s)/t[i].y.length*8+t[i].y[s];return o*4+c*e*4}}})),ft=C(((e,t)=>{t.exports=function(e,t,n){let r=e+t-n,i=Math.abs(r-e),a=Math.abs(r-t),o=Math.abs(r-n);return i<=a&&i<=o?e:a<=o?t:n}})),pt=C(((e,t)=>{let n=dt(),r=ft();function i(e,t,n){let r=e*t;return n!==8&&(r=Math.ceil(r/(8/n))),r}let a=t.exports=function(e,t){let r=e.width,a=e.height,o=e.interlace,s=e.bpp,c=e.depth;if(this.read=t.read,this.write=t.write,this.complete=t.complete,this._imageIndex=0,this._images=[],o){let e=n.getImagePasses(r,a);for(let t=0;t<e.length;t++)this._images.push({byteWidth:i(e[t].width,s,c),height:e[t].height,lineIndex:0})}else this._images.push({byteWidth:i(r,s,c),height:a,lineIndex:0});this._xComparison=c===8?s:c===16?s*2:1};a.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))},a.prototype._unFilterType1=function(e,t,n){let r=this._xComparison,i=r-1;for(let a=0;a<n;a++){let n=e[1+a],o=a>i?t[a-r]:0;t[a]=n+o}},a.prototype._unFilterType2=function(e,t,n){let r=this._lastLine;for(let i=0;i<n;i++){let n=e[1+i],a=r?r[i]:0;t[i]=n+a}},a.prototype._unFilterType3=function(e,t,n){let r=this._xComparison,i=r-1,a=this._lastLine;for(let o=0;o<n;o++){let n=e[1+o],s=a?a[o]:0,c=o>i?t[o-r]:0,l=Math.floor((c+s)/2);t[o]=n+l}},a.prototype._unFilterType4=function(e,t,n){let i=this._xComparison,a=i-1,o=this._lastLine;for(let s=0;s<n;s++){let n=e[1+s],c=o?o[s]:0,l=s>a?t[s-i]:0,u=s>a&&o?o[s-i]:0,d=r(l,c,u);t[s]=n+d}},a.prototype._reverseFilterLine=function(e){let t=e[0],n,r=this._images[this._imageIndex],i=r.byteWidth;if(t===0)n=e.slice(1,i+1);else switch(n=Buffer.alloc(i),t){case 1:this._unFilterType1(e,n,i);break;case 2:this._unFilterType2(e,n,i);break;case 3:this._unFilterType3(e,n,i);break;case 4:this._unFilterType4(e,n,i);break;default:throw Error(`Unrecognised filter type - `+t)}this.write(n),r.lineIndex++,r.lineIndex>=r.height?(this._lastLine=null,this._imageIndex++,r=this._images[this._imageIndex]):this._lastLine=n,r?this.read(r.byteWidth+1,this._reverseFilterLine.bind(this)):(this._lastLine=null,this.complete())}})),mt=C(((e,t)=>{let n=w(`util`),r=ut(),i=pt(),a=t.exports=function(e){r.call(this);let t=[],n=this;this._filter=new i(e,{read:this.read.bind(this),write:function(e){t.push(e)},complete:function(){n.emit(`complete`,Buffer.concat(t))}}),this._filter.start()};n.inherits(a,r)})),ht=C(((e,t)=>{t.exports={PNG_SIGNATURE:[137,80,78,71,13,10,26,10],TYPE_IHDR:1229472850,TYPE_IEND:1229278788,TYPE_IDAT:1229209940,TYPE_PLTE:1347179589,TYPE_tRNS:1951551059,TYPE_gAMA:1732332865,COLORTYPE_GRAYSCALE:0,COLORTYPE_PALETTE:1,COLORTYPE_COLOR:2,COLORTYPE_ALPHA:4,COLORTYPE_PALETTE_COLOR:3,COLORTYPE_COLOR_ALPHA:6,COLORTYPE_TO_BPP_MAP:{0:1,2:3,3:1,4:2,6:4},GAMMA_DIVISION:1e5}})),gt=C(((e,t)=>{let n=[];(function(){for(let e=0;e<256;e++){let t=e;for(let e=0;e<8;e++)t&1?t=3988292384^t>>>1:t>>>=1;n[e]=t}})();let r=t.exports=function(){this._crc=-1};r.prototype.write=function(e){for(let t=0;t<e.length;t++)this._crc=n[(this._crc^e[t])&255]^this._crc>>>8;return!0},r.prototype.crc32=function(){return this._crc^-1},r.crc32=function(e){let t=-1;for(let r=0;r<e.length;r++)t=n[(t^e[r])&255]^t>>>8;return t^-1}})),_t=C(((e,t)=>{let n=ht(),r=gt(),i=t.exports=function(e,t){this._options=e,e.checkCRC=e.checkCRC!==!1,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[n.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[n.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[n.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[n.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[n.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[n.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=t.read,this.error=t.error,this.metadata=t.metadata,this.gamma=t.gamma,this.transColor=t.transColor,this.palette=t.palette,this.parsed=t.parsed,this.inflateData=t.inflateData,this.finished=t.finished,this.simpleTransparency=t.simpleTransparency,this.headersFinished=t.headersFinished||function(){}};i.prototype.start=function(){this.read(n.PNG_SIGNATURE.length,this._parseSignature.bind(this))},i.prototype._parseSignature=function(e){let t=n.PNG_SIGNATURE;for(let n=0;n<t.length;n++)if(e[n]!==t[n]){this.error(Error(`Invalid file signature`));return}this.read(8,this._parseChunkBegin.bind(this))},i.prototype._parseChunkBegin=function(e){let t=e.readUInt32BE(0),i=e.readUInt32BE(4),a=``;for(let t=4;t<8;t++)a+=String.fromCharCode(e[t]);let o=!!(e[4]&32);if(!this._hasIHDR&&i!==n.TYPE_IHDR){this.error(Error(`Expected IHDR on beggining`));return}if(this._crc=new r,this._crc.write(Buffer.from(a)),this._chunks[i])return this._chunks[i](t);if(!o){this.error(Error(`Unsupported critical chunk type `+a));return}this.read(t+4,this._skipChunk.bind(this))},i.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))},i.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))},i.prototype._parseChunkEnd=function(e){let t=e.readInt32BE(0),n=this._crc.crc32();if(this._options.checkCRC&&n!==t){this.error(Error(`Crc error - `+t+` - `+n));return}this._hasIEND||this.read(8,this._parseChunkBegin.bind(this))},i.prototype._handleIHDR=function(e){this.read(e,this._parseIHDR.bind(this))},i.prototype._parseIHDR=function(e){this._crc.write(e);let t=e.readUInt32BE(0),r=e.readUInt32BE(4),i=e[8],a=e[9],o=e[10],s=e[11],c=e[12];if(i!==8&&i!==4&&i!==2&&i!==1&&i!==16){this.error(Error(`Unsupported bit depth `+i));return}if(!(a in n.COLORTYPE_TO_BPP_MAP)){this.error(Error(`Unsupported color type`));return}if(o!==0){this.error(Error(`Unsupported compression method`));return}if(s!==0){this.error(Error(`Unsupported filter method`));return}if(c!==0&&c!==1){this.error(Error(`Unsupported interlace method`));return}this._colorType=a;let l=n.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width:t,height:r,depth:i,interlace:!!c,palette:!!(a&n.COLORTYPE_PALETTE),color:!!(a&n.COLORTYPE_COLOR),alpha:!!(a&n.COLORTYPE_ALPHA),bpp:l,colorType:a}),this._handleChunkEnd()},i.prototype._handlePLTE=function(e){this.read(e,this._parsePLTE.bind(this))},i.prototype._parsePLTE=function(e){this._crc.write(e);let t=Math.floor(e.length/3);for(let n=0;n<t;n++)this._palette.push([e[n*3],e[n*3+1],e[n*3+2],255]);this.palette(this._palette),this._handleChunkEnd()},i.prototype._handleTRNS=function(e){this.simpleTransparency(),this.read(e,this._parseTRNS.bind(this))},i.prototype._parseTRNS=function(e){if(this._crc.write(e),this._colorType===n.COLORTYPE_PALETTE_COLOR){if(this._palette.length===0){this.error(Error(`Transparency chunk must be after palette`));return}if(e.length>this._palette.length){this.error(Error(`More transparent colors than palette size`));return}for(let t=0;t<e.length;t++)this._palette[t][3]=e[t];this.palette(this._palette)}this._colorType===n.COLORTYPE_GRAYSCALE&&this.transColor([e.readUInt16BE(0)]),this._colorType===n.COLORTYPE_COLOR&&this.transColor([e.readUInt16BE(0),e.readUInt16BE(2),e.readUInt16BE(4)]),this._handleChunkEnd()},i.prototype._handleGAMA=function(e){this.read(e,this._parseGAMA.bind(this))},i.prototype._parseGAMA=function(e){this._crc.write(e),this.gamma(e.readUInt32BE(0)/n.GAMMA_DIVISION),this._handleChunkEnd()},i.prototype._handleIDAT=function(e){this._emittedHeadersFinished||(this._emittedHeadersFinished=!0,this.headersFinished()),this.read(-e,this._parseIDAT.bind(this,e))},i.prototype._parseIDAT=function(e,t){if(this._crc.write(t),this._colorType===n.COLORTYPE_PALETTE_COLOR&&this._palette.length===0)throw Error(`Expected palette not found`);this.inflateData(t);let r=e-t.length;r>0?this._handleIDAT(r):this._handleChunkEnd()},i.prototype._handleIEND=function(e){this.read(e,this._parseIEND.bind(this))},i.prototype._parseIEND=function(e){this._crc.write(e),this._hasIEND=!0,this._handleChunkEnd(),this.finished&&this.finished()}})),vt=C((e=>{let t=dt(),n=[function(){},function(e,t,n,r){if(r===t.length)throw Error(`Ran out of data`);let i=t[r];e[n]=i,e[n+1]=i,e[n+2]=i,e[n+3]=255},function(e,t,n,r){if(r+1>=t.length)throw Error(`Ran out of data`);let i=t[r];e[n]=i,e[n+1]=i,e[n+2]=i,e[n+3]=t[r+1]},function(e,t,n,r){if(r+2>=t.length)throw Error(`Ran out of data`);e[n]=t[r],e[n+1]=t[r+1],e[n+2]=t[r+2],e[n+3]=255},function(e,t,n,r){if(r+3>=t.length)throw Error(`Ran out of data`);e[n]=t[r],e[n+1]=t[r+1],e[n+2]=t[r+2],e[n+3]=t[r+3]}],r=[function(){},function(e,t,n,r){let i=t[0];e[n]=i,e[n+1]=i,e[n+2]=i,e[n+3]=r},function(e,t,n){let r=t[0];e[n]=r,e[n+1]=r,e[n+2]=r,e[n+3]=t[1]},function(e,t,n,r){e[n]=t[0],e[n+1]=t[1],e[n+2]=t[2],e[n+3]=r},function(e,t,n){e[n]=t[0],e[n+1]=t[1],e[n+2]=t[2],e[n+3]=t[3]}];function i(e,t){let n=[],r=0;function i(){if(r===e.length)throw Error(`Ran out of data`);let i=e[r];r++;let a,o,s,c,l,u,d,f;switch(t){default:throw Error(`unrecognised depth`);case 16:d=e[r],r++,n.push((i<<8)+d);break;case 4:d=i&15,f=i>>4,n.push(f,d);break;case 2:l=i&3,u=i>>2&3,d=i>>4&3,f=i>>6&3,n.push(f,d,u,l);break;case 1:a=i&1,o=i>>1&1,s=i>>2&1,c=i>>3&1,l=i>>4&1,u=i>>5&1,d=i>>6&1,f=i>>7&1,n.push(f,d,u,l,c,s,o,a)}}return{get:function(e){for(;n.length<e;)i();let t=n.slice(0,e);return n=n.slice(e),t},resetAfterLine:function(){n.length=0},end:function(){if(r!==e.length)throw Error(`extra data found`)}}}function a(e,t,r,i,a,o){let s=e.width,c=e.height,l=e.index;for(let e=0;e<c;e++)for(let c=0;c<s;c++){let s=r(c,e,l);n[i](t,a,s,o),o+=i}return o}function o(e,t,n,i,a,o){let s=e.width,c=e.height,l=e.index;for(let e=0;e<c;e++){for(let c=0;c<s;c++){let s=a.get(i),u=n(c,e,l);r[i](t,s,u,o)}a.resetAfterLine()}}e.dataToBitMap=function(e,n){let r=n.width,s=n.height,c=n.depth,l=n.bpp,u=n.interlace,d;c!==8&&(d=i(e,c));let f;f=c<=8?Buffer.alloc(r*s*4):new Uint16Array(r*s*4);let p=2**c-1,m=0,h,g;if(u)h=t.getImagePasses(r,s),g=t.getInterlaceIterator(r,s);else{let e=0;g=function(){let t=e;return e+=4,t},h=[{width:r,height:s}]}for(let t=0;t<h.length;t++)c===8?m=a(h[t],f,g,l,e,m):o(h[t],f,g,l,d,p);if(c===8){if(m!==e.length)throw Error(`extra data found`)}else d.end();return f}})),yt=C(((e,t)=>{function n(e,t,n,r,i){let a=0;for(let o=0;o<r;o++)for(let r=0;r<n;r++){let n=i[e[a]];if(!n)throw Error(`index `+e[a]+` not in palette`);for(let e=0;e<4;e++)t[a+e]=n[e];a+=4}}function r(e,t,n,r,i){let a=0;for(let o=0;o<r;o++)for(let r=0;r<n;r++){let n=!1;if(i.length===1?i[0]===e[a]&&(n=!0):i[0]===e[a]&&i[1]===e[a+1]&&i[2]===e[a+2]&&(n=!0),n)for(let e=0;e<4;e++)t[a+e]=0;a+=4}}function i(e,t,n,r,i){let a=2**i-1,o=0;for(let i=0;i<r;i++)for(let r=0;r<n;r++){for(let n=0;n<4;n++)t[o+n]=Math.floor(e[o+n]*255/a+.5);o+=4}}t.exports=function(e,t,a=!1){let o=t.depth,s=t.width,c=t.height,l=t.colorType,u=t.transColor,d=t.palette,f=e;return l===3?n(e,f,s,c,d):(u&&r(e,f,s,c,u),o!==8&&!a&&(o===16&&(f=Buffer.alloc(s*c*4)),i(e,f,s,c,o))),f}})),bt=C(((e,t)=>{let n=w(`util`),r=w(`zlib`),i=ut(),a=mt(),o=_t(),s=vt(),c=yt(),l=t.exports=function(e){i.call(this),this._parser=new o(e,{read:this.read.bind(this),error:this._handleError.bind(this),metadata:this._handleMetaData.bind(this),gamma:this.emit.bind(this,`gamma`),palette:this._handlePalette.bind(this),transColor:this._handleTransColor.bind(this),finished:this._finished.bind(this),inflateData:this._inflateData.bind(this),simpleTransparency:this._simpleTransparency.bind(this),headersFinished:this._headersFinished.bind(this)}),this._options=e,this.writable=!0,this._parser.start()};n.inherits(l,i),l.prototype._handleError=function(e){this.emit(`error`,e),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy&&this._inflate.destroy(),this._filter&&(this._filter.destroy(),this._filter.on(`error`,function(){})),this.errord=!0},l.prototype._inflateData=function(e){if(!this._inflate){if(this._bitmapInfo.interlace)this._inflate=r.createInflate(),this._inflate.on(`error`,this.emit.bind(this,`error`)),this._filter.on(`complete`,this._complete.bind(this)),this._inflate.pipe(this._filter);else{let e=((this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3)+1)*this._bitmapInfo.height,t=Math.max(e,r.Z_MIN_CHUNK);this._inflate=r.createInflate({chunkSize:t});let n=e,i=this.emit.bind(this,`error`);this._inflate.on(`error`,function(e){n&&i(e)}),this._filter.on(`complete`,this._complete.bind(this));let a=this._filter.write.bind(this._filter);this._inflate.on(`data`,function(e){n&&(e.length>n&&(e=e.slice(0,n)),n-=e.length,a(e))}),this._inflate.on(`end`,this._filter.end.bind(this._filter))}}this._inflate.write(e)},l.prototype._handleMetaData=function(e){this._metaData=e,this._bitmapInfo=Object.create(e),this._filter=new a(this._bitmapInfo)},l.prototype._handleTransColor=function(e){this._bitmapInfo.transColor=e},l.prototype._handlePalette=function(e){this._bitmapInfo.palette=e},l.prototype._simpleTransparency=function(){this._metaData.alpha=!0},l.prototype._headersFinished=function(){this.emit(`metadata`,this._metaData)},l.prototype._finished=function(){this.errord||(this._inflate?this._inflate.end():this.emit(`error`,`No Inflate block`))},l.prototype._complete=function(e){if(this.errord)return;let t;try{let n=s.dataToBitMap(e,this._bitmapInfo);t=c(n,this._bitmapInfo,this._options.skipRescale),n=null}catch(e){this._handleError(e);return}this.emit(`parsed`,t)}})),xt=C(((e,t)=>{let n=ht();t.exports=function(e,t,r,i){let a=[n.COLORTYPE_COLOR_ALPHA,n.COLORTYPE_ALPHA].indexOf(i.colorType)!==-1;if(i.colorType===i.inputColorType){let t=(function(){let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),new Int16Array(e)[0]!==256})();if(i.bitDepth===8||i.bitDepth===16&&t)return e}let o=i.bitDepth===16?new Uint16Array(e.buffer):e,s=255,c=n.COLORTYPE_TO_BPP_MAP[i.inputColorType];c===4&&!i.inputHasAlpha&&(c=3);let l=n.COLORTYPE_TO_BPP_MAP[i.colorType];i.bitDepth===16&&(s=65535,l*=2);let u=Buffer.alloc(t*r*l),d=0,f=0,p=i.bgColor||{};p.red===void 0&&(p.red=s),p.green===void 0&&(p.green=s),p.blue===void 0&&(p.blue=s);function m(){let e,t,r,c=s;switch(i.inputColorType){case n.COLORTYPE_COLOR_ALPHA:c=o[d+3],e=o[d],t=o[d+1],r=o[d+2];break;case n.COLORTYPE_COLOR:e=o[d],t=o[d+1],r=o[d+2];break;case n.COLORTYPE_ALPHA:c=o[d+1],e=o[d],t=e,r=e;break;case n.COLORTYPE_GRAYSCALE:e=o[d],t=e,r=e;break;default:throw Error(`input color type:`+i.inputColorType+` is not supported at present`)}return i.inputHasAlpha&&(a||(c/=s,e=Math.min(Math.max(Math.round((1-c)*p.red+c*e),0),s),t=Math.min(Math.max(Math.round((1-c)*p.green+c*t),0),s),r=Math.min(Math.max(Math.round((1-c)*p.blue+c*r),0),s))),{red:e,green:t,blue:r,alpha:c}}for(let e=0;e<r;e++)for(let e=0;e<t;e++){let e=m(o,d);switch(i.colorType){case n.COLORTYPE_COLOR_ALPHA:case n.COLORTYPE_COLOR:i.bitDepth===8?(u[f]=e.red,u[f+1]=e.green,u[f+2]=e.blue,a&&(u[f+3]=e.alpha)):(u.writeUInt16BE(e.red,f),u.writeUInt16BE(e.green,f+2),u.writeUInt16BE(e.blue,f+4),a&&u.writeUInt16BE(e.alpha,f+6));break;case n.COLORTYPE_ALPHA:case n.COLORTYPE_GRAYSCALE:{let t=(e.red+e.green+e.blue)/3;i.bitDepth===8?(u[f]=t,a&&(u[f+1]=e.alpha)):(u.writeUInt16BE(t,f),a&&u.writeUInt16BE(e.alpha,f+2));break}default:throw Error(`unrecognised color Type `+i.colorType)}d+=c,f+=l}return u}})),St=C(((e,t)=>{let n=ft();function r(e,t,n,r,i){for(let a=0;a<n;a++)r[i+a]=e[t+a]}function i(e,t,n){let r=0,i=t+n;for(let n=t;n<i;n++)r+=Math.abs(e[n]);return r}function a(e,t,n,r,i,a){for(let o=0;o<n;o++){let n=o>=a?e[t+o-a]:0,s=e[t+o]-n;r[i+o]=s}}function o(e,t,n,r){let i=0;for(let a=0;a<n;a++){let n=a>=r?e[t+a-r]:0,o=e[t+a]-n;i+=Math.abs(o)}return i}function s(e,t,n,r,i){for(let a=0;a<n;a++){let o=t>0?e[t+a-n]:0,s=e[t+a]-o;r[i+a]=s}}function c(e,t,n){let r=0,i=t+n;for(let a=t;a<i;a++){let i=t>0?e[a-n]:0,o=e[a]-i;r+=Math.abs(o)}return r}function l(e,t,n,r,i,a){for(let o=0;o<n;o++){let s=o>=a?e[t+o-a]:0,c=t>0?e[t+o-n]:0,l=e[t+o]-(s+c>>1);r[i+o]=l}}function u(e,t,n,r){let i=0;for(let a=0;a<n;a++){let o=a>=r?e[t+a-r]:0,s=t>0?e[t+a-n]:0,c=e[t+a]-(o+s>>1);i+=Math.abs(c)}return i}function d(e,t,r,i,a,o){for(let s=0;s<r;s++){let c=s>=o?e[t+s-o]:0,l=t>0?e[t+s-r]:0,u=t>0&&s>=o?e[t+s-(r+o)]:0,d=e[t+s]-n(c,l,u);i[a+s]=d}}function f(e,t,r,i){let a=0;for(let o=0;o<r;o++){let s=o>=i?e[t+o-i]:0,c=t>0?e[t+o-r]:0,l=t>0&&o>=i?e[t+o-(r+i)]:0,u=e[t+o]-n(s,c,l);a+=Math.abs(u)}return a}let p={0:r,1:a,2:s,3:l,4:d},m={0:i,1:o,2:c,3:u,4:f};t.exports=function(e,t,n,r,i){let a;if(!(`filterType`in r)||r.filterType===-1)a=[0,1,2,3,4];else if(typeof r.filterType==`number`)a=[r.filterType];else throw Error(`unrecognised filter types`);r.bitDepth===16&&(i*=2);let o=t*i,s=0,c=0,l=Buffer.alloc((o+1)*n),u=a[0];for(let t=0;t<n;t++){if(a.length>1){let t=1/0;for(let n=0;n<a.length;n++){let r=m[a[n]](e,c,o,i);r<t&&(u=a[n],t=r)}}l[s]=u,s++,p[u](e,c,o,l,s,i),s+=o,c+=o}return l}})),Ct=C(((e,t)=>{let n=ht(),r=gt(),i=xt(),a=St(),o=w(`zlib`),s=t.exports=function(e){if(this._options=e,e.deflateChunkSize=e.deflateChunkSize||32768,e.deflateLevel=e.deflateLevel==null?9:e.deflateLevel,e.deflateStrategy=e.deflateStrategy==null?3:e.deflateStrategy,e.inputHasAlpha=e.inputHasAlpha==null||e.inputHasAlpha,e.deflateFactory=e.deflateFactory||o.createDeflate,e.bitDepth=e.bitDepth||8,e.colorType=typeof e.colorType==`number`?e.colorType:n.COLORTYPE_COLOR_ALPHA,e.inputColorType=typeof e.inputColorType==`number`?e.inputColorType:n.COLORTYPE_COLOR_ALPHA,[n.COLORTYPE_GRAYSCALE,n.COLORTYPE_COLOR,n.COLORTYPE_COLOR_ALPHA,n.COLORTYPE_ALPHA].indexOf(e.colorType)===-1)throw Error(`option color type:`+e.colorType+` is not supported at present`);if([n.COLORTYPE_GRAYSCALE,n.COLORTYPE_COLOR,n.COLORTYPE_COLOR_ALPHA,n.COLORTYPE_ALPHA].indexOf(e.inputColorType)===-1)throw Error(`option input color type:`+e.inputColorType+` is not supported at present`);if(e.bitDepth!==8&&e.bitDepth!==16)throw Error(`option bit depth:`+e.bitDepth+` is not supported at present`)};s.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}},s.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())},s.prototype.filterData=function(e,t,r){let o=i(e,t,r,this._options),s=n.COLORTYPE_TO_BPP_MAP[this._options.colorType];return a(o,t,r,this._options,s)},s.prototype._packChunk=function(e,t){let n=t?t.length:0,i=Buffer.alloc(n+12);return i.writeUInt32BE(n,0),i.writeUInt32BE(e,4),t&&t.copy(i,8),i.writeInt32BE(r.crc32(i.slice(4,i.length-4)),i.length-4),i},s.prototype.packGAMA=function(e){let t=Buffer.alloc(4);return t.writeUInt32BE(Math.floor(e*n.GAMMA_DIVISION),0),this._packChunk(n.TYPE_gAMA,t)},s.prototype.packIHDR=function(e,t){let r=Buffer.alloc(13);return r.writeUInt32BE(e,0),r.writeUInt32BE(t,4),r[8]=this._options.bitDepth,r[9]=this._options.colorType,r[10]=0,r[11]=0,r[12]=0,this._packChunk(n.TYPE_IHDR,r)},s.prototype.packIDAT=function(e){return this._packChunk(n.TYPE_IDAT,e)},s.prototype.packIEND=function(){return this._packChunk(n.TYPE_IEND,null)}})),wt=C(((e,t)=>{let n=w(`util`),r=w(`stream`),i=ht(),a=Ct(),o=t.exports=function(e){r.call(this);let t=e||{};this._packer=new a(t),this._deflate=this._packer.createDeflate(),this.readable=!0};n.inherits(o,r),o.prototype.pack=function(e,t,n,r){this.emit(`data`,Buffer.from(i.PNG_SIGNATURE)),this.emit(`data`,this._packer.packIHDR(t,n)),r&&this.emit(`data`,this._packer.packGAMA(r));let a=this._packer.filterData(e,t,n);this._deflate.on(`error`,this.emit.bind(this,`error`)),this._deflate.on(`data`,function(e){this.emit(`data`,this._packer.packIDAT(e))}.bind(this)),this._deflate.on(`end`,function(){this.emit(`data`,this._packer.packIEND()),this.emit(`end`)}.bind(this)),this._deflate.end(a)}})),Tt=C(((e,t)=>{let n=w(`assert`).ok,r=w(`zlib`),i=w(`util`),a=w(`buffer`).kMaxLength;function o(e){if(!(this instanceof o))return new o(e);e&&e.chunkSize<r.Z_MIN_CHUNK&&(e.chunkSize=r.Z_MIN_CHUNK),r.Inflate.call(this,e),this._offset=this._offset===void 0?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,e&&e.maxLength!=null&&(this._maxLength=e.maxLength)}function s(e){return new o(e)}function c(e,t){t&&process.nextTick(t),e._handle&&=(e._handle.close(),null)}o.prototype._processChunk=function(e,t,i){if(typeof i==`function`)return r.Inflate._processChunk.call(this,e,t,i);let o=this,s=e&&e.length,l=this._chunkSize-this._offset,u=this._maxLength,d=0,f=[],p=0,m;this.on(`error`,function(e){m=e});function h(e,t){if(o._hadError)return;let r=l-t;if(n(r>=0,`have should not go down`),r>0){let e=o._buffer.slice(o._offset,o._offset+r);if(o._offset+=r,e.length>u&&(e=e.slice(0,u)),f.push(e),p+=e.length,u-=e.length,u===0)return!1}return(t===0||o._offset>=o._chunkSize)&&(l=o._chunkSize,o._offset=0,o._buffer=Buffer.allocUnsafe(o._chunkSize)),t===0&&(d+=s-e,s=e,!0)}n(this._handle,`zlib binding closed`);let g;do g=this._handle.writeSync(t,e,d,s,this._buffer,this._offset,l),g||=this._writeState;while(!this._hadError&&h(g[0],g[1]));if(this._hadError)throw m;if(p>=a)throw c(this),RangeError(`Cannot create final Buffer. It would be larger than 0x`+a.toString(16)+` bytes`);let _=Buffer.concat(f,p);return c(this),_},i.inherits(o,r.Inflate);function l(e,t){if(typeof t==`string`&&(t=Buffer.from(t)),!(t instanceof Buffer))throw TypeError(`Not a string or buffer`);let n=e._finishFlushFlag;return n??=r.Z_FINISH,e._processChunk(t,n)}function u(e,t){return l(new o(t),e)}t.exports=e=u,e.Inflate=o,e.createInflate=s,e.inflateSync=u})),Et=C(((e,t)=>{let n=t.exports=function(e){this._buffer=e,this._reads=[]};n.prototype.read=function(e,t){this._reads.push({length:Math.abs(e),allowLess:e<0,func:t})},n.prototype.process=function(){for(;this._reads.length>0&&this._buffer.length;){let e=this._reads[0];if(this._buffer.length&&(this._buffer.length>=e.length||e.allowLess)){this._reads.shift();let t=this._buffer;this._buffer=t.slice(e.length),e.func.call(this,t.slice(0,e.length))}else break}if(this._reads.length>0)throw Error(`There are some read requests waitng on finished stream`);if(this._buffer.length>0)throw Error(`unrecognised content at end of stream`)}})),Dt=C((e=>{let t=Et(),n=pt();e.process=function(e,r){let i=[],a=new t(e);return new n(r,{read:a.read.bind(a),write:function(e){i.push(e)},complete:function(){}}).start(),a.process(),Buffer.concat(i)}})),Ot=C(((e,t)=>{let n=!0,r=w(`zlib`),i=Tt();r.deflateSync||(n=!1);let a=Et(),o=Dt(),s=_t(),c=vt(),l=yt();t.exports=function(e,t){if(!n)throw Error(`To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0`);let u;function d(e){u=e}let f;function p(e){f=e}function m(e){f.transColor=e}function h(e){f.palette=e}function g(){f.alpha=!0}let _;function ee(e){_=e}let v=[];function y(e){v.push(e)}let te=new a(e);if(new s(t,{read:te.read.bind(te),error:d,metadata:p,gamma:ee,palette:h,transColor:m,inflateData:y,simpleTransparency:g}).start(),te.process(),u)throw u;let b=Buffer.concat(v);v.length=0;let x;if(f.interlace)x=r.inflateSync(b);else{let e=((f.width*f.bpp*f.depth+7>>3)+1)*f.height;x=i(b,{chunkSize:e,maxLength:e})}if(b=null,!x||!x.length)throw Error(`bad png - invalid inflate data response`);let ne=o.process(x,f);b=null;let re=c.dataToBitMap(ne,f);ne=null;let ie=l(re,f,t.skipRescale);return f.data=ie,f.gamma=_||0,f}})),kt=C(((e,t)=>{let n=!0,r=w(`zlib`);r.deflateSync||(n=!1);let i=ht(),a=Ct();t.exports=function(e,t){if(!n)throw Error(`To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0`);let o=new a(t||{}),s=[];s.push(Buffer.from(i.PNG_SIGNATURE)),s.push(o.packIHDR(e.width,e.height)),e.gamma&&s.push(o.packGAMA(e.gamma));let c=o.filterData(e.data,e.width,e.height),l=r.deflateSync(c,o.getDeflateOptions());if(c=null,!l||!l.length)throw Error(`bad png - invalid compressed data response`);return s.push(o.packIDAT(l)),s.push(o.packIEND()),Buffer.concat(s)}})),At=C((e=>{let t=Ot(),n=kt();e.read=function(e,n){return t(e,n||{})},e.write=function(e,t){return n(e,t)}})),jt=C((e=>{let t=w(`util`),n=w(`stream`),r=bt(),i=wt(),a=At(),o=e.PNG=function(e){n.call(this),e||={},this.width=e.width|0,this.height=e.height|0,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,e.fill&&this.data&&this.data.fill(0),this.gamma=0,this.readable=this.writable=!0,this._parser=new r(e),this._parser.on(`error`,this.emit.bind(this,`error`)),this._parser.on(`close`,this._handleClose.bind(this)),this._parser.on(`metadata`,this._metadata.bind(this)),this._parser.on(`gamma`,this._gamma.bind(this)),this._parser.on(`parsed`,function(e){this.data=e,this.emit(`parsed`,e)}.bind(this)),this._packer=new i(e),this._packer.on(`data`,this.emit.bind(this,`data`)),this._packer.on(`end`,this.emit.bind(this,`end`)),this._parser.on(`close`,this._handleClose.bind(this)),this._packer.on(`error`,this.emit.bind(this,`error`))};t.inherits(o,n),o.sync=a,o.prototype.pack=function(){return!this.data||!this.data.length?(this.emit(`error`,`No data provided`),this):(process.nextTick(function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}.bind(this)),this)},o.prototype.parse=function(e,t){if(t){let e,n;e=function(e){this.removeListener(`error`,n),this.data=e,t(null,this)}.bind(this),n=function(n){this.removeListener(`parsed`,e),t(n,null)}.bind(this),this.once(`parsed`,e),this.once(`error`,n)}return this.end(e),this},o.prototype.write=function(e){return this._parser.write(e),!0},o.prototype.end=function(e){this._parser.end(e)},o.prototype._metadata=function(e){this.width=e.width,this.height=e.height,this.emit(`metadata`,e)},o.prototype._gamma=function(e){this.gamma=e},o.prototype._handleClose=function(){!this._parser.writable&&!this._packer.readable&&this.emit(`close`)},o.bitblt=function(e,t,n,r,i,a,o,s){if(n|=0,r|=0,i|=0,a|=0,o|=0,s|=0,n>e.width||r>e.height||n+i>e.width||r+a>e.height)throw Error(`bitblt reading outside image`);if(o>t.width||s>t.height||o+i>t.width||s+a>t.height)throw Error(`bitblt writing outside image`);for(let c=0;c<a;c++)e.data.copy(t.data,(s+c)*t.width+o<<2,(r+c)*e.width+n<<2,(r+c)*e.width+n+i<<2)},o.prototype.bitblt=function(e,t,n,r,i,a,s){return o.bitblt(this,e,t,n,r,i,a,s),this},o.adjustGamma=function(e){if(e.gamma){for(let t=0;t<e.height;t++)for(let n=0;n<e.width;n++){let r=e.width*t+n<<2;for(let t=0;t<3;t++){let n=e.data[r+t]/255;n**=1/2.2/e.gamma,e.data[r+t]=Math.round(n*255)}}e.gamma=0}},o.prototype.adjustGamma=function(){o.adjustGamma(this)}}));Object.freeze({status:`aborted`});function E(e,t,n){function r(n,r){if(n._zod||Object.defineProperty(n,"_zod",{value:{def:r,constr:o,traits:new Set},enumerable:!1}),n._zod.traits.has(e))return;n._zod.traits.add(e),t(n,r);let i=o.prototype,a=Object.keys(i);for(let e=0;e<a.length;e++){let t=a[e];t in n||(n[t]=i[t].bind(n))}}let i=n?.Parent??Object;class a extends i{}Object.defineProperty(a,"name",{value:e});function o(e){var t;let i=n?.Parent?new a:this;r(i,e),(t=i._zod).deferred??(t.deferred=[]);for(let e of i._zod.deferred)e();return i}return Object.defineProperty(o,"init",{value:r}),Object.defineProperty(o,Symbol.hasInstance,{value:t=>n?.Parent&&t instanceof n.Parent?!0:t?._zod?.traits?.has(e)}),Object.defineProperty(o,"name",{value:e}),o}var Mt=class extends Error{constructor(){super(`Encountered Promise during synchronous parse. Use .parseAsync() instead.`)}},Nt=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name=`ZodEncodeError`}};const Pt={};function Ft(e){return e&&Object.assign(Pt,e),Pt}function It(e){let t=Object.values(e).filter(e=>typeof e==`number`);return Object.entries(e).filter(([e,n])=>t.indexOf(+e)===-1).map(([e,t])=>t)}function Lt(e,t){return typeof t==`bigint`?t.toString():t}function Rt(e){return{get value(){{let t=e();return Object.defineProperty(this,"value",{value:t}),t}}}}function zt(e){return e==null}function Bt(e){let t=+!!e.startsWith(`^`),n=e.endsWith(`$`)?e.length-1:e.length;return e.slice(t,n)}function Vt(e,t){let n=(e.toString().split(`.`)[1]||``).length,r=t.toString(),i=(r.split(`.`)[1]||``).length;if(i===0&&/\d?e-\d?/.test(r)){let e=r.match(/\d?e-(\d?)/);e?.[1]&&(i=Number.parseInt(e[1]))}let a=n>i?n:i;return Number.parseInt(e.toFixed(a).replace(`.`,``))%Number.parseInt(t.toFixed(a).replace(`.`,``))/10**a}const Ht=Symbol(`evaluating`);function D(e,t,n){let r;Object.defineProperty(e,t,{get(){if(r!==Ht)return r===void 0&&(r=Ht,r=n()),r},set(n){Object.defineProperty(e,t,{value:n})},configurable:!0})}function Ut(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function Wt(...e){let t={};for(let n of e){let e=Object.getOwnPropertyDescriptors(n);Object.assign(t,e)}return Object.defineProperties({},t)}function Gt(e){return JSON.stringify(e)}function Kt(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,``).replace(/[\s_-]+/g,`-`).replace(/^-+|-+$/g,``)}const qt=`captureStackTrace`in Error?Error.captureStackTrace:(...e)=>{};function Jt(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}const Yt=Rt(()=>{if(typeof navigator<`u`&&navigator?.userAgent?.includes(`Cloudflare`))return!1;try{return Function(``),!0}catch{return!1}});function Xt(e){if(Jt(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!=`function`)return!0;let n=t.prototype;return Jt(n)!==!1&&Object.prototype.hasOwnProperty.call(n,`isPrototypeOf`)!==!1}function Zt(e){return Xt(e)?{...e}:Array.isArray(e)?[...e]:e}const Qt=new Set([`string`,`number`,`symbol`]);function $t(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function en(e,t,n){let r=new e._zod.constr(t??e._zod.def);return(!t||n?.parent)&&(r._zod.parent=e),r}function O(e){let t=e;if(!t)return{};if(typeof t==`string`)return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error==`string`?{...t,error:()=>t.error}:t}function tn(e){return Object.keys(e).filter(t=>e[t]._zod.optin===`optional`&&e[t]._zod.optout===`optional`)}const nn={safeint:[-(2**53-1),2**53-1],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function rn(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.pick() cannot be used on object schemas containing refinements`);return en(e,Wt(e._zod.def,{get shape(){let e={};for(let r in t){if(!(r in n.shape))throw Error(`Unrecognized key: "${r}"`);t[r]&&(e[r]=n.shape[r])}return Ut(this,`shape`,e),e},checks:[]}))}function an(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(`.omit() cannot be used on object schemas containing refinements`);return en(e,Wt(e._zod.def,{get shape(){let r={...e._zod.def.shape};for(let e in t){if(!(e in n.shape))throw Error(`Unrecognized key: "${e}"`);t[e]&&delete r[e]}return Ut(this,`shape`,r),r},checks:[]}))}function on(e,t){if(!Xt(t))throw Error(`Invalid input to extend: expected a plain object`);let n=e._zod.def.checks;if(n&&n.length>0){let n=e._zod.def.shape;for(let e in t)if(Object.getOwnPropertyDescriptor(n,e)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return en(e,Wt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ut(this,`shape`,n),n}}))}function sn(e,t){if(!Xt(t))throw Error(`Invalid input to safeExtend: expected a plain object`);return en(e,Wt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t};return Ut(this,`shape`,n),n}}))}function cn(e,t){return en(e,Wt(e._zod.def,{get shape(){let n={...e._zod.def.shape,...t._zod.def.shape};return Ut(this,`shape`,n),n},get catchall(){return t._zod.def.catchall},checks:[]}))}function ln(e,t,n){let r=t._zod.def.checks;if(r&&r.length>0)throw Error(`.partial() cannot be used on object schemas containing refinements`);return en(t,Wt(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in r))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t])}else for(let t in r)i[t]=e?new e({type:`optional`,innerType:r[t]}):r[t];return Ut(this,`shape`,i),i},checks:[]}))}function un(e,t,n){return en(t,Wt(t._zod.def,{get shape(){let r=t._zod.def.shape,i={...r};if(n)for(let t in n){if(!(t in i))throw Error(`Unrecognized key: "${t}"`);n[t]&&(i[t]=new e({type:`nonoptional`,innerType:r[t]}))}else for(let t in r)i[t]=new e({type:`nonoptional`,innerType:r[t]});return Ut(this,`shape`,i),i}}))}function dn(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function fn(e,t){return t.map(t=>{var n;return(n=t).path??(n.path=[]),t.path.unshift(e),t})}function pn(e){return typeof e==`string`?e:e?.message}function mn(e,t,n){let r={...e,path:e.path??[]};return e.message||(r.message=pn(e.inst?._zod.def?.error?.(e))??pn(t?.error?.(e))??pn(n.customError?.(e))??pn(n.localeError?.(e))??`Invalid input`),delete r.inst,delete r.continue,t?.reportInput||delete r.input,r}function hn(e){return Array.isArray(e)?`array`:typeof e==`string`?`string`:`unknown`}function gn(...e){let[t,n,r]=e;return typeof t==`string`?{message:t,code:`custom`,input:n,inst:r}:{...t}}const _n=(e,t)=>{e.name=`$ZodError`,Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Lt,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},vn=E(`$ZodError`,_n),yn=E(`$ZodError`,_n,{Parent:Error});function bn(e,t=e=>e.message){let n={},r=[];for(let i of e.issues)i.path.length>0?(n[i.path[0]]=n[i.path[0]]||[],n[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:n}}function xn(e,t=e=>e.message){let n={_errors:[]},r=e=>{for(let i of e.issues)if(i.code===`invalid_union`&&i.errors.length)i.errors.map(e=>r({issues:e}));else if(i.code===`invalid_key`)r({issues:i.issues});else if(i.code===`invalid_element`)r({issues:i.issues});else if(i.path.length===0)n._errors.push(t(i));else{let e=n,r=0;for(;r<i.path.length;){let n=i.path[r];r===i.path.length-1?(e[n]=e[n]||{_errors:[]},e[n]._errors.push(t(i))):e[n]=e[n]||{_errors:[]},e=e[n],r++}}};return r(e),n}const Sn=e=>(t,n,r,i)=>{let a=r?Object.assign(r,{async:!1}):{async:!1},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise)throw new Mt;if(o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>mn(e,a,Ft())));throw qt(t,i?.callee),t}return o.value},Cn=e=>async(t,n,r,i)=>{let a=r?Object.assign(r,{async:!0}):{async:!0},o=t._zod.run({value:n,issues:[]},a);if(o instanceof Promise&&(o=await o),o.issues.length){let t=new((i?.Err)??e)(o.issues.map(e=>mn(e,a,Ft())));throw qt(t,i?.callee),t}return o.value},wn=e=>(t,n,r)=>{let i=r?{...r,async:!1}:{async:!1},a=t._zod.run({value:n,issues:[]},i);if(a instanceof Promise)throw new Mt;return a.issues.length?{success:!1,error:new(e??vn)(a.issues.map(e=>mn(e,i,Ft())))}:{success:!0,data:a.value}},Tn=wn(yn),En=e=>async(t,n,r)=>{let i=r?Object.assign(r,{async:!0}):{async:!0},a=t._zod.run({value:n,issues:[]},i);return a instanceof Promise&&(a=await a),a.issues.length?{success:!1,error:new e(a.issues.map(e=>mn(e,i,Ft())))}:{success:!0,data:a.value}},Dn=En(yn),On=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return Sn(e)(t,n,i)},kn=e=>(t,n,r)=>Sn(e)(t,n,r),An=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return Cn(e)(t,n,i)},jn=e=>async(t,n,r)=>Cn(e)(t,n,r),Mn=e=>(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return wn(e)(t,n,i)},Nn=e=>(t,n,r)=>wn(e)(t,n,r),Pn=e=>async(t,n,r)=>{let i=r?Object.assign(r,{direction:`backward`}):{direction:`backward`};return En(e)(t,n,i)},Fn=e=>async(t,n,r)=>En(e)(t,n,r),In=/^[cC][^\s-]{8,}$/,Ln=/^[0-9a-z]+$/,Rn=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,zn=/^[0-9a-vA-V]{20}$/,Bn=/^[A-Za-z0-9]{27}$/,Vn=/^[a-zA-Z0-9_-]{21}$/,Hn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Un=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Wn=e=>e?RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Gn=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;function Kn(){return RegExp(`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`,`u`)}const qn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Jn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Yn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Xn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Zn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Qn=/^[A-Za-z0-9_-]*$/,$n=/^\+[1-9]\d{6,14}$/,er=`(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))`,tr=RegExp(`^${er}$`);function nr(e){let t=`(?:[01]\\d|2[0-3]):[0-5]\\d`;return typeof e.precision==`number`?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function rr(e){return RegExp(`^${nr(e)}$`)}function ir(e){let t=nr({precision:e.precision}),n=[`Z`];e.local&&n.push(``),e.offset&&n.push(`([+-](?:[01]\\d|2[0-3]):[0-5]\\d)`);let r=`${t}(?:${n.join(`|`)})`;return RegExp(`^${er}T(?:${r})$`)}const ar=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??``}}`:`[\\s\\S]*`;return RegExp(`^${t}$`)},or=/^-?\d+$/,sr=/^-?\d+(?:\.\d+)?$/,cr=/^(?:true|false)$/i,lr=/^[^A-Z]*$/,ur=/^[^a-z]*$/,k=E(`$ZodCheck`,(e,t)=>{var n;e._zod??={},e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])}),dr={number:`number`,bigint:`bigint`,object:`date`},fr=E(`$ZodCheckLessThan`,(e,t)=>{k.init(e,t);let n=dr[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.maximum:n.exclusiveMaximum)??1/0;t.value<r&&(t.inclusive?n.maximum=t.value:n.exclusiveMaximum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value<=t.value:r.value<t.value)||r.issues.push({origin:n,code:`too_big`,maximum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),pr=E(`$ZodCheckGreaterThan`,(e,t)=>{k.init(e,t);let n=dr[typeof t.value];e._zod.onattach.push(e=>{let n=e._zod.bag,r=(t.inclusive?n.minimum:n.exclusiveMinimum)??-1/0;t.value>r&&(t.inclusive?n.minimum=t.value:n.exclusiveMinimum=t.value)}),e._zod.check=r=>{(t.inclusive?r.value>=t.value:r.value>t.value)||r.issues.push({origin:n,code:`too_small`,minimum:typeof t.value==`object`?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),mr=E(`$ZodCheckMultipleOf`,(e,t)=>{k.init(e,t),e._zod.onattach.push(e=>{var n;(n=e._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=n=>{if(typeof n.value!=typeof t.value)throw Error(`Cannot mix number and bigint in multiple_of check.`);(typeof n.value==`bigint`?n.value%t.value===BigInt(0):Vt(n.value,t.value)===0)||n.issues.push({origin:typeof n.value,code:`not_multiple_of`,divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),hr=E(`$ZodCheckNumberFormat`,(e,t)=>{k.init(e,t),t.format=t.format||`float64`;let n=t.format?.includes(`int`),r=n?`int`:`number`,[i,a]=nn[t.format];e._zod.onattach.push(e=>{let r=e._zod.bag;r.format=t.format,r.minimum=i,r.maximum=a,n&&(r.pattern=or)}),e._zod.check=o=>{let s=o.value;if(n){if(!Number.isInteger(s)){o.issues.push({expected:r,format:t.format,code:`invalid_type`,continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?o.issues.push({input:s,code:`too_big`,maximum:2**53-1,note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort}):o.issues.push({input:s,code:`too_small`,minimum:-(2**53-1),note:`Integers must be within the safe integer range.`,inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}s<i&&o.issues.push({origin:`number`,input:s,code:`too_small`,minimum:i,inclusive:!0,inst:e,continue:!t.abort}),s>a&&o.issues.push({origin:`number`,input:s,code:`too_big`,maximum:a,inclusive:!0,inst:e,continue:!t.abort})}}),gr=E(`$ZodCheckMaxLength`,(e,t)=>{var n;k.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!zt(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.maximum??1/0;t.maximum<n&&(e._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{let r=n.value;if(r.length<=t.maximum)return;let i=hn(r);n.issues.push({origin:i,code:`too_big`,maximum:t.maximum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),_r=E(`$ZodCheckMinLength`,(e,t)=>{var n;k.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!zt(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag.minimum??-1/0;t.minimum>n&&(e._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{let r=n.value;if(r.length>=t.minimum)return;let i=hn(r);n.issues.push({origin:i,code:`too_small`,minimum:t.minimum,inclusive:!0,input:r,inst:e,continue:!t.abort})}}),vr=E(`$ZodCheckLengthEquals`,(e,t)=>{var n;k.init(e,t),(n=e._zod.def).when??(n.when=e=>{let t=e.value;return!zt(t)&&t.length!==void 0}),e._zod.onattach.push(e=>{let n=e._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=n=>{let r=n.value,i=r.length;if(i===t.length)return;let a=hn(r),o=i>t.length;n.issues.push({origin:a,...o?{code:`too_big`,maximum:t.length}:{code:`too_small`,minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),yr=E(`$ZodCheckStringFormat`,(e,t)=>{var n,r;k.init(e,t),e._zod.onattach.push(e=>{let n=e._zod.bag;n.format=t.format,t.pattern&&(n.patterns??=new Set,n.patterns.add(t.pattern))}),t.pattern?(n=e._zod).check??(n.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(r=e._zod).check??(r.check=()=>{})}),br=E(`$ZodCheckRegex`,(e,t)=>{yr.init(e,t),e._zod.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:`string`,code:`invalid_format`,format:`regex`,input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),xr=E(`$ZodCheckLowerCase`,(e,t)=>{t.pattern??=lr,yr.init(e,t)}),Sr=E(`$ZodCheckUpperCase`,(e,t)=>{t.pattern??=ur,yr.init(e,t)}),Cr=E(`$ZodCheckIncludes`,(e,t)=>{k.init(e,t);let n=$t(t.includes),r=new RegExp(typeof t.position==`number`?`^.{${t.position}}${n}`:n);t.pattern=r,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(r)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:`string`,code:`invalid_format`,format:`includes`,includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),wr=E(`$ZodCheckStartsWith`,(e,t)=>{k.init(e,t);let n=RegExp(`^${$t(t.prefix)}.*`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`starts_with`,prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),Tr=E(`$ZodCheckEndsWith`,(e,t)=>{k.init(e,t);let n=RegExp(`.*${$t(t.suffix)}$`);t.pattern??=n,e._zod.onattach.push(e=>{let t=e._zod.bag;t.patterns??=new Set,t.patterns.add(n)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:`string`,code:`invalid_format`,format:`ends_with`,suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),Er=E(`$ZodCheckOverwrite`,(e,t)=>{k.init(e,t),e._zod.check=e=>{e.value=t.tx(e.value)}});var Dr=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),--this.indent}write(e){if(typeof e==`function`){e(this,{execution:`sync`}),e(this,{execution:`async`});return}let t=e.split(`
7
7
  `).filter(e=>e),n=Math.min(...t.map(e=>e.length-e.trimStart().length)),r=t.map(e=>e.slice(n)).map(e=>` `.repeat(this.indent*2)+e);for(let e of r)this.content.push(e)}compile(){let e=Function,t=this?.args,n=[...(this?.content??[``]).map(e=>` ${e}`)];return new e(...t,n.join(`
8
8
  `))}};const Or={major:4,minor:3,patch:6},A=E(`$ZodType`,(e,t)=>{var n;e??={},e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=Or;let r=[...e._zod.def.checks??[]];e._zod.traits.has(`$ZodCheck`)&&r.unshift(e);for(let t of r)for(let n of t._zod.onattach)n(e);if(r.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let t=(e,t,n)=>{let r=dn(e),i;for(let a of t){if(a._zod.def.when){if(!a._zod.def.when(e))continue}else if(r)continue;let t=e.issues.length,o=a._zod.check(e);if(o instanceof Promise&&n?.async===!1)throw new Mt;if(i||o instanceof Promise)i=(i??Promise.resolve()).then(async()=>{await o,e.issues.length!==t&&(r||=dn(e,t))});else{if(e.issues.length===t)continue;r||=dn(e,t)}}return i?i.then(()=>e):e},n=(n,i,a)=>{if(dn(n))return n.aborted=!0,n;let o=t(i,r,a);if(o instanceof Promise){if(a.async===!1)throw new Mt;return o.then(t=>e._zod.parse(t,a))}return e._zod.parse(o,a)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction===`backward`){let t=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return t instanceof Promise?t.then(e=>n(e,i,a)):n(t,i,a)}let o=e._zod.parse(i,a);if(o instanceof Promise){if(a.async===!1)throw new Mt;return o.then(e=>t(e,r,a))}return t(o,r,a)}}D(e,`~standard`,()=>({validate:t=>{try{let n=Tn(e,t);return n.success?{value:n.data}:{issues:n.error?.issues}}catch{return Dn(e,t).then(e=>e.success?{value:e.data}:{issues:e.error?.issues})}},vendor:`zod`,version:1}))}),kr=E(`$ZodString`,(e,t)=>{A.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??ar(e._zod.bag),e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch{}return typeof n.value==`string`||n.issues.push({expected:`string`,code:`invalid_type`,input:n.value,inst:e}),n}}),j=E(`$ZodStringFormat`,(e,t)=>{yr.init(e,t),kr.init(e,t)}),Ar=E(`$ZodGUID`,(e,t)=>{t.pattern??=Un,j.init(e,t)}),jr=E(`$ZodUUID`,(e,t)=>{if(t.version){let e={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(e===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??=Wn(e)}else t.pattern??=Wn();j.init(e,t)}),Mr=E(`$ZodEmail`,(e,t)=>{t.pattern??=Gn,j.init(e,t)}),Nr=E(`$ZodURL`,(e,t)=>{j.init(e,t),e._zod.check=n=>{try{let r=n.value.trim(),i=new URL(r);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(i.hostname)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid hostname`,pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(i.protocol.endsWith(`:`)?i.protocol.slice(0,-1):i.protocol)||n.issues.push({code:`invalid_format`,format:`url`,note:`Invalid protocol`,pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort})),n.value=t.normalize?i.href:r;return}catch{n.issues.push({code:`invalid_format`,format:`url`,input:n.value,inst:e,continue:!t.abort})}}}),Pr=E(`$ZodEmoji`,(e,t)=>{t.pattern??=Kn(),j.init(e,t)}),Fr=E(`$ZodNanoID`,(e,t)=>{t.pattern??=Vn,j.init(e,t)}),Ir=E(`$ZodCUID`,(e,t)=>{t.pattern??=In,j.init(e,t)}),Lr=E(`$ZodCUID2`,(e,t)=>{t.pattern??=Ln,j.init(e,t)}),Rr=E(`$ZodULID`,(e,t)=>{t.pattern??=Rn,j.init(e,t)}),zr=E(`$ZodXID`,(e,t)=>{t.pattern??=zn,j.init(e,t)}),Br=E(`$ZodKSUID`,(e,t)=>{t.pattern??=Bn,j.init(e,t)}),Vr=E(`$ZodISODateTime`,(e,t)=>{t.pattern??=ir(t),j.init(e,t)}),Hr=E(`$ZodISODate`,(e,t)=>{t.pattern??=tr,j.init(e,t)}),Ur=E(`$ZodISOTime`,(e,t)=>{t.pattern??=rr(t),j.init(e,t)}),Wr=E(`$ZodISODuration`,(e,t)=>{t.pattern??=Hn,j.init(e,t)}),Gr=E(`$ZodIPv4`,(e,t)=>{t.pattern??=qn,j.init(e,t),e._zod.bag.format=`ipv4`}),Kr=E(`$ZodIPv6`,(e,t)=>{t.pattern??=Jn,j.init(e,t),e._zod.bag.format=`ipv6`,e._zod.check=n=>{try{new URL(`http://[${n.value}]`)}catch{n.issues.push({code:`invalid_format`,format:`ipv6`,input:n.value,inst:e,continue:!t.abort})}}}),qr=E(`$ZodCIDRv4`,(e,t)=>{t.pattern??=Yn,j.init(e,t)}),Jr=E(`$ZodCIDRv6`,(e,t)=>{t.pattern??=Xn,j.init(e,t),e._zod.check=n=>{let r=n.value.split(`/`);try{if(r.length!==2)throw Error();let[e,t]=r;if(!t)throw Error();let n=Number(t);if(`${n}`!==t||n<0||n>128)throw Error();new URL(`http://[${e}]`)}catch{n.issues.push({code:`invalid_format`,format:`cidrv6`,input:n.value,inst:e,continue:!t.abort})}}});function Yr(e){if(e===``)return!0;if(e.length%4!=0)return!1;try{return atob(e),!0}catch{return!1}}const Xr=E(`$ZodBase64`,(e,t)=>{t.pattern??=Zn,j.init(e,t),e._zod.bag.contentEncoding=`base64`,e._zod.check=n=>{Yr(n.value)||n.issues.push({code:`invalid_format`,format:`base64`,input:n.value,inst:e,continue:!t.abort})}});function Zr(e){if(!Qn.test(e))return!1;let t=e.replace(/[-_]/g,e=>e===`-`?`+`:`/`);return Yr(t.padEnd(Math.ceil(t.length/4)*4,`=`))}const Qr=E(`$ZodBase64URL`,(e,t)=>{t.pattern??=Qn,j.init(e,t),e._zod.bag.contentEncoding=`base64url`,e._zod.check=n=>{Zr(n.value)||n.issues.push({code:`invalid_format`,format:`base64url`,input:n.value,inst:e,continue:!t.abort})}}),$r=E(`$ZodE164`,(e,t)=>{t.pattern??=$n,j.init(e,t)});function ei(e,t=null){try{let n=e.split(`.`);if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let i=JSON.parse(atob(r));return!(`typ`in i&&i?.typ!==`JWT`||!i.alg||t&&(!(`alg`in i)||i.alg!==t))}catch{return!1}}const ti=E(`$ZodJWT`,(e,t)=>{j.init(e,t),e._zod.check=n=>{ei(n.value,t.alg)||n.issues.push({code:`invalid_format`,format:`jwt`,input:n.value,inst:e,continue:!t.abort})}}),ni=E(`$ZodNumber`,(e,t)=>{A.init(e,t),e._zod.pattern=e._zod.bag.pattern??sr,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch{}let i=n.value;if(typeof i==`number`&&!Number.isNaN(i)&&Number.isFinite(i))return n;let a=typeof i==`number`?Number.isNaN(i)?`NaN`:Number.isFinite(i)?void 0:`Infinity`:void 0;return n.issues.push({expected:`number`,code:`invalid_type`,input:i,inst:e,...a?{received:a}:{}}),n}}),ri=E(`$ZodNumberFormat`,(e,t)=>{hr.init(e,t),ni.init(e,t)}),ii=E(`$ZodBoolean`,(e,t)=>{A.init(e,t),e._zod.pattern=cr,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=!!n.value}catch{}let i=n.value;return typeof i==`boolean`||n.issues.push({expected:`boolean`,code:`invalid_type`,input:i,inst:e}),n}}),ai=E(`$ZodUnknown`,(e,t)=>{A.init(e,t),e._zod.parse=e=>e}),oi=E(`$ZodNever`,(e,t)=>{A.init(e,t),e._zod.parse=(t,n)=>(t.issues.push({expected:`never`,code:`invalid_type`,input:t.value,inst:e}),t)});function si(e,t,n){e.issues.length&&t.issues.push(...fn(n,e.issues)),t.value[n]=e.value}const ci=E(`$ZodArray`,(e,t)=>{A.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Array.isArray(i))return n.issues.push({expected:`array`,code:`invalid_type`,input:i,inst:e}),n;n.value=Array(i.length);let a=[];for(let e=0;e<i.length;e++){let o=i[e],s=t.element._zod.run({value:o,issues:[]},r);s instanceof Promise?a.push(s.then(t=>si(t,n,e))):si(s,n,e)}return a.length?Promise.all(a).then(()=>n):n}});function li(e,t,n,r,i){if(e.issues.length){if(i&&!(n in r))return;t.issues.push(...fn(n,e.issues))}e.value===void 0?n in r&&(t.value[n]=void 0):t.value[n]=e.value}function ui(e){let t=Object.keys(e.shape);for(let n of t)if(!e.shape?.[n]?._zod?.traits?.has(`$ZodType`))throw Error(`Invalid element at key "${n}": expected a Zod schema`);let n=tn(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(n)}}function di(e,t,n,r,i,a){let o=[],s=i.keySet,c=i.catchall._zod,l=c.def.type,u=c.optout===`optional`;for(let i in t){if(s.has(i))continue;if(l===`never`){o.push(i);continue}let a=c.run({value:t[i],issues:[]},r);a instanceof Promise?e.push(a.then(e=>li(e,n,i,t,u))):li(a,n,i,t,u)}return o.length&&n.issues.push({code:`unrecognized_keys`,keys:o,input:t,inst:a}),e.length?Promise.all(e).then(()=>n):n}const fi=E(`$ZodObject`,(e,t)=>{if(A.init(e,t),!Object.getOwnPropertyDescriptor(t,`shape`)?.get){let e=t.shape;Object.defineProperty(t,"shape",{get:()=>{let n={...e};return Object.defineProperty(t,"shape",{value:n}),n}})}let n=Rt(()=>ui(t));D(e._zod,`propValues`,()=>{let e=t.shape,n={};for(let t in e){let r=e[t]._zod;if(r.values){n[t]??(n[t]=new Set);for(let e of r.values)n[t].add(e)}}return n});let r=Jt,i=t.catchall,a;e._zod.parse=(t,o)=>{a??=n.value;let s=t.value;if(!r(s))return t.issues.push({expected:`object`,code:`invalid_type`,input:s,inst:e}),t;t.value={};let c=[],l=a.shape;for(let e of a.keys){let n=l[e],r=n._zod.optout===`optional`,i=n._zod.run({value:s[e],issues:[]},o);i instanceof Promise?c.push(i.then(n=>li(n,t,e,s,r))):li(i,t,e,s,r)}return i?di(c,s,t,o,n.value,e):c.length?Promise.all(c).then(()=>t):t}}),pi=E(`$ZodObjectJIT`,(e,t)=>{fi.init(e,t);let n=e._zod.parse,r=Rt(()=>ui(t)),i=e=>{let t=new Dr([`shape`,`payload`,`ctx`]),n=r.value,i=e=>{let t=Gt(e);return`shape[${t}]._zod.run({ value: input[${t}], issues: [] }, ctx)`};t.write(`const input = payload.value;`);let a=Object.create(null),o=0;for(let e of n.keys)a[e]=`key_${o++}`;t.write(`const newResult = {};`);for(let r of n.keys){let n=a[r],o=Gt(r),s=e[r]?._zod?.optout===`optional`;t.write(`const ${n} = ${i(r)};`),s?t.write(`
9
9
  if (${n}.issues.length) {
@@ -41,7 +41,7 @@ import{createRequire as e}from"node:module";import{formatWithOptions as t,parseA
41
41
 
42
42
  `)}t.write(`payload.value = newResult;`),t.write(`return payload;`);let s=t.compile();return(t,n)=>s(e,t,n)},a,o=Jt,s=!Pt.jitless,c=s&&Yt.value,l=t.catchall,u;e._zod.parse=(d,f)=>{u??=r.value;let p=d.value;return o(p)?s&&c&&f?.async===!1&&f.jitless!==!0?(a||=i(t.shape),d=a(d,f),l?di([],p,d,f,u,e):d):n(d,f):(d.issues.push({expected:`object`,code:`invalid_type`,input:p,inst:e}),d)}});function mi(e,t,n,r){for(let n of e)if(n.issues.length===0)return t.value=n.value,t;let i=e.filter(e=>!dn(e));return i.length===1?(t.value=i[0].value,i[0]):(t.issues.push({code:`invalid_union`,input:t.value,inst:n,errors:e.map(e=>e.issues.map(e=>mn(e,r,Ft())))}),t)}const hi=E(`$ZodUnion`,(e,t)=>{A.init(e,t),D(e._zod,`optin`,()=>t.options.some(e=>e._zod.optin===`optional`)?`optional`:void 0),D(e._zod,`optout`,()=>t.options.some(e=>e._zod.optout===`optional`)?`optional`:void 0),D(e._zod,`values`,()=>{if(t.options.every(e=>e._zod.values))return new Set(t.options.flatMap(e=>Array.from(e._zod.values)))}),D(e._zod,`pattern`,()=>{if(t.options.every(e=>e._zod.pattern)){let e=t.options.map(e=>e._zod.pattern);return RegExp(`^(${e.map(e=>Bt(e.source)).join(`|`)})$`)}});let n=t.options.length===1,r=t.options[0]._zod.run;e._zod.parse=(i,a)=>{if(n)return r(i,a);let o=!1,s=[];for(let e of t.options){let t=e._zod.run({value:i.value,issues:[]},a);if(t instanceof Promise)s.push(t),o=!0;else{if(t.issues.length===0)return t;s.push(t)}}return o?Promise.all(s).then(t=>mi(t,i,e,a)):mi(s,i,e,a)}}),gi=E(`$ZodDiscriminatedUnion`,(e,t)=>{t.inclusive=!1,hi.init(e,t);let n=e._zod.parse;D(e._zod,`propValues`,()=>{let e={};for(let n of t.options){let r=n._zod.propValues;if(!r||Object.keys(r).length===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(n)}"`);for(let[t,n]of Object.entries(r)){e[t]||(e[t]=new Set);for(let r of n)e[t].add(r)}}return e});let r=Rt(()=>{let e=t.options,n=new Map;for(let r of e){let e=r._zod.propValues?.[t.discriminator];if(!e||e.size===0)throw Error(`Invalid discriminated union option at index "${t.options.indexOf(r)}"`);for(let t of e){if(n.has(t))throw Error(`Duplicate discriminator value "${String(t)}"`);n.set(t,r)}}return n});e._zod.parse=(i,a)=>{let o=i.value;if(!Jt(o))return i.issues.push({code:`invalid_type`,expected:`object`,input:o,inst:e}),i;let s=r.value.get(o?.[t.discriminator]);return s?s._zod.run(i,a):t.unionFallback?n(i,a):(i.issues.push({code:`invalid_union`,errors:[],note:`No matching discriminator`,discriminator:t.discriminator,input:o,path:[t.discriminator],inst:e}),i)}}),_i=E(`$ZodIntersection`,(e,t)=>{A.init(e,t),e._zod.parse=(e,n)=>{let r=e.value,i=t.left._zod.run({value:r,issues:[]},n),a=t.right._zod.run({value:r,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([t,n])=>yi(e,t,n)):yi(e,i,a)}});function vi(e,t){if(e===t||e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(Xt(e)&&Xt(t)){let n=Object.keys(t),r=Object.keys(e).filter(e=>n.indexOf(e)!==-1),i={...e,...t};for(let n of r){let r=vi(e[n],t[n]);if(!r.valid)return{valid:!1,mergeErrorPath:[n,...r.mergeErrorPath]};i[n]=r.data}return{valid:!0,data:i}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=t[r],o=vi(i,a);if(!o.valid)return{valid:!1,mergeErrorPath:[r,...o.mergeErrorPath]};n.push(o.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function yi(e,t,n){let r=new Map,i;for(let n of t.issues)if(n.code===`unrecognized_keys`){i??=n;for(let e of n.keys)r.has(e)||r.set(e,{}),r.get(e).l=!0}else e.issues.push(n);for(let t of n.issues)if(t.code===`unrecognized_keys`)for(let e of t.keys)r.has(e)||r.set(e,{}),r.get(e).r=!0;else e.issues.push(t);let a=[...r].filter(([,e])=>e.l&&e.r).map(([e])=>e);if(a.length&&i&&e.issues.push({...i,keys:a}),dn(e))return e;let o=vi(t.value,n.value);if(!o.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify(o.mergeErrorPath)}`);return e.value=o.data,e}const bi=E(`$ZodRecord`,(e,t)=>{A.init(e,t),e._zod.parse=(n,r)=>{let i=n.value;if(!Xt(i))return n.issues.push({expected:`record`,code:`invalid_type`,input:i,inst:e}),n;let a=[],o=t.keyType._zod.values;if(o){n.value={};let s=new Set;for(let e of o)if(typeof e==`string`||typeof e==`number`||typeof e==`symbol`){s.add(typeof e==`number`?e.toString():e);let o=t.valueType._zod.run({value:i[e],issues:[]},r);o instanceof Promise?a.push(o.then(t=>{t.issues.length&&n.issues.push(...fn(e,t.issues)),n.value[e]=t.value})):(o.issues.length&&n.issues.push(...fn(e,o.issues)),n.value[e]=o.value)}let c;for(let e in i)s.has(e)||(c??=[],c.push(e));c&&c.length>0&&n.issues.push({code:`unrecognized_keys`,input:i,inst:e,keys:c})}else{n.value={};for(let o of Reflect.ownKeys(i)){if(o===`__proto__`)continue;let s=t.keyType._zod.run({value:o,issues:[]},r);if(s instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);if(typeof o==`string`&&sr.test(o)&&s.issues.length){let e=t.keyType._zod.run({value:Number(o),issues:[]},r);if(e instanceof Promise)throw Error(`Async schemas not supported in object keys currently`);e.issues.length===0&&(s=e)}if(s.issues.length){t.mode===`loose`?n.value[o]=i[o]:n.issues.push({code:`invalid_key`,origin:`record`,issues:s.issues.map(e=>mn(e,r,Ft())),input:o,path:[o],inst:e});continue}let c=t.valueType._zod.run({value:i[o],issues:[]},r);c instanceof Promise?a.push(c.then(e=>{e.issues.length&&n.issues.push(...fn(o,e.issues)),n.value[s.value]=e.value})):(c.issues.length&&n.issues.push(...fn(o,c.issues)),n.value[s.value]=c.value)}}return a.length?Promise.all(a).then(()=>n):n}}),xi=E(`$ZodEnum`,(e,t)=>{A.init(e,t);let n=It(t.entries),r=new Set(n);e._zod.values=r,e._zod.pattern=RegExp(`^(${n.filter(e=>Qt.has(typeof e)).map(e=>typeof e==`string`?$t(e):e.toString()).join(`|`)})$`),e._zod.parse=(t,i)=>{let a=t.value;return r.has(a)||t.issues.push({code:`invalid_value`,values:n,input:a,inst:e}),t}}),Si=E(`$ZodLiteral`,(e,t)=>{if(A.init(e,t),t.values.length===0)throw Error(`Cannot create literal schema with no valid values`);let n=new Set(t.values);e._zod.values=n,e._zod.pattern=RegExp(`^(${t.values.map(e=>typeof e==`string`?$t(e):e?$t(e.toString()):String(e)).join(`|`)})$`),e._zod.parse=(r,i)=>{let a=r.value;return n.has(a)||r.issues.push({code:`invalid_value`,values:t.values,input:a,inst:e}),r}}),Ci=E(`$ZodTransform`,(e,t)=>{A.init(e,t),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Nt(e.constructor.name);let i=t.transform(n.value,n);if(r.async)return(i instanceof Promise?i:Promise.resolve(i)).then(e=>(n.value=e,n));if(i instanceof Promise)throw new Mt;return n.value=i,n}});function wi(e,t){return e.issues.length&&t===void 0?{issues:[],value:void 0}:e}const Ti=E(`$ZodOptional`,(e,t)=>{A.init(e,t),e._zod.optin=`optional`,e._zod.optout=`optional`,D(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),D(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Bt(e.source)})?$`):void 0}),e._zod.parse=(e,n)=>{if(t.innerType._zod.optin===`optional`){let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(t=>wi(t,e.value)):wi(r,e.value)}return e.value===void 0?e:t.innerType._zod.run(e,n)}}),Ei=E(`$ZodExactOptional`,(e,t)=>{Ti.init(e,t),D(e._zod,`values`,()=>t.innerType._zod.values),D(e._zod,`pattern`,()=>t.innerType._zod.pattern),e._zod.parse=(e,n)=>t.innerType._zod.run(e,n)}),Di=E(`$ZodNullable`,(e,t)=>{A.init(e,t),D(e._zod,`optin`,()=>t.innerType._zod.optin),D(e._zod,`optout`,()=>t.innerType._zod.optout),D(e._zod,`pattern`,()=>{let e=t.innerType._zod.pattern;return e?RegExp(`^(${Bt(e.source)}|null)$`):void 0}),D(e._zod,`values`,()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(e,n)=>e.value===null?e:t.innerType._zod.run(e,n)}),Oi=E(`$ZodDefault`,(e,t)=>{A.init(e,t),e._zod.optin=`optional`,D(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);if(e.value===void 0)return e.value=t.defaultValue,e;let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(e=>ki(e,t)):ki(r,t)}});function ki(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}const Ai=E(`$ZodPrefault`,(e,t)=>{A.init(e,t),e._zod.optin=`optional`,D(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>(n.direction===`backward`||e.value===void 0&&(e.value=t.defaultValue),t.innerType._zod.run(e,n))}),ji=E(`$ZodNonOptional`,(e,t)=>{A.init(e,t),D(e._zod,`values`,()=>{let e=t.innerType._zod.values;return e?new Set([...e].filter(e=>e!==void 0)):void 0}),e._zod.parse=(n,r)=>{let i=t.innerType._zod.run(n,r);return i instanceof Promise?i.then(t=>Mi(t,e)):Mi(i,e)}});function Mi(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:`invalid_type`,expected:`nonoptional`,input:e.value,inst:t}),e}const Ni=E(`$ZodCatch`,(e,t)=>{A.init(e,t),D(e._zod,`optin`,()=>t.innerType._zod.optin),D(e._zod,`optout`,()=>t.innerType._zod.optout),D(e._zod,`values`,()=>t.innerType._zod.values),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(r=>(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>mn(e,n,Ft()))},input:e.value}),e.issues=[]),e)):(e.value=r.value,r.issues.length&&(e.value=t.catchValue({...e,error:{issues:r.issues.map(e=>mn(e,n,Ft()))},input:e.value}),e.issues=[]),e)}}),Pi=E(`$ZodPipe`,(e,t)=>{A.init(e,t),D(e._zod,`values`,()=>t.in._zod.values),D(e._zod,`optin`,()=>t.in._zod.optin),D(e._zod,`optout`,()=>t.out._zod.optout),D(e._zod,`propValues`,()=>t.in._zod.propValues),e._zod.parse=(e,n)=>{if(n.direction===`backward`){let r=t.out._zod.run(e,n);return r instanceof Promise?r.then(e=>Fi(e,t.in,n)):Fi(r,t.in,n)}let r=t.in._zod.run(e,n);return r instanceof Promise?r.then(e=>Fi(e,t.out,n)):Fi(r,t.out,n)}});function Fi(e,t,n){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues},n)}const Ii=E(`$ZodReadonly`,(e,t)=>{A.init(e,t),D(e._zod,`propValues`,()=>t.innerType._zod.propValues),D(e._zod,`values`,()=>t.innerType._zod.values),D(e._zod,`optin`,()=>t.innerType?._zod?.optin),D(e._zod,`optout`,()=>t.innerType?._zod?.optout),e._zod.parse=(e,n)=>{if(n.direction===`backward`)return t.innerType._zod.run(e,n);let r=t.innerType._zod.run(e,n);return r instanceof Promise?r.then(Li):Li(r)}});function Li(e){return e.value=Object.freeze(e.value),e}const Ri=E(`$ZodCustom`,(e,t)=>{k.init(e,t),A.init(e,t),e._zod.parse=(e,t)=>e,e._zod.check=n=>{let r=n.value,i=t.fn(r);if(i instanceof Promise)return i.then(t=>zi(t,n,r,e));zi(i,n,r,e)}});function zi(e,t,n,r){if(!e){let e={code:`custom`,input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};r._zod.def.params&&(e.params=r._zod.def.params),t.issues.push(gn(e))}}var Bi,Vi=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];return this._map.set(e,n),n&&typeof n==`object`&&`id`in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);return t&&typeof t==`object`&&`id`in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Hi(){return new Vi}(Bi=globalThis).__zod_globalRegistry??(Bi.__zod_globalRegistry=Hi());const Ui=globalThis.__zod_globalRegistry;function Wi(e,t){return new e({type:`string`,...O(t)})}function Gi(e,t){return new e({type:`string`,format:`email`,check:`string_format`,abort:!1,...O(t)})}function Ki(e,t){return new e({type:`string`,format:`guid`,check:`string_format`,abort:!1,...O(t)})}function qi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,...O(t)})}function Ji(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v4`,...O(t)})}function Yi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v6`,...O(t)})}function Xi(e,t){return new e({type:`string`,format:`uuid`,check:`string_format`,abort:!1,version:`v7`,...O(t)})}function Zi(e,t){return new e({type:`string`,format:`url`,check:`string_format`,abort:!1,...O(t)})}function Qi(e,t){return new e({type:`string`,format:`emoji`,check:`string_format`,abort:!1,...O(t)})}function $i(e,t){return new e({type:`string`,format:`nanoid`,check:`string_format`,abort:!1,...O(t)})}function ea(e,t){return new e({type:`string`,format:`cuid`,check:`string_format`,abort:!1,...O(t)})}function ta(e,t){return new e({type:`string`,format:`cuid2`,check:`string_format`,abort:!1,...O(t)})}function na(e,t){return new e({type:`string`,format:`ulid`,check:`string_format`,abort:!1,...O(t)})}function ra(e,t){return new e({type:`string`,format:`xid`,check:`string_format`,abort:!1,...O(t)})}function ia(e,t){return new e({type:`string`,format:`ksuid`,check:`string_format`,abort:!1,...O(t)})}function aa(e,t){return new e({type:`string`,format:`ipv4`,check:`string_format`,abort:!1,...O(t)})}function oa(e,t){return new e({type:`string`,format:`ipv6`,check:`string_format`,abort:!1,...O(t)})}function sa(e,t){return new e({type:`string`,format:`cidrv4`,check:`string_format`,abort:!1,...O(t)})}function ca(e,t){return new e({type:`string`,format:`cidrv6`,check:`string_format`,abort:!1,...O(t)})}function la(e,t){return new e({type:`string`,format:`base64`,check:`string_format`,abort:!1,...O(t)})}function ua(e,t){return new e({type:`string`,format:`base64url`,check:`string_format`,abort:!1,...O(t)})}function da(e,t){return new e({type:`string`,format:`e164`,check:`string_format`,abort:!1,...O(t)})}function fa(e,t){return new e({type:`string`,format:`jwt`,check:`string_format`,abort:!1,...O(t)})}function pa(e,t){return new e({type:`string`,format:`datetime`,check:`string_format`,offset:!1,local:!1,precision:null,...O(t)})}function ma(e,t){return new e({type:`string`,format:`date`,check:`string_format`,...O(t)})}function ha(e,t){return new e({type:`string`,format:`time`,check:`string_format`,precision:null,...O(t)})}function ga(e,t){return new e({type:`string`,format:`duration`,check:`string_format`,...O(t)})}function _a(e,t){return new e({type:`number`,checks:[],...O(t)})}function va(e,t){return new e({type:`number`,check:`number_format`,abort:!1,format:`safeint`,...O(t)})}function ya(e,t){return new e({type:`boolean`,...O(t)})}function ba(e){return new e({type:`unknown`})}function xa(e,t){return new e({type:`never`,...O(t)})}function Sa(e,t){return new fr({check:`less_than`,...O(t),value:e,inclusive:!1})}function Ca(e,t){return new fr({check:`less_than`,...O(t),value:e,inclusive:!0})}function wa(e,t){return new pr({check:`greater_than`,...O(t),value:e,inclusive:!1})}function Ta(e,t){return new pr({check:`greater_than`,...O(t),value:e,inclusive:!0})}function Ea(e,t){return new mr({check:`multiple_of`,...O(t),value:e})}function Da(e,t){return new gr({check:`max_length`,...O(t),maximum:e})}function Oa(e,t){return new _r({check:`min_length`,...O(t),minimum:e})}function ka(e,t){return new vr({check:`length_equals`,...O(t),length:e})}function Aa(e,t){return new br({check:`string_format`,format:`regex`,...O(t),pattern:e})}function ja(e){return new xr({check:`string_format`,format:`lowercase`,...O(e)})}function Ma(e){return new Sr({check:`string_format`,format:`uppercase`,...O(e)})}function Na(e,t){return new Cr({check:`string_format`,format:`includes`,...O(t),includes:e})}function Pa(e,t){return new wr({check:`string_format`,format:`starts_with`,...O(t),prefix:e})}function Fa(e,t){return new Tr({check:`string_format`,format:`ends_with`,...O(t),suffix:e})}function Ia(e){return new Er({check:`overwrite`,tx:e})}function La(e){return Ia(t=>t.normalize(e))}function Ra(){return Ia(e=>e.trim())}function za(){return Ia(e=>e.toLowerCase())}function Ba(){return Ia(e=>e.toUpperCase())}function Va(){return Ia(e=>Kt(e))}function Ha(e,t,n){return new e({type:`array`,element:t,...O(n)})}function Ua(e,t,n){return new e({type:`custom`,check:`custom`,fn:t,...O(n)})}function Wa(e){let t=Ga(n=>(n.addIssue=e=>{if(typeof e==`string`)n.issues.push(gn(e,n.value,t._zod.def));else{let r=e;r.fatal&&(r.continue=!1),r.code??=`custom`,r.input??=n.value,r.inst??=t,r.continue??=!t._zod.def.abort,n.issues.push(gn(r))}},e(n.value,n)));return t}function Ga(e,t){let n=new k({check:`custom`,...O(t)});return n._zod.check=e,n}function Ka(e){let t=e?.target??`draft-2020-12`;return t===`draft-4`&&(t=`draft-04`),t===`draft-7`&&(t=`draft-07`),{processors:e.processors??{},metadataRegistry:e?.metadata??Ui,target:t,unrepresentable:e?.unrepresentable??`throw`,override:e?.override??(()=>{}),io:e?.io??`output`,counter:0,seen:new Map,cycles:e?.cycles??`ref`,reused:e?.reused??`inline`,external:e?.external??void 0}}function M(e,t,n={path:[],schemaPath:[]}){var r;let i=e._zod.def,a=t.seen.get(e);if(a)return a.count++,n.schemaPath.includes(e)&&(a.cycle=n.path),a.schema;let o={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,o);let s=e._zod.toJSONSchema?.();if(s)o.schema=s;else{let r={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,o.schema,r);else{let n=o.schema,a=t.processors[i.type];if(!a)throw Error(`[toJSONSchema]: Non-representable type encountered: ${i.type}`);a(e,t,n,r)}let a=e._zod.parent;a&&(o.ref||=a,M(a,t,r),t.seen.get(a).isParent=!0)}let c=t.metadataRegistry.get(e);return c&&Object.assign(o.schema,c),t.io===`input`&&N(e)&&(delete o.schema.examples,delete o.schema.default),t.io===`input`&&o.schema._prefault&&((r=o.schema).default??(r.default=o.schema._prefault)),delete o.schema._prefault,t.seen.get(e).schema}function qa(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=new Map;for(let t of e.seen.entries()){let n=e.metadataRegistry.get(t[0])?.id;if(n){let e=r.get(n);if(e&&e!==t[0])throw Error(`Duplicate schema id "${n}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(n,t[0])}}let i=t=>{let r=e.target===`draft-2020-12`?`$defs`:`definitions`;if(e.external){let n=e.external.registry.get(t[0])?.id,i=e.external.uri??(e=>e);if(n)return{ref:i(n)};let a=t[1].defId??t[1].schema.id??`schema${e.counter++}`;return t[1].defId=a,{defId:a,ref:`${i(`__shared`)}#/${r}/${a}`}}if(t[1]===n)return{ref:`#`};let i=`#/${r}/`,a=t[1].schema.id??`__schema${e.counter++}`;return{defId:a,ref:i+a}},a=e=>{if(e[1].schema.$ref)return;let t=e[1],{ref:n,defId:r}=i(e);t.def={...t.schema},r&&(t.defId=r);let a=t.schema;for(let e in a)delete a[e];a.$ref=n};if(e.cycles===`throw`)for(let t of e.seen.entries()){let e=t[1];if(e.cycle)throw Error(`Cycle detected: #/${e.cycle?.join(`/`)}/<root>
43
43
 
44
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function Ja(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&(e.target===`draft-2020-12`?i.$defs=a:i.definitions=a);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Xa(t,`input`,e.processors),output:Xa(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function N(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return N(r.element,n);if(r.type===`set`)return N(r.valueType,n);if(r.type===`lazy`)return N(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return N(r.innerType,n);if(r.type===`intersection`)return N(r.left,n)||N(r.right,n);if(r.type===`record`||r.type===`map`)return N(r.keyType,n)||N(r.valueType,n);if(r.type===`pipe`)return N(r.in,n)||N(r.out,n);if(r.type===`object`){for(let e in r.shape)if(N(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(N(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(N(e,n))return!0;return!!(r.rest&&N(r.rest,n))}return!1}const Ya=(e,t={})=>n=>{let r=Ka({...n,processors:t});return M(e,r),qa(r,e),Ja(r,e)},Xa=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Ka({...i??{},target:a,io:t,processors:n});return M(e,o),qa(o,e),Ja(o,e)},Za={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Qa=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Za[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},$a=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`,typeof u==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u),typeof a==`number`&&(i.minimum=a,typeof u==`number`&&t.target!==`draft-04`&&(u>=a?delete i.minimum:delete i.exclusiveMinimum)),typeof l==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l),typeof o==`number`&&(i.maximum=o,typeof l==`number`&&t.target!==`draft-04`&&(l<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c==`number`&&(i.multipleOf=c)},eo=(e,t,n,r)=>{n.type=`boolean`},to=(e,t,n,r)=>{n.not={}},no=(e,t,n,r)=>{let i=e._zod.def,a=It(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},ro=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},io=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},ao=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},oo=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=M(a.element,t,{...r,path:[...r.path,`items`]})},so=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=M(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=M(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},co=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>M(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},lo=(e,t,n,r)=>{let i=e._zod.def,a=M(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=M(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},uo=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=M(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else(t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=M(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=M(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},fo=(e,t,n,r)=>{let i=e._zod.def,a=M(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},po=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},mo=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},ho=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},go=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},_o=(e,t,n,r)=>{let i=e._zod.def,a=t.io===`input`?i.in._zod.def.type===`transform`?i.out:i.in:i.out;M(a,t,r);let o=t.seen.get(e);o.ref=a},vo=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},yo=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},bo=E(`ZodISODateTime`,(e,t)=>{Vr.init(e,t),I.init(e,t)});function xo(e){return pa(bo,e)}const So=E(`ZodISODate`,(e,t)=>{Hr.init(e,t),I.init(e,t)});function Co(e){return ma(So,e)}const wo=E(`ZodISOTime`,(e,t)=>{Ur.init(e,t),I.init(e,t)});function To(e){return ha(wo,e)}const Eo=E(`ZodISODuration`,(e,t)=>{Wr.init(e,t),I.init(e,t)});function Do(e){return ga(Eo,e)}const Oo=(e,t)=>{vn.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>xn(e,t)},flatten:{value:t=>bn(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Lt,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Lt,2)}},isEmpty:{get(){return e.issues.length===0}}})};E(`ZodError`,Oo);const ko=E(`ZodError`,Oo,{Parent:Error}),Ao=Sn(ko),jo=Cn(ko),Mo=wn(ko),No=En(ko),Po=On(ko),Fo=kn(ko),Io=An(ko),Lo=jn(ko),Ro=Mn(ko),zo=Nn(ko),Bo=Pn(ko),Vo=Fn(ko),P=E(`ZodType`,(e,t)=>(A.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:Xa(e,`input`),output:Xa(e,`output`)}}),e.toJSONSchema=Ya(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(Wt(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0}),e.with=e.check,e.clone=(t,n)=>en(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>Ao(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Mo(e,t,n),e.parseAsync=async(t,n)=>jo(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>No(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Po(e,t,n),e.decode=(t,n)=>Fo(e,t,n),e.encodeAsync=async(t,n)=>Io(e,t,n),e.decodeAsync=async(t,n)=>Lo(e,t,n),e.safeEncode=(t,n)=>Ro(e,t,n),e.safeDecode=(t,n)=>zo(e,t,n),e.safeEncodeAsync=async(t,n)=>Bo(e,t,n),e.safeDecodeAsync=async(t,n)=>Vo(e,t,n),e.refine=(t,n)=>e.check(Zs(t,n)),e.superRefine=t=>e.check(Qs(t)),e.overwrite=t=>e.check(Ia(t)),e.optional=()=>Ns(e),e.exactOptional=()=>Fs(e),e.nullable=()=>Ls(e),e.nullish=()=>Ns(Ls(e)),e.nonoptional=t=>Us(e,t),e.array=()=>ys(e),e.or=t=>Ss([e,t]),e.and=t=>Es(e,t),e.transform=t=>qs(e,js(t)),e.default=t=>zs(e,t),e.prefault=t=>Vs(e,t),e.catch=t=>Gs(e,t),e.pipe=t=>qs(e,t),e.readonly=()=>Ys(e),e.describe=t=>{let n=e.clone();return Ui.add(n,{description:t}),n},Object.defineProperty(e,"description",{get(){return Ui.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return Ui.get(e);let n=e.clone();return Ui.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=t=>t(e),e)),Ho=E(`_ZodString`,(e,t)=>{kr.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qa(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(Aa(...t)),e.includes=(...t)=>e.check(Na(...t)),e.startsWith=(...t)=>e.check(Pa(...t)),e.endsWith=(...t)=>e.check(Fa(...t)),e.min=(...t)=>e.check(Oa(...t)),e.max=(...t)=>e.check(Da(...t)),e.length=(...t)=>e.check(ka(...t)),e.nonempty=(...t)=>e.check(Oa(1,...t)),e.lowercase=t=>e.check(ja(t)),e.uppercase=t=>e.check(Ma(t)),e.trim=()=>e.check(Ra()),e.normalize=(...t)=>e.check(La(...t)),e.toLowerCase=()=>e.check(za()),e.toUpperCase=()=>e.check(Ba()),e.slugify=()=>e.check(Va())}),Uo=E(`ZodString`,(e,t)=>{kr.init(e,t),Ho.init(e,t),e.email=t=>e.check(Gi(Wo,t)),e.url=t=>e.check(Zi(qo,t)),e.jwt=t=>e.check(fa(cs,t)),e.emoji=t=>e.check(Qi(Jo,t)),e.guid=t=>e.check(Ki(Go,t)),e.uuid=t=>e.check(qi(Ko,t)),e.uuidv4=t=>e.check(Ji(Ko,t)),e.uuidv6=t=>e.check(Yi(Ko,t)),e.uuidv7=t=>e.check(Xi(Ko,t)),e.nanoid=t=>e.check($i(Yo,t)),e.guid=t=>e.check(Ki(Go,t)),e.cuid=t=>e.check(ea(Xo,t)),e.cuid2=t=>e.check(ta(Zo,t)),e.ulid=t=>e.check(na(Qo,t)),e.base64=t=>e.check(la(as,t)),e.base64url=t=>e.check(ua(os,t)),e.xid=t=>e.check(ra($o,t)),e.ksuid=t=>e.check(ia(es,t)),e.ipv4=t=>e.check(aa(ts,t)),e.ipv6=t=>e.check(oa(ns,t)),e.cidrv4=t=>e.check(sa(rs,t)),e.cidrv6=t=>e.check(ca(is,t)),e.e164=t=>e.check(da(ss,t)),e.datetime=t=>e.check(xo(t)),e.date=t=>e.check(Co(t)),e.time=t=>e.check(To(t)),e.duration=t=>e.check(Do(t))});function F(e){return Wi(Uo,e)}const I=E(`ZodStringFormat`,(e,t)=>{j.init(e,t),Ho.init(e,t)}),Wo=E(`ZodEmail`,(e,t)=>{Mr.init(e,t),I.init(e,t)}),Go=E(`ZodGUID`,(e,t)=>{Ar.init(e,t),I.init(e,t)}),Ko=E(`ZodUUID`,(e,t)=>{jr.init(e,t),I.init(e,t)}),qo=E(`ZodURL`,(e,t)=>{Nr.init(e,t),I.init(e,t)}),Jo=E(`ZodEmoji`,(e,t)=>{Pr.init(e,t),I.init(e,t)}),Yo=E(`ZodNanoID`,(e,t)=>{Fr.init(e,t),I.init(e,t)}),Xo=E(`ZodCUID`,(e,t)=>{Ir.init(e,t),I.init(e,t)}),Zo=E(`ZodCUID2`,(e,t)=>{Lr.init(e,t),I.init(e,t)}),Qo=E(`ZodULID`,(e,t)=>{Rr.init(e,t),I.init(e,t)}),$o=E(`ZodXID`,(e,t)=>{zr.init(e,t),I.init(e,t)}),es=E(`ZodKSUID`,(e,t)=>{Br.init(e,t),I.init(e,t)}),ts=E(`ZodIPv4`,(e,t)=>{Gr.init(e,t),I.init(e,t)}),ns=E(`ZodIPv6`,(e,t)=>{Kr.init(e,t),I.init(e,t)}),rs=E(`ZodCIDRv4`,(e,t)=>{qr.init(e,t),I.init(e,t)}),is=E(`ZodCIDRv6`,(e,t)=>{Jr.init(e,t),I.init(e,t)}),as=E(`ZodBase64`,(e,t)=>{Xr.init(e,t),I.init(e,t)}),os=E(`ZodBase64URL`,(e,t)=>{Qr.init(e,t),I.init(e,t)}),ss=E(`ZodE164`,(e,t)=>{$r.init(e,t),I.init(e,t)}),cs=E(`ZodJWT`,(e,t)=>{ti.init(e,t),I.init(e,t)}),ls=E(`ZodNumber`,(e,t)=>{ni.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$a(e,t,n,r),e.gt=(t,n)=>e.check(wa(t,n)),e.gte=(t,n)=>e.check(Ta(t,n)),e.min=(t,n)=>e.check(Ta(t,n)),e.lt=(t,n)=>e.check(Sa(t,n)),e.lte=(t,n)=>e.check(Ca(t,n)),e.max=(t,n)=>e.check(Ca(t,n)),e.int=t=>e.check(ds(t)),e.safe=t=>e.check(ds(t)),e.positive=t=>e.check(wa(0,t)),e.nonnegative=t=>e.check(Ta(0,t)),e.negative=t=>e.check(Sa(0,t)),e.nonpositive=t=>e.check(Ca(0,t)),e.multipleOf=(t,n)=>e.check(Ea(t,n)),e.step=(t,n)=>e.check(Ea(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function L(e){return _a(ls,e)}const us=E(`ZodNumberFormat`,(e,t)=>{ri.init(e,t),ls.init(e,t)});function ds(e){return va(us,e)}const fs=E(`ZodBoolean`,(e,t)=>{ii.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>eo(e,t,n,r)});function ps(e){return ya(fs,e)}const ms=E(`ZodUnknown`,(e,t)=>{ai.init(e,t),P.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function hs(){return ba(ms)}const gs=E(`ZodNever`,(e,t)=>{oi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>to(e,t,n,r)});function _s(e){return xa(gs,e)}const vs=E(`ZodArray`,(e,t)=>{ci.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>oo(e,t,n,r),e.element=t.element,e.min=(t,n)=>e.check(Oa(t,n)),e.nonempty=t=>e.check(Oa(1,t)),e.max=(t,n)=>e.check(Da(t,n)),e.length=(t,n)=>e.check(ka(t,n)),e.unwrap=()=>e.element});function ys(e,t){return Ha(vs,e,t)}const bs=E(`ZodObject`,(e,t)=>{pi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>so(e,t,n,r),D(e,`shape`,()=>t.shape),e.keyof=()=>V(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:hs()}),e.loose=()=>e.clone({...e._zod.def,catchall:hs()}),e.strict=()=>e.clone({...e._zod.def,catchall:_s()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>on(e,t),e.safeExtend=t=>sn(e,t),e.merge=t=>cn(e,t),e.pick=t=>rn(e,t),e.omit=t=>an(e,t),e.partial=(...t)=>ln(Ms,e,t[0]),e.required=(...t)=>un(Hs,e,t[0])});function R(e,t){let n={type:`object`,shape:e??{},...O(t)};return new bs(n)}function z(e,t){return new bs({type:`object`,shape:e,catchall:_s(),...O(t)})}const xs=E(`ZodUnion`,(e,t)=>{hi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>co(e,t,n,r),e.options=t.options});function Ss(e,t){return new xs({type:`union`,options:e,...O(t)})}const Cs=E(`ZodDiscriminatedUnion`,(e,t)=>{xs.init(e,t),gi.init(e,t)});function ws(e,t,n){return new Cs({type:`union`,options:t,discriminator:e,...O(n)})}const Ts=E(`ZodIntersection`,(e,t)=>{_i.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>lo(e,t,n,r)});function Es(e,t){return new Ts({type:`intersection`,left:e,right:t})}const Ds=E(`ZodRecord`,(e,t)=>{bi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>uo(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function B(e,t,n){return new Ds({type:`record`,keyType:e,valueType:t,...O(n)})}const Os=E(`ZodEnum`,(e,t)=>{xi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>no(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new Os({...t,checks:[],...O(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new Os({...t,checks:[],...O(r),entries:i})}});function V(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new Os({type:`enum`,entries:n,...O(t)})}const ks=E(`ZodLiteral`,(e,t)=>{Si.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ro(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function H(e,t){return new ks({type:`literal`,values:Array.isArray(e)?e:[e],...O(t)})}const As=E(`ZodTransform`,(e,t)=>{Ci.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ao(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Nt(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(gn(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(gn(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function js(e){return new As({type:`transform`,transform:e})}const Ms=E(`ZodOptional`,(e,t)=>{Ti.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>yo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ns(e){return new Ms({type:`optional`,innerType:e})}const Ps=E(`ZodExactOptional`,(e,t)=>{Ei.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>yo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Fs(e){return new Ps({type:`optional`,innerType:e})}const Is=E(`ZodNullable`,(e,t)=>{Di.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ls(e){return new Is({type:`nullable`,innerType:e})}const Rs=E(`ZodDefault`,(e,t)=>{Oi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>mo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function zs(e,t){return new Rs({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Zt(t)}})}const Bs=E(`ZodPrefault`,(e,t)=>{Ai.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ho(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Vs(e,t){return new Bs({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Zt(t)}})}const Hs=E(`ZodNonOptional`,(e,t)=>{ji.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>po(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Us(e,t){return new Hs({type:`nonoptional`,innerType:e,...O(t)})}const Ws=E(`ZodCatch`,(e,t)=>{Ni.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>go(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Gs(e,t){return new Ws({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}const Ks=E(`ZodPipe`,(e,t)=>{Pi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_o(e,t,n,r),e.in=t.in,e.out=t.out});function qs(e,t){return new Ks({type:`pipe`,in:e,out:t})}const Js=E(`ZodReadonly`,(e,t)=>{Ii.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ys(e){return new Js({type:`readonly`,innerType:e})}const Xs=E(`ZodCustom`,(e,t)=>{Ri.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>io(e,t,n,r)});function Zs(e,t={}){return Ua(Xs,e,t)}function Qs(e){return Wa(e)}var $s=jt(),ec=class{session;isolation=`browser-process`;namespace;initScriptPath;timezone;locale;deviceScaleFactor;allowedDomains;timeoutMs;bin;commandStarted=!1;closePromise;constructor(e){this.session=e.session,this.namespace=e.namespace,this.initScriptPath=e.initScriptPath,this.timezone=e.timezone,this.locale=e.locale,this.deviceScaleFactor=e.deviceScaleFactor,this.allowedDomains=e.allowedDomains,this.timeoutMs=e.timeoutMs??3e4,this.bin=ic()}open(e){return this.execVoid([`open`,e])}setViewport(e){return this.execVoid([`set`,`viewport`,String(e.width),String(e.height)])}setMedia(e,t){let n=[`set`,`media`,e];return t&&n.push(`reduced-motion`),this.execVoid(n)}async evaluate(e){let t=await this.exec([`eval`,e]),n=JSON.parse(t);if(n.success===!1)throw Error(n.error??`agent-browser eval failed`);return n.data&&typeof n.data==`object`&&`result`in n.data?n.data.result:n.data===void 0?n.result===void 0?n:n.result:n.data}screenshot(e,t){return this.execVoid([`screenshot`,...t.fullPage?[`--full`]:[],e])}close(){return this.closePromise?this.closePromise:this.commandStarted?(this.closePromise=this.execVoid([`close`],!0),this.closePromise):(this.closePromise=Promise.resolve(),this.closePromise)}async execVoid(e,t=!1){let n=await this.exec(e,t);try{let t=JSON.parse(n);if(t.success===!1)throw Error(t.error??`agent-browser command failed: ${e.join(` `)}`)}catch(e){if(e instanceof SyntaxError)return;throw e}}exec(e,t=!1){if(this.closePromise&&!t)return Promise.reject(Error(`agent-browser session ${this.session} is closed`));t||(this.commandStarted=!0);let n=[`--session`,this.session,`--namespace`,this.namespace,`--init-script`,this.initScriptPath,`--allowed-domains`,this.allowedDomains.join(`,`),`--args`,`--force-device-scale-factor=${this.deviceScaleFactor},--lang=${this.locale}`,`--json`,...e];return new Promise((t,i)=>{let a=r(this.bin,n,{env:{...process.env,LANG:`${this.locale}.UTF-8`,TZ:this.timezone},stdio:[`ignore`,`pipe`,`pipe`]}),o=[],s=[];a.stdout.on(`data`,e=>o.push(e)),a.stderr.on(`data`,e=>s.push(e));let c=setTimeout(()=>{a.kill(),i(Error(`agent-browser timed out after ${this.timeoutMs}ms: ${e.join(` `)}`))},this.timeoutMs);a.once(`error`,e=>{clearTimeout(c),i(e)}),a.once(`close`,e=>{clearTimeout(c);let n=Buffer.concat(o).toString(`utf8`).trim(),r=Buffer.concat(s).toString(`utf8`).trim();if(e!==0){i(Error(`agent-browser failed (${e}): ${r||n}`));return}t(n)})})}};async function tc(){let e=ic(),[t,n]=await Promise.all([rc(e,[`--version`]),rc(e,[`doctor`,`--json`])]);return nc(t,n)}function nc(e,t){let n;try{n=JSON.parse(t)}catch(e){throw Error(`agent-browser doctor did not return valid JSON`,{cause:e})}let r=(n.checks?.find(e=>e.id===`chrome.installed`&&e.status===`pass`)?.message)?.split(` at `)[0];if(!r?.match(/^Google Chrome for Testing \d+\.\d+\.\d+\.\d+$/))throw Error(`Kapture requires an exact installed Google Chrome for Testing version`);return`${e}; ${r}`}function rc(e,t){return new Promise((n,i)=>{let a=r(e,t,{stdio:[`ignore`,`pipe`,`pipe`]}),o=[];a.stdout.on(`data`,e=>o.push(e)),a.once(`error`,i),a.once(`close`,e=>{if(e!==0)return i(Error(`agent-browser ${t.join(` `)} failed (${e})`));n(Buffer.concat(o).toString(`utf8`).trim())})})}function ic(){try{let t=e(import.meta.url),n=t.resolve(`agent-browser/package.json`),r=a(n),i=t(n),o=typeof i.bin==`string`?i.bin:i.bin?.[`agent-browser`]??`bin/agent-browser.js`;return f(r,o)}catch{return`agent-browser`}}var ac=class{id;options;attemptFactory;sessionPrefix;attemptNumber=0;activeAttempt;closed=!1;constructor(e,t=e=>new ec(e)){this.id=e.id,this.sessionPrefix=`kw-${m(`sha256`).update(e.id).digest(`hex`).slice(0,8)}`;let{id:n,...r}=e;this.options=r,this.attemptFactory=t}async runAttempt(e,t){if(this.closed)throw Error(`Browser worker ${this.id} is closed`);if(this.activeAttempt)throw Error(`Browser worker ${this.id} already has an active attempt`);let n=++this.attemptNumber,r=new oc(e,this.attemptFactory({...this.options,session:`${this.sessionPrefix}-${e.target[0]}-${n.toString(36)}`}));this.activeAttempt=r;let i,a,o=!1;try{i=await t(r)}catch(e){o=!0,a=e}let s,c=!1;try{await r.close()}catch(e){c=!0,s=e}finally{this.activeAttempt===r&&(this.activeAttempt=void 0)}if(o&&c)throw AggregateError([a,s],`Browser attempt ${r.session} failed and could not be closed`);if(o)throw a;if(c)throw s;return i}async close(){if(this.closed)return;this.closed=!0;let e=this.activeAttempt;e&&(await e.close(),this.activeAttempt===e&&(this.activeAttempt=void 0))}},oc=class{scope;driver;isolation=`browser-process`;closePromise;constructor(e,t){this.scope=e,this.driver=t}get session(){return this.driver.session}open(e){return this.driver.open(e)}setViewport(e){return this.driver.setViewport(e)}setMedia(e,t){return this.driver.setMedia(e,t)}evaluate(e){return this.driver.evaluate(e)}screenshot(e,t){return this.driver.screenshot(e,t)}close(){return this.closePromise??=this.driver.close(),this.closePromise}};async function sc(e,t,n){let r=JSON.stringify({id:t.id,browserMajor:t.browserVersion.match(/Chrome(?: for Testing)? (\d+)/)?.[1],locale:t.locale,timezone:t.timezone,deviceScaleFactor:t.deviceScaleFactor,colorScheme:t.colorScheme,reducedMotion:t.reducedMotion,frozenTimestamp:Date.parse(t.frozenTime)}),i=JSON.stringify(n);return e.evaluate(`(async () => {
44
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let n of e.seen.entries()){let r=n[1];if(t===n[0]){a(n);continue}if(e.external){let r=e.external.registry.get(n[0])?.id;if(t!==n[0]&&r){a(n);continue}}if(e.metadataRegistry.get(n[0])?.id){a(n);continue}if(r.cycle){a(n);continue}if(r.count>1&&e.reused===`ref`){a(n);continue}}}function Ja(e,t){let n=e.seen.get(t);if(!n)throw Error(`Unprocessed schema. This is a bug in Zod.`);let r=t=>{let n=e.seen.get(t);if(n.ref===null)return;let i=n.def??n.schema,a={...i},o=n.ref;if(n.ref=null,o){r(o);let n=e.seen.get(o),s=n.schema;if(s.$ref&&(e.target===`draft-07`||e.target===`draft-04`||e.target===`openapi-3.0`)?(i.allOf=i.allOf??[],i.allOf.push(s)):Object.assign(i,s),Object.assign(i,a),t._zod.parent===o)for(let e in i)e!==`$ref`&&e!==`allOf`&&(e in a||delete i[e]);if(s.$ref&&n.def)for(let e in i)e!==`$ref`&&e!==`allOf`&&e in n.def&&JSON.stringify(i[e])===JSON.stringify(n.def[e])&&delete i[e]}let s=t._zod.parent;if(s&&s!==o){r(s);let t=e.seen.get(s);if(t?.schema.$ref&&(i.$ref=t.schema.$ref,t.def))for(let e in i)e!==`$ref`&&e!==`allOf`&&e in t.def&&JSON.stringify(i[e])===JSON.stringify(t.def[e])&&delete i[e]}e.override({zodSchema:t,jsonSchema:i,path:n.path??[]})};for(let t of[...e.seen.entries()].reverse())r(t[0]);let i={};if(e.target===`draft-2020-12`?i.$schema=`https://json-schema.org/draft/2020-12/schema`:e.target===`draft-07`?i.$schema=`http://json-schema.org/draft-07/schema#`:e.target===`draft-04`?i.$schema=`http://json-schema.org/draft-04/schema#`:e.target,e.external?.uri){let n=e.external.registry.get(t)?.id;if(!n)throw Error("Schema is missing an `id` property");i.$id=e.external.uri(n)}Object.assign(i,n.def??n.schema);let a=e.external?.defs??{};for(let t of e.seen.entries()){let e=t[1];e.def&&e.defId&&(a[e.defId]=e.def)}e.external||Object.keys(a).length>0&&(e.target===`draft-2020-12`?i.$defs=a:i.definitions=a);try{let n=JSON.parse(JSON.stringify(i));return Object.defineProperty(n,"~standard",{value:{...t[`~standard`],jsonSchema:{input:Xa(t,`input`,e.processors),output:Xa(t,`output`,e.processors)}},enumerable:!1,writable:!1}),n}catch{throw Error(`Error converting schema to JSON.`)}}function N(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type===`transform`)return!0;if(r.type===`array`)return N(r.element,n);if(r.type===`set`)return N(r.valueType,n);if(r.type===`lazy`)return N(r.getter(),n);if(r.type===`promise`||r.type===`optional`||r.type===`nonoptional`||r.type===`nullable`||r.type===`readonly`||r.type==="default"||r.type===`prefault`)return N(r.innerType,n);if(r.type===`intersection`)return N(r.left,n)||N(r.right,n);if(r.type===`record`||r.type===`map`)return N(r.keyType,n)||N(r.valueType,n);if(r.type===`pipe`)return N(r.in,n)||N(r.out,n);if(r.type===`object`){for(let e in r.shape)if(N(r.shape[e],n))return!0;return!1}if(r.type===`union`){for(let e of r.options)if(N(e,n))return!0;return!1}if(r.type===`tuple`){for(let e of r.items)if(N(e,n))return!0;return!!(r.rest&&N(r.rest,n))}return!1}const Ya=(e,t={})=>n=>{let r=Ka({...n,processors:t});return M(e,r),qa(r,e),Ja(r,e)},Xa=(e,t,n={})=>r=>{let{libraryOptions:i,target:a}=r??{},o=Ka({...i??{},target:a,io:t,processors:n});return M(e,o),qa(o,e),Ja(o,e)},Za={guid:`uuid`,url:`uri`,datetime:`date-time`,json_string:`json-string`,regex:``},Qa=(e,t,n,r)=>{let i=n;i.type=`string`;let{minimum:a,maximum:o,format:s,patterns:c,contentEncoding:l}=e._zod.bag;if(typeof a==`number`&&(i.minLength=a),typeof o==`number`&&(i.maxLength=o),s&&(i.format=Za[s]??s,i.format===``&&delete i.format,s===`time`&&delete i.format),l&&(i.contentEncoding=l),c&&c.size>0){let e=[...c];e.length===1?i.pattern=e[0].source:e.length>1&&(i.allOf=[...e.map(e=>({...t.target===`draft-07`||t.target===`draft-04`||t.target===`openapi-3.0`?{type:`string`}:{},pattern:e.source}))])}},$a=(e,t,n,r)=>{let i=n,{minimum:a,maximum:o,format:s,multipleOf:c,exclusiveMaximum:l,exclusiveMinimum:u}=e._zod.bag;i.type=typeof s==`string`&&s.includes(`int`)?`integer`:`number`,typeof u==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.minimum=u,i.exclusiveMinimum=!0):i.exclusiveMinimum=u),typeof a==`number`&&(i.minimum=a,typeof u==`number`&&t.target!==`draft-04`&&(u>=a?delete i.minimum:delete i.exclusiveMinimum)),typeof l==`number`&&(t.target===`draft-04`||t.target===`openapi-3.0`?(i.maximum=l,i.exclusiveMaximum=!0):i.exclusiveMaximum=l),typeof o==`number`&&(i.maximum=o,typeof l==`number`&&t.target!==`draft-04`&&(l<=o?delete i.maximum:delete i.exclusiveMaximum)),typeof c==`number`&&(i.multipleOf=c)},eo=(e,t,n,r)=>{n.type=`boolean`},to=(e,t,n,r)=>{n.not={}},no=(e,t,n,r)=>{let i=e._zod.def,a=It(i.entries);a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),n.enum=a},ro=(e,t,n,r)=>{let i=e._zod.def,a=[];for(let e of i.values)if(e===void 0){if(t.unrepresentable===`throw`)throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof e==`bigint`){if(t.unrepresentable===`throw`)throw Error(`BigInt literals cannot be represented in JSON Schema`);a.push(Number(e))}else a.push(e);if(a.length!==0){if(a.length===1){let e=a[0];n.type=e===null?`null`:typeof e,t.target===`draft-04`||t.target===`openapi-3.0`?n.enum=[e]:n.const=e}else a.every(e=>typeof e==`number`)&&(n.type=`number`),a.every(e=>typeof e==`string`)&&(n.type=`string`),a.every(e=>typeof e==`boolean`)&&(n.type=`boolean`),a.every(e=>e===null)&&(n.type=`null`),n.enum=a}},io=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Custom types cannot be represented in JSON Schema`)},ao=(e,t,n,r)=>{if(t.unrepresentable===`throw`)throw Error(`Transforms cannot be represented in JSON Schema`)},oo=(e,t,n,r)=>{let i=n,a=e._zod.def,{minimum:o,maximum:s}=e._zod.bag;typeof o==`number`&&(i.minItems=o),typeof s==`number`&&(i.maxItems=s),i.type=`array`,i.items=M(a.element,t,{...r,path:[...r.path,`items`]})},so=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`,i.properties={};let o=a.shape;for(let e in o)i.properties[e]=M(o[e],t,{...r,path:[...r.path,`properties`,e]});let s=new Set(Object.keys(o)),c=new Set([...s].filter(e=>{let n=a.shape[e]._zod;return t.io===`input`?n.optin===void 0:n.optout===void 0}));c.size>0&&(i.required=Array.from(c)),a.catchall?._zod.def.type===`never`?i.additionalProperties=!1:a.catchall?a.catchall&&(i.additionalProperties=M(a.catchall,t,{...r,path:[...r.path,`additionalProperties`]})):t.io===`output`&&(i.additionalProperties=!1)},co=(e,t,n,r)=>{let i=e._zod.def,a=i.inclusive===!1,o=i.options.map((e,n)=>M(e,t,{...r,path:[...r.path,a?`oneOf`:`anyOf`,n]}));a?n.oneOf=o:n.anyOf=o},lo=(e,t,n,r)=>{let i=e._zod.def,a=M(i.left,t,{...r,path:[...r.path,`allOf`,0]}),o=M(i.right,t,{...r,path:[...r.path,`allOf`,1]}),s=e=>`allOf`in e&&Object.keys(e).length===1;n.allOf=[...s(a)?a.allOf:[a],...s(o)?o.allOf:[o]]},uo=(e,t,n,r)=>{let i=n,a=e._zod.def;i.type=`object`;let o=a.keyType,s=o._zod.bag?.patterns;if(a.mode===`loose`&&s&&s.size>0){let e=M(a.valueType,t,{...r,path:[...r.path,`patternProperties`,`*`]});i.patternProperties={};for(let t of s)i.patternProperties[t.source]=e}else(t.target===`draft-07`||t.target===`draft-2020-12`)&&(i.propertyNames=M(a.keyType,t,{...r,path:[...r.path,`propertyNames`]})),i.additionalProperties=M(a.valueType,t,{...r,path:[...r.path,`additionalProperties`]});let c=o._zod.values;if(c){let e=[...c].filter(e=>typeof e==`string`||typeof e==`number`);e.length>0&&(i.required=e)}},fo=(e,t,n,r)=>{let i=e._zod.def,a=M(i.innerType,t,r),o=t.seen.get(e);t.target===`openapi-3.0`?(o.ref=i.innerType,n.nullable=!0):n.anyOf=[a,{type:`null`}]},po=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},mo=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.default=JSON.parse(JSON.stringify(i.defaultValue))},ho=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,t.io===`input`&&(n._prefault=JSON.parse(JSON.stringify(i.defaultValue)))},go=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType;let o;try{o=i.catchValue(void 0)}catch{throw Error(`Dynamic catch values are not supported in JSON Schema`)}n.default=o},_o=(e,t,n,r)=>{let i=e._zod.def,a=t.io===`input`?i.in._zod.def.type===`transform`?i.out:i.in:i.out;M(a,t,r);let o=t.seen.get(e);o.ref=a},vo=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType,n.readOnly=!0},yo=(e,t,n,r)=>{let i=e._zod.def;M(i.innerType,t,r);let a=t.seen.get(e);a.ref=i.innerType},bo=E(`ZodISODateTime`,(e,t)=>{Vr.init(e,t),I.init(e,t)});function xo(e){return pa(bo,e)}const So=E(`ZodISODate`,(e,t)=>{Hr.init(e,t),I.init(e,t)});function Co(e){return ma(So,e)}const wo=E(`ZodISOTime`,(e,t)=>{Ur.init(e,t),I.init(e,t)});function To(e){return ha(wo,e)}const Eo=E(`ZodISODuration`,(e,t)=>{Wr.init(e,t),I.init(e,t)});function Do(e){return ga(Eo,e)}const Oo=(e,t)=>{vn.init(e,t),e.name=`ZodError`,Object.defineProperties(e,{format:{value:t=>xn(e,t)},flatten:{value:t=>bn(e,t)},addIssue:{value:t=>{e.issues.push(t),e.message=JSON.stringify(e.issues,Lt,2)}},addIssues:{value:t=>{e.issues.push(...t),e.message=JSON.stringify(e.issues,Lt,2)}},isEmpty:{get(){return e.issues.length===0}}})};E(`ZodError`,Oo);const ko=E(`ZodError`,Oo,{Parent:Error}),Ao=Sn(ko),jo=Cn(ko),Mo=wn(ko),No=En(ko),Po=On(ko),Fo=kn(ko),Io=An(ko),Lo=jn(ko),Ro=Mn(ko),zo=Nn(ko),Bo=Pn(ko),Vo=Fn(ko),P=E(`ZodType`,(e,t)=>(A.init(e,t),Object.assign(e[`~standard`],{jsonSchema:{input:Xa(e,`input`),output:Xa(e,`output`)}}),e.toJSONSchema=Ya(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.check=(...n)=>e.clone(Wt(t,{checks:[...t.checks??[],...n.map(e=>typeof e==`function`?{_zod:{check:e,def:{check:`custom`},onattach:[]}}:e)]}),{parent:!0}),e.with=e.check,e.clone=(t,n)=>en(e,t,n),e.brand=()=>e,e.register=((t,n)=>(t.add(e,n),e)),e.parse=(t,n)=>Ao(e,t,n,{callee:e.parse}),e.safeParse=(t,n)=>Mo(e,t,n),e.parseAsync=async(t,n)=>jo(e,t,n,{callee:e.parseAsync}),e.safeParseAsync=async(t,n)=>No(e,t,n),e.spa=e.safeParseAsync,e.encode=(t,n)=>Po(e,t,n),e.decode=(t,n)=>Fo(e,t,n),e.encodeAsync=async(t,n)=>Io(e,t,n),e.decodeAsync=async(t,n)=>Lo(e,t,n),e.safeEncode=(t,n)=>Ro(e,t,n),e.safeDecode=(t,n)=>zo(e,t,n),e.safeEncodeAsync=async(t,n)=>Bo(e,t,n),e.safeDecodeAsync=async(t,n)=>Vo(e,t,n),e.refine=(t,n)=>e.check(Qs(t,n)),e.superRefine=t=>e.check($s(t)),e.overwrite=t=>e.check(Ia(t)),e.optional=()=>Ps(e),e.exactOptional=()=>Is(e),e.nullable=()=>Rs(e),e.nullish=()=>Ps(Rs(e)),e.nonoptional=t=>Ws(e,t),e.array=()=>ys(e),e.or=t=>Cs([e,t]),e.and=t=>Ds(e,t),e.transform=t=>Js(e,Ms(t)),e.default=t=>Bs(e,t),e.prefault=t=>Hs(e,t),e.catch=t=>Ks(e,t),e.pipe=t=>Js(e,t),e.readonly=()=>Xs(e),e.describe=t=>{let n=e.clone();return Ui.add(n,{description:t}),n},Object.defineProperty(e,"description",{get(){return Ui.get(e)?.description},configurable:!0}),e.meta=(...t)=>{if(t.length===0)return Ui.get(e);let n=e.clone();return Ui.add(n,t[0]),n},e.isOptional=()=>e.safeParse(void 0).success,e.isNullable=()=>e.safeParse(null).success,e.apply=t=>t(e),e)),Ho=E(`_ZodString`,(e,t)=>{kr.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>Qa(e,t,n,r);let n=e._zod.bag;e.format=n.format??null,e.minLength=n.minimum??null,e.maxLength=n.maximum??null,e.regex=(...t)=>e.check(Aa(...t)),e.includes=(...t)=>e.check(Na(...t)),e.startsWith=(...t)=>e.check(Pa(...t)),e.endsWith=(...t)=>e.check(Fa(...t)),e.min=(...t)=>e.check(Oa(...t)),e.max=(...t)=>e.check(Da(...t)),e.length=(...t)=>e.check(ka(...t)),e.nonempty=(...t)=>e.check(Oa(1,...t)),e.lowercase=t=>e.check(ja(t)),e.uppercase=t=>e.check(Ma(t)),e.trim=()=>e.check(Ra()),e.normalize=(...t)=>e.check(La(...t)),e.toLowerCase=()=>e.check(za()),e.toUpperCase=()=>e.check(Ba()),e.slugify=()=>e.check(Va())}),Uo=E(`ZodString`,(e,t)=>{kr.init(e,t),Ho.init(e,t),e.email=t=>e.check(Gi(Wo,t)),e.url=t=>e.check(Zi(qo,t)),e.jwt=t=>e.check(fa(cs,t)),e.emoji=t=>e.check(Qi(Jo,t)),e.guid=t=>e.check(Ki(Go,t)),e.uuid=t=>e.check(qi(Ko,t)),e.uuidv4=t=>e.check(Ji(Ko,t)),e.uuidv6=t=>e.check(Yi(Ko,t)),e.uuidv7=t=>e.check(Xi(Ko,t)),e.nanoid=t=>e.check($i(Yo,t)),e.guid=t=>e.check(Ki(Go,t)),e.cuid=t=>e.check(ea(Xo,t)),e.cuid2=t=>e.check(ta(Zo,t)),e.ulid=t=>e.check(na(Qo,t)),e.base64=t=>e.check(la(as,t)),e.base64url=t=>e.check(ua(os,t)),e.xid=t=>e.check(ra($o,t)),e.ksuid=t=>e.check(ia(es,t)),e.ipv4=t=>e.check(aa(ts,t)),e.ipv6=t=>e.check(oa(ns,t)),e.cidrv4=t=>e.check(sa(rs,t)),e.cidrv6=t=>e.check(ca(is,t)),e.e164=t=>e.check(da(ss,t)),e.datetime=t=>e.check(xo(t)),e.date=t=>e.check(Co(t)),e.time=t=>e.check(To(t)),e.duration=t=>e.check(Do(t))});function F(e){return Wi(Uo,e)}const I=E(`ZodStringFormat`,(e,t)=>{j.init(e,t),Ho.init(e,t)}),Wo=E(`ZodEmail`,(e,t)=>{Mr.init(e,t),I.init(e,t)}),Go=E(`ZodGUID`,(e,t)=>{Ar.init(e,t),I.init(e,t)}),Ko=E(`ZodUUID`,(e,t)=>{jr.init(e,t),I.init(e,t)}),qo=E(`ZodURL`,(e,t)=>{Nr.init(e,t),I.init(e,t)}),Jo=E(`ZodEmoji`,(e,t)=>{Pr.init(e,t),I.init(e,t)}),Yo=E(`ZodNanoID`,(e,t)=>{Fr.init(e,t),I.init(e,t)}),Xo=E(`ZodCUID`,(e,t)=>{Ir.init(e,t),I.init(e,t)}),Zo=E(`ZodCUID2`,(e,t)=>{Lr.init(e,t),I.init(e,t)}),Qo=E(`ZodULID`,(e,t)=>{Rr.init(e,t),I.init(e,t)}),$o=E(`ZodXID`,(e,t)=>{zr.init(e,t),I.init(e,t)}),es=E(`ZodKSUID`,(e,t)=>{Br.init(e,t),I.init(e,t)}),ts=E(`ZodIPv4`,(e,t)=>{Gr.init(e,t),I.init(e,t)}),ns=E(`ZodIPv6`,(e,t)=>{Kr.init(e,t),I.init(e,t)}),rs=E(`ZodCIDRv4`,(e,t)=>{qr.init(e,t),I.init(e,t)}),is=E(`ZodCIDRv6`,(e,t)=>{Jr.init(e,t),I.init(e,t)}),as=E(`ZodBase64`,(e,t)=>{Xr.init(e,t),I.init(e,t)}),os=E(`ZodBase64URL`,(e,t)=>{Qr.init(e,t),I.init(e,t)}),ss=E(`ZodE164`,(e,t)=>{$r.init(e,t),I.init(e,t)}),cs=E(`ZodJWT`,(e,t)=>{ti.init(e,t),I.init(e,t)}),ls=E(`ZodNumber`,(e,t)=>{ni.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>$a(e,t,n,r),e.gt=(t,n)=>e.check(wa(t,n)),e.gte=(t,n)=>e.check(Ta(t,n)),e.min=(t,n)=>e.check(Ta(t,n)),e.lt=(t,n)=>e.check(Sa(t,n)),e.lte=(t,n)=>e.check(Ca(t,n)),e.max=(t,n)=>e.check(Ca(t,n)),e.int=t=>e.check(ds(t)),e.safe=t=>e.check(ds(t)),e.positive=t=>e.check(wa(0,t)),e.nonnegative=t=>e.check(Ta(0,t)),e.negative=t=>e.check(Sa(0,t)),e.nonpositive=t=>e.check(Ca(0,t)),e.multipleOf=(t,n)=>e.check(Ea(t,n)),e.step=(t,n)=>e.check(Ea(t,n)),e.finite=()=>e;let n=e._zod.bag;e.minValue=Math.max(n.minimum??-1/0,n.exclusiveMinimum??-1/0)??null,e.maxValue=Math.min(n.maximum??1/0,n.exclusiveMaximum??1/0)??null,e.isInt=(n.format??``).includes(`int`)||Number.isSafeInteger(n.multipleOf??.5),e.isFinite=!0,e.format=n.format??null});function L(e){return _a(ls,e)}const us=E(`ZodNumberFormat`,(e,t)=>{ri.init(e,t),ls.init(e,t)});function ds(e){return va(us,e)}const fs=E(`ZodBoolean`,(e,t)=>{ii.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>eo(e,t,n,r)});function ps(e){return ya(fs,e)}const ms=E(`ZodUnknown`,(e,t)=>{ai.init(e,t),P.init(e,t),e._zod.processJSONSchema=(e,t,n)=>void 0});function hs(){return ba(ms)}const gs=E(`ZodNever`,(e,t)=>{oi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>to(e,t,n,r)});function _s(e){return xa(gs,e)}const vs=E(`ZodArray`,(e,t)=>{ci.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>oo(e,t,n,r),e.element=t.element,e.min=(t,n)=>e.check(Oa(t,n)),e.nonempty=t=>e.check(Oa(1,t)),e.max=(t,n)=>e.check(Da(t,n)),e.length=(t,n)=>e.check(ka(t,n)),e.unwrap=()=>e.element});function ys(e,t){return Ha(vs,e,t)}const bs=E(`ZodObject`,(e,t)=>{pi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>so(e,t,n,r),D(e,`shape`,()=>t.shape),e.keyof=()=>B(Object.keys(e._zod.def.shape)),e.catchall=t=>e.clone({...e._zod.def,catchall:t}),e.passthrough=()=>e.clone({...e._zod.def,catchall:hs()}),e.loose=()=>e.clone({...e._zod.def,catchall:hs()}),e.strict=()=>e.clone({...e._zod.def,catchall:_s()}),e.strip=()=>e.clone({...e._zod.def,catchall:void 0}),e.extend=t=>on(e,t),e.safeExtend=t=>sn(e,t),e.merge=t=>cn(e,t),e.pick=t=>rn(e,t),e.omit=t=>an(e,t),e.partial=(...t)=>ln(Ns,e,t[0]),e.required=(...t)=>un(Us,e,t[0])});function xs(e,t){let n={type:`object`,shape:e??{},...O(t)};return new bs(n)}function R(e,t){return new bs({type:`object`,shape:e,catchall:_s(),...O(t)})}const Ss=E(`ZodUnion`,(e,t)=>{hi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>co(e,t,n,r),e.options=t.options});function Cs(e,t){return new Ss({type:`union`,options:e,...O(t)})}const ws=E(`ZodDiscriminatedUnion`,(e,t)=>{Ss.init(e,t),gi.init(e,t)});function Ts(e,t,n){return new ws({type:`union`,options:t,discriminator:e,...O(n)})}const Es=E(`ZodIntersection`,(e,t)=>{_i.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>lo(e,t,n,r)});function Ds(e,t){return new Es({type:`intersection`,left:e,right:t})}const Os=E(`ZodRecord`,(e,t)=>{bi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>uo(e,t,n,r),e.keyType=t.keyType,e.valueType=t.valueType});function z(e,t,n){return new Os({type:`record`,keyType:e,valueType:t,...O(n)})}const ks=E(`ZodEnum`,(e,t)=>{xi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>no(e,t,n,r),e.enum=t.entries,e.options=Object.values(t.entries);let n=new Set(Object.keys(t.entries));e.extract=(e,r)=>{let i={};for(let r of e)if(n.has(r))i[r]=t.entries[r];else throw Error(`Key ${r} not found in enum`);return new ks({...t,checks:[],...O(r),entries:i})},e.exclude=(e,r)=>{let i={...t.entries};for(let t of e)if(n.has(t))delete i[t];else throw Error(`Key ${t} not found in enum`);return new ks({...t,checks:[],...O(r),entries:i})}});function B(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map(e=>[e,e])):e;return new ks({type:`enum`,entries:n,...O(t)})}const As=E(`ZodLiteral`,(e,t)=>{Si.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ro(e,t,n,r),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function V(e,t){return new As({type:`literal`,values:Array.isArray(e)?e:[e],...O(t)})}const js=E(`ZodTransform`,(e,t)=>{Ci.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ao(e,t,n,r),e._zod.parse=(n,r)=>{if(r.direction===`backward`)throw new Nt(e.constructor.name);n.addIssue=r=>{if(typeof r==`string`)n.issues.push(gn(r,n.value,t));else{let t=r;t.fatal&&(t.continue=!1),t.code??=`custom`,t.input??=n.value,t.inst??=e,n.issues.push(gn(t))}};let i=t.transform(n.value,n);return i instanceof Promise?i.then(e=>(n.value=e,n)):(n.value=i,n)}});function Ms(e){return new js({type:`transform`,transform:e})}const Ns=E(`ZodOptional`,(e,t)=>{Ti.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>yo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ps(e){return new Ns({type:`optional`,innerType:e})}const Fs=E(`ZodExactOptional`,(e,t)=>{Ei.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>yo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Is(e){return new Fs({type:`optional`,innerType:e})}const Ls=E(`ZodNullable`,(e,t)=>{Di.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>fo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Rs(e){return new Ls({type:`nullable`,innerType:e})}const zs=E(`ZodDefault`,(e,t)=>{Oi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>mo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Bs(e,t){return new zs({type:`default`,innerType:e,get defaultValue(){return typeof t==`function`?t():Zt(t)}})}const Vs=E(`ZodPrefault`,(e,t)=>{Ai.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>ho(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Hs(e,t){return new Vs({type:`prefault`,innerType:e,get defaultValue(){return typeof t==`function`?t():Zt(t)}})}const Us=E(`ZodNonOptional`,(e,t)=>{ji.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>po(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Ws(e,t){return new Us({type:`nonoptional`,innerType:e,...O(t)})}const Gs=E(`ZodCatch`,(e,t)=>{Ni.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>go(e,t,n,r),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Ks(e,t){return new Gs({type:`catch`,innerType:e,catchValue:typeof t==`function`?t:()=>t})}const qs=E(`ZodPipe`,(e,t)=>{Pi.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>_o(e,t,n,r),e.in=t.in,e.out=t.out});function Js(e,t){return new qs({type:`pipe`,in:e,out:t})}const Ys=E(`ZodReadonly`,(e,t)=>{Ii.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>vo(e,t,n,r),e.unwrap=()=>e._zod.def.innerType});function Xs(e){return new Ys({type:`readonly`,innerType:e})}const Zs=E(`ZodCustom`,(e,t)=>{Ri.init(e,t),P.init(e,t),e._zod.processJSONSchema=(t,n,r)=>io(e,t,n,r)});function Qs(e,t={}){return Ua(Zs,e,t)}function $s(e){return Wa(e)}var ec=jt(),tc=class{session;isolation=`browser-process`;namespace;initScriptPath;timezone;locale;deviceScaleFactor;allowedDomains;timeoutMs;bin;commandStarted=!1;closePromise;constructor(e){this.session=e.session,this.namespace=e.namespace,this.initScriptPath=e.initScriptPath,this.timezone=e.timezone,this.locale=e.locale,this.deviceScaleFactor=e.deviceScaleFactor,this.allowedDomains=e.allowedDomains,this.timeoutMs=e.timeoutMs??3e4,this.bin=ac()}open(e){return this.execVoid([`open`,e])}setViewport(e){return this.execVoid([`set`,`viewport`,String(e.width),String(e.height)])}setMedia(e,t){let n=[`set`,`media`,e];return t&&n.push(`reduced-motion`),this.execVoid(n)}async evaluate(e){let t=await this.exec([`eval`,e]),n=JSON.parse(t);if(n.success===!1)throw Error(n.error??`agent-browser eval failed`);return n.data&&typeof n.data==`object`&&`result`in n.data?n.data.result:n.data===void 0?n.result===void 0?n:n.result:n.data}screenshot(e,t){return this.execVoid([`screenshot`,...t.fullPage?[`--full`]:[],e])}close(){return this.closePromise?this.closePromise:this.commandStarted?(this.closePromise=this.execVoid([`close`],!0),this.closePromise):(this.closePromise=Promise.resolve(),this.closePromise)}async execVoid(e,t=!1){let n=await this.exec(e,t);try{let t=JSON.parse(n);if(t.success===!1)throw Error(t.error??`agent-browser command failed: ${e.join(` `)}`)}catch(e){if(e instanceof SyntaxError)return;throw e}}exec(e,t=!1){if(this.closePromise&&!t)return Promise.reject(Error(`agent-browser session ${this.session} is closed`));t||(this.commandStarted=!0);let n=[`--session`,this.session,`--namespace`,this.namespace,`--init-script`,this.initScriptPath,`--allowed-domains`,this.allowedDomains.join(`,`),`--args`,`--force-device-scale-factor=${this.deviceScaleFactor},--lang=${this.locale}`,`--json`,...e];return new Promise((t,i)=>{let a=r(this.bin,n,{env:{...process.env,LANG:`${this.locale}.UTF-8`,TZ:this.timezone},stdio:[`ignore`,`pipe`,`pipe`]}),o=[],s=[];a.stdout.on(`data`,e=>o.push(e)),a.stderr.on(`data`,e=>s.push(e));let c=setTimeout(()=>{a.kill(),i(Error(`agent-browser timed out after ${this.timeoutMs}ms: ${e.join(` `)}`))},this.timeoutMs);a.once(`error`,e=>{clearTimeout(c),i(e)}),a.once(`close`,e=>{clearTimeout(c);let n=Buffer.concat(o).toString(`utf8`).trim(),r=Buffer.concat(s).toString(`utf8`).trim();if(e!==0){i(Error(`agent-browser failed (${e}): ${r||n}`));return}t(n)})})}};async function nc(){let e=ac(),[t,n]=await Promise.all([ic(e,[`--version`]),ic(e,[`doctor`,`--json`])]);return rc(t,n)}function rc(e,t){let n;try{n=JSON.parse(t)}catch(e){throw Error(`agent-browser doctor did not return valid JSON`,{cause:e})}let r=(n.checks?.find(e=>e.id===`chrome.installed`&&e.status===`pass`)?.message)?.split(` at `)[0];if(!r?.match(/^Google Chrome for Testing \d+\.\d+\.\d+\.\d+$/))throw Error(`Kapture requires an exact installed Google Chrome for Testing version`);return`${e}; ${r}`}function ic(e,t){return new Promise((n,i)=>{let a=r(e,t,{stdio:[`ignore`,`pipe`,`pipe`]}),o=[];a.stdout.on(`data`,e=>o.push(e)),a.once(`error`,i),a.once(`close`,e=>{if(e!==0)return i(Error(`agent-browser ${t.join(` `)} failed (${e})`));n(Buffer.concat(o).toString(`utf8`).trim())})})}function ac(){try{let t=e(import.meta.url),n=t.resolve(`agent-browser/package.json`),r=a(n),i=t(n),o=typeof i.bin==`string`?i.bin:i.bin?.[`agent-browser`]??`bin/agent-browser.js`;return f(r,o)}catch{return`agent-browser`}}var oc=class{id;options;attemptFactory;sessionPrefix;attemptNumber=0;activeAttempt;closed=!1;constructor(e,t=e=>new tc(e)){this.id=e.id,this.sessionPrefix=`kw-${m(`sha256`).update(e.id).digest(`hex`).slice(0,8)}`;let{id:n,...r}=e;this.options=r,this.attemptFactory=t}async runAttempt(e,t){if(this.closed)throw Error(`Browser worker ${this.id} is closed`);if(this.activeAttempt)throw Error(`Browser worker ${this.id} already has an active attempt`);let n=++this.attemptNumber,r=new sc(e,this.attemptFactory({...this.options,session:`${this.sessionPrefix}-${e.target[0]}-${n.toString(36)}`}));this.activeAttempt=r;let i,a,o=!1;try{i=await t(r)}catch(e){o=!0,a=e}let s,c=!1;try{await r.close()}catch(e){c=!0,s=e}finally{this.activeAttempt===r&&(this.activeAttempt=void 0)}if(o&&c)throw AggregateError([a,s],`Browser attempt ${r.session} failed and could not be closed`);if(o)throw a;if(c)throw s;return i}async close(){if(this.closed)return;this.closed=!0;let e=this.activeAttempt;e&&(await e.close(),this.activeAttempt===e&&(this.activeAttempt=void 0))}},sc=class{scope;driver;isolation=`browser-process`;closePromise;constructor(e,t){this.scope=e,this.driver=t}get session(){return this.driver.session}open(e){return this.driver.open(e)}setViewport(e){return this.driver.setViewport(e)}setMedia(e,t){return this.driver.setMedia(e,t)}evaluate(e){return this.driver.evaluate(e)}screenshot(e,t){return this.driver.screenshot(e,t)}close(){return this.closePromise??=this.driver.close(),this.closePromise}};async function cc(e,t,n){let r=JSON.stringify({id:t.id,browserMajor:t.browserVersion.match(/Chrome(?: for Testing)? (\d+)/)?.[1],locale:t.locale,timezone:t.timezone,deviceScaleFactor:t.deviceScaleFactor,colorScheme:t.colorScheme,reducedMotion:t.reducedMotion,frozenTimestamp:Date.parse(t.frozenTime)}),i=JSON.stringify(n);return e.evaluate(`(async () => {
45
45
  const expected = ${r};
46
46
  const parameters = ${i};
47
47
  const actual = {
@@ -138,7 +138,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
138
138
  }
139
139
 
140
140
  const waitForAssets = async () => {
141
- await document.fonts.ready;
141
+ if (parameters.waitForFonts !== false) await document.fonts.ready;
142
142
  await Promise.all(Array.from(document.images).map(image => {
143
143
  if (image.complete) return Promise.resolve();
144
144
  return new Promise(resolve => {
@@ -208,13 +208,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
208
208
  freezeAnimations();
209
209
  applyMasks();
210
210
 
211
- const requiredFonts = Array.isArray(parameters.requiredFonts) ? parameters.requiredFonts : [];
212
- if (requiredFonts.length > 0) {
211
+ const fontAssertions = Array.isArray(parameters.fontAssertions) ? parameters.fontAssertions : [];
212
+ if (fontAssertions.length > 0) {
213
213
  const canvas = document.createElement("canvas");
214
214
  canvas.width = 192;
215
215
  canvas.height = 96;
216
216
  const context = canvas.getContext("2d", { willReadFrequently: true });
217
- if (!context) throw new Error("Kapture could not create a canvas for requiredFonts diagnostics");
217
+ if (!context) throw new Error("Kapture could not create a canvas for fontAssertions diagnostics");
218
218
  const genericFamilies = new Set([
219
219
  "serif", "sans-serif", "monospace", "cursive", "fantasy", "system-ui",
220
220
  ]);
@@ -232,23 +232,20 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
232
232
  return fingerprint;
233
233
  };
234
234
  const missing = [];
235
- for (const value of requiredFonts) {
236
- const requirement = typeof value === "string"
237
- ? { family: value, text: "BESbswy 0123456789" }
238
- : value;
239
- if (!requirement || typeof requirement.text !== "string" || !requirement.text.trim()) {
240
- throw new Error("Kapture requiredFonts entries need non-empty text");
235
+ for (const requirement of fontAssertions) {
236
+ if (!requirement || typeof requirement.family !== "string" || !requirement.family.trim()) {
237
+ throw new Error("Kapture fontAssertions entries need a non-empty family");
241
238
  }
242
- const inheritedFamily = getComputedStyle(document.body).fontFamily || "sans-serif";
243
- const family = typeof requirement.family === "string" && requirement.family.trim()
244
- ? requirement.family.trim()
245
- : inheritedFamily;
246
- const text = requirement.text;
239
+ if (typeof requirement.glyphs !== "string" || !requirement.glyphs.trim()) {
240
+ throw new Error("Kapture fontAssertions entries need non-empty glyphs");
241
+ }
242
+ const family = requirement.family.trim();
243
+ const text = requirement.glyphs;
247
244
  const prefix = (requirement.style ?? "normal") + " " + (requirement.weight ?? "400") + " 64px ";
248
245
  try { await document.fonts.load(prefix + family, text); } catch {}
249
246
 
250
247
  let familyAvailable = true;
251
- if (requirement.family && !genericFamilies.has(family.toLowerCase())) {
248
+ if (!genericFamilies.has(family.toLowerCase())) {
252
249
  const withMonospace = renderFingerprint(text, prefix, family + ", monospace");
253
250
  const withSerif = renderFingerprint(text, prefix, family + ", serif");
254
251
  familyAvailable = withMonospace !== renderFingerprint(text, prefix, "monospace") ||
@@ -267,12 +264,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
267
264
  return !actualGlyph || actualGlyph === missingGlyph;
268
265
  });
269
266
  if (!familyAvailable || !document.fonts.check(prefix + family, text) || missingGlyphs.length > 0) {
270
- missing.push((requirement.family ? family : "document font fallback") +
271
- " for " + JSON.stringify(missingGlyphs.join("") || text));
267
+ missing.push(family + " for " + JSON.stringify(missingGlyphs.join("") || text));
272
268
  }
273
269
  }
274
270
  if (missing.length > 0) {
275
- throw new Error("Kapture required fonts are unavailable or missing requested glyphs: " + missing.join(", "));
271
+ throw new Error("Kapture font assertions failed: " + missing.join(", "));
276
272
  }
277
273
  }
278
274
 
@@ -302,9 +298,9 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
302
298
  }
303
299
  }
304
300
  return { ignoredRegions };
305
- })()`)}const cc={name:`default`,width:1280,height:800},lc={pixel:.2,ratio:0};async function uc(e,t,n,r,i){let[o,s]=await Promise.all([x(e),x(t)]),c=$s.PNG.sync.read(o),l=$s.PNG.sync.read(s),u=Math.max(c.width,l.width),d=Math.max(c.height,l.height),f=fc(c,u,d),p=fc(l,u,d),m=dc(f,p,i?.base??[],i?.head??[]),h=new $s.PNG({width:u,height:d}),g=rt(f.data,p.data,h.data,u,d,{threshold:r,includeAA:!1}),_=u*d-m;return await y(a(n),{recursive:!0}),await se(n,$s.PNG.sync.write(h)),{changedPixels:g,totalPixels:_,diffRatio:_===0?0:g/_}}function dc(e,t,n,r){if(n.length===0||r.length===0)return 0;let{width:i,height:a}=e,o=new Uint8Array(i*a);for(let e of n)for(let t of r){let n=Math.max(0,e.x,t.x),r=Math.max(0,e.y,t.y),s=Math.min(i,e.x+e.width,t.x+t.width),c=Math.min(a,e.y+e.height,t.y+t.height);if(!(s<=n||c<=r))for(let e=r;e<c;e+=1)o.fill(1,e*i+n,e*i+s)}let s=0;for(let n=0;n<o.length;n+=1){if(o[n]===0)continue;s+=1;let r=n*4;e.data.fill(0,r,r+4),t.data.fill(0,r,r+4)}return s}function fc(e,t,n){if(e.width===t&&e.height===n)return e;let r=new $s.PNG({width:t,height:n}),i=e.width*4;for(let n=0;n<e.height;n+=1){let a=n*i;r.data.set(e.data.subarray(a,a+i),n*t*4)}return r}function pc(e){return m(`sha256`).update(JSON.stringify(e)).digest(`hex`).slice(0,16)}function mc(e){let t=[...e.allowedDomains??[`127.0.0.1`,`localhost`]].sort(),n=process.versions.bun,r={browser:`chromium`,browserVersion:e.browserVersion,orchestratorRuntime:e.orchestratorRuntime??(n?`bun ${n}`:`node ${process.version}`),operatingSystem:`${le()}-${ue()}`,architecture:ce(),deviceScaleFactor:e.deviceScaleFactor??1,locale:hc(e.locale??`en-US`),timezone:gc(e.timezone??`UTC`),colorScheme:e.colorScheme??`light`,reducedMotion:e.reducedMotion??`reduce`,frozenTime:e.frozenTime??`2026-01-01T00:00:00.000Z`,randomSeed:e.randomSeed??20260101,fontsFingerprint:e.fontsFingerprint??`storybook-bundled-fonts-v1`,stateIsolation:`fresh-browser-process-per-story-side-v1`,network:{mode:`allowlist`,allowedDomains:t,webRtc:`disabled`}};return{id:pc(r),...r}}function hc(e){if(!e.trim())throw Error(`Kapture locale must not be empty`);try{let[t]=Intl.getCanonicalLocales(e);if(!t)throw Error(`missing canonical locale`);return t}catch(t){throw Error(`Kapture locale must be a valid BCP 47 tag: ${e}`,{cause:t})}}function gc(e){if(!e.trim())throw Error(`Kapture timezone must not be empty`);try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e}).resolvedOptions().timeZone}catch(t){throw Error(`Kapture timezone must be a valid IANA time zone: ${e}`,{cause:t})}}function _c(e,t){if(e.id!==t.id||JSON.stringify(e)!==JSON.stringify(t))throw Error(`Kapture environment mismatch: base=${e.id}, head=${t.id}. Base and head must be captured with the exact same environment contract.`)}async function vc(){try{let e=(await yc()).split(`
301
+ })()`)}const lc={name:`default`,width:1280,height:800},uc={pixel:.2,ratio:0};async function dc(e,t,n,r,i){let[o,s]=await Promise.all([x(e),x(t)]),c=ec.PNG.sync.read(o),l=ec.PNG.sync.read(s),u=Math.max(c.width,l.width),d=Math.max(c.height,l.height),f=pc(c,u,d),p=pc(l,u,d),m=fc(f,p,i?.base??[],i?.head??[]),h=new ec.PNG({width:u,height:d}),g=rt(f.data,p.data,h.data,u,d,{threshold:r,includeAA:!1}),_=u*d-m;return await y(a(n),{recursive:!0}),await se(n,ec.PNG.sync.write(h)),{changedPixels:g,totalPixels:_,diffRatio:_===0?0:g/_}}function fc(e,t,n,r){if(n.length===0||r.length===0)return 0;let{width:i,height:a}=e,o=new Uint8Array(i*a);for(let e of n)for(let t of r){let n=Math.max(0,e.x,t.x),r=Math.max(0,e.y,t.y),s=Math.min(i,e.x+e.width,t.x+t.width),c=Math.min(a,e.y+e.height,t.y+t.height);if(!(s<=n||c<=r))for(let e=r;e<c;e+=1)o.fill(1,e*i+n,e*i+s)}let s=0;for(let n=0;n<o.length;n+=1){if(o[n]===0)continue;s+=1;let r=n*4;e.data.fill(0,r,r+4),t.data.fill(0,r,r+4)}return s}function pc(e,t,n){if(e.width===t&&e.height===n)return e;let r=new ec.PNG({width:t,height:n}),i=e.width*4;for(let n=0;n<e.height;n+=1){let a=n*i;r.data.set(e.data.subarray(a,a+i),n*t*4)}return r}function mc(e){return m(`sha256`).update(JSON.stringify(e)).digest(`hex`).slice(0,16)}function hc(e){let t=[...e.allowedDomains??[`127.0.0.1`,`localhost`]].sort(),n=process.versions.bun,r={browser:`chromium`,browserVersion:e.browserVersion,orchestratorRuntime:e.orchestratorRuntime??(n?`bun ${n}`:`node ${process.version}`),operatingSystem:`${le()}-${ue()}`,architecture:ce(),deviceScaleFactor:e.deviceScaleFactor??1,locale:gc(e.locale??`en-US`),timezone:_c(e.timezone??`UTC`),colorScheme:e.colorScheme??`light`,reducedMotion:e.reducedMotion??`reduce`,frozenTime:e.frozenTime??`2026-01-01T00:00:00.000Z`,randomSeed:e.randomSeed??20260101,fontsFingerprint:e.fontsFingerprint??`storybook-bundled-fonts-v1`,stateIsolation:`fresh-browser-process-per-story-side-v1`,network:{mode:`allowlist`,allowedDomains:t,webRtc:`disabled`}};return{id:mc(r),...r}}function gc(e){if(!e.trim())throw Error(`Kapture locale must not be empty`);try{let[t]=Intl.getCanonicalLocales(e);if(!t)throw Error(`missing canonical locale`);return t}catch(t){throw Error(`Kapture locale must be a valid BCP 47 tag: ${e}`,{cause:t})}}function _c(e){if(!e.trim())throw Error(`Kapture timezone must not be empty`);try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e}).resolvedOptions().timeZone}catch(t){throw Error(`Kapture timezone must be a valid IANA time zone: ${e}`,{cause:t})}}function vc(e,t){if(e.id!==t.id||JSON.stringify(e)!==JSON.stringify(t))throw Error(`Kapture environment mismatch: base=${e.id}, head=${t.id}. Base and head must be captured with the exact same environment contract.`)}async function yc(){try{let e=(await bc()).split(`
306
302
  `).filter(Boolean).sort().join(`
307
- `);return`fontconfig:${m(`sha256`).update(e).digest(`hex`)}`}catch{return`fontconfig-unavailable:${le()}-${ue()}`}}function yc(){return new Promise((e,t)=>{let n=r(`fc-list`,[`--format`,`%{file}|%{family}|%{style}\\n`],{stdio:[`ignore`,`pipe`,`ignore`]}),i=[];n.stdout.on(`data`,e=>i.push(e)),n.once(`error`,t),n.once(`close`,n=>{if(n!==0)return t(Error(`fc-list failed (${n})`));e(Buffer.concat(i).toString(`utf8`))})})}function bc(e){let t=Date.parse(e.frozenTime);if(!Number.isFinite(t))throw Error(`Invalid frozenTime: ${e.frozenTime}`);return`(() => {
303
+ `);return`fontconfig:${m(`sha256`).update(e).digest(`hex`)}`}catch{return`fontconfig-unavailable:${le()}-${ue()}`}}function bc(){return new Promise((e,t)=>{let n=r(`fc-list`,[`--format`,`%{file}|%{family}|%{style}\\n`],{stdio:[`ignore`,`pipe`,`ignore`]}),i=[];n.stdout.on(`data`,e=>i.push(e)),n.once(`error`,t),n.once(`close`,n=>{if(n!==0)return t(Error(`fc-list failed (${n})`));e(Buffer.concat(i).toString(`utf8`))})})}function xc(e){let t=Date.parse(e.frozenTime);if(!Number.isFinite(t))throw Error(`Invalid frozenTime: ${e.frozenTime}`);return`(() => {
308
304
  const NativeDate = globalThis.Date;
309
305
  const frozenTimestamp = ${t};
310
306
  class KaptureDate extends NativeDate {
@@ -330,7 +326,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
330
326
  configurable: false,
331
327
  writable: false,
332
328
  });
333
- })();`}const xc=[`baseImage`,`headImage`,`diffImage`],Sc=/^[0-9a-f]{64}$/;function Cc(e){let t=new Set;for(let n of Object.values(e.entries))for(let e of xc){let r=n[e];r&&t.add(r)}return[...t].sort(kc)}function wc(e){return Dc({report:Ec(e)})}function Tc(e,t){let n=Cc(e),r=new Set(n),i=new Map;for(let e of t){if(!e.path||!Sc.test(e.sha256))throw Error(`Invalid report image digest for ${e.path||`<empty path>`}`);if(i.has(e.path))throw Error(`Duplicate report image digest for ${e.path}`);i.set(e.path,e.sha256)}for(let e of n)if(!i.has(e))throw Error(`Missing report image digest for ${e}`);for(let e of i.keys())if(!r.has(e))throw Error(`Unexpected report image digest for ${e}`);return Dc({report:Ec(e),images:n.map(e=>({path:e,sha256:i.get(e)}))})}function Ec(e){let{contentDigest:t,...n}=e;return n}function Dc(e){return m(`sha256`).update(JSON.stringify(Oc(e))).digest(`hex`)}function Oc(e){return Array.isArray(e)?e.map(Oc):!e||typeof e!=`object`?e:Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0).sort(([e],[t])=>kc(e,t)).map(([e,t])=>[e,Oc(t)]))}function kc(e,t){return e<t?-1:+(e>t)}async function Ac(e){let t=await x(e);return m(`sha256`).update(t).digest(`hex`)}function jc(e){let t=m(`sha256`).update(e).digest(`hex`).slice(0,12);return`${e.replace(/[^a-zA-Z0-9_-]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,120)||`snapshot`}-${t}.png`}async function Mc(e){let{baseManifest:t,headManifest:n,baseRoot:r,headRoot:i,outputDir:a,threshold:o,coverage:s}=e;_c(t.environment,n.environment),await ae(c(a,`images`),{recursive:!0,force:!0}),await y(c(a,`images`),{recursive:!0});let l=[...new Set([...Object.keys(t.snapshots),...Object.keys(n.snapshots)])].sort(),u={};for(let e of l){let s=t.snapshots[e],c=n.snapshots[e];u[e]=await Nc({id:e,base:s,head:c,baseRoot:r,headRoot:i,outputDir:a,threshold:o})}let d=Object.values(u),f={version:1,baseRevision:t.revision,headRevision:n.revision,environment:t.environment,createdAt:new Date().toISOString(),threshold:o,summary:{total:d.length,unchanged:d.filter(e=>e.status===`unchanged`).length,changed:d.filter(e=>e.status===`changed`).length,added:d.filter(e=>e.status===`added`).length,removed:d.filter(e=>e.status===`removed`).length,errors:d.filter(e=>e.status===`error`).length},...s?{coverage:s}:{},entries:u},p=[];for(let e of Cc(f))p.push({path:e,sha256:await Ac(c(a,e))});return f.contentDigest=Tc(f,p),await se(c(a,`report.json`),`${JSON.stringify(f,null,2)}\n`),f}async function Nc(e){let{id:t,base:n,head:r,baseRoot:a,headRoot:o,outputDir:s,threshold:l}=e,u=r??n;if(!u)throw Error(`Snapshot ${t} has no base or head record`);let d={id:t,storyId:u.storyId,title:u.title,name:u.name,viewport:u.viewport},f={...l,...r?.threshold??n?.threshold};if(n?.error||r?.error)return{...d,status:`error`,threshold:f,error:[n?.error,r?.error].filter(Boolean).join(` | `)};if(!n&&r)return{...d,status:`added`,threshold:f,headImage:await Pc(`head`,r,o,s)};if(n&&!r)return{...d,status:`removed`,threshold:f,baseImage:await Pc(`base`,n,a,s)};if(!n||!r)throw Error(`Invalid manifest pair for ${t}`);if(n.viewport.width!==r.viewport.width||n.viewport.height!==r.viewport.height)return{...d,status:`error`,threshold:f,error:`Viewport contract differs: base=${n.viewport.width}x${n.viewport.height}, head=${r.viewport.width}x${r.viewport.height}`};if(n.sha256===r.sha256)return{...d,status:`unchanged`,threshold:f};let p=`images/diff/${i(n.imageFile)}`;try{let e=await uc(c(a,n.imageFile),c(o,r.imageFile),c(s,p),f.pixel,{base:n.ignoredRegions??[],head:r.ignoredRegions??[]});if(e.diffRatio<=f.ratio)return await ae(c(s,p),{force:!0}),{...d,status:`unchanged`,threshold:f,changedPixels:e.changedPixels,diffRatio:e.diffRatio};let[t,i]=await Promise.all([Pc(`base`,n,a,s),Pc(`head`,r,o,s)]);return{...d,status:`changed`,threshold:f,baseImage:t,headImage:i,diffImage:p,changedPixels:e.changedPixels,diffRatio:e.diffRatio}}catch(e){return{...d,status:`error`,threshold:f,error:e instanceof Error?e.message:String(e)}}}async function Pc(e,t,n,r){let a=`images/${e}/${i(t.imageFile)}`;return await y(c(r,`images`,e),{recursive:!0}),await _(c(n,t.imageFile),c(r,a)),a}const Fc={".css":`text/css; charset=utf-8`,".html":`text/html; charset=utf-8`,".ico":`image/x-icon`,".jpeg":`image/jpeg`,".jpg":`image/jpeg`,".js":`text/javascript; charset=utf-8`,".json":`application/json; charset=utf-8`,".mjs":`text/javascript; charset=utf-8`,".png":`image/png`,".svg":`image/svg+xml`,".woff":`font/woff`,".woff2":`font/woff2`};async function Ic(e){let t=await re(f(e)),n=fe(async(e,n)=>{try{let r=decodeURIComponent(new URL(e.url??`/`,`http://localhost`).pathname),i=f(t,`.${r}`);if(!Lc(t,i)){n.writeHead(403).end(`Forbidden`);return}let a=await re(i);if(!Lc(t,a)){n.writeHead(403).end(`Forbidden`);return}if((await oe(a)).isDirectory()&&(a=await re(f(a,`index.html`)),!Lc(t,a))){n.writeHead(403).end(`Forbidden`);return}let s=await x(a);n.writeHead(200,{"cache-control":`no-store`,"content-type":Fc[o(a)]??`application/octet-stream`}),n.end(s)}catch{n.writeHead(404).end(`Not found`)}});await Rc(n);let r=n.address();if(!r||typeof r==`string`)throw Error(`Static server has no TCP address`);return{url:`http://127.0.0.1:${r.port}/`,close:()=>zc(n)}}function Lc(e,t){return t===e||t.startsWith(`${e}${p}`)}function Rc(e){return new Promise((t,n)=>{e.once(`error`,n),e.listen(0,`127.0.0.1`,()=>{e.off(`error`,n),t()})})}function zc(e){return new Promise((t,n)=>{e.close(e=>e?n(e):t())})}const Bc=R({name:F(),width:L(),height:L()}),Vc=R({id:F(),browser:F(),browserVersion:F(),orchestratorRuntime:F(),operatingSystem:F(),architecture:F(),deviceScaleFactor:L(),locale:F(),timezone:F(),colorScheme:V([`light`,`dark`]),reducedMotion:V([`reduce`,`no-preference`]),frozenTime:F(),randomSeed:L(),fontsFingerprint:F(),network:R({mode:H(`allowlist`),allowedDomains:ys(F()),webRtc:H(`disabled`)})});R({version:H(1),revision:F(),environment:Vc,createdAt:F(),snapshots:B(F(),R({id:F(),storyId:F(),title:F(),name:F(),viewport:Bc,imageFile:F(),sha256:F(),capturedAt:F(),durationMs:L(),ignoredRegions:ys(R({x:L().int().nonnegative(),y:L().int().nonnegative(),width:L().int().positive(),height:L().int().positive()})).optional(),threshold:R({pixel:L().optional(),ratio:L().optional()}).optional(),error:F().optional()}))});async function Hc(e,t){await y(a(e),{recursive:!0}),await se(e,`${JSON.stringify(t,null,2)}\n`)}const Uc=`kapture-dependencies.json`,Wc=F().min(1).max(4096).refine(sl,`must be a normalized project-relative path`),Gc=F().max(4096).refine(e=>e===``||sl(e),{message:`must be empty or a normalized project-relative path`}),Kc=ys(Wc).max(1e5).refine(e=>new Set(e).size===e.length,`must not contain duplicates`),qc=F().regex(/^[0-9a-f]{64}$/),Jc=R({type:V([`asset`,`chunk`]),size:L().int().nonnegative().max(1e9),sha256:qc}).strict(),Yc=F().max(4096).refine(e=>e===``||e.endsWith(`/`)&&sl(e.slice(0,-1)),`must be empty or a normalized project-relative directory prefix`),Xc=F().min(1).max(1024),Zc=B(Wc,B(Wc,ys(Xc).max(1e4).refine(e=>new Set(e).size===e.length,`must not contain duplicates`))),Qc=B(Wc,B(Xc,R({module:Wc,imported:Xc}).strict())),$c=R({kind:H(`kapture-storybook-dependencies`),version:H(1),complete:ps(),storybookRoot:Gc,globalInputs:Kc,ignoredInputs:Kc,fingerprintedInputs:Kc.optional(),diagnostics:ys(V([`module-outside-project-root`,`module-fingerprint-missing`,`unresolved-virtual-module`,`unresolved-project-module`,`rendered-output-fingerprint-missing`,`global-output-fingerprint-missing`,`global-runtime-fingerprint-missing`,`unowned-output-chunk`,`output-inventory-mismatch`])).max(20).refine(e=>new Set(e).size===e.length,`must not contain duplicates`),modules:B(Wc,Kc),moduleFingerprints:B(Wc,qc).optional(),globalOutputFingerprints:B(Wc,qc),globalOutputStories:B(Wc,Kc),globalRuntimeFingerprint:qc,outputInventory:B(Wc,Jc),outputInventoryPrefixes:ys(Yc).max(100).refine(e=>new Set(e).size===e.length,`must not contain duplicates`),importBindings:Zc.optional(),reexportBindings:Qc.optional(),renderedModules:B(Wc,Kc),renderedOutputFingerprints:B(Wc,qc)}).strict().superRefine((e,t)=>{let n=Object.entries(e.modules),r=new Set(n.map(([e])=>e));n.length>1e5&&t.addIssue({code:`custom`,path:[`modules`],message:`contains too many modules`});for(let[i,a]of n)a.includes(i)||t.addIssue({code:`custom`,path:[`modules`,i],message:`must include the module itself`}),e.complete&&a.some(e=>!r.has(e))&&t.addIssue({code:`custom`,path:[`modules`,i],message:`must resolve every project dependency when the manifest is complete`});Object.keys(e.globalOutputFingerprints).length>1e5&&t.addIssue({code:`custom`,path:[`globalOutputFingerprints`],message:`contains too many global output fingerprints`});let i=new Set(Object.keys(e.globalOutputFingerprints)),a=Object.entries(e.globalOutputStories);a.length>1e5&&t.addIssue({code:`custom`,path:[`globalOutputStories`],message:`contains too many global output story lists`});for(let[e,n]of a){i.has(e)||t.addIssue({code:`custom`,path:[`globalOutputStories`,e],message:`must identify a fingerprinted global output`});for(let i of n)if(!r.has(i)){t.addIssue({code:`custom`,path:[`globalOutputStories`,e],message:`must contain only rendered story modules`});break}}for(let n of i)n in e.globalOutputStories||t.addIssue({code:`custom`,path:[`globalOutputStories`,n],message:`must cover every fingerprinted global output`});let o=Object.entries(e.outputInventory);o.length>1e5&&t.addIssue({code:`custom`,path:[`outputInventory`],message:`contains too many output files`}),`kapture-dependencies.json`in e.outputInventory&&t.addIssue({code:`custom`,path:[`outputInventory`,Uc],message:`must not inventory the manifest itself`});for(let n of e.outputInventoryPrefixes)o.some(([e])=>e.startsWith(n))||t.addIssue({code:`custom`,path:[`outputInventoryPrefixes`],message:`must cover at least one inventoried output`});let s=Object.entries(e.moduleFingerprints??{});s.length>1e5&&t.addIssue({code:`custom`,path:[`moduleFingerprints`],message:`contains too many module fingerprints`});for(let[e]of s)r.has(e)||t.addIssue({code:`custom`,path:[`moduleFingerprints`,e],message:`must identify a rendered module`});(e.fingerprintedInputs?.length??0)>0&&(e.moduleFingerprints?e.complete&&n.some(([t])=>!e.moduleFingerprints?.[t])&&t.addIssue({code:`custom`,path:[`moduleFingerprints`],message:`must cover every rendered module when the manifest is complete`}):t.addIssue({code:`custom`,path:[`moduleFingerprints`],message:`is required when fingerprintedInputs are configured`}));let c=0;for(let[n,i]of Object.entries(e.importBindings??{})){c+=Object.keys(i).length,r.has(n)||t.addIssue({code:`custom`,path:[`importBindings`,n],message:`must identify a rendered importer`});for(let r of Object.keys(i))e.modules[n]?.includes(r)||t.addIssue({code:`custom`,path:[`importBindings`,n,r],message:`must identify a direct project dependency`})}for(let[n,i]of Object.entries(e.reexportBindings??{})){c+=Object.keys(i).length,r.has(n)||t.addIssue({code:`custom`,path:[`reexportBindings`,n],message:`must identify a rendered barrel`});for(let[r,a]of Object.entries(i))e.modules[n]?.includes(a.module)||t.addIssue({code:`custom`,path:[`reexportBindings`,n,r],message:`must identify a direct project dependency`})}c>1e6&&t.addIssue({code:`custom`,path:[`importBindings`],message:`contains too many import and re-export bindings`});let l=Object.entries(e.renderedModules??{});l.length>1e5&&t.addIssue({code:`custom`,path:[`renderedModules`],message:`contains too many rendered module closures`});let u=0;for(let[e,n]of l){u+=n.length,r.has(e)||t.addIssue({code:`custom`,path:[`renderedModules`,e],message:`must identify a rendered entry module`}),n.includes(e)||t.addIssue({code:`custom`,path:[`renderedModules`,e],message:`must include the entry module itself`});for(let i of n)if(!r.has(i)){t.addIssue({code:`custom`,path:[`renderedModules`,e],message:`must contain only rendered project modules`});break}}u>5e6&&t.addIssue({code:`custom`,path:[`renderedModules`],message:`contains too many rendered module references`});let d=Object.entries(e.renderedOutputFingerprints);d.length>1e5&&t.addIssue({code:`custom`,path:[`renderedOutputFingerprints`],message:`contains too many rendered output fingerprints`});for(let[e]of d)r.has(e)||t.addIssue({code:`custom`,path:[`renderedOutputFingerprints`,e],message:`must identify a rendered entry module`});e.complete&&l.some(([t])=>e.renderedOutputFingerprints[t]===void 0)&&t.addIssue({code:`custom`,path:[`renderedOutputFingerprints`],message:`must cover every rendered entry module when the manifest is complete`}),e.complete!==(e.diagnostics.length===0)&&t.addIssue({code:`custom`,path:[`complete`],message:`must agree with diagnostics`})});function el(e){return $c.parse(e)}async function tl(e){let t=c(e,Uc),n;try{n=await x(t)}catch(e){return ul(e)?{evidence:{state:`missing`}}:{evidence:{state:`invalid`}}}try{let t=await nl(e,el(JSON.parse(n.toString(`utf8`))));return{manifest:t,evidence:{state:`valid`,digest:al(t)}}}catch{return{evidence:{state:`invalid`,digest:cl(n)}}}}async function nl(e,t){let n=!0;for(let[r,i]of Object.entries(t.outputInventory))try{let t=c(e,r),a=await v(t);if(!a.isFile()||a.isSymbolicLink()){n=!1;break}let o=await x(t);if(o.byteLength!==i.size||cl(o)!==i.sha256){n=!1;break}}catch{n=!1;break}if(n)for(let r of t.outputInventoryPrefixes){let i=await rl(e,r),a=Object.keys(t.outputInventory).filter(e=>e.startsWith(r)).sort();if(!i||!il(i,a)){n=!1;break}}return n?t:$c.parse({...t,complete:!1,diagnostics:[...new Set([...t.diagnostics,`output-inventory-mismatch`])].sort()})}async function rl(e,t){let n=[],r=[t===``?``:t.slice(0,-1)];try{for(;r.length>0;){let t=r.pop(),i=await ne(c(e,t),{withFileTypes:!0});for(let e of i){let i=t?`${t}/${e.name}`:e.name;if(e.isSymbolicLink())return null;if(e.isDirectory())r.push(i);else if(e.isFile())i!==`kapture-dependencies.json`&&n.push(i);else return null;if(n.length+r.length>1e5)return null}}}catch{return null}return n.sort()}function il(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function al(e){return cl(JSON.stringify(ll(e)))}function ol(e,t){return{base:e?{state:`valid`,digest:al(e)}:{state:`missing`},head:t?{state:`valid`,digest:al(t)}:{state:`missing`}}}function sl(e){return e!==``&&!e.includes(`\\`)&&!e.includes(`\0`)&&!e.startsWith(`/`)&&!/^[A-Za-z]:\//.test(e)&&e!==`.`&&e!==`..`&&!e.startsWith(`./`)&&!e.startsWith(`../`)&&!e.split(`/`).some(e=>e===`.`||e===`..`)&&!e.includes(`//`)&&!e.endsWith(`/`)}function cl(e){return m(`sha256`).update(e).digest(`hex`)}function ll(e){return Array.isArray(e)?e.map(ll):!e||typeof e!=`object`?e:Object.fromEntries(Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,ll(t)]))}function ul(e){return typeof e==`object`&&!!e&&`code`in e&&e.code===`ENOENT`}const dl=R({id:F().min(1),type:V([`story`,`docs`]),importPath:F().min(1).optional()}).passthrough(),fl=R({entries:B(F(),dl)}).passthrough();async function pl({baseDir:e,headDir:t,changedFiles:n,changedFilesComplete:r=!0,changedFilesEvidence:i}){let[a,o,s,c]=await Promise.all([hl(e),hl(t),Ol(e,`base`),Ol(t,`head`)]);return ml({baseIndex:a,headIndex:o,baseManifest:s.manifest,headManifest:c.manifest,changedFiles:n,changedFilesComplete:r,changedFilesEvidence:i,dependencyManifests:{base:s.evidence,head:c.evidence},initialFallbackReasons:[...s.reason?[s.reason]:[],...c.reason?[c.reason]:[]]})}function ml(e){let t=El(e.changedFiles.map(yl)),n=gl(e.baseIndex),r=gl(e.headIndex),i=El([...n.keys(),...r.keys()]),a=[...r.keys()].filter(e=>!n.has(e)).sort(),o=[...n.keys()].filter(e=>!r.has(e)).sort(),s=[...e.initialFallbackReasons??[],...e.changedFilesComplete===!1?[{code:`changed-files-incomplete`}]:[]],{baseManifest:c,headManifest:l}=e,u=e.dependencyManifests??ol(c,l),d=new Set,f=new Set;!c&&!s.some(e=>e.code.startsWith(`base-manifest`))&&s.push({code:`base-manifest-missing`,side:`base`}),!l&&!s.some(e=>e.code.startsWith(`head-manifest`))&&s.push({code:`head-manifest-missing`,side:`head`}),c&&!c.complete&&s.push({code:`manifest-incomplete`,side:`base`}),l&&!l.complete&&s.push({code:`manifest-incomplete`,side:`head`});let p=new Map;if(c&&l){c.globalRuntimeFingerprint!==l.globalRuntimeFingerprint&&s.push({code:`global-runtime`});for(let e of new Set([...Object.keys(c.globalOutputFingerprints),...Object.keys(l.globalOutputFingerprints)]))(c.globalOutputFingerprints[e]!==l.globalOutputFingerprints[e]||!Tl(new Set(c.globalOutputStories[e]??[]),new Set(l.globalOutputStories[e]??[])))&&f.add(e);for(let e of new Set([...Object.keys(c.renderedOutputFingerprints),...Object.keys(l.renderedOutputFingerprints)]))c.renderedOutputFingerprints[e]!==l.renderedOutputFingerprints[e]&&d.add(e);if(c.moduleFingerprints&&l.moduleFingerprints)for(let e of new Set([...Object.keys(c.moduleFingerprints),...Object.keys(l.moduleFingerprints)]))c.moduleFingerprints[e]!==l.moduleFingerprints[e]&&d.add(e);for(let e of i){let t=n.get(e),i=r.get(e),a=t?_l(t,c,`base`,s):void 0,o=i?_l(i,l,`head`,s):void 0;p.set(e,{base:a,head:o})}let e=new Set,a=new Set;for(let t of[c,l])for(let[n,r]of Object.entries(t.modules)){e.add(n);for(let t of r)e.add(t)}for(let e of p.values()){if(e.base)for(let t of Sl(c,e.base))a.add(t);if(e.head)for(let t of Sl(l,e.head))a.add(t)}for(let e of f){let t=Cl(c,l,e);if(!t||[...t].some(e=>!a.has(e))){s.push({code:`global-output`,path:e});continue}for(let e of t)d.add(e)}for(let e of d)(bl(e,c.globalInputs)||bl(e,l.globalInputs))&&s.push({code:`global-input`,path:e});for(let n of t){if(bl(n,c.globalInputs)||bl(n,l.globalInputs)){s.push({code:`global-input`,path:n});continue}let t=bl(n,c.ignoredInputs)&&bl(n,l.ignoredInputs),r=xl(c)&&xl(l)&&bl(n,c.fingerprintedInputs??[])&&bl(n,l.fingerprintedInputs??[]);!t&&!r&&(!e.has(n)||!a.has(n))&&s.push({code:`unknown-input`,path:n})}}let m=Dl(s);if(m.length>0||!c||!l)return{version:1,selectionMode:`full-fallback`,changedFiles:t,...e.changedFilesEvidence?{changedFilesEvidence:{...e.changedFilesEvidence}}:{},dependencyManifests:jl(u),totalStoryIds:i,selectedStoryIds:i,skippedStoryIds:[],addedStoryIds:a,removedStoryIds:o,fallbackReasons:m};let h=new Set([...a,...o]);for(let e of i){let n=p.get(e);if(!n)continue;if(n.base!==n.head){h.add(e);continue}let r=n.base?Sl(c,n.base):new Set,i=n.head?Sl(l,n.head):new Set;if(!Tl(r,i)){h.add(e);continue}let a=new Set([...r,...i]);(t.some(e=>a.has(e))||[...a].some(e=>d.has(e)))&&h.add(e)}let g=[...h].sort();return{version:1,selectionMode:`affected`,changedFiles:t,...e.changedFilesEvidence?{changedFilesEvidence:{...e.changedFilesEvidence}}:{},dependencyManifests:jl(u),totalStoryIds:i,selectedStoryIds:g,skippedStoryIds:i.filter(e=>!h.has(e)),addedStoryIds:a,removedStoryIds:o,fallbackReasons:[]}}async function hl(e){return fl.parse(JSON.parse(await x(c(e,`index.json`),`utf8`)))}function gl(e){return new Map(Object.values(e.entries).filter(e=>e.type===`story`).sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e]))}function _l(e,t,n,r){if(!e.importPath){r.push({code:`story-import-missing`,storyId:e.id,side:n});return}let i;try{i=vl(t.storybookRoot,e.importPath)}catch{r.push({code:`story-import-missing`,storyId:e.id,side:n});return}if(!t.modules[i]){r.push({code:`story-module-missing`,storyId:e.id,side:n});return}if(t.renderedModules&&!t.renderedModules[i]?.includes(i)){r.push({code:`story-module-missing`,storyId:e.id,side:n});return}return i}function vl(e,t){let n=t.replaceAll(`\\`,`/`).replace(/^\.\//,``);if(s(n)||/^[A-Za-z]:\//.test(n))throw Error(`Story importPath must be relative`);let r=u.normalize(u.join(e,n));if(r===`..`||r.startsWith(`../`)||r===`.`)throw Error(`Story importPath must stay within project root`);return r}function yl(e){let t=e.replaceAll(`\\`,`/`).replace(/^\.\//,``);if(t.length===0||t.includes(`\0`)||s(t)||/^[A-Za-z]:\//.test(t)||t===`..`||t.startsWith(`../`)||t.split(`/`).some(e=>e===`.`||e===`..`)||t.includes(`//`)||t.endsWith(`/`))throw Error(`Changed file must be a normalized project-relative path: ${e}`);return t}function bl(e,t){return t.some(t=>e===t||l(e,t))}function xl(e){return!e.complete||!e.moduleFingerprints?!1:Object.keys(e.modules).every(t=>e.moduleFingerprints?.[t]!==void 0)}function Sl(e,t){let n=wl(e,t),r=e.renderedModules?.[t];return r?new Set(r):n}function Cl(e,t,n){let r=e.globalOutputFingerprints[n]!==void 0,i=t.globalOutputFingerprints[n]!==void 0;if(r&&i&&e.globalOutputFingerprints[n]!==t.globalOutputFingerprints[n])return null;let a=new Set(e.globalOutputStories[n]??[]),o=new Set(t.globalOutputStories[n]??[]);if(r&&a.size===0||i&&o.size===0)return null;let s=new Set([...a,...o]);return s.size>0?s:null}function wl(e,t){let n=new Set,r=[t];for(;r.length>0;){let t=r.pop();if(!(!t||n.has(t))){n.add(t);for(let i of e.modules[t]??[])n.has(i)||r.push(i)}}return n}function Tl(e,t){return e.size===t.size&&[...e].every(e=>t.has(e))}function El(e){return[...new Set(e)].sort()}function Dl(e){let t=new Map;for(let n of e)t.set(Al(n),n);let n=[...t.values()].sort(kl);return n.length<=1e3?n:[...n.filter(e=>e.code!==`fallback-reasons-truncated`).slice(0,999),{code:`fallback-reasons-truncated`}].sort(kl)}async function Ol(e,t){let n=await tl(e);if(n.manifest)return n;let r=`${t}-manifest-${n.evidence.state}`;return{evidence:n.evidence,reason:{code:r,side:t}}}function kl(e,t){return Al(e).localeCompare(Al(t))}function Al(e){return`${e.code}:${e.side??``}:${e.path??``}:${e.storyId??``}`}function jl(e){return{base:{...e.base},head:{...e.head}}}const Ml=R({id:F().min(1),title:F(),name:F(),type:V([`story`,`docs`])}),Nl=R({v:L(),entries:B(F(),Ml)});async function Pl(e){let t=await fetch(new URL(`index.json`,Ll(e)));if(!t.ok)throw Error(`Failed to read Storybook index (${t.status}) from ${e}`);return Nl.parse(await t.json())}function Fl(e){return Object.values(e.entries).filter(e=>e.type===`story`).sort((e,t)=>e.id.localeCompare(t.id))}function Il(e,t){let n=new URL(`iframe.html`,Ll(e));return n.searchParams.set(`id`,t),n.searchParams.set(`viewMode`,`story`),n.toString()}function Ll(e){return e.endsWith(`/`)?e:`${e}/`}function Rl(e){let t=ql(e,`bridge`);if(t.protocolVersion!==1)throw Error(`Unsupported Kapture Storybook protocol ${String(t.protocolVersion)}; expected 1`);let n=Yl(t.adapterVersion,`adapterVersion`),r=t.state;if(r===`booting`)return{protocolVersion:1,adapterVersion:n,state:r};if(![`rendering`,`ready`,`error`].includes(r))throw Error(`Invalid Kapture Storybook bridge state: ${String(r)}`);let i=Yl(t.storyId,`storyId`),a=nu(t.generation,`generation`),o=Ql(t.renderId,`renderId`);if(r===`rendering`)return{protocolVersion:1,adapterVersion:n,state:r,storyId:i,generation:a,renderId:o,parameters:t.parameters===void 0?void 0:zl(t.parameters)};if(r===`ready`){if(o===void 0)throw Error(`Kapture ready bridge requires renderId`);return{protocolVersion:1,adapterVersion:n,state:r,storyId:i,generation:a,renderId:o,parameters:zl(t.parameters)}}let s=ql(t.error,`error`);if(s.kind!==`configuration`&&s.kind!==`storybook`)throw Error(`Invalid Kapture bridge error kind: ${String(s.kind)}`);return{protocolVersion:1,adapterVersion:n,state:`error`,storyId:i,generation:a,renderId:o,error:{kind:s.kind,message:Yl(s.message,`error.message`)}}}function zl(e){let t=ql(e,`parameters`);return iu({disabled:Zl(t.disabled,`disabled`),viewports:Bl(t.viewports),cropToViewport:Zl(t.cropToViewport,`cropToViewport`),delayMs:eu(t.delayMs,`delayMs`),waitFor:Hl(t.waitFor),animation:Ul(t.animation),mask:Kl(t.mask,`mask`),ignoreSelectors:Kl(t.ignoreSelectors,`ignoreSelectors`),requiredFonts:t.requiredFonts===void 0?void 0:Jl(t.requiredFonts,`requiredFonts`).map((e,t)=>Wl(e,`requiredFonts[${t}]`)),diff:Gl(t.diff)})}function Bl(e){if(e===void 0)return;let t=Jl(e,`viewports`);if(t.length===0)throw Error(`Kapture viewports must contain at least one viewport; use disabled: true to skip`);return t.map((e,t)=>Vl(e,`viewports[${t}]`))}function Vl(e,t){let n=ql(e,t);return{name:Yl(n.name,`${t}.name`),width:tu(n.width,`${t}.width`),height:tu(n.height,`${t}.height`)}}function Hl(e){if(e===void 0)return;if(typeof e==`string`)return Yl(e,`waitFor`);let t=ql(e,`waitFor`),n=t.state;if(n!==void 0&&n!==`attached`&&n!==`visible`&&n!==`hidden`&&n!==`detached`)throw Error(`Invalid Kapture waitFor state: ${String(n)}`);return iu({selector:Yl(t.selector,`waitFor.selector`),state:n,timeoutMs:eu(t.timeoutMs,`waitFor.timeoutMs`)})}function Ul(e){if(e!==void 0)return e===`disabled`||e===`start`||e===`end`?e:{atMs:$l(ql(e,`animation`).atMs,`animation.atMs`)}}function Wl(e,t){if(typeof e==`string`)return Yl(e,t);let n=ql(e,t),r=n.weight;if(r!==void 0&&typeof r!=`string`&&typeof r!=`number`)throw Error(`${t}.weight must be a string or number`);return iu({family:Xl(n.family,`${t}.family`),text:Yl(n.text,`${t}.text`),style:Xl(n.style,`${t}.style`),weight:r})}function Gl(e){if(e===void 0)return;let t=ql(e,`diff`);return iu({pixel:ru(t.pixel,`diff.pixel`),ratio:ru(t.ratio,`diff.ratio`)})}function Kl(e,t){if(e!==void 0)return Jl(e,t).map((e,n)=>Yl(e,`${t}[${n}]`))}function ql(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Kapture ${t} must be an object`);return e}function Jl(e,t){if(!Array.isArray(e))throw Error(`Kapture ${t} must be an array`);return e}function Yl(e,t){if(typeof e!=`string`||!e.trim())throw Error(`Kapture ${t} must be a non-empty string`);return e}function Xl(e,t){return e===void 0?void 0:Yl(e,t)}function Zl(e,t){if(e!==void 0){if(typeof e!=`boolean`)throw Error(`Kapture ${t} must be a boolean`);return e}}function Ql(e,t){if(e!==void 0){if(typeof e!=`number`||!Number.isFinite(e))throw Error(`Kapture ${t} must be a finite number`);return e}}function $l(e,t){let n=Ql(e,t);if(n===void 0||n<0)throw Error(`Kapture ${t} must be a non-negative number`);return n}function eu(e,t){return e===void 0?void 0:$l(e,t)}function tu(e,t){let n=Ql(e,t);if(n===void 0||n<=0)throw Error(`Kapture ${t} must be positive`);return n}function nu(e,t){let n=$l(e,t);if(!Number.isInteger(n))throw Error(`Kapture ${t} must be an integer`);return n}function ru(e,t){if(e===void 0)return;let n=$l(e,t);if(n>1)throw Error(`Kapture ${t} must be between 0 and 1`);return n}function iu(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}async function au(e,t,n){let r=JSON.stringify(t),i=await e.evaluate(`(async () => {
329
+ })();`}const Sc=[`baseImage`,`headImage`,`diffImage`],Cc=/^[0-9a-f]{64}$/;function wc(e){let t=new Set;for(let n of Object.values(e.entries))for(let e of Sc){let r=n[e];r&&t.add(r)}return[...t].sort(Ac)}function Tc(e){return Oc({report:Dc(e)})}function Ec(e,t){let n=wc(e),r=new Set(n),i=new Map;for(let e of t){if(!e.path||!Cc.test(e.sha256))throw Error(`Invalid report image digest for ${e.path||`<empty path>`}`);if(i.has(e.path))throw Error(`Duplicate report image digest for ${e.path}`);i.set(e.path,e.sha256)}for(let e of n)if(!i.has(e))throw Error(`Missing report image digest for ${e}`);for(let e of i.keys())if(!r.has(e))throw Error(`Unexpected report image digest for ${e}`);return Oc({report:Dc(e),images:n.map(e=>({path:e,sha256:i.get(e)}))})}function Dc(e){let{contentDigest:t,...n}=e;return n}function Oc(e){return m(`sha256`).update(JSON.stringify(kc(e))).digest(`hex`)}function kc(e){return Array.isArray(e)?e.map(kc):!e||typeof e!=`object`?e:Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0).sort(([e],[t])=>Ac(e,t)).map(([e,t])=>[e,kc(t)]))}function Ac(e,t){return e<t?-1:+(e>t)}async function jc(e){let t=await x(e);return m(`sha256`).update(t).digest(`hex`)}function Mc(e){let t=m(`sha256`).update(e).digest(`hex`).slice(0,12);return`${e.replace(/[^a-zA-Z0-9_-]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,120)||`snapshot`}-${t}.png`}async function Nc(e){let{baseManifest:t,headManifest:n,baseRoot:r,headRoot:i,outputDir:a,threshold:o,coverage:s}=e;vc(t.environment,n.environment),await ae(c(a,`images`),{recursive:!0,force:!0}),await y(c(a,`images`),{recursive:!0});let l=s?new Set(s.selectedStoryIds):void 0,u=[...new Set([...Object.keys(t.snapshots),...Object.keys(n.snapshots)])].filter(e=>{if(!l)return!0;let r=n.snapshots[e]??t.snapshots[e];return r?l.has(r.storyId):!1}).sort(),d={};for(let e of u){let s=t.snapshots[e],c=n.snapshots[e];d[e]=await Pc({id:e,base:s,head:c,baseRoot:r,headRoot:i,outputDir:a,threshold:o})}let f=Object.values(d),p={version:1,baseRevision:t.revision,headRevision:n.revision,environment:t.environment,createdAt:new Date().toISOString(),threshold:o,summary:{total:f.length,unchanged:f.filter(e=>e.status===`unchanged`).length,changed:f.filter(e=>e.status===`changed`).length,added:f.filter(e=>e.status===`added`).length,removed:f.filter(e=>e.status===`removed`).length,errors:f.filter(e=>e.status===`error`).length},...s?{coverage:s}:{},entries:d},m=[];for(let e of wc(p))m.push({path:e,sha256:await jc(c(a,e))});return p.contentDigest=Ec(p,m),await se(c(a,`report.json`),`${JSON.stringify(p,null,2)}\n`),p}async function Pc(e){let{id:t,base:n,head:r,baseRoot:a,headRoot:o,outputDir:s,threshold:l}=e,u=r??n;if(!u)throw Error(`Snapshot ${t} has no base or head record`);let d={id:t,storyId:u.storyId,title:u.title,name:u.name,viewport:u.viewport},f={...l,...r?.threshold??n?.threshold};if(n?.error||r?.error)return{...d,status:`error`,threshold:f,error:[n?.error,r?.error].filter(Boolean).join(` | `)};if(!n&&r)return{...d,status:`added`,threshold:f,headImage:await Fc(`head`,r,o,s)};if(n&&!r)return{...d,status:`removed`,threshold:f,baseImage:await Fc(`base`,n,a,s)};if(!n||!r)throw Error(`Invalid manifest pair for ${t}`);if(n.viewport.width!==r.viewport.width||n.viewport.height!==r.viewport.height)return{...d,status:`error`,threshold:f,error:`Viewport contract differs: base=${n.viewport.width}x${n.viewport.height}, head=${r.viewport.width}x${r.viewport.height}`};if(n.sha256===r.sha256)return{...d,status:`unchanged`,threshold:f};let p=`images/diff/${i(n.imageFile)}`;try{let e=await dc(c(a,n.imageFile),c(o,r.imageFile),c(s,p),f.pixel,{base:n.ignoredRegions??[],head:r.ignoredRegions??[]});if(e.diffRatio<=f.ratio)return await ae(c(s,p),{force:!0}),{...d,status:`unchanged`,threshold:f,changedPixels:e.changedPixels,diffRatio:e.diffRatio};let[t,i]=await Promise.all([Fc(`base`,n,a,s),Fc(`head`,r,o,s)]);return{...d,status:`changed`,threshold:f,baseImage:t,headImage:i,diffImage:p,changedPixels:e.changedPixels,diffRatio:e.diffRatio}}catch(e){return{...d,status:`error`,threshold:f,error:e instanceof Error?e.message:String(e)}}}async function Fc(e,t,n,r){let a=`images/${e}/${i(t.imageFile)}`;return await y(c(r,`images`,e),{recursive:!0}),await _(c(n,t.imageFile),c(r,a)),a}const Ic={".css":`text/css; charset=utf-8`,".html":`text/html; charset=utf-8`,".ico":`image/x-icon`,".jpeg":`image/jpeg`,".jpg":`image/jpeg`,".js":`text/javascript; charset=utf-8`,".json":`application/json; charset=utf-8`,".mjs":`text/javascript; charset=utf-8`,".png":`image/png`,".svg":`image/svg+xml`,".woff":`font/woff`,".woff2":`font/woff2`};async function Lc(e){let t=await re(f(e)),n=fe(async(e,n)=>{try{let r=decodeURIComponent(new URL(e.url??`/`,`http://localhost`).pathname),i=f(t,`.${r}`);if(!Rc(t,i)){n.writeHead(403).end(`Forbidden`);return}let a=await re(i);if(!Rc(t,a)){n.writeHead(403).end(`Forbidden`);return}if((await oe(a)).isDirectory()&&(a=await re(f(a,`index.html`)),!Rc(t,a))){n.writeHead(403).end(`Forbidden`);return}let s=await x(a);n.writeHead(200,{"cache-control":`no-store`,"content-type":Ic[o(a)]??`application/octet-stream`}),n.end(s)}catch{n.writeHead(404).end(`Not found`)}});await zc(n);let r=n.address();if(!r||typeof r==`string`)throw Error(`Static server has no TCP address`);return{url:`http://127.0.0.1:${r.port}/`,close:()=>Bc(n)}}function Rc(e,t){return t===e||t.startsWith(`${e}${p}`)}function zc(e){return new Promise((t,n)=>{e.once(`error`,n),e.listen(0,`127.0.0.1`,()=>{e.off(`error`,n),t()})})}function Bc(e){return new Promise((t,n)=>{e.close(e=>e?n(e):t())})}const Vc=R({name:F(),width:L(),height:L()}),Hc=R({id:F(),browser:F(),browserVersion:F(),orchestratorRuntime:F(),operatingSystem:F(),architecture:F(),deviceScaleFactor:L(),locale:F(),timezone:F(),colorScheme:B([`light`,`dark`]),reducedMotion:B([`reduce`,`no-preference`]),frozenTime:F(),randomSeed:L(),fontsFingerprint:F(),stateIsolation:V(`fresh-browser-process-per-story-side-v1`).optional(),network:R({mode:V(`allowlist`),allowedDomains:ys(F()),webRtc:V(`disabled`)})}),Uc=R({id:F(),storyId:F(),title:F(),name:F(),viewport:Vc,imageFile:F(),sha256:F(),capturedAt:F(),durationMs:L(),sourceRevision:F().optional(),ignoredRegions:ys(R({x:L().int().nonnegative(),y:L().int().nonnegative(),width:L().int().positive(),height:L().int().positive()})).optional(),threshold:R({pixel:L().optional(),ratio:L().optional()}).optional(),error:F().optional()}).superRefine((e,t)=>{e.error||(/^images\/[A-Za-z0-9._-]+\.png$/.test(e.imageFile)||t.addIssue({code:`custom`,path:[`imageFile`],message:`must be a safe image path`}),/^[0-9a-f]{64}$/.test(e.sha256)||t.addIssue({code:`custom`,path:[`sha256`],message:`must be a SHA-256 digest`}))}),Wc=R({version:V(1),revision:F(),environment:Hc,createdAt:F(),snapshots:z(F(),Uc)});async function Gc(e,t){await y(a(e),{recursive:!0}),await se(e,`${JSON.stringify(t,null,2)}\n`)}async function Kc(e){return Wc.parse(JSON.parse(await x(e,`utf8`)))}const qc=`kapture-dependencies.json`,Jc=F().min(1).max(4096).refine(dl,`must be a normalized project-relative path`),Yc=F().max(4096).refine(e=>e===``||dl(e),{message:`must be empty or a normalized project-relative path`}),Xc=ys(Jc).max(1e5).refine(e=>new Set(e).size===e.length,`must not contain duplicates`),Zc=F().regex(/^[0-9a-f]{64}$/),Qc=xs({type:B([`asset`,`chunk`]),size:L().int().nonnegative().max(1e9),sha256:Zc}).strict(),$c=F().max(4096).refine(e=>e===``||e.endsWith(`/`)&&dl(e.slice(0,-1)),`must be empty or a normalized project-relative directory prefix`),el=F().min(1).max(1024),tl=z(Jc,z(Jc,ys(el).max(1e4).refine(e=>new Set(e).size===e.length,`must not contain duplicates`))),nl=z(Jc,z(el,xs({module:Jc,imported:el}).strict())),rl=xs({kind:V(`kapture-storybook-dependencies`),version:V(1),complete:ps(),storybookRoot:Yc,globalInputs:Xc,ignoredInputs:Xc,fingerprintedInputs:Xc.optional(),diagnostics:ys(B([`module-outside-project-root`,`module-fingerprint-missing`,`unresolved-virtual-module`,`unresolved-project-module`,`rendered-output-fingerprint-missing`,`global-output-fingerprint-missing`,`global-runtime-fingerprint-missing`,`unowned-output-chunk`,`output-inventory-mismatch`])).max(20).refine(e=>new Set(e).size===e.length,`must not contain duplicates`),modules:z(Jc,Xc),moduleFingerprints:z(Jc,Zc).optional(),globalOutputFingerprints:z(Jc,Zc),globalOutputStories:z(Jc,Xc),globalRuntimeFingerprint:Zc,outputInventory:z(Jc,Qc),outputInventoryPrefixes:ys($c).max(100).refine(e=>new Set(e).size===e.length,`must not contain duplicates`),importBindings:tl.optional(),reexportBindings:nl.optional(),renderedModules:z(Jc,Xc),renderedOutputFingerprints:z(Jc,Zc)}).strict().superRefine((e,t)=>{let n=Object.entries(e.modules),r=new Set(n.map(([e])=>e));n.length>1e5&&t.addIssue({code:`custom`,path:[`modules`],message:`contains too many modules`});for(let[i,a]of n)a.includes(i)||t.addIssue({code:`custom`,path:[`modules`,i],message:`must include the module itself`}),e.complete&&a.some(e=>!r.has(e))&&t.addIssue({code:`custom`,path:[`modules`,i],message:`must resolve every project dependency when the manifest is complete`});Object.keys(e.globalOutputFingerprints).length>1e5&&t.addIssue({code:`custom`,path:[`globalOutputFingerprints`],message:`contains too many global output fingerprints`});let i=new Set(Object.keys(e.globalOutputFingerprints)),a=Object.entries(e.globalOutputStories);a.length>1e5&&t.addIssue({code:`custom`,path:[`globalOutputStories`],message:`contains too many global output story lists`});for(let[e,n]of a){i.has(e)||t.addIssue({code:`custom`,path:[`globalOutputStories`,e],message:`must identify a fingerprinted global output`});for(let i of n)if(!r.has(i)){t.addIssue({code:`custom`,path:[`globalOutputStories`,e],message:`must contain only rendered story modules`});break}}for(let n of i)n in e.globalOutputStories||t.addIssue({code:`custom`,path:[`globalOutputStories`,n],message:`must cover every fingerprinted global output`});let o=Object.entries(e.outputInventory);o.length>1e5&&t.addIssue({code:`custom`,path:[`outputInventory`],message:`contains too many output files`}),`kapture-dependencies.json`in e.outputInventory&&t.addIssue({code:`custom`,path:[`outputInventory`,qc],message:`must not inventory the manifest itself`});for(let n of e.outputInventoryPrefixes)o.some(([e])=>e.startsWith(n))||t.addIssue({code:`custom`,path:[`outputInventoryPrefixes`],message:`must cover at least one inventoried output`});let s=Object.entries(e.moduleFingerprints??{});s.length>1e5&&t.addIssue({code:`custom`,path:[`moduleFingerprints`],message:`contains too many module fingerprints`});for(let[e]of s)r.has(e)||t.addIssue({code:`custom`,path:[`moduleFingerprints`,e],message:`must identify a rendered module`});(e.fingerprintedInputs?.length??0)>0&&(e.moduleFingerprints?e.complete&&n.some(([t])=>!e.moduleFingerprints?.[t])&&t.addIssue({code:`custom`,path:[`moduleFingerprints`],message:`must cover every rendered module when the manifest is complete`}):t.addIssue({code:`custom`,path:[`moduleFingerprints`],message:`is required when fingerprintedInputs are configured`}));let c=0;for(let[n,i]of Object.entries(e.importBindings??{})){c+=Object.keys(i).length,r.has(n)||t.addIssue({code:`custom`,path:[`importBindings`,n],message:`must identify a rendered importer`});for(let r of Object.keys(i))e.modules[n]?.includes(r)||t.addIssue({code:`custom`,path:[`importBindings`,n,r],message:`must identify a direct project dependency`})}for(let[n,i]of Object.entries(e.reexportBindings??{})){c+=Object.keys(i).length,r.has(n)||t.addIssue({code:`custom`,path:[`reexportBindings`,n],message:`must identify a rendered barrel`});for(let[r,a]of Object.entries(i))e.modules[n]?.includes(a.module)||t.addIssue({code:`custom`,path:[`reexportBindings`,n,r],message:`must identify a direct project dependency`})}c>1e6&&t.addIssue({code:`custom`,path:[`importBindings`],message:`contains too many import and re-export bindings`});let l=Object.entries(e.renderedModules??{});l.length>1e5&&t.addIssue({code:`custom`,path:[`renderedModules`],message:`contains too many rendered module closures`});let u=0;for(let[e,n]of l){u+=n.length,r.has(e)||t.addIssue({code:`custom`,path:[`renderedModules`,e],message:`must identify a rendered entry module`}),n.includes(e)||t.addIssue({code:`custom`,path:[`renderedModules`,e],message:`must include the entry module itself`});for(let i of n)if(!r.has(i)){t.addIssue({code:`custom`,path:[`renderedModules`,e],message:`must contain only rendered project modules`});break}}u>5e6&&t.addIssue({code:`custom`,path:[`renderedModules`],message:`contains too many rendered module references`});let d=Object.entries(e.renderedOutputFingerprints);d.length>1e5&&t.addIssue({code:`custom`,path:[`renderedOutputFingerprints`],message:`contains too many rendered output fingerprints`});for(let[e]of d)r.has(e)||t.addIssue({code:`custom`,path:[`renderedOutputFingerprints`,e],message:`must identify a rendered entry module`});e.complete&&l.some(([t])=>e.renderedOutputFingerprints[t]===void 0)&&t.addIssue({code:`custom`,path:[`renderedOutputFingerprints`],message:`must cover every rendered entry module when the manifest is complete`}),e.complete!==(e.diagnostics.length===0)&&t.addIssue({code:`custom`,path:[`complete`],message:`must agree with diagnostics`})});function il(e){return rl.parse(e)}async function al(e){let t=c(e,qc),n;try{n=await x(t)}catch(e){return ml(e)?{evidence:{state:`missing`}}:{evidence:{state:`invalid`}}}try{let t=await ol(e,il(JSON.parse(n.toString(`utf8`))));return{manifest:t,evidence:{state:`valid`,digest:ll(t)}}}catch{return{evidence:{state:`invalid`,digest:fl(n)}}}}async function ol(e,t){let n=!0;for(let[r,i]of Object.entries(t.outputInventory))try{let t=c(e,r),a=await v(t);if(!a.isFile()||a.isSymbolicLink()){n=!1;break}let o=await x(t);if(o.byteLength!==i.size||fl(o)!==i.sha256){n=!1;break}}catch{n=!1;break}if(n)for(let r of t.outputInventoryPrefixes){let i=await sl(e,r),a=Object.keys(t.outputInventory).filter(e=>e.startsWith(r)).sort();if(!i||!cl(i,a)){n=!1;break}}return n?t:rl.parse({...t,complete:!1,diagnostics:[...new Set([...t.diagnostics,`output-inventory-mismatch`])].sort()})}async function sl(e,t){let n=[],r=[t===``?``:t.slice(0,-1)];try{for(;r.length>0;){let t=r.pop(),i=await ne(c(e,t),{withFileTypes:!0});for(let e of i){let i=t?`${t}/${e.name}`:e.name;if(e.isSymbolicLink())return null;if(e.isDirectory())r.push(i);else if(e.isFile())i!==`kapture-dependencies.json`&&n.push(i);else return null;if(n.length+r.length>1e5)return null}}}catch{return null}return n.sort()}function cl(e,t){return e.length===t.length&&e.every((e,n)=>e===t[n])}function ll(e){return fl(JSON.stringify(pl(e)))}function ul(e,t){return{base:e?{state:`valid`,digest:ll(e)}:{state:`missing`},head:t?{state:`valid`,digest:ll(t)}:{state:`missing`}}}function dl(e){return e!==``&&!e.includes(`\\`)&&!e.includes(`\0`)&&!e.startsWith(`/`)&&!/^[A-Za-z]:\//.test(e)&&e!==`.`&&e!==`..`&&!e.startsWith(`./`)&&!e.startsWith(`../`)&&!e.split(`/`).some(e=>e===`.`||e===`..`)&&!e.includes(`//`)&&!e.endsWith(`/`)}function fl(e){return m(`sha256`).update(e).digest(`hex`)}function pl(e){return Array.isArray(e)?e.map(pl):!e||typeof e!=`object`?e:Object.fromEntries(Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,pl(t)]))}function ml(e){return typeof e==`object`&&!!e&&`code`in e&&e.code===`ENOENT`}const hl=xs({id:F().min(1),type:B([`story`,`docs`]),importPath:F().min(1).optional()}).passthrough(),gl=xs({entries:z(F(),hl)}).passthrough();async function _l({baseDir:e,headDir:t,changedFiles:n,changedFilesComplete:r=!0,changedFilesEvidence:i}){let[a,o,s,c]=await Promise.all([yl(e),yl(t),Ml(e,`base`),Ml(t,`head`)]);return vl({baseIndex:a,headIndex:o,baseManifest:s.manifest,headManifest:c.manifest,changedFiles:n,changedFilesComplete:r,changedFilesEvidence:i,dependencyManifests:{base:s.evidence,head:c.evidence},initialFallbackReasons:[...s.reason?[s.reason]:[],...c.reason?[c.reason]:[]]})}function vl(e){let t=Al(e.changedFiles.map(Cl)),n=bl(e.baseIndex),r=bl(e.headIndex),i=Al([...n.keys(),...r.keys()]),a=[...r.keys()].filter(e=>!n.has(e)).sort(),o=[...n.keys()].filter(e=>!r.has(e)).sort(),s=[...e.initialFallbackReasons??[],...e.changedFilesComplete===!1?[{code:`changed-files-incomplete`}]:[]],{baseManifest:c,headManifest:l}=e,u=e.dependencyManifests??ul(c,l),d=new Set,f=new Set;!c&&!s.some(e=>e.code.startsWith(`base-manifest`))&&s.push({code:`base-manifest-missing`,side:`base`}),!l&&!s.some(e=>e.code.startsWith(`head-manifest`))&&s.push({code:`head-manifest-missing`,side:`head`}),c&&!c.complete&&s.push({code:`manifest-incomplete`,side:`base`}),l&&!l.complete&&s.push({code:`manifest-incomplete`,side:`head`});let p=new Map;if(c&&l){c.globalRuntimeFingerprint!==l.globalRuntimeFingerprint&&s.push({code:`global-runtime`});for(let e of new Set([...Object.keys(c.globalOutputFingerprints),...Object.keys(l.globalOutputFingerprints)]))(c.globalOutputFingerprints[e]!==l.globalOutputFingerprints[e]||!kl(new Set(c.globalOutputStories[e]??[]),new Set(l.globalOutputStories[e]??[])))&&f.add(e);for(let e of new Set([...Object.keys(c.renderedOutputFingerprints),...Object.keys(l.renderedOutputFingerprints)]))c.renderedOutputFingerprints[e]!==l.renderedOutputFingerprints[e]&&d.add(e);if(c.moduleFingerprints&&l.moduleFingerprints)for(let e of new Set([...Object.keys(c.moduleFingerprints),...Object.keys(l.moduleFingerprints)]))c.moduleFingerprints[e]!==l.moduleFingerprints[e]&&d.add(e);for(let e of i){let t=n.get(e),i=r.get(e),a=t?xl(t,c,`base`,s):void 0,o=i?xl(i,l,`head`,s):void 0;p.set(e,{base:a,head:o})}let e=new Set,a=new Set;for(let t of[c,l])for(let[n,r]of Object.entries(t.modules)){e.add(n);for(let t of r)e.add(t)}for(let e of p.values()){if(e.base)for(let t of El(c,e.base))a.add(t);if(e.head)for(let t of El(l,e.head))a.add(t)}for(let e of f){let t=Dl(c,l,e);if(!t||[...t].some(e=>!a.has(e))){s.push({code:`global-output`,path:e});continue}for(let e of t)d.add(e)}for(let e of d)(wl(e,c.globalInputs)||wl(e,l.globalInputs))&&s.push({code:`global-input`,path:e});for(let n of t){if(wl(n,c.globalInputs)||wl(n,l.globalInputs)){s.push({code:`global-input`,path:n});continue}let t=wl(n,c.ignoredInputs)&&wl(n,l.ignoredInputs),r=Tl(c)&&Tl(l)&&wl(n,c.fingerprintedInputs??[])&&wl(n,l.fingerprintedInputs??[]);!t&&!r&&(!e.has(n)||!a.has(n))&&s.push({code:`unknown-input`,path:n})}}let m=jl(s);if(m.length>0||!c||!l)return{version:1,selectionMode:`full-fallback`,changedFiles:t,...e.changedFilesEvidence?{changedFilesEvidence:{...e.changedFilesEvidence}}:{},dependencyManifests:Fl(u),totalStoryIds:i,selectedStoryIds:i,skippedStoryIds:[],addedStoryIds:a,removedStoryIds:o,fallbackReasons:m};let h=new Set([...a,...o]);for(let e of i){let n=p.get(e);if(!n)continue;if(n.base!==n.head){h.add(e);continue}let r=n.base?El(c,n.base):new Set,i=n.head?El(l,n.head):new Set;if(!kl(r,i)){h.add(e);continue}let a=new Set([...r,...i]);(t.some(e=>a.has(e))||[...a].some(e=>d.has(e)))&&h.add(e)}let g=[...h].sort();return{version:1,selectionMode:`affected`,changedFiles:t,...e.changedFilesEvidence?{changedFilesEvidence:{...e.changedFilesEvidence}}:{},dependencyManifests:Fl(u),totalStoryIds:i,selectedStoryIds:g,skippedStoryIds:i.filter(e=>!h.has(e)),addedStoryIds:a,removedStoryIds:o,fallbackReasons:[]}}async function yl(e){return gl.parse(JSON.parse(await x(c(e,`index.json`),`utf8`)))}function bl(e){return new Map(Object.values(e.entries).filter(e=>e.type===`story`).sort((e,t)=>e.id.localeCompare(t.id)).map(e=>[e.id,e]))}function xl(e,t,n,r){if(!e.importPath){r.push({code:`story-import-missing`,storyId:e.id,side:n});return}let i;try{i=Sl(t.storybookRoot,e.importPath)}catch{r.push({code:`story-import-missing`,storyId:e.id,side:n});return}if(!t.modules[i]){r.push({code:`story-module-missing`,storyId:e.id,side:n});return}if(t.renderedModules&&!t.renderedModules[i]?.includes(i)){r.push({code:`story-module-missing`,storyId:e.id,side:n});return}return i}function Sl(e,t){let n=t.replaceAll(`\\`,`/`).replace(/^\.\//,``);if(s(n)||/^[A-Za-z]:\//.test(n))throw Error(`Story importPath must be relative`);let r=u.normalize(u.join(e,n));if(r===`..`||r.startsWith(`../`)||r===`.`)throw Error(`Story importPath must stay within project root`);return r}function Cl(e){let t=e.replaceAll(`\\`,`/`).replace(/^\.\//,``);if(t.length===0||t.includes(`\0`)||s(t)||/^[A-Za-z]:\//.test(t)||t===`..`||t.startsWith(`../`)||t.split(`/`).some(e=>e===`.`||e===`..`)||t.includes(`//`)||t.endsWith(`/`))throw Error(`Changed file must be a normalized project-relative path: ${e}`);return t}function wl(e,t){return t.some(t=>e===t||l(e,t))}function Tl(e){return!e.complete||!e.moduleFingerprints?!1:Object.keys(e.modules).every(t=>e.moduleFingerprints?.[t]!==void 0)}function El(e,t){let n=Ol(e,t),r=e.renderedModules?.[t];return r?new Set(r):n}function Dl(e,t,n){let r=e.globalOutputFingerprints[n]!==void 0,i=t.globalOutputFingerprints[n]!==void 0;if(r&&i&&e.globalOutputFingerprints[n]!==t.globalOutputFingerprints[n])return null;let a=new Set(e.globalOutputStories[n]??[]),o=new Set(t.globalOutputStories[n]??[]);if(r&&a.size===0||i&&o.size===0)return null;let s=new Set([...a,...o]);return s.size>0?s:null}function Ol(e,t){let n=new Set,r=[t];for(;r.length>0;){let t=r.pop();if(!(!t||n.has(t))){n.add(t);for(let i of e.modules[t]??[])n.has(i)||r.push(i)}}return n}function kl(e,t){return e.size===t.size&&[...e].every(e=>t.has(e))}function Al(e){return[...new Set(e)].sort()}function jl(e){let t=new Map;for(let n of e)t.set(Pl(n),n);let n=[...t.values()].sort(Nl);return n.length<=1e3?n:[...n.filter(e=>e.code!==`fallback-reasons-truncated`).slice(0,999),{code:`fallback-reasons-truncated`}].sort(Nl)}async function Ml(e,t){let n=await al(e);if(n.manifest)return n;let r=`${t}-manifest-${n.evidence.state}`;return{evidence:n.evidence,reason:{code:r,side:t}}}function Nl(e,t){return Pl(e).localeCompare(Pl(t))}function Pl(e){return`${e.code}:${e.side??``}:${e.path??``}:${e.storyId??``}`}function Fl(e){return{base:{...e.base},head:{...e.head}}}const Il=xs({id:F().min(1),title:F(),name:F(),type:B([`story`,`docs`])}),Ll=xs({v:L(),entries:z(F(),Il)});async function Rl(e){let t=await fetch(new URL(`index.json`,Vl(e)));if(!t.ok)throw Error(`Failed to read Storybook index (${t.status}) from ${e}`);return Ll.parse(await t.json())}function zl(e){return Object.values(e.entries).filter(e=>e.type===`story`).sort((e,t)=>e.id.localeCompare(t.id))}function Bl(e,t){let n=new URL(`iframe.html`,Vl(e));return n.searchParams.set(`id`,t),n.searchParams.set(`viewMode`,`story`),n.toString()}function Vl(e){return e.endsWith(`/`)?e:`${e}/`}function Hl(e){let t=Zl(e,`bridge`);if(t.protocolVersion!==2)throw Error(`Unsupported Kapture Storybook protocol ${String(t.protocolVersion)}; expected 2`);let n=$l(t.adapterVersion,`adapterVersion`),r=t.state;if(r===`booting`)return{protocolVersion:2,adapterVersion:n,state:r};if(![`rendering`,`ready`,`error`].includes(r))throw Error(`Invalid Kapture Storybook bridge state: ${String(r)}`);let i=$l(t.storyId,`storyId`),a=ou(t.generation,`generation`),o=nu(t.renderId,`renderId`);if(r===`rendering`)return{protocolVersion:2,adapterVersion:n,state:r,storyId:i,generation:a,renderId:o,parameters:t.parameters===void 0?void 0:Ul(t.parameters)};if(r===`ready`){if(o===void 0)throw Error(`Kapture ready bridge requires renderId`);return{protocolVersion:2,adapterVersion:n,state:r,storyId:i,generation:a,renderId:o,parameters:Ul(t.parameters)}}let s=Zl(t.error,`error`);if(s.kind!==`configuration`&&s.kind!==`storybook`)throw Error(`Invalid Kapture bridge error kind: ${String(s.kind)}`);return{protocolVersion:2,adapterVersion:n,state:`error`,storyId:i,generation:a,renderId:o,error:{kind:s.kind,message:$l(s.message,`error.message`)}}}function Ul(e){let t=Zl(e,`parameters`);return cu({disabled:tu(t.disabled,`disabled`),viewports:Wl(t.viewports),cropToViewport:tu(t.cropToViewport,`cropToViewport`),delayMs:iu(t.delayMs,`delayMs`),waitFor:Kl(t.waitFor),animation:ql(t.animation),mask:Xl(t.mask,`mask`),ignoreSelectors:Xl(t.ignoreSelectors,`ignoreSelectors`),waitForFonts:tu(t.waitForFonts,`waitForFonts`),fontAssertions:t.fontAssertions===void 0?void 0:Ql(t.fontAssertions,`fontAssertions`).map((e,t)=>Jl(e,`fontAssertions[${t}]`)),diff:Yl(t.diff)})}function Wl(e){if(e===void 0)return;let t=Ql(e,`viewports`);if(t.length===0)throw Error(`Kapture viewports must contain at least one viewport; use disabled: true to skip`);return t.map((e,t)=>Gl(e,`viewports[${t}]`))}function Gl(e,t){let n=Zl(e,t);return{name:$l(n.name,`${t}.name`),width:au(n.width,`${t}.width`),height:au(n.height,`${t}.height`)}}function Kl(e){if(e===void 0)return;if(typeof e==`string`)return $l(e,`waitFor`);let t=Zl(e,`waitFor`),n=t.state;if(n!==void 0&&n!==`attached`&&n!==`visible`&&n!==`hidden`&&n!==`detached`)throw Error(`Invalid Kapture waitFor state: ${String(n)}`);return cu({selector:$l(t.selector,`waitFor.selector`),state:n,timeoutMs:iu(t.timeoutMs,`waitFor.timeoutMs`)})}function ql(e){if(e!==void 0)return e===`disabled`||e===`start`||e===`end`?e:{atMs:ru(Zl(e,`animation`).atMs,`animation.atMs`)}}function Jl(e,t){let n=Zl(e,t),r=n.weight;if(r!==void 0&&typeof r!=`string`&&typeof r!=`number`)throw Error(`${t}.weight must be a string or number`);return cu({family:$l(n.family,`${t}.family`),glyphs:$l(n.glyphs,`${t}.glyphs`),style:eu(n.style,`${t}.style`),weight:r})}function Yl(e){if(e===void 0)return;let t=Zl(e,`diff`);return cu({pixel:su(t.pixel,`diff.pixel`),ratio:su(t.ratio,`diff.ratio`)})}function Xl(e,t){if(e!==void 0)return Ql(e,t).map((e,n)=>$l(e,`${t}[${n}]`))}function Zl(e,t){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Kapture ${t} must be an object`);return e}function Ql(e,t){if(!Array.isArray(e))throw Error(`Kapture ${t} must be an array`);return e}function $l(e,t){if(typeof e!=`string`||!e.trim())throw Error(`Kapture ${t} must be a non-empty string`);return e}function eu(e,t){return e===void 0?void 0:$l(e,t)}function tu(e,t){if(e!==void 0){if(typeof e!=`boolean`)throw Error(`Kapture ${t} must be a boolean`);return e}}function nu(e,t){if(e!==void 0){if(typeof e!=`number`||!Number.isFinite(e))throw Error(`Kapture ${t} must be a finite number`);return e}}function ru(e,t){let n=nu(e,t);if(n===void 0||n<0)throw Error(`Kapture ${t} must be a non-negative number`);return n}function iu(e,t){return e===void 0?void 0:ru(e,t)}function au(e,t){let n=nu(e,t);if(n===void 0||n<=0)throw Error(`Kapture ${t} must be positive`);return n}function ou(e,t){let n=ru(e,t);if(!Number.isInteger(n))throw Error(`Kapture ${t} must be an integer`);return n}function su(e,t){if(e===void 0)return;let n=ru(e,t);if(n>1)throw Error(`Kapture ${t} must be between 0 and 1`);return n}function cu(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}async function lu(e,t,n){let r=JSON.stringify(t),i=await e.evaluate(`(async () => {
334
330
  const expectedStoryId = ${r};
335
331
  const deadline = performance.now() + 10000;
336
332
  let sawAdapter = false;
@@ -339,7 +335,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
339
335
  const value = globalThis.__KAPTURE_STORYBOOK__;
340
336
  if (value !== undefined) {
341
337
  sawAdapter = true;
342
- if (typeof value !== "object" || value === null || value.protocolVersion !== 1) {
338
+ if (typeof value !== "object" || value === null || value.protocolVersion !== 2) {
343
339
  return { kind: "bridge", value };
344
340
  }
345
341
  lastState = String(value.state ?? "invalid");
@@ -358,74 +354,74 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
358
354
  }
359
355
  await new Promise(resolve => setTimeout(resolve, 20));
360
356
  }
361
- })()`);if(i.kind===`timeout`)throw i.sawAdapter?Error(`Kapture Storybook adapter did not become ready for ${t} (last state: ${i.lastState??`unknown`}).`):Error(`Kapture Storybook adapter was not found for ${t}. Install @kaptures/storybook and register kapture() in .storybook/preview.`);let a;try{a=Rl(i.value)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${t}. Install matching versions of @kaptures/cli and @kaptures/storybook.`,{cause:e})}if(a.state===`error`){let e=a.error.kind===`configuration`?`configuration`:`lifecycle`;throw Error(`Kapture Storybook ${e} error for ${t}: ${a.error.message}`)}if(a.state!==`ready`||a.storyId!==t)throw Error(`Kapture Storybook returned invalid terminal state for ${t}`);if(a.adapterVersion!==n)throw Error(`Kapture adapter version mismatch for ${t}: CLI ${n}, Storybook ${a.adapterVersion}. Install matching exact versions of @kaptures/cli and @kaptures/storybook.`);return{adapterVersion:a.adapterVersion,generation:a.generation,parameters:a.parameters}}function ou(e,t){return e.adapterVersion===t.adapterVersion&&e.generation===t.generation}const su={getBrowserVersion:tc,getFontsFingerprint:vc};async function cu(e,t=su){let n=f(e.outputDir),r=c(n,`capture`,`base`),i=c(n,`capture`,`head`),a=c(n,`report`);await ae(n,{recursive:!0,force:!0}),await Promise.all([y(c(r,`images`),{recursive:!0}),y(c(i,`images`),{recursive:!0}),y(a,{recursive:!0})]);let[o,s]=await Promise.all([Ic(e.baseDir),Ic(e.headDir)]);try{let[l,u,d,f]=await Promise.all([Pl(o.url),Pl(s.url),tl(e.baseDir),tl(e.headDir)]),p=Fl(l),m=Fl(u),h=fu(p,m,e,{base:d.evidence,head:f.evidence}),g=du(p,m,h.selectedStoryIds),[_,ee]=g.length===0?[`not-launched:no-affected-stories-v1`,`not-inspected:no-affected-stories-v1`]:await Promise.all([t.getBrowserVersion(),t.getFontsFingerprint()]),v=mc({browserVersion:_,fontsFingerprint:ee,frozenTime:e.frozenTime,randomSeed:e.randomSeed,locale:e.locale,timezone:e.timezone}),y=c(n,`hermetic-init.js`);await se(y,bc(v));let te=`kapture-${process.pid}-${Date.now()}`,b=lu(e.baseRevision,v),x=lu(e.headRevision,v),ne=e.workers??4;if(!Number.isInteger(ne)||ne<1||ne>8)throw Error(`Kapture workers must be between 1 and 8`);let re=g.length===0?0:Math.min(ne,g.length),ie=g.some(e=>!!e.base),ae=g.some(e=>!!e.head),oe=[...g],ce=[],le=[];try{for(let t=0;t<re;t+=1){let n={};ie&&(n.base=uu(t,`base`,e,{namespace:te,initScriptPath:y,environment:v}),le.push(n.base)),ae&&(n.head=uu(t,`head`,e,{namespace:te,initScriptPath:y,environment:v}),le.push(n.head)),ce.push(n)}await Promise.all(ce.map(async t=>{for(;oe.length>0;){let n=oe.shift();if(!n)return;await _u({workers:t,pair:n,baseUrl:o.url,headUrl:s.url,baseOutput:r,headOutput:i,baseManifest:b,headManifest:x,environment:v,adapterVersion:e.adapterVersion})}}))}finally{await Promise.allSettled(le.map(e=>Promise.resolve().then(()=>e.close())))}return await Promise.all([Hc(c(r,`manifest.json`),b),Hc(c(i,`manifest.json`),x)]),{baseManifest:b,headManifest:x,report:await Mc({baseManifest:b,headManifest:x,baseRoot:r,headRoot:i,outputDir:a,threshold:{...lc,...e.threshold},coverage:h})}}finally{await Promise.allSettled([o.close(),s.close()])}}function lu(e,t){return{version:1,revision:e,environment:t,createdAt:new Date().toISOString(),snapshots:{}}}function uu(e,t,n,r){let i={...r,target:t};return n.workerFactory?n.workerFactory(e,i):new ac({id:`${r.namespace}-${t}-${e}`,namespace:r.namespace,initScriptPath:r.initScriptPath,timezone:r.environment.timezone,locale:r.environment.locale,deviceScaleFactor:r.environment.deviceScaleFactor,allowedDomains:r.environment.network.allowedDomains})}function du(e,t,n){let r=new Map(e.map(e=>[e.id,e])),i=new Map(t.map(e=>[e.id,e])),a=[...new Set([...r.keys(),...i.keys()])].sort(),o=n?[...new Set(n)].sort():a,s=new Set(a),c=o.filter(e=>!s.has(e));if(c.length>0)throw Error(`Unknown Kapture story IDs: ${c.join(`, `)}`);return o.map(e=>({id:e,base:r.get(e),head:i.get(e)}))}function fu(e,t,n,r){if(n.selectionPlan&&n.storyIds)throw Error(`Kapture selectionPlan and storyIds cannot be provided together`);let i=[...new Set([...e,...t].map(e=>e.id))].sort(),a=new Set(e.map(e=>e.id)),o=new Set(t.map(e=>e.id)),s=i.filter(e=>!a.has(e)&&o.has(e)),c=i.filter(e=>a.has(e)&&!o.has(e)),l=pu(r,n.baseRevision,n.headRevision),u=n.selectionPlan;if(u){if(gu(u.totalStoryIds,i,`selection plan catalog`),gu(u.addedStoryIds,s,`selection plan added stories`),gu(u.removedStoryIds,c,`selection plan removed stories`),mu(u.dependencyManifests,r),hu(u.selectedStoryIds,u.skippedStoryIds,i),u.selectionMode===`full-fallback`&&u.fallbackReasons.length===0)throw Error(`Kapture full-fallback selection plan requires a fallback reason`);if(u.selectionMode===`affected`&&u.fallbackReasons.length>0)throw Error(`Kapture affected selection plan cannot contain fallback reasons`);return{plannerVersion:1,mode:u.selectionMode,...u.changedFilesEvidence?{changedFilesEvidence:{...u.changedFilesEvidence}}:{},dependencyManifests:l,storyIds:i,selectedStoryIds:[...u.selectedStoryIds],skippedStoryIds:[...u.skippedStoryIds],addedStoryIds:s,removedStoryIds:c,fallbackReasons:u.fallbackReasons.map(e=>({...e}))}}if(n.storyIds){let e=[...new Set(n.storyIds)].sort(),t=new Set(i),r=e.filter(e=>!t.has(e));if(r.length>0)throw Error(`Unknown Kapture story IDs: ${r.join(`, `)}`);let a=new Set(e);return{plannerVersion:1,mode:`affected`,dependencyManifests:l,storyIds:i,selectedStoryIds:e,skippedStoryIds:i.filter(e=>!a.has(e)),addedStoryIds:s,removedStoryIds:c,fallbackReasons:[]}}return{plannerVersion:1,mode:`full`,dependencyManifests:l,storyIds:i,selectedStoryIds:i,skippedStoryIds:[],addedStoryIds:s,removedStoryIds:c,fallbackReasons:[]}}function pu(e,t,n){return{base:{...e.base,revision:t},head:{...e.head,revision:n}}}function mu(e,t){if(JSON.stringify(e)!==JSON.stringify(t))throw Error(`Kapture selection plan dependency manifests do not match the built Storybook artifacts`)}function hu(e,t,n){gu(e,[...new Set(e)].sort(),`selected stories`),gu(t,[...new Set(t)].sort(),`skipped stories`);let r=new Set(e),i=[...e,...t].sort();if(t.some(e=>r.has(e)))throw Error(`Kapture selection plan cannot select and skip the same story`);gu(i,n,`selection plan partition`)}function gu(e,t,n){if(e.length!==t.length||e.some((e,n)=>e!==t[n]))throw Error(`Kapture ${n} does not match the built Storybook catalog`)}async function _u(e){let t={base:vu(!!e.pair.base),head:vu(!!e.pair.head)},n=[];e.pair.base&&n.push(yu(e,`base`,t)),e.pair.head&&n.push(yu(e,`head`,t)),await Promise.all(n)}function vu(e){if(!e)return{promise:Promise.resolve(void 0),resolve:()=>void 0};let t=()=>void 0,n=!1;return{promise:new Promise(e=>{t=e}),resolve(e){n||(n=!0,t(e))}}}async function yu(e,t,n){let r=e.pair[t];if(!r)return;let i=e.workers[t];if(!i)throw Error(`Kapture ${t} browser worker was not initialized`);let a=t===`base`?e.baseManifest:e.headManifest,o=t===`base`?e.baseUrl:e.headUrl,s=t===`base`?e.baseOutput:e.headOutput,c=t===`base`?`head`:`base`;try{await i.runAttempt({target:t,storyId:r.id},async i=>{let l=await bu(i,o,r,e.environment,e.adapterVersion).catch(Eu);if(n[t].resolve(l),l instanceof Error){wu(a,r,l);return}let u=await n[c].promise;if(u instanceof Error)return;let d=xu(t===`base`?l.parameters:u?.parameters,t===`head`?l.parameters:u?.parameters,!!e.pair.base,!!e.pair.head);for(let n of d){let c=n[t];!c||l.parameters.disabled||await Su({driver:i,story:r,baseUrl:o,outputRoot:s,manifest:a,viewport:c,parameters:l.parameters,cropToViewport:l.parameters.cropToViewport,threshold:l.parameters.diff,adapterVersion:e.adapterVersion})}})}catch(e){let i=Eu(e);n[t].resolve(i),Tu(a,r,i)}}async function bu(e,t,n,r,i){return await e.setViewport(cc),await e.setMedia(r.colorScheme,r.reducedMotion===`reduce`),await e.open(Il(t,n.id)),au(e,n.id,i)}function xu(e,t,n=!0,r=!0){let i=!n||e?.disabled?[]:e?.viewports??[cc],a=!r||t?.disabled?[]:t?.viewports??[cc],o=new Map(i.map(e=>[e.name,e])),s=new Map(a.map(e=>[e.name,e]));return[...new Set([...o.keys(),...s.keys()])].sort().map(e=>({base:o.get(e),head:s.get(e)}))}async function Su(e){let{driver:t,story:n,baseUrl:r,outputRoot:i,manifest:a,viewport:o,parameters:s,cropToViewport:l,threshold:u,adapterVersion:f}=e,p=`${n.id}@${o.name}`,m=c(`images`,jc(p)),h=c(i,m),g=performance.now();try{await t.setViewport(o),await t.setMedia(a.environment.colorScheme,a.environment.reducedMotion===`reduce`),await t.open(Il(r,n.id));let e=await au(t,n.id,f);Cu(e,s,n.id);let c;for(let r=1;r<=3;r+=1){c=await sc(t,a.environment,e.parameters);let i=await au(t,n.id,f);if(Cu(i,s,n.id),ou(e,i))break;if(r===3)throw Error(`Kapture story ${n.id} kept rerendering while the capture was stabilizing`);e=i,c=void 0}if(!c)throw Error(`Kapture could not stabilize ${n.id}`);await t.screenshot(h,{fullPage:l!==!0}),a.snapshots[p]={id:p,storyId:n.id,title:n.title,name:n.name,viewport:o,imageFile:d(i,h),sha256:await Ac(h),capturedAt:new Date().toISOString(),durationMs:Math.round(performance.now()-g),ignoredRegions:c.ignoredRegions.length>0?c.ignoredRegions:void 0,threshold:u}}catch(e){a.snapshots[p]={id:p,storyId:n.id,title:n.title,name:n.name,viewport:o,imageFile:m,sha256:``,capturedAt:new Date().toISOString(),durationMs:Math.round(performance.now()-g),threshold:u,error:e instanceof Error?e.message:String(e)}}}function Cu(e,t,n){if(JSON.stringify(e.parameters)!==JSON.stringify(t))throw Error(`Kapture parameters changed between metadata and capture for ${n}`)}function wu(e,t,n){let r=`${t.id}@metadata`;e.snapshots[r]={id:r,storyId:t.id,title:t.title,name:t.name,viewport:cc,imageFile:``,sha256:``,capturedAt:new Date().toISOString(),durationMs:0,error:n.message}}function Tu(e,t,n){let r=`${t.id}@attempt`;e.snapshots[r]={id:r,storyId:t.id,title:t.title,name:t.name,viewport:cc,imageFile:``,sha256:``,capturedAt:new Date().toISOString(),durationMs:0,error:n.message}}function Eu(e){return e instanceof Error?e:Error(String(e))}async function Du(e,t){if(!(await oe(e)).isDirectory())throw Error(`Dashboard build is not a directory: ${e}`);await ee(e,t,{recursive:!0,force:!0});let n=f(t,`index.html`),r=f(t,`report.json`),[i,a]=await Promise.all([x(n,`utf8`),x(r,`utf8`)]),o=Ou(i,/<link\b[^>]*\brel=["']stylesheet["'][^>]*\bhref=["']([^"']+)["'][^>]*>/i,`stylesheet`),s=Ou(i,/<script\b[^>]*\bsrc=["']([^"']+)["'][^>]*><\/script>/i,`module script`),[c,l]=await Promise.all([ku(t,o.url),ku(t,s.url)]),u=Au(c,o.url),d=`<script id="kapture-report-data" type="application/json">${a.trim().replaceAll(`<`,`\\u003c`)}<\/script>\n<script data-kapture-dashboard>"use strict";\n${l.replace(/<\/script/gi,`<\\/script`)}<\/script>`,p=i.replace(o.tag,()=>`<style>${u}</style>`).replace(s.tag,``);if(!p.includes(`</body>`))throw Error(`Dashboard index is missing its closing body tag`);let m=p.replace(`</body>`,()=>`${d}\n</body>`);await se(n,m)}function Ou(e,t,n){let r=e.match(t);if(!r?.[1])throw Error(`Dashboard index is missing its ${n}`);return{tag:r[0],url:r[1]}}async function ku(e,t){if(/^[a-z]+:/i.test(t)||t.startsWith(`/`)||t.includes(`?`))throw Error(`Dashboard asset must be a relative local path: ${t}`);let n=f(e),r=f(n,t);if(!r.startsWith(`${n}${p}`))throw Error(`Dashboard asset resolves outside the report directory: ${t}`);return x(r,`utf8`)}function Au(e,t){let n=u.dirname(t);return e.replace(/url\((["']?)(\.\/[^"')]+)\1\)/g,(e,t,r)=>{let i=u.join(n,r);return`url(${t}${i.startsWith(`.`)?i:`./${i}`}${t})`})}const ju={executionErrors:e=>`❌ **${e} execution error(s)** must be fixed.`,clean:`✅ No visual changes.`,changes:e=>`🔍 **${e} visual change(s)** require review.`,comparison:(e,t)=>`**${e} stories · ${t} snapshots compared**`,coverage:(e,t,n,r,i,a)=>e===`affected`?`**${n} of ${t} affected stories selected · ${r} stories / ${i} snapshots compared · ${a} proven unaffected**`:`**${n} stories selected · ${r} stories / ${i} snapshots compared**`,fallback:e=>`- Safe full-capture fallback: ${e.join(`, `)}`,counts:e=>`- Unchanged ${e.unchanged} · Changed ${e.changed} · Added ${e.added} · Removed ${e.removed} · Errors ${e.errors}`,branch:`Branch`,environment:`Environment`,reportDownload:`Download the full comparison report`,reportOpen:`Open the full comparison report`,storyOpen:`Open captured story`,sections:{error:`🚨 Execution errors`,removed:`⚠️ Removed snapshots`,changed:`🔍 Visual changes`,added:`➕ Added snapshots`},hidden:e=>`${e} more item(s) are available in the full comparison report.`,errorAdvice:`⚠️ Capture or comparison errors must be fixed before approval.`,approvalPrompt:`A reviewer with write permission can approve the full head build with:`,captureError:`Capture or comparison failed.`,removedEntry:`Not found in the head Storybook`,addedEntry:`New snapshot`,approval:(e,t)=>`✅ @${e} approved Kapture report \`${t.slice(0,12)}\`.`},Mu={executionErrors:e=>`❌ **${e}개의 실행 오류**를 해결해 주세요.`,clean:`✅ 시각적 변경이 없습니다.`,changes:e=>`🔍 **${e}개의 시각적 변경**을 검토해 주세요.`,comparison:(e,t)=>`**${e}개 스토리 · ${t}개 스냅샷 비교**`,coverage:(e,t,n,r,i,a)=>e===`affected`?`**전체 ${t}개 Story 중 영향받은 ${n}개 선택 · ${r}개 Story / ${i}개 스냅샷 비교 · ${a}개는 dependency graph로 제외**`:`**${n}개 Story 선택 · ${r}개 Story / ${i}개 스냅샷 비교**`,fallback:e=>`- 누락 방지를 위해 전체 캡처로 전환: ${e.join(`, `)}`,counts:e=>`- 동일 ${e.unchanged} · 변경 ${e.changed} · 추가 ${e.added} · 삭제 ${e.removed} · 오류 ${e.errors}`,branch:`브랜치`,environment:`환경`,reportDownload:`전체 비교 리포트 다운로드`,reportOpen:`전체 비교 리포트 열기`,storyOpen:`캡처한 Story 열기`,sections:{error:`🚨 실행 오류`,removed:`⚠️ 삭제된 스냅샷`,changed:`🔍 시각 변경`,added:`➕ 추가된 스냅샷`},hidden:e=>`그 외 ${e}개 항목은 전체 비교 리포트에서 확인해 주세요.`,errorAdvice:`⚠️ 캡처 또는 비교 오류를 해결해야 합니다. 승인할 수 없습니다.`,approvalPrompt:`전체 head 빌드를 승인하려면 쓰기 권한이 있는 리뷰어가 다음 명령을 남겨 주세요.`,captureError:`캡처 또는 비교에 실패했습니다.`,removedEntry:`head Storybook에서 찾을 수 없음`,addedEntry:`새 스냅샷`,approval:(e,t)=>`✅ @${e} 님이 Kapture 리포트 \`${t.slice(0,12)}\`를 승인했습니다.`};function Nu(e){if(e===`en`||e===`ko`)return e;throw Error(`Comment language must be en or ko`)}function Pu(e){return e===`ko`?Mu:ju}const Fu=`<!-- kapture-report:`,Iu={error:0,removed:1,changed:2,added:3,unchanged:4};function Lu(e){return e.contentDigest??wc(e)}function Ru(e){return`${Fu}${Buffer.from(JSON.stringify(e)).toString(`base64url`)} -->`}function zu(e){let t=e.indexOf(Fu);if(t<0)return null;let n=t+20,r=e.indexOf(` -->`,n);if(r<0)return null;try{let t=JSON.parse(Buffer.from(e.slice(n,r),`base64url`).toString());return t.version!==3||!Hu(t.baseSha)||!Hu(t.headSha)||!/^[0-9a-f]{64}$/.test(t.digest)||!$u(t.captureRunId)||!$u(t.captureRunAttempt)||!$u(t.captureWorkflowId)||!ed(t.captureRunHeadBranch)||!$u(t.captureRunHeadRepositoryId)||![`clean`,`changed`,`error`].includes(t.status)||t.reportUrl!==void 0&&Uu(t.reportUrl)!==t.reportUrl?null:t}catch{return null}}function Bu(e,t,n=`Kapture Visual Review`,r=`en`){let{summary:i}=e,a=i.changed+i.added+i.removed,o=new Set(Object.values(e.entries).map(e=>e.storyId)).size,s=Ju(n,100),c=Pu(r),l=[Ru(t),`## ${s}`,``,i.errors>0?c.executionErrors(i.errors):a===0?c.clean:c.changes(a),``,e.coverage?c.coverage(e.coverage.mode,e.coverage.storyIds.length,e.coverage.selectedStoryIds.length,o,i.total,e.coverage.skippedStoryIds.length):c.comparison(o,i.total),``,c.counts(i),`- ${c.branch} \`${Xu(t.captureRunHeadBranch)}\` · ${c.environment} \`${Xu(e.environment.id)}\` · base \`${Qu(e.baseRevision)}\` → head \`${Qu(e.headRevision)}\``];if(e.coverage?.mode===`full-fallback`&&l.push(c.fallback([...new Set(e.coverage.fallbackReasons.map(e=>e.code))])),t.reportUrl){let e=Zu(t.reportUrl)?c.reportDownload:c.reportOpen;l.push(``,`[${e}](${t.reportUrl})`)}let u=Object.values(e.entries).filter(e=>e.status!==`unchanged`).sort(qu),d=u.slice(0,20);for(let t of[`error`,`removed`,`changed`,`added`]){let n=u.filter(e=>e.status===t),r=d.filter(e=>e.status===t);if(r.length!==0){l.push(``,`### ${c.sections[t]} (${n.length})`,``);for(let t of r)l.push(Gu(t,c,e.storybookUrl))}}let f=u.length-d.length;return f>0&&l.push(``,c.hidden(f)),i.errors>0?l.push(``,c.errorAdvice):a>0&&l.push(``,c.approvalPrompt,``,`\`/kapture approve ${e.headRevision} ${t.digest}\``),`${l.join(`
362
- `)}\n`}function Vu(e){let t=e.trim().match(/^\/kapture\s+approve\s+([0-9a-f]{40})\s+([0-9a-f]{64})$/i);return!t?.[1]||!t[2]?null:{headSha:t[1].toLowerCase(),reportDigest:t[2].toLowerCase()}}function Hu(e){return/^[0-9a-f]{40}$/i.test(e)}function Uu(e){if(!e)return;if(e.length>2048)throw Error(`Report URL is too long`);let t;try{t=new URL(e)}catch{throw Error(`Report URL must be a valid HTTPS URL`)}if(t.protocol!==`https:`||t.username||t.password)throw Error(`Report URL must be an HTTPS URL without credentials`);return t.toString().replace(/\(/g,`%28`).replace(/\)/g,`%29`).replace(/\[/g,`%5B`).replace(/\]/g,`%5D`)}function Wu(e){let t=Yu(e).replace(/\s+/g,` `).trim();if(!t||t.length>100)throw Error(`Status context must contain between 1 and 100 characters`);return t}function Gu(e,t,n){let r=`**${Ju(e.title)} / ${Ju(e.name)}** · ${Ju(e.viewport.name)}`,i=n?` · [${t.storyOpen}](${Ku(n,e.storyId)})`:``;return e.status===`error`?`- ${r} — ${Ju(e.error??t.captureError,180)}${i}`:e.status===`removed`?`- ${r} — ${t.removedEntry}`:e.status===`added`?`- ${r} — ${t.addedEntry}${i}`:`- ${r}${i}`}function Ku(e,t){let n=new URL(e);return n.searchParams.set(`path`,`/story/${t}`),Uu(n.toString())}function qu(e,t){let n=Iu[e.status]-Iu[t.status];return n===0?`${e.title}/${e.name}/${e.viewport.name}`.localeCompare(`${t.title}/${t.name}/${t.viewport.name}`):n}function Ju(e,t=240){let n=Yu(e).replace(/\s+/g,` `).trim();return(n.length>t?`${n.slice(0,t-3)}...`:n).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/\\/g,`\\\\`).replace(/([`*_[\]{}|])/g,`\\$1`).replace(/@/g,`@​`)}function Yu(e){return Array.from(e,e=>{let t=e.codePointAt(0)??0;return t<=31||t===127?` `:e}).join(``)}function Xu(e){return e.replace(/`/g,`ˋ`).replace(/[\r\n]/g,` `).replace(/@/g,`@​`)}function Zu(e){return e.includes(`/actions/runs/`)&&e.includes(`/artifacts/`)}function Qu(e){return e.slice(0,8)}function $u(e){return typeof e==`number`&&Number.isInteger(e)&&e>0}function ed(e){return typeof e!=`string`||e.length<1||e.length>512?!1:Array.from(e).every(e=>{let t=e.codePointAt(0)??0;return t>31&&t!==127})}var td=class{#e;#t;#n;constructor(e,t){if(!e)throw Error(`GITHUB_TOKEN is required`);this.#e=e,this.#t=t,this.#n=nd(process.env.GITHUB_API_URL)}async setReviewStatus(e,t,n,r,i){await this.#i(`POST`,`/statuses/${encodeURIComponent(e)}`,{state:t,description:n.slice(0,140),context:r,target_url:i})}async postOrUpdateReportComment(e,t){let n=(await this.#r(e)).find(e=>e.user?.login===`github-actions[bot]`&&e.body?.includes(`<!-- kapture-report:`));return n?(await this.#i(`PATCH`,`/issues/comments/${n.id}`,{body:t})).id:this.createIssueComment(e,t)}async findCurrentReportMarker(e,t,n){let r=await this.#r(e);for(let e of r.reverse()){if(e.user?.login!==`github-actions[bot]`||!e.body)continue;let r=zu(e.body);if(r?.baseSha===t&&r.headSha===n)return r}return null}async assertCurrentCaptureRun(e,t,n,r,i){let a=await this.#i(`GET`,`/actions/runs/${e}`);if(a.id!==e||a.run_attempt!==t||a.workflow_id!==n||a.head_branch!==r||a.head_repository.id!==i||a.status!==`completed`||a.conclusion!==`success`||a.event!==`pull_request`)throw Error(`Kapture report does not belong to the current successful capture run`);let o;for(let e=1;e<=10;e+=1){let t=await this.#i(`GET`,`/actions/workflows/${n}/runs?event=pull_request&branch=${encodeURIComponent(r)}&per_page=100&page=${e}`);for(let e of t.workflow_runs)e.head_repository.id===i&&(!o||e.run_number>o.run_number||e.run_number===o.run_number&&e.id>o.id)&&(o=e);if(t.workflow_runs.length<100)break}if(o?.id!==e)throw Error(`A newer Kapture capture run exists for this pull request`)}async getLatestReviewStatus(e,t){for(let n=1;n<=10;n+=1){let r=await this.#i(`GET`,`/commits/${encodeURIComponent(e)}/status?per_page=100&page=${n}`),i=r.statuses.find(e=>e.context===t);if(i)return rd(i.state)?{state:i.state,description:i.description??void 0,targetUrl:i.target_url??void 0}:null;if(r.statuses.length<100)break}return null}async assertWritePermission(e){let t=await this.#i(`GET`,`/collaborators/${encodeURIComponent(e)}/permission`);if(!t.permission||![`admin`,`maintain`,`write`].includes(t.permission))throw Error(`@${e} does not have write permission for this repository`)}async getPullRequest(e){return this.#i(`GET`,`/pulls/${e}`)}async getPullRequestForCapture(e){return this.#i(`GET`,`/pulls/${e}`)}async listPullRequestFilesPage(e,t,n){return this.#i(`GET`,`/pulls/${e}/files?per_page=${n}&page=${t}`)}async createIssueComment(e,t){return(await this.#i(`POST`,`/issues/${e}/comments`,{body:t})).id}async#r(e){let t=[];for(let n=1;n<=10;n+=1){let r=await this.#i(`GET`,`/issues/${e}/comments?per_page=100&page=${n}`);if(t.push(...r),r.length<100)break}return t}async#i(e,t,n){let{owner:r,repo:i}=this.#t,a=`/repos/${encodeURIComponent(r)}/${encodeURIComponent(i)}${t}`,o=await fetch(`${this.#n}${a}`,{method:e,headers:{Accept:`application/vnd.github+json`,Authorization:`Bearer ${this.#e}`,"X-GitHub-Api-Version":`2022-11-28`,"User-Agent":`kapture-cli`,...n?{"Content-Type":`application/json`}:{}},body:n?JSON.stringify(n):void 0});if(!o.ok)throw Error(`GitHub API ${e} ${t} failed with status ${o.status}`);return await o.json()}};function nd(e){let t=e?.trim()||`https://api.github.com`,n;try{n=new URL(t)}catch{throw Error(`GITHUB_API_URL must be a valid absolute URL`)}let r=[`127.0.0.1`,`localhost`,`[::1]`].includes(n.hostname);if(n.protocol!==`https:`&&!(n.protocol===`http:`&&r))throw Error(`GITHUB_API_URL must use HTTPS (HTTP is allowed only for loopback tests)`);if(n.username||n.password||n.search||n.hash)throw Error(`GITHUB_API_URL must not contain credentials, a query, or a fragment`);return n.toString().replace(/\/+$/,``)}function rd(e){return[`error`,`failure`,`pending`,`success`].includes(e)}async function id(){let e=process.env.GITHUB_EVENT_PATH;if(!e)throw Error(`GITHUB_EVENT_PATH is required`);let t=await oe(e);if(!t.isFile()||t.size>10485760)throw Error(`GitHub event payload is missing or too large`);try{return JSON.parse(await x(e,`utf8`))}catch{throw Error(`GITHUB_EVENT_PATH does not contain valid JSON`)}}function ad(e){let t=fd(e,`GitHub event payload`);if(t.action!==`completed`)throw Error(`Kapture report requires a completed normalized event`);let n=fd(t.kapture,`kapture normalized event`);if(n.schemaVersion!==1)throw Error(`Kapture report requires normalized event schemaVersion 1`);let r=fd(n.pullRequest,`kapture.pullRequest`),i=fd(n.captureRun,`kapture.captureRun`),a=cd(r.headSha,`kapture.pullRequest.headSha`),o=ud(i.headBranch);if(!dd(o))throw Error(`kapture.captureRun.headBranch is invalid`);return{repository:sd(t),issueNumber:ld(r.number,`pull request number`),headSha:a,captureRunId:ld(i.id,`capture run ID`),captureRunAttempt:ld(i.attempt,`capture run attempt`),captureWorkflowId:ld(i.workflowId,`capture workflow ID`),captureRunHeadBranch:o,captureRunHeadRepositoryId:ld(i.headRepositoryId,`capture run head repository ID`)}}function od(e){let t=fd(e,`GitHub event payload`);if(t.action!==`created`)throw Error(`Kapture approval only accepts newly created issue comments`);let n=fd(t.issue,`issue`);if(!n.pull_request)throw Error(`Kapture approval must be posted on a pull request`);let r=Vu(ud(fd(t.comment,`comment`).body));if(!r)throw Error(`Expected /kapture approve <full-head-sha> <64-character-report-digest>`);let i=ud(fd(t.sender,`sender`).login);if(!/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})$/.test(i))throw Error(`GitHub event contains an invalid sender login`);return{repository:sd(t),issueNumber:ld(n.number,`pull request number`),headSha:r.headSha,reportDigest:r.reportDigest,sender:i}}function sd(e){let t=ud(fd(e.repository,`repository`).full_name).match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!t?.[1]||!t[2])throw Error(`GitHub event contains an invalid repository`);return{owner:t[1],repo:t[2]}}function cd(e,t){let n=ud(e).toLowerCase();if(!Hu(n))throw Error(`${t} must be a full 40-character SHA`);return n}function ld(e,t){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);return e}function ud(e){if(typeof e!=`string`)throw Error(`GitHub event contains an invalid string value`);return e}function dd(e){return e.length<1||e.length>512?!1:Array.from(e).every(e=>{let t=e.codePointAt(0)??0;return t>31&&t!==127})}function fd(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}const pd=`Publishing verified visual report`;async function md(e,t,n){let r=gd(n.baseRevision,`Report base`),i=gd(n.headRevision,`Report head`);if(i!==t.headSha)throw Error(`Report head ${n.headRevision} does not match workflow head ${t.headSha}`);let a=await e.getPullRequest(t.issueNumber);if(a.number!==t.issueNumber)throw Error(`GitHub returned PR #${a.number} instead of requested PR #${t.issueNumber}`);if(a.state!==`open`)throw Error(`Pull request #${t.issueNumber} is not open`);let o=gd(a.head.sha,`Current PR head`),s=gd(a.base.sha,`Current PR base`);if(o!==i)throw Error(`Report head ${n.headRevision} is stale; current PR head is ${a.head.sha}`);if(s!==r)throw Error(`Report base ${n.baseRevision} is stale; current PR base is ${a.base.sha}`);return a}async function hd(e,t,n,r,i,a=`en`){if(await md(e,t,n),!n.contentDigest)throw Error("GitHub report publishing requires an image-bound contentDigest; run `kapture report build` first");let o=Lu(n),s=n.summary.changed+n.summary.added+n.summary.removed,c=n.summary.errors>0?`error`:s>0?`changed`:`clean`,l={version:3,baseSha:n.baseRevision.toLowerCase(),headSha:n.headRevision.toLowerCase(),digest:o,captureRunId:t.captureRunId,captureRunAttempt:t.captureRunAttempt,captureWorkflowId:t.captureWorkflowId,captureRunHeadBranch:t.captureRunHeadBranch,captureRunHeadRepositoryId:t.captureRunHeadRepositoryId,status:c,reportUrl:i},u=c===`error`?`failure`:c===`changed`?`pending`:`success`,d=c===`error`?`${n.summary.errors} visual capture error(s)`:c===`changed`?`Visual changes require approval`:`No visual changes`;await e.assertCurrentCaptureRun(t.captureRunId,t.captureRunAttempt,t.captureWorkflowId,t.captureRunHeadBranch,t.captureRunHeadRepositoryId),await e.setReviewStatus(t.headSha,`pending`,pd,r,i);let f=await e.postOrUpdateReportComment(t.issueNumber,Bu(n,l,r,a));await md(e,t,n),await e.assertCurrentCaptureRun(t.captureRunId,t.captureRunAttempt,t.captureWorkflowId,t.captureRunHeadBranch,t.captureRunHeadRepositoryId);let p=await e.getLatestReviewStatus(t.headSha,r);if(!p||p.state!==`pending`||p.description!==pd||p.targetUrl!==i)throw Error(`Kapture status changed while the report was being published; retry report`);return await e.setReviewStatus(t.headSha,u,d,r,i),{status:c,changedCount:s,commentId:f,reportDigest:o}}function gd(e,t){if(!Hu(e))throw Error(`${t} ${e} must be a full 40-character SHA`);return e.toLowerCase()}async function _d(e,t,n,r=`en`){await e.assertWritePermission(t.sender);let i=await e.getPullRequest(t.issueNumber);if(i.number!==t.issueNumber)throw Error(`GitHub returned PR #${i.number} instead of requested PR #${t.issueNumber}`);if(i.state!==`open`)throw Error(`Pull request #${t.issueNumber} is not open`);let a=gd(i.base.sha,`Current PR base`),o=gd(i.head.sha,`Current PR head`);if(o!==t.headSha)throw Error(`Approval SHA ${t.headSha} is stale; current PR head is ${i.head.sha}`);let s=await e.findCurrentReportMarker(t.issueNumber,a,o);if(!s)throw Error(`No Kapture report exists for current base ${a} and head ${o}`);if(s.status!==`changed`)throw Error(`Kapture report for ${t.headSha} is not eligible for approval (${s.status})`);if(s.digest!==t.reportDigest)throw Error(`Approval digest ${t.reportDigest} does not match current report ${s.digest}`);await e.assertCurrentCaptureRun(s.captureRunId,s.captureRunAttempt,s.captureWorkflowId,s.captureRunHeadBranch,s.captureRunHeadRepositoryId);let c=await e.getLatestReviewStatus(o,n);if(!c||c.state!==`pending`||c.description!==`Visual changes require approval`||c.targetUrl!==s.reportUrl)throw Error(`Current Kapture status is not awaiting approval for this report`);let l=await e.findCurrentReportMarker(t.issueNumber,a,o);if(!l||l.digest!==t.reportDigest||l.status!==`changed`||l.captureRunId!==s.captureRunId||l.captureRunAttempt!==s.captureRunAttempt||l.captureWorkflowId!==s.captureWorkflowId||l.captureRunHeadBranch!==s.captureRunHeadBranch||l.captureRunHeadRepositoryId!==s.captureRunHeadRepositoryId||l.reportUrl!==s.reportUrl)throw Error(`Kapture report changed while approval was being applied; retry approval`);await e.assertCurrentCaptureRun(s.captureRunId,s.captureRunAttempt,s.captureWorkflowId,s.captureRunHeadBranch,s.captureRunHeadRepositoryId);let u=await e.getLatestReviewStatus(o,n);if(!u||u.state!==`pending`||u.description!==`Visual changes require approval`||u.targetUrl!==s.reportUrl)throw Error(`Current Kapture status changed while approval was being applied; retry approval`);let d=await e.getPullRequest(t.issueNumber);if(d.number!==t.issueNumber||d.state!==`open`||gd(d.base.sha,`Current PR base`)!==a||gd(d.head.sha,`Current PR head`)!==o)throw Error(`Pull request changed while approval was being applied; retry approval`);return await e.setReviewStatus(t.headSha,`success`,`Approved by @${t.sender}`,n,s.reportUrl),await e.createIssueComment(t.issueNumber,Pu(r).approval(t.sender,s.digest)),{status:`approved`,reportDigest:s.digest}}async function vd(e){let t=process.env.GITHUB_OUTPUT;if(!t)return;let n=[];for(let[t,r]of Object.entries(e)){let e=String(r),i=`kapture_${h()}`;n.push(`${t}<<${i}\n${e}\n${i}\n`)}await g(t,n.join(``),`utf8`)}const yd=T({meta:{name:`approve`,description:`Approve the current full-SHA Kapture report`},args:{"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`},"comment-language":{type:`string`,default:`en`,description:`Approval comment language (en or ko)`}},async run({args:e}){try{let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=od(await id()),r=await _d(new td(t,n.repository),n,Wu(e[`status-context`]),Nu(e[`comment-language`]));await vd({status:r.status,"report-digest":r.reportDigest})}catch(e){throw await vd({status:`error`}),e}}}),U={silent:-1/0,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:1/0},bd={silent:{level:-1},fatal:{level:U.fatal},error:{level:U.error},warn:{level:U.warn},log:{level:U.log},info:{level:U.info},success:{level:U.success},fail:{level:U.fail},ready:{level:U.info},start:{level:U.info},box:{level:U.info},debug:{level:U.debug},trace:{level:U.trace},verbose:{level:U.verbose}};function xd(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function Sd(e,t,n=`.`,r){if(!xd(t))return Sd(e,{},n,r);let i=Object.assign({},t);for(let t in e){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(i[t]=Array.isArray(a)&&Array.isArray(i[t])?[...a,...i[t]]:xd(a)&&xd(i[t])?Sd(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function Cd(e){return(...t)=>t.reduce((t,n)=>Sd(t,n,``,e),{})}const wd=Cd();function Td(e){return Object.prototype.toString.call(e)===`[object Object]`}function Ed(e){return!(!Td(e)||!e.message&&!e.args||e.stack)}let Dd=!1;const Od=[];var W=class e{options;_lastLog;_mockFn;constructor(e={}){let t=e.types||bd;this.options=wd({...e,defaults:{...e.defaults},level:kd(e.level,t),reporters:[...e.reporters||[]]},{types:bd,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let e in t){let n={type:e,...this.options.defaults,...t[e]};this[e]=this._wrapLogFn(n),this[e].raw=this._wrapLogFn(n,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(e){this.options.level=kd(e,this.options.types,this.options.level)}prompt(e,t){if(!this.options.prompt)throw Error(`prompt is not supported!`);return this.options.prompt(e,t)}create(t){let n=new e({...this.options,...t});return this._mockFn&&n.mockTypes(this._mockFn),n}withDefaults(e){return this.create({...this.options,defaults:{...this.options.defaults,...e}})}withTag(e){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+`:`+e:e})}addReporter(e){return this.options.reporters.push(e),this}removeReporter(e){if(e){let t=this.options.reporters.indexOf(e);if(t!==-1)return this.options.reporters.splice(t,1)}else this.options.reporters.splice(0);return this}setReporters(e){return this.options.reporters=Array.isArray(e)?e:[e],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let e in this.options.types)console[`__`+e]||(console[`__`+e]=console[e]),console[e]=this[e].raw}restoreConsole(){for(let e in this.options.types)console[`__`+e]&&(console[e]=console[`__`+e],delete console[`__`+e])}wrapStd(){this._wrapStream(this.options.stdout,`log`),this._wrapStream(this.options.stderr,`log`)}_wrapStream(e,t){e&&(e.__write||=e.write,e.write=e=>{this[t].raw(String(e).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(e){e&&e.__write&&(e.write=e.__write,delete e.__write)}pauseLogs(){Dd=!0}resumeLogs(){Dd=!1;let e=Od.splice(0);for(let t of e)t[0]._logFn(t[1],t[2])}mockTypes(e){let t=e||this.options.mockFn;if(this._mockFn=t,typeof t==`function`)for(let e in this.options.types)this[e]=t(e,this.options.types[e])||this[e],this[e].raw=this[e]}_wrapLogFn(e,t){return(...n)=>{if(Dd){Od.push([this,e,n,t]);return}return this._logFn(e,n,t)}}_logFn(e,t,n){if((e.level||0)>this.level)return!1;let r={date:new Date,args:[],...e,level:kd(e.level,this.options.types)};!n&&t.length===1&&Ed(t[0])?Object.assign(r,t[0]):r.args=[...t],r.message&&(r.args.unshift(r.message),delete r.message),r.additional&&(Array.isArray(r.additional)||(r.additional=r.additional.split(`
357
+ })()`);if(i.kind===`timeout`)throw i.sawAdapter?Error(`Kapture Storybook adapter did not become ready for ${t} (last state: ${i.lastState??`unknown`}).`):Error(`Kapture Storybook adapter was not found for ${t}. Install @kaptures/storybook and register kapture() in .storybook/preview.`);let a;try{a=Hl(i.value)}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`${t}. Install matching versions of @kaptures/cli and @kaptures/storybook.`,{cause:e})}if(a.state===`error`){let e=a.error.kind===`configuration`?`configuration`:`lifecycle`;throw Error(`Kapture Storybook ${e} error for ${t}: ${a.error.message}`)}if(a.state!==`ready`||a.storyId!==t)throw Error(`Kapture Storybook returned invalid terminal state for ${t}`);if(a.adapterVersion!==n)throw Error(`Kapture adapter version mismatch for ${t}: CLI ${n}, Storybook ${a.adapterVersion}. Install matching exact versions of @kaptures/cli and @kaptures/storybook.`);return{adapterVersion:a.adapterVersion,generation:a.generation,parameters:a.parameters}}function uu(e,t){return e.adapterVersion===t.adapterVersion&&e.generation===t.generation}const du={getBrowserVersion:nc,getFontsFingerprint:yc};async function fu(e,t=du){let n=f(e.outputDir),r=c(n,`capture`,`base`),i=c(n,`capture`,`head`),a=c(n,`report`);await ae(n,{recursive:!0,force:!0}),await Promise.all([y(c(r,`images`),{recursive:!0}),y(c(i,`images`),{recursive:!0}),y(a,{recursive:!0})]);let[o,s]=await Promise.all([Lc(e.baseDir),Lc(e.headDir)]);try{let[l,u,d,f]=await Promise.all([Rl(o.url),Rl(s.url),al(e.baseDir),al(e.headDir)]),p=zl(l),m=zl(u),h=gu(p,m,e,{base:d.evidence,head:f.evidence}),g=hu(p,m,h.selectedStoryIds),[_,ee]=g.length===0?[`not-launched:no-affected-stories-v1`,`not-inspected:no-affected-stories-v1`]:await Promise.all([t.getBrowserVersion(),t.getFontsFingerprint()]),v=hc({browserVersion:_,fontsFingerprint:ee,frozenTime:e.frozenTime,randomSeed:e.randomSeed,locale:e.locale,timezone:e.timezone}),y=c(n,`hermetic-init.js`);await se(y,xc(v));let te=`kapture-${process.pid}-${Date.now()}`,b=e.baseCaptureDir?await Tu(e.baseCaptureDir,r,e.baseRevision,v,g):void 0;b&&(h.baseline={mode:`reused`,revision:b.manifest.revision,manifestDigest:b.manifestDigest});let x=b?.manifest??pu(e.baseRevision,v),ne=pu(e.headRevision,v),re=e.workers??4;if(!Number.isInteger(re)||re<1||re>8)throw Error(`Kapture workers must be between 1 and 8`);let ie=g.length===0?0:Math.min(re,g.length),ae=!b&&g.some(e=>!!e.base),oe=g.some(e=>!!e.head),ce=[...g],le=[],ue=[];try{for(let t=0;t<ie;t+=1){let n={};ae&&(n.base=mu(t,`base`,e,{namespace:te,initScriptPath:y,environment:v}),ue.push(n.base)),oe&&(n.head=mu(t,`head`,e,{namespace:te,initScriptPath:y,environment:v}),ue.push(n.head)),le.push(n)}await Promise.all(le.map(async t=>{for(;ce.length>0;){let n=ce.shift();if(!n)return;await xu({workers:t,pair:n,baseUrl:o.url,headUrl:s.url,baseOutput:r,headOutput:i,baseManifest:x,headManifest:ne,environment:v,adapterVersion:e.adapterVersion,captureBase:!b})}}))}finally{await Promise.allSettled(ue.map(e=>Promise.resolve().then(()=>e.close())))}return b&&await Eu({baseline:b.manifest,baselineRoot:b.root,headManifest:ne,headOutput:i,selectedStoryIds:h.selectedStoryIds,removedStoryIds:h.removedStoryIds??[]}),await Promise.all([Gc(c(r,`manifest.json`),x),Gc(c(i,`manifest.json`),ne)]),{baseManifest:x,headManifest:ne,report:await Nc({baseManifest:x,headManifest:ne,baseRoot:r,headRoot:i,outputDir:a,threshold:{...uc,...e.threshold},coverage:h})}}finally{await Promise.allSettled([o.close(),s.close()])}}function pu(e,t){return{version:1,revision:e,environment:t,createdAt:new Date().toISOString(),snapshots:{}}}function mu(e,t,n,r){let i={...r,target:t};return n.workerFactory?n.workerFactory(e,i):new oc({id:`${r.namespace}-${t}-${e}`,namespace:r.namespace,initScriptPath:r.initScriptPath,timezone:r.environment.timezone,locale:r.environment.locale,deviceScaleFactor:r.environment.deviceScaleFactor,allowedDomains:r.environment.network.allowedDomains})}function hu(e,t,n){let r=new Map(e.map(e=>[e.id,e])),i=new Map(t.map(e=>[e.id,e])),a=[...new Set([...r.keys(),...i.keys()])].sort(),o=n?[...new Set(n)].sort():a,s=new Set(a),c=o.filter(e=>!s.has(e));if(c.length>0)throw Error(`Unknown Kapture story IDs: ${c.join(`, `)}`);return o.map(e=>({id:e,base:r.get(e),head:i.get(e)}))}function gu(e,t,n,r){if(n.selectionPlan&&n.storyIds)throw Error(`Kapture selectionPlan and storyIds cannot be provided together`);let i=[...new Set([...e,...t].map(e=>e.id))].sort(),a=new Set(e.map(e=>e.id)),o=new Set(t.map(e=>e.id)),s=i.filter(e=>!a.has(e)&&o.has(e)),c=i.filter(e=>a.has(e)&&!o.has(e)),l=_u(r,n.baseRevision,n.headRevision),u=n.selectionPlan;if(u){if(bu(u.totalStoryIds,i,`selection plan catalog`),bu(u.addedStoryIds,s,`selection plan added stories`),bu(u.removedStoryIds,c,`selection plan removed stories`),vu(u.dependencyManifests,r),yu(u.selectedStoryIds,u.skippedStoryIds,i),u.selectionMode===`full-fallback`&&u.fallbackReasons.length===0)throw Error(`Kapture full-fallback selection plan requires a fallback reason`);if(u.selectionMode===`affected`&&u.fallbackReasons.length>0)throw Error(`Kapture affected selection plan cannot contain fallback reasons`);return{plannerVersion:1,mode:u.selectionMode,...u.changedFilesEvidence?{changedFilesEvidence:{...u.changedFilesEvidence}}:{},dependencyManifests:l,storyIds:i,selectedStoryIds:[...u.selectedStoryIds],skippedStoryIds:[...u.skippedStoryIds],addedStoryIds:s,removedStoryIds:c,fallbackReasons:u.fallbackReasons.map(e=>({...e}))}}if(n.storyIds){let e=[...new Set(n.storyIds)].sort(),t=new Set(i),r=e.filter(e=>!t.has(e));if(r.length>0)throw Error(`Unknown Kapture story IDs: ${r.join(`, `)}`);let a=new Set(e);return{plannerVersion:1,mode:`affected`,dependencyManifests:l,storyIds:i,selectedStoryIds:e,skippedStoryIds:i.filter(e=>!a.has(e)),addedStoryIds:s,removedStoryIds:c,fallbackReasons:[]}}return{plannerVersion:1,mode:`full`,dependencyManifests:l,storyIds:i,selectedStoryIds:i,skippedStoryIds:[],addedStoryIds:s,removedStoryIds:c,fallbackReasons:[]}}function _u(e,t,n){return{base:{...e.base,revision:t},head:{...e.head,revision:n}}}function vu(e,t){if(JSON.stringify(e)!==JSON.stringify(t))throw Error(`Kapture selection plan dependency manifests do not match the built Storybook artifacts`)}function yu(e,t,n){bu(e,[...new Set(e)].sort(),`selected stories`),bu(t,[...new Set(t)].sort(),`skipped stories`);let r=new Set(e),i=[...e,...t].sort();if(t.some(e=>r.has(e)))throw Error(`Kapture selection plan cannot select and skip the same story`);bu(i,n,`selection plan partition`)}function bu(e,t,n){if(e.length!==t.length||e.some((e,n)=>e!==t[n]))throw Error(`Kapture ${n} does not match the built Storybook catalog`)}async function xu(e){let t={base:Su(!!e.pair.base&&e.captureBase),head:Su(!!e.pair.head)},n=[];e.pair.base&&e.captureBase&&n.push(Cu(e,`base`,t)),e.pair.head&&n.push(Cu(e,`head`,t)),await Promise.all(n)}function Su(e){if(!e)return{promise:Promise.resolve(void 0),resolve:()=>void 0};let t=()=>void 0,n=!1;return{promise:new Promise(e=>{t=e}),resolve(e){n||(n=!0,t(e))}}}async function Cu(e,t,n){let r=e.pair[t];if(!r)return;let i=e.workers[t];if(!i)throw Error(`Kapture ${t} browser worker was not initialized`);let a=t===`base`?e.baseManifest:e.headManifest,o=t===`base`?e.baseUrl:e.headUrl,s=t===`base`?e.baseOutput:e.headOutput,c=t===`base`?`head`:`base`;try{await i.runAttempt({target:t,storyId:r.id},async i=>{let l=await Du(i,o,r,e.environment,e.adapterVersion).catch(Nu);if(n[t].resolve(l),l instanceof Error){ju(a,r,l);return}let u=await n[c].promise;if(u instanceof Error)return;let d=t===`base`?l.parameters:u?.parameters,f=t===`head`?l.parameters:u?.parameters,p=e.captureBase?Ou(d,f,!!e.pair.base,!!e.pair.head):wu(e.baseManifest,e.pair.id,f,!!e.pair.head);for(let n of p){let c=n[t];!c||l.parameters.disabled||await ku({driver:i,story:r,baseUrl:o,outputRoot:s,manifest:a,viewport:c,parameters:l.parameters,cropToViewport:l.parameters.cropToViewport,threshold:l.parameters.diff,adapterVersion:e.adapterVersion})}})}catch(e){let i=Nu(e);n[t].resolve(i),Mu(a,r,i)}}function wu(e,t,n,r=!0){let i=Object.values(e.snapshots).filter(e=>e.storyId===t).map(e=>e.viewport),a=!r||n?.disabled?[]:n?.viewports??[lc],o=new Map(i.map(e=>[e.name,e])),s=new Map(a.map(e=>[e.name,e]));return[...new Set([...o.keys(),...s.keys()])].sort().map(e=>({base:o.get(e),head:s.get(e)}))}async function Tu(e,t,n,r,i){let a=f(e),o=c(a,`manifest.json`),s=await Kc(o);if(s.revision!==n)throw Error(`Kapture baseline revision ${s.revision} does not match requested base ${n}`);vc(s.environment,r);let l=new Set(i.filter(e=>e.base).map(e=>e.id)),u={...s.snapshots};for(let e of l)if(!Object.values(u).some(t=>t.storyId===e))throw Error(`Kapture baseline does not contain selected base story ${e}`);return await Promise.all(Object.values(u).map(async e=>{if(e.error)return;let n=c(a,e.imageFile);if(await jc(n)!==e.sha256)throw Error(`Kapture baseline image digest mismatch for ${e.id}`);await _(n,c(t,e.imageFile))})),{root:t,manifest:{...s,snapshots:u},manifestDigest:await jc(o)}}async function Eu(e){let t=new Set(e.selectedStoryIds),n=new Set(e.removedStoryIds);await Promise.all(Object.values(e.baseline.snapshots).map(async r=>{t.has(r.storyId)||n.has(r.storyId)||(e.headManifest.snapshots[r.id]={...r,sourceRevision:r.sourceRevision??e.baseline.revision},!r.error&&await _(c(e.baselineRoot,r.imageFile),c(e.headOutput,r.imageFile)))}))}async function Du(e,t,n,r,i){return await e.setViewport(lc),await e.setMedia(r.colorScheme,r.reducedMotion===`reduce`),await e.open(Bl(t,n.id)),lu(e,n.id,i)}function Ou(e,t,n=!0,r=!0){let i=!n||e?.disabled?[]:e?.viewports??[lc],a=!r||t?.disabled?[]:t?.viewports??[lc],o=new Map(i.map(e=>[e.name,e])),s=new Map(a.map(e=>[e.name,e]));return[...new Set([...o.keys(),...s.keys()])].sort().map(e=>({base:o.get(e),head:s.get(e)}))}async function ku(e){let{driver:t,story:n,baseUrl:r,outputRoot:i,manifest:a,viewport:o,parameters:s,cropToViewport:l,threshold:u,adapterVersion:f}=e,p=`${n.id}@${o.name}`,m=c(`images`,Mc(p)),h=c(i,m),g=performance.now();try{await t.setViewport(o),await t.setMedia(a.environment.colorScheme,a.environment.reducedMotion===`reduce`),await t.open(Bl(r,n.id));let e=await lu(t,n.id,f);Au(e,s,n.id);let c;for(let r=1;r<=3;r+=1){c=await cc(t,a.environment,e.parameters);let i=await lu(t,n.id,f);if(Au(i,s,n.id),uu(e,i))break;if(r===3)throw Error(`Kapture story ${n.id} kept rerendering while the capture was stabilizing`);e=i,c=void 0}if(!c)throw Error(`Kapture could not stabilize ${n.id}`);await t.screenshot(h,{fullPage:l!==!0}),a.snapshots[p]={id:p,storyId:n.id,title:n.title,name:n.name,viewport:o,imageFile:d(i,h),sha256:await jc(h),capturedAt:new Date().toISOString(),durationMs:Math.round(performance.now()-g),ignoredRegions:c.ignoredRegions.length>0?c.ignoredRegions:void 0,threshold:u}}catch(e){a.snapshots[p]={id:p,storyId:n.id,title:n.title,name:n.name,viewport:o,imageFile:m,sha256:``,capturedAt:new Date().toISOString(),durationMs:Math.round(performance.now()-g),threshold:u,error:e instanceof Error?e.message:String(e)}}}function Au(e,t,n){if(JSON.stringify(e.parameters)!==JSON.stringify(t))throw Error(`Kapture parameters changed between metadata and capture for ${n}`)}function ju(e,t,n){let r=`${t.id}@metadata`;e.snapshots[r]={id:r,storyId:t.id,title:t.title,name:t.name,viewport:lc,imageFile:``,sha256:``,capturedAt:new Date().toISOString(),durationMs:0,error:n.message}}function Mu(e,t,n){let r=`${t.id}@attempt`;e.snapshots[r]={id:r,storyId:t.id,title:t.title,name:t.name,viewport:lc,imageFile:``,sha256:``,capturedAt:new Date().toISOString(),durationMs:0,error:n.message}}function Nu(e){return e instanceof Error?e:Error(String(e))}async function Pu(e,t){if(!(await oe(e)).isDirectory())throw Error(`Dashboard build is not a directory: ${e}`);await ee(e,t,{recursive:!0,force:!0});let n=f(t,`index.html`),r=f(t,`report.json`),[i,a]=await Promise.all([x(n,`utf8`),x(r,`utf8`)]),o=Fu(i,/<link\b[^>]*\brel=["']stylesheet["'][^>]*\bhref=["']([^"']+)["'][^>]*>/i,`stylesheet`),s=Fu(i,/<script\b[^>]*\bsrc=["']([^"']+)["'][^>]*><\/script>/i,`module script`),[c,l]=await Promise.all([Iu(t,o.url),Iu(t,s.url)]),u=Lu(c,o.url),d=`<script id="kapture-report-data" type="application/json">${a.trim().replaceAll(`<`,`\\u003c`)}<\/script>\n<script data-kapture-dashboard>"use strict";\n${l.replace(/<\/script/gi,`<\\/script`)}<\/script>`,p=i.replace(o.tag,()=>`<style>${u}</style>`).replace(s.tag,``);if(!p.includes(`</body>`))throw Error(`Dashboard index is missing its closing body tag`);let m=p.replace(`</body>`,()=>`${d}\n</body>`);await se(n,m)}function Fu(e,t,n){let r=e.match(t);if(!r?.[1])throw Error(`Dashboard index is missing its ${n}`);return{tag:r[0],url:r[1]}}async function Iu(e,t){if(/^[a-z]+:/i.test(t)||t.startsWith(`/`)||t.includes(`?`))throw Error(`Dashboard asset must be a relative local path: ${t}`);let n=f(e),r=f(n,t);if(!r.startsWith(`${n}${p}`))throw Error(`Dashboard asset resolves outside the report directory: ${t}`);return x(r,`utf8`)}function Lu(e,t){let n=u.dirname(t);return e.replace(/url\((["']?)(\.\/[^"')]+)\1\)/g,(e,t,r)=>{let i=u.join(n,r);return`url(${t}${i.startsWith(`.`)?i:`./${i}`}${t})`})}const Ru={executionErrors:e=>`❌ **${e} execution error(s)** must be fixed.`,clean:`✅ No visual changes.`,changes:e=>`🔍 **${e} visual change(s)** require review.`,comparison:(e,t)=>`**${e} stories · ${t} snapshots compared**`,coverage:(e,t,n,r,i,a)=>e===`affected`?`**${n} of ${t} affected stories selected · ${r} stories / ${i} snapshots compared · ${a} proven unaffected**`:`**${n} stories selected · ${r} stories / ${i} snapshots compared**`,fallback:e=>`- Safe full-capture fallback: ${e.join(`, `)}`,counts:e=>`- Unchanged ${e.unchanged} · Changed ${e.changed} · Added ${e.added} · Removed ${e.removed} · Errors ${e.errors}`,branch:`Branch`,environment:`Environment`,reportDownload:`Download the full comparison report`,reportOpen:`Open the full comparison report`,storyOpen:`Open captured story`,sections:{error:`🚨 Execution errors`,removed:`⚠️ Removed snapshots`,changed:`🔍 Visual changes`,added:`➕ Added snapshots`},hidden:e=>`${e} more item(s) are available in the full comparison report.`,errorAdvice:`⚠️ Capture or comparison errors must be fixed before approval.`,approvalPrompt:`A reviewer with write permission can approve the full head build with:`,captureError:`Capture or comparison failed.`,removedEntry:`Not found in the head Storybook`,addedEntry:`New snapshot`,approval:(e,t)=>`✅ @${e} approved Kapture report \`${t.slice(0,12)}\`.`},zu={executionErrors:e=>`❌ **${e}개의 실행 오류**를 해결해 주세요.`,clean:`✅ 시각적 변경이 없습니다.`,changes:e=>`🔍 **${e}개의 시각적 변경**을 검토해 주세요.`,comparison:(e,t)=>`**${e}개 스토리 · ${t}개 스냅샷 비교**`,coverage:(e,t,n,r,i,a)=>e===`affected`?`**전체 ${t}개 Story 중 영향받은 ${n}개 선택 · ${r}개 Story / ${i}개 스냅샷 비교 · ${a}개는 dependency graph로 제외**`:`**${n}개 Story 선택 · ${r}개 Story / ${i}개 스냅샷 비교**`,fallback:e=>`- 누락 방지를 위해 전체 캡처로 전환: ${e.join(`, `)}`,counts:e=>`- 동일 ${e.unchanged} · 변경 ${e.changed} · 추가 ${e.added} · 삭제 ${e.removed} · 오류 ${e.errors}`,branch:`브랜치`,environment:`환경`,reportDownload:`전체 비교 리포트 다운로드`,reportOpen:`전체 비교 리포트 열기`,storyOpen:`캡처한 Story 열기`,sections:{error:`🚨 실행 오류`,removed:`⚠️ 삭제된 스냅샷`,changed:`🔍 시각 변경`,added:`➕ 추가된 스냅샷`},hidden:e=>`그 외 ${e}개 항목은 전체 비교 리포트에서 확인해 주세요.`,errorAdvice:`⚠️ 캡처 또는 비교 오류를 해결해야 합니다. 승인할 수 없습니다.`,approvalPrompt:`전체 head 빌드를 승인하려면 쓰기 권한이 있는 리뷰어가 다음 명령을 남겨 주세요.`,captureError:`캡처 또는 비교에 실패했습니다.`,removedEntry:`head Storybook에서 찾을 수 없음`,addedEntry:`새 스냅샷`,approval:(e,t)=>`✅ @${e} 님이 Kapture 리포트 \`${t.slice(0,12)}\`를 승인했습니다.`};function Bu(e){if(e===`en`||e===`ko`)return e;throw Error(`Comment language must be en or ko`)}function Vu(e){return e===`ko`?zu:Ru}const Hu=`<!-- kapture-report:`,Uu={error:0,removed:1,changed:2,added:3,unchanged:4};function Wu(e){return e.contentDigest??Tc(e)}function Gu(e){return`${Hu}${Buffer.from(JSON.stringify(e)).toString(`base64url`)} -->`}function Ku(e){let t=e.indexOf(Hu);if(t<0)return null;let n=t+20,r=e.indexOf(` -->`,n);if(r<0)return null;try{let t=JSON.parse(Buffer.from(e.slice(n,r),`base64url`).toString());return t.version!==3||!Yu(t.baseSha)||!Yu(t.headSha)||!/^[0-9a-f]{64}$/.test(t.digest)||!sd(t.captureRunId)||!sd(t.captureRunAttempt)||!sd(t.captureWorkflowId)||!cd(t.captureRunHeadBranch)||!sd(t.captureRunHeadRepositoryId)||![`clean`,`changed`,`error`].includes(t.status)||t.reportUrl!==void 0&&Xu(t.reportUrl)!==t.reportUrl?null:t}catch{return null}}function qu(e,t,n=`Kapture Visual Review`,r=`en`){let{summary:i}=e,a=i.changed+i.added+i.removed,o=new Set(Object.values(e.entries).map(e=>e.storyId)).size,s=nd(n,100),c=Vu(r),l=[Gu(t),`## ${s}`,``,i.errors>0?c.executionErrors(i.errors):a===0?c.clean:c.changes(a),``,e.coverage?c.coverage(e.coverage.mode,e.coverage.storyIds.length,e.coverage.selectedStoryIds.length,o,i.total,e.coverage.skippedStoryIds.length):c.comparison(o,i.total),``,c.counts(i),`- ${c.branch} \`${id(t.captureRunHeadBranch)}\` · ${c.environment} \`${id(e.environment.id)}\` · base \`${od(e.baseRevision)}\` → head \`${od(e.headRevision)}\``];if(e.coverage?.mode===`full-fallback`&&l.push(c.fallback([...new Set(e.coverage.fallbackReasons.map(e=>e.code))])),t.reportUrl){let e=ad(t.reportUrl)?c.reportDownload:c.reportOpen;l.push(``,`[${e}](${t.reportUrl})`)}let u=Object.values(e.entries).filter(e=>e.status!==`unchanged`).sort(td),d=u.slice(0,20);for(let n of[`error`,`removed`,`changed`,`added`]){let r=u.filter(e=>e.status===n),i=d.filter(e=>e.status===n);if(i.length!==0){l.push(``,`### ${c.sections[n]} (${r.length})`,``);for(let n of i)l.push($u(n,c,e.storybookUrl,t.reportUrl))}}let f=u.length-d.length;return f>0&&l.push(``,c.hidden(f)),i.errors>0?l.push(``,c.errorAdvice):a>0&&l.push(``,c.approvalPrompt,``,`\`/kapture approve ${e.headRevision} ${t.digest}\``),`${l.join(`
358
+ `)}\n`}function Ju(e){let t=e.trim().match(/^\/kapture\s+approve\s+([0-9a-f]{40})\s+([0-9a-f]{64})$/i);return!t?.[1]||!t[2]?null:{headSha:t[1].toLowerCase(),reportDigest:t[2].toLowerCase()}}function Yu(e){return/^[0-9a-f]{40}$/i.test(e)}function Xu(e){if(!e)return;if(e.length>2048)throw Error(`Report URL is too long`);let t;try{t=new URL(e)}catch{throw Error(`Report URL must be a valid HTTPS URL`)}if(t.protocol!==`https:`||t.username||t.password)throw Error(`Report URL must be an HTTPS URL without credentials`);return t.toString().replace(/\(/g,`%28`).replace(/\)/g,`%29`).replace(/\[/g,`%5B`).replace(/\]/g,`%5D`)}function Zu(e){if(e){if(e===`./storybook/`)return e;try{return Xu(e)}catch{throw Error(`Storybook URL must be a valid HTTPS URL or ./storybook/`)}}}function Qu(e){let t=rd(e).replace(/\s+/g,` `).trim();if(!t||t.length>100)throw Error(`Status context must contain between 1 and 100 characters`);return t}function $u(e,t,n,r){let i=`**${nd(e.title)} / ${nd(e.name)}** · ${nd(e.viewport.name)}`,a=n?ed(n,e.storyId,r):void 0,o=a?` · [${t.storyOpen}](${a})`:``;return e.status===`error`?`- ${i} — ${nd(e.error??t.captureError,180)}${o}`:e.status===`removed`?`- ${i} — ${t.removedEntry}`:e.status===`added`?`- ${i} — ${t.addedEntry}${o}`:`- ${i}${o}`}function ed(e,t,n){if(e===`./storybook/`&&!n)return;let r=new URL(e,n);return r.searchParams.set(`path`,`/story/${t}`),Xu(r.toString())}function td(e,t){let n=Uu[e.status]-Uu[t.status];return n===0?`${e.title}/${e.name}/${e.viewport.name}`.localeCompare(`${t.title}/${t.name}/${t.viewport.name}`):n}function nd(e,t=240){let n=rd(e).replace(/\s+/g,` `).trim();return(n.length>t?`${n.slice(0,t-3)}...`:n).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/\\/g,`\\\\`).replace(/([`*_[\]{}|])/g,`\\$1`).replace(/@/g,`@​`)}function rd(e){return Array.from(e,e=>{let t=e.codePointAt(0)??0;return t<=31||t===127?` `:e}).join(``)}function id(e){return e.replace(/`/g,`ˋ`).replace(/[\r\n]/g,` `).replace(/@/g,`@​`)}function ad(e){return e.includes(`/actions/runs/`)&&e.includes(`/artifacts/`)}function od(e){return e.slice(0,8)}function sd(e){return typeof e==`number`&&Number.isInteger(e)&&e>0}function cd(e){return typeof e!=`string`||e.length<1||e.length>512?!1:Array.from(e).every(e=>{let t=e.codePointAt(0)??0;return t>31&&t!==127})}var ld=class{#e;#t;#n;constructor(e,t){if(!e)throw Error(`GITHUB_TOKEN is required`);this.#e=e,this.#t=t,this.#n=ud(process.env.GITHUB_API_URL)}async setReviewStatus(e,t,n,r,i){await this.#i(`POST`,`/statuses/${encodeURIComponent(e)}`,{state:t,description:n.slice(0,140),context:r,target_url:i})}async postOrUpdateReportComment(e,t){let n=(await this.#r(e)).find(e=>e.user?.login===`github-actions[bot]`&&e.body?.includes(`<!-- kapture-report:`));return n?(await this.#i(`PATCH`,`/issues/comments/${n.id}`,{body:t})).id:this.createIssueComment(e,t)}async findCurrentReportMarker(e,t,n){let r=await this.#r(e);for(let e of r.reverse()){if(e.user?.login!==`github-actions[bot]`||!e.body)continue;let r=Ku(e.body);if(r?.baseSha===t&&r.headSha===n)return r}return null}async assertCurrentCaptureRun(e,t,n,r,i){let a=await this.#i(`GET`,`/actions/runs/${e}`);if(a.id!==e||a.run_attempt!==t||a.workflow_id!==n||a.head_branch!==r||a.head_repository.id!==i||a.status!==`completed`||a.conclusion!==`success`||a.event!==`pull_request`)throw Error(`Kapture report does not belong to the current successful capture run`);let o;for(let e=1;e<=10;e+=1){let t=await this.#i(`GET`,`/actions/workflows/${n}/runs?event=pull_request&branch=${encodeURIComponent(r)}&per_page=100&page=${e}`);for(let e of t.workflow_runs)e.head_repository.id===i&&(!o||e.run_number>o.run_number||e.run_number===o.run_number&&e.id>o.id)&&(o=e);if(t.workflow_runs.length<100)break}if(o?.id!==e)throw Error(`A newer Kapture capture run exists for this pull request`)}async getLatestReviewStatus(e,t){for(let n=1;n<=10;n+=1){let r=await this.#i(`GET`,`/commits/${encodeURIComponent(e)}/status?per_page=100&page=${n}`),i=r.statuses.find(e=>e.context===t);if(i)return dd(i.state)?{state:i.state,description:i.description??void 0,targetUrl:i.target_url??void 0}:null;if(r.statuses.length<100)break}return null}async assertWritePermission(e){let t=await this.#i(`GET`,`/collaborators/${encodeURIComponent(e)}/permission`);if(!t.permission||![`admin`,`maintain`,`write`].includes(t.permission))throw Error(`@${e} does not have write permission for this repository`)}async getPullRequest(e){return this.#i(`GET`,`/pulls/${e}`)}async getPullRequestForCapture(e){return this.#i(`GET`,`/pulls/${e}`)}async listPullRequestFilesPage(e,t,n){return this.#i(`GET`,`/pulls/${e}/files?per_page=${n}&page=${t}`)}async createIssueComment(e,t){return(await this.#i(`POST`,`/issues/${e}/comments`,{body:t})).id}async#r(e){let t=[];for(let n=1;n<=10;n+=1){let r=await this.#i(`GET`,`/issues/${e}/comments?per_page=100&page=${n}`);if(t.push(...r),r.length<100)break}return t}async#i(e,t,n){let{owner:r,repo:i}=this.#t,a=`/repos/${encodeURIComponent(r)}/${encodeURIComponent(i)}${t}`,o=await fetch(`${this.#n}${a}`,{method:e,headers:{Accept:`application/vnd.github+json`,Authorization:`Bearer ${this.#e}`,"X-GitHub-Api-Version":`2022-11-28`,"User-Agent":`kapture-cli`,...n?{"Content-Type":`application/json`}:{}},body:n?JSON.stringify(n):void 0});if(!o.ok)throw Error(`GitHub API ${e} ${t} failed with status ${o.status}`);return await o.json()}};function ud(e){let t=e?.trim()||`https://api.github.com`,n;try{n=new URL(t)}catch{throw Error(`GITHUB_API_URL must be a valid absolute URL`)}let r=[`127.0.0.1`,`localhost`,`[::1]`].includes(n.hostname);if(n.protocol!==`https:`&&!(n.protocol===`http:`&&r))throw Error(`GITHUB_API_URL must use HTTPS (HTTP is allowed only for loopback tests)`);if(n.username||n.password||n.search||n.hash)throw Error(`GITHUB_API_URL must not contain credentials, a query, or a fragment`);return n.toString().replace(/\/+$/,``)}function dd(e){return[`error`,`failure`,`pending`,`success`].includes(e)}async function fd(){let e=process.env.GITHUB_EVENT_PATH;if(!e)throw Error(`GITHUB_EVENT_PATH is required`);let t=await oe(e);if(!t.isFile()||t.size>10485760)throw Error(`GitHub event payload is missing or too large`);try{return JSON.parse(await x(e,`utf8`))}catch{throw Error(`GITHUB_EVENT_PATH does not contain valid JSON`)}}function pd(e){let t=bd(e,`GitHub event payload`);if(t.action!==`completed`)throw Error(`Kapture report requires a completed normalized event`);let n=bd(t.kapture,`kapture normalized event`);if(n.schemaVersion!==1)throw Error(`Kapture report requires normalized event schemaVersion 1`);let r=bd(n.pullRequest,`kapture.pullRequest`),i=bd(n.captureRun,`kapture.captureRun`),a=gd(r.headSha,`kapture.pullRequest.headSha`),o=vd(i.headBranch);if(!yd(o))throw Error(`kapture.captureRun.headBranch is invalid`);return{repository:hd(t),issueNumber:_d(r.number,`pull request number`),headSha:a,captureRunId:_d(i.id,`capture run ID`),captureRunAttempt:_d(i.attempt,`capture run attempt`),captureWorkflowId:_d(i.workflowId,`capture workflow ID`),captureRunHeadBranch:o,captureRunHeadRepositoryId:_d(i.headRepositoryId,`capture run head repository ID`)}}function md(e){let t=bd(e,`GitHub event payload`);if(t.action!==`created`)throw Error(`Kapture approval only accepts newly created issue comments`);let n=bd(t.issue,`issue`);if(!n.pull_request)throw Error(`Kapture approval must be posted on a pull request`);let r=Ju(vd(bd(t.comment,`comment`).body));if(!r)throw Error(`Expected /kapture approve <full-head-sha> <64-character-report-digest>`);let i=vd(bd(t.sender,`sender`).login);if(!/^[A-Za-z0-9](?:[A-Za-z0-9-]{0,38})$/.test(i))throw Error(`GitHub event contains an invalid sender login`);return{repository:hd(t),issueNumber:_d(n.number,`pull request number`),headSha:r.headSha,reportDigest:r.reportDigest,sender:i}}function hd(e){let t=vd(bd(e.repository,`repository`).full_name).match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!t?.[1]||!t[2])throw Error(`GitHub event contains an invalid repository`);return{owner:t[1],repo:t[2]}}function gd(e,t){let n=vd(e).toLowerCase();if(!Yu(n))throw Error(`${t} must be a full 40-character SHA`);return n}function _d(e,t){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);return e}function vd(e){if(typeof e!=`string`)throw Error(`GitHub event contains an invalid string value`);return e}function yd(e){return e.length<1||e.length>512?!1:Array.from(e).every(e=>{let t=e.codePointAt(0)??0;return t>31&&t!==127})}function bd(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}const xd=`Publishing verified visual report`;async function Sd(e,t,n){let r=wd(n.baseRevision,`Report base`),i=wd(n.headRevision,`Report head`);if(i!==t.headSha)throw Error(`Report head ${n.headRevision} does not match workflow head ${t.headSha}`);let a=await e.getPullRequest(t.issueNumber);if(a.number!==t.issueNumber)throw Error(`GitHub returned PR #${a.number} instead of requested PR #${t.issueNumber}`);if(a.state!==`open`)throw Error(`Pull request #${t.issueNumber} is not open`);let o=wd(a.head.sha,`Current PR head`),s=wd(a.base.sha,`Current PR base`);if(o!==i)throw Error(`Report head ${n.headRevision} is stale; current PR head is ${a.head.sha}`);if(s!==r)throw Error(`Report base ${n.baseRevision} is stale; current PR base is ${a.base.sha}`);return a}async function Cd(e,t,n,r,i,a=`en`){if(await Sd(e,t,n),!n.contentDigest)throw Error("GitHub report publishing requires an image-bound contentDigest; run `kapture report build` first");let o=Wu(n),s=n.summary.changed+n.summary.added+n.summary.removed,c=n.summary.errors>0?`error`:s>0?`changed`:`clean`,l={version:3,baseSha:n.baseRevision.toLowerCase(),headSha:n.headRevision.toLowerCase(),digest:o,captureRunId:t.captureRunId,captureRunAttempt:t.captureRunAttempt,captureWorkflowId:t.captureWorkflowId,captureRunHeadBranch:t.captureRunHeadBranch,captureRunHeadRepositoryId:t.captureRunHeadRepositoryId,status:c,reportUrl:i},u=c===`error`?`failure`:c===`changed`?`pending`:`success`,d=c===`error`?`${n.summary.errors} visual capture error(s)`:c===`changed`?`Visual changes require approval`:`No visual changes`;await e.assertCurrentCaptureRun(t.captureRunId,t.captureRunAttempt,t.captureWorkflowId,t.captureRunHeadBranch,t.captureRunHeadRepositoryId),await e.setReviewStatus(t.headSha,`pending`,xd,r,i);let f=await e.postOrUpdateReportComment(t.issueNumber,qu(n,l,r,a));await Sd(e,t,n),await e.assertCurrentCaptureRun(t.captureRunId,t.captureRunAttempt,t.captureWorkflowId,t.captureRunHeadBranch,t.captureRunHeadRepositoryId);let p=await e.getLatestReviewStatus(t.headSha,r);if(!p||p.state!==`pending`||p.description!==xd||p.targetUrl!==i)throw Error(`Kapture status changed while the report was being published; retry report`);return await e.setReviewStatus(t.headSha,u,d,r,i),{status:c,changedCount:s,commentId:f,reportDigest:o}}function wd(e,t){if(!Yu(e))throw Error(`${t} ${e} must be a full 40-character SHA`);return e.toLowerCase()}async function Td(e,t,n,r=`en`){await e.assertWritePermission(t.sender);let i=await e.getPullRequest(t.issueNumber);if(i.number!==t.issueNumber)throw Error(`GitHub returned PR #${i.number} instead of requested PR #${t.issueNumber}`);if(i.state!==`open`)throw Error(`Pull request #${t.issueNumber} is not open`);let a=wd(i.base.sha,`Current PR base`),o=wd(i.head.sha,`Current PR head`);if(o!==t.headSha)throw Error(`Approval SHA ${t.headSha} is stale; current PR head is ${i.head.sha}`);let s=await e.findCurrentReportMarker(t.issueNumber,a,o);if(!s)throw Error(`No Kapture report exists for current base ${a} and head ${o}`);if(s.status!==`changed`)throw Error(`Kapture report for ${t.headSha} is not eligible for approval (${s.status})`);if(s.digest!==t.reportDigest)throw Error(`Approval digest ${t.reportDigest} does not match current report ${s.digest}`);await e.assertCurrentCaptureRun(s.captureRunId,s.captureRunAttempt,s.captureWorkflowId,s.captureRunHeadBranch,s.captureRunHeadRepositoryId);let c=await e.getLatestReviewStatus(o,n);if(!c||c.state!==`pending`||c.description!==`Visual changes require approval`||c.targetUrl!==s.reportUrl)throw Error(`Current Kapture status is not awaiting approval for this report`);let l=await e.findCurrentReportMarker(t.issueNumber,a,o);if(!l||l.digest!==t.reportDigest||l.status!==`changed`||l.captureRunId!==s.captureRunId||l.captureRunAttempt!==s.captureRunAttempt||l.captureWorkflowId!==s.captureWorkflowId||l.captureRunHeadBranch!==s.captureRunHeadBranch||l.captureRunHeadRepositoryId!==s.captureRunHeadRepositoryId||l.reportUrl!==s.reportUrl)throw Error(`Kapture report changed while approval was being applied; retry approval`);await e.assertCurrentCaptureRun(s.captureRunId,s.captureRunAttempt,s.captureWorkflowId,s.captureRunHeadBranch,s.captureRunHeadRepositoryId);let u=await e.getLatestReviewStatus(o,n);if(!u||u.state!==`pending`||u.description!==`Visual changes require approval`||u.targetUrl!==s.reportUrl)throw Error(`Current Kapture status changed while approval was being applied; retry approval`);let d=await e.getPullRequest(t.issueNumber);if(d.number!==t.issueNumber||d.state!==`open`||wd(d.base.sha,`Current PR base`)!==a||wd(d.head.sha,`Current PR head`)!==o)throw Error(`Pull request changed while approval was being applied; retry approval`);return await e.setReviewStatus(t.headSha,`success`,`Approved by @${t.sender}`,n,s.reportUrl),await e.createIssueComment(t.issueNumber,Vu(r).approval(t.sender,s.digest)),{status:`approved`,reportDigest:s.digest}}async function Ed(e){let t=process.env.GITHUB_OUTPUT;if(!t)return;let n=[];for(let[t,r]of Object.entries(e)){let e=String(r),i=`kapture_${h()}`;n.push(`${t}<<${i}\n${e}\n${i}\n`)}await g(t,n.join(``),`utf8`)}const Dd=T({meta:{name:`approve`,description:`Approve the current full-SHA Kapture report`},args:{"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`},"comment-language":{type:`string`,default:`en`,description:`Approval comment language (en or ko)`}},async run({args:e}){try{let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=md(await fd()),r=await Td(new ld(t,n.repository),n,Qu(e[`status-context`]),Bu(e[`comment-language`]));await Ed({status:r.status,"report-digest":r.reportDigest})}catch(e){throw await Ed({status:`error`}),e}}}),H={silent:-1/0,fatal:0,error:0,warn:1,log:2,info:3,success:3,fail:3,ready:3,start:3,box:3,debug:4,trace:5,verbose:1/0},Od={silent:{level:-1},fatal:{level:H.fatal},error:{level:H.error},warn:{level:H.warn},log:{level:H.log},info:{level:H.info},success:{level:H.success},fail:{level:H.fail},ready:{level:H.info},start:{level:H.info},box:{level:H.info},debug:{level:H.debug},trace:{level:H.trace},verbose:{level:H.verbose}};function kd(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)===`[object Module]`:!0}function Ad(e,t,n=`.`,r){if(!kd(t))return Ad(e,{},n,r);let i=Object.assign({},t);for(let t in e){if(t===`__proto__`||t===`constructor`)continue;let a=e[t];a!=null&&(r&&r(i,t,a,n)||(i[t]=Array.isArray(a)&&Array.isArray(i[t])?[...a,...i[t]]:kd(a)&&kd(i[t])?Ad(a,i[t],(n?`${n}.`:``)+t.toString(),r):a))}return i}function jd(e){return(...t)=>t.reduce((t,n)=>Ad(t,n,``,e),{})}const Md=jd();function Nd(e){return Object.prototype.toString.call(e)===`[object Object]`}function Pd(e){return!(!Nd(e)||!e.message&&!e.args||e.stack)}let Fd=!1;const Id=[];var U=class e{options;_lastLog;_mockFn;constructor(e={}){let t=e.types||Od;this.options=Md({...e,defaults:{...e.defaults},level:Ld(e.level,t),reporters:[...e.reporters||[]]},{types:Od,throttle:1e3,throttleMin:5,formatOptions:{date:!0,colors:!1,compact:!0}});for(let e in t){let n={type:e,...this.options.defaults,...t[e]};this[e]=this._wrapLogFn(n),this[e].raw=this._wrapLogFn(n,!0)}this.options.mockFn&&this.mockTypes(),this._lastLog={}}get level(){return this.options.level}set level(e){this.options.level=Ld(e,this.options.types,this.options.level)}prompt(e,t){if(!this.options.prompt)throw Error(`prompt is not supported!`);return this.options.prompt(e,t)}create(t){let n=new e({...this.options,...t});return this._mockFn&&n.mockTypes(this._mockFn),n}withDefaults(e){return this.create({...this.options,defaults:{...this.options.defaults,...e}})}withTag(e){return this.withDefaults({tag:this.options.defaults.tag?this.options.defaults.tag+`:`+e:e})}addReporter(e){return this.options.reporters.push(e),this}removeReporter(e){if(e){let t=this.options.reporters.indexOf(e);if(t!==-1)return this.options.reporters.splice(t,1)}else this.options.reporters.splice(0);return this}setReporters(e){return this.options.reporters=Array.isArray(e)?e:[e],this}wrapAll(){this.wrapConsole(),this.wrapStd()}restoreAll(){this.restoreConsole(),this.restoreStd()}wrapConsole(){for(let e in this.options.types)console[`__`+e]||(console[`__`+e]=console[e]),console[e]=this[e].raw}restoreConsole(){for(let e in this.options.types)console[`__`+e]&&(console[e]=console[`__`+e],delete console[`__`+e])}wrapStd(){this._wrapStream(this.options.stdout,`log`),this._wrapStream(this.options.stderr,`log`)}_wrapStream(e,t){e&&(e.__write||=e.write,e.write=e=>{this[t].raw(String(e).trim())})}restoreStd(){this._restoreStream(this.options.stdout),this._restoreStream(this.options.stderr)}_restoreStream(e){e&&e.__write&&(e.write=e.__write,delete e.__write)}pauseLogs(){Fd=!0}resumeLogs(){Fd=!1;let e=Id.splice(0);for(let t of e)t[0]._logFn(t[1],t[2])}mockTypes(e){let t=e||this.options.mockFn;if(this._mockFn=t,typeof t==`function`)for(let e in this.options.types)this[e]=t(e,this.options.types[e])||this[e],this[e].raw=this[e]}_wrapLogFn(e,t){return(...n)=>{if(Fd){Id.push([this,e,n,t]);return}return this._logFn(e,n,t)}}_logFn(e,t,n){if((e.level||0)>this.level)return!1;let r={date:new Date,args:[],...e,level:Ld(e.level,this.options.types)};!n&&t.length===1&&Pd(t[0])?Object.assign(r,t[0]):r.args=[...t],r.message&&(r.args.unshift(r.message),delete r.message),r.additional&&(Array.isArray(r.additional)||(r.additional=r.additional.split(`
363
359
  `)),r.args.push(`
364
360
  `+r.additional.join(`
365
- `)),delete r.additional),r.type=typeof r.type==`string`?r.type.toLowerCase():`log`,r.tag=typeof r.tag==`string`?r.tag:``;let i=(e=!1)=>{let t=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&t>0){let e=[...this._lastLog.object.args];t>1&&e.push(`(repeated ${t} times)`),this._log({...this._lastLog.object,args:e}),this._lastLog.count=1}e&&(this._lastLog.object=r,this._log(r))};clearTimeout(this._lastLog.timeout);let a=this._lastLog.time&&r.date?r.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=r.date,a<this.options.throttle)try{let e=JSON.stringify([r.type,r.tag,r.args]),t=this._lastLog.serialized===e;if(this._lastLog.serialized=e,t&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(i,this.options.throttle);return}}catch{}i(!0)}_log(e){for(let t of this.options.reporters)t.log(e,{options:this.options})}};function kd(e,t={},n=3){return e===void 0?n:typeof e==`number`?e:t[e]&&t[e].level!==void 0?t[e].level:n}W.prototype.add=W.prototype.addReporter,W.prototype.remove=W.prototype.removeReporter,W.prototype.clear=W.prototype.removeReporter,W.prototype.withScope=W.prototype.withTag,W.prototype.mock=W.prototype.mockTypes,W.prototype.pause=W.prototype.pauseLogs,W.prototype.resume=W.prototype.resumeLogs;function Ad(e={}){return new W(e)}function jd(e,t){let n=process.cwd()+p;return e.split(`
361
+ `)),delete r.additional),r.type=typeof r.type==`string`?r.type.toLowerCase():`log`,r.tag=typeof r.tag==`string`?r.tag:``;let i=(e=!1)=>{let t=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&t>0){let e=[...this._lastLog.object.args];t>1&&e.push(`(repeated ${t} times)`),this._log({...this._lastLog.object,args:e}),this._lastLog.count=1}e&&(this._lastLog.object=r,this._log(r))};clearTimeout(this._lastLog.timeout);let a=this._lastLog.time&&r.date?r.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=r.date,a<this.options.throttle)try{let e=JSON.stringify([r.type,r.tag,r.args]),t=this._lastLog.serialized===e;if(this._lastLog.serialized=e,t&&(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin)){this._lastLog.timeout=setTimeout(i,this.options.throttle);return}}catch{}i(!0)}_log(e){for(let t of this.options.reporters)t.log(e,{options:this.options})}};function Ld(e,t={},n=3){return e===void 0?n:typeof e==`number`?e:t[e]&&t[e].level!==void 0?t[e].level:n}U.prototype.add=U.prototype.addReporter,U.prototype.remove=U.prototype.removeReporter,U.prototype.clear=U.prototype.removeReporter,U.prototype.withScope=U.prototype.withTag,U.prototype.mock=U.prototype.mockTypes,U.prototype.pause=U.prototype.pauseLogs,U.prototype.resume=U.prototype.resumeLogs;function Rd(e={}){return new U(e)}function zd(e,t){let n=process.cwd()+p;return e.split(`
366
362
  `).splice(t.split(`
367
- `).length).map(e=>e.trim().replace(`file://`,``).replace(n,``))}function Md(e,t){return(t.__write||t.write).call(t,e)}const Nd=e=>e?`[${e}]`:``;var Pd=class{formatStack(e,t,n){let r=` `.repeat((n?.errorLevel||0)+1);return r+jd(e,t).join(`
363
+ `).length).map(e=>e.trim().replace(`file://`,``).replace(n,``))}function Bd(e,t){return(t.__write||t.write).call(t,e)}const Vd=e=>e?`[${e}]`:``;var Hd=class{formatStack(e,t,n){let r=` `.repeat((n?.errorLevel||0)+1);return r+zd(e,t).join(`
368
364
  ${r}`)}formatError(e,n){let r=e.message??t(n,e),i=e.stack?this.formatStack(e.stack,r,n):``,a=n?.errorLevel||0,o=a>0?`${` `.repeat(a)}[cause]: `:``,s=e.cause?`
369
365
 
370
366
  `+this.formatError(e.cause,{...n,errorLevel:a+1}):``;return o+r+`
371
367
  `+i+s}formatArgs(e,n){let r=e.map(e=>e&&typeof e.stack==`string`?this.formatError(e,n):e);return t(n,...r)}formatDate(e,t){return t.date?e.toLocaleTimeString():``}filterAndJoin(e){return e.filter(Boolean).join(` `)}formatLogObj(e,t){let n=this.formatArgs(e.args,t);return e.type===`box`?`
372
- `+[Nd(e.tag),e.title&&e.title,...n.split(`
368
+ `+[Vd(e.tag),e.title&&e.title,...n.split(`
373
369
  `)].filter(Boolean).map(e=>` > `+e).join(`
374
370
  `)+`
375
- `:this.filterAndJoin([Nd(e.type),Nd(e.tag),n])}log(e,t){return Md(this.formatLogObj(e,{columns:t.options.stdout.columns||0,...t.options.formatOptions})+`
376
- `,e.level<2?t.options.stderr||process.stderr:t.options.stdout||process.stdout)}};const{env:Fd={},argv:Id=[],platform:Ld=``}=typeof process>`u`?{}:process,Rd=`NO_COLOR`in Fd||Id.includes(`--no-color`),zd=`FORCE_COLOR`in Fd||Id.includes(`--color`),Bd=Ld===`win32`,Vd=Fd.TERM===`dumb`,Hd=_e&&_e.isatty&&_e.isatty(1)&&Fd.TERM&&!Vd,Ud=`CI`in Fd&&(`GITHUB_ACTIONS`in Fd||`GITLAB_CI`in Fd||`CIRCLECI`in Fd),Wd=!Rd&&(zd||Bd&&!Vd||Hd||Ud);function Gd(e,t,n,r,i=t.slice(0,Math.max(0,e))+r,a=t.slice(Math.max(0,e+n.length)),o=a.indexOf(n)){return i+(o<0?a:Gd(o,a,n,r))}function Kd(e,t,n,r,i){return e<0?n+t+r:n+Gd(e,t,r,i)+r}function qd(e,t,n=e,r=e.length+1){return i=>i||i!==``&&i!==void 0?Kd((``+i).indexOf(t,r),i,e,t,n):``}function G(e,t,n){return qd(`\x1B[${e}m`,`\x1B[${t}m`,n)}const Jd={reset:G(0,0),bold:G(1,22,`\x1B[22m\x1B[1m`),dim:G(2,22,`\x1B[22m\x1B[2m`),italic:G(3,23),underline:G(4,24),inverse:G(7,27),hidden:G(8,28),strikethrough:G(9,29),black:G(30,39),red:G(31,39),green:G(32,39),yellow:G(33,39),blue:G(34,39),magenta:G(35,39),cyan:G(36,39),white:G(37,39),gray:G(90,39),bgBlack:G(40,49),bgRed:G(41,49),bgGreen:G(42,49),bgYellow:G(43,49),bgBlue:G(44,49),bgMagenta:G(45,49),bgCyan:G(46,49),bgWhite:G(47,49),blackBright:G(90,39),redBright:G(91,39),greenBright:G(92,39),yellowBright:G(93,39),blueBright:G(94,39),magentaBright:G(95,39),cyanBright:G(96,39),whiteBright:G(97,39),bgBlackBright:G(100,49),bgRedBright:G(101,49),bgGreenBright:G(102,49),bgYellowBright:G(103,49),bgBlueBright:G(104,49),bgMagentaBright:G(105,49),bgCyanBright:G(106,49),bgWhiteBright:G(107,49)};function Yd(e=Wd){return e?Jd:Object.fromEntries(Object.keys(Jd).map(e=>[e,String]))}const K=Yd();function Xd(e,t=`reset`){return K[e]||K[t]}const Zd=[String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`,String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join(`|`);function Qd(e){return e.replace(new RegExp(Zd,`g`),``)}const $d={solid:{tl:`┌`,tr:`┐`,bl:`└`,br:`┘`,h:`─`,v:`│`},double:{tl:`╔`,tr:`╗`,bl:`╚`,br:`╝`,h:`═`,v:`║`},doubleSingle:{tl:`╓`,tr:`╖`,bl:`╙`,br:`╜`,h:`─`,v:`║`},doubleSingleRounded:{tl:`╭`,tr:`╮`,bl:`╰`,br:`╯`,h:`─`,v:`║`},singleThick:{tl:`┏`,tr:`┓`,bl:`┗`,br:`┛`,h:`━`,v:`┃`},singleDouble:{tl:`╒`,tr:`╕`,bl:`╘`,br:`╛`,h:`═`,v:`│`},singleDoubleRounded:{tl:`╭`,tr:`╮`,bl:`╰`,br:`╯`,h:`═`,v:`│`},rounded:{tl:`╭`,tr:`╮`,bl:`╰`,br:`╯`,h:`─`,v:`│`}},ef={borderColor:`white`,borderStyle:`rounded`,valign:`center`,padding:2,marginLeft:1,marginTop:1,marginBottom:1};function tf(e,t={}){let n={...t,style:{...ef,...t.style}},r=e.split(`
377
- `),i=[],a=Xd(n.style.borderColor),o={...typeof n.style.borderStyle==`string`?$d[n.style.borderStyle]||$d.solid:n.style.borderStyle};if(a)for(let e in o)o[e]=a(o[e]);let s=n.style.padding%2==0?n.style.padding:n.style.padding+1,c=r.length+s,l=Math.max(...r.map(e=>Qd(e).length),n.title?Qd(n.title).length:0)+s,u=l+s,d=n.style.marginLeft>0?` `.repeat(n.style.marginLeft):``;if(n.style.marginTop>0&&i.push(``.repeat(n.style.marginTop)),n.title){let e=a?a(n.title):n.title,t=o.h.repeat(Math.floor((l-Qd(n.title).length)/2)),r=o.h.repeat(l-Qd(n.title).length-Qd(t).length+s);i.push(`${d}${o.tl}${t}${e}${r}${o.tr}`)}else i.push(`${d}${o.tl}${o.h.repeat(u)}${o.tr}`);let f=n.style.valign===`center`?Math.floor((c-r.length)/2):n.style.valign===`top`?c-r.length-s:c-r.length;for(let e=0;e<c;e++)if(e<f||e>=f+r.length)i.push(`${d}${o.v}${` `.repeat(u)}${o.v}`);else{let t=r[e-f],n=` `.repeat(s),a=` `.repeat(l-Qd(t).length);i.push(`${d}${o.v}${n}${t}${a}${o.v}`)}return i.push(`${d}${o.bl}${o.h.repeat(u)}${o.br}`),n.style.marginBottom>0&&i.push(``.repeat(n.style.marginBottom)),i.join(`
378
- `)}var nf=we({kCancel:()=>Op,prompt:()=>_f});function rf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function af(){if(yf)return vf;yf=1;let e={to(e,t){return t?`[${t+1};${e+1}H`:`[${e+1}G`},move(e,t){let n=``;return e<0?n+=`[${-e}D`:e>0&&(n+=`[${e}C`),t<0?n+=`[${-t}A`:t>0&&(n+=`[${t}B`),n},up:(e=1)=>`[${e}A`,down:(e=1)=>`[${e}B`,forward:(e=1)=>`[${e}C`,backward:(e=1)=>`[${e}D`,nextLine:(e=1)=>`\x1B[E`.repeat(e),prevLine:(e=1)=>`\x1B[F`.repeat(e),left:`\x1B[G`,hide:`\x1B[?25l`,show:`\x1B[?25h`,save:`\x1B7`,restore:`\x1B8`};return vf={cursor:e,scroll:{up:(e=1)=>`\x1B[S`.repeat(e),down:(e=1)=>`\x1B[T`.repeat(e)},erase:{screen:`\x1B[2J`,up:(e=1)=>`\x1B[1J`.repeat(e),down:(e=1)=>`\x1B[J`.repeat(e),line:`\x1B[2K`,lineEnd:`\x1B[K`,lineStart:`\x1B[1K`,lines(t){let n=``;for(let r=0;r<t;r++)n+=this.line+(r<t-1?e.up():``);return t&&(n+=e.left),n}},beep:`\x07`},vf}function of(){if(Sf)return xf.exports;Sf=1;let e=process||{},t=e.argv||[],n=e.env||{},r=!(n.NO_COLOR||t.includes(`--no-color`))&&(!!n.FORCE_COLOR||t.includes(`--color`)||e.platform===`win32`||(e.stdout||{}).isTTY&&n.TERM!==`dumb`||!!n.CI),i=(e,t,n=e)=>r=>{let i=``+r,o=i.indexOf(t,e.length);return~o?e+a(i,t,n,o)+t:e+i+t},a=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},o=(e=r)=>{let t=e?i:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};return xf.exports=o(),xf.exports.createColors=o,xf.exports}function sf({onlyFirst:e=!1}={}){let t=[`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))`,`(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))`].join(`|`);return new RegExp(t,e?void 0:`g`)}function cf(e){if(typeof e!=`string`)throw TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(Cf,``)}function lf(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function uf(e,t={}){if(typeof e!=`string`||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=cf(e),e.length===0))return 0;e=e.replace(Of(),` `);let n=t.ambiguousIsNarrow?1:2,r=0;for(let t of e){let e=t.codePointAt(0);if(!(e<=31||e>=127&&e<=159||e>=768&&e<=879))switch(Ef.eastAsianWidth(t)){case`F`:case`W`:r+=2;break;case`A`:r+=n;break;default:r+=1}}return r}function df(){let e=new Map;for(let[t,n]of Object.entries(J)){for(let[t,r]of Object.entries(n))J[t]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[t]=J[t],e.set(r[0],r[1]);Object.defineProperty(J,t,{value:n,enumerable:!1})}return Object.defineProperty(J,"codes",{value:e,enumerable:!1}),J.color.close=`\x1B[39m`,J.bgColor.close=`\x1B[49m`,J.color.ansi=Af(),J.color.ansi256=jf(),J.color.ansi16m=Mf(),J.bgColor.ansi=Af(kf),J.bgColor.ansi256=jf(kf),J.bgColor.ansi16m=Mf(kf),Object.defineProperties(J,{rgbToAnsi256:{value:(e,t,n)=>e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:e=>{let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>J.rgbToAnsi256(...J.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>J.ansi256ToAnsi(J.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>J.ansi256ToAnsi(J.hexToAnsi256(e)),enumerable:!1}}),J}function ff(e,t,n){return String(e).normalize().replace(/\r\n/g,`
371
+ `:this.filterAndJoin([Vd(e.type),Vd(e.tag),n])}log(e,t){return Bd(this.formatLogObj(e,{columns:t.options.stdout.columns||0,...t.options.formatOptions})+`
372
+ `,e.level<2?t.options.stderr||process.stderr:t.options.stdout||process.stdout)}};const{env:Ud={},argv:Wd=[],platform:Gd=``}=typeof process>`u`?{}:process,Kd=`NO_COLOR`in Ud||Wd.includes(`--no-color`),qd=`FORCE_COLOR`in Ud||Wd.includes(`--color`),Jd=Gd===`win32`,Yd=Ud.TERM===`dumb`,Xd=_e&&_e.isatty&&_e.isatty(1)&&Ud.TERM&&!Yd,Zd=`CI`in Ud&&(`GITHUB_ACTIONS`in Ud||`GITLAB_CI`in Ud||`CIRCLECI`in Ud),Qd=!Kd&&(qd||Jd&&!Yd||Xd||Zd);function $d(e,t,n,r,i=t.slice(0,Math.max(0,e))+r,a=t.slice(Math.max(0,e+n.length)),o=a.indexOf(n)){return i+(o<0?a:$d(o,a,n,r))}function ef(e,t,n,r,i){return e<0?n+t+r:n+$d(e,t,r,i)+r}function tf(e,t,n=e,r=e.length+1){return i=>i||i!==``&&i!==void 0?ef((``+i).indexOf(t,r),i,e,t,n):``}function W(e,t,n){return tf(`\x1B[${e}m`,`\x1B[${t}m`,n)}const nf={reset:W(0,0),bold:W(1,22,`\x1B[22m\x1B[1m`),dim:W(2,22,`\x1B[22m\x1B[2m`),italic:W(3,23),underline:W(4,24),inverse:W(7,27),hidden:W(8,28),strikethrough:W(9,29),black:W(30,39),red:W(31,39),green:W(32,39),yellow:W(33,39),blue:W(34,39),magenta:W(35,39),cyan:W(36,39),white:W(37,39),gray:W(90,39),bgBlack:W(40,49),bgRed:W(41,49),bgGreen:W(42,49),bgYellow:W(43,49),bgBlue:W(44,49),bgMagenta:W(45,49),bgCyan:W(46,49),bgWhite:W(47,49),blackBright:W(90,39),redBright:W(91,39),greenBright:W(92,39),yellowBright:W(93,39),blueBright:W(94,39),magentaBright:W(95,39),cyanBright:W(96,39),whiteBright:W(97,39),bgBlackBright:W(100,49),bgRedBright:W(101,49),bgGreenBright:W(102,49),bgYellowBright:W(103,49),bgBlueBright:W(104,49),bgMagentaBright:W(105,49),bgCyanBright:W(106,49),bgWhiteBright:W(107,49)};function rf(e=Qd){return e?nf:Object.fromEntries(Object.keys(nf).map(e=>[e,String]))}const G=rf();function af(e,t=`reset`){return G[e]||G[t]}const of=[String.raw`[\u001B\u009B][[\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\d\/#&.:=?%@~_]+)*|[a-zA-Z\d]+(?:;[-a-zA-Z\d\/#&.:=?%@~_]*)*)?\u0007)`,String.raw`(?:(?:\d{1,4}(?:;\d{0,4})*)?[\dA-PR-TZcf-nq-uy=><~]))`].join(`|`);function sf(e){return e.replace(new RegExp(of,`g`),``)}const cf={solid:{tl:`┌`,tr:`┐`,bl:`└`,br:`┘`,h:`─`,v:`│`},double:{tl:`╔`,tr:`╗`,bl:`╚`,br:`╝`,h:`═`,v:`║`},doubleSingle:{tl:`╓`,tr:`╖`,bl:`╙`,br:`╜`,h:`─`,v:`║`},doubleSingleRounded:{tl:`╭`,tr:`╮`,bl:`╰`,br:`╯`,h:`─`,v:`║`},singleThick:{tl:`┏`,tr:`┓`,bl:`┗`,br:`┛`,h:`━`,v:`┃`},singleDouble:{tl:`╒`,tr:`╕`,bl:`╘`,br:`╛`,h:`═`,v:`│`},singleDoubleRounded:{tl:`╭`,tr:`╮`,bl:`╰`,br:`╯`,h:`═`,v:`│`},rounded:{tl:`╭`,tr:`╮`,bl:`╰`,br:`╯`,h:`─`,v:`│`}},lf={borderColor:`white`,borderStyle:`rounded`,valign:`center`,padding:2,marginLeft:1,marginTop:1,marginBottom:1};function uf(e,t={}){let n={...t,style:{...lf,...t.style}},r=e.split(`
373
+ `),i=[],a=af(n.style.borderColor),o={...typeof n.style.borderStyle==`string`?cf[n.style.borderStyle]||cf.solid:n.style.borderStyle};if(a)for(let e in o)o[e]=a(o[e]);let s=n.style.padding%2==0?n.style.padding:n.style.padding+1,c=r.length+s,l=Math.max(...r.map(e=>sf(e).length),n.title?sf(n.title).length:0)+s,u=l+s,d=n.style.marginLeft>0?` `.repeat(n.style.marginLeft):``;if(n.style.marginTop>0&&i.push(``.repeat(n.style.marginTop)),n.title){let e=a?a(n.title):n.title,t=o.h.repeat(Math.floor((l-sf(n.title).length)/2)),r=o.h.repeat(l-sf(n.title).length-sf(t).length+s);i.push(`${d}${o.tl}${t}${e}${r}${o.tr}`)}else i.push(`${d}${o.tl}${o.h.repeat(u)}${o.tr}`);let f=n.style.valign===`center`?Math.floor((c-r.length)/2):n.style.valign===`top`?c-r.length-s:c-r.length;for(let e=0;e<c;e++)if(e<f||e>=f+r.length)i.push(`${d}${o.v}${` `.repeat(u)}${o.v}`);else{let t=r[e-f],n=` `.repeat(s),a=` `.repeat(l-sf(t).length);i.push(`${d}${o.v}${n}${t}${a}${o.v}`)}return i.push(`${d}${o.bl}${o.h.repeat(u)}${o.br}`),n.style.marginBottom>0&&i.push(``.repeat(n.style.marginBottom)),i.join(`
374
+ `)}var df=we({kCancel:()=>Ip,prompt:()=>Tf});function ff(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function pf(){if(Df)return Ef;Df=1;let e={to(e,t){return t?`[${t+1};${e+1}H`:`[${e+1}G`},move(e,t){let n=``;return e<0?n+=`[${-e}D`:e>0&&(n+=`[${e}C`),t<0?n+=`[${-t}A`:t>0&&(n+=`[${t}B`),n},up:(e=1)=>`[${e}A`,down:(e=1)=>`[${e}B`,forward:(e=1)=>`[${e}C`,backward:(e=1)=>`[${e}D`,nextLine:(e=1)=>`\x1B[E`.repeat(e),prevLine:(e=1)=>`\x1B[F`.repeat(e),left:`\x1B[G`,hide:`\x1B[?25l`,show:`\x1B[?25h`,save:`\x1B7`,restore:`\x1B8`};return Ef={cursor:e,scroll:{up:(e=1)=>`\x1B[S`.repeat(e),down:(e=1)=>`\x1B[T`.repeat(e)},erase:{screen:`\x1B[2J`,up:(e=1)=>`\x1B[1J`.repeat(e),down:(e=1)=>`\x1B[J`.repeat(e),line:`\x1B[2K`,lineEnd:`\x1B[K`,lineStart:`\x1B[1K`,lines(t){let n=``;for(let r=0;r<t;r++)n+=this.line+(r<t-1?e.up():``);return t&&(n+=e.left),n}},beep:`\x07`},Ef}function mf(){if(Af)return kf.exports;Af=1;let e=process||{},t=e.argv||[],n=e.env||{},r=!(n.NO_COLOR||t.includes(`--no-color`))&&(!!n.FORCE_COLOR||t.includes(`--color`)||e.platform===`win32`||(e.stdout||{}).isTTY&&n.TERM!==`dumb`||!!n.CI),i=(e,t,n=e)=>r=>{let i=``+r,o=i.indexOf(t,e.length);return~o?e+a(i,t,n,o)+t:e+i+t},a=(e,t,n,r)=>{let i=``,a=0;do i+=e.substring(a,r)+n,a=r+t.length,r=e.indexOf(t,a);while(~r);return i+e.substring(a)},o=(e=r)=>{let t=e?i:()=>String;return{isColorSupported:e,reset:t(`\x1B[0m`,`\x1B[0m`),bold:t(`\x1B[1m`,`\x1B[22m`,`\x1B[22m\x1B[1m`),dim:t(`\x1B[2m`,`\x1B[22m`,`\x1B[22m\x1B[2m`),italic:t(`\x1B[3m`,`\x1B[23m`),underline:t(`\x1B[4m`,`\x1B[24m`),inverse:t(`\x1B[7m`,`\x1B[27m`),hidden:t(`\x1B[8m`,`\x1B[28m`),strikethrough:t(`\x1B[9m`,`\x1B[29m`),black:t(`\x1B[30m`,`\x1B[39m`),red:t(`\x1B[31m`,`\x1B[39m`),green:t(`\x1B[32m`,`\x1B[39m`),yellow:t(`\x1B[33m`,`\x1B[39m`),blue:t(`\x1B[34m`,`\x1B[39m`),magenta:t(`\x1B[35m`,`\x1B[39m`),cyan:t(`\x1B[36m`,`\x1B[39m`),white:t(`\x1B[37m`,`\x1B[39m`),gray:t(`\x1B[90m`,`\x1B[39m`),bgBlack:t(`\x1B[40m`,`\x1B[49m`),bgRed:t(`\x1B[41m`,`\x1B[49m`),bgGreen:t(`\x1B[42m`,`\x1B[49m`),bgYellow:t(`\x1B[43m`,`\x1B[49m`),bgBlue:t(`\x1B[44m`,`\x1B[49m`),bgMagenta:t(`\x1B[45m`,`\x1B[49m`),bgCyan:t(`\x1B[46m`,`\x1B[49m`),bgWhite:t(`\x1B[47m`,`\x1B[49m`),blackBright:t(`\x1B[90m`,`\x1B[39m`),redBright:t(`\x1B[91m`,`\x1B[39m`),greenBright:t(`\x1B[92m`,`\x1B[39m`),yellowBright:t(`\x1B[93m`,`\x1B[39m`),blueBright:t(`\x1B[94m`,`\x1B[39m`),magentaBright:t(`\x1B[95m`,`\x1B[39m`),cyanBright:t(`\x1B[96m`,`\x1B[39m`),whiteBright:t(`\x1B[97m`,`\x1B[39m`),bgBlackBright:t(`\x1B[100m`,`\x1B[49m`),bgRedBright:t(`\x1B[101m`,`\x1B[49m`),bgGreenBright:t(`\x1B[102m`,`\x1B[49m`),bgYellowBright:t(`\x1B[103m`,`\x1B[49m`),bgBlueBright:t(`\x1B[104m`,`\x1B[49m`),bgMagentaBright:t(`\x1B[105m`,`\x1B[49m`),bgCyanBright:t(`\x1B[106m`,`\x1B[49m`),bgWhiteBright:t(`\x1B[107m`,`\x1B[49m`)}};return kf.exports=o(),kf.exports.createColors=o,kf.exports}function hf({onlyFirst:e=!1}={}){let t=[`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))`,`(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))`].join(`|`);return new RegExp(t,e?void 0:`g`)}function gf(e){if(typeof e!=`string`)throw TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(jf,``)}function _f(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function vf(e,t={}){if(typeof e!=`string`||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=gf(e),e.length===0))return 0;e=e.replace(If(),` `);let n=t.ambiguousIsNarrow?1:2,r=0;for(let t of e){let e=t.codePointAt(0);if(!(e<=31||e>=127&&e<=159||e>=768&&e<=879))switch(Pf.eastAsianWidth(t)){case`F`:case`W`:r+=2;break;case`A`:r+=n;break;default:r+=1}}return r}function yf(){let e=new Map;for(let[t,n]of Object.entries(q)){for(let[t,r]of Object.entries(n))q[t]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},n[t]=q[t],e.set(r[0],r[1]);Object.defineProperty(q,t,{value:n,enumerable:!1})}return Object.defineProperty(q,"codes",{value:e,enumerable:!1}),q.color.close=`\x1B[39m`,q.bgColor.close=`\x1B[49m`,q.color.ansi=Rf(),q.color.ansi256=zf(),q.color.ansi16m=Bf(),q.bgColor.ansi=Rf(Lf),q.bgColor.ansi256=zf(Lf),q.bgColor.ansi16m=Bf(Lf),Object.defineProperties(q,{rgbToAnsi256:{value:(e,t,n)=>e===t&&t===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:e=>{let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[n]=t;n.length===3&&(n=[...n].map(e=>e+e).join(``));let r=Number.parseInt(n,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:e=>q.rgbToAnsi256(...q.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,n,r;if(e>=232)t=((e-232)*10+8)/255,n=t,r=t;else{e-=16;let i=e%36;t=Math.floor(e/36)/5,n=Math.floor(i/6)/5,r=i%6/5}let i=Math.max(t,n,r)*2;if(i===0)return 30;let a=30+(Math.round(r)<<2|Math.round(n)<<1|Math.round(t));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,t,n)=>q.ansi256ToAnsi(q.rgbToAnsi256(e,t,n)),enumerable:!1},hexToAnsi:{value:e=>q.ansi256ToAnsi(q.hexToAnsi256(e)),enumerable:!1}}),q}function bf(e,t,n){return String(e).normalize().replace(/\r\n/g,`
379
375
  `).split(`
380
- `).map(e=>Jf(e,t,n)).join(`
381
- `)}function pf(e,t){if(typeof e==`string`)return Yf.aliases.get(e)===t;for(let n of e)if(n!==void 0&&pf(n,t))return!0;return!1}function mf(e,t){if(e===t)return;let n=e.split(`
376
+ `).map(e=>np(e,t,n)).join(`
377
+ `)}function xf(e,t){if(typeof e==`string`)return rp.aliases.get(e)===t;for(let n of e)if(n!==void 0&&xf(n,t))return!0;return!1}function Sf(e,t){if(e===t)return;let n=e.split(`
382
378
  `),r=t.split(`
383
- `),i=[];for(let e=0;e<Math.max(n.length,r.length);e++)n[e]!==r[e]&&i.push(e);return i}function hf(e,t){let n=e;n.isTTY&&n.setRawMode(t)}function gf(){return S.platform===`win32`?!!S.env.CI||!!S.env.WT_SESSION||!!S.env.TERMINUS_SUBLIME||S.env.ConEmuTask===`{cmd::Cmder}`||S.env.TERM_PROGRAM===`Terminus-Sublime`||S.env.TERM_PROGRAM===`vscode`||S.env.TERM===`xterm-256color`||S.env.TERM===`alacritty`||S.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:S.env.TERM!==`linux`}async function _f(e,t={}){let n=e=>{if(typeof e!=`symbol`||e.toString()!==`Symbol(clack:cancel)`)return e;switch(t.cancel){case`reject`:{let e=Error(`Prompt cancelled.`);throw e.name=`ConsolaPromptCancelledError`,Error.captureStackTrace&&Error.captureStackTrace(e,_f),e}case`undefined`:return;case`null`:return null;case`symbol`:return Op;default:case`default`:return t.default??t.initial}};if(!t.type||t.type===`text`)return await wp({message:e,defaultValue:t.default,placeholder:t.placeholder,initialValue:t.initial}).then(n);if(t.type===`confirm`)return await Tp({message:e,initialValue:t.initial}).then(n);if(t.type===`select`)return await Ep({message:e,options:t.options.map(e=>typeof e==`string`?{value:e,label:e}:e),initialValue:t.initial}).then(n);if(t.type===`multiselect`)return await Dp({message:e,options:t.options.map(e=>typeof e==`string`?{value:e,label:e}:e),required:t.required,initialValues:t.initial}).then(n);throw Error(`Unknown prompt type: ${t.type}`)}var vf,yf,bf,xf,Sf,q,Cf,wf,Tf,Ef,Df,Of,kf,Af,jf,Mf,J,Nf,Pf,Ff,If,Lf,Rf,zf,Bf,Vf,Hf,Uf,Wf,Gf,Kf,qf,Jf,Yf,Xf,Zf,Qf,Y,$f,ep,tp,np,rp,ip,ap,op,sp,cp,lp,up,dp,fp,pp,mp,hp,X,gp,_p,vp,yp,bp,xp,Sp,Cp,wp,Tp,Ep,Dp,Op,kp=Ce((()=>{bf=af(),xf={exports:{}},q=rf(of()),Cf=sf(),wf={exports:{}},(function(e){var t={};e.exports=t,t.eastAsianWidth=function(e){var t=e.charCodeAt(0),n=e.length==2?e.charCodeAt(1):0,r=t;return 55296<=t&&t<=56319&&56320<=n&&n<=57343&&(t&=1023,n&=1023,r=t<<10|n,r+=65536),r==12288||65281<=r&&r<=65376||65504<=r&&r<=65510?`F`:r==8361||65377<=r&&r<=65470||65474<=r&&r<=65479||65482<=r&&r<=65487||65490<=r&&r<=65495||65498<=r&&r<=65500||65512<=r&&r<=65518?`H`:4352<=r&&r<=4447||4515<=r&&r<=4519||4602<=r&&r<=4607||9001<=r&&r<=9002||11904<=r&&r<=11929||11931<=r&&r<=12019||12032<=r&&r<=12245||12272<=r&&r<=12283||12289<=r&&r<=12350||12353<=r&&r<=12438||12441<=r&&r<=12543||12549<=r&&r<=12589||12593<=r&&r<=12686||12688<=r&&r<=12730||12736<=r&&r<=12771||12784<=r&&r<=12830||12832<=r&&r<=12871||12880<=r&&r<=13054||13056<=r&&r<=19903||19968<=r&&r<=42124||42128<=r&&r<=42182||43360<=r&&r<=43388||44032<=r&&r<=55203||55216<=r&&r<=55238||55243<=r&&r<=55291||63744<=r&&r<=64255||65040<=r&&r<=65049||65072<=r&&r<=65106||65108<=r&&r<=65126||65128<=r&&r<=65131||110592<=r&&r<=110593||127488<=r&&r<=127490||127504<=r&&r<=127546||127552<=r&&r<=127560||127568<=r&&r<=127569||131072<=r&&r<=194367||177984<=r&&r<=196605||196608<=r&&r<=262141?`W`:32<=r&&r<=126||162<=r&&r<=163||165<=r&&r<=166||r==172||r==175||10214<=r&&r<=10221||10629<=r&&r<=10630?`Na`:r==161||r==164||167<=r&&r<=168||r==170||173<=r&&r<=174||176<=r&&r<=180||182<=r&&r<=186||188<=r&&r<=191||r==198||r==208||215<=r&&r<=216||222<=r&&r<=225||r==230||232<=r&&r<=234||236<=r&&r<=237||r==240||242<=r&&r<=243||247<=r&&r<=250||r==252||r==254||r==257||r==273||r==275||r==283||294<=r&&r<=295||r==299||305<=r&&r<=307||r==312||319<=r&&r<=322||r==324||328<=r&&r<=331||r==333||338<=r&&r<=339||358<=r&&r<=359||r==363||r==462||r==464||r==466||r==468||r==470||r==472||r==474||r==476||r==593||r==609||r==708||r==711||713<=r&&r<=715||r==717||r==720||728<=r&&r<=731||r==733||r==735||768<=r&&r<=879||913<=r&&r<=929||931<=r&&r<=937||945<=r&&r<=961||963<=r&&r<=969||r==1025||1040<=r&&r<=1103||r==1105||r==8208||8211<=r&&r<=8214||8216<=r&&r<=8217||8220<=r&&r<=8221||8224<=r&&r<=8226||8228<=r&&r<=8231||r==8240||8242<=r&&r<=8243||r==8245||r==8251||r==8254||r==8308||r==8319||8321<=r&&r<=8324||r==8364||r==8451||r==8453||r==8457||r==8467||r==8470||8481<=r&&r<=8482||r==8486||r==8491||8531<=r&&r<=8532||8539<=r&&r<=8542||8544<=r&&r<=8555||8560<=r&&r<=8569||r==8585||8592<=r&&r<=8601||8632<=r&&r<=8633||r==8658||r==8660||r==8679||r==8704||8706<=r&&r<=8707||8711<=r&&r<=8712||r==8715||r==8719||r==8721||r==8725||r==8730||8733<=r&&r<=8736||r==8739||r==8741||8743<=r&&r<=8748||r==8750||8756<=r&&r<=8759||8764<=r&&r<=8765||r==8776||r==8780||r==8786||8800<=r&&r<=8801||8804<=r&&r<=8807||8810<=r&&r<=8811||8814<=r&&r<=8815||8834<=r&&r<=8835||8838<=r&&r<=8839||r==8853||r==8857||r==8869||r==8895||r==8978||9312<=r&&r<=9449||9451<=r&&r<=9547||9552<=r&&r<=9587||9600<=r&&r<=9615||9618<=r&&r<=9621||9632<=r&&r<=9633||9635<=r&&r<=9641||9650<=r&&r<=9651||9654<=r&&r<=9655||9660<=r&&r<=9661||9664<=r&&r<=9665||9670<=r&&r<=9672||r==9675||9678<=r&&r<=9681||9698<=r&&r<=9701||r==9711||9733<=r&&r<=9734||r==9737||9742<=r&&r<=9743||9748<=r&&r<=9749||r==9756||r==9758||r==9792||r==9794||9824<=r&&r<=9825||9827<=r&&r<=9829||9831<=r&&r<=9834||9836<=r&&r<=9837||r==9839||9886<=r&&r<=9887||9918<=r&&r<=9919||9924<=r&&r<=9933||9935<=r&&r<=9953||r==9955||9960<=r&&r<=9983||r==10045||r==10071||10102<=r&&r<=10111||11093<=r&&r<=11097||12872<=r&&r<=12879||57344<=r&&r<=63743||65024<=r&&r<=65039||r==65533||127232<=r&&r<=127242||127248<=r&&r<=127277||127280<=r&&r<=127337||127344<=r&&r<=127386||917760<=r&&r<=917999||983040<=r&&r<=1048573||1048576<=r&&r<=1114109?`A`:`N`},t.characterLength=function(e){var t=this.eastAsianWidth(e);return t==`F`||t==`W`||t==`A`?2:1};function n(e){return e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(e){for(var t=n(e),r=0,i=0;i<t.length;i++)r+=this.characterLength(t[i]);return r},t.slice=function(e,r,i){textLen=t.length(e),r||=0,i||=1,r<0&&(r=textLen+r),i<0&&(i=textLen+i);for(var a=``,o=0,s=n(e),c=0;c<s.length;c++){var l=s[c],u=t.length(l);if(o>=r-+(u==2)){if(o+u<=i)a+=l;else break}o+=u}return a}})(wf),Tf=wf.exports,Ef=lf(Tf),Df=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},Of=lf(Df),kf=10,Af=(e=0)=>t=>`\x1B[${t+e}m`,jf=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Mf=(e=0)=>(t,n,r)=>`\x1B[${38+e};2;${t};${n};${r}m`,J={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Object.keys(J.modifier),Nf=Object.keys(J.color),Pf=Object.keys(J.bgColor),[...Nf,...Pf],Ff=df(),If=new Set([`\x1B`,`›`]),Lf=39,Rf=`\x07`,zf=`[`,Bf=`]`,Vf=`m`,Hf=`${Bf}8;;`,Uf=e=>`${If.values().next().value}${zf}${e}${Vf}`,Wf=e=>`${If.values().next().value}${Hf}${e}${Rf}`,Gf=e=>e.split(` `).map(e=>uf(e)),Kf=(e,t,n)=>{let r=[...t],i=!1,a=!1,o=uf(cf(e[e.length-1]));for(let[t,s]of r.entries()){let c=uf(s);if(o+c<=n?e[e.length-1]+=s:(e.push(s),o=0),If.has(s)&&(i=!0,a=r.slice(t+1).join(``).startsWith(Hf)),i){a?s===Rf&&(i=!1,a=!1):s===Vf&&(i=!1);continue}o+=c,o===n&&t<r.length-1&&(e.push(``),o=0)}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},qf=e=>{let t=e.split(` `),n=t.length;for(;n>0&&!(uf(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},Jf=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=Gf(e),s=[``];for(let[r,i]of e.split(` `).entries()){n.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let e=uf(s[s.length-1]);if(r!==0&&(e>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),e=0),(e>0||n.trim===!1)&&(s[s.length-1]+=` `,e++)),n.hard&&o[r]>t){let n=t-e,a=1+Math.floor((o[r]-n-1)/t);Math.floor((o[r]-1)/t)<a&&s.push(``),Kf(s,i,t);continue}if(e+o[r]>t&&e>0&&o[r]>0){if(n.wordWrap===!1&&e<t){Kf(s,i,t);continue}s.push(``)}if(e+o[r]>t&&n.wordWrap===!1){Kf(s,i,t);continue}s[s.length-1]+=i}n.trim!==!1&&(s=s.map(e=>qf(e)));let c=[...s.join(`
384
- `)];for(let[e,t]of c.entries()){if(r+=t,If.has(t)){let{groups:t}=RegExp(`(?:\\${zf}(?<code>\\d+)m|\\${Hf}(?<uri>.*)${Rf})`).exec(c.slice(e).join(``))||{groups:{}};if(t.code!==void 0){let e=Number.parseFloat(t.code);i=e===Lf?void 0:e}else t.uri!==void 0&&(a=t.uri.length===0?void 0:t.uri)}let n=Ff.codes.get(Number(i));c[e+1]===`
385
- `?(a&&(r+=Wf(``)),i&&n&&(r+=Uf(n))):t===`
386
- `&&(i&&n&&(r+=Uf(i)),a&&(r+=Wf(a)))}return r},Yf={actions:new Set([`up`,`down`,`left`,`right`,`space`,`enter`,`cancel`]),aliases:new Map([[`k`,`up`],[`j`,`down`],[`h`,`left`],[`l`,`right`],[``,`cancel`],[`escape`,`cancel`]])},globalThis.process.platform.startsWith(`win`),Xf=Symbol(`clack:cancel`),Zf=Object.defineProperty,Qf=(e,t,n)=>t in e?Zf(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Y=(e,t,n)=>(Qf(e,typeof t==`symbol`?t:t+``,n),n),$f=class{constructor(e,t=!0){Y(this,`input`),Y(this,`output`),Y(this,`_abortSignal`),Y(this,`rl`),Y(this,`opts`),Y(this,`_render`),Y(this,`_track`,!1),Y(this,`_prevFrame`,``),Y(this,`_subscribers`,new Map),Y(this,`_cursor`,0),Y(this,`state`,`initial`),Y(this,`error`,``),Y(this,`value`);let{input:n=he,output:r=ge,render:i,signal:a,...o}=e;this.opts=o,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=i.bind(this),this._track=t,this._abortSignal=a,this.input=n,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let n=this._subscribers.get(e)??[];n.push(t),this._subscribers.set(e,n)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let n=this._subscribers.get(e)??[],r=[];for(let e of n)e.cb(...t),e.once&&r.push(()=>n.splice(n.indexOf(e),1));for(let e of r)e()}prompt(){return new Promise((e,t)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state=`cancel`,this.close(),e(Xf);this._abortSignal.addEventListener(`abort`,()=>{this.state=`cancel`,this.close()},{once:!0})}let n=new ve(0);n._write=(e,t,n)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,``),this._cursor=this.rl?.cursor??0,this.emit(`value`,this.value)),n()},this.input.pipe(n),this.rl=ye.createInterface({input:this.input,output:n,tabSize:2,prompt:``,escapeCodeTimeout:50}),ye.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on(`keypress`,this.onKeypress),hf(this.input,!0),this.output.on(`resize`,this.render),this.render(),this.once(`submit`,()=>{this.output.write(bf.cursor.show),this.output.off(`resize`,this.render),hf(this.input,!1),e(this.value)}),this.once(`cancel`,()=>{this.output.write(bf.cursor.show),this.output.off(`resize`,this.render),hf(this.input,!1),e(Xf)})})}onKeypress(e,t){if(this.state===`error`&&(this.state=`active`),t?.name&&(!this._track&&Yf.aliases.has(t.name)&&this.emit(`cursor`,Yf.aliases.get(t.name)),Yf.actions.has(t.name)&&this.emit(`cursor`,t.name)),e&&(e.toLowerCase()===`y`||e.toLowerCase()===`n`)&&this.emit(`confirm`,e.toLowerCase()===`y`),e===` `&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit(`value`,this.opts.placeholder))),e&&this.emit(`key`,e.toLowerCase()),t?.name===`return`){if(this.opts.validate){let e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state=`error`,this.rl?.write(this.value))}this.state!==`error`&&(this.state=`submit`)}pf([e,t?.name,t?.sequence],`cancel`)&&(this.state=`cancel`),(this.state===`submit`||this.state===`cancel`)&&this.emit(`finalize`),this.render(),(this.state===`submit`||this.state===`cancel`)&&this.close()}close(){this.input.unpipe(),this.input.removeListener(`keypress`,this.onKeypress),this.output.write(`
387
- `),hf(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=ff(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
388
- `).length-1;this.output.write(bf.cursor.move(-999,e*-1))}render(){let e=ff(this._render(this)??``,process.stdout.columns,{hard:!0});if(e!==this._prevFrame){if(this.state===`initial`)this.output.write(bf.cursor.hide);else{let t=mf(this._prevFrame,e);if(this.restoreCursor(),t&&t?.length===1){let n=t[0];this.output.write(bf.cursor.move(0,n)),this.output.write(bf.erase.lines(1));let r=e.split(`
389
- `);this.output.write(r[n]),this._prevFrame=e,this.output.write(bf.cursor.move(0,r.length-n-1));return}if(t&&t?.length>1){let n=t[0];this.output.write(bf.cursor.move(0,n)),this.output.write(bf.erase.down());let r=e.split(`
379
+ `),i=[];for(let e=0;e<Math.max(n.length,r.length);e++)n[e]!==r[e]&&i.push(e);return i}function Cf(e,t){let n=e;n.isTTY&&n.setRawMode(t)}function wf(){return S.platform===`win32`?!!S.env.CI||!!S.env.WT_SESSION||!!S.env.TERMINUS_SUBLIME||S.env.ConEmuTask===`{cmd::Cmder}`||S.env.TERM_PROGRAM===`Terminus-Sublime`||S.env.TERM_PROGRAM===`vscode`||S.env.TERM===`xterm-256color`||S.env.TERM===`alacritty`||S.env.TERMINAL_EMULATOR===`JetBrains-JediTerm`:S.env.TERM!==`linux`}async function Tf(e,t={}){let n=e=>{if(typeof e!=`symbol`||e.toString()!==`Symbol(clack:cancel)`)return e;switch(t.cancel){case`reject`:{let e=Error(`Prompt cancelled.`);throw e.name=`ConsolaPromptCancelledError`,Error.captureStackTrace&&Error.captureStackTrace(e,Tf),e}case`undefined`:return;case`null`:return null;case`symbol`:return Ip;default:case`default`:return t.default??t.initial}};if(!t.type||t.type===`text`)return await Mp({message:e,defaultValue:t.default,placeholder:t.placeholder,initialValue:t.initial}).then(n);if(t.type===`confirm`)return await Np({message:e,initialValue:t.initial}).then(n);if(t.type===`select`)return await Pp({message:e,options:t.options.map(e=>typeof e==`string`?{value:e,label:e}:e),initialValue:t.initial}).then(n);if(t.type===`multiselect`)return await Fp({message:e,options:t.options.map(e=>typeof e==`string`?{value:e,label:e}:e),required:t.required,initialValues:t.initial}).then(n);throw Error(`Unknown prompt type: ${t.type}`)}var Ef,Df,Of,kf,Af,K,jf,Mf,Nf,Pf,Ff,If,Lf,Rf,zf,Bf,q,Vf,Hf,Uf,Wf,Gf,Kf,qf,Jf,Yf,Xf,Zf,Qf,$f,ep,tp,np,rp,ip,ap,op,J,sp,cp,lp,up,dp,fp,pp,mp,hp,gp,_p,vp,yp,bp,xp,Sp,Cp,Y,wp,Tp,Ep,Dp,Op,kp,Ap,jp,Mp,Np,Pp,Fp,Ip,Lp=Ce((()=>{Of=pf(),kf={exports:{}},K=ff(mf()),jf=hf(),Mf={exports:{}},(function(e){var t={};e.exports=t,t.eastAsianWidth=function(e){var t=e.charCodeAt(0),n=e.length==2?e.charCodeAt(1):0,r=t;return 55296<=t&&t<=56319&&56320<=n&&n<=57343&&(t&=1023,n&=1023,r=t<<10|n,r+=65536),r==12288||65281<=r&&r<=65376||65504<=r&&r<=65510?`F`:r==8361||65377<=r&&r<=65470||65474<=r&&r<=65479||65482<=r&&r<=65487||65490<=r&&r<=65495||65498<=r&&r<=65500||65512<=r&&r<=65518?`H`:4352<=r&&r<=4447||4515<=r&&r<=4519||4602<=r&&r<=4607||9001<=r&&r<=9002||11904<=r&&r<=11929||11931<=r&&r<=12019||12032<=r&&r<=12245||12272<=r&&r<=12283||12289<=r&&r<=12350||12353<=r&&r<=12438||12441<=r&&r<=12543||12549<=r&&r<=12589||12593<=r&&r<=12686||12688<=r&&r<=12730||12736<=r&&r<=12771||12784<=r&&r<=12830||12832<=r&&r<=12871||12880<=r&&r<=13054||13056<=r&&r<=19903||19968<=r&&r<=42124||42128<=r&&r<=42182||43360<=r&&r<=43388||44032<=r&&r<=55203||55216<=r&&r<=55238||55243<=r&&r<=55291||63744<=r&&r<=64255||65040<=r&&r<=65049||65072<=r&&r<=65106||65108<=r&&r<=65126||65128<=r&&r<=65131||110592<=r&&r<=110593||127488<=r&&r<=127490||127504<=r&&r<=127546||127552<=r&&r<=127560||127568<=r&&r<=127569||131072<=r&&r<=194367||177984<=r&&r<=196605||196608<=r&&r<=262141?`W`:32<=r&&r<=126||162<=r&&r<=163||165<=r&&r<=166||r==172||r==175||10214<=r&&r<=10221||10629<=r&&r<=10630?`Na`:r==161||r==164||167<=r&&r<=168||r==170||173<=r&&r<=174||176<=r&&r<=180||182<=r&&r<=186||188<=r&&r<=191||r==198||r==208||215<=r&&r<=216||222<=r&&r<=225||r==230||232<=r&&r<=234||236<=r&&r<=237||r==240||242<=r&&r<=243||247<=r&&r<=250||r==252||r==254||r==257||r==273||r==275||r==283||294<=r&&r<=295||r==299||305<=r&&r<=307||r==312||319<=r&&r<=322||r==324||328<=r&&r<=331||r==333||338<=r&&r<=339||358<=r&&r<=359||r==363||r==462||r==464||r==466||r==468||r==470||r==472||r==474||r==476||r==593||r==609||r==708||r==711||713<=r&&r<=715||r==717||r==720||728<=r&&r<=731||r==733||r==735||768<=r&&r<=879||913<=r&&r<=929||931<=r&&r<=937||945<=r&&r<=961||963<=r&&r<=969||r==1025||1040<=r&&r<=1103||r==1105||r==8208||8211<=r&&r<=8214||8216<=r&&r<=8217||8220<=r&&r<=8221||8224<=r&&r<=8226||8228<=r&&r<=8231||r==8240||8242<=r&&r<=8243||r==8245||r==8251||r==8254||r==8308||r==8319||8321<=r&&r<=8324||r==8364||r==8451||r==8453||r==8457||r==8467||r==8470||8481<=r&&r<=8482||r==8486||r==8491||8531<=r&&r<=8532||8539<=r&&r<=8542||8544<=r&&r<=8555||8560<=r&&r<=8569||r==8585||8592<=r&&r<=8601||8632<=r&&r<=8633||r==8658||r==8660||r==8679||r==8704||8706<=r&&r<=8707||8711<=r&&r<=8712||r==8715||r==8719||r==8721||r==8725||r==8730||8733<=r&&r<=8736||r==8739||r==8741||8743<=r&&r<=8748||r==8750||8756<=r&&r<=8759||8764<=r&&r<=8765||r==8776||r==8780||r==8786||8800<=r&&r<=8801||8804<=r&&r<=8807||8810<=r&&r<=8811||8814<=r&&r<=8815||8834<=r&&r<=8835||8838<=r&&r<=8839||r==8853||r==8857||r==8869||r==8895||r==8978||9312<=r&&r<=9449||9451<=r&&r<=9547||9552<=r&&r<=9587||9600<=r&&r<=9615||9618<=r&&r<=9621||9632<=r&&r<=9633||9635<=r&&r<=9641||9650<=r&&r<=9651||9654<=r&&r<=9655||9660<=r&&r<=9661||9664<=r&&r<=9665||9670<=r&&r<=9672||r==9675||9678<=r&&r<=9681||9698<=r&&r<=9701||r==9711||9733<=r&&r<=9734||r==9737||9742<=r&&r<=9743||9748<=r&&r<=9749||r==9756||r==9758||r==9792||r==9794||9824<=r&&r<=9825||9827<=r&&r<=9829||9831<=r&&r<=9834||9836<=r&&r<=9837||r==9839||9886<=r&&r<=9887||9918<=r&&r<=9919||9924<=r&&r<=9933||9935<=r&&r<=9953||r==9955||9960<=r&&r<=9983||r==10045||r==10071||10102<=r&&r<=10111||11093<=r&&r<=11097||12872<=r&&r<=12879||57344<=r&&r<=63743||65024<=r&&r<=65039||r==65533||127232<=r&&r<=127242||127248<=r&&r<=127277||127280<=r&&r<=127337||127344<=r&&r<=127386||917760<=r&&r<=917999||983040<=r&&r<=1048573||1048576<=r&&r<=1114109?`A`:`N`},t.characterLength=function(e){var t=this.eastAsianWidth(e);return t==`F`||t==`W`||t==`A`?2:1};function n(e){return e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(e){for(var t=n(e),r=0,i=0;i<t.length;i++)r+=this.characterLength(t[i]);return r},t.slice=function(e,r,i){textLen=t.length(e),r||=0,i||=1,r<0&&(r=textLen+r),i<0&&(i=textLen+i);for(var a=``,o=0,s=n(e),c=0;c<s.length;c++){var l=s[c],u=t.length(l);if(o>=r-+(u==2)){if(o+u<=i)a+=l;else break}o+=u}return a}})(Mf),Nf=Mf.exports,Pf=_f(Nf),Ff=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},If=_f(Ff),Lf=10,Rf=(e=0)=>t=>`\x1B[${t+e}m`,zf=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Bf=(e=0)=>(t,n,r)=>`\x1B[${38+e};2;${t};${n};${r}m`,q={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Object.keys(q.modifier),Vf=Object.keys(q.color),Hf=Object.keys(q.bgColor),[...Vf,...Hf],Uf=yf(),Wf=new Set([`\x1B`,`›`]),Gf=39,Kf=`\x07`,qf=`[`,Jf=`]`,Yf=`m`,Xf=`${Jf}8;;`,Zf=e=>`${Wf.values().next().value}${qf}${e}${Yf}`,Qf=e=>`${Wf.values().next().value}${Xf}${e}${Kf}`,$f=e=>e.split(` `).map(e=>vf(e)),ep=(e,t,n)=>{let r=[...t],i=!1,a=!1,o=vf(gf(e[e.length-1]));for(let[t,s]of r.entries()){let c=vf(s);if(o+c<=n?e[e.length-1]+=s:(e.push(s),o=0),Wf.has(s)&&(i=!0,a=r.slice(t+1).join(``).startsWith(Xf)),i){a?s===Kf&&(i=!1,a=!1):s===Yf&&(i=!1);continue}o+=c,o===n&&t<r.length-1&&(e.push(``),o=0)}!o&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},tp=e=>{let t=e.split(` `),n=t.length;for(;n>0&&!(vf(t[n-1])>0);)n--;return n===t.length?e:t.slice(0,n).join(` `)+t.slice(n).join(``)},np=(e,t,n={})=>{if(n.trim!==!1&&e.trim()===``)return``;let r=``,i,a,o=$f(e),s=[``];for(let[r,i]of e.split(` `).entries()){n.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let e=vf(s[s.length-1]);if(r!==0&&(e>=t&&(n.wordWrap===!1||n.trim===!1)&&(s.push(``),e=0),(e>0||n.trim===!1)&&(s[s.length-1]+=` `,e++)),n.hard&&o[r]>t){let n=t-e,a=1+Math.floor((o[r]-n-1)/t);Math.floor((o[r]-1)/t)<a&&s.push(``),ep(s,i,t);continue}if(e+o[r]>t&&e>0&&o[r]>0){if(n.wordWrap===!1&&e<t){ep(s,i,t);continue}s.push(``)}if(e+o[r]>t&&n.wordWrap===!1){ep(s,i,t);continue}s[s.length-1]+=i}n.trim!==!1&&(s=s.map(e=>tp(e)));let c=[...s.join(`
380
+ `)];for(let[e,t]of c.entries()){if(r+=t,Wf.has(t)){let{groups:t}=RegExp(`(?:\\${qf}(?<code>\\d+)m|\\${Xf}(?<uri>.*)${Kf})`).exec(c.slice(e).join(``))||{groups:{}};if(t.code!==void 0){let e=Number.parseFloat(t.code);i=e===Gf?void 0:e}else t.uri!==void 0&&(a=t.uri.length===0?void 0:t.uri)}let n=Uf.codes.get(Number(i));c[e+1]===`
381
+ `?(a&&(r+=Qf(``)),i&&n&&(r+=Zf(n))):t===`
382
+ `&&(i&&n&&(r+=Zf(i)),a&&(r+=Qf(a)))}return r},rp={actions:new Set([`up`,`down`,`left`,`right`,`space`,`enter`,`cancel`]),aliases:new Map([[`k`,`up`],[`j`,`down`],[`h`,`left`],[`l`,`right`],[``,`cancel`],[`escape`,`cancel`]])},globalThis.process.platform.startsWith(`win`),ip=Symbol(`clack:cancel`),ap=Object.defineProperty,op=(e,t,n)=>t in e?ap(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,J=(e,t,n)=>(op(e,typeof t==`symbol`?t:t+``,n),n),sp=class{constructor(e,t=!0){J(this,`input`),J(this,`output`),J(this,`_abortSignal`),J(this,`rl`),J(this,`opts`),J(this,`_render`),J(this,`_track`,!1),J(this,`_prevFrame`,``),J(this,`_subscribers`,new Map),J(this,`_cursor`,0),J(this,`state`,`initial`),J(this,`error`,``),J(this,`value`);let{input:n=he,output:r=ge,render:i,signal:a,...o}=e;this.opts=o,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=i.bind(this),this._track=t,this._abortSignal=a,this.input=n,this.output=r}unsubscribe(){this._subscribers.clear()}setSubscriber(e,t){let n=this._subscribers.get(e)??[];n.push(t),this._subscribers.set(e,n)}on(e,t){this.setSubscriber(e,{cb:t})}once(e,t){this.setSubscriber(e,{cb:t,once:!0})}emit(e,...t){let n=this._subscribers.get(e)??[],r=[];for(let e of n)e.cb(...t),e.once&&r.push(()=>n.splice(n.indexOf(e),1));for(let e of r)e()}prompt(){return new Promise((e,t)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state=`cancel`,this.close(),e(ip);this._abortSignal.addEventListener(`abort`,()=>{this.state=`cancel`,this.close()},{once:!0})}let n=new ve(0);n._write=(e,t,n)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,``),this._cursor=this.rl?.cursor??0,this.emit(`value`,this.value)),n()},this.input.pipe(n),this.rl=ye.createInterface({input:this.input,output:n,tabSize:2,prompt:``,escapeCodeTimeout:50}),ye.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on(`keypress`,this.onKeypress),Cf(this.input,!0),this.output.on(`resize`,this.render),this.render(),this.once(`submit`,()=>{this.output.write(Of.cursor.show),this.output.off(`resize`,this.render),Cf(this.input,!1),e(this.value)}),this.once(`cancel`,()=>{this.output.write(Of.cursor.show),this.output.off(`resize`,this.render),Cf(this.input,!1),e(ip)})})}onKeypress(e,t){if(this.state===`error`&&(this.state=`active`),t?.name&&(!this._track&&rp.aliases.has(t.name)&&this.emit(`cursor`,rp.aliases.get(t.name)),rp.actions.has(t.name)&&this.emit(`cursor`,t.name)),e&&(e.toLowerCase()===`y`||e.toLowerCase()===`n`)&&this.emit(`confirm`,e.toLowerCase()===`y`),e===` `&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit(`value`,this.opts.placeholder))),e&&this.emit(`key`,e.toLowerCase()),t?.name===`return`){if(this.opts.validate){let e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state=`error`,this.rl?.write(this.value))}this.state!==`error`&&(this.state=`submit`)}xf([e,t?.name,t?.sequence],`cancel`)&&(this.state=`cancel`),(this.state===`submit`||this.state===`cancel`)&&this.emit(`finalize`),this.render(),(this.state===`submit`||this.state===`cancel`)&&this.close()}close(){this.input.unpipe(),this.input.removeListener(`keypress`,this.onKeypress),this.output.write(`
383
+ `),Cf(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let e=bf(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
384
+ `).length-1;this.output.write(Of.cursor.move(-999,e*-1))}render(){let e=bf(this._render(this)??``,process.stdout.columns,{hard:!0});if(e!==this._prevFrame){if(this.state===`initial`)this.output.write(Of.cursor.hide);else{let t=Sf(this._prevFrame,e);if(this.restoreCursor(),t&&t?.length===1){let n=t[0];this.output.write(Of.cursor.move(0,n)),this.output.write(Of.erase.lines(1));let r=e.split(`
385
+ `);this.output.write(r[n]),this._prevFrame=e,this.output.write(Of.cursor.move(0,r.length-n-1));return}if(t&&t?.length>1){let n=t[0];this.output.write(Of.cursor.move(0,n)),this.output.write(Of.erase.down());let r=e.split(`
390
386
  `).slice(n);this.output.write(r.join(`
391
- `)),this._prevFrame=e;return}this.output.write(bf.erase.down())}this.output.write(e),this.state===`initial`&&(this.state=`active`),this._prevFrame=e}}},ep=class extends $f{get cursor(){return+!this.value}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on(`value`,()=>{this.value=this._value}),this.on(`confirm`,e=>{this.output.write(bf.cursor.move(0,-1)),this.value=e,this.state=`submit`,this.close()}),this.on(`cursor`,()=>{this.value=!this.value})}},tp=Object.defineProperty,np=(e,t,n)=>t in e?tp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,rp=(e,t,n)=>(np(e,typeof t==`symbol`?t:t+``,n),n),ip=class extends $f{constructor(e){super(e,!1),rp(this,`options`),rp(this,`cursor`,0),this.options=e.options,this.value=[...e.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:t})=>t===e.cursorAt),0),this.on(`key`,e=>{e===`a`&&this.toggleAll()}),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case`down`:case`right`:this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case`space`:this.toggleValue()}})}get _value(){return this.options[this.cursor].value}toggleAll(){let e=this.value.length===this.options.length;this.value=e?[]:this.options.map(e=>e.value)}toggleValue(){let e=this.value.includes(this._value);this.value=e?this.value.filter(e=>e!==this._value):[...this.value,this._value]}},ap=Object.defineProperty,op=(e,t,n)=>t in e?ap(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sp=(e,t,n)=>(op(e,typeof t==`symbol`?t:t+``,n),n),cp=class extends $f{constructor(e){super(e,!1),sp(this,`options`),sp(this,`cursor`,0),this.options=e.options,this.cursor=this.options.findIndex(({value:t})=>t===e.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case`down`:case`right`:this.cursor=this.cursor===this.options.length-1?0:this.cursor+1}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}},lp=class extends $f{get valueWithCursor(){if(this.state===`submit`)return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let e=this.value.slice(0,this.cursor),[t,...n]=this.value.slice(this.cursor);return`${e}${q.inverse(t)}${n.join(``)}`}get cursor(){return this._cursor}constructor(e){super(e),this.on(`finalize`,()=>{this.value||=e.defaultValue})}},up=gf(),dp=(e,t)=>up?e:t,fp=dp(`❯`,`>`),pp=dp(`■`,`x`),mp=dp(`▲`,`x`),hp=dp(`✔`,`√`),X=dp(``),gp=dp(``),_p=dp(`●`,`>`),vp=dp(`○`,` `),yp=dp(`◻`,`[•]`),bp=dp(`◼`,`[+]`),xp=dp(`◻`,`[ ]`),Sp=e=>{switch(e){case`initial`:case`active`:return q.cyan(fp);case`cancel`:return q.red(pp);case`error`:return q.yellow(mp);case`submit`:return q.green(hp)}},Cp=e=>{let{cursor:t,options:n,style:r}=e,i=e.maxItems??1/0,a=Math.max(process.stdout.rows-4,0),o=Math.min(a,Math.max(i,5)),s=0;t>=s+o-3?s=Math.max(Math.min(t-o+3,n.length-o),0):t<s+2&&(s=Math.max(t-2,0));let c=o<n.length&&s>0,l=o<n.length&&s+o<n.length;return n.slice(s,s+o).map((e,n,i)=>{let a=n===0&&c,o=n===i.length-1&&l;return a||o?q.dim(`...`):r(e,n+s===t)})},wp=e=>new lp({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${q.gray(X)}
392
- ${Sp(this.state)} ${e.message}
393
- `,n=e.placeholder?q.inverse(e.placeholder[0])+q.dim(e.placeholder.slice(1)):q.inverse(q.hidden(`_`)),r=this.value?this.valueWithCursor:n;switch(this.state){case`error`:return`${t.trim()}
394
- ${q.yellow(X)} ${r}
395
- ${q.yellow(gp)} ${q.yellow(this.error)}
396
- `;case`submit`:return`${t}${q.gray(X)} ${q.dim(this.value||e.placeholder)}`;case`cancel`:return`${t}${q.gray(X)} ${q.strikethrough(q.dim(this.value??``))}${this.value?.trim()?`
397
- ${q.gray(X)}`:``}`;default:return`${t}${q.cyan(X)} ${r}
398
- ${q.cyan(gp)}
399
- `}}}).prompt(),Tp=e=>{let t=e.active??`Yes`,n=e.inactive??`No`;return new ep({active:t,inactive:n,initialValue:e.initialValue??!0,render(){let r=`${q.gray(X)}
400
- ${Sp(this.state)} ${e.message}
401
- `,i=this.value?t:n;switch(this.state){case`submit`:return`${r}${q.gray(X)} ${q.dim(i)}`;case`cancel`:return`${r}${q.gray(X)} ${q.strikethrough(q.dim(i))}
402
- ${q.gray(X)}`;default:return`${r}${q.cyan(X)} ${this.value?`${q.green(_p)} ${t}`:`${q.dim(vp)} ${q.dim(t)}`} ${q.dim(`/`)} ${this.value?`${q.dim(vp)} ${q.dim(n)}`:`${q.green(_p)} ${n}`}
403
- ${q.cyan(gp)}
404
- `}}}).prompt()},Ep=e=>{let t=(e,t)=>{let n=e.label??String(e.value);switch(t){case`selected`:return`${q.dim(n)}`;case`active`:return`${q.green(_p)} ${n} ${e.hint?q.dim(`(${e.hint})`):``}`;case`cancelled`:return`${q.strikethrough(q.dim(n))}`;default:return`${q.dim(vp)} ${q.dim(n)}`}};return new cp({options:e.options,initialValue:e.initialValue,render(){let n=`${q.gray(X)}
405
- ${Sp(this.state)} ${e.message}
406
- `;switch(this.state){case`submit`:return`${n}${q.gray(X)} ${t(this.options[this.cursor],`selected`)}`;case`cancel`:return`${n}${q.gray(X)} ${t(this.options[this.cursor],`cancelled`)}
407
- ${q.gray(X)}`;default:return`${n}${q.cyan(X)} ${Cp({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(e,n)=>t(e,n?`active`:`inactive`)}).join(`
408
- ${q.cyan(X)} `)}
409
- ${q.cyan(gp)}
410
- `}}}).prompt()},Dp=e=>{let t=(e,t)=>{let n=e.label??String(e.value);return t===`active`?`${q.cyan(yp)} ${n} ${e.hint?q.dim(`(${e.hint})`):``}`:t===`selected`?`${q.green(bp)} ${q.dim(n)}`:t===`cancelled`?`${q.strikethrough(q.dim(n))}`:t===`active-selected`?`${q.green(bp)} ${n} ${e.hint?q.dim(`(${e.hint})`):``}`:t===`submitted`?`${q.dim(n)}`:`${q.dim(xp)} ${q.dim(n)}`};return new ip({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(e){if(this.required&&e.length===0)return`Please select at least one option.
411
- ${q.reset(q.dim(`Press ${q.gray(q.bgWhite(q.inverse(` space `)))} to select, ${q.gray(q.bgWhite(q.inverse(` enter `)))} to submit`))}`},render(){let n=`${q.gray(X)}
412
- ${Sp(this.state)} ${e.message}
413
- `,r=(e,n)=>{let r=this.value.includes(e.value);return n&&r?t(e,`active-selected`):r?t(e,`selected`):t(e,n?`active`:`inactive`)};switch(this.state){case`submit`:return`${n}${q.gray(X)} ${this.options.filter(({value:e})=>this.value.includes(e)).map(e=>t(e,`submitted`)).join(q.dim(`, `))||q.dim(`none`)}`;case`cancel`:{let e=this.options.filter(({value:e})=>this.value.includes(e)).map(e=>t(e,`cancelled`)).join(q.dim(`, `));return`${n}${q.gray(X)} ${e.trim()?`${e}
414
- ${q.gray(X)}`:``}`}case`error`:{let t=this.error.split(`
415
- `).map((e,t)=>t===0?`${q.yellow(gp)} ${q.yellow(e)}`:` ${e}`).join(`
416
- `);return`${n+q.yellow(X)} ${Cp({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:r}).join(`
417
- ${q.yellow(X)} `)}
387
+ `)),this._prevFrame=e;return}this.output.write(Of.erase.down())}this.output.write(e),this.state===`initial`&&(this.state=`active`),this._prevFrame=e}}},cp=class extends sp{get cursor(){return+!this.value}get _value(){return this.cursor===0}constructor(e){super(e,!1),this.value=!!e.initialValue,this.on(`value`,()=>{this.value=this._value}),this.on(`confirm`,e=>{this.output.write(Of.cursor.move(0,-1)),this.value=e,this.state=`submit`,this.close()}),this.on(`cursor`,()=>{this.value=!this.value})}},lp=Object.defineProperty,up=(e,t,n)=>t in e?lp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,dp=(e,t,n)=>(up(e,typeof t==`symbol`?t:t+``,n),n),fp=class extends sp{constructor(e){super(e,!1),dp(this,`options`),dp(this,`cursor`,0),this.options=e.options,this.value=[...e.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:t})=>t===e.cursorAt),0),this.on(`key`,e=>{e===`a`&&this.toggleAll()}),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case`down`:case`right`:this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case`space`:this.toggleValue()}})}get _value(){return this.options[this.cursor].value}toggleAll(){let e=this.value.length===this.options.length;this.value=e?[]:this.options.map(e=>e.value)}toggleValue(){let e=this.value.includes(this._value);this.value=e?this.value.filter(e=>e!==this._value):[...this.value,this._value]}},pp=Object.defineProperty,mp=(e,t,n)=>t in e?pp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,hp=(e,t,n)=>(mp(e,typeof t==`symbol`?t:t+``,n),n),gp=class extends sp{constructor(e){super(e,!1),hp(this,`options`),hp(this,`cursor`,0),this.options=e.options,this.cursor=this.options.findIndex(({value:t})=>t===e.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on(`cursor`,e=>{switch(e){case`left`:case`up`:this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case`down`:case`right`:this.cursor=this.cursor===this.options.length-1?0:this.cursor+1}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}},_p=class extends sp{get valueWithCursor(){if(this.state===`submit`)return this.value;if(this.cursor>=this.value.length)return`${this.value}\u2588`;let e=this.value.slice(0,this.cursor),[t,...n]=this.value.slice(this.cursor);return`${e}${K.inverse(t)}${n.join(``)}`}get cursor(){return this._cursor}constructor(e){super(e),this.on(`finalize`,()=>{this.value||=e.defaultValue})}},vp=wf(),yp=(e,t)=>vp?e:t,bp=yp(`❯`,`>`),xp=yp(`■`,`x`),Sp=yp(`▲`,`x`),Cp=yp(`✔`,`√`),Y=yp(``),wp=yp(``),Tp=yp(`●`,`>`),Ep=yp(`○`,` `),Dp=yp(`◻`,`[•]`),Op=yp(`◼`,`[+]`),kp=yp(`◻`,`[ ]`),Ap=e=>{switch(e){case`initial`:case`active`:return K.cyan(bp);case`cancel`:return K.red(xp);case`error`:return K.yellow(Sp);case`submit`:return K.green(Cp)}},jp=e=>{let{cursor:t,options:n,style:r}=e,i=e.maxItems??1/0,a=Math.max(process.stdout.rows-4,0),o=Math.min(a,Math.max(i,5)),s=0;t>=s+o-3?s=Math.max(Math.min(t-o+3,n.length-o),0):t<s+2&&(s=Math.max(t-2,0));let c=o<n.length&&s>0,l=o<n.length&&s+o<n.length;return n.slice(s,s+o).map((e,n,i)=>{let a=n===0&&c,o=n===i.length-1&&l;return a||o?K.dim(`...`):r(e,n+s===t)})},Mp=e=>new _p({validate:e.validate,placeholder:e.placeholder,defaultValue:e.defaultValue,initialValue:e.initialValue,render(){let t=`${K.gray(Y)}
388
+ ${Ap(this.state)} ${e.message}
389
+ `,n=e.placeholder?K.inverse(e.placeholder[0])+K.dim(e.placeholder.slice(1)):K.inverse(K.hidden(`_`)),r=this.value?this.valueWithCursor:n;switch(this.state){case`error`:return`${t.trim()}
390
+ ${K.yellow(Y)} ${r}
391
+ ${K.yellow(wp)} ${K.yellow(this.error)}
392
+ `;case`submit`:return`${t}${K.gray(Y)} ${K.dim(this.value||e.placeholder)}`;case`cancel`:return`${t}${K.gray(Y)} ${K.strikethrough(K.dim(this.value??``))}${this.value?.trim()?`
393
+ ${K.gray(Y)}`:``}`;default:return`${t}${K.cyan(Y)} ${r}
394
+ ${K.cyan(wp)}
395
+ `}}}).prompt(),Np=e=>{let t=e.active??`Yes`,n=e.inactive??`No`;return new cp({active:t,inactive:n,initialValue:e.initialValue??!0,render(){let r=`${K.gray(Y)}
396
+ ${Ap(this.state)} ${e.message}
397
+ `,i=this.value?t:n;switch(this.state){case`submit`:return`${r}${K.gray(Y)} ${K.dim(i)}`;case`cancel`:return`${r}${K.gray(Y)} ${K.strikethrough(K.dim(i))}
398
+ ${K.gray(Y)}`;default:return`${r}${K.cyan(Y)} ${this.value?`${K.green(Tp)} ${t}`:`${K.dim(Ep)} ${K.dim(t)}`} ${K.dim(`/`)} ${this.value?`${K.dim(Ep)} ${K.dim(n)}`:`${K.green(Tp)} ${n}`}
399
+ ${K.cyan(wp)}
400
+ `}}}).prompt()},Pp=e=>{let t=(e,t)=>{let n=e.label??String(e.value);switch(t){case`selected`:return`${K.dim(n)}`;case`active`:return`${K.green(Tp)} ${n} ${e.hint?K.dim(`(${e.hint})`):``}`;case`cancelled`:return`${K.strikethrough(K.dim(n))}`;default:return`${K.dim(Ep)} ${K.dim(n)}`}};return new gp({options:e.options,initialValue:e.initialValue,render(){let n=`${K.gray(Y)}
401
+ ${Ap(this.state)} ${e.message}
402
+ `;switch(this.state){case`submit`:return`${n}${K.gray(Y)} ${t(this.options[this.cursor],`selected`)}`;case`cancel`:return`${n}${K.gray(Y)} ${t(this.options[this.cursor],`cancelled`)}
403
+ ${K.gray(Y)}`;default:return`${n}${K.cyan(Y)} ${jp({cursor:this.cursor,options:this.options,maxItems:e.maxItems,style:(e,n)=>t(e,n?`active`:`inactive`)}).join(`
404
+ ${K.cyan(Y)} `)}
405
+ ${K.cyan(wp)}
406
+ `}}}).prompt()},Fp=e=>{let t=(e,t)=>{let n=e.label??String(e.value);return t===`active`?`${K.cyan(Dp)} ${n} ${e.hint?K.dim(`(${e.hint})`):``}`:t===`selected`?`${K.green(Op)} ${K.dim(n)}`:t===`cancelled`?`${K.strikethrough(K.dim(n))}`:t===`active-selected`?`${K.green(Op)} ${n} ${e.hint?K.dim(`(${e.hint})`):``}`:t===`submitted`?`${K.dim(n)}`:`${K.dim(kp)} ${K.dim(n)}`};return new fp({options:e.options,initialValues:e.initialValues,required:e.required??!0,cursorAt:e.cursorAt,validate(e){if(this.required&&e.length===0)return`Please select at least one option.
407
+ ${K.reset(K.dim(`Press ${K.gray(K.bgWhite(K.inverse(` space `)))} to select, ${K.gray(K.bgWhite(K.inverse(` enter `)))} to submit`))}`},render(){let n=`${K.gray(Y)}
408
+ ${Ap(this.state)} ${e.message}
409
+ `,r=(e,n)=>{let r=this.value.includes(e.value);return n&&r?t(e,`active-selected`):r?t(e,`selected`):t(e,n?`active`:`inactive`)};switch(this.state){case`submit`:return`${n}${K.gray(Y)} ${this.options.filter(({value:e})=>this.value.includes(e)).map(e=>t(e,`submitted`)).join(K.dim(`, `))||K.dim(`none`)}`;case`cancel`:{let e=this.options.filter(({value:e})=>this.value.includes(e)).map(e=>t(e,`cancelled`)).join(K.dim(`, `));return`${n}${K.gray(Y)} ${e.trim()?`${e}
410
+ ${K.gray(Y)}`:``}`}case`error`:{let t=this.error.split(`
411
+ `).map((e,t)=>t===0?`${K.yellow(wp)} ${K.yellow(e)}`:` ${e}`).join(`
412
+ `);return`${n+K.yellow(Y)} ${jp({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:r}).join(`
413
+ ${K.yellow(Y)} `)}
418
414
  ${t}
419
- `}default:return`${n}${q.cyan(X)} ${Cp({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:r}).join(`
420
- ${q.cyan(X)} `)}
421
- ${q.cyan(gp)}
422
- `}}}).prompt()},`${q.gray(X)}`,Op=Symbol.for(`cancel`)}));const Ap=Object.create(null),jp=e=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?Ap:globalThis),Mp=new Proxy(Ap,{get(e,t){return jp()[t]??Ap[t]},has(e,t){return t in jp()||t in Ap},set(e,t,n){let r=jp(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;let n=jp(!0);return delete n[t],!0},ownKeys(){let e=jp(!0);return Object.keys(e)}}),Np=typeof process<`u`&&process.env&&process.env.NODE_ENV||``,Pp=[[`APPVEYOR`],[`AWS_AMPLIFY`,`AWS_APP_ID`,{ci:!0}],[`AZURE_PIPELINES`,`SYSTEM_TEAMFOUNDATIONCOLLECTIONURI`],[`AZURE_STATIC`,`INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN`],[`APPCIRCLE`,`AC_APPCIRCLE`],[`BAMBOO`,`bamboo_planKey`],[`BITBUCKET`,`BITBUCKET_COMMIT`],[`BITRISE`,`BITRISE_IO`],[`BUDDY`,`BUDDY_WORKSPACE_ID`],[`BUILDKITE`],[`CIRCLE`,`CIRCLECI`],[`CIRRUS`,`CIRRUS_CI`],[`CLOUDFLARE_PAGES`,`CF_PAGES`,{ci:!0}],[`CODEBUILD`,`CODEBUILD_BUILD_ARN`],[`CODEFRESH`,`CF_BUILD_ID`],[`DRONE`],[`DRONE`,`DRONE_BUILD_EVENT`],[`DSARI`],[`GITHUB_ACTIONS`],[`GITLAB`,`GITLAB_CI`],[`GITLAB`,`CI_MERGE_REQUEST_ID`],[`GOCD`,`GO_PIPELINE_LABEL`],[`LAYERCI`],[`HUDSON`,`HUDSON_URL`],[`JENKINS`,`JENKINS_URL`],[`MAGNUM`],[`NETLIFY`],[`NETLIFY`,`NETLIFY_LOCAL`,{ci:!1}],[`NEVERCODE`],[`RENDER`],[`SAIL`,`SAILCI`],[`SEMAPHORE`],[`SCREWDRIVER`],[`SHIPPABLE`],[`SOLANO`,`TDDIUM`],[`STRIDER`],[`TEAMCITY`,`TEAMCITY_VERSION`],[`TRAVIS`],[`VERCEL`,`NOW_BUILDER`],[`VERCEL`,`VERCEL`,{ci:!1}],[`VERCEL`,`VERCEL_ENV`,{ci:!1}],[`APPCENTER`,`APPCENTER_BUILD_ID`],[`CODESANDBOX`,`CODESANDBOX_SSE`,{ci:!1}],[`CODESANDBOX`,`CODESANDBOX_HOST`,{ci:!1}],[`STACKBLITZ`],[`STORMKIT`],[`CLEAVR`],[`ZEABUR`],[`CODESPHERE`,`CODESPHERE_APP_ID`,{ci:!0}],[`RAILWAY`,`RAILWAY_PROJECT_ID`],[`RAILWAY`,`RAILWAY_SERVICE_ID`],[`DENO-DEPLOY`,`DENO_DEPLOYMENT_ID`],[`FIREBASE_APP_HOSTING`,`FIREBASE_APP_HOSTING`,{ci:!0}]];function Fp(){if(globalThis.process?.env)for(let e of Pp){let t=e[1]||e[0];if(globalThis.process?.env[t])return{name:e[0].toLowerCase(),...e[2]}}return globalThis.process?.env?.SHELL===`/bin/jsh`&&globalThis.process?.versions?.webcontainer?{name:`stackblitz`,ci:!1}:{name:``,ci:!1}}const Ip=Fp();Ip.name;function Lp(e){return e?e!==`false`:!1}const Rp=globalThis.process?.platform||``,zp=Lp(Mp.CI)||Ip.ci!==!1,Bp=Lp(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),Vp=Lp(Mp.DEBUG),Hp=Np===`test`||Lp(Mp.TEST);Mp.MINIMAL;const Up=/^win/i.test(Rp);!Lp(Mp.NO_COLOR)&&(Lp(Mp.FORCE_COLOR)||(Bp||Up)&&Mp.TERM);const Wp=(globalThis.process?.versions?.node||``).replace(/^v/,``)||null;Number(Wp?.split(`.`)[0]);const Gp=globalThis.process||Object.create(null),Kp={versions:{}};new Proxy(Gp,{get(e,t){if(t===`env`)return Mp;if(t in e)return e[t];if(t in Kp)return Kp[t]}});const qp=globalThis.process?.release?.name===`node`,Jp=!!globalThis.Bun||!!globalThis.process?.versions?.bun,Yp=!!globalThis.Deno,Xp=!!globalThis.fastly,Zp=!!globalThis.Netlify,Qp=!!globalThis.EdgeRuntime,$p=globalThis.navigator?.userAgent===`Cloudflare-Workers`,em=[[Zp,`netlify`],[Qp,`edge-light`],[$p,`workerd`],[Xp,`fastly`],[Yp,`deno`],[Jp,`bun`],[qp,`node`]];function tm(){let e=em.find(e=>e[0]);if(e)return{name:e[1]}}tm()?.name;function nm({onlyFirst:e=!1}={}){let t=[`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))`,`(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))`].join(`|`);return new RegExp(t,e?void 0:`g`)}const rm=nm();function im(e){if(typeof e!=`string`)throw TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(rm,``)}function am(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function om(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function sm(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function cm(e){if(!Number.isSafeInteger(e))throw TypeError(`Expected a code point, got \`${typeof e}\`.`)}function lm(e,{ambiguousAsWide:t=!1}={}){return cm(e),om(e)||sm(e)||t&&am(e)?2:1}const um=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g,dm=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:e=>e.split(``)},fm=/^\p{Default_Ignorable_Code_Point}$/u;function pm(e,t={}){if(typeof e!=`string`||e.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:r=!1}=t;if(r||(e=im(e)),e.length===0)return 0;let i=0,a={ambiguousAsWide:!n};for(let{segment:t}of dm.segment(e)){let e=t.codePointAt(0);if(!(e<=31||e>=127&&e<=159)&&!(e>=8203&&e<=8207||e===65279)&&!(e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071)&&!(e>=55296&&e<=57343)&&!(e>=65024&&e<=65039)&&!fm.test(t)){if(um().test(t)){i+=2;continue}i+=lm(e,a)}}return i}function mm(){let{env:e}=S,{TERM:t,TERM_PROGRAM:n}=e;return S.platform===`win32`?!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask===`{cmd::Cmder}`||n===`Terminus-Sublime`||n===`vscode`||t===`xterm-256color`||t===`alacritty`||t===`rxvt-unicode`||t===`rxvt-unicode-256color`||e.TERMINAL_EMULATOR===`JetBrains-JediTerm`:t!==`linux`}const hm={info:`cyan`,fail:`red`,success:`green`,ready:`green`,start:`magenta`},gm={0:`red`,1:`yellow`},_m=mm(),vm=(e,t)=>_m?e:t,ym={error:vm(`✖`,`×`),fatal:vm(`✖`,`×`),ready:vm(`✔`,`√`),warn:vm(`⚠`,`‼`),info:vm(`ℹ`,`i`),success:vm(`✔`,`√`),debug:vm(`⚙`,`D`),trace:vm(`→`,`→`),fail:vm(`✖`,`×`),start:vm(`◐`,`o`),log:``};function bm(e){return typeof Intl!=`object`||!Intl.Segmenter?Qd(e).length:pm(e)}var xm=class extends Pd{formatStack(e,t,n){let r=` `.repeat((n?.errorLevel||0)+1);return`
423
- ${r}`+jd(e,t).map(e=>` `+e.replace(/^at +/,e=>K.gray(e)).replace(/\((.+)\)/,(e,t)=>`(${K.cyan(t)})`)).join(`
424
- ${r}`)}formatType(e,t,n){let r=hm[e.type]||gm[e.level]||`gray`;if(t)return wm(r)(K.black(` ${e.type.toUpperCase()} `));let i=typeof ym[e.type]==`string`?ym[e.type]:e.icon||e.type;return i?Cm(r)(i):``}formatLogObj(e,t){let[n,...r]=this.formatArgs(e.args,t).split(`
425
- `);if(e.type===`box`)return tf(Sm(n+(r.length>0?`
415
+ `}default:return`${n}${K.cyan(Y)} ${jp({options:this.options,cursor:this.cursor,maxItems:e.maxItems,style:r}).join(`
416
+ ${K.cyan(Y)} `)}
417
+ ${K.cyan(wp)}
418
+ `}}}).prompt()},`${K.gray(Y)}`,Ip=Symbol.for(`cancel`)}));const Rp=Object.create(null),zp=e=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(e?Rp:globalThis),Bp=new Proxy(Rp,{get(e,t){return zp()[t]??Rp[t]},has(e,t){return t in zp()||t in Rp},set(e,t,n){let r=zp(!0);return r[t]=n,!0},deleteProperty(e,t){if(!t)return!1;let n=zp(!0);return delete n[t],!0},ownKeys(){let e=zp(!0);return Object.keys(e)}}),Vp=typeof process<`u`&&process.env&&process.env.NODE_ENV||``,Hp=[[`APPVEYOR`],[`AWS_AMPLIFY`,`AWS_APP_ID`,{ci:!0}],[`AZURE_PIPELINES`,`SYSTEM_TEAMFOUNDATIONCOLLECTIONURI`],[`AZURE_STATIC`,`INPUT_AZURE_STATIC_WEB_APPS_API_TOKEN`],[`APPCIRCLE`,`AC_APPCIRCLE`],[`BAMBOO`,`bamboo_planKey`],[`BITBUCKET`,`BITBUCKET_COMMIT`],[`BITRISE`,`BITRISE_IO`],[`BUDDY`,`BUDDY_WORKSPACE_ID`],[`BUILDKITE`],[`CIRCLE`,`CIRCLECI`],[`CIRRUS`,`CIRRUS_CI`],[`CLOUDFLARE_PAGES`,`CF_PAGES`,{ci:!0}],[`CODEBUILD`,`CODEBUILD_BUILD_ARN`],[`CODEFRESH`,`CF_BUILD_ID`],[`DRONE`],[`DRONE`,`DRONE_BUILD_EVENT`],[`DSARI`],[`GITHUB_ACTIONS`],[`GITLAB`,`GITLAB_CI`],[`GITLAB`,`CI_MERGE_REQUEST_ID`],[`GOCD`,`GO_PIPELINE_LABEL`],[`LAYERCI`],[`HUDSON`,`HUDSON_URL`],[`JENKINS`,`JENKINS_URL`],[`MAGNUM`],[`NETLIFY`],[`NETLIFY`,`NETLIFY_LOCAL`,{ci:!1}],[`NEVERCODE`],[`RENDER`],[`SAIL`,`SAILCI`],[`SEMAPHORE`],[`SCREWDRIVER`],[`SHIPPABLE`],[`SOLANO`,`TDDIUM`],[`STRIDER`],[`TEAMCITY`,`TEAMCITY_VERSION`],[`TRAVIS`],[`VERCEL`,`NOW_BUILDER`],[`VERCEL`,`VERCEL`,{ci:!1}],[`VERCEL`,`VERCEL_ENV`,{ci:!1}],[`APPCENTER`,`APPCENTER_BUILD_ID`],[`CODESANDBOX`,`CODESANDBOX_SSE`,{ci:!1}],[`CODESANDBOX`,`CODESANDBOX_HOST`,{ci:!1}],[`STACKBLITZ`],[`STORMKIT`],[`CLEAVR`],[`ZEABUR`],[`CODESPHERE`,`CODESPHERE_APP_ID`,{ci:!0}],[`RAILWAY`,`RAILWAY_PROJECT_ID`],[`RAILWAY`,`RAILWAY_SERVICE_ID`],[`DENO-DEPLOY`,`DENO_DEPLOYMENT_ID`],[`FIREBASE_APP_HOSTING`,`FIREBASE_APP_HOSTING`,{ci:!0}]];function Up(){if(globalThis.process?.env)for(let e of Hp){let t=e[1]||e[0];if(globalThis.process?.env[t])return{name:e[0].toLowerCase(),...e[2]}}return globalThis.process?.env?.SHELL===`/bin/jsh`&&globalThis.process?.versions?.webcontainer?{name:`stackblitz`,ci:!1}:{name:``,ci:!1}}const Wp=Up();Wp.name;function Gp(e){return e?e!==`false`:!1}const Kp=globalThis.process?.platform||``,qp=Gp(Bp.CI)||Wp.ci!==!1,Jp=Gp(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),Yp=Gp(Bp.DEBUG),Xp=Vp===`test`||Gp(Bp.TEST);Bp.MINIMAL;const Zp=/^win/i.test(Kp);!Gp(Bp.NO_COLOR)&&(Gp(Bp.FORCE_COLOR)||(Jp||Zp)&&Bp.TERM);const Qp=(globalThis.process?.versions?.node||``).replace(/^v/,``)||null;Number(Qp?.split(`.`)[0]);const $p=globalThis.process||Object.create(null),em={versions:{}};new Proxy($p,{get(e,t){if(t===`env`)return Bp;if(t in e)return e[t];if(t in em)return em[t]}});const tm=globalThis.process?.release?.name===`node`,nm=!!globalThis.Bun||!!globalThis.process?.versions?.bun,rm=!!globalThis.Deno,im=!!globalThis.fastly,am=!!globalThis.Netlify,om=!!globalThis.EdgeRuntime,sm=globalThis.navigator?.userAgent===`Cloudflare-Workers`,cm=[[am,`netlify`],[om,`edge-light`],[sm,`workerd`],[im,`fastly`],[rm,`deno`],[nm,`bun`],[tm,`node`]];function lm(){let e=cm.find(e=>e[0]);if(e)return{name:e[1]}}lm()?.name;function um({onlyFirst:e=!1}={}){let t=[`[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))`,`(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))`].join(`|`);return new RegExp(t,e?void 0:`g`)}const dm=um();function fm(e){if(typeof e!=`string`)throw TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(dm,``)}function pm(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function mm(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function hm(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}function gm(e){if(!Number.isSafeInteger(e))throw TypeError(`Expected a code point, got \`${typeof e}\`.`)}function _m(e,{ambiguousAsWide:t=!1}={}){return gm(e),mm(e)||hm(e)||t&&pm(e)?2:1}const vm=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g,ym=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:e=>e.split(``)},bm=/^\p{Default_Ignorable_Code_Point}$/u;function xm(e,t={}){if(typeof e!=`string`||e.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:r=!1}=t;if(r||(e=fm(e)),e.length===0)return 0;let i=0,a={ambiguousAsWide:!n};for(let{segment:t}of ym.segment(e)){let e=t.codePointAt(0);if(!(e<=31||e>=127&&e<=159)&&!(e>=8203&&e<=8207||e===65279)&&!(e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65056&&e<=65071)&&!(e>=55296&&e<=57343)&&!(e>=65024&&e<=65039)&&!bm.test(t)){if(vm().test(t)){i+=2;continue}i+=_m(e,a)}}return i}function Sm(){let{env:e}=S,{TERM:t,TERM_PROGRAM:n}=e;return S.platform===`win32`?!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask===`{cmd::Cmder}`||n===`Terminus-Sublime`||n===`vscode`||t===`xterm-256color`||t===`alacritty`||t===`rxvt-unicode`||t===`rxvt-unicode-256color`||e.TERMINAL_EMULATOR===`JetBrains-JediTerm`:t!==`linux`}const Cm={info:`cyan`,fail:`red`,success:`green`,ready:`green`,start:`magenta`},wm={0:`red`,1:`yellow`},Tm=Sm(),Em=(e,t)=>Tm?e:t,Dm={error:Em(`✖`,`×`),fatal:Em(`✖`,`×`),ready:Em(`✔`,`√`),warn:Em(`⚠`,`‼`),info:Em(`ℹ`,`i`),success:Em(`✔`,`√`),debug:Em(`⚙`,`D`),trace:Em(`→`,`→`),fail:Em(`✖`,`×`),start:Em(`◐`,`o`),log:``};function Om(e){return typeof Intl!=`object`||!Intl.Segmenter?sf(e).length:xm(e)}var km=class extends Hd{formatStack(e,t,n){let r=` `.repeat((n?.errorLevel||0)+1);return`
419
+ ${r}`+zd(e,t).map(e=>` `+e.replace(/^at +/,e=>G.gray(e)).replace(/\((.+)\)/,(e,t)=>`(${G.cyan(t)})`)).join(`
420
+ ${r}`)}formatType(e,t,n){let r=Cm[e.type]||wm[e.level]||`gray`;if(t)return Mm(r)(G.black(` ${e.type.toUpperCase()} `));let i=typeof Dm[e.type]==`string`?Dm[e.type]:e.icon||e.type;return i?jm(r)(i):``}formatLogObj(e,t){let[n,...r]=this.formatArgs(e.args,t).split(`
421
+ `);if(e.type===`box`)return uf(Am(n+(r.length>0?`
426
422
  `+r.join(`
427
- `):``)),{title:e.title?Sm(e.title):void 0,style:e.style});let i=this.formatDate(e.date,t),a=i&&K.gray(i),o=e.badge??e.level<2,s=this.formatType(e,o,t),c=e.tag?K.gray(e.tag):``,l,u=this.filterAndJoin([s,Sm(n)]),d=this.filterAndJoin(t.columns?[c,a]:[c]),f=(t.columns||0)-bm(u)-bm(d)-2;if(l=f>0&&(t.columns||0)>=80?u+` `.repeat(f)+d:(d?`${K.gray(`[${d}]`)} `:``)+u,l+=Sm(r.length>0?`
423
+ `):``)),{title:e.title?Am(e.title):void 0,style:e.style});let i=this.formatDate(e.date,t),a=i&&G.gray(i),o=e.badge??e.level<2,s=this.formatType(e,o,t),c=e.tag?G.gray(e.tag):``,l,u=this.filterAndJoin([s,Am(n)]),d=this.filterAndJoin(t.columns?[c,a]:[c]),f=(t.columns||0)-Om(u)-Om(d)-2;if(l=f>0&&(t.columns||0)>=80?u+` `.repeat(f)+d:(d?`${G.gray(`[${d}]`)} `:``)+u,l+=Am(r.length>0?`
428
424
  `+r.join(`
429
425
  `):``),e.type===`trace`){let t=Error(`Trace: `+e.message);l+=this.formatStack(t.stack||``,t.message)}return o?`
430
426
  `+l+`
431
- `:l}};function Sm(e){return e.replace(/`([^`]+)`/gm,(e,t)=>K.cyan(t)).replace(/\s+_([^_]+)_\s+/gm,(e,t)=>` ${K.underline(t)} `)}function Cm(e=`white`){return K[e]||K.white}function wm(e=`bgWhite`){return K[`bg${e[0].toUpperCase()}${e.slice(1)}`]||K.bgWhite}function Tm(e={}){let t=Em();return process.env.CONSOLA_LEVEL&&(t=Number.parseInt(process.env.CONSOLA_LEVEL)??t),Ad({level:t,defaults:{level:t},stdout:process.stdout,stderr:process.stderr,prompt:(...e)=>Promise.resolve().then(()=>(kp(),nf)).then(t=>t.prompt(...e)),reporters:e.reporters||[e.fancy??!(zp||Hp)?new xm:new Pd],...e})}function Em(){return Vp?U.debug:Hp?U.warn:U.info}const Z=Tm(),Dm=10485760,Om=2e4,km=F().max(4096),Q=F().min(1).max(512),Am=Q.refine(e=>Array.from(e).every(e=>{let t=e.codePointAt(0)??0;return t>31&&t!==127}),`must not contain control characters`),jm=L().int().min(0).max(2**53-1),Mm=L().int().positive().max(2**53-1),Nm=L().min(0).max(1),Pm=z({name:Q,width:L().int().positive().max(16384),height:L().int().positive().max(16384)}),Fm=z({pixel:Nm,ratio:Nm}),Im=z({id:Q,browser:Q,browserVersion:Q,orchestratorRuntime:Q,operatingSystem:Q,architecture:Q,deviceScaleFactor:L().positive().max(8),locale:Q,timezone:Q,colorScheme:V([`light`,`dark`]),reducedMotion:V([`reduce`,`no-preference`]),frozenTime:Q,randomSeed:L().int().min(0).max(2**53-1),fontsFingerprint:Q,stateIsolation:H(`fresh-browser-process-per-story-side-v1`).optional(),network:z({mode:H(`allowlist`),allowedDomains:ys(Q).max(100),webRtc:H(`disabled`)})}),Lm=z({id:Q,storyId:Q,title:km,name:km,viewport:Pm,status:V([`unchanged`,`changed`,`added`,`removed`,`error`]),baseImage:km.optional(),headImage:km.optional(),diffImage:km.optional(),changedPixels:jm.optional(),diffRatio:Nm.optional(),threshold:Fm.optional(),error:km.optional()}),Rm=ys(Q).max(Om).refine(e=>new Set(e).size===e.length,`must not contain duplicates`).refine(e=>e.every((t,n)=>n===0||e[n-1]<t),`must be sorted`),zm=z({code:V([`base-manifest-missing`,`base-manifest-invalid`,`head-manifest-missing`,`head-manifest-invalid`,`changed-files-incomplete`,`manifest-incomplete`,`global-input`,`global-output`,`global-runtime`,`unknown-input`,`story-import-missing`,`story-module-missing`,`fallback-reasons-truncated`]),path:km.optional(),storyId:Q.optional(),side:V([`base`,`head`]).optional()}),Bm=z({provider:H(`github-pull-request-files`),manifestDigest:F().regex(/^[0-9a-f]{64}$/),pullRequestNumber:Mm,baseSha:F().regex(/^[0-9a-f]{40}$/),headSha:F().regex(/^[0-9a-f]{40}$/)}),Vm=F().regex(/^[0-9a-f]{64}$/),Hm=ws(`state`,[z({state:H(`valid`),digest:Vm,revision:Q}),z({state:H(`invalid`),digest:Vm.optional(),revision:Q}),z({state:H(`missing`),revision:Q})]),Um=z({base:Hm,head:Hm}),Wm=z({plannerVersion:H(1),mode:V([`full`,`affected`,`full-fallback`]),changedFilesEvidence:Bm.optional(),dependencyManifests:Um.optional(),storyIds:Rm,selectedStoryIds:Rm,skippedStoryIds:Rm,addedStoryIds:Rm.optional(),removedStoryIds:Rm.optional(),fallbackReasons:ys(zm).max(1e3)}).superRefine((e,t)=>{let n=new Set(e.storyIds),r=new Set(e.selectedStoryIds),i=new Set(e.skippedStoryIds);if((r.size+i.size!==n.size||[...r].some(e=>!n.has(e)||i.has(e))||[...i].some(e=>!n.has(e)))&&t.addIssue({code:`custom`,message:`selected and skipped stories must exactly partition the story catalog`}),e.mode!==`affected`&&i.size>0&&t.addIssue({code:`custom`,path:[`skippedStoryIds`],message:`full coverage modes cannot skip stories`}),e.mode===`full-fallback`&&e.fallbackReasons.length===0&&t.addIssue({code:`custom`,path:[`fallbackReasons`],message:`full-fallback coverage requires at least one reason`}),e.mode!==`full-fallback`&&e.fallbackReasons.length>0&&t.addIssue({code:`custom`,path:[`fallbackReasons`],message:`only full-fallback coverage can contain fallback reasons`}),e.addedStoryIds===void 0!=(e.removedStoryIds===void 0)&&t.addIssue({code:`custom`,message:`added and removed story catalogs must be provided together`}),e.addedStoryIds&&e.removedStoryIds){let i=new Set(e.addedStoryIds),a=new Set(e.removedStoryIds);([...i].some(e=>!n.has(e)||!r.has(e)||a.has(e))||[...a].some(e=>!n.has(e)||!r.has(e)))&&t.addIssue({code:`custom`,message:`added and removed stories must be disjoint selected catalog members`})}}),Gm=z({version:H(1),contentDigest:F().regex(/^[0-9a-f]{64}$/).optional(),baseRevision:Q,headRevision:Q,headBranch:Am.optional(),storybookUrl:km.refine(e=>Jm(e),`must be an HTTPS URL without credentials`).optional(),environment:Im,createdAt:Q,threshold:Fm,summary:z({total:jm,unchanged:jm,changed:jm,added:jm,removed:jm,errors:jm}),coverage:Wm.optional(),entries:B(F(),Lm)}).superRefine((e,t)=>{let n=Object.entries(e.entries);if(n.length>2e4){t.addIssue({code:`custom`,message:`Report contains more than ${Om} entries`,path:[`entries`]});return}for(let[e,r]of n)e!==r.id&&t.addIssue({code:`custom`,message:`Entry key must match entry.id`,path:[`entries`,e,`id`]});let r={unchanged:0,changed:0,added:0,removed:0,error:0};for(let t of Object.values(e.entries))r[t.status]+=1;if((e.summary.total!==n.length||e.summary.unchanged!==r.unchanged||e.summary.changed!==r.changed||e.summary.added!==r.added||e.summary.removed!==r.removed||e.summary.errors!==r.error)&&t.addIssue({code:`custom`,message:`Report summary does not match its entries`,path:[`summary`]}),e.coverage){let r=e.coverage.changedFilesEvidence;r&&(r.baseSha!==e.baseRevision||r.headSha!==e.headRevision)&&t.addIssue({code:`custom`,message:`Changed-files evidence must match the report base and head revisions`,path:[`coverage`,`changedFilesEvidence`]});let i=e.coverage.dependencyManifests;i&&(i.base.revision!==e.baseRevision||i.head.revision!==e.headRevision)&&t.addIssue({code:`custom`,message:`Dependency manifest evidence must match the report base and head revisions`,path:[`coverage`,`dependencyManifests`]});let a=new Set(e.coverage.selectedStoryIds),o=new Set(e.coverage.addedStoryIds??[]),s=new Set(e.coverage.removedStoryIds??[]);for(let[e,r]of n)a.has(r.storyId)||t.addIssue({code:`custom`,message:`Report entries must belong to selected stories`,path:[`entries`,e,`storyId`]}),o.has(r.storyId)&&r.status!==`added`&&r.status!==`error`&&t.addIssue({code:`custom`,message:`Entries for an added story must be added or error snapshots`,path:[`entries`,e,`status`]}),s.has(r.storyId)&&r.status!==`removed`&&r.status!==`error`&&t.addIssue({code:`custom`,message:`Entries for a removed story must be removed or error snapshots`,path:[`entries`,e,`status`]})}});function Km(e){let t=Gm.safeParse(e);if(!t.success){let e=t.error.issues[0],n=e?.path.length?` at ${e.path.join(`.`)}`:``;throw Error(`Invalid Kapture report${n}: ${e?.message??`unknown error`}`)}return t.data}async function qm(e){let t=f(e),n=await oe(t);if(!n.isFile()||n.size>10485760)throw Error(`Kapture report must be a file no larger than ${Dm} bytes`);let r;try{r=JSON.parse(await x(t,`utf8`))}catch{throw Error(`Kapture report does not contain valid JSON`)}return Km(r)}function Jm(e){try{let t=new URL(e);return t.protocol===`https:`&&!t.username&&!t.password}catch{return!1}}const Ym=26214400,Xm=Buffer.from([137,80,78,71,13,10,26,10]),Zm=new Set([`acTL`,`fcTL`,`fdAT`]),Qm=[`baseImage`,`headImage`,`diffImage`],$m=T({meta:{name:`build`,description:`Rebuild a trusted static report from an untrusted Kapture artifact`},args:{input:{type:`string`,required:!0,description:`Untrusted artifact report directory containing report.json and images`},output:{type:`string`,required:!0,description:`New directory for the trusted static report`},"storybook-url":{type:`string`,description:`Trusted HTTPS Storybook preview URL used by dashboard story links`}},async run({args:e}){let t=await eh({inputDir:e.input,outputDir:e.output,storybookUrl:e[`storybook-url`]});Z.success(`Trusted report: ${t.report.summary.total} snapshots, ${t.imageCount} verified PNGs (${t.imageBytes} bytes)`),Z.info(`Output: ${t.outputDir}`)}});async function eh(e){let t=f(e.inputDir),n=f(e.outputDir),r=th(e.trustedHeadBranch);if(await fh(t),hh(t,n))throw Error(`Trusted report output must be outside the untrusted input directory`);await ph(n);let i=e.dashboardDir?f(e.dashboardDir):f(a(me(import.meta.url)),`dashboard`),o=a(n);await y(o,{recursive:!0});let s=await te(`${o}${p}.kapture-report-`),c;try{c=await rh(t,async(e,t)=>{let n=f(s,e.relativePath);await y(a(n),{recursive:!0}),await se(n,t,{flag:`wx`})});let{report:o,imageDigests:l,calculatedContentDigest:u}=c;if(o.contentDigest&&o.contentDigest!==u)throw Error(`Report content digest does not match its referenced PNGs: expected ${o.contentDigest}, calculated ${u}`);r?o.headBranch=r:delete o.headBranch;let d=Uu(e.storybookUrl);d?o.storybookUrl=d:delete o.storybookUrl,o.contentDigest=Tc(o,l),await se(f(s,`report.json`),`${JSON.stringify(o)}\n`,{flag:`wx`}),await Du(i,s),await ie(s,n)}catch(e){throw await ae(s,{recursive:!0,force:!0}),e}if(!c)throw Error(`Trusted report validation did not complete`);return{report:c.report,outputDir:n,imageCount:c.references.length,imageBytes:c.imageBytes}}function th(e){if(e!==void 0){if(e.length<1||e.length>512||Array.from(e).some(e=>{let t=e.codePointAt(0)??0;return t<=31||t===127}))throw Error(`Trusted head branch must contain between 1 and 512 non-control characters`);return e}}async function nh(e,t){if(!/^[0-9a-f]{64}$/.test(t))throw Error(`Expected trusted report content digest must be a lowercase SHA-256 digest`);let n=f(e);if(n!==f(a(n),`report.json`))throw Error(`Trusted report path must end in report.json`);let r=a(n);await fh(r);let i=await rh(r);if(i.report.contentDigest!==t||i.calculatedContentDigest!==t)throw Error(`Trusted report content digest does not match its actual structure and referenced PNGs`);return i.report}async function rh(e,t){let n=ih(await mh(e,`report.json`,Dm)),r=ah(n);if(r.length>6e4)throw Error(`Report references more than 60000 PNG images`);let i=new Map,a=[],o=0;for(let n of r){let r=await mh(e,n.relativePath,Ym);if(o+=r.byteLength,o>536870912)throw Error(`Referenced PNGs exceed 536870912 total bytes`);i.set(n.relativePath,lh(r,n.relativePath)),a.push({path:n.relativePath,sha256:m(`sha256`).update(r).digest(`hex`)}),await t?.(n,r)}return dh(n,i),{report:n,references:r,imageDigests:a,imageBytes:o,calculatedContentDigest:Tc(n,a)}}function ih(e){let t;try{t=JSON.parse(e.toString(`utf8`))}catch{throw Error(`Input report.json does not contain valid JSON`)}return Km(t)}function ah(e){let t=new Map;for(let n of Object.values(e.entries)){let e=oh(n.status);for(let r of Qm){let i=n[r];if(e.has(r)&&!i)throw Error(`Report entry ${n.id} is missing ${r} for status ${n.status}`);if(!e.has(r)&&i)throw Error(`Report entry ${n.id} cannot contain ${r} for status ${n.status}`);if(!i)continue;let a=ch(i,sh(r),n.id),o=t.get(a);if(o&&o.entryId!==n.id)throw Error(`Report entries ${o.entryId} and ${n.id} reference the same PNG: ${a}`);t.set(a,{relativePath:a,entryId:n.id})}}return[...t.values()]}function oh(e){return e===`changed`?new Set(Qm):e===`added`?new Set([`headImage`]):e===`removed`?new Set([`baseImage`]):new Set}function sh(e){return e===`baseImage`?`base`:e===`headImage`?`head`:`diff`}function ch(e,t,n){let r=`images/${t}/`,i=e.slice(r.length);if(!e.startsWith(r)||!i||i.includes(`/`)||i.includes(`\\`)||i.length>255||!/^[a-zA-Z0-9][a-zA-Z0-9._-]*\.png$/.test(i))throw Error(`Report entry ${n} has an invalid ${t} PNG path: ${e}`);return e}function lh(e,t){if(e.byteLength<33||!e.subarray(0,8).equals(Xm))throw Error(`Referenced image is not a PNG: ${t}`);let n=e.readUInt32BE(8),r=e.toString(`ascii`,12,16);if(n!==13||r!==`IHDR`)throw Error(`Referenced PNG has an invalid IHDR chunk: ${t}`);let i=e.readUInt32BE(16),a=e.readUInt32BE(20);if(i<1||a<1||i>16384||a>32768||i*a>33554432)throw Error(`Referenced PNG dimensions are outside the supported limits: ${t} (${i}x${a})`);uh(e,t);try{let t=$s.PNG.sync.read(e,{checkCRC:!0,skipRescale:!0});if(t.width!==i||t.height!==a)throw Error(`decoded dimensions differ from IHDR`)}catch{throw Error(`Referenced PNG cannot be decoded safely: ${t}`)}return{width:i,height:a}}function uh(e,t){let n=Xm.byteLength,r=!1;for(;n+12<=e.byteLength;){let i=e.readUInt32BE(n),a=e.toString(`ascii`,n+4,n+8),o=n+12+i;if(o>e.byteLength)throw Error(`Referenced PNG has an invalid chunk boundary: ${t}`);if(Zm.has(a))throw Error(`Animated PNG is not supported in a static report: ${t}`);if(n=o,a===`IEND`){r=!0;break}}if(!r||n!==e.byteLength)throw Error(`Referenced PNG has an invalid chunk structure: ${t}`)}function dh(e,t){for(let n of Object.values(e.entries)){if(n.status!==`changed`||!n.baseImage||!n.headImage||!n.diffImage)continue;let e=t.get(n.baseImage),r=t.get(n.headImage),i=t.get(n.diffImage);if(!e||!r||!i)throw Error(`Report entry ${n.id} is missing validated PNG dimensions`);let a=Math.max(e.width,r.width),o=Math.max(e.height,r.height);if(i.width!==a||i.height!==o)throw Error(`Report entry ${n.id} diff PNG must match the padded comparison canvas ${a}x${o}`);if(n.changedPixels!==void 0&&n.changedPixels>a*o)throw Error(`Report entry ${n.id} changedPixels exceeds its diff PNG pixel count`)}}async function fh(e){let t;try{t=await v(e)}catch(t){throw gh(t)?Error(`Input report directory does not exist: ${e}`):t}if(t.isSymbolicLink()||!t.isDirectory())throw Error(`Input report path must be a real directory, not a symbolic link`)}async function ph(e){try{await v(e)}catch(e){if(gh(e))return;throw e}throw Error(`Trusted report output already exists: ${e}`)}async function mh(e,t,n){if(s(t)||t.includes(`\\`))throw Error(`Input file must be a normalized relative path: ${t}`);let r=t.split(`/`),i=e;for(let[e,n]of r.entries()){if(!n||n===`.`||n===`..`)throw Error(`Input file must be a normalized relative path: ${t}`);i=f(i,n);let a;try{a=await v(i)}catch(e){throw gh(e)?Error(`Referenced input file does not exist: ${t}`):e}if(a.isSymbolicLink())throw Error(`Referenced input path cannot contain a symbolic link: ${t}`);let o=e===r.length-1;if(!o&&!a.isDirectory()||o&&!a.isFile())throw Error(`Referenced input path is not a regular file: ${t}`)}let a=pe.O_RDONLY|(pe.O_NOFOLLOW??0),o=await b(i,a);try{let e=await o.stat();if(!e.isFile()||e.size>n)throw Error(`Input file exceeds ${n} bytes: ${t}`);let r=Buffer.alloc(e.size),i=0;for(;i<r.byteLength;){let{bytesRead:e}=await o.read(r,i,r.byteLength-i,i);if(e===0)throw Error(`Input file changed while being read: ${t}`);i+=e}let a=Buffer.alloc(1),{bytesRead:s}=await o.read(a,0,1,r.byteLength);if(s>0)throw Error(`Input file changed while being read: ${t}`);return r}finally{await o.close()}}function hh(e,t){let n=d(e,t);return n===``||!n.startsWith(`..${p}`)&&n!==`..`&&!s(n)}function gh(e){return typeof e==`object`&&!!e&&`code`in e&&e.code===`ENOENT`}function _h(e,t){return yh(e,t).map(({path:e,compressedBytes:t,uncompressedBytes:n})=>({path:e,compressedBytes:t,uncompressedBytes:n}))}async function vh(e,t,n){let r=yh(e,n),i=f(t);await y(i,{recursive:!0});for(let t of r){let n=e.subarray(t.dataOffset,t.dataOffset+t.compressedBytes),r=t.compression===0?Buffer.from(n):xe(n,{maxOutputLength:t.uncompressedBytes+1});if(r.byteLength!==t.uncompressedBytes)throw Error(`ZIP entry size mismatch: ${t.path}`);if(be(r)!==t.crc)throw Error(`ZIP entry checksum mismatch: ${t.path}`);let o=f(i,t.path);if(!o.startsWith(`${i}${p}`))throw Error(`ZIP entry escapes the output directory: ${t.path}`);await y(a(o),{recursive:!0}),await se(o,r,{flag:`wx`})}return r}function yh(e,t){wh(t);let n=bh(e),r=e.readUInt16LE(n+4),i=e.readUInt16LE(n+6),a=e.readUInt16LE(n+8),o=e.readUInt16LE(n+10),s=e.readUInt32LE(n+12),c=e.readUInt32LE(n+16),l=e.readUInt16LE(n+20);if(n+22+l!==e.byteLength)throw Error(`ZIP end record does not match the archive size`);if(r!==0||i!==0||a!==o)throw Error(`Multi-disk ZIP archives are not supported`);if(o===65535||s===4294967295||c===4294967295)throw Error(`ZIP64 archives are not supported`);if(o>t.maxEntries)throw Error(`ZIP archive contains more than ${t.maxEntries} entries`);if(c+s!==n)throw Error(`ZIP central directory is malformed`);let u=[],d=new Set,f=c,p=0;for(let r=0;r<o;r+=1){if(f+46>n||e.readUInt32LE(f)!==33639248)throw Error(`ZIP central directory entry is malformed`);let r=e.readUInt16LE(f+4),i=e.readUInt16LE(f+8),a=e.readUInt16LE(f+10),o=e.readUInt32LE(f+16),s=e.readUInt32LE(f+20),l=e.readUInt32LE(f+24),m=e.readUInt16LE(f+28),h=e.readUInt16LE(f+30),g=e.readUInt16LE(f+32),_=e.readUInt16LE(f+34),ee=e.readUInt32LE(f+38),v=e.readUInt32LE(f+42),y=f+46+m+h+g;if(y>n)throw Error(`ZIP central directory entry exceeds its bounds`);if(i&1)throw Error(`Encrypted ZIP entries are not supported`);if(a!==0&&a!==8)throw Error(`ZIP compression method ${a} is not supported`);if(_!==0)throw Error(`Multi-disk ZIP entries are not supported`);if(s===4294967295||l===4294967295||v===4294967295)throw Error(`ZIP64 entries are not supported`);let te=e.subarray(f+46,f+46+m),b=Sh(te);f=y;let x=b.endsWith(`/`);if(Ch(r,ee,b,x),d.has(b))throw Error(`ZIP archive contains duplicate path: ${b}`);if(d.add(b),x){if(!t.allowDirectoryPath(b))throw Error(`ZIP archive contains unexpected directory: ${b}`);if(i&8||a!==0||o!==0||s!==0||l!==0)throw Error(`ZIP directory entry must be empty and stored: ${b}`);xh(e,v,te,i,a,o,s,l,c);continue}if(!t.allowPath(b))throw Error(`ZIP archive contains unexpected path: ${b}`);if(l>t.maxFileBytes)throw Error(`ZIP entry exceeds ${t.maxFileBytes} bytes: ${b}`);if(p+=l,p>t.maxTotalBytes)throw Error(`ZIP archive exceeds ${t.maxTotalBytes} uncompressed bytes`);let ne=xh(e,v,te,i,a,o,s,l,c);u.push({path:b,compression:a,crc:o,compressedBytes:s,uncompressedBytes:l,dataOffset:ne})}if(f!==n)throw Error(`ZIP central directory size is inconsistent`);return u}function bh(e){let t=Math.max(0,e.byteLength-65557);for(let n=e.byteLength-22;n>=t;--n)if(e.readUInt32LE(n)===101010256)return n;throw Error(`ZIP end-of-central-directory record is missing`)}function xh(e,t,n,r,i,a,o,s,c){if(t+30>c||e.readUInt32LE(t)!==67324752)throw Error(`ZIP local entry header is malformed`);let l=e.readUInt16LE(t+6),u=e.readUInt16LE(t+8),d=e.readUInt32LE(t+14),f=e.readUInt32LE(t+18),p=e.readUInt32LE(t+22),m=e.readUInt16LE(t+26),h=e.readUInt16LE(t+28),g=t+30+m+h;if(g>c)throw Error(`ZIP local entry header exceeds its bounds`);let _=e.subarray(t+30,t+30+m);if(l!==r||u!==i||!_.equals(n))throw Error(`ZIP local and central directory entries do not match`);if(!(l&8)&&(d!==a||f!==o||p!==s))throw Error(`ZIP local and central directory sizes or checksum do not match`);if(g+o>c)throw Error(`ZIP entry data exceeds the archive bounds`);return g}function Sh(e){let t=e.toString(`utf8`);if(!Buffer.from(t,`utf8`).equals(e))throw Error(`ZIP path is not valid UTF-8`);let n=t.endsWith(`/`),r=t.split(`/`),i=n?r.slice(0,-1):r;if(t.length<1||t.startsWith(`/`)||t.includes(`\\`)||t.includes(`\0`)||i.some(e=>!e||e===`.`||e===`..`)||Array.from(t).some(e=>{let t=e.codePointAt(0)??0;return t<=31||t===127}))throw Error(`ZIP path is unsafe: ${JSON.stringify(t)}`);return t}function Ch(e,t,n,r){if(e>>>8!=3)return;let i=t>>>16&61440;if(i!==0&&i!==(r?16384:32768))throw Error(r?`ZIP entry is not a directory: ${n}`:`ZIP entry is not a regular file: ${n}`)}function wh(e){for(let[t,n]of Object.entries({maxEntries:e.maxEntries,maxFileBytes:e.maxFileBytes,maxTotalBytes:e.maxTotalBytes}))if(!Number.isSafeInteger(n)||n<=0)throw Error(`${t} must be positive`)}function Th(e,t){let n=Nh(e,`GitHub pull_request event`),r=Nh(n.pull_request,`pull_request`),i=Oh(Nh(n.repository,`repository`)),a=Nh(r.base,`pull_request.base`),o=Nh(r.head,`pull_request.head`),s=Oh(Nh(a.repo,`pull_request.base.repo`)),c=Nh(o.repo,`pull_request.head.repo`),l=Ah(a.ref,`pull_request.base.ref`),u=Ah(o.ref,`pull_request.head.ref`),d=jh(r.number,`pull request number`);if(s!==i)throw Error(`Pull request base repository must match the workflow repository`);if(t!==void 0&&l!==Ah(t,`base branch`))throw Error(`Pull request targets ${l}, expected ${t}`);return{schemaVersion:1,runId:jh(n.run_id??process.env.GITHUB_RUN_ID,`workflow run ID`),prNumber:d,base:{repository:s,ref:l,sha:kh(a.sha,`pull_request.base.sha`)},head:{repository:Oh(c),repositoryId:jh(c.id,`head repository ID`),ref:u,sha:kh(o.sha,`pull_request.head.sha`)},preview:{branch:u,alias:Dh(d,u)}}}function Eh(e){return`pr-${e.prNumber}-base-${e.base.sha}-head-${e.head.sha}`}function Dh(e,t){let n=`pr-${jh(e,`pull request number`)}-`,r=Ah(t,`head branch`),i=r.normalize(`NFKD`).toLowerCase().replace(/[^a-z0-9-]+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``),a=`-${m(`sha256`).update(r).digest(`hex`).slice(0,10)}`,o=Math.max(1,63-n.length-a.length);return`${n}${(i||`branch`).slice(0,o).replace(/-$/g,``)||`b`}${a}`}function Oh(e){let t=Mh(e.full_name,`repository full name`);if(!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(t))throw Error(`GitHub event contains an invalid repository full name`);return t}function kh(e,t){let n=Mh(e,t).toLowerCase();if(!/^[0-9a-f]{40}$/.test(n))throw Error(`${t} must be a full SHA`);return n}function Ah(e,t){let n=Mh(e,t);if(n.length<1||n.length>512)throw Error(`${t} is invalid`);for(let e of n){let n=e.codePointAt(0)??0;if(n<=31||n===127)throw Error(`${t} is invalid`)}return n}function jh(e,t){let n=typeof e==`string`&&/^[1-9][0-9]*$/.test(e)?Number(e):e;if(typeof n!=`number`||!Number.isSafeInteger(n)||n<=0)throw Error(`${t} must be a positive integer`);return n}function Mh(e,t){if(typeof e!=`string`)throw Error(`${t} must be a string`);return e}function Nh(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}const Ph=3e3;async function Fh(e,t){let n=await e.getPullRequestForCapture(t.prNumber);Rh(n,t);let r=Yh(n.changed_files,`pull request changed_files`),i=[],a=[],o=0;if(r>3e3)i.push({code:`github-file-limit`});else for(let n=1;n<=Math.ceil(r/100);n+=1){let s=await e.listPullRequestFilesPage(t.prNumber,n,100);if(o=n,!Array.isArray(s)){i.push({code:`pagination-incomplete`,page:n});break}let c=s.slice(0,100);s.length>100&&i.push({code:`pagination-incomplete`,page:n});for(let[e,t]of c.entries())a.push({value:t,page:n,index:e});if(c.length<100){a.length<r&&i.push({code:`pagination-incomplete`,page:n});break}}a.length!==r&&i.push({code:`file-count-mismatch`});let s=new Set,c=new Set;for(let e of a)zh(e,s,c,i);let l=await e.getPullRequestForCapture(t.prNumber);if(Rh(l,t),l.changed_files!==r)throw Error(`Pull request changed while Kapture discovered changed files`);let u=Hh(i);return{kind:`kapture-changed-files`,version:1,complete:u.length===0,pullRequest:{number:t.prNumber,baseSha:t.base.sha,headSha:t.head.sha},files:[...s].sort(),source:{provider:`github-pull-request-files`,expectedFileCount:r,fetchedFileCount:a.length,pageCount:o,perPage:100,maxFiles:Ph},diagnostics:u}}function Ih(e){let t=Xh(e,`changed-files manifest`);if(Kh(t,[`kind`,`version`,`complete`,`pullRequest`,`files`,`source`,`diagnostics`],`changed-files manifest`),t.kind!==`kapture-changed-files`||t.version!==1)throw Error(`changed-files manifest must use kapture-changed-files version 1`);if(typeof t.complete!=`boolean`)throw Error(`changed-files manifest complete must be a boolean`);if(!Array.isArray(t.files)||t.files.length>6e3)throw Error(`changed-files manifest files must be a bounded array`);let n=t.files.map(e=>Lh(e,`changed file path`));if(!Uh(n))throw Error(`changed-files manifest files must be unique and sorted`);let r=Xh(t.pullRequest,`changed-files manifest pullRequest`);Kh(r,[`number`,`baseSha`,`headSha`],`changed-files manifest pullRequest`);let i=Xh(t.source,`changed-files manifest source`);if(Kh(i,[`provider`,`expectedFileCount`,`fetchedFileCount`,`pageCount`,`perPage`,`maxFiles`],`changed-files manifest source`),i.provider!==`github-pull-request-files`)throw Error(`changed-files manifest source provider is invalid`);if(i.perPage!==100||i.maxFiles!==3e3)throw Error(`changed-files manifest source limits are invalid`);if(!Array.isArray(t.diagnostics)||t.diagnostics.length>6e3)throw Error(`changed-files manifest diagnostics must be a bounded array`);let a=t.diagnostics.map(Vh);if(!Uh(a.map(Wh)))throw Error(`changed-files manifest diagnostics must be unique and sorted`);if(t.complete!==(a.length===0))throw Error(`changed-files manifest completeness disagrees with diagnostics`);let o=Yh(i.expectedFileCount,`changed-files expected file count`),s=Yh(i.fetchedFileCount,`changed-files fetched file count`),c=Yh(i.pageCount,`changed-files page count`);if(s>3e3||c>30||s>c*100||n.length>s*2)throw Error(`changed-files manifest source counts are inconsistent`);if(t.complete&&(o!==s||o>3e3||c!==Math.ceil(s/100)||n.length<s))throw Error(`complete changed-files manifest source counts are inconsistent`);return{kind:`kapture-changed-files`,version:1,complete:t.complete,pullRequest:{number:Jh(r.number,`changed-files pull request number`),baseSha:qh(r.baseSha,`changed-files base SHA`),headSha:qh(r.headSha,`changed-files head SHA`)},files:n,source:{provider:`github-pull-request-files`,expectedFileCount:o,fetchedFileCount:s,pageCount:c,perPage:100,maxFiles:Ph},diagnostics:a}}function Lh(e,t=`GitHub file path`){if(typeof e!=`string`)throw Error(`${t} must be a string`);let n=Array.from(e);if(e.length===0||e.length>4096||e.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(e)||e.startsWith(`./`)||e===`.`||e===`..`||e.startsWith(`../`)||e.endsWith(`/`)||e.includes(`//`)||e.includes(`\\`)||e.split(`/`).some(e=>e===`.`||e===`..`)||n.some(e=>{let t=e.codePointAt(0)??0;return t<=31||t>=127&&t<=159}))throw Error(`${t} must be a normalized project-relative path`);return e}function Rh(e,t){let n=e.head.repo;if(e.number!==t.prNumber||e.state!==`open`||e.base.ref!==t.base.ref||e.base.sha.toLowerCase()!==t.base.sha||e.base.repo.full_name!==t.base.repository||e.head.ref!==t.head.ref||e.head.sha.toLowerCase()!==t.head.sha||n?.id!==t.head.repositoryId||n.full_name!==t.head.repository)throw Error(`Live pull request does not match the exact Kapture capture context`)}function zh(e,t,n,r){if(!e.value||typeof e.value!=`object`||Array.isArray(e.value)){r.push({code:`invalid-file-record`,page:e.page,index:e.index});return}let i=e.value;if(typeof i.status!=`string`||typeof i.filename!=`string`){r.push({code:`invalid-file-record`,page:e.page,index:e.index});return}let a=JSON.stringify([i.status,i.filename,i.previous_filename]);if(n.has(a)&&r.push({code:`duplicate-file-entry`,page:e.page,index:e.index}),n.add(a),Bh(i.filename,e,t,r),i.status===`renamed`||i.previous_filename!==void 0){if(typeof i.previous_filename!=`string`){r.push({code:`rename-source-missing`,page:e.page,index:e.index});return}Bh(i.previous_filename,e,t,r)}}function Bh(e,t,n,r){try{n.add(Lh(e))}catch{r.push({code:`invalid-file-path`,page:t.page,index:t.index})}}function Vh(e){let t=Xh(e,`changed-files diagnostic`);if(Kh(t,[`code`,`page`,`index`],`changed-files diagnostic`,!0),typeof t.code!=`string`||![`github-file-limit`,`pagination-incomplete`,`file-count-mismatch`,`invalid-file-record`,`invalid-file-path`,`rename-source-missing`,`duplicate-file-entry`].includes(t.code))throw Error(`changed-files diagnostic code is invalid`);let n=t.page===void 0?void 0:Jh(t.page,`page`),r=t.index===void 0?void 0:Yh(t.index,`diagnostic index`),i={code:t.code,...n===void 0?{}:{page:n},...r===void 0?{}:{index:r}};if(i.code===`github-file-limit`||i.code===`file-count-mismatch`?n!==void 0||r!==void 0:i.code===`pagination-incomplete`?n===void 0||n>30||r!==void 0:n===void 0||n>30||r===void 0||r>=100)throw Error(`changed-files diagnostic location is invalid`);return i}function Hh(e){return[...new Map(e.map(e=>[JSON.stringify(e),e])).values()].sort((e,t)=>Gh(Wh(e),Wh(t)))}function Uh(e){return e.every((t,n)=>n===0||(e[n-1]??``)<t)}function Wh(e){return`${e.code}:${String(e.page??0).padStart(2,`0`)}:${String(e.index??0).padStart(3,`0`)}`}function Gh(e,t){return e<t?-1:+(e>t)}function Kh(e,t,n,r=!1){let i=Object.keys(e).sort(),a=r?i.filter(e=>t.includes(e)).sort():[...t].sort();if(i.some(e=>!t.includes(e))||!r&&(i.length!==a.length||i.some((e,t)=>e!==a[t])))throw Error(`${n} contains unexpected or missing fields`)}function qh(e,t){if(typeof e!=`string`||!/^[0-9a-f]{40}$/.test(e))throw Error(`${t} must be a full lowercase SHA`);return e}function Jh(e,t){let n=Yh(e,t);if(n===0)throw Error(`${t} must be a positive integer`);return n}function Yh(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative integer`);return e}function Xh(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}const Zh=/^[0-9a-f]{40}$/,Qh=/^sha256:[0-9a-f]{64}$/,$h=/^[0-9a-f]{64}$/,eg=/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/,tg=/^\.github\/workflows\/[A-Za-z0-9_./-]+\.ya?ml$/,ng=/^images\/(?:base|head|diff)\/[A-Za-z0-9][A-Za-z0-9._-]*\.png$/,rg=F().min(1).max(512).refine(e=>!u_(e),`must not contain control characters`),ig=F().regex(Zh),ag=L().int().positive().max(2**53-1),og=F().regex(eg),sg=F().regex(Qh),cg=z({schemaVersion:H(1),runId:ag,prNumber:ag,base:z({repository:og,ref:rg,sha:ig}),head:z({repository:og,repositoryId:ag,ref:rg,sha:ig}),preview:z({branch:rg,alias:rg})}),lg=z({id:ag,name:rg,sizeInBytes:ag,digest:sg}),ug=z({id:ag,name:rg,digest:sg}),dg=z({schemaVersion:H(1),artifacts:z({context:ug,baseStorybook:ug,headStorybook:ug})}),fg=z({schemaVersion:H(2),repository:z({id:ag,fullName:og}),context:cg,captureRun:z({id:ag,runNumber:ag,attempt:ag,workflowId:ag,workflowPath:rg,headSha:ig,headBranch:rg,headRepositoryId:ag,headRepository:og}),artifacts:z({context:lg,baseStorybook:lg,headStorybook:lg,report:lg}),report:z({contentDigest:F().regex($h)}),trustedArtifactName:rg});async function pg(e,t){let n=n_(t.captureWorkflowPath),r=o_(t.baseBranch,`base branch`),i=f(t.outputDir),a=f(t.receiptPath);if(p_(i,a))throw Error(`Trusted receipt must be outside the publicly deployed report directory`);await t_(a,`Trusted receipt`);let o=gg(t.event,n),s=await e.getWorkflowRun(o.run.id);Rg(s,o),await vg(e,s);let c=yg(await e.listRunArtifacts(s.id),o),l=await $g(t.temporaryRoot),u=!1;try{let d=await Sg(e,c.context,33685504),p=f(l,`context`);Eg(d),await vh(d,p,Cg);let m=await Ag(f(p,`context.json`)),h=await jg(f(p,`changed-files.json`),m);Ng(m,c.context),Pg(m,o,s,r),Ig(await e.getPullRequest(m.prNumber),m,o,r),await Lg(e,m,n);let g=await Sg(e,c.report,629145600),_=f(l,`untrusted-report`);Dg(g),await vh(g,_,Tg),kg(await Og(f(_,`capture-boundary.json`)),c);let ee=await qm(f(_,`report.json`));Mg(ee,h),await md(e,Zg(o,m),ee);let v=await eh({inputDir:_,outputDir:i,trustedHeadBranch:m.head.ref,...t.storybookUrl?{storybookUrl:t.storybookUrl}:{},...t.dashboardDir?{dashboardDir:f(t.dashboardDir)}:{}});if(u=!0,!v.report.contentDigest)throw Error(`Trusted report build did not produce an image-bound content digest`);await Xg(e,o,s,m,r,n);let y=zg(o,s,m,c,v.report);return await e_(a,y),{receipt:y,report:v.report,reportDirectory:i,reportPath:f(i,`report.json`),receiptPath:a,changedFiles:h}}catch(e){throw u&&await ae(i,{recursive:!0,force:!0}),e}finally{await ae(l,{recursive:!0,force:!0})}}async function mg(e,t,n){let r=await _g(n.receiptPath),i=gg(n.event,r.captureRun.workflowPath);Hg(r,i);let a=await e.getWorkflowRun(r.captureRun.id);Ug(a,r),await vg(e,a),await Wg(e,r,i),Ig(await e.getPullRequest(r.context.prNumber),r.context,i,r.context.base.ref),await Lg(e,r.context,r.captureRun.workflowPath);let o=await nh(n.reportPath,r.report.contentDigest);if(o.headBranch!==r.context.head.ref)throw Error(`Trusted report branch does not match its verified pull request context`);let s=Zg(i,r.context);return await md(e,s,o),hd(t,s,o,n.statusContext,n.reportUrl,n.commentLanguage)}async function hg(e,t){let n=await _g(t.receiptPath),r=gg(t.event,n.captureRun.workflowPath);Hg(n,r),Ug(await e.getWorkflowRun(n.captureRun.id),n);let i=t.trustedArtifactId,a=t.trustedArtifactDigest?Jg(t.trustedArtifactDigest):void 0,o=[i,a];if(o.some(e=>e!==void 0)&&o.some(e=>e===void 0))throw Error(`trusted-artifact-id and trusted-artifact-digest must be provided together`);if(i!==void 0&&!l_(i))throw Error(`trusted-artifact-id must be a positive integer`);let s=i!==void 0&&a!==void 0?Yg():void 0,c=[];for(let t of Gg(n)){let n=await e.getArtifact(t.id);n&&(Kg(n,t,r),c.push({artifact:n,expected:t}))}if(i!==void 0&&a!==void 0&&s!==void 0){if(Gg(n).some(e=>e.id===i))throw Error(`trusted-artifact-id must not duplicate a source artifact ID`);let t=await e.getArtifact(i);t&&(qg(t,a,s,n),c.push({artifact:t,expected:{id:t.id,name:t.name,sizeInBytes:t.sizeInBytes,digest:t.digest}}))}let l=[...new Set(c.map(({artifact:e})=>e.id))];for(let t of l)await e.deleteArtifact(t);return l}function gg(e,t){let n=d_(e,`GitHub workflow_run event`);if(n.action!==`completed`)throw Error(`Kapture trusted run requires a completed workflow_run event`);let r=d_(n.repository,`event repository`),i=r_(r.full_name,`event repository`),a=i_(i),o=c_(r.id,`event repository ID`),s=d_(n.workflow_run,`workflow_run`),c=n_(s_(s.path,`workflow path`));if(c!==n_(t))throw Error(`workflow_run path ${c} does not match ${t}`);if(s.status!==`completed`||s.conclusion!==`success`||s.event!==`pull_request`)throw Error(`Kapture trusted run requires one successful pull_request capture run`);let l=d_(s.head_repository,`workflow_run head repository`),u=f_(s.pull_requests,`workflow_run pull_requests`);if(u.length>1)throw Error(`workflow_run must contain at most one pull request`);let d=u[0]?Qg(u[0]):void 0;return{repository:{id:o,fullName:i,ref:a},run:{id:c_(s.id,`workflow run ID`),runNumber:c_(s.run_number,`workflow run number`),attempt:c_(s.run_attempt,`workflow run attempt`),workflowId:c_(s.workflow_id,`workflow ID`),workflowPath:c,status:`completed`,conclusion:`success`,event:`pull_request`,headSha:a_(s.head_sha,`workflow run head SHA`),headBranch:o_(s.head_branch,`workflow run head branch`),headRepository:{id:c_(l.id,`workflow run head repository ID`),fullName:r_(l.full_name,`workflow run head repository`)}},...d?{pullRequest:d}:{}}}async function _g(e){let t=f(e),n=await oe(t);if(!n.isFile()||n.size<1||n.size>65536)throw Error(`Trusted receipt must be a file no larger than 65536 bytes`);let r;try{r=JSON.parse(await x(t,`utf8`))}catch{throw Error(`Trusted receipt does not contain valid JSON`)}let i=fg.safeParse(r);if(!i.success){let e=i.error.issues[0];throw Error(`Invalid trusted receipt${e?.path.length?` at ${e.path.join(`.`)}`:``}: ${e?.message??`unknown error`}`)}return Vg(i.data),i.data}async function vg(e,t){let n=(await e.listWorkflowRuns(t.workflowId,t.headBranch)).filter(e=>e.headRepositoryId===t.headRepository.id).reduce((e,t)=>e?t.runNumber===e.runNumber?t.id>e.id?t:e:t.runNumber>e.runNumber?t:e:t,void 0);if(!n||n.id!==t.id)throw Error(`A newer Kapture capture run owns this repository and branch`)}function yg(e,t){let n=/^kapture-context-pr-([1-9][0-9]*)-base-([0-9a-f]{40})-head-([0-9a-f]{40})$/,r=e.filter(e=>n.test(e.name)?xg(e,t):!1);if(r.length!==1||!r[0])throw Error(`Triggering run must contain exactly one immutable Kapture context artifact`);let i=r[0];if(i.sizeInBytes>33685504)throw Error(`Kapture context artifact exceeds its compressed size limit`);let a=i.name.match(n);if(!a?.[1]||!a[2]||!a[3])throw Error(`Kapture context artifact name is invalid`);let o=`kapture-visual-report-pr-${a[1]}-base-${a[2]}-head-${a[3]}`,s=e.filter(e=>e.name===o&&xg(e,t));if(s.length!==1||!s[0])throw Error(`Triggering run must contain exactly one matching Kapture report artifact`);if(s[0].sizeInBytes>629145600)throw Error(`Kapture report artifact exceeds its compressed size limit`);let c=`pr-${a[1]}-base-${a[2]}-head-${a[3]}`,l=bg(e,`kapture-storybook-base-${c}`,t),u=bg(e,`kapture-storybook-head-${c}`,t),d=[i,l,u,s[0]];if(new Set(d.map(e=>e.id)).size!==d.length||new Set(d.map(e=>e.name)).size!==d.length)throw Error(`Kapture artifact IDs and names must be distinct`);return{context:i,baseStorybook:l,headStorybook:u,report:s[0]}}function bg(e,t,n){let r=e.filter(e=>e.name===t&&xg(e,n));if(r.length!==1||!r[0])throw Error(`Triggering run must contain exactly one non-expired ${t} artifact`);if(r[0].sizeInBytes>536870912)throw Error(`${t} exceeds its compressed size limit`);return r[0]}function xg(e,t){return!e.expired&&e.workflowRun.id===t.run.id&&e.workflowRun.repositoryId===t.repository.id&&e.workflowRun.headRepositoryId===t.run.headRepository.id&&e.workflowRun.headBranch===t.run.headBranch&&e.workflowRun.headSha===t.run.headSha&&Qh.test(e.digest)&&l_(e.id)&&l_(e.sizeInBytes)}async function Sg(e,t,n){let r=await e.downloadArtifactArchive(t.id,n);if(r.byteLength!==t.sizeInBytes)throw Error(`Artifact ${t.id} download size does not match GitHub metadata`);if(`sha256:${m(`sha256`).update(r).digest(`hex`)}`!==t.digest)throw Error(`Artifact ${t.id} download digest does not match GitHub metadata`);return r}const Cg={maxEntries:2,maxFileBytes:33554432,maxTotalBytes:33619968,allowPath:e=>e===`context.json`||e===`changed-files.json`,allowDirectoryPath:()=>!1},wg=new Set([`images/`,`images/base/`,`images/head/`,`images/diff/`]),Tg={maxEntries:60006,maxFileBytes:Ym,maxTotalBytes:629145600,allowPath:e=>e===`report.json`||e===`capture-boundary.json`||ng.test(e),allowDirectoryPath:e=>wg.has(e)};function Eg(e){let t=_h(e,Cg);if(t.length!==2)throw Error(`Context archive must contain exactly context.json and changed-files.json`);let n=t.find(e=>e.path===`context.json`),r=t.find(e=>e.path===`changed-files.json`);if(!n||n.uncompressedBytes<1||n.uncompressedBytes>65536||!r||r.uncompressedBytes<1||r.uncompressedBytes>33554432)throw Error(`Context archive entries are outside their fixed size contract`)}function Dg(e){let t=_h(e,Tg),n=new Set,r=0,i=0;for(let e of t){let t=e.path.toLocaleLowerCase(`en-US`);if(n.has(t))throw Error(`Report archive contains a case-insensitive duplicate: ${e.path}`);if(n.add(t),e.uncompressedBytes<1)throw Error(`Report archive contains an empty file: ${e.path}`);if(e.path===`report.json`&&(r+=1,e.uncompressedBytes>10485760))throw Error(`report.json exceeds its uncompressed size limit`);if(e.path===`capture-boundary.json`&&(i+=1,e.uncompressedBytes>65536))throw Error(`capture-boundary.json exceeds its uncompressed size limit`)}if(r!==1)throw Error(`Report archive must contain one root report.json file`);if(i!==1)throw Error(`Report archive must contain one root capture-boundary.json file`)}async function Og(e){let t;try{t=JSON.parse(await x(e,`utf8`))}catch(e){throw Error(`capture-boundary.json must contain valid JSON`,{cause:e})}return dg.parse(t)}function kg(e,t){for(let n of[`context`,`baseStorybook`,`headStorybook`]){let r=e.artifacts[n],i=t[n];if(i.id!==r.id||i.name!==r.name||i.digest!==r.digest)throw Error(`Capture ${n} artifact does not match its exact downloaded identity`)}}async function Ag(e){let t;try{t=JSON.parse(await x(e,`utf8`))}catch{throw Error(`Kapture context artifact does not contain valid JSON`)}let n=cg.safeParse(t);if(!n.success){let e=n.error.issues[0];throw Error(`Invalid Kapture capture context${e?.path.length?` at ${e.path.join(`.`)}`:``}: ${e?.message??`unknown error`}`)}if(n.data.preview.branch!==n.data.head.ref||n.data.preview.alias!==Dh(n.data.prNumber,n.data.head.ref))throw Error(`Kapture context preview identity is not derived from its pull request branch`);return n.data}async function jg(e,t){let n=await oe(e);if(!n.isFile()||n.size<1||n.size>33554432)throw Error(`changed-files.json is outside its fixed size contract`);let r;try{r=JSON.parse(await x(e,`utf8`))}catch{throw Error(`changed-files.json does not contain valid JSON`)}let i=Ih(r);if(i.pullRequest.number!==t.prNumber||i.pullRequest.baseSha!==t.base.sha||i.pullRequest.headSha!==t.head.sha)throw Error(`changed-files.json does not belong to the exact capture context`);return i}function Mg(e,t){let n=e.coverage;if(!n)throw Error(`Trusted workflow reports must include audited story coverage`);let r=n.changedFilesEvidence;if(!r)throw Error(`Trusted workflow report coverage must include changed-files evidence`);let i=m(`sha256`).update(JSON.stringify(t)).digest(`hex`);if(r.provider!==t.source.provider||r.manifestDigest!==i||r.pullRequestNumber!==t.pullRequest.number||r.baseSha!==t.pullRequest.baseSha||r.headSha!==t.pullRequest.headSha)throw Error(`Trusted workflow report changed-files evidence does not match its verified context manifest`)}function Ng(e,t){let n=`kapture-context-${Eh(e)}`;if(t.name!==n)throw Error(`Kapture context contents do not match the immutable artifact name`)}function Pg(e,t,n,r){if(e.runId!==n.id||e.base.repository!==t.repository.fullName||e.base.ref!==r||e.head.repository!==n.headRepository.fullName||e.head.repositoryId!==n.headRepository.id||e.head.ref!==n.headBranch)throw Error(`Kapture capture context does not belong to the triggering workflow run`);Fg(t,e)}function Fg(e,t){let n=e.pullRequest;if(n&&(n.number!==t.prNumber||n.base.repositoryId!==e.repository.id||n.base.ref!==t.base.ref||n.base.sha!==t.base.sha||n.head.repositoryId!==t.head.repositoryId||n.head.ref!==t.head.ref||n.head.sha!==t.head.sha))throw Error(`workflow_run pull request metadata conflicts with the capture context`)}function Ig(e,t,n,r){if(e.number!==t.prNumber||e.state!==`open`||e.base.repository.id!==n.repository.id||e.base.repository.fullName!==t.base.repository||e.base.ref!==r||e.base.sha!==t.base.sha||e.head.repository.id!==t.head.repositoryId||e.head.repository.fullName!==t.head.repository||e.head.ref!==t.head.ref||e.head.sha!==t.head.sha)throw Error(`Kapture artifacts are stale or do not belong to the current open pull request`);Fg(n,t)}async function Lg(e,t,n){let[r,i]=await Promise.all([e.getContentSha(t.base.repository,n,t.base.sha),e.getContentSha(t.head.repository,n,t.head.sha)]);if(!Zh.test(r)||i!==r)throw Error(`Pull requests that modify the capture workflow require separate review before publishing`)}function Rg(e,t){if(e.id!==t.run.id||e.runNumber!==t.run.runNumber||e.runAttempt!==t.run.attempt||e.workflowId!==t.run.workflowId||e.path!==t.run.workflowPath||e.status!==`completed`||e.conclusion!==`success`||e.event!==`pull_request`||e.headSha!==t.run.headSha||e.headBranch!==t.run.headBranch||e.headRepository.id!==t.run.headRepository.id||e.headRepository.fullName!==t.run.headRepository.fullName||e.repository.id!==t.repository.id||e.repository.fullName!==t.repository.fullName)throw Error(`Triggering capture run metadata changed or no longer matches the event`)}function zg(e,t,n,r,i){if(!i.contentDigest)throw Error(`Trusted report is missing contentDigest`);if(i.headBranch!==n.head.ref)throw Error(`Trusted report branch does not match its verified pull request context`);let a=Eh(n);return{schemaVersion:2,repository:{id:e.repository.id,fullName:e.repository.fullName},context:n,captureRun:{id:t.id,runNumber:t.runNumber,attempt:t.runAttempt,workflowId:t.workflowId,workflowPath:t.path,headSha:t.headSha,headBranch:t.headBranch,headRepositoryId:t.headRepository.id,headRepository:t.headRepository.fullName},artifacts:{context:Bg(r.context),baseStorybook:Bg(r.baseStorybook),headStorybook:Bg(r.headStorybook),report:Bg(r.report)},report:{contentDigest:i.contentDigest},trustedArtifactName:`kapture-trusted-report-${a}`}}function Bg(e){return{id:e.id,name:e.name,sizeInBytes:e.sizeInBytes,digest:e.digest}}function Vg(e){let t=Eh(e.context);if(e.context.runId!==e.captureRun.id||e.context.base.repository!==e.repository.fullName||e.context.head.repository!==e.captureRun.headRepository||e.context.head.repositoryId!==e.captureRun.headRepositoryId||e.context.head.ref!==e.captureRun.headBranch||e.context.preview.branch!==e.context.head.ref||e.context.preview.alias!==Dh(e.context.prNumber,e.context.head.ref)||e.artifacts.context.name!==`kapture-context-${t}`||e.artifacts.baseStorybook.name!==`kapture-storybook-base-${t}`||e.artifacts.headStorybook.name!==`kapture-storybook-head-${t}`||e.artifacts.report.name!==`kapture-visual-report-${t}`||e.trustedArtifactName!==`kapture-trusted-report-${t}`||new Set(Gg(e).map(e=>e.id)).size!==4||new Set(Gg(e).map(e=>e.name)).size!==4||e.artifacts.context.sizeInBytes>33685504||e.artifacts.baseStorybook.sizeInBytes>536870912||e.artifacts.headStorybook.sizeInBytes>536870912||e.artifacts.report.sizeInBytes>629145600||!tg.test(e.captureRun.workflowPath))throw Error(`Trusted receipt fields are not internally consistent`)}function Hg(e,t){if(Vg(e),e.repository.id!==t.repository.id||e.repository.fullName!==t.repository.fullName||e.captureRun.id!==t.run.id||e.captureRun.runNumber!==t.run.runNumber||e.captureRun.attempt!==t.run.attempt||e.captureRun.workflowId!==t.run.workflowId||e.captureRun.workflowPath!==t.run.workflowPath||e.captureRun.headSha!==t.run.headSha||e.captureRun.headBranch!==t.run.headBranch||e.captureRun.headRepositoryId!==t.run.headRepository.id||e.captureRun.headRepository!==t.run.headRepository.fullName)throw Error(`Trusted receipt does not belong to the triggering workflow_run event`);Fg(t,e.context)}function Ug(e,t){if(e.id!==t.captureRun.id||e.runNumber!==t.captureRun.runNumber||e.runAttempt!==t.captureRun.attempt||e.workflowId!==t.captureRun.workflowId||e.path!==t.captureRun.workflowPath||e.status!==`completed`||e.conclusion!==`success`||e.event!==`pull_request`||e.headSha!==t.captureRun.headSha||e.headBranch!==t.captureRun.headBranch||e.headRepository.id!==t.captureRun.headRepositoryId||e.headRepository.fullName!==t.captureRun.headRepository||e.repository.id!==t.repository.id||e.repository.fullName!==t.repository.fullName)throw Error(`Capture run changed after prepare-run verification`)}async function Wg(e,t,n){let r=await e.listRunArtifacts(t.captureRun.id);for(let e of Gg(t)){let t=r.filter(t=>t.id===e.id);if(t.length!==1||!t[0])throw Error(`Receipt-bound artifact ${e.id} is no longer available`);Kg(t[0],e,n)}}function Gg(e){return[e.artifacts.context,e.artifacts.baseStorybook,e.artifacts.headStorybook,e.artifacts.report]}function Kg(e,t,n){if(e.id!==t.id||e.name!==t.name||e.sizeInBytes!==t.sizeInBytes||e.digest!==t.digest||!xg(e,n))throw Error(`Artifact ${t.id} no longer matches its trusted receipt binding`)}function qg(e,t,n,r){if(e.expired||e.name!==r.trustedArtifactName||e.digest!==t||e.workflowRun.id!==n||e.workflowRun.repositoryId!==r.repository.id||e.workflowRun.headRepositoryId!==r.repository.id||e.sizeInBytes>629145600)throw Error(`Trusted report artifact does not match the exact cleanup binding`)}function Jg(e){let t=e.startsWith(`sha256:`)?e:`sha256:${e}`;if(!Qh.test(t))throw Error(`trusted-artifact-digest must be a 64-character SHA-256 digest`);return t}function Yg(){let e=process.env.GITHUB_RUN_ID;if(!e||!/^[1-9][0-9]*$/.test(e))throw Error(`GITHUB_RUN_ID must identify the current trusted reporter workflow run`);let t=Number(e);if(!Number.isSafeInteger(t))throw Error(`GITHUB_RUN_ID must be a safe positive integer`);return t}async function Xg(e,t,n,r,i,a){let o=await e.getWorkflowRun(n.id);Rg(o,t),await vg(e,o),Ig(await e.getPullRequest(r.prNumber),r,t,i),await Lg(e,r,a)}function Zg(e,t){return{repository:e.repository.ref,issueNumber:t.prNumber,headSha:t.head.sha,captureRunId:e.run.id,captureRunAttempt:e.run.attempt,captureWorkflowId:e.run.workflowId,captureRunHeadBranch:e.run.headBranch,captureRunHeadRepositoryId:e.run.headRepository.id}}function Qg(e){let t=d_(e,`workflow_run pull request`),n=d_(t.base,`workflow_run pull request base`),r=d_(t.head,`workflow_run pull request head`);return{number:c_(t.number,`workflow_run pull request number`),base:{repositoryId:c_(d_(n.repo,`workflow_run pull request base repository`).id,`workflow_run pull request base repository ID`),ref:o_(n.ref,`workflow_run pull request base ref`),sha:a_(n.sha,`workflow_run pull request base SHA`)},head:{repositoryId:c_(d_(r.repo,`workflow_run pull request head repository`).id,`workflow_run pull request head repository ID`),ref:o_(r.ref,`workflow_run pull request head ref`),sha:a_(r.sha,`workflow_run pull request head SHA`)}}}async function $g(e){let t=f(e??process.env.RUNNER_TEMP??de());return await y(t,{recursive:!0}),te(`${t}${p}kapture-prepare-`)}async function e_(e,t){let n=f(e),r=f(n,`..`);await y(r,{recursive:!0}),await se(n,`${JSON.stringify(t,null,2)}\n`,{flag:`wx`})}async function t_(e,t){try{await oe(e)}catch(e){if(e.code===`ENOENT`)return;throw e}throw Error(`${t} already exists: ${e}`)}function n_(e){if(!tg.test(e)||e.includes(`//`)||e.includes(`..`))throw Error(`capture-workflow-path must be a safe .github/workflows YAML path`);return e}function r_(e,t){let n=s_(e,`${t} full name`);if(!eg.test(n))throw Error(`${t} full name is invalid`);return n}function i_(e){let[t,n,...r]=e.split(`/`);if(!t||!n||r.length>0)throw Error(`Repository full name is invalid`);return{owner:t,repo:n}}function a_(e,t){let n=s_(e,t);if(!Zh.test(n))throw Error(`${t} must be a lowercase full SHA`);return n}function o_(e,t){let n=s_(e,t);if(u_(n))throw Error(`${t} contains control characters`);return n}function s_(e,t){if(typeof e!=`string`||e.length<1||e.length>512)throw Error(`${t} must be a non-empty bounded string`);return e}function c_(e,t){if(!l_(e))throw Error(`${t} must be a positive integer`);return e}function l_(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function u_(e){return Array.from(e).some(e=>{let t=e.codePointAt(0)??0;return t<=31||t===127})}function d_(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function f_(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e}function p_(e,t){let n=d(e,t);return n===``||!s(n)&&n!==`..`&&!n.startsWith(`..${p}`)}var m_=class{#e;#t;#n;constructor(e,t,n=fetch){if(!e)throw Error(`GITHUB_TOKEN is required`);this.#e=e,this.#t=t,this.#n=n}async getWorkflowRun(e){return g_(await this.#i(`GET`,`${this.#r()}/actions/runs/${e}`))}async listWorkflowRuns(e,t){let n=[];for(let r=1;r<=10;r+=1){let i=new URLSearchParams({event:`pull_request`,branch:t,per_page:`100`,page:String(r)}),a=C_(S_(await this.#i(`GET`,`${this.#r()}/actions/workflows/${e}/runs?${i}`),`workflow runs response`).workflow_runs,`workflow_runs`).map(__);if(n.push(...a),a.length<100)return n}throw Error(`GitHub returned more than 1000 workflow runs`)}async listRunArtifacts(e){let t=[];for(let n=1;n<=10;n+=1){let r=new URLSearchParams({per_page:`100`,page:String(n)}),i=C_(S_(await this.#i(`GET`,`${this.#r()}/actions/runs/${e}/artifacts?${r}`),`artifacts response`).artifacts,`artifacts`).map(v_);if(t.push(...i),i.length<100)return t}throw Error(`GitHub returned more than 1000 workflow artifacts`)}async getArtifact(e){let t=await this.#o(`GET`,`${this.#r()}/actions/artifacts/${e}`);return t.status===404?null:(await h_(t,`GET`,`/actions/artifacts/${e}`),v_(await t.json()))}async downloadArtifactArchive(e,t){if(!Number.isSafeInteger(t)||t<=0)throw Error(`Artifact download byte limit must be positive`);let n=await this.#o(`GET`,`${this.#r()}/actions/artifacts/${e}/zip`,`manual`),r=await this.#a(n,e);await h_(r,`GET`,`/actions/artifacts/${e}/zip`);let i=r.headers.get(`content-length`);if(i!==null){let n=Number(i);if(!Number.isSafeInteger(n)||n<0||n>t)throw Error(`Artifact ${e} exceeds the ${t} byte download limit`)}if(!r.body)throw Error(`Artifact ${e} download returned no body`);let a=r.body.getReader(),o=[],s=0;try{for(;;){let{done:n,value:r}=await a.read();if(n)break;if(s+=r.byteLength,s>t)throw await a.cancel(),Error(`Artifact ${e} exceeds the ${t} byte download limit`);o.push(Buffer.from(r))}}finally{a.releaseLock()}if(s<1)throw Error(`Artifact ${e} download is empty`);return Buffer.concat(o,s)}async deleteArtifact(e){let t=await this.#o(`DELETE`,`${this.#r()}/actions/artifacts/${e}`);t.status!==404&&await h_(t,`DELETE`,`/actions/artifacts/${e}`)}async getPullRequest(e){return y_(await this.#i(`GET`,`${this.#r()}/pulls/${e}`))}async listOpenPullRequestsForHead(e,t,n){let r=x_(e),i=[];for(let e=1;e<=10;e+=1){let a=new URLSearchParams({state:`open`,base:n,head:`${r.owner}:${t}`,per_page:`100`,page:String(e)}),o=C_(await this.#i(`GET`,`${this.#r()}/pulls?${a}`),`pull requests response`).map(y_);if(i.push(...o),o.length<100)return i}throw Error(`GitHub returned more than 1000 matching pull requests`)}async getContentSha(e,t,n){let r=x_(e),i=t.split(`/`).map(encodeURIComponent).join(`/`),a=new URLSearchParams({ref:n});return D_(S_(await this.#i(`GET`,`/repos/${encodeURIComponent(r.owner)}/${encodeURIComponent(r.repo)}/contents/${i}?${a}`),`contents response`).sha,`contents SHA`)}#r(){let{owner:e,repo:t}=this.#t;return`/repos/${encodeURIComponent(e)}/${encodeURIComponent(t)}`}async#i(e,t){let n=await this.#o(e,t);return await h_(n,e,t),n.json()}async#a(e,t){if(e.status<300||e.status>399)return e;let n=e.headers.get(`location`);if(!n)throw Error(`Artifact ${t} redirect is missing its location`);let r;try{r=new URL(n)}catch{throw Error(`Artifact ${t} redirect location is invalid`)}if(r.protocol!==`https:`||r.username||r.password)throw Error(`Artifact ${t} redirect must be a credential-free HTTPS URL`);return this.#n(r,{method:`GET`,headers:{Accept:`application/octet-stream`,"User-Agent":`kapture-cli`},redirect:`follow`})}#o(e,t,n=`follow`){return this.#n(`https://api.github.com${t}`,{method:e,headers:{Accept:`application/vnd.github+json`,Authorization:`Bearer ${this.#e}`,"X-GitHub-Api-Version":`2022-11-28`,"User-Agent":`kapture-cli`},redirect:n})}};async function h_(e,t,n){if(!e.ok)throw Error(`GitHub API ${t} ${n} failed with status ${e.status}`)}function g_(e){let t=S_(e,`workflow run`);return{id:$(t.id,`workflow run ID`),runNumber:$(t.run_number,`workflow run number`),runAttempt:$(t.run_attempt,`workflow run attempt`),workflowId:$(t.workflow_id,`workflow ID`),path:w_(t.path,`workflow path`),status:w_(t.status,`workflow run status`),conclusion:T_(t.conclusion,`workflow run conclusion`),event:w_(t.event,`workflow run event`),headSha:D_(t.head_sha,`workflow run head SHA`),headBranch:w_(t.head_branch,`workflow run head branch`),headRepository:b_(t.head_repository,`workflow run head repository`),repository:b_(t.repository,`workflow run repository`)}}function __(e){let t=S_(e,`workflow run candidate`);return{id:$(t.id,`workflow run ID`),runNumber:$(t.run_number,`workflow run number`),headRepositoryId:$(S_(t.head_repository,`workflow run head repository`).id,`workflow run head repository ID`)}}function v_(e){let t=S_(e,`workflow artifact`),n=S_(t.workflow_run,`artifact workflow run`);return{id:$(t.id,`artifact ID`),name:w_(t.name,`artifact name`),sizeInBytes:$(t.size_in_bytes,`artifact size`),digest:O_(t.digest,`artifact digest`),expired:E_(t.expired,`artifact expired`),workflowRun:{id:$(n.id,`artifact workflow run ID`),repositoryId:$(n.repository_id,`artifact workflow repository ID`),headRepositoryId:$(n.head_repository_id,`artifact workflow head repository ID`),headBranch:w_(n.head_branch,`artifact workflow head branch`),headSha:D_(n.head_sha,`artifact workflow head SHA`)}}}function y_(e){let t=S_(e,`pull request`),n=S_(t.base,`pull request base`),r=S_(t.head,`pull request head`),i=w_(t.state,`pull request state`);if(i!==`open`&&i!==`closed`)throw Error(`Pull request state is invalid`);return{number:$(t.number,`pull request number`),state:i,base:{ref:w_(n.ref,`pull request base ref`),sha:D_(n.sha,`pull request base SHA`),repository:b_(n.repo,`pull request base repository`)},head:{ref:w_(r.ref,`pull request head ref`),sha:D_(r.sha,`pull request head SHA`),repository:b_(r.repo,`pull request head repository`)}}}function b_(e,t){let n=S_(e,t),r=w_(n.full_name,`${t} full name`);return x_(r),{id:$(n.id,`${t} ID`),fullName:r}}function x_(e){let t=e.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!t?.[1]||!t[2])throw Error(`Repository full name is invalid`);return{owner:t[1],repo:t[2]}}function S_(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function C_(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e}function $(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);return e}function w_(e,t){if(typeof e!=`string`||e.length<1||e.length>512)throw Error(`${t} must be a non-empty bounded string`);for(let n of e){let e=n.codePointAt(0)??0;if(e<=31||e===127)throw Error(`${t} contains control characters`)}return e}function T_(e,t){return e===null?null:w_(e,t)}function E_(e,t){if(typeof e!=`boolean`)throw Error(`${t} must be a boolean`);return e}function D_(e,t){if(typeof e!=`string`||!/^[0-9a-f]{40}$/.test(e))throw Error(`${t} must be a lowercase full SHA`);return e}function O_(e,t){if(typeof e!=`string`||!/^sha256:[0-9a-f]{64}$/.test(e))throw Error(`${t} must be a SHA-256 digest`);return e}const k_=T({meta:{name:`cleanup`,description:`Delete only exact receipt-bound Kapture artifact IDs`},args:{receipt:{type:`string`,required:!0,description:`Path to the strict prepare-run receipt`},"trusted-artifact-id":{type:`string`,description:`Exact current trusted report artifact ID`},"trusted-artifact-digest":{type:`string`,description:`upload-artifact SHA-256 digest for the current trusted report artifact`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await id(),r=j_(n),i=e[`trusted-artifact-id`]?A_(e[`trusted-artifact-id`],`trusted-artifact-id`):void 0,a=await hg(new m_(t,r),{event:n,receiptPath:f(e.receipt),...i===void 0?{}:{trustedArtifactId:i},...e[`trusted-artifact-digest`]?{trustedArtifactDigest:e[`trusted-artifact-digest`]}:{}});await vd({"deleted-artifact-count":a.length,"deleted-artifact-ids":a.join(`,`)})}});function A_(e,t){if(!/^[1-9][0-9]*$/.test(e))throw Error(`${t} must be a positive integer`);let n=Number(e);if(!Number.isSafeInteger(n))throw Error(`${t} must be a safe integer`);return n}function j_(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const M_=T({meta:{name:`context`,description:`Validate a pull request event and write immutable Kapture capture context`},args:{output:{type:`string`,required:!0,description:`Path for the normalized context JSON`},"changed-files-output":{type:`string`,required:!0,description:`Path for the versioned changed-files manifest`},"base-branch":{type:`string`,description:`Expected pull request base branch`}},async run({args:e}){let t=Th(await id(),e[`base-branch`]),n=process.env.GITHUB_TOKEN;if(!n)throw Error(`GITHUB_TOKEN is required`);let[r,i]=t.base.repository.split(`/`);if(!r||!i)throw Error(`Capture context repository is invalid`);let o=await Fh(new td(n,{owner:r,repo:i}),t),s=f(e.output),c=f(e[`changed-files-output`]);if(s===c)throw Error(`output and changed-files-output must be different paths`);await Promise.all([y(a(s),{recursive:!0}),y(a(c),{recursive:!0})]),await Promise.all([se(s,`${JSON.stringify(t,null,2)}\n`,{flag:`wx`}),se(c,`${JSON.stringify(o,null,2)}\n`,{flag:`wx`})]),await vd({"artifact-suffix":Eh(t),"base-repository":t.base.repository,"base-ref":t.base.ref,"base-sha":t.base.sha,"changed-files-complete":String(o.complete),"changed-files-count":o.files.length,"changed-files-path":c,"context-path":s,"head-repository":t.head.repository,"head-repository-id":t.head.repositoryId,"head-ref":t.head.ref,"head-sha":t.head.sha,"pr-number":t.prNumber,"preview-branch":t.preview.branch,"preview-alias":t.preview.alias})}}),N_=/^[0-9a-f]{40}$/,P_=/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/,F_=/^\.github\/workflows\/[A-Za-z0-9_./-]+\.ya?ml$/,I_=`Base branch changed; rerun visual capture`,L_=new Set([`action_required`,`cancelled`,`failure`,`neutral`,`skipped`,`stale`,`startup_failure`,`success`,`timed_out`]);async function R_(e,t,n){let r=iv(n.captureWorkflowPath),i=cv(n.baseBranch,`base branch`),a=Wu(n.statusContext),o=V_(n.event,r),s=await H_(e,o,i);if(!s.ok)return tv(s.reason);if(await q_(t,o,s.target))return tv(`final-report-exists`,s.target);let c=await H_(e,o,i);if(!c.ok)return tv(c.reason,s.target);if(!ev(s.target,c.target))return tv(`pull-request-changed`,c.target);if(await q_(t,o,c.target))return tv(`final-report-exists`,c.target);let l=Q_(o,c.target);return await t.setReviewStatus(c.target.headSha,l.state,l.description,a),{status:l.state,reason:`status-written`,prNumber:c.target.prNumber,headSha:c.target.headSha}}async function z_(e,t,n){let r=iv(n.captureWorkflowPath),i=cv(n.baseBranch,`base branch`),a=Wu(n.statusContext),o=B_(n.event,r),s=await H_(e,o,i);if(!s.ok)return nv(s.reason);let c=Y_(o,await J_(t,o,s.target,a),s.target);if(c)return nv(c,s.target);let l=await H_(e,o,i);if(!l.ok)return nv(l.reason,s.target);if(!ev(s.target,l.target))return nv(`pull-request-changed`,l.target);let u=Y_(o,await J_(t,o,l.target,a),l.target);if(u)return nv(u,l.target);let d=l.target.baseDrift?I_:o.run.conclusion===`success`?`Visual report publication did not complete`:`Visual capture did not succeed (${o.run.conclusion})`;return await t.setReviewStatus(l.target.headSha,`error`,d,a),{status:`error`,reason:`status-written`,prNumber:l.target.prNumber,headSha:l.target.headSha}}function B_(e,t){let n=V_(e,t);if(n.run.status!==`completed`)throw Error(`Kapture finalize-run requires a completed workflow_run event`);return{...n,run:{...n.run,status:`completed`}}}function V_(e,t){let n=pv(e,`GitHub workflow_run event`),r=uv(n.action,`workflow_run action`);if(r!==`in_progress`&&r!==`completed`)throw Error(`Kapture reconcile-run requires an in_progress or completed workflow_run event`);let i=pv(n.repository,`event repository`),a=av(i.full_name,`event repository`),o=dv(i.id,`event repository ID`),s=pv(n.workflow_run,`workflow_run`),c=iv(uv(s.path,`workflow path`));if(c!==iv(t))throw Error(`workflow_run path ${c} does not match ${t}`);if(s.event!==`pull_request`)throw Error(`Kapture reconcile-run requires a pull_request capture run`);let l=uv(s.status,`workflow run status`),u=lv(s.conclusion,`workflow run conclusion`);if(r===`in_progress`&&(l!==`in_progress`||u!==null))throw Error(`An in_progress workflow_run event must describe an unfinished run`);if(r===`completed`&&(l!==`completed`||u===null||!L_.has(u)))throw Error(`A completed workflow_run event must have a supported conclusion`);let d=pv(s.head_repository,`workflow_run head repository`),f={id:dv(d.id,`workflow run head repository ID`),fullName:av(d.full_name,`workflow run head repository`)},p=cv(s.head_branch,`workflow run head branch`),m=mv(s.pull_requests,`workflow_run pull requests`);if(m.length>1)throw Error(`workflow_run must contain at most one pull request`);let h=m[0]?rv(m[0]):void 0;if(h&&(h.base.repositoryId!==o||h.head.repositoryId!==f.id||h.head.ref!==p))throw Error(`workflow_run pull request metadata conflicts with run provenance`);return{repository:{id:o,fullName:a,ref:ov(a)},run:{id:dv(s.id,`workflow run ID`),runNumber:dv(s.run_number,`workflow run number`),attempt:dv(s.run_attempt,`workflow run attempt`),workflowId:dv(s.workflow_id,`workflow ID`),workflowPath:c,status:l,conclusion:u,event:`pull_request`,headSha:sv(s.head_sha,`workflow run head SHA`),headBranch:p,headRepository:f},...h?{pullRequest:h}:{}}}async function H_(e,t,n){let r=await e.getWorkflowRun(t.run.id);return U_(r,t),r.runAttempt===t.run.attempt?r.status!==t.run.status||r.conclusion!==t.run.conclusion?{ok:!1,reason:`stale-run-state`}:await W_(e,r)?G_(e,t,n):{ok:!1,reason:`superseded-run`}:{ok:!1,reason:`stale-run-attempt`}}function U_(e,t){if(e.id!==t.run.id||e.runNumber!==t.run.runNumber||e.workflowId!==t.run.workflowId||iv(e.path)!==t.run.workflowPath||e.event!==`pull_request`||e.headSha!==t.run.headSha||e.headBranch!==t.run.headBranch||e.headRepository.id!==t.run.headRepository.id||e.headRepository.fullName!==t.run.headRepository.fullName||e.repository.id!==t.repository.id||e.repository.fullName!==t.repository.fullName)throw Error(`Triggering capture run identity no longer matches the workflow_run event`)}async function W_(e,t){let n=(await e.listWorkflowRuns(t.workflowId,t.headBranch)).filter(e=>e.headRepositoryId===t.headRepository.id);if(n.filter(e=>e.id===t.id).some(e=>e.runNumber!==t.runNumber))throw Error(`Latest workflow run metadata conflicts with the triggering run`);return n.reduce((e,t)=>e?t.runNumber===e.runNumber?t.id>e.id?t:e:t.runNumber>e.runNumber?t:e:t,void 0)?.id===t.id}async function G_(e,t,n){if(t.pullRequest){if(t.pullRequest.base.ref!==n)return{ok:!1,reason:`base-branch-mismatch`};let r=await e.getPullRequest(t.pullRequest.number);return K_(r,t,n)?{ok:!0,target:$_(r,r.base.sha!==t.pullRequest.base.sha)}:{ok:!1,reason:`pull-request-not-current`}}let r=(await e.listOpenPullRequestsForHead(t.run.headRepository.fullName,t.run.headBranch,n)).filter(e=>e.state===`open`&&e.base.repository.id===t.repository.id&&e.base.repository.fullName===t.repository.fullName&&e.base.ref===n&&e.head.repository.id===t.run.headRepository.id&&e.head.repository.fullName===t.run.headRepository.fullName&&e.head.ref===t.run.headBranch);return r.length===0?{ok:!1,reason:`pull-request-not-found`}:r.length===1?{ok:!0,target:$_(r[0])}:{ok:!1,reason:`pull-request-ambiguous`}}function K_(e,t,n){let r=t.pullRequest;return!!(r&&e.number===r.number&&e.state===`open`&&e.base.repository.id===t.repository.id&&e.base.repository.fullName===t.repository.fullName&&e.base.ref===n&&e.head.repository.id===t.run.headRepository.id&&e.head.repository.fullName===t.run.headRepository.fullName&&e.head.ref===t.run.headBranch&&e.head.sha===r.head.sha)}async function q_(e,t,n){return Z_(await e.findCurrentReportMarker(n.prNumber,n.baseSha,n.headSha),t)}async function J_(e,t,n,r){let i=await e.findCurrentReportMarker(n.prNumber,n.baseSha,n.headSha),a=await e.getLatestReviewStatus(n.headSha,r);return{marker:Z_(i,t)?i:null,status:a}}function Y_(e,t,n){return n.baseDrift&&t.status?.state===`error`&&t.status.description===I_?`base-drift-already-recorded`:e.run.conclusion===`success`?X_(t)?`final-report-exists`:t.status?.state===`error`&&t.status.description===`Visual report publication did not complete`?`publication-failure-already-recorded`:void 0:t.status?.state===`error`?`capture-failure-already-recorded`:void 0}function X_(e){let{marker:t,status:n}=e;return!t?.reportUrl||!n||t.reportUrl!==n.targetUrl?!1:t.status===`clean`?n.state===`success`&&n.description===`No visual changes`:t.status===`changed`?n.state===`pending`&&n.description===`Visual changes require approval`:n.state===`failure`}function Z_(e,t){return!!(e&&e.captureRunId===t.run.id&&e.captureRunAttempt===t.run.attempt&&e.captureWorkflowId===t.run.workflowId&&e.captureRunHeadBranch===t.run.headBranch&&e.captureRunHeadRepositoryId===t.run.headRepository.id)}function Q_(e,t){return t.baseDrift?{state:`error`,description:I_}:e.run.status===`in_progress`?{state:`pending`,description:`Visual capture is in progress`}:e.run.conclusion===`success`?{state:`pending`,description:`Visual report is awaiting publication`}:{state:`error`,description:`Visual capture did not succeed (${e.run.conclusion})`}}function $_(e,t=!1){return{prNumber:e.number,baseSha:e.base.sha,headSha:e.head.sha,baseDrift:t}}function ev(e,t){return e.prNumber===t.prNumber&&e.baseSha===t.baseSha&&e.headSha===t.headSha&&e.baseDrift===t.baseDrift}function tv(e,t){return{status:`noop`,reason:e,...t?{prNumber:t.prNumber,headSha:t.headSha}:{}}}function nv(e,t){return{status:`noop`,reason:e,...t?{prNumber:t.prNumber,headSha:t.headSha}:{}}}function rv(e){let t=pv(e,`workflow_run pull request`),n=pv(t.base,`workflow_run pull request base`),r=pv(t.head,`workflow_run pull request head`);return{number:dv(t.number,`workflow_run pull request number`),base:{repositoryId:dv(pv(n.repo,`workflow_run pull request base repository`).id,`workflow_run pull request base repository ID`),ref:cv(n.ref,`workflow_run pull request base ref`),sha:sv(n.sha,`workflow_run pull request base SHA`)},head:{repositoryId:dv(pv(r.repo,`workflow_run pull request head repository`).id,`workflow_run pull request head repository ID`),ref:cv(r.ref,`workflow_run pull request head ref`),sha:sv(r.sha,`workflow_run pull request head SHA`)}}}function iv(e){if(!F_.test(e)||e.includes(`//`)||e.includes(`..`))throw Error(`capture-workflow-path must be a safe .github/workflows YAML path`);return e}function av(e,t){let n=uv(e,`${t} full name`);if(!P_.test(n))throw Error(`${t} full name is invalid`);return n}function ov(e){let[t,n,...r]=e.split(`/`);if(!t||!n||r.length>0)throw Error(`Repository full name is invalid`);return{owner:t,repo:n}}function sv(e,t){let n=uv(e,t);if(!N_.test(n))throw Error(`${t} must be a lowercase full SHA`);return n}function cv(e,t){let n=uv(e,t);if(fv(n))throw Error(`${t} contains control characters`);return n}function lv(e,t){return e===null?null:uv(e,t)}function uv(e,t){if(typeof e!=`string`||e.length<1||e.length>512)throw Error(`${t} must be a non-empty bounded string`);if(fv(e))throw Error(`${t} contains control characters`);return e}function dv(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);return e}function fv(e){return Array.from(e).some(e=>{let t=e.codePointAt(0)??0;return t<=31||t===127})}function pv(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function mv(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e}const hv=T({meta:{name:`finalize-run`,description:`Close an unfinished status for the exact completed trusted workflow run`},args:{"capture-workflow-path":{type:`string`,default:`.github/workflows/visual-capture.yml`,description:`Trusted path of the pull_request capture workflow`},"base-branch":{type:`string`,required:!0,description:`Expected pull request base branch`},"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await id(),r=gv(n),i=await z_(new m_(t,r),new td(t,r),{event:n,captureWorkflowPath:e[`capture-workflow-path`],baseBranch:e[`base-branch`],statusContext:Wu(e[`status-context`])});await vd({status:i.status,"finalize-reason":i.reason,...i.prNumber===void 0?{}:{"pr-number":i.prNumber},...i.headSha?{"head-sha":i.headSha}:{}})}});function gv(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const _v=T({meta:{name:`prepare-run`,description:`Download, verify, and rebuild a completed workflow_run report`},args:{"capture-workflow-path":{type:`string`,default:`.github/workflows/visual-capture.yml`,description:`Trusted path of the pull_request capture workflow`},"base-branch":{type:`string`,required:!0,description:`Expected pull request base branch`},output:{type:`string`,default:`.kapture/trusted-report`,description:`New directory for the trusted static report`},receipt:{type:`string`,default:`.kapture/trusted-run-receipt.json`,description:`Path for the strict trusted-run receipt`},"storybook-url":{type:`string`,description:`Trusted HTTPS URL of this branch's deployed Storybook`},"temporary-root":{type:`string`,description:`Trusted temporary directory root (defaults to RUNNER_TEMP)`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await id(),r=await pg(new m_(t,vv(n)),{event:n,captureWorkflowPath:e[`capture-workflow-path`],baseBranch:e[`base-branch`],outputDir:f(e.output),receiptPath:f(e.receipt),...e[`storybook-url`]?{storybookUrl:e[`storybook-url`]}:{},...e[`temporary-root`]?{temporaryRoot:f(e[`temporary-root`])}:{}});await vd({"base-sha":r.receipt.context.base.sha,"context-artifact-id":r.receipt.artifacts.context.id,"head-repository":r.receipt.context.head.repository,"head-sha":r.receipt.context.head.sha,"pr-number":r.receipt.context.prNumber,"preview-branch":r.receipt.context.preview.branch,"preview-alias":r.receipt.context.preview.alias,"raw-report-artifact-id":r.receipt.artifacts.report.id,"report-digest":r.receipt.report.contentDigest,"report-directory":r.reportDirectory,"report-path":r.reportPath,receipt:r.receiptPath,"run-attempt":r.receipt.captureRun.attempt,"run-head-branch":r.receipt.captureRun.headBranch,"run-head-repository-id":r.receipt.captureRun.headRepositoryId,"run-head-sha":r.receipt.captureRun.headSha,"run-id":r.receipt.captureRun.id,"changed-files-complete":String(r.changedFiles.complete),"changed-files-count":r.changedFiles.files.length,"trusted-artifact-name":r.receipt.trustedArtifactName,"workflow-id":r.receipt.captureRun.workflowId})}});function vv(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const yv=T({meta:{name:`publish-run`,description:`Revalidate a prepare-run receipt and publish its deployed visual report`},args:{receipt:{type:`string`,required:!0,description:`Path to the strict prepare-run receipt`},report:{type:`string`,required:!0,description:`Path to the trusted image-bound report.json`},"report-url":{type:`string`,required:!0,description:`Immutable HTTPS URL of the deployed dashboard`},"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`},"comment-language":{type:`string`,default:`en`,description:`PR comment language (en or ko)`}},async run({args:e}){try{let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await id(),r=bv(n),i=Uu(e[`report-url`]);if(!i)throw Error(`report-url is required`);let a=await mg(new m_(t,r),new td(t,r),{event:n,receiptPath:f(e.receipt),reportPath:f(e.report),reportUrl:i,statusContext:Wu(e[`status-context`]),commentLanguage:Nu(e[`comment-language`])});if(await vd({status:a.status,"changed-count":a.changedCount,"comment-id":a.commentId,"report-digest":a.reportDigest}),a.status===`error`)throw Error(`Visual capture errors were published to the trusted report`)}catch(e){throw await vd({status:`error`}),e}}});function bv(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const xv=T({meta:{name:`reconcile-run`,description:`Reconcile a trusted workflow_run event with the current PR status`},args:{"capture-workflow-path":{type:`string`,default:`.github/workflows/visual-capture.yml`,description:`Trusted path of the pull_request capture workflow`},"base-branch":{type:`string`,required:!0,description:`Expected pull request base branch`},"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await id(),r=Sv(n),i=await R_(new m_(t,r),new td(t,r),{event:n,captureWorkflowPath:e[`capture-workflow-path`],baseBranch:e[`base-branch`],statusContext:Wu(e[`status-context`])});await vd({status:i.status,"reconcile-reason":i.reason,...i.prNumber===void 0?{}:{"pr-number":i.prNumber},...i.headSha?{"head-sha":i.headSha}:{}})}});function Sv(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const Cv=T({meta:{name:`report`,description:`Publish a trusted Kapture PR report and commit status`},args:{report:{type:`string`,required:!0,description:`Path to image-bound trusted report.json`},"report-url":{type:`string`,description:`HTTPS URL for the full report or workflow run`},"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`},"comment-language":{type:`string`,default:`en`,description:`PR comment language (en or ko)`}},async run({args:e}){try{let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await qm(e.report),r=ad(await id()),i=Wu(e[`status-context`]),a=Uu(e[`report-url`]),o=await hd(new td(t,r.repository),r,n,i,a,Nu(e[`comment-language`]));if(await vd({status:o.status,"changed-count":o.changedCount,"comment-id":o.commentId,"report-digest":o.reportDigest}),o.status===`error`)throw Error(`${n.summary.errors} visual capture error(s)`)}catch(e){throw await vd({status:`error`}),e}}}),wv=T({meta:{name:`github`,description:`Verify, publish, and approve GitHub visual reviews`},subCommands:{context:M_,verify:T({meta:{name:`verify`,description:`Verify that a Kapture report matches the current pull request`},args:{report:{type:`string`,required:!0,description:`Path to untrusted report.json`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await qm(e.report),r=ad(await id());await md(new td(t,r.repository),r,n)}}),report:Cv,approve:yd,"prepare-run":_v,"publish-run":yv,"reconcile-run":xv,"finalize-run":hv,cleanup:k_}}),Tv=T({meta:{name:`plan`,description:`Select affected Storybook stories from base/head dependency manifests`},args:{"base-dir":{type:`string`,required:!0,description:`Built base Storybook directory`},"head-dir":{type:`string`,required:!0,description:`Built head Storybook directory`},"changed-files":{type:`string`,required:!0,description:`Path to a versioned changed-files manifest or legacy JSON path array`},output:{type:`string`,default:`.kapture/plan.json`,description:`Affected-story plan output path`}},async run({args:e}){let t=await Ev(f(e[`changed-files`])),n=await pl({baseDir:f(e[`base-dir`]),headDir:f(e[`head-dir`]),changedFiles:t.files,changedFilesComplete:t.complete,...t.evidence?{changedFilesEvidence:t.evidence}:{}}),r=f(e.output);await y(a(r),{recursive:!0}),await se(r,`${JSON.stringify(n,null,2)}\n`,`utf8`),n.selectionMode===`affected`?Z.success(`Selected ${n.selectedStoryIds.length} of ${n.totalStoryIds.length} affected stories`):Z.warn(`Selected all ${n.totalStoryIds.length} stories (${n.fallbackReasons.map(e=>e.code).join(`, `)})`),Z.info(`Plan: ${r}`)}});async function Ev(e){let t;try{t=JSON.parse(await x(e,`utf8`))}catch(t){throw Error(`Failed to read changed files JSON from ${e}`,{cause:t})}if(!Array.isArray(t)){let e=Ih(t);return{files:e.files,complete:e.complete,evidence:{provider:e.source.provider,manifestDigest:m(`sha256`).update(JSON.stringify(e)).digest(`hex`),pullRequestNumber:e.pullRequest.number,baseSha:e.pullRequest.baseSha,headSha:e.pullRequest.headSha}}}if(t.length>1e5)throw Error(`changed-files contains too many paths`);return{files:t.map(e=>Lh(e,`changed file path`)),complete:!0}}const Dv=T({meta:{name:`report`,description:`Build trusted static Kapture reports`},subCommands:{build:$m}}),Ov=T({meta:{name:`test`,description:`Capture and compare base/head Storybooks in one hermetic browser environment`},args:{"base-dir":{type:`string`,required:!0,description:`Built base Storybook directory`},"head-dir":{type:`string`,required:!0,description:`Built head Storybook directory`},"base-revision":{type:`string`,required:!0,description:`Base Git revision`},"head-revision":{type:`string`,required:!0,description:`Head Git revision`},"changed-files":{type:`string`,description:`Versioned changed-files manifest used to capture only provably affected stories`},"install-browser":{type:`boolean`,default:!1,description:`Install the pinned Chrome runtime only when at least one story is selected`},"browser-with-deps":{type:`boolean`,default:!1,description:`Install Linux browser dependencies together with Chrome`},output:{type:`string`,default:`.kapture`,description:`Output directory`},workers:{type:`string`,default:`4`,description:`Concurrent isolated story lanes`},"pixel-threshold":{type:`string`,default:`0.2`,description:`Pixel color threshold`},"max-diff-ratio":{type:`string`,default:`0`,description:`Allowed changed-pixel ratio`},"frozen-time":{type:`string`,default:`2026-01-01T00:00:00.000Z`,description:`ISO time exposed to stories`},"random-seed":{type:`string`,default:`20260101`,description:`Math.random seed`},locale:{type:`string`,default:`en-US`,description:`BCP 47 browser locale`},timezone:{type:`string`,default:`UTC`,description:`IANA browser time zone`},"dashboard-dir":{type:`string`,description:`Dashboard build directory (defaults to the CLI embedded dashboard)`}},async run({args:e}){let t=Nv(e.workers),n=Pv(e[`pixel-threshold`],`pixel-threshold`),r=Pv(e[`max-diff-ratio`],`max-diff-ratio`),i=Mv(e[`random-seed`],`random-seed`),o=f(e[`base-dir`]),s=f(e[`head-dir`]),c=e[`changed-files`]?await kv(o,s,f(e[`changed-files`]),e[`base-revision`],e[`head-revision`]):void 0;jv(c),e[`install-browser`]&&Av(c)&&(Z.start(`Installing the Kapture browser runtime…`),await tt(e[`browser-with-deps`])),Z.start(`Capturing base and head Storybooks in one hermetic environment…`);let l=await cu({baseDir:o,headDir:s,baseRevision:e[`base-revision`],headRevision:e[`head-revision`],outputDir:f(e.output),workers:t,threshold:{pixel:n,ratio:r},frozenTime:e[`frozen-time`],randomSeed:i,locale:e.locale,timezone:e.timezone,adapterVersion:$e,selectionPlan:c});await Du(e[`dashboard-dir`]?f(e[`dashboard-dir`]):f(a(me(import.meta.url)),`dashboard`),f(e.output,`report`));let{summary:u}=l.report;Z.success(`${u.total} snapshots: ${u.changed} changed, ${u.added} added, ${u.removed} removed, ${u.unchanged} unchanged, ${u.errors} errors`),Z.info(`Environment: ${l.report.environment.id}`),Z.info(`Report: ${f(e.output,`report`,`report.json`)}`),u.errors>0&&(process.exitCode=2)}});async function kv(e,t,n,r,i){let a=await Ev(n);if(a.evidence&&(a.evidence.baseSha!==r||a.evidence.headSha!==i))throw Error(`changed-files manifest base/head SHAs must match --base-revision and --head-revision`);return pl({baseDir:e,headDir:t,changedFiles:a.files,changedFilesComplete:a.complete,...a.evidence?{changedFilesEvidence:a.evidence}:{}})}function Av(e){return!e||e.selectedStoryIds.length>0}function jv(e){if(!e){Z.info(`Story coverage: full capture (no changed-files manifest)`);return}if(e.selectionMode===`affected`){Z.info(`Story coverage: ${e.selectedStoryIds.length} affected, ${e.skippedStoryIds.length} proven unaffected`);return}Z.warn(`Story coverage: full fallback (${e.fallbackReasons.map(e=>e.code).join(`, `)})`)}function Mv(e,t){let n=Number.parseInt(e,10);if(!Number.isInteger(n)||n<=0)throw Error(`${t} must be a positive integer`);return n}function Nv(e){let t=Mv(e,`workers`);if(t>8)throw Error(`workers must be between 1 and 8`);return t}function Pv(e,t){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0||n>1)throw Error(`${t} must be between 0 and 1`);return n}const Fv=T({meta:{name:`validate`,description:`Validate a Kapture report as a CI gate`},args:{report:{type:`string`,required:!0,description:`Path to report.json`},"fail-on-diff":{type:`boolean`,default:!1,description:`Exit 1 when visual changes require review`}},async run({args:e}){let t=f(e.report),n=await oe(t);if(!n.isFile()||n.size>10485760)throw Error(`Kapture report must be a file no larger than ${Dm} bytes`);let r=Km(JSON.parse(await x(t,`utf8`)));if(r.summary.errors>0){Z.error(`${r.summary.errors} capture or comparison error(s)`),process.exitCode=2;return}let i=r.summary.changed+r.summary.added+r.summary.removed;if(i>0&&e[`fail-on-diff`]){Z.warn(`${i} visual change(s) require human approval`),process.exitCode=1;return}Z.success(i>0?`${i} visual change(s) detected`:`No visual changes`)}});Qe(T({meta:{name:`kapture`,version:$e,description:`Hermetic Storybook visual review`},subCommands:{test:Ov,validate:Fv,browser:nt,plan:Tv,report:Dv,github:wv}}));export{};
427
+ `:l}};function Am(e){return e.replace(/`([^`]+)`/gm,(e,t)=>G.cyan(t)).replace(/\s+_([^_]+)_\s+/gm,(e,t)=>` ${G.underline(t)} `)}function jm(e=`white`){return G[e]||G.white}function Mm(e=`bgWhite`){return G[`bg${e[0].toUpperCase()}${e.slice(1)}`]||G.bgWhite}function Nm(e={}){let t=Pm();return process.env.CONSOLA_LEVEL&&(t=Number.parseInt(process.env.CONSOLA_LEVEL)??t),Rd({level:t,defaults:{level:t},stdout:process.stdout,stderr:process.stderr,prompt:(...e)=>Promise.resolve().then(()=>(Lp(),df)).then(t=>t.prompt(...e)),reporters:e.reporters||[e.fancy??!(qp||Xp)?new km:new Hd],...e})}function Pm(){return Yp?H.debug:Xp?H.warn:H.info}const X=Nm(),Fm=10485760,Im=2e4,Lm=F().max(4096),Z=F().min(1).max(512),Rm=Z.refine(e=>Array.from(e).every(e=>{let t=e.codePointAt(0)??0;return t>31&&t!==127}),`must not contain control characters`),zm=L().int().min(0).max(2**53-1),Bm=L().int().positive().max(2**53-1),Vm=L().min(0).max(1),Hm=R({name:Z,width:L().int().positive().max(16384),height:L().int().positive().max(16384)}),Um=R({pixel:Vm,ratio:Vm}),Wm=R({id:Z,browser:Z,browserVersion:Z,orchestratorRuntime:Z,operatingSystem:Z,architecture:Z,deviceScaleFactor:L().positive().max(8),locale:Z,timezone:Z,colorScheme:B([`light`,`dark`]),reducedMotion:B([`reduce`,`no-preference`]),frozenTime:Z,randomSeed:L().int().min(0).max(2**53-1),fontsFingerprint:Z,stateIsolation:V(`fresh-browser-process-per-story-side-v1`).optional(),network:R({mode:V(`allowlist`),allowedDomains:ys(Z).max(100),webRtc:V(`disabled`)})}),Gm=R({id:Z,storyId:Z,title:Lm,name:Lm,viewport:Hm,status:B([`unchanged`,`changed`,`added`,`removed`,`error`]),baseImage:Lm.optional(),headImage:Lm.optional(),diffImage:Lm.optional(),changedPixels:zm.optional(),diffRatio:Vm.optional(),threshold:Um.optional(),error:Lm.optional()}),Km=ys(Z).max(Im).refine(e=>new Set(e).size===e.length,`must not contain duplicates`).refine(e=>e.every((t,n)=>n===0||e[n-1]<t),`must be sorted`),qm=R({code:B([`base-manifest-missing`,`base-manifest-invalid`,`head-manifest-missing`,`head-manifest-invalid`,`changed-files-incomplete`,`manifest-incomplete`,`global-input`,`global-output`,`global-runtime`,`unknown-input`,`story-import-missing`,`story-module-missing`,`fallback-reasons-truncated`]),path:Lm.optional(),storyId:Z.optional(),side:B([`base`,`head`]).optional()}),Jm=R({provider:V(`github-pull-request-files`),manifestDigest:F().regex(/^[0-9a-f]{64}$/),pullRequestNumber:Bm,baseSha:F().regex(/^[0-9a-f]{40}$/),headSha:F().regex(/^[0-9a-f]{40}$/)}),Ym=F().regex(/^[0-9a-f]{64}$/),Xm=Ts(`state`,[R({state:V(`valid`),digest:Ym,revision:Z}),R({state:V(`invalid`),digest:Ym.optional(),revision:Z}),R({state:V(`missing`),revision:Z})]),Zm=R({base:Xm,head:Xm}),Qm=R({repository:Z.regex(/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/),number:Bm,url:Lm.refine(rh,`must be an HTTPS URL without credentials`),baseBranch:Rm,headBranch:Rm,workflowRunUrl:Lm.refine(rh,`must be an HTTPS URL without credentials`)}),$m=R({plannerVersion:V(1),mode:B([`full`,`affected`,`full-fallback`]),changedFilesEvidence:Jm.optional(),dependencyManifests:Zm.optional(),storyIds:Km,selectedStoryIds:Km,skippedStoryIds:Km,addedStoryIds:Km.optional(),removedStoryIds:Km.optional(),fallbackReasons:ys(qm).max(1e3),baseline:R({mode:V(`reused`),revision:Z,manifestDigest:Ym}).optional()}).superRefine((e,t)=>{let n=new Set(e.storyIds),r=new Set(e.selectedStoryIds),i=new Set(e.skippedStoryIds);if((r.size+i.size!==n.size||[...r].some(e=>!n.has(e)||i.has(e))||[...i].some(e=>!n.has(e)))&&t.addIssue({code:`custom`,message:`selected and skipped stories must exactly partition the story catalog`}),e.mode!==`affected`&&i.size>0&&t.addIssue({code:`custom`,path:[`skippedStoryIds`],message:`full coverage modes cannot skip stories`}),e.mode===`full-fallback`&&e.fallbackReasons.length===0&&t.addIssue({code:`custom`,path:[`fallbackReasons`],message:`full-fallback coverage requires at least one reason`}),e.mode!==`full-fallback`&&e.fallbackReasons.length>0&&t.addIssue({code:`custom`,path:[`fallbackReasons`],message:`only full-fallback coverage can contain fallback reasons`}),e.addedStoryIds===void 0!=(e.removedStoryIds===void 0)&&t.addIssue({code:`custom`,message:`added and removed story catalogs must be provided together`}),e.addedStoryIds&&e.removedStoryIds){let i=new Set(e.addedStoryIds),a=new Set(e.removedStoryIds);([...i].some(e=>!n.has(e)||!r.has(e)||a.has(e))||[...a].some(e=>!n.has(e)||!r.has(e)))&&t.addIssue({code:`custom`,message:`added and removed stories must be disjoint selected catalog members`})}}),eh=R({version:V(1),contentDigest:F().regex(/^[0-9a-f]{64}$/).optional(),baseRevision:Z,headRevision:Z,headBranch:Rm.optional(),pullRequest:Qm.optional(),storybookUrl:Lm.refine(e=>e===`./storybook/`||rh(e),`must be an HTTPS URL or ./storybook/ without credentials`).optional(),environment:Wm,createdAt:Z,threshold:Um,summary:R({total:zm,unchanged:zm,changed:zm,added:zm,removed:zm,errors:zm}),coverage:$m.optional(),entries:z(F(),Gm)}).superRefine((e,t)=>{let n=Object.entries(e.entries);if(n.length>2e4){t.addIssue({code:`custom`,message:`Report contains more than ${Im} entries`,path:[`entries`]});return}for(let[e,r]of n)e!==r.id&&t.addIssue({code:`custom`,message:`Entry key must match entry.id`,path:[`entries`,e,`id`]});let r={unchanged:0,changed:0,added:0,removed:0,error:0};for(let t of Object.values(e.entries))r[t.status]+=1;if((e.summary.total!==n.length||e.summary.unchanged!==r.unchanged||e.summary.changed!==r.changed||e.summary.added!==r.added||e.summary.removed!==r.removed||e.summary.errors!==r.error)&&t.addIssue({code:`custom`,message:`Report summary does not match its entries`,path:[`summary`]}),e.coverage){let r=e.coverage.changedFilesEvidence;r&&(r.baseSha!==e.baseRevision||r.headSha!==e.headRevision)&&t.addIssue({code:`custom`,message:`Changed-files evidence must match the report base and head revisions`,path:[`coverage`,`changedFilesEvidence`]});let i=e.coverage.dependencyManifests;i&&(i.base.revision!==e.baseRevision||i.head.revision!==e.headRevision)&&t.addIssue({code:`custom`,message:`Dependency manifest evidence must match the report base and head revisions`,path:[`coverage`,`dependencyManifests`]});let a=new Set(e.coverage.selectedStoryIds),o=new Set(e.coverage.addedStoryIds??[]),s=new Set(e.coverage.removedStoryIds??[]);for(let[e,r]of n)a.has(r.storyId)||t.addIssue({code:`custom`,message:`Report entries must belong to selected stories`,path:[`entries`,e,`storyId`]}),o.has(r.storyId)&&r.status!==`added`&&r.status!==`error`&&t.addIssue({code:`custom`,message:`Entries for an added story must be added or error snapshots`,path:[`entries`,e,`status`]}),s.has(r.storyId)&&r.status!==`removed`&&r.status!==`error`&&t.addIssue({code:`custom`,message:`Entries for a removed story must be removed or error snapshots`,path:[`entries`,e,`status`]})}});function th(e){let t=eh.safeParse(e);if(!t.success){let e=t.error.issues[0],n=e?.path.length?` at ${e.path.join(`.`)}`:``;throw Error(`Invalid Kapture report${n}: ${e?.message??`unknown error`}`)}return t.data}async function nh(e){let t=f(e),n=await oe(t);if(!n.isFile()||n.size>10485760)throw Error(`Kapture report must be a file no larger than ${Fm} bytes`);let r;try{r=JSON.parse(await x(t,`utf8`))}catch{throw Error(`Kapture report does not contain valid JSON`)}return th(r)}function rh(e){try{let t=new URL(e);return t.protocol===`https:`&&!t.username&&!t.password}catch{return!1}}const ih=26214400,ah=Buffer.from([137,80,78,71,13,10,26,10]),oh=new Set([`acTL`,`fcTL`,`fdAT`]),sh=[`baseImage`,`headImage`,`diffImage`],ch=T({meta:{name:`build`,description:`Rebuild a trusted static report from an untrusted Kapture artifact`},args:{input:{type:`string`,required:!0,description:`Untrusted artifact report directory containing report.json and images`},output:{type:`string`,required:!0,description:`New directory for the trusted static report`},"storybook-url":{type:`string`,description:`Trusted HTTPS Storybook URL or the fixed same-origin ./storybook/ directory`}},async run({args:e}){let t=await lh({inputDir:e.input,outputDir:e.output,storybookUrl:e[`storybook-url`]});X.success(`Trusted report: ${t.report.summary.total} snapshots, ${t.imageCount} verified PNGs (${t.imageBytes} bytes)`),X.info(`Output: ${t.outputDir}`)}});async function lh(e){let t=f(e.inputDir),n=f(e.outputDir),r=uh(e.trustedHeadBranch);if(await xh(t),wh(t,n))throw Error(`Trusted report output must be outside the untrusted input directory`);await Sh(n);let i=e.dashboardDir?f(e.dashboardDir):f(a(me(import.meta.url)),`dashboard`),o=a(n);await y(o,{recursive:!0});let s=await te(`${o}${p}.kapture-report-`),c;try{c=await fh(t,async(e,t)=>{let n=f(s,e.relativePath);await y(a(n),{recursive:!0}),await se(n,t,{flag:`wx`})});let{report:o,imageDigests:l,calculatedContentDigest:u}=c;if(o.contentDigest&&o.contentDigest!==u)throw Error(`Report content digest does not match its referenced PNGs: expected ${o.contentDigest}, calculated ${u}`);r?o.headBranch=r:delete o.headBranch,e.trustedPullRequest?o.pullRequest={...e.trustedPullRequest}:delete o.pullRequest;let d=Zu(e.storybookUrl);d?o.storybookUrl=d:delete o.storybookUrl,o.contentDigest=Ec(o,l),await se(f(s,`report.json`),`${JSON.stringify(o)}\n`,{flag:`wx`}),await Pu(i,s),await ie(s,n)}catch(e){throw await ae(s,{recursive:!0,force:!0}),e}if(!c)throw Error(`Trusted report validation did not complete`);return{report:c.report,outputDir:n,imageCount:c.references.length,imageBytes:c.imageBytes}}function uh(e){if(e!==void 0){if(e.length<1||e.length>512||Array.from(e).some(e=>{let t=e.codePointAt(0)??0;return t<=31||t===127}))throw Error(`Trusted head branch must contain between 1 and 512 non-control characters`);return e}}async function dh(e,t){if(!/^[0-9a-f]{64}$/.test(t))throw Error(`Expected trusted report content digest must be a lowercase SHA-256 digest`);let n=f(e);if(n!==f(a(n),`report.json`))throw Error(`Trusted report path must end in report.json`);let r=a(n);await xh(r);let i=await fh(r);if(i.report.contentDigest!==t||i.calculatedContentDigest!==t)throw Error(`Trusted report content digest does not match its actual structure and referenced PNGs`);return i.report}async function fh(e,t){let n=ph(await Ch(e,`report.json`,Fm)),r=mh(n);if(r.length>6e4)throw Error(`Report references more than 60000 PNG images`);let i=new Map,a=[],o=0;for(let n of r){let r=await Ch(e,n.relativePath,ih);if(o+=r.byteLength,o>536870912)throw Error(`Referenced PNGs exceed 536870912 total bytes`);i.set(n.relativePath,vh(r,n.relativePath)),a.push({path:n.relativePath,sha256:m(`sha256`).update(r).digest(`hex`)}),await t?.(n,r)}return bh(n,i),{report:n,references:r,imageDigests:a,imageBytes:o,calculatedContentDigest:Ec(n,a)}}function ph(e){let t;try{t=JSON.parse(e.toString(`utf8`))}catch{throw Error(`Input report.json does not contain valid JSON`)}return th(t)}function mh(e){let t=new Map;for(let n of Object.values(e.entries)){let e=hh(n.status);for(let r of sh){let i=n[r];if(e.has(r)&&!i)throw Error(`Report entry ${n.id} is missing ${r} for status ${n.status}`);if(!e.has(r)&&i)throw Error(`Report entry ${n.id} cannot contain ${r} for status ${n.status}`);if(!i)continue;let a=_h(i,gh(r),n.id),o=t.get(a);if(o&&o.entryId!==n.id)throw Error(`Report entries ${o.entryId} and ${n.id} reference the same PNG: ${a}`);t.set(a,{relativePath:a,entryId:n.id})}}return[...t.values()]}function hh(e){return e===`changed`?new Set(sh):e===`added`?new Set([`headImage`]):e===`removed`?new Set([`baseImage`]):new Set}function gh(e){return e===`baseImage`?`base`:e===`headImage`?`head`:`diff`}function _h(e,t,n){let r=`images/${t}/`,i=e.slice(r.length);if(!e.startsWith(r)||!i||i.includes(`/`)||i.includes(`\\`)||i.length>255||!/^[a-zA-Z0-9][a-zA-Z0-9._-]*\.png$/.test(i))throw Error(`Report entry ${n} has an invalid ${t} PNG path: ${e}`);return e}function vh(e,t){if(e.byteLength<33||!e.subarray(0,8).equals(ah))throw Error(`Referenced image is not a PNG: ${t}`);let n=e.readUInt32BE(8),r=e.toString(`ascii`,12,16);if(n!==13||r!==`IHDR`)throw Error(`Referenced PNG has an invalid IHDR chunk: ${t}`);let i=e.readUInt32BE(16),a=e.readUInt32BE(20);if(i<1||a<1||i>16384||a>32768||i*a>33554432)throw Error(`Referenced PNG dimensions are outside the supported limits: ${t} (${i}x${a})`);yh(e,t);try{let t=ec.PNG.sync.read(e,{checkCRC:!0,skipRescale:!0});if(t.width!==i||t.height!==a)throw Error(`decoded dimensions differ from IHDR`)}catch{throw Error(`Referenced PNG cannot be decoded safely: ${t}`)}return{width:i,height:a}}function yh(e,t){let n=ah.byteLength,r=!1;for(;n+12<=e.byteLength;){let i=e.readUInt32BE(n),a=e.toString(`ascii`,n+4,n+8),o=n+12+i;if(o>e.byteLength)throw Error(`Referenced PNG has an invalid chunk boundary: ${t}`);if(oh.has(a))throw Error(`Animated PNG is not supported in a static report: ${t}`);if(n=o,a===`IEND`){r=!0;break}}if(!r||n!==e.byteLength)throw Error(`Referenced PNG has an invalid chunk structure: ${t}`)}function bh(e,t){for(let n of Object.values(e.entries)){if(n.status!==`changed`||!n.baseImage||!n.headImage||!n.diffImage)continue;let e=t.get(n.baseImage),r=t.get(n.headImage),i=t.get(n.diffImage);if(!e||!r||!i)throw Error(`Report entry ${n.id} is missing validated PNG dimensions`);let a=Math.max(e.width,r.width),o=Math.max(e.height,r.height);if(i.width!==a||i.height!==o)throw Error(`Report entry ${n.id} diff PNG must match the padded comparison canvas ${a}x${o}`);if(n.changedPixels!==void 0&&n.changedPixels>a*o)throw Error(`Report entry ${n.id} changedPixels exceeds its diff PNG pixel count`)}}async function xh(e){let t;try{t=await v(e)}catch(t){throw Th(t)?Error(`Input report directory does not exist: ${e}`):t}if(t.isSymbolicLink()||!t.isDirectory())throw Error(`Input report path must be a real directory, not a symbolic link`)}async function Sh(e){try{await v(e)}catch(e){if(Th(e))return;throw e}throw Error(`Trusted report output already exists: ${e}`)}async function Ch(e,t,n){if(s(t)||t.includes(`\\`))throw Error(`Input file must be a normalized relative path: ${t}`);let r=t.split(`/`),i=e;for(let[e,n]of r.entries()){if(!n||n===`.`||n===`..`)throw Error(`Input file must be a normalized relative path: ${t}`);i=f(i,n);let a;try{a=await v(i)}catch(e){throw Th(e)?Error(`Referenced input file does not exist: ${t}`):e}if(a.isSymbolicLink())throw Error(`Referenced input path cannot contain a symbolic link: ${t}`);let o=e===r.length-1;if(!o&&!a.isDirectory()||o&&!a.isFile())throw Error(`Referenced input path is not a regular file: ${t}`)}let a=pe.O_RDONLY|(pe.O_NOFOLLOW??0),o=await b(i,a);try{let e=await o.stat();if(!e.isFile()||e.size>n)throw Error(`Input file exceeds ${n} bytes: ${t}`);let r=Buffer.alloc(e.size),i=0;for(;i<r.byteLength;){let{bytesRead:e}=await o.read(r,i,r.byteLength-i,i);if(e===0)throw Error(`Input file changed while being read: ${t}`);i+=e}let a=Buffer.alloc(1),{bytesRead:s}=await o.read(a,0,1,r.byteLength);if(s>0)throw Error(`Input file changed while being read: ${t}`);return r}finally{await o.close()}}function wh(e,t){let n=d(e,t);return n===``||!n.startsWith(`..${p}`)&&n!==`..`&&!s(n)}function Th(e){return typeof e==`object`&&!!e&&`code`in e&&e.code===`ENOENT`}function Eh(e,t){return Oh(e,t).map(({path:e,compressedBytes:t,uncompressedBytes:n})=>({path:e,compressedBytes:t,uncompressedBytes:n}))}async function Dh(e,t,n){let r=Oh(e,n),i=f(t);await y(i,{recursive:!0});for(let t of r){let n=e.subarray(t.dataOffset,t.dataOffset+t.compressedBytes),r=t.compression===0?Buffer.from(n):xe(n,{maxOutputLength:t.uncompressedBytes+1});if(r.byteLength!==t.uncompressedBytes)throw Error(`ZIP entry size mismatch: ${t.path}`);if(be(r)!==t.crc)throw Error(`ZIP entry checksum mismatch: ${t.path}`);let o=f(i,t.path);if(!o.startsWith(`${i}${p}`))throw Error(`ZIP entry escapes the output directory: ${t.path}`);await y(a(o),{recursive:!0}),await se(o,r,{flag:`wx`})}return r}function Oh(e,t){Nh(t);let n=kh(e),r=e.readUInt16LE(n+4),i=e.readUInt16LE(n+6),a=e.readUInt16LE(n+8),o=e.readUInt16LE(n+10),s=e.readUInt32LE(n+12),c=e.readUInt32LE(n+16),l=e.readUInt16LE(n+20);if(n+22+l!==e.byteLength)throw Error(`ZIP end record does not match the archive size`);if(r!==0||i!==0||a!==o)throw Error(`Multi-disk ZIP archives are not supported`);if(o===65535||s===4294967295||c===4294967295)throw Error(`ZIP64 archives are not supported`);if(o>t.maxEntries)throw Error(`ZIP archive contains more than ${t.maxEntries} entries`);if(c+s!==n)throw Error(`ZIP central directory is malformed`);let u=[],d=new Set,f=c,p=0;for(let r=0;r<o;r+=1){if(f+46>n||e.readUInt32LE(f)!==33639248)throw Error(`ZIP central directory entry is malformed`);let r=e.readUInt16LE(f+4),i=e.readUInt16LE(f+8),a=e.readUInt16LE(f+10),o=e.readUInt32LE(f+16),s=e.readUInt32LE(f+20),l=e.readUInt32LE(f+24),m=e.readUInt16LE(f+28),h=e.readUInt16LE(f+30),g=e.readUInt16LE(f+32),_=e.readUInt16LE(f+34),ee=e.readUInt32LE(f+38),v=e.readUInt32LE(f+42),y=f+46+m+h+g;if(y>n)throw Error(`ZIP central directory entry exceeds its bounds`);if(i&1)throw Error(`Encrypted ZIP entries are not supported`);if(a!==0&&a!==8)throw Error(`ZIP compression method ${a} is not supported`);if(_!==0)throw Error(`Multi-disk ZIP entries are not supported`);if(s===4294967295||l===4294967295||v===4294967295)throw Error(`ZIP64 entries are not supported`);let te=e.subarray(f+46,f+46+m),b=jh(te);f=y;let x=b.endsWith(`/`);if(Mh(r,ee,b,x),d.has(b))throw Error(`ZIP archive contains duplicate path: ${b}`);if(d.add(b),x){if(!t.allowDirectoryPath(b))throw Error(`ZIP archive contains unexpected directory: ${b}`);if(i&8||a!==0||o!==0||s!==0||l!==0)throw Error(`ZIP directory entry must be empty and stored: ${b}`);Ah(e,v,te,i,a,o,s,l,c);continue}if(!t.allowPath(b))throw Error(`ZIP archive contains unexpected path: ${b}`);if(l>t.maxFileBytes)throw Error(`ZIP entry exceeds ${t.maxFileBytes} bytes: ${b}`);if(p+=l,p>t.maxTotalBytes)throw Error(`ZIP archive exceeds ${t.maxTotalBytes} uncompressed bytes`);let ne=Ah(e,v,te,i,a,o,s,l,c);u.push({path:b,compression:a,crc:o,compressedBytes:s,uncompressedBytes:l,dataOffset:ne})}if(f!==n)throw Error(`ZIP central directory size is inconsistent`);return u}function kh(e){let t=Math.max(0,e.byteLength-65557);for(let n=e.byteLength-22;n>=t;--n)if(e.readUInt32LE(n)===101010256)return n;throw Error(`ZIP end-of-central-directory record is missing`)}function Ah(e,t,n,r,i,a,o,s,c){if(t+30>c||e.readUInt32LE(t)!==67324752)throw Error(`ZIP local entry header is malformed`);let l=e.readUInt16LE(t+6),u=e.readUInt16LE(t+8),d=e.readUInt32LE(t+14),f=e.readUInt32LE(t+18),p=e.readUInt32LE(t+22),m=e.readUInt16LE(t+26),h=e.readUInt16LE(t+28),g=t+30+m+h;if(g>c)throw Error(`ZIP local entry header exceeds its bounds`);let _=e.subarray(t+30,t+30+m);if(l!==r||u!==i||!_.equals(n))throw Error(`ZIP local and central directory entries do not match`);if(!(l&8)&&(d!==a||f!==o||p!==s))throw Error(`ZIP local and central directory sizes or checksum do not match`);if(g+o>c)throw Error(`ZIP entry data exceeds the archive bounds`);return g}function jh(e){let t=e.toString(`utf8`);if(!Buffer.from(t,`utf8`).equals(e))throw Error(`ZIP path is not valid UTF-8`);let n=t.endsWith(`/`),r=t.split(`/`),i=n?r.slice(0,-1):r;if(t.length<1||t.startsWith(`/`)||t.includes(`\\`)||t.includes(`\0`)||i.some(e=>!e||e===`.`||e===`..`)||Array.from(t).some(e=>{let t=e.codePointAt(0)??0;return t<=31||t===127}))throw Error(`ZIP path is unsafe: ${JSON.stringify(t)}`);return t}function Mh(e,t,n,r){if(e>>>8!=3)return;let i=t>>>16&61440;if(i!==0&&i!==(r?16384:32768))throw Error(r?`ZIP entry is not a directory: ${n}`:`ZIP entry is not a regular file: ${n}`)}function Nh(e){for(let[t,n]of Object.entries({maxEntries:e.maxEntries,maxFileBytes:e.maxFileBytes,maxTotalBytes:e.maxTotalBytes}))if(!Number.isSafeInteger(n)||n<=0)throw Error(`${t} must be positive`)}function Ph(e,t){let n=Hh(e,`GitHub pull_request event`),r=Hh(n.pull_request,`pull_request`),i=Lh(Hh(n.repository,`repository`)),a=Hh(r.base,`pull_request.base`),o=Hh(r.head,`pull_request.head`),s=Lh(Hh(a.repo,`pull_request.base.repo`)),c=Hh(o.repo,`pull_request.head.repo`),l=zh(a.ref,`pull_request.base.ref`),u=zh(o.ref,`pull_request.head.ref`),d=Bh(r.number,`pull request number`);if(s!==i)throw Error(`Pull request base repository must match the workflow repository`);if(t!==void 0&&l!==zh(t,`base branch`))throw Error(`Pull request targets ${l}, expected ${t}`);return{schemaVersion:1,runId:Bh(n.run_id??process.env.GITHUB_RUN_ID,`workflow run ID`),prNumber:d,base:{repository:s,ref:l,sha:Rh(a.sha,`pull_request.base.sha`)},head:{repository:Lh(c),repositoryId:Bh(c.id,`head repository ID`),ref:u,sha:Rh(o.sha,`pull_request.head.sha`)},preview:{branch:u,alias:Ih(d,u)}}}function Fh(e){return`pr-${e.prNumber}-base-${e.base.sha}-head-${e.head.sha}`}function Ih(e,t){let n=`pr-${Bh(e,`pull request number`)}-`,r=zh(t,`head branch`),i=r.normalize(`NFKD`).toLowerCase().replace(/[^a-z0-9-]+/g,`-`).replace(/-+/g,`-`).replace(/^-|-$/g,``),a=`-${m(`sha256`).update(r).digest(`hex`).slice(0,10)}`,o=Math.max(1,63-n.length-a.length);return`${n}${(i||`branch`).slice(0,o).replace(/-$/g,``)||`b`}${a}`}function Lh(e){let t=Vh(e.full_name,`repository full name`);if(!/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/.test(t))throw Error(`GitHub event contains an invalid repository full name`);return t}function Rh(e,t){let n=Vh(e,t).toLowerCase();if(!/^[0-9a-f]{40}$/.test(n))throw Error(`${t} must be a full SHA`);return n}function zh(e,t){let n=Vh(e,t);if(n.length<1||n.length>512)throw Error(`${t} is invalid`);for(let e of n){let n=e.codePointAt(0)??0;if(n<=31||n===127)throw Error(`${t} is invalid`)}return n}function Bh(e,t){let n=typeof e==`string`&&/^[1-9][0-9]*$/.test(e)?Number(e):e;if(typeof n!=`number`||!Number.isSafeInteger(n)||n<=0)throw Error(`${t} must be a positive integer`);return n}function Vh(e,t){if(typeof e!=`string`)throw Error(`${t} must be a string`);return e}function Hh(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}const Uh=3e3;async function Wh(e,t){let n=await e.getPullRequestForCapture(t.prNumber);qh(n,t);let r=ig(n.changed_files,`pull request changed_files`),i=[],a=[],o=0;if(r>3e3)i.push({code:`github-file-limit`});else for(let n=1;n<=Math.ceil(r/100);n+=1){let s=await e.listPullRequestFilesPage(t.prNumber,n,100);if(o=n,!Array.isArray(s)){i.push({code:`pagination-incomplete`,page:n});break}let c=s.slice(0,100);s.length>100&&i.push({code:`pagination-incomplete`,page:n});for(let[e,t]of c.entries())a.push({value:t,page:n,index:e});if(c.length<100){a.length<r&&i.push({code:`pagination-incomplete`,page:n});break}}a.length!==r&&i.push({code:`file-count-mismatch`});let s=new Set,c=new Set;for(let e of a)Jh(e,s,c,i);let l=await e.getPullRequestForCapture(t.prNumber);if(qh(l,t),l.changed_files!==r)throw Error(`Pull request changed while Kapture discovered changed files`);let u=Zh(i);return{kind:`kapture-changed-files`,version:1,complete:u.length===0,pullRequest:{number:t.prNumber,baseSha:t.base.sha,headSha:t.head.sha},files:[...s].sort(),source:{provider:`github-pull-request-files`,expectedFileCount:r,fetchedFileCount:a.length,pageCount:o,perPage:100,maxFiles:Uh},diagnostics:u}}function Gh(e){let t=ag(e,`changed-files manifest`);if(tg(t,[`kind`,`version`,`complete`,`pullRequest`,`files`,`source`,`diagnostics`],`changed-files manifest`),t.kind!==`kapture-changed-files`||t.version!==1)throw Error(`changed-files manifest must use kapture-changed-files version 1`);if(typeof t.complete!=`boolean`)throw Error(`changed-files manifest complete must be a boolean`);if(!Array.isArray(t.files)||t.files.length>6e3)throw Error(`changed-files manifest files must be a bounded array`);let n=t.files.map(e=>Kh(e,`changed file path`));if(!Qh(n))throw Error(`changed-files manifest files must be unique and sorted`);let r=ag(t.pullRequest,`changed-files manifest pullRequest`);tg(r,[`number`,`baseSha`,`headSha`],`changed-files manifest pullRequest`);let i=ag(t.source,`changed-files manifest source`);if(tg(i,[`provider`,`expectedFileCount`,`fetchedFileCount`,`pageCount`,`perPage`,`maxFiles`],`changed-files manifest source`),i.provider!==`github-pull-request-files`)throw Error(`changed-files manifest source provider is invalid`);if(i.perPage!==100||i.maxFiles!==3e3)throw Error(`changed-files manifest source limits are invalid`);if(!Array.isArray(t.diagnostics)||t.diagnostics.length>6e3)throw Error(`changed-files manifest diagnostics must be a bounded array`);let a=t.diagnostics.map(Xh);if(!Qh(a.map($h)))throw Error(`changed-files manifest diagnostics must be unique and sorted`);if(t.complete!==(a.length===0))throw Error(`changed-files manifest completeness disagrees with diagnostics`);let o=ig(i.expectedFileCount,`changed-files expected file count`),s=ig(i.fetchedFileCount,`changed-files fetched file count`),c=ig(i.pageCount,`changed-files page count`);if(s>3e3||c>30||s>c*100||n.length>s*2)throw Error(`changed-files manifest source counts are inconsistent`);if(t.complete&&(o!==s||o>3e3||c!==Math.ceil(s/100)||n.length<s))throw Error(`complete changed-files manifest source counts are inconsistent`);return{kind:`kapture-changed-files`,version:1,complete:t.complete,pullRequest:{number:rg(r.number,`changed-files pull request number`),baseSha:ng(r.baseSha,`changed-files base SHA`),headSha:ng(r.headSha,`changed-files head SHA`)},files:n,source:{provider:`github-pull-request-files`,expectedFileCount:o,fetchedFileCount:s,pageCount:c,perPage:100,maxFiles:Uh},diagnostics:a}}function Kh(e,t=`GitHub file path`){if(typeof e!=`string`)throw Error(`${t} must be a string`);let n=Array.from(e);if(e.length===0||e.length>4096||e.startsWith(`/`)||/^[A-Za-z]:[\\/]/.test(e)||e.startsWith(`./`)||e===`.`||e===`..`||e.startsWith(`../`)||e.endsWith(`/`)||e.includes(`//`)||e.includes(`\\`)||e.split(`/`).some(e=>e===`.`||e===`..`)||n.some(e=>{let t=e.codePointAt(0)??0;return t<=31||t>=127&&t<=159}))throw Error(`${t} must be a normalized project-relative path`);return e}function qh(e,t){let n=e.head.repo;if(e.number!==t.prNumber||e.state!==`open`||e.base.ref!==t.base.ref||e.base.sha.toLowerCase()!==t.base.sha||e.base.repo.full_name!==t.base.repository||e.head.ref!==t.head.ref||e.head.sha.toLowerCase()!==t.head.sha||n?.id!==t.head.repositoryId||n.full_name!==t.head.repository)throw Error(`Live pull request does not match the exact Kapture capture context`)}function Jh(e,t,n,r){if(!e.value||typeof e.value!=`object`||Array.isArray(e.value)){r.push({code:`invalid-file-record`,page:e.page,index:e.index});return}let i=e.value;if(typeof i.status!=`string`||typeof i.filename!=`string`){r.push({code:`invalid-file-record`,page:e.page,index:e.index});return}let a=JSON.stringify([i.status,i.filename,i.previous_filename]);if(n.has(a)&&r.push({code:`duplicate-file-entry`,page:e.page,index:e.index}),n.add(a),Yh(i.filename,e,t,r),i.status===`renamed`||i.previous_filename!==void 0){if(typeof i.previous_filename!=`string`){r.push({code:`rename-source-missing`,page:e.page,index:e.index});return}Yh(i.previous_filename,e,t,r)}}function Yh(e,t,n,r){try{n.add(Kh(e))}catch{r.push({code:`invalid-file-path`,page:t.page,index:t.index})}}function Xh(e){let t=ag(e,`changed-files diagnostic`);if(tg(t,[`code`,`page`,`index`],`changed-files diagnostic`,!0),typeof t.code!=`string`||![`github-file-limit`,`pagination-incomplete`,`file-count-mismatch`,`invalid-file-record`,`invalid-file-path`,`rename-source-missing`,`duplicate-file-entry`].includes(t.code))throw Error(`changed-files diagnostic code is invalid`);let n=t.page===void 0?void 0:rg(t.page,`page`),r=t.index===void 0?void 0:ig(t.index,`diagnostic index`),i={code:t.code,...n===void 0?{}:{page:n},...r===void 0?{}:{index:r}};if(i.code===`github-file-limit`||i.code===`file-count-mismatch`?n!==void 0||r!==void 0:i.code===`pagination-incomplete`?n===void 0||n>30||r!==void 0:n===void 0||n>30||r===void 0||r>=100)throw Error(`changed-files diagnostic location is invalid`);return i}function Zh(e){return[...new Map(e.map(e=>[JSON.stringify(e),e])).values()].sort((e,t)=>eg($h(e),$h(t)))}function Qh(e){return e.every((t,n)=>n===0||(e[n-1]??``)<t)}function $h(e){return`${e.code}:${String(e.page??0).padStart(2,`0`)}:${String(e.index??0).padStart(3,`0`)}`}function eg(e,t){return e<t?-1:+(e>t)}function tg(e,t,n,r=!1){let i=Object.keys(e).sort(),a=r?i.filter(e=>t.includes(e)).sort():[...t].sort();if(i.some(e=>!t.includes(e))||!r&&(i.length!==a.length||i.some((e,t)=>e!==a[t])))throw Error(`${n} contains unexpected or missing fields`)}function ng(e,t){if(typeof e!=`string`||!/^[0-9a-f]{40}$/.test(e))throw Error(`${t} must be a full lowercase SHA`);return e}function rg(e,t){let n=ig(e,t);if(n===0)throw Error(`${t} must be a positive integer`);return n}function ig(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<0)throw Error(`${t} must be a non-negative integer`);return e}function ag(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}const og=/^[0-9a-f]{40}$/,sg=/^sha256:[0-9a-f]{64}$/,cg=/^[0-9a-f]{64}$/,lg=/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/,ug=/^\.github\/workflows\/[A-Za-z0-9_./-]+\.ya?ml$/,dg=/^images\/(?:base|head|diff)\/[A-Za-z0-9][A-Za-z0-9._-]*\.png$/,fg=F().min(1).max(512).refine(e=>!x_(e),`must not contain control characters`),pg=F().regex(og),Q=L().int().positive().max(2**53-1),mg=F().regex(lg),hg=F().regex(sg),gg=R({schemaVersion:V(1),runId:Q,prNumber:Q,base:R({repository:mg,ref:fg,sha:pg}),head:R({repository:mg,repositoryId:Q,ref:fg,sha:pg}),preview:R({branch:fg,alias:fg})}),_g=R({id:Q,name:fg,sizeInBytes:Q,digest:hg}),vg=R({id:Q,name:fg,digest:hg}),yg=R({schemaVersion:V(1),artifacts:R({context:vg,baseStorybook:vg,headStorybook:vg})}),bg=R({schemaVersion:V(2),repository:R({id:Q,fullName:mg}),context:gg,captureRun:R({id:Q,runNumber:Q,attempt:Q,workflowId:Q,workflowPath:fg,headSha:pg,headBranch:fg,headRepositoryId:Q,headRepository:mg}),artifacts:R({context:_g,baseStorybook:_g,headStorybook:_g,report:_g}),report:R({contentDigest:F().regex(cg)}),trustedArtifactName:fg});async function xg(e,t){let n=p_(t.captureWorkflowPath),r=__(t.baseBranch,`base branch`),i=f(t.outputDir),a=f(t.receiptPath);if(w_(i,a))throw Error(`Trusted receipt must be outside the publicly deployed report directory`);await f_(a,`Trusted receipt`);let o=Tg(t.event,n),s=await e.getWorkflowRun(o.run.id);Yg(s,o),await Dg(e,s);let c=Og(await e.listRunArtifacts(s.id),o),l=await u_(t.temporaryRoot),u=!1;try{let d=await jg(e,c.context,33685504),p=f(l,`context`);Ig(d),await Dh(d,p,Mg);let m=await Vg(f(p,`context.json`)),h=await Hg(f(p,`changed-files.json`),m);Wg(m,c.context),Gg(m,o,s,r),qg(await e.getPullRequest(m.prNumber),m,o,r),await Jg(e,m,n);let g=await jg(e,c.report,629145600),_=f(l,`untrusted-report`);Lg(g),await Dh(g,_,Pg),Bg(await zg(f(_,`capture-boundary.json`)),c);let ee=await nh(f(_,`report.json`));Ug(ee,h),await Sd(e,c_(o,m),ee);let v=await lh({inputDir:_,outputDir:i,trustedHeadBranch:m.head.ref,trustedPullRequest:{repository:m.base.repository,number:m.prNumber,url:`https://github.com/${m.base.repository}/pull/${m.prNumber}`,baseBranch:m.base.ref,headBranch:m.head.ref,workflowRunUrl:`https://github.com/${m.base.repository}/actions/runs/${o.run.id}`},...t.storybookUrl?{storybookUrl:t.storybookUrl}:{},...t.dashboardDir?{dashboardDir:f(t.dashboardDir)}:{}});if(u=!0,!v.report.contentDigest)throw Error(`Trusted report build did not produce an image-bound content digest`);await s_(e,o,s,m,r,n);let y=Xg(o,s,m,c,v.report);return await d_(a,y),{receipt:y,report:v.report,reportDirectory:i,reportPath:f(i,`report.json`),receiptPath:a,changedFiles:h}}catch(e){throw u&&await ae(i,{recursive:!0,force:!0}),e}finally{await ae(l,{recursive:!0,force:!0})}}async function Sg(e,t,n){let r=await Eg(n.receiptPath),i=Tg(n.event,r.captureRun.workflowPath);$g(r,i);let a=await e.getWorkflowRun(r.captureRun.id);e_(a,r),await Dg(e,a),await t_(e,r,i),qg(await e.getPullRequest(r.context.prNumber),r.context,i,r.context.base.ref),await Jg(e,r.context,r.captureRun.workflowPath);let o=await dh(n.reportPath,r.report.contentDigest);if(o.headBranch!==r.context.head.ref)throw Error(`Trusted report branch does not match its verified pull request context`);let s=c_(i,r.context);return await Sd(e,s,o),Cd(t,s,o,n.statusContext,n.reportUrl,n.commentLanguage)}async function Cg(e,t){let n=p_(t.captureWorkflowPath),r=__(t.baseBranch,`base branch`),i=f(t.outputDir),o=f(t.receiptPath);await f_(i,`Trusted Storybook output`);let s=await Eg(o),c=Tg(t.event,n);$g(s,c);let l=await e.getWorkflowRun(s.captureRun.id);e_(l,s),await Dg(e,l),await t_(e,s,c),qg(await e.getPullRequest(s.context.prNumber),s.context,c,r),await Jg(e,s.context,n);let u=f(t.temporaryRoot??a(i));if(w_(i,u))throw Error(`Trusted Storybook temporary root must be outside its output directory`);let d=await u_(u),p=f(d,`storybook`);try{let t=await jg(e,s.artifacts.headStorybook,536870912);return Rg(t),await Dh(t,p,Fg),await s_(e,c,l,s.context,r,n),await t_(e,s,c),await f_(i,`Trusted Storybook output`),await y(a(i),{recursive:!0}),await ie(p,i),{receipt:s,receiptPath:o,context:s.context,artifact:s.artifacts.headStorybook,storybookDirectory:i}}finally{await ae(d,{recursive:!0,force:!0})}}async function wg(e,t){let n=await Eg(t.receiptPath),r=Tg(t.event,n.captureRun.workflowPath);$g(n,r),e_(await e.getWorkflowRun(n.captureRun.id),n);let i=t.trustedArtifactId,a=t.trustedArtifactDigest?a_(t.trustedArtifactDigest):void 0,o=[i,a];if(o.some(e=>e!==void 0)&&o.some(e=>e===void 0))throw Error(`trusted-artifact-id and trusted-artifact-digest must be provided together`);if(i!==void 0&&!b_(i))throw Error(`trusted-artifact-id must be a positive integer`);let s=i!==void 0&&a!==void 0?o_():void 0,c=[];for(let t of n_(n)){let n=await e.getArtifact(t.id);n&&(r_(n,t,r),c.push({artifact:n,expected:t}))}if(i!==void 0&&a!==void 0&&s!==void 0){if(n_(n).some(e=>e.id===i))throw Error(`trusted-artifact-id must not duplicate a source artifact ID`);let t=await e.getArtifact(i);t&&(i_(t,a,s,n),c.push({artifact:t,expected:{id:t.id,name:t.name,sizeInBytes:t.sizeInBytes,digest:t.digest}}))}let l=[...new Set(c.map(({artifact:e})=>e.id))];for(let t of l)await e.deleteArtifact(t);return l}function Tg(e,t){let n=S_(e,`GitHub workflow_run event`);if(n.action!==`completed`)throw Error(`Kapture trusted run requires a completed workflow_run event`);let r=S_(n.repository,`event repository`),i=m_(r.full_name,`event repository`),a=h_(i),o=y_(r.id,`event repository ID`),s=S_(n.workflow_run,`workflow_run`),c=p_(v_(s.path,`workflow path`));if(c!==p_(t))throw Error(`workflow_run path ${c} does not match ${t}`);if(s.status!==`completed`||s.conclusion!==`success`||s.event!==`pull_request`)throw Error(`Kapture trusted run requires one successful pull_request capture run`);let l=S_(s.head_repository,`workflow_run head repository`),u=C_(s.pull_requests,`workflow_run pull_requests`);if(u.length>1)throw Error(`workflow_run must contain at most one pull request`);let d=u[0]?l_(u[0]):void 0;return{repository:{id:o,fullName:i,ref:a},run:{id:y_(s.id,`workflow run ID`),runNumber:y_(s.run_number,`workflow run number`),attempt:y_(s.run_attempt,`workflow run attempt`),workflowId:y_(s.workflow_id,`workflow ID`),workflowPath:c,status:`completed`,conclusion:`success`,event:`pull_request`,headSha:g_(s.head_sha,`workflow run head SHA`),headBranch:__(s.head_branch,`workflow run head branch`),headRepository:{id:y_(l.id,`workflow run head repository ID`),fullName:m_(l.full_name,`workflow run head repository`)}},...d?{pullRequest:d}:{}}}async function Eg(e){let t=f(e),n=await oe(t);if(!n.isFile()||n.size<1||n.size>65536)throw Error(`Trusted receipt must be a file no larger than 65536 bytes`);let r;try{r=JSON.parse(await x(t,`utf8`))}catch{throw Error(`Trusted receipt does not contain valid JSON`)}let i=bg.safeParse(r);if(!i.success){let e=i.error.issues[0];throw Error(`Invalid trusted receipt${e?.path.length?` at ${e.path.join(`.`)}`:``}: ${e?.message??`unknown error`}`)}return Qg(i.data),i.data}async function Dg(e,t){let n=(await e.listWorkflowRuns(t.workflowId,t.headBranch)).filter(e=>e.headRepositoryId===t.headRepository.id).reduce((e,t)=>e?t.runNumber===e.runNumber?t.id>e.id?t:e:t.runNumber>e.runNumber?t:e:t,void 0);if(!n||n.id!==t.id)throw Error(`A newer Kapture capture run owns this repository and branch`)}function Og(e,t){let n=/^kapture-context-pr-([1-9][0-9]*)-base-([0-9a-f]{40})-head-([0-9a-f]{40})$/,r=e.filter(e=>n.test(e.name)?Ag(e,t):!1);if(r.length!==1||!r[0])throw Error(`Triggering run must contain exactly one immutable Kapture context artifact`);let i=r[0];if(i.sizeInBytes>33685504)throw Error(`Kapture context artifact exceeds its compressed size limit`);let a=i.name.match(n);if(!a?.[1]||!a[2]||!a[3])throw Error(`Kapture context artifact name is invalid`);let o=`kapture-visual-report-pr-${a[1]}-base-${a[2]}-head-${a[3]}`,s=e.filter(e=>e.name===o&&Ag(e,t));if(s.length!==1||!s[0])throw Error(`Triggering run must contain exactly one matching Kapture report artifact`);if(s[0].sizeInBytes>629145600)throw Error(`Kapture report artifact exceeds its compressed size limit`);let c=`pr-${a[1]}-base-${a[2]}-head-${a[3]}`,l=kg(e,`kapture-storybook-base-${c}`,t),u=kg(e,`kapture-storybook-head-${c}`,t),d=[i,l,u,s[0]];if(new Set(d.map(e=>e.id)).size!==d.length||new Set(d.map(e=>e.name)).size!==d.length)throw Error(`Kapture artifact IDs and names must be distinct`);return{context:i,baseStorybook:l,headStorybook:u,report:s[0]}}function kg(e,t,n){let r=e.filter(e=>e.name===t&&Ag(e,n));if(r.length!==1||!r[0])throw Error(`Triggering run must contain exactly one non-expired ${t} artifact`);if(r[0].sizeInBytes>536870912)throw Error(`${t} exceeds its compressed size limit`);return r[0]}function Ag(e,t){return!e.expired&&e.workflowRun.id===t.run.id&&e.workflowRun.repositoryId===t.repository.id&&e.workflowRun.headRepositoryId===t.run.headRepository.id&&e.workflowRun.headBranch===t.run.headBranch&&e.workflowRun.headSha===t.run.headSha&&sg.test(e.digest)&&b_(e.id)&&b_(e.sizeInBytes)}async function jg(e,t,n){let r=await e.downloadArtifactArchive(t.id,n);if(r.byteLength!==t.sizeInBytes)throw Error(`Artifact ${t.id} download size does not match GitHub metadata`);if(`sha256:${m(`sha256`).update(r).digest(`hex`)}`!==t.digest)throw Error(`Artifact ${t.id} download digest does not match GitHub metadata`);return r}const Mg={maxEntries:2,maxFileBytes:33554432,maxTotalBytes:33619968,allowPath:e=>e===`context.json`||e===`changed-files.json`,allowDirectoryPath:()=>!1},Ng=new Set([`images/`,`images/base/`,`images/head/`,`images/diff/`]),Pg={maxEntries:60006,maxFileBytes:ih,maxTotalBytes:629145600,allowPath:e=>e===`report.json`||e===`capture-boundary.json`||dg.test(e),allowDirectoryPath:e=>Ng.has(e)},Fg={maxEntries:2e4,maxFileBytes:26214400,maxTotalBytes:1073741824,allowPath:()=>!0,allowDirectoryPath:()=>!0};function Ig(e){let t=Eh(e,Mg);if(t.length!==2)throw Error(`Context archive must contain exactly context.json and changed-files.json`);let n=t.find(e=>e.path===`context.json`),r=t.find(e=>e.path===`changed-files.json`);if(!n||n.uncompressedBytes<1||n.uncompressedBytes>65536||!r||r.uncompressedBytes<1||r.uncompressedBytes>33554432)throw Error(`Context archive entries are outside their fixed size contract`)}function Lg(e){let t=Eh(e,Pg),n=new Set,r=0,i=0;for(let e of t){let t=e.path.toLocaleLowerCase(`en-US`);if(n.has(t))throw Error(`Report archive contains a case-insensitive duplicate: ${e.path}`);if(n.add(t),e.uncompressedBytes<1)throw Error(`Report archive contains an empty file: ${e.path}`);if(e.path===`report.json`&&(r+=1,e.uncompressedBytes>10485760))throw Error(`report.json exceeds its uncompressed size limit`);if(e.path===`capture-boundary.json`&&(i+=1,e.uncompressedBytes>65536))throw Error(`capture-boundary.json exceeds its uncompressed size limit`)}if(r!==1)throw Error(`Report archive must contain one root report.json file`);if(i!==1)throw Error(`Report archive must contain one root capture-boundary.json file`)}function Rg(e){let t=Eh(e,Fg),n=new Set,r=0;for(let e of t){let t=e.path.toLocaleLowerCase(`en-US`);if(n.has(t))throw Error(`Storybook archive contains a case-insensitive duplicate: ${e.path}`);n.add(t),e.path===`index.html`&&e.uncompressedBytes>0&&(r+=1)}if(r!==1)throw Error(`Storybook archive must contain one non-empty root index.html file`)}async function zg(e){let t;try{t=JSON.parse(await x(e,`utf8`))}catch(e){throw Error(`capture-boundary.json must contain valid JSON`,{cause:e})}return yg.parse(t)}function Bg(e,t){for(let n of[`context`,`baseStorybook`,`headStorybook`]){let r=e.artifacts[n],i=t[n];if(i.id!==r.id||i.name!==r.name||i.digest!==r.digest)throw Error(`Capture ${n} artifact does not match its exact downloaded identity`)}}async function Vg(e){let t;try{t=JSON.parse(await x(e,`utf8`))}catch{throw Error(`Kapture context artifact does not contain valid JSON`)}let n=gg.safeParse(t);if(!n.success){let e=n.error.issues[0];throw Error(`Invalid Kapture capture context${e?.path.length?` at ${e.path.join(`.`)}`:``}: ${e?.message??`unknown error`}`)}if(n.data.preview.branch!==n.data.head.ref||n.data.preview.alias!==Ih(n.data.prNumber,n.data.head.ref))throw Error(`Kapture context preview identity is not derived from its pull request branch`);return n.data}async function Hg(e,t){let n=await oe(e);if(!n.isFile()||n.size<1||n.size>33554432)throw Error(`changed-files.json is outside its fixed size contract`);let r;try{r=JSON.parse(await x(e,`utf8`))}catch{throw Error(`changed-files.json does not contain valid JSON`)}let i=Gh(r);if(i.pullRequest.number!==t.prNumber||i.pullRequest.baseSha!==t.base.sha||i.pullRequest.headSha!==t.head.sha)throw Error(`changed-files.json does not belong to the exact capture context`);return i}function Ug(e,t){let n=e.coverage;if(!n)throw Error(`Trusted workflow reports must include audited story coverage`);let r=n.changedFilesEvidence;if(!r)throw Error(`Trusted workflow report coverage must include changed-files evidence`);let i=m(`sha256`).update(JSON.stringify(t)).digest(`hex`);if(r.provider!==t.source.provider||r.manifestDigest!==i||r.pullRequestNumber!==t.pullRequest.number||r.baseSha!==t.pullRequest.baseSha||r.headSha!==t.pullRequest.headSha)throw Error(`Trusted workflow report changed-files evidence does not match its verified context manifest`)}function Wg(e,t){let n=`kapture-context-${Fh(e)}`;if(t.name!==n)throw Error(`Kapture context contents do not match the immutable artifact name`)}function Gg(e,t,n,r){if(e.runId!==n.id||e.base.repository!==t.repository.fullName||e.base.ref!==r||e.head.repository!==n.headRepository.fullName||e.head.repositoryId!==n.headRepository.id||e.head.ref!==n.headBranch)throw Error(`Kapture capture context does not belong to the triggering workflow run`);Kg(t,e)}function Kg(e,t){let n=e.pullRequest;if(n&&(n.number!==t.prNumber||n.base.repositoryId!==e.repository.id||n.base.ref!==t.base.ref||n.base.sha!==t.base.sha||n.head.repositoryId!==t.head.repositoryId||n.head.ref!==t.head.ref||n.head.sha!==t.head.sha))throw Error(`workflow_run pull request metadata conflicts with the capture context`)}function qg(e,t,n,r){if(e.number!==t.prNumber||e.state!==`open`||e.base.repository.id!==n.repository.id||e.base.repository.fullName!==t.base.repository||e.base.ref!==r||e.base.sha!==t.base.sha||e.head.repository.id!==t.head.repositoryId||e.head.repository.fullName!==t.head.repository||e.head.ref!==t.head.ref||e.head.sha!==t.head.sha)throw Error(`Kapture artifacts are stale or do not belong to the current open pull request`);Kg(n,t)}async function Jg(e,t,n){let[r,i]=await Promise.all([e.getContentSha(t.base.repository,n,t.base.sha),e.getContentSha(t.head.repository,n,t.head.sha)]);if(!og.test(r)||i!==r)throw Error(`Pull requests that modify the capture workflow require separate review before publishing`)}function Yg(e,t){if(e.id!==t.run.id||e.runNumber!==t.run.runNumber||e.runAttempt!==t.run.attempt||e.workflowId!==t.run.workflowId||e.path!==t.run.workflowPath||e.status!==`completed`||e.conclusion!==`success`||e.event!==`pull_request`||e.headSha!==t.run.headSha||e.headBranch!==t.run.headBranch||e.headRepository.id!==t.run.headRepository.id||e.headRepository.fullName!==t.run.headRepository.fullName||e.repository.id!==t.repository.id||e.repository.fullName!==t.repository.fullName)throw Error(`Triggering capture run metadata changed or no longer matches the event`)}function Xg(e,t,n,r,i){if(!i.contentDigest)throw Error(`Trusted report is missing contentDigest`);if(i.headBranch!==n.head.ref)throw Error(`Trusted report branch does not match its verified pull request context`);let a=Fh(n);return{schemaVersion:2,repository:{id:e.repository.id,fullName:e.repository.fullName},context:n,captureRun:{id:t.id,runNumber:t.runNumber,attempt:t.runAttempt,workflowId:t.workflowId,workflowPath:t.path,headSha:t.headSha,headBranch:t.headBranch,headRepositoryId:t.headRepository.id,headRepository:t.headRepository.fullName},artifacts:{context:Zg(r.context),baseStorybook:Zg(r.baseStorybook),headStorybook:Zg(r.headStorybook),report:Zg(r.report)},report:{contentDigest:i.contentDigest},trustedArtifactName:`kapture-trusted-report-${a}`}}function Zg(e){return{id:e.id,name:e.name,sizeInBytes:e.sizeInBytes,digest:e.digest}}function Qg(e){let t=Fh(e.context);if(e.context.runId!==e.captureRun.id||e.context.base.repository!==e.repository.fullName||e.context.head.repository!==e.captureRun.headRepository||e.context.head.repositoryId!==e.captureRun.headRepositoryId||e.context.head.ref!==e.captureRun.headBranch||e.context.preview.branch!==e.context.head.ref||e.context.preview.alias!==Ih(e.context.prNumber,e.context.head.ref)||e.artifacts.context.name!==`kapture-context-${t}`||e.artifacts.baseStorybook.name!==`kapture-storybook-base-${t}`||e.artifacts.headStorybook.name!==`kapture-storybook-head-${t}`||e.artifacts.report.name!==`kapture-visual-report-${t}`||e.trustedArtifactName!==`kapture-trusted-report-${t}`||new Set(n_(e).map(e=>e.id)).size!==4||new Set(n_(e).map(e=>e.name)).size!==4||e.artifacts.context.sizeInBytes>33685504||e.artifacts.baseStorybook.sizeInBytes>536870912||e.artifacts.headStorybook.sizeInBytes>536870912||e.artifacts.report.sizeInBytes>629145600||!ug.test(e.captureRun.workflowPath))throw Error(`Trusted receipt fields are not internally consistent`)}function $g(e,t){if(Qg(e),e.repository.id!==t.repository.id||e.repository.fullName!==t.repository.fullName||e.captureRun.id!==t.run.id||e.captureRun.runNumber!==t.run.runNumber||e.captureRun.attempt!==t.run.attempt||e.captureRun.workflowId!==t.run.workflowId||e.captureRun.workflowPath!==t.run.workflowPath||e.captureRun.headSha!==t.run.headSha||e.captureRun.headBranch!==t.run.headBranch||e.captureRun.headRepositoryId!==t.run.headRepository.id||e.captureRun.headRepository!==t.run.headRepository.fullName)throw Error(`Trusted receipt does not belong to the triggering workflow_run event`);Kg(t,e.context)}function e_(e,t){if(e.id!==t.captureRun.id||e.runNumber!==t.captureRun.runNumber||e.runAttempt!==t.captureRun.attempt||e.workflowId!==t.captureRun.workflowId||e.path!==t.captureRun.workflowPath||e.status!==`completed`||e.conclusion!==`success`||e.event!==`pull_request`||e.headSha!==t.captureRun.headSha||e.headBranch!==t.captureRun.headBranch||e.headRepository.id!==t.captureRun.headRepositoryId||e.headRepository.fullName!==t.captureRun.headRepository||e.repository.id!==t.repository.id||e.repository.fullName!==t.repository.fullName)throw Error(`Capture run changed after prepare-run verification`)}async function t_(e,t,n){let r=await e.listRunArtifacts(t.captureRun.id);for(let e of n_(t)){let t=r.filter(t=>t.id===e.id);if(t.length!==1||!t[0])throw Error(`Receipt-bound artifact ${e.id} is no longer available`);r_(t[0],e,n)}}function n_(e){return[e.artifacts.context,e.artifacts.baseStorybook,e.artifacts.headStorybook,e.artifacts.report]}function r_(e,t,n){if(e.id!==t.id||e.name!==t.name||e.sizeInBytes!==t.sizeInBytes||e.digest!==t.digest||!Ag(e,n))throw Error(`Artifact ${t.id} no longer matches its trusted receipt binding`)}function i_(e,t,n,r){if(e.expired||e.name!==r.trustedArtifactName||e.digest!==t||e.workflowRun.id!==n||e.workflowRun.repositoryId!==r.repository.id||e.workflowRun.headRepositoryId!==r.repository.id||e.sizeInBytes>629145600)throw Error(`Trusted report artifact does not match the exact cleanup binding`)}function a_(e){let t=e.startsWith(`sha256:`)?e:`sha256:${e}`;if(!sg.test(t))throw Error(`trusted-artifact-digest must be a 64-character SHA-256 digest`);return t}function o_(){let e=process.env.GITHUB_RUN_ID;if(!e||!/^[1-9][0-9]*$/.test(e))throw Error(`GITHUB_RUN_ID must identify the current trusted reporter workflow run`);let t=Number(e);if(!Number.isSafeInteger(t))throw Error(`GITHUB_RUN_ID must be a safe positive integer`);return t}async function s_(e,t,n,r,i,a){let o=await e.getWorkflowRun(n.id);Yg(o,t),await Dg(e,o),qg(await e.getPullRequest(r.prNumber),r,t,i),await Jg(e,r,a)}function c_(e,t){return{repository:e.repository.ref,issueNumber:t.prNumber,headSha:t.head.sha,captureRunId:e.run.id,captureRunAttempt:e.run.attempt,captureWorkflowId:e.run.workflowId,captureRunHeadBranch:e.run.headBranch,captureRunHeadRepositoryId:e.run.headRepository.id}}function l_(e){let t=S_(e,`workflow_run pull request`),n=S_(t.base,`workflow_run pull request base`),r=S_(t.head,`workflow_run pull request head`);return{number:y_(t.number,`workflow_run pull request number`),base:{repositoryId:y_(S_(n.repo,`workflow_run pull request base repository`).id,`workflow_run pull request base repository ID`),ref:__(n.ref,`workflow_run pull request base ref`),sha:g_(n.sha,`workflow_run pull request base SHA`)},head:{repositoryId:y_(S_(r.repo,`workflow_run pull request head repository`).id,`workflow_run pull request head repository ID`),ref:__(r.ref,`workflow_run pull request head ref`),sha:g_(r.sha,`workflow_run pull request head SHA`)}}}async function u_(e){let t=f(e??process.env.RUNNER_TEMP??de());return await y(t,{recursive:!0}),te(`${t}${p}kapture-prepare-`)}async function d_(e,t){let n=f(e),r=f(n,`..`);await y(r,{recursive:!0}),await se(n,`${JSON.stringify(t,null,2)}\n`,{flag:`wx`})}async function f_(e,t){try{await oe(e)}catch(e){if(e.code===`ENOENT`)return;throw e}throw Error(`${t} already exists: ${e}`)}function p_(e){if(!ug.test(e)||e.includes(`//`)||e.includes(`..`))throw Error(`capture-workflow-path must be a safe .github/workflows YAML path`);return e}function m_(e,t){let n=v_(e,`${t} full name`);if(!lg.test(n))throw Error(`${t} full name is invalid`);return n}function h_(e){let[t,n,...r]=e.split(`/`);if(!t||!n||r.length>0)throw Error(`Repository full name is invalid`);return{owner:t,repo:n}}function g_(e,t){let n=v_(e,t);if(!og.test(n))throw Error(`${t} must be a lowercase full SHA`);return n}function __(e,t){let n=v_(e,t);if(x_(n))throw Error(`${t} contains control characters`);return n}function v_(e,t){if(typeof e!=`string`||e.length<1||e.length>512)throw Error(`${t} must be a non-empty bounded string`);return e}function y_(e,t){if(!b_(e))throw Error(`${t} must be a positive integer`);return e}function b_(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function x_(e){return Array.from(e).some(e=>{let t=e.codePointAt(0)??0;return t<=31||t===127})}function S_(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function C_(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e}function w_(e,t){let n=d(e,t);return n===``||!s(n)&&n!==`..`&&!n.startsWith(`..${p}`)}var T_=class{#e;#t;#n;constructor(e,t,n=fetch){if(!e)throw Error(`GITHUB_TOKEN is required`);this.#e=e,this.#t=t,this.#n=n}async getWorkflowRun(e){return D_(await this.#i(`GET`,`${this.#r()}/actions/runs/${e}`))}async listWorkflowRuns(e,t){let n=[];for(let r=1;r<=10;r+=1){let i=new URLSearchParams({event:`pull_request`,branch:t,per_page:`100`,page:String(r)}),a=P_(N_(await this.#i(`GET`,`${this.#r()}/actions/workflows/${e}/runs?${i}`),`workflow runs response`).workflow_runs,`workflow_runs`).map(O_);if(n.push(...a),a.length<100)return n}throw Error(`GitHub returned more than 1000 workflow runs`)}async listRunArtifacts(e){let t=[];for(let n=1;n<=10;n+=1){let r=new URLSearchParams({per_page:`100`,page:String(n)}),i=P_(N_(await this.#i(`GET`,`${this.#r()}/actions/runs/${e}/artifacts?${r}`),`artifacts response`).artifacts,`artifacts`).map(k_);if(t.push(...i),i.length<100)return t}throw Error(`GitHub returned more than 1000 workflow artifacts`)}async getArtifact(e){let t=await this.#o(`GET`,`${this.#r()}/actions/artifacts/${e}`);return t.status===404?null:(await E_(t,`GET`,`/actions/artifacts/${e}`),k_(await t.json()))}async downloadArtifactArchive(e,t){if(!Number.isSafeInteger(t)||t<=0)throw Error(`Artifact download byte limit must be positive`);let n=await this.#o(`GET`,`${this.#r()}/actions/artifacts/${e}/zip`,`manual`),r=await this.#a(n,e);await E_(r,`GET`,`/actions/artifacts/${e}/zip`);let i=r.headers.get(`content-length`);if(i!==null){let n=Number(i);if(!Number.isSafeInteger(n)||n<0||n>t)throw Error(`Artifact ${e} exceeds the ${t} byte download limit`)}if(!r.body)throw Error(`Artifact ${e} download returned no body`);let a=r.body.getReader(),o=[],s=0;try{for(;;){let{done:n,value:r}=await a.read();if(n)break;if(s+=r.byteLength,s>t)throw await a.cancel(),Error(`Artifact ${e} exceeds the ${t} byte download limit`);o.push(Buffer.from(r))}}finally{a.releaseLock()}if(s<1)throw Error(`Artifact ${e} download is empty`);return Buffer.concat(o,s)}async deleteArtifact(e){let t=await this.#o(`DELETE`,`${this.#r()}/actions/artifacts/${e}`);t.status!==404&&await E_(t,`DELETE`,`/actions/artifacts/${e}`)}async getPullRequest(e){return A_(await this.#i(`GET`,`${this.#r()}/pulls/${e}`))}async listOpenPullRequestsForHead(e,t,n){let r=M_(e),i=[];for(let e=1;e<=10;e+=1){let a=new URLSearchParams({state:`open`,base:n,head:`${r.owner}:${t}`,per_page:`100`,page:String(e)}),o=P_(await this.#i(`GET`,`${this.#r()}/pulls?${a}`),`pull requests response`).map(A_);if(i.push(...o),o.length<100)return i}throw Error(`GitHub returned more than 1000 matching pull requests`)}async getContentSha(e,t,n){let r=M_(e),i=t.split(`/`).map(encodeURIComponent).join(`/`),a=new URLSearchParams({ref:n});return R_(N_(await this.#i(`GET`,`/repos/${encodeURIComponent(r.owner)}/${encodeURIComponent(r.repo)}/contents/${i}?${a}`),`contents response`).sha,`contents SHA`)}#r(){let{owner:e,repo:t}=this.#t;return`/repos/${encodeURIComponent(e)}/${encodeURIComponent(t)}`}async#i(e,t){let n=await this.#o(e,t);return await E_(n,e,t),n.json()}async#a(e,t){if(e.status<300||e.status>399)return e;let n=e.headers.get(`location`);if(!n)throw Error(`Artifact ${t} redirect is missing its location`);let r;try{r=new URL(n)}catch{throw Error(`Artifact ${t} redirect location is invalid`)}if(r.protocol!==`https:`||r.username||r.password)throw Error(`Artifact ${t} redirect must be a credential-free HTTPS URL`);return this.#n(r,{method:`GET`,headers:{Accept:`application/octet-stream`,"User-Agent":`kapture-cli`},redirect:`follow`})}#o(e,t,n=`follow`){return this.#n(`https://api.github.com${t}`,{method:e,headers:{Accept:`application/vnd.github+json`,Authorization:`Bearer ${this.#e}`,"X-GitHub-Api-Version":`2022-11-28`,"User-Agent":`kapture-cli`},redirect:n})}};async function E_(e,t,n){if(!e.ok)throw Error(`GitHub API ${t} ${n} failed with status ${e.status}`)}function D_(e){let t=N_(e,`workflow run`);return{id:$(t.id,`workflow run ID`),runNumber:$(t.run_number,`workflow run number`),runAttempt:$(t.run_attempt,`workflow run attempt`),workflowId:$(t.workflow_id,`workflow ID`),path:F_(t.path,`workflow path`),status:F_(t.status,`workflow run status`),conclusion:I_(t.conclusion,`workflow run conclusion`),event:F_(t.event,`workflow run event`),headSha:R_(t.head_sha,`workflow run head SHA`),headBranch:F_(t.head_branch,`workflow run head branch`),headRepository:j_(t.head_repository,`workflow run head repository`),repository:j_(t.repository,`workflow run repository`)}}function O_(e){let t=N_(e,`workflow run candidate`);return{id:$(t.id,`workflow run ID`),runNumber:$(t.run_number,`workflow run number`),headRepositoryId:$(N_(t.head_repository,`workflow run head repository`).id,`workflow run head repository ID`)}}function k_(e){let t=N_(e,`workflow artifact`),n=N_(t.workflow_run,`artifact workflow run`);return{id:$(t.id,`artifact ID`),name:F_(t.name,`artifact name`),sizeInBytes:$(t.size_in_bytes,`artifact size`),digest:z_(t.digest,`artifact digest`),expired:L_(t.expired,`artifact expired`),workflowRun:{id:$(n.id,`artifact workflow run ID`),repositoryId:$(n.repository_id,`artifact workflow repository ID`),headRepositoryId:$(n.head_repository_id,`artifact workflow head repository ID`),headBranch:F_(n.head_branch,`artifact workflow head branch`),headSha:R_(n.head_sha,`artifact workflow head SHA`)}}}function A_(e){let t=N_(e,`pull request`),n=N_(t.base,`pull request base`),r=N_(t.head,`pull request head`),i=F_(t.state,`pull request state`);if(i!==`open`&&i!==`closed`)throw Error(`Pull request state is invalid`);return{number:$(t.number,`pull request number`),state:i,base:{ref:F_(n.ref,`pull request base ref`),sha:R_(n.sha,`pull request base SHA`),repository:j_(n.repo,`pull request base repository`)},head:{ref:F_(r.ref,`pull request head ref`),sha:R_(r.sha,`pull request head SHA`),repository:j_(r.repo,`pull request head repository`)}}}function j_(e,t){let n=N_(e,t),r=F_(n.full_name,`${t} full name`);return M_(r),{id:$(n.id,`${t} ID`),fullName:r}}function M_(e){let t=e.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!t?.[1]||!t[2])throw Error(`Repository full name is invalid`);return{owner:t[1],repo:t[2]}}function N_(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function P_(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e}function $(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);return e}function F_(e,t){if(typeof e!=`string`||e.length<1||e.length>512)throw Error(`${t} must be a non-empty bounded string`);for(let n of e){let e=n.codePointAt(0)??0;if(e<=31||e===127)throw Error(`${t} contains control characters`)}return e}function I_(e,t){return e===null?null:F_(e,t)}function L_(e,t){if(typeof e!=`boolean`)throw Error(`${t} must be a boolean`);return e}function R_(e,t){if(typeof e!=`string`||!/^[0-9a-f]{40}$/.test(e))throw Error(`${t} must be a lowercase full SHA`);return e}function z_(e,t){if(typeof e!=`string`||!/^sha256:[0-9a-f]{64}$/.test(e))throw Error(`${t} must be a SHA-256 digest`);return e}const B_=T({meta:{name:`cleanup`,description:`Delete only exact receipt-bound Kapture artifact IDs`},args:{receipt:{type:`string`,required:!0,description:`Path to the strict prepare-run receipt`},"trusted-artifact-id":{type:`string`,description:`Exact current trusted report artifact ID`},"trusted-artifact-digest":{type:`string`,description:`upload-artifact SHA-256 digest for the current trusted report artifact`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await fd(),r=H_(n),i=e[`trusted-artifact-id`]?V_(e[`trusted-artifact-id`],`trusted-artifact-id`):void 0,a=await wg(new T_(t,r),{event:n,receiptPath:f(e.receipt),...i===void 0?{}:{trustedArtifactId:i},...e[`trusted-artifact-digest`]?{trustedArtifactDigest:e[`trusted-artifact-digest`]}:{}});await Ed({"deleted-artifact-count":a.length,"deleted-artifact-ids":a.join(`,`)})}});function V_(e,t){if(!/^[1-9][0-9]*$/.test(e))throw Error(`${t} must be a positive integer`);let n=Number(e);if(!Number.isSafeInteger(n))throw Error(`${t} must be a safe integer`);return n}function H_(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const U_=T({meta:{name:`context`,description:`Validate a pull request event and write immutable Kapture capture context`},args:{output:{type:`string`,required:!0,description:`Path for the normalized context JSON`},"changed-files-output":{type:`string`,required:!0,description:`Path for the versioned changed-files manifest`},"base-branch":{type:`string`,description:`Expected pull request base branch`}},async run({args:e}){let t=Ph(await fd(),e[`base-branch`]),n=process.env.GITHUB_TOKEN;if(!n)throw Error(`GITHUB_TOKEN is required`);let[r,i]=t.base.repository.split(`/`);if(!r||!i)throw Error(`Capture context repository is invalid`);let o=await Wh(new ld(n,{owner:r,repo:i}),t),s=f(e.output),c=f(e[`changed-files-output`]);if(s===c)throw Error(`output and changed-files-output must be different paths`);await Promise.all([y(a(s),{recursive:!0}),y(a(c),{recursive:!0})]),await Promise.all([se(s,`${JSON.stringify(t,null,2)}\n`,{flag:`wx`}),se(c,`${JSON.stringify(o,null,2)}\n`,{flag:`wx`})]),await Ed({"artifact-suffix":Fh(t),"base-repository":t.base.repository,"base-ref":t.base.ref,"base-sha":t.base.sha,"changed-files-complete":String(o.complete),"changed-files-count":o.files.length,"changed-files-path":c,"context-path":s,"head-repository":t.head.repository,"head-repository-id":t.head.repositoryId,"head-ref":t.head.ref,"head-sha":t.head.sha,"pr-number":t.prNumber,"preview-branch":t.preview.branch,"preview-alias":t.preview.alias})}}),W_=/^[0-9a-f]{40}$/,G_=/^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/,K_=/^\.github\/workflows\/[A-Za-z0-9_./-]+\.ya?ml$/,q_=`Base branch changed; rerun visual capture`,J_=new Set([`action_required`,`cancelled`,`failure`,`neutral`,`skipped`,`stale`,`startup_failure`,`success`,`timed_out`]);async function Y_(e,t,n){let r=hv(n.captureWorkflowPath),i=yv(n.baseBranch,`base branch`),a=Qu(n.statusContext),o=Q_(n.event,r),s=await $_(e,o,i);if(!s.ok)return fv(s.reason);if(await iv(t,o,s.target))return fv(`final-report-exists`,s.target);let c=await $_(e,o,i);if(!c.ok)return fv(c.reason,s.target);if(!dv(s.target,c.target))return fv(`pull-request-changed`,c.target);if(await iv(t,o,c.target))return fv(`final-report-exists`,c.target);let l=lv(o,c.target);return await t.setReviewStatus(c.target.headSha,l.state,l.description,a),{status:l.state,reason:`status-written`,prNumber:c.target.prNumber,headSha:c.target.headSha}}async function X_(e,t,n){let r=hv(n.captureWorkflowPath),i=yv(n.baseBranch,`base branch`),a=Qu(n.statusContext),o=Z_(n.event,r),s=await $_(e,o,i);if(!s.ok)return pv(s.reason);let c=ov(o,await av(t,o,s.target,a),s.target);if(c)return pv(c,s.target);let l=await $_(e,o,i);if(!l.ok)return pv(l.reason,s.target);if(!dv(s.target,l.target))return pv(`pull-request-changed`,l.target);let u=ov(o,await av(t,o,l.target,a),l.target);if(u)return pv(u,l.target);let d=l.target.baseDrift?q_:o.run.conclusion===`success`?`Visual report publication did not complete`:`Visual capture did not succeed (${o.run.conclusion})`;return await t.setReviewStatus(l.target.headSha,`error`,d,a),{status:`error`,reason:`status-written`,prNumber:l.target.prNumber,headSha:l.target.headSha}}function Z_(e,t){let n=Q_(e,t);if(n.run.status!==`completed`)throw Error(`Kapture finalize-run requires a completed workflow_run event`);return{...n,run:{...n.run,status:`completed`}}}function Q_(e,t){let n=wv(e,`GitHub workflow_run event`),r=xv(n.action,`workflow_run action`);if(r!==`in_progress`&&r!==`completed`)throw Error(`Kapture reconcile-run requires an in_progress or completed workflow_run event`);let i=wv(n.repository,`event repository`),a=gv(i.full_name,`event repository`),o=Sv(i.id,`event repository ID`),s=wv(n.workflow_run,`workflow_run`),c=hv(xv(s.path,`workflow path`));if(c!==hv(t))throw Error(`workflow_run path ${c} does not match ${t}`);if(s.event!==`pull_request`)throw Error(`Kapture reconcile-run requires a pull_request capture run`);let l=xv(s.status,`workflow run status`),u=bv(s.conclusion,`workflow run conclusion`);if(r===`in_progress`&&(l!==`in_progress`||u!==null))throw Error(`An in_progress workflow_run event must describe an unfinished run`);if(r===`completed`&&(l!==`completed`||u===null||!J_.has(u)))throw Error(`A completed workflow_run event must have a supported conclusion`);let d=wv(s.head_repository,`workflow_run head repository`),f={id:Sv(d.id,`workflow run head repository ID`),fullName:gv(d.full_name,`workflow run head repository`)},p=yv(s.head_branch,`workflow run head branch`),m=Tv(s.pull_requests,`workflow_run pull requests`);if(m.length>1)throw Error(`workflow_run must contain at most one pull request`);let h=m[0]?mv(m[0]):void 0;if(h&&(h.base.repositoryId!==o||h.head.repositoryId!==f.id||h.head.ref!==p))throw Error(`workflow_run pull request metadata conflicts with run provenance`);return{repository:{id:o,fullName:a,ref:_v(a)},run:{id:Sv(s.id,`workflow run ID`),runNumber:Sv(s.run_number,`workflow run number`),attempt:Sv(s.run_attempt,`workflow run attempt`),workflowId:Sv(s.workflow_id,`workflow ID`),workflowPath:c,status:l,conclusion:u,event:`pull_request`,headSha:vv(s.head_sha,`workflow run head SHA`),headBranch:p,headRepository:f},...h?{pullRequest:h}:{}}}async function $_(e,t,n){let r=await e.getWorkflowRun(t.run.id);return ev(r,t),r.runAttempt===t.run.attempt?r.status!==t.run.status||r.conclusion!==t.run.conclusion?{ok:!1,reason:`stale-run-state`}:await tv(e,r)?nv(e,t,n):{ok:!1,reason:`superseded-run`}:{ok:!1,reason:`stale-run-attempt`}}function ev(e,t){if(e.id!==t.run.id||e.runNumber!==t.run.runNumber||e.workflowId!==t.run.workflowId||hv(e.path)!==t.run.workflowPath||e.event!==`pull_request`||e.headSha!==t.run.headSha||e.headBranch!==t.run.headBranch||e.headRepository.id!==t.run.headRepository.id||e.headRepository.fullName!==t.run.headRepository.fullName||e.repository.id!==t.repository.id||e.repository.fullName!==t.repository.fullName)throw Error(`Triggering capture run identity no longer matches the workflow_run event`)}async function tv(e,t){let n=(await e.listWorkflowRuns(t.workflowId,t.headBranch)).filter(e=>e.headRepositoryId===t.headRepository.id);if(n.filter(e=>e.id===t.id).some(e=>e.runNumber!==t.runNumber))throw Error(`Latest workflow run metadata conflicts with the triggering run`);return n.reduce((e,t)=>e?t.runNumber===e.runNumber?t.id>e.id?t:e:t.runNumber>e.runNumber?t:e:t,void 0)?.id===t.id}async function nv(e,t,n){if(t.pullRequest){if(t.pullRequest.base.ref!==n)return{ok:!1,reason:`base-branch-mismatch`};let r=await e.getPullRequest(t.pullRequest.number);return rv(r,t,n)?{ok:!0,target:uv(r,r.base.sha!==t.pullRequest.base.sha)}:{ok:!1,reason:`pull-request-not-current`}}let r=(await e.listOpenPullRequestsForHead(t.run.headRepository.fullName,t.run.headBranch,n)).filter(e=>e.state===`open`&&e.base.repository.id===t.repository.id&&e.base.repository.fullName===t.repository.fullName&&e.base.ref===n&&e.head.repository.id===t.run.headRepository.id&&e.head.repository.fullName===t.run.headRepository.fullName&&e.head.ref===t.run.headBranch);return r.length===0?{ok:!1,reason:`pull-request-not-found`}:r.length===1?{ok:!0,target:uv(r[0])}:{ok:!1,reason:`pull-request-ambiguous`}}function rv(e,t,n){let r=t.pullRequest;return!!(r&&e.number===r.number&&e.state===`open`&&e.base.repository.id===t.repository.id&&e.base.repository.fullName===t.repository.fullName&&e.base.ref===n&&e.head.repository.id===t.run.headRepository.id&&e.head.repository.fullName===t.run.headRepository.fullName&&e.head.ref===t.run.headBranch&&e.head.sha===r.head.sha)}async function iv(e,t,n){return cv(await e.findCurrentReportMarker(n.prNumber,n.baseSha,n.headSha),t)}async function av(e,t,n,r){let i=await e.findCurrentReportMarker(n.prNumber,n.baseSha,n.headSha),a=await e.getLatestReviewStatus(n.headSha,r);return{marker:cv(i,t)?i:null,status:a}}function ov(e,t,n){return n.baseDrift&&t.status?.state===`error`&&t.status.description===q_?`base-drift-already-recorded`:e.run.conclusion===`success`?sv(t)?`final-report-exists`:t.status?.state===`error`&&t.status.description===`Visual report publication did not complete`?`publication-failure-already-recorded`:void 0:t.status?.state===`error`?`capture-failure-already-recorded`:void 0}function sv(e){let{marker:t,status:n}=e;return!t?.reportUrl||!n||t.reportUrl!==n.targetUrl?!1:t.status===`clean`?n.state===`success`&&n.description===`No visual changes`:t.status===`changed`?n.state===`pending`&&n.description===`Visual changes require approval`:n.state===`failure`}function cv(e,t){return!!(e&&e.captureRunId===t.run.id&&e.captureRunAttempt===t.run.attempt&&e.captureWorkflowId===t.run.workflowId&&e.captureRunHeadBranch===t.run.headBranch&&e.captureRunHeadRepositoryId===t.run.headRepository.id)}function lv(e,t){return t.baseDrift?{state:`error`,description:q_}:e.run.status===`in_progress`?{state:`pending`,description:`Visual capture is in progress`}:e.run.conclusion===`success`?{state:`pending`,description:`Visual report is awaiting publication`}:{state:`error`,description:`Visual capture did not succeed (${e.run.conclusion})`}}function uv(e,t=!1){return{prNumber:e.number,baseSha:e.base.sha,headSha:e.head.sha,baseDrift:t}}function dv(e,t){return e.prNumber===t.prNumber&&e.baseSha===t.baseSha&&e.headSha===t.headSha&&e.baseDrift===t.baseDrift}function fv(e,t){return{status:`noop`,reason:e,...t?{prNumber:t.prNumber,headSha:t.headSha}:{}}}function pv(e,t){return{status:`noop`,reason:e,...t?{prNumber:t.prNumber,headSha:t.headSha}:{}}}function mv(e){let t=wv(e,`workflow_run pull request`),n=wv(t.base,`workflow_run pull request base`),r=wv(t.head,`workflow_run pull request head`);return{number:Sv(t.number,`workflow_run pull request number`),base:{repositoryId:Sv(wv(n.repo,`workflow_run pull request base repository`).id,`workflow_run pull request base repository ID`),ref:yv(n.ref,`workflow_run pull request base ref`),sha:vv(n.sha,`workflow_run pull request base SHA`)},head:{repositoryId:Sv(wv(r.repo,`workflow_run pull request head repository`).id,`workflow_run pull request head repository ID`),ref:yv(r.ref,`workflow_run pull request head ref`),sha:vv(r.sha,`workflow_run pull request head SHA`)}}}function hv(e){if(!K_.test(e)||e.includes(`//`)||e.includes(`..`))throw Error(`capture-workflow-path must be a safe .github/workflows YAML path`);return e}function gv(e,t){let n=xv(e,`${t} full name`);if(!G_.test(n))throw Error(`${t} full name is invalid`);return n}function _v(e){let[t,n,...r]=e.split(`/`);if(!t||!n||r.length>0)throw Error(`Repository full name is invalid`);return{owner:t,repo:n}}function vv(e,t){let n=xv(e,t);if(!W_.test(n))throw Error(`${t} must be a lowercase full SHA`);return n}function yv(e,t){let n=xv(e,t);if(Cv(n))throw Error(`${t} contains control characters`);return n}function bv(e,t){return e===null?null:xv(e,t)}function xv(e,t){if(typeof e!=`string`||e.length<1||e.length>512)throw Error(`${t} must be a non-empty bounded string`);if(Cv(e))throw Error(`${t} contains control characters`);return e}function Sv(e,t){if(typeof e!=`number`||!Number.isSafeInteger(e)||e<=0)throw Error(`${t} must be a positive integer`);return e}function Cv(e){return Array.from(e).some(e=>{let t=e.codePointAt(0)??0;return t<=31||t===127})}function wv(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Tv(e,t){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e}const Ev=T({meta:{name:`finalize-run`,description:`Close an unfinished status for the exact completed trusted workflow run`},args:{"capture-workflow-path":{type:`string`,default:`.github/workflows/visual-capture.yml`,description:`Trusted path of the pull_request capture workflow`},"base-branch":{type:`string`,required:!0,description:`Expected pull request base branch`},"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await fd(),r=Dv(n),i=await X_(new T_(t,r),new ld(t,r),{event:n,captureWorkflowPath:e[`capture-workflow-path`],baseBranch:e[`base-branch`],statusContext:Qu(e[`status-context`])});await Ed({status:i.status,"finalize-reason":i.reason,...i.prNumber===void 0?{}:{"pr-number":i.prNumber},...i.headSha?{"head-sha":i.headSha}:{}})}});function Dv(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const Ov=T({meta:{name:`prepare-run`,description:`Download, verify, and rebuild a completed workflow_run report`},args:{"capture-workflow-path":{type:`string`,default:`.github/workflows/visual-capture.yml`,description:`Trusted path of the pull_request capture workflow`},"base-branch":{type:`string`,required:!0,description:`Expected pull request base branch`},output:{type:`string`,default:`.kapture/trusted-report`,description:`New directory for the trusted static report`},receipt:{type:`string`,default:`.kapture/trusted-run-receipt.json`,description:`Path for the strict trusted-run receipt`},"storybook-url":{type:`string`,description:`Trusted HTTPS Storybook URL or the fixed same-origin ./storybook/ directory`},"temporary-root":{type:`string`,description:`Trusted temporary directory root (defaults to RUNNER_TEMP)`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await fd(),r=await xg(new T_(t,kv(n)),{event:n,captureWorkflowPath:e[`capture-workflow-path`],baseBranch:e[`base-branch`],outputDir:f(e.output),receiptPath:f(e.receipt),...e[`storybook-url`]?{storybookUrl:e[`storybook-url`]}:{},...e[`temporary-root`]?{temporaryRoot:f(e[`temporary-root`])}:{}});await Ed({"base-sha":r.receipt.context.base.sha,"context-artifact-id":r.receipt.artifacts.context.id,"head-repository":r.receipt.context.head.repository,"head-sha":r.receipt.context.head.sha,"pr-number":r.receipt.context.prNumber,"preview-branch":r.receipt.context.preview.branch,"preview-alias":r.receipt.context.preview.alias,"raw-report-artifact-id":r.receipt.artifacts.report.id,"report-digest":r.receipt.report.contentDigest,"report-directory":r.reportDirectory,"report-path":r.reportPath,receipt:r.receiptPath,"run-attempt":r.receipt.captureRun.attempt,"run-head-branch":r.receipt.captureRun.headBranch,"run-head-repository-id":r.receipt.captureRun.headRepositoryId,"run-head-sha":r.receipt.captureRun.headSha,"run-id":r.receipt.captureRun.id,"changed-files-complete":String(r.changedFiles.complete),"changed-files-count":r.changedFiles.files.length,"trusted-artifact-name":r.receipt.trustedArtifactName,"workflow-id":r.receipt.captureRun.workflowId})}});function kv(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const Av=T({meta:{name:`prepare-storybook-run`,description:`Verify and extract the exact receipt-bound head Storybook artifact`},args:{"capture-workflow-path":{type:`string`,default:`.github/workflows/visual-capture.yml`,description:`Trusted path of the pull_request capture workflow`},"base-branch":{type:`string`,required:!0,description:`Expected pull request base branch`},output:{type:`string`,required:!0,description:`New directory for the verified head Storybook`},receipt:{type:`string`,required:!0,description:`Path to the strict prepare-run receipt`},"temporary-root":{type:`string`,description:`Trusted temporary directory root (defaults beside output)`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await fd(),r=await Cg(new T_(t,jv(n)),{event:n,captureWorkflowPath:e[`capture-workflow-path`],baseBranch:e[`base-branch`],outputDir:f(e.output),receiptPath:f(e.receipt),...e[`temporary-root`]?{temporaryRoot:f(e[`temporary-root`])}:{}});await Ed({"head-ref":r.context.head.ref,"head-repository":r.context.head.repository,"head-sha":r.context.head.sha,"head-storybook-artifact-id":r.artifact.id,"pr-number":r.context.prNumber,"preview-branch":r.context.preview.branch,"preview-alias":r.context.preview.alias,receipt:r.receiptPath,"storybook-directory":r.storybookDirectory})}});function jv(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const Mv=T({meta:{name:`publish-run`,description:`Revalidate a prepare-run receipt and publish its deployed visual report`},args:{receipt:{type:`string`,required:!0,description:`Path to the strict prepare-run receipt`},report:{type:`string`,required:!0,description:`Path to the trusted image-bound report.json`},"report-url":{type:`string`,required:!0,description:`Immutable HTTPS URL of the deployed dashboard`},"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`},"comment-language":{type:`string`,default:`en`,description:`PR comment language (en or ko)`}},async run({args:e}){try{let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await fd(),r=Nv(n),i=Xu(e[`report-url`]);if(!i)throw Error(`report-url is required`);let a=await Sg(new T_(t,r),new ld(t,r),{event:n,receiptPath:f(e.receipt),reportPath:f(e.report),reportUrl:i,statusContext:Qu(e[`status-context`]),commentLanguage:Bu(e[`comment-language`])});if(await Ed({status:a.status,"changed-count":a.changedCount,"comment-id":a.commentId,"report-digest":a.reportDigest}),a.status===`error`)throw Error(`Visual capture errors were published to the trusted report`)}catch(e){throw await Ed({status:`error`}),e}}});function Nv(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const Pv=T({meta:{name:`reconcile-run`,description:`Reconcile a trusted workflow_run event with the current PR status`},args:{"capture-workflow-path":{type:`string`,default:`.github/workflows/visual-capture.yml`,description:`Trusted path of the pull_request capture workflow`},"base-branch":{type:`string`,required:!0,description:`Expected pull request base branch`},"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await fd(),r=Fv(n),i=await Y_(new T_(t,r),new ld(t,r),{event:n,captureWorkflowPath:e[`capture-workflow-path`],baseBranch:e[`base-branch`],statusContext:Qu(e[`status-context`])});await Ed({status:i.status,"reconcile-reason":i.reason,...i.prNumber===void 0?{}:{"pr-number":i.prNumber},...i.headSha?{"head-sha":i.headSha}:{}})}});function Fv(e){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`GitHub event payload must be an object`);let t=e.repository;if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`GitHub event repository must be an object`);let n=t.full_name;if(typeof n!=`string`)throw Error(`GitHub event repository is invalid`);let r=n.match(/^([A-Za-z0-9_.-]+)\/([A-Za-z0-9_.-]+)$/);if(!r?.[1]||!r[2])throw Error(`GitHub event repository is invalid`);return{owner:r[1],repo:r[2]}}const Iv=T({meta:{name:`report`,description:`Publish a trusted Kapture PR report and commit status`},args:{report:{type:`string`,required:!0,description:`Path to image-bound trusted report.json`},"report-url":{type:`string`,description:`HTTPS URL for the full report or workflow run`},"status-context":{type:`string`,default:`Kapture Visual Review`,description:`GitHub commit status context`},"comment-language":{type:`string`,default:`en`,description:`PR comment language (en or ko)`}},async run({args:e}){try{let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await nh(e.report),r=pd(await fd()),i=Qu(e[`status-context`]),a=Xu(e[`report-url`]),o=await Cd(new ld(t,r.repository),r,n,i,a,Bu(e[`comment-language`]));if(await Ed({status:o.status,"changed-count":o.changedCount,"comment-id":o.commentId,"report-digest":o.reportDigest}),o.status===`error`)throw Error(`${n.summary.errors} visual capture error(s)`)}catch(e){throw await Ed({status:`error`}),e}}}),Lv=T({meta:{name:`github`,description:`Verify, publish, and approve GitHub visual reviews`},subCommands:{context:U_,verify:T({meta:{name:`verify`,description:`Verify that a Kapture report matches the current pull request`},args:{report:{type:`string`,required:!0,description:`Path to untrusted report.json`}},async run({args:e}){let t=process.env.GITHUB_TOKEN;if(!t)throw Error(`GITHUB_TOKEN is required`);let n=await nh(e.report),r=pd(await fd());await Sd(new ld(t,r.repository),r,n)}}),report:Iv,approve:Dd,"prepare-run":Ov,"prepare-storybook-run":Av,"publish-run":Mv,"reconcile-run":Pv,"finalize-run":Ev,cleanup:B_}}),Rv=T({meta:{name:`plan`,description:`Select affected Storybook stories from base/head dependency manifests`},args:{"base-dir":{type:`string`,required:!0,description:`Built base Storybook directory`},"head-dir":{type:`string`,required:!0,description:`Built head Storybook directory`},"changed-files":{type:`string`,required:!0,description:`Path to a versioned changed-files manifest or legacy JSON path array`},output:{type:`string`,default:`.kapture/plan.json`,description:`Affected-story plan output path`}},async run({args:e}){let t=await zv(f(e[`changed-files`])),n=await _l({baseDir:f(e[`base-dir`]),headDir:f(e[`head-dir`]),changedFiles:t.files,changedFilesComplete:t.complete,...t.evidence?{changedFilesEvidence:t.evidence}:{}}),r=f(e.output);await y(a(r),{recursive:!0}),await se(r,`${JSON.stringify(n,null,2)}\n`,`utf8`),n.selectionMode===`affected`?X.success(`Selected ${n.selectedStoryIds.length} of ${n.totalStoryIds.length} affected stories`):X.warn(`Selected all ${n.totalStoryIds.length} stories (${n.fallbackReasons.map(e=>e.code).join(`, `)})`),X.info(`Plan: ${r}`)}});async function zv(e){let t;try{t=JSON.parse(await x(e,`utf8`))}catch(t){throw Error(`Failed to read changed files JSON from ${e}`,{cause:t})}if(!Array.isArray(t)){let e=Gh(t);return{files:e.files,complete:e.complete,evidence:{provider:e.source.provider,manifestDigest:m(`sha256`).update(JSON.stringify(e)).digest(`hex`),pullRequestNumber:e.pullRequest.number,baseSha:e.pullRequest.baseSha,headSha:e.pullRequest.headSha}}}if(t.length>1e5)throw Error(`changed-files contains too many paths`);return{files:t.map(e=>Kh(e,`changed file path`)),complete:!0}}const Bv=T({meta:{name:`report`,description:`Build trusted static Kapture reports`},subCommands:{build:ch}}),Vv=T({meta:{name:`test`,description:`Capture and compare base/head Storybooks in one hermetic browser environment`},args:{"base-dir":{type:`string`,required:!0,description:`Built base Storybook directory`},"head-dir":{type:`string`,required:!0,description:`Built head Storybook directory`},"base-capture-dir":{type:`string`,description:`Verified capture directory for the exact base revision; captures head only`},"base-revision":{type:`string`,required:!0,description:`Base Git revision`},"head-revision":{type:`string`,required:!0,description:`Head Git revision`},"changed-files":{type:`string`,description:`Versioned changed-files manifest used to capture only provably affected stories`},"install-browser":{type:`boolean`,default:!1,description:`Install the pinned Chrome runtime only when at least one story is selected`},"browser-with-deps":{type:`boolean`,default:!1,description:`Install Linux browser dependencies together with Chrome`},output:{type:`string`,default:`.kapture`,description:`Output directory`},workers:{type:`string`,default:`4`,description:`Concurrent isolated story lanes`},"pixel-threshold":{type:`string`,default:`0.2`,description:`Pixel color threshold`},"max-diff-ratio":{type:`string`,default:`0`,description:`Allowed changed-pixel ratio`},"frozen-time":{type:`string`,default:`2026-01-01T00:00:00.000Z`,description:`ISO time exposed to stories`},"random-seed":{type:`string`,default:`20260101`,description:`Math.random seed`},locale:{type:`string`,default:`en-US`,description:`BCP 47 browser locale`},timezone:{type:`string`,default:`UTC`,description:`IANA browser time zone`},"dashboard-dir":{type:`string`,description:`Dashboard build directory (defaults to the CLI embedded dashboard)`}},async run({args:e}){let t=Kv(e.workers),n=qv(e[`pixel-threshold`],`pixel-threshold`),r=qv(e[`max-diff-ratio`],`max-diff-ratio`),i=Gv(e[`random-seed`],`random-seed`),o=f(e[`base-dir`]),s=f(e[`head-dir`]),c=e[`changed-files`]?await Hv(o,s,f(e[`changed-files`]),e[`base-revision`],e[`head-revision`]):void 0;Wv(c),e[`install-browser`]&&Uv(c)&&(X.start(`Installing the Kapture browser runtime…`),await tt(e[`browser-with-deps`])),X.start(e[`base-capture-dir`]?`Reusing the verified base capture and capturing affected head stories…`:`Capturing base and head Storybooks in one hermetic environment…`);let l=await fu({baseDir:o,headDir:s,...e[`base-capture-dir`]?{baseCaptureDir:f(e[`base-capture-dir`])}:{},baseRevision:e[`base-revision`],headRevision:e[`head-revision`],outputDir:f(e.output),workers:t,threshold:{pixel:n,ratio:r},frozenTime:e[`frozen-time`],randomSeed:i,locale:e.locale,timezone:e.timezone,adapterVersion:$e,selectionPlan:c});await Pu(e[`dashboard-dir`]?f(e[`dashboard-dir`]):f(a(me(import.meta.url)),`dashboard`),f(e.output,`report`));let{summary:u}=l.report;X.success(`${u.total} snapshots: ${u.changed} changed, ${u.added} added, ${u.removed} removed, ${u.unchanged} unchanged, ${u.errors} errors`),X.info(`Environment: ${l.report.environment.id}`),X.info(`Report: ${f(e.output,`report`,`report.json`)}`),u.errors>0&&(process.exitCode=2)}});async function Hv(e,t,n,r,i){let a=await zv(n);if(a.evidence&&(a.evidence.baseSha!==r||a.evidence.headSha!==i))throw Error(`changed-files manifest base/head SHAs must match --base-revision and --head-revision`);return _l({baseDir:e,headDir:t,changedFiles:a.files,changedFilesComplete:a.complete,...a.evidence?{changedFilesEvidence:a.evidence}:{}})}function Uv(e){return!e||e.selectedStoryIds.length>0}function Wv(e){if(!e){X.info(`Story coverage: full capture (no changed-files manifest)`);return}if(e.selectionMode===`affected`){X.info(`Story coverage: ${e.selectedStoryIds.length} affected, ${e.skippedStoryIds.length} proven unaffected`);return}X.warn(`Story coverage: full fallback (${e.fallbackReasons.map(e=>e.code).join(`, `)})`)}function Gv(e,t){let n=Number.parseInt(e,10);if(!Number.isInteger(n)||n<=0)throw Error(`${t} must be a positive integer`);return n}function Kv(e){let t=Gv(e,`workers`);if(t>8)throw Error(`workers must be between 1 and 8`);return t}function qv(e,t){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0||n>1)throw Error(`${t} must be between 0 and 1`);return n}const Jv=T({meta:{name:`validate`,description:`Validate a Kapture report as a CI gate`},args:{report:{type:`string`,required:!0,description:`Path to report.json`},"fail-on-diff":{type:`boolean`,default:!1,description:`Exit 1 when visual changes require review`}},async run({args:e}){let t=f(e.report),n=await oe(t);if(!n.isFile()||n.size>10485760)throw Error(`Kapture report must be a file no larger than ${Fm} bytes`);let r=th(JSON.parse(await x(t,`utf8`)));if(r.summary.errors>0){X.error(`${r.summary.errors} capture or comparison error(s)`),process.exitCode=2;return}let i=r.summary.changed+r.summary.added+r.summary.removed;if(i>0&&e[`fail-on-diff`]){X.warn(`${i} visual change(s) require human approval`),process.exitCode=1;return}X.success(i>0?`${i} visual change(s) detected`:`No visual changes`)}});Qe(T({meta:{name:`kapture`,version:$e,description:`Hermetic Storybook visual review`},subCommands:{test:Vv,validate:Jv,browser:nt,plan:Rv,report:Bv,github:Lv}}));export{};