velloo 0.4.1 → 0.5.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/README.md +29 -7
- package/canvas/assets/index-BDBBHdHH.css +2 -0
- package/canvas/assets/index-QdsLJNY9.js +29 -0
- package/canvas/assets/{lucide-all-Bcm80WFX.js → lucide-all-R8DUyY-B.js} +1 -1
- package/canvas/index.html +2 -2
- package/chunk-0rdf6trc.js +2 -0
- package/{chunk-npsg7btt.js → chunk-0wafc9aw.js} +1 -1
- package/chunk-0wqxb8r9.js +3 -0
- package/{chunk-e6nhc3ay.js → chunk-10hap8kc.js} +1 -1
- package/chunk-18eqh3s1.js +2 -0
- package/chunk-19xyzep8.js +2 -0
- package/{chunk-7gtvstne.js → chunk-1h3gqy7w.js} +1 -1
- package/{chunk-vjrn10xr.js → chunk-33t0csxs.js} +2 -2
- package/{chunk-7xffbj5h.js → chunk-3ffs39e8.js} +1 -1
- package/chunk-42bj6r30.js +3 -0
- package/chunk-49w26e94.js +5 -0
- package/{chunk-7a45tn73.js → chunk-4pkw6d9n.js} +2 -2
- package/{chunk-ph94nrc8.js → chunk-4sjvdakg.js} +1 -1
- package/chunk-5f0xv80x.js +5 -0
- package/{chunk-2dm4x17z.js → chunk-5ma8zbty.js} +1 -1
- package/{chunk-t9ygewjx.js → chunk-5y9hem1j.js} +1 -1
- package/chunk-66qgm91k.js +708 -0
- package/{chunk-dj1pp4e3.js → chunk-675tr675.js} +1 -1
- package/{chunk-jwzhhhzn.js → chunk-6cgvzwec.js} +1 -1
- package/chunk-6k05kqnc.js +3 -0
- package/{chunk-py6sjyzk.js → chunk-6ytv1v2r.js} +1 -1
- package/{chunk-2h24va0j.js → chunk-75sc3adm.js} +1 -1
- package/chunk-7cexzg71.js +2 -0
- package/chunk-98rann8t.js +2 -0
- package/{chunk-b58pnj20.js → chunk-a16mz9zf.js} +1 -1
- package/{chunk-m1wp8cpt.js → chunk-afe25dpr.js} +1 -1
- package/{chunk-k3dpwjx4.js → chunk-ahm4zd56.js} +1 -1
- package/chunk-asvdqkdp.js +6 -0
- package/{chunk-rfrbnw8r.js → chunk-b3x80jc1.js} +1 -1
- package/{chunk-tr49kraa.js → chunk-cdqah1hy.js} +1 -1
- package/{chunk-r03aywsb.js → chunk-cqt1dpxd.js} +1 -1
- package/{chunk-xbhxzdat.js → chunk-d4r0myxr.js} +1 -1
- package/{chunk-km3z2czq.js → chunk-d9kx7v12.js} +1 -1
- package/{chunk-2y9nnzpr.js → chunk-df557bn4.js} +1 -1
- package/{chunk-6zr596r2.js → chunk-edgwx026.js} +1 -1
- package/chunk-emv1j50t.js +2 -0
- package/{chunk-jep31ffe.js → chunk-ewgdcgrk.js} +1 -1
- package/chunk-f45p6kcb.js +2 -0
- package/{chunk-b4jy4hcd.js → chunk-gn9wcc1b.js} +1 -1
- package/{chunk-cejmmx3r.js → chunk-hr3gbak5.js} +2 -2
- package/{chunk-91pajfnm.js → chunk-j7tzbt3d.js} +1 -1
- package/chunk-mm8wv3bg.js +3 -0
- package/chunk-nbbnb5e9.js +3 -0
- package/{chunk-a9mgvspm.js → chunk-ngbqd7kb.js} +32 -12
- package/chunk-nkqtnwzz.js +2 -0
- package/{chunk-2jbhv7vh.js → chunk-q3kf8243.js} +1 -1
- package/{chunk-8t5phg0s.js → chunk-qpv28z8d.js} +1 -1
- package/{chunk-hsrg23gd.js → chunk-rd65xm6r.js} +1 -1
- package/{chunk-aa3str7g.js → chunk-ryga3ny1.js} +1 -1
- package/{chunk-cvn689d5.js → chunk-sb5h27w9.js} +2 -2
- package/chunk-tw4kw4ps.js +22 -0
- package/chunk-v6c3h9ft.js +3 -0
- package/chunk-vgx47anc.js +3 -0
- package/chunk-vrvkvb0v.js +244 -0
- package/{chunk-db7mf114.js → chunk-vryadew3.js} +9 -7
- package/chunk-w6f40y2x.js +11 -0
- package/{chunk-0446t32z.js → chunk-we8hvy6e.js} +1 -1
- package/{chunk-ykdx12na.js → chunk-wkqrb2tz.js} +1 -1
- package/{chunk-r9ekd92e.js → chunk-xzkczmgg.js} +1 -1
- package/{chunk-yfttm20w.js → chunk-ycrddh47.js} +1 -1
- package/{chunk-j5axqyan.js → chunk-z78c1kf8.js} +1 -1
- package/cli.js +1 -1
- package/package.json +3 -1
- package/pkgs/provider-html/src/index.ts +68 -0
- package/pkgs/provider-html/src/registry.ts +121 -0
- package/pkgs/provider-html/src/version.ts +1 -0
- package/pkgs/provider-none/src/components-inline.tsx +12 -3
- package/pkgs/provider-none/src/components.tsx +11 -3
- package/pkgs/provider-none/src/manifest.ts +1 -0
- package/pkgs/schema/src/config.ts +33 -1
- package/pkgs/schema/src/css-declarations.ts +41 -0
- package/pkgs/schema/src/index.ts +3 -0
- package/pkgs/schema/src/theme.ts +40 -0
- package/plugins/claude/velloo/agents/velloo-design-reviewer.md +56 -13
- package/plugins/claude/velloo/agents/velloo-designer.md +4 -1
- package/skills/velloo-setup/SKILL.md +19 -55
- package/canvas/assets/index-B1OD0Yz5.css +0 -2
- package/canvas/assets/index-BWYFx2Rr.js +0 -29
- package/chunk-00t0bz7x.js +0 -244
- package/chunk-0zen7bzb.js +0 -3
- package/chunk-5ywkk7d6.js +0 -2
- package/chunk-b7famda5.js +0 -3
- package/chunk-f5g45xed.js +0 -2
- package/chunk-fjbzk4sw.js +0 -3
- package/chunk-hv52a6hf.js +0 -2
- package/chunk-mcymwefw.js +0 -5
- package/chunk-n0kx20s2.js +0 -2
- package/chunk-nwf2kn41.js +0 -26
- package/chunk-phz993p3.js +0 -2
- package/chunk-qan5dnjt.js +0 -688
- package/chunk-r5d0jsnd.js +0 -5
- package/chunk-shac6bat.js +0 -6
- package/chunk-t4zvcece.js +0 -10
- package/chunk-tarws372.js +0 -2
- package/chunk-yghypth2.js +0 -2
- package/chunk-zqtz23xk.js +0 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{isCssIdent,sanitizeCssTokenValue,neutralizeCssText,sanitizeGoogleFontSpec,isComponentNode,isSnippetInstance,isParamRef,isRepoNode,repoKey,ScreenSchema,resolveSnippetArgs,substituteSnippetParams,applySnippetOverrides,applySnippetExtraClassName,ThemeSchema,typesetCss}from"./chunk-7a45tn73.js";import{__toESM,__commonJS,__exportCjs,__require}from"./chunk-2smsg2ct.js";var require_chunkstream=__commonJS(function(exports,module){var util=__require("util"),Stream=__require("stream"),ChunkStream=module.exports=function(){Stream.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding="utf8",this.writable=!0};util.inherits(ChunkStream,Stream);ChunkStream.prototype.read=function(length,callback){this._reads.push({length:Math.abs(length),allowLess:length<0,func:callback}),process.nextTick(function(){if(this._process(),this._paused&&this._reads&&this._reads.length>0)this._paused=!1,this.emit("drain")}.bind(this))};ChunkStream.prototype.write=function(data,encoding){if(!this.writable)return this.emit("error",Error("Stream not writable")),!1;let dataBuffer;if(Buffer.isBuffer(data))dataBuffer=data;else dataBuffer=Buffer.from(data,encoding||this._encoding);if(this._buffers.push(dataBuffer),this._buffered+=dataBuffer.length,this._process(),this._reads&&this._reads.length===0)this._paused=!0;return this.writable&&!this._paused};ChunkStream.prototype.end=function(data,encoding){if(data)this.write(data,encoding);if(this.writable=!1,!this._buffers)return;if(this._buffers.length===0)this._end();else this._buffers.push(null),this._process()};ChunkStream.prototype.destroySoon=ChunkStream.prototype.end;ChunkStream.prototype._end=function(){if(this._reads.length>0)this.emit("error",Error("Unexpected end of input"));this.destroy()};ChunkStream.prototype.destroy=function(){if(!this._buffers)return;this.writable=!1,this._reads=null,this._buffers=null,this.emit("close")};ChunkStream.prototype._processReadAllowingLess=function(read){this._reads.shift();let smallerBuf=this._buffers[0];if(smallerBuf.length>read.length)this._buffered-=read.length,this._buffers[0]=smallerBuf.slice(read.length),read.func.call(this,smallerBuf.slice(0,read.length));else this._buffered-=smallerBuf.length,this._buffers.shift(),read.func.call(this,smallerBuf)};ChunkStream.prototype._processRead=function(read){this._reads.shift();let pos=0,count=0,data=Buffer.alloc(read.length);while(pos<read.length){let buf=this._buffers[count++],len=Math.min(buf.length,read.length-pos);if(buf.copy(data,pos,0,len),pos+=len,len!==buf.length)this._buffers[--count]=buf.slice(len)}if(count>0)this._buffers.splice(0,count);this._buffered-=read.length,read.func.call(this,data)};ChunkStream.prototype._process=function(){try{while(this._buffered>0&&this._reads&&this._reads.length>0){let read=this._reads[0];if(read.allowLess)this._processReadAllowingLess(read);else if(this._buffered>=read.length)this._processRead(read);else break}if(this._buffers&&!this.writable)this._end()}catch(ex){this.emit("error",ex)}}});var require_interlace=__commonJS(function(exports){var imagePasses=[{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]}];exports.getImagePasses=function(width,height){let images=[],xLeftOver=width%8,yLeftOver=height%8,xRepeats=(width-xLeftOver)/8,yRepeats=(height-yLeftOver)/8;for(let i=0;i<imagePasses.length;i++){let pass=imagePasses[i],passWidth=xRepeats*pass.x.length,passHeight=yRepeats*pass.y.length;for(let j=0;j<pass.x.length;j++)if(pass.x[j]<xLeftOver)passWidth++;else break;for(let j=0;j<pass.y.length;j++)if(pass.y[j]<yLeftOver)passHeight++;else break;if(passWidth>0&&passHeight>0)images.push({width:passWidth,height:passHeight,index:i})}return images};exports.getInterlaceIterator=function(width){return function(x,y,pass){let outerXLeftOver=x%imagePasses[pass].x.length,outerX=(x-outerXLeftOver)/imagePasses[pass].x.length*8+imagePasses[pass].x[outerXLeftOver],outerYLeftOver=y%imagePasses[pass].y.length,outerY=(y-outerYLeftOver)/imagePasses[pass].y.length*8+imagePasses[pass].y[outerYLeftOver];return outerX*4+outerY*width*4}}});var require_paeth_predictor=__commonJS(function(exports,module){module.exports=function(left,above,upLeft){let paeth=left+above-upLeft,pLeft=Math.abs(paeth-left),pAbove=Math.abs(paeth-above),pUpLeft=Math.abs(paeth-upLeft);if(pLeft<=pAbove&&pLeft<=pUpLeft)return left;if(pAbove<=pUpLeft)return above;return upLeft}});var require_filter_parse=__commonJS(function(exports,module){var interlaceUtils=require_interlace(),paethPredictor=require_paeth_predictor();function getByteWidth(width,bpp,depth){let byteWidth=width*bpp;if(depth!==8)byteWidth=Math.ceil(byteWidth/(8/depth));return byteWidth}var Filter=module.exports=function(bitmapInfo,dependencies){let{width,height,interlace,bpp,depth}=bitmapInfo;if(this.read=dependencies.read,this.write=dependencies.write,this.complete=dependencies.complete,this._imageIndex=0,this._images=[],interlace){let passes=interlaceUtils.getImagePasses(width,height);for(let i=0;i<passes.length;i++)this._images.push({byteWidth:getByteWidth(passes[i].width,bpp,depth),height:passes[i].height,lineIndex:0})}else this._images.push({byteWidth:getByteWidth(width,bpp,depth),height,lineIndex:0});if(depth===8)this._xComparison=bpp;else if(depth===16)this._xComparison=bpp*2;else this._xComparison=1};Filter.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))};Filter.prototype._unFilterType1=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f1Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0;unfilteredLine[x]=rawByte+f1Left}};Filter.prototype._unFilterType2=function(rawData,unfilteredLine,byteWidth){let lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f2Up=lastLine?lastLine[x]:0;unfilteredLine[x]=rawByte+f2Up}};Filter.prototype._unFilterType3=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1,lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f3Up=lastLine?lastLine[x]:0,f3Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0,f3Add=Math.floor((f3Left+f3Up)/2);unfilteredLine[x]=rawByte+f3Add}};Filter.prototype._unFilterType4=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1,lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f4Up=lastLine?lastLine[x]:0,f4Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0,f4UpLeft=x>xBiggerThan&&lastLine?lastLine[x-xComparison]:0,f4Add=paethPredictor(f4Left,f4Up,f4UpLeft);unfilteredLine[x]=rawByte+f4Add}};Filter.prototype._reverseFilterLine=function(rawData){let filter=rawData[0],unfilteredLine,currentImage=this._images[this._imageIndex],byteWidth=currentImage.byteWidth;if(filter===0)unfilteredLine=rawData.slice(1,byteWidth+1);else switch(unfilteredLine=Buffer.alloc(byteWidth),filter){case 1:this._unFilterType1(rawData,unfilteredLine,byteWidth);break;case 2:this._unFilterType2(rawData,unfilteredLine,byteWidth);break;case 3:this._unFilterType3(rawData,unfilteredLine,byteWidth);break;case 4:this._unFilterType4(rawData,unfilteredLine,byteWidth);break;default:throw Error("Unrecognised filter type - "+filter)}if(this.write(unfilteredLine),currentImage.lineIndex++,currentImage.lineIndex>=currentImage.height)this._lastLine=null,this._imageIndex++,currentImage=this._images[this._imageIndex];else this._lastLine=unfilteredLine;if(currentImage)this.read(currentImage.byteWidth+1,this._reverseFilterLine.bind(this));else this._lastLine=null,this.complete()}});var require_filter_parse_async=__commonJS(function(exports,module){var util=__require("util"),ChunkStream=require_chunkstream(),Filter=require_filter_parse(),FilterAsync=module.exports=function(bitmapInfo){ChunkStream.call(this);let buffers=[],that=this;this._filter=new Filter(bitmapInfo,{read:this.read.bind(this),write:function(buffer){buffers.push(buffer)},complete:function(){that.emit("complete",Buffer.concat(buffers))}}),this._filter.start()};util.inherits(FilterAsync,ChunkStream)});var require_constants=__commonJS(function(exports,module){module.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}});var require_crc=__commonJS(function(exports,module){var crcTable=[];(function(){for(let i=0;i<256;i++){let currentCrc=i;for(let j=0;j<8;j++)if(currentCrc&1)currentCrc=3988292384^currentCrc>>>1;else currentCrc=currentCrc>>>1;crcTable[i]=currentCrc}})();var CrcCalculator=module.exports=function(){this._crc=-1};CrcCalculator.prototype.write=function(data){for(let i=0;i<data.length;i++)this._crc=crcTable[(this._crc^data[i])&255]^this._crc>>>8;return!0};CrcCalculator.prototype.crc32=function(){return this._crc^-1};CrcCalculator.crc32=function(buf){let crc=-1;for(let i=0;i<buf.length;i++)crc=crcTable[(crc^buf[i])&255]^crc>>>8;return crc^-1}});var require_parser=__commonJS(function(exports,module){var constants=require_constants(),CrcCalculator=require_crc(),Parser=module.exports=function(options,dependencies){this._options=options,options.checkCRC=options.checkCRC!==!1,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[constants.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[constants.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[constants.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[constants.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[constants.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[constants.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=dependencies.read,this.error=dependencies.error,this.metadata=dependencies.metadata,this.gamma=dependencies.gamma,this.transColor=dependencies.transColor,this.palette=dependencies.palette,this.parsed=dependencies.parsed,this.inflateData=dependencies.inflateData,this.finished=dependencies.finished,this.simpleTransparency=dependencies.simpleTransparency,this.headersFinished=dependencies.headersFinished||function(){}};Parser.prototype.start=function(){this.read(constants.PNG_SIGNATURE.length,this._parseSignature.bind(this))};Parser.prototype._parseSignature=function(data){let signature=constants.PNG_SIGNATURE;for(let i=0;i<signature.length;i++)if(data[i]!==signature[i]){this.error(Error("Invalid file signature"));return}this.read(8,this._parseChunkBegin.bind(this))};Parser.prototype._parseChunkBegin=function(data){let length=data.readUInt32BE(0),type=data.readUInt32BE(4),name="";for(let i=4;i<8;i++)name+=String.fromCharCode(data[i]);let ancillary=Boolean(data[4]&32);if(!this._hasIHDR&&type!==constants.TYPE_IHDR){this.error(Error("Expected IHDR on beggining"));return}if(this._crc=new CrcCalculator,this._crc.write(Buffer.from(name)),this._chunks[type])return this._chunks[type](length);if(!ancillary){this.error(Error("Unsupported critical chunk type "+name));return}this.read(length+4,this._skipChunk.bind(this))};Parser.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))};Parser.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))};Parser.prototype._parseChunkEnd=function(data){let fileCrc=data.readInt32BE(0),calcCrc=this._crc.crc32();if(this._options.checkCRC&&calcCrc!==fileCrc){this.error(Error("Crc error - "+fileCrc+" - "+calcCrc));return}if(!this._hasIEND)this.read(8,this._parseChunkBegin.bind(this))};Parser.prototype._handleIHDR=function(length){this.read(length,this._parseIHDR.bind(this))};Parser.prototype._parseIHDR=function(data){this._crc.write(data);let width=data.readUInt32BE(0),height=data.readUInt32BE(4),depth=data[8],colorType=data[9],compr=data[10],filter=data[11],interlace=data[12];if(depth!==8&&depth!==4&&depth!==2&&depth!==1&&depth!==16){this.error(Error("Unsupported bit depth "+depth));return}if(!(colorType in constants.COLORTYPE_TO_BPP_MAP)){this.error(Error("Unsupported color type"));return}if(compr!==0){this.error(Error("Unsupported compression method"));return}if(filter!==0){this.error(Error("Unsupported filter method"));return}if(interlace!==0&&interlace!==1){this.error(Error("Unsupported interlace method"));return}this._colorType=colorType;let bpp=constants.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width,height,depth,interlace:Boolean(interlace),palette:Boolean(colorType&constants.COLORTYPE_PALETTE),color:Boolean(colorType&constants.COLORTYPE_COLOR),alpha:Boolean(colorType&constants.COLORTYPE_ALPHA),bpp,colorType}),this._handleChunkEnd()};Parser.prototype._handlePLTE=function(length){this.read(length,this._parsePLTE.bind(this))};Parser.prototype._parsePLTE=function(data){this._crc.write(data);let entries=Math.floor(data.length/3);for(let i=0;i<entries;i++)this._palette.push([data[i*3],data[i*3+1],data[i*3+2],255]);this.palette(this._palette),this._handleChunkEnd()};Parser.prototype._handleTRNS=function(length){this.simpleTransparency(),this.read(length,this._parseTRNS.bind(this))};Parser.prototype._parseTRNS=function(data){if(this._crc.write(data),this._colorType===constants.COLORTYPE_PALETTE_COLOR){if(this._palette.length===0){this.error(Error("Transparency chunk must be after palette"));return}if(data.length>this._palette.length){this.error(Error("More transparent colors than palette size"));return}for(let i=0;i<data.length;i++)this._palette[i][3]=data[i];this.palette(this._palette)}if(this._colorType===constants.COLORTYPE_GRAYSCALE)this.transColor([data.readUInt16BE(0)]);if(this._colorType===constants.COLORTYPE_COLOR)this.transColor([data.readUInt16BE(0),data.readUInt16BE(2),data.readUInt16BE(4)]);this._handleChunkEnd()};Parser.prototype._handleGAMA=function(length){this.read(length,this._parseGAMA.bind(this))};Parser.prototype._parseGAMA=function(data){this._crc.write(data),this.gamma(data.readUInt32BE(0)/constants.GAMMA_DIVISION),this._handleChunkEnd()};Parser.prototype._handleIDAT=function(length){if(!this._emittedHeadersFinished)this._emittedHeadersFinished=!0,this.headersFinished();this.read(-length,this._parseIDAT.bind(this,length))};Parser.prototype._parseIDAT=function(length,data){if(this._crc.write(data),this._colorType===constants.COLORTYPE_PALETTE_COLOR&&this._palette.length===0)throw Error("Expected palette not found");this.inflateData(data);let leftOverLength=length-data.length;if(leftOverLength>0)this._handleIDAT(leftOverLength);else this._handleChunkEnd()};Parser.prototype._handleIEND=function(length){this.read(length,this._parseIEND.bind(this))};Parser.prototype._parseIEND=function(data){if(this._crc.write(data),this._hasIEND=!0,this._handleChunkEnd(),this.finished)this.finished()}});var require_bitmapper=__commonJS(function(exports){var interlaceUtils=require_interlace(),pixelBppMapper=[function(){},function(pxData,data,pxPos,rawPos){if(rawPos===data.length)throw Error("Ran out of data");let pixel=data[rawPos];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=255},function(pxData,data,pxPos,rawPos){if(rawPos+1>=data.length)throw Error("Ran out of data");let pixel=data[rawPos];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=data[rawPos+1]},function(pxData,data,pxPos,rawPos){if(rawPos+2>=data.length)throw Error("Ran out of data");pxData[pxPos]=data[rawPos],pxData[pxPos+1]=data[rawPos+1],pxData[pxPos+2]=data[rawPos+2],pxData[pxPos+3]=255},function(pxData,data,pxPos,rawPos){if(rawPos+3>=data.length)throw Error("Ran out of data");pxData[pxPos]=data[rawPos],pxData[pxPos+1]=data[rawPos+1],pxData[pxPos+2]=data[rawPos+2],pxData[pxPos+3]=data[rawPos+3]}],pixelBppCustomMapper=[function(){},function(pxData,pixelData,pxPos,maxBit){let pixel=pixelData[0];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=maxBit},function(pxData,pixelData,pxPos){let pixel=pixelData[0];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=pixelData[1]},function(pxData,pixelData,pxPos,maxBit){pxData[pxPos]=pixelData[0],pxData[pxPos+1]=pixelData[1],pxData[pxPos+2]=pixelData[2],pxData[pxPos+3]=maxBit},function(pxData,pixelData,pxPos){pxData[pxPos]=pixelData[0],pxData[pxPos+1]=pixelData[1],pxData[pxPos+2]=pixelData[2],pxData[pxPos+3]=pixelData[3]}];function bitRetriever(data,depth){let leftOver=[],i=0;function split(){if(i===data.length)throw Error("Ran out of data");let byte=data[i];i++;let byte8,byte7,byte6,byte5,byte4,byte3,byte2,byte1;switch(depth){default:throw Error("unrecognised depth");case 16:byte2=data[i],i++,leftOver.push((byte<<8)+byte2);break;case 4:byte2=byte&15,byte1=byte>>4,leftOver.push(byte1,byte2);break;case 2:byte4=byte&3,byte3=byte>>2&3,byte2=byte>>4&3,byte1=byte>>6&3,leftOver.push(byte1,byte2,byte3,byte4);break;case 1:byte8=byte&1,byte7=byte>>1&1,byte6=byte>>2&1,byte5=byte>>3&1,byte4=byte>>4&1,byte3=byte>>5&1,byte2=byte>>6&1,byte1=byte>>7&1,leftOver.push(byte1,byte2,byte3,byte4,byte5,byte6,byte7,byte8);break}}return{get:function(count){while(leftOver.length<count)split();let returner=leftOver.slice(0,count);return leftOver=leftOver.slice(count),returner},resetAfterLine:function(){leftOver.length=0},end:function(){if(i!==data.length)throw Error("extra data found")}}}function mapImage8Bit(image,pxData,getPxPos,bpp,data,rawPos){let{width:imageWidth,height:imageHeight,index:imagePass}=image;for(let y=0;y<imageHeight;y++)for(let x=0;x<imageWidth;x++){let pxPos=getPxPos(x,y,imagePass);pixelBppMapper[bpp](pxData,data,pxPos,rawPos),rawPos+=bpp}return rawPos}function mapImageCustomBit(image,pxData,getPxPos,bpp,bits,maxBit){let{width:imageWidth,height:imageHeight,index:imagePass}=image;for(let y=0;y<imageHeight;y++){for(let x=0;x<imageWidth;x++){let pixelData=bits.get(bpp),pxPos=getPxPos(x,y,imagePass);pixelBppCustomMapper[bpp](pxData,pixelData,pxPos,maxBit)}bits.resetAfterLine()}}exports.dataToBitMap=function(data,bitmapInfo){let{width,height,depth,bpp,interlace}=bitmapInfo,bits;if(depth!==8)bits=bitRetriever(data,depth);let pxData;if(depth<=8)pxData=Buffer.alloc(width*height*4);else pxData=new Uint16Array(width*height*4);let maxBit=Math.pow(2,depth)-1,rawPos=0,images,getPxPos;if(interlace)images=interlaceUtils.getImagePasses(width,height),getPxPos=interlaceUtils.getInterlaceIterator(width,height);else{let nonInterlacedPxPos=0;getPxPos=function(){let returner=nonInterlacedPxPos;return nonInterlacedPxPos+=4,returner},images=[{width,height}]}for(let imageIndex=0;imageIndex<images.length;imageIndex++)if(depth===8)rawPos=mapImage8Bit(images[imageIndex],pxData,getPxPos,bpp,data,rawPos);else mapImageCustomBit(images[imageIndex],pxData,getPxPos,bpp,bits,maxBit);if(depth===8){if(rawPos!==data.length)throw Error("extra data found")}else bits.end();return pxData}});var require_format_normaliser=__commonJS(function(exports,module){function dePalette(indata,outdata,width,height,palette){let pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let color=palette[indata[pxPos]];if(!color)throw Error("index "+indata[pxPos]+" not in palette");for(let i=0;i<4;i++)outdata[pxPos+i]=color[i];pxPos+=4}}function replaceTransparentColor(indata,outdata,width,height,transColor){let pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let makeTrans=!1;if(transColor.length===1){if(transColor[0]===indata[pxPos])makeTrans=!0}else if(transColor[0]===indata[pxPos]&&transColor[1]===indata[pxPos+1]&&transColor[2]===indata[pxPos+2])makeTrans=!0;if(makeTrans)for(let i=0;i<4;i++)outdata[pxPos+i]=0;pxPos+=4}}function scaleDepth(indata,outdata,width,height,depth){let maxOutSample=255,maxInSample=Math.pow(2,depth)-1,pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){for(let i=0;i<4;i++)outdata[pxPos+i]=Math.floor(indata[pxPos+i]*maxOutSample/maxInSample+0.5);pxPos+=4}}module.exports=function(indata,imageData,skipRescale=!1){let{depth,width,height,colorType,transColor,palette}=imageData,outdata=indata;if(colorType===3)dePalette(indata,outdata,width,height,palette);else{if(transColor)replaceTransparentColor(indata,outdata,width,height,transColor);if(depth!==8&&!skipRescale){if(depth===16)outdata=Buffer.alloc(width*height*4);scaleDepth(indata,outdata,width,height,depth)}}return outdata}});var require_parser_async=__commonJS(function(exports,module){var util=__require("util"),zlib=__require("zlib"),ChunkStream=require_chunkstream(),FilterAsync=require_filter_parse_async(),Parser=require_parser(),bitmapper=require_bitmapper(),formatNormaliser=require_format_normaliser(),ParserAsync=module.exports=function(options){ChunkStream.call(this),this._parser=new Parser(options,{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=options,this.writable=!0,this._parser.start()};util.inherits(ParserAsync,ChunkStream);ParserAsync.prototype._handleError=function(err){if(this.emit("error",err),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy)this._inflate.destroy();if(this._filter)this._filter.destroy(),this._filter.on("error",function(){});this.errord=!0};ParserAsync.prototype._inflateData=function(data){if(!this._inflate)if(this._bitmapInfo.interlace)this._inflate=zlib.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 imageSize=((this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3)+1)*this._bitmapInfo.height,chunkSize=Math.max(imageSize,zlib.Z_MIN_CHUNK);this._inflate=zlib.createInflate({chunkSize});let leftToInflate=imageSize,emitError=this.emit.bind(this,"error");this._inflate.on("error",function(err){if(!leftToInflate)return;emitError(err)}),this._filter.on("complete",this._complete.bind(this));let filterWrite=this._filter.write.bind(this._filter);this._inflate.on("data",function(chunk){if(!leftToInflate)return;if(chunk.length>leftToInflate)chunk=chunk.slice(0,leftToInflate);leftToInflate-=chunk.length,filterWrite(chunk)}),this._inflate.on("end",this._filter.end.bind(this._filter))}this._inflate.write(data)};ParserAsync.prototype._handleMetaData=function(metaData){this._metaData=metaData,this._bitmapInfo=Object.create(metaData),this._filter=new FilterAsync(this._bitmapInfo)};ParserAsync.prototype._handleTransColor=function(transColor){this._bitmapInfo.transColor=transColor};ParserAsync.prototype._handlePalette=function(palette){this._bitmapInfo.palette=palette};ParserAsync.prototype._simpleTransparency=function(){this._metaData.alpha=!0};ParserAsync.prototype._headersFinished=function(){this.emit("metadata",this._metaData)};ParserAsync.prototype._finished=function(){if(this.errord)return;if(!this._inflate)this.emit("error","No Inflate block");else this._inflate.end()};ParserAsync.prototype._complete=function(filteredData){if(this.errord)return;let normalisedBitmapData;try{let bitmapData=bitmapper.dataToBitMap(filteredData,this._bitmapInfo);normalisedBitmapData=formatNormaliser(bitmapData,this._bitmapInfo,this._options.skipRescale),bitmapData=null}catch(ex){this._handleError(ex);return}this.emit("parsed",normalisedBitmapData)}});var require_bitpacker=__commonJS(function(exports,module){var constants=require_constants();module.exports=function(dataIn,width,height,options){let outHasAlpha=[constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.colorType)!==-1;if(options.colorType===options.inputColorType){let bigEndian=function(){let buffer=new ArrayBuffer(2);return new DataView(buffer).setInt16(0,256,!0),new Int16Array(buffer)[0]!==256}();if(options.bitDepth===8||options.bitDepth===16&&bigEndian)return dataIn}let data=options.bitDepth!==16?dataIn:new Uint16Array(dataIn.buffer),maxValue=255,inBpp=constants.COLORTYPE_TO_BPP_MAP[options.inputColorType];if(inBpp===4&&!options.inputHasAlpha)inBpp=3;let outBpp=constants.COLORTYPE_TO_BPP_MAP[options.colorType];if(options.bitDepth===16)maxValue=65535,outBpp*=2;let outData=Buffer.alloc(width*height*outBpp),inIndex=0,outIndex=0,bgColor=options.bgColor||{};if(bgColor.red===void 0)bgColor.red=maxValue;if(bgColor.green===void 0)bgColor.green=maxValue;if(bgColor.blue===void 0)bgColor.blue=maxValue;function getRGBA(){let red,green,blue,alpha=maxValue;switch(options.inputColorType){case constants.COLORTYPE_COLOR_ALPHA:alpha=data[inIndex+3],red=data[inIndex],green=data[inIndex+1],blue=data[inIndex+2];break;case constants.COLORTYPE_COLOR:red=data[inIndex],green=data[inIndex+1],blue=data[inIndex+2];break;case constants.COLORTYPE_ALPHA:alpha=data[inIndex+1],red=data[inIndex],green=red,blue=red;break;case constants.COLORTYPE_GRAYSCALE:red=data[inIndex],green=red,blue=red;break;default:throw Error("input color type:"+options.inputColorType+" is not supported at present")}if(options.inputHasAlpha){if(!outHasAlpha)alpha/=maxValue,red=Math.min(Math.max(Math.round((1-alpha)*bgColor.red+alpha*red),0),maxValue),green=Math.min(Math.max(Math.round((1-alpha)*bgColor.green+alpha*green),0),maxValue),blue=Math.min(Math.max(Math.round((1-alpha)*bgColor.blue+alpha*blue),0),maxValue)}return{red,green,blue,alpha}}for(let y=0;y<height;y++)for(let x=0;x<width;x++){let rgba=getRGBA(data,inIndex);switch(options.colorType){case constants.COLORTYPE_COLOR_ALPHA:case constants.COLORTYPE_COLOR:if(options.bitDepth===8){if(outData[outIndex]=rgba.red,outData[outIndex+1]=rgba.green,outData[outIndex+2]=rgba.blue,outHasAlpha)outData[outIndex+3]=rgba.alpha}else if(outData.writeUInt16BE(rgba.red,outIndex),outData.writeUInt16BE(rgba.green,outIndex+2),outData.writeUInt16BE(rgba.blue,outIndex+4),outHasAlpha)outData.writeUInt16BE(rgba.alpha,outIndex+6);break;case constants.COLORTYPE_ALPHA:case constants.COLORTYPE_GRAYSCALE:{let grayscale=(rgba.red+rgba.green+rgba.blue)/3;if(options.bitDepth===8){if(outData[outIndex]=grayscale,outHasAlpha)outData[outIndex+1]=rgba.alpha}else if(outData.writeUInt16BE(grayscale,outIndex),outHasAlpha)outData.writeUInt16BE(rgba.alpha,outIndex+2);break}default:throw Error("unrecognised color Type "+options.colorType)}inIndex+=inBpp,outIndex+=outBpp}return outData}});var require_filter_pack=__commonJS(function(exports,module){var paethPredictor=require_paeth_predictor();function filterNone(pxData,pxPos,byteWidth,rawData,rawPos){for(let x=0;x<byteWidth;x++)rawData[rawPos+x]=pxData[pxPos+x]}function filterSumNone(pxData,pxPos,byteWidth){let sum=0,length=pxPos+byteWidth;for(let i=pxPos;i<length;i++)sum+=Math.abs(pxData[i]);return sum}function filterSub(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,val=pxData[pxPos+x]-left;rawData[rawPos+x]=val}}function filterSumSub(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,val=pxData[pxPos+x]-left;sum+=Math.abs(val)}return sum}function filterUp(pxData,pxPos,byteWidth,rawData,rawPos){for(let x=0;x<byteWidth;x++){let up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-up;rawData[rawPos+x]=val}}function filterSumUp(pxData,pxPos,byteWidth){let sum=0,length=pxPos+byteWidth;for(let x=pxPos;x<length;x++){let up=pxPos>0?pxData[x-byteWidth]:0,val=pxData[x]-up;sum+=Math.abs(val)}return sum}function filterAvg(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-(left+up>>1);rawData[rawPos+x]=val}}function filterSumAvg(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-(left+up>>1);sum+=Math.abs(val)}return sum}function filterPaeth(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,upleft=pxPos>0&&x>=bpp?pxData[pxPos+x-(byteWidth+bpp)]:0,val=pxData[pxPos+x]-paethPredictor(left,up,upleft);rawData[rawPos+x]=val}}function filterSumPaeth(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,upleft=pxPos>0&&x>=bpp?pxData[pxPos+x-(byteWidth+bpp)]:0,val=pxData[pxPos+x]-paethPredictor(left,up,upleft);sum+=Math.abs(val)}return sum}var filters={0:filterNone,1:filterSub,2:filterUp,3:filterAvg,4:filterPaeth},filterSums={0:filterSumNone,1:filterSumSub,2:filterSumUp,3:filterSumAvg,4:filterSumPaeth};module.exports=function(pxData,width,height,options,bpp){let filterTypes;if(!("filterType"in options)||options.filterType===-1)filterTypes=[0,1,2,3,4];else if(typeof options.filterType==="number")filterTypes=[options.filterType];else throw Error("unrecognised filter types");if(options.bitDepth===16)bpp*=2;let byteWidth=width*bpp,rawPos=0,pxPos=0,rawData=Buffer.alloc((byteWidth+1)*height),sel=filterTypes[0];for(let y=0;y<height;y++){if(filterTypes.length>1){let min=1/0;for(let i=0;i<filterTypes.length;i++){let sum=filterSums[filterTypes[i]](pxData,pxPos,byteWidth,bpp);if(sum<min)sel=filterTypes[i],min=sum}}rawData[rawPos]=sel,rawPos++,filters[sel](pxData,pxPos,byteWidth,rawData,rawPos,bpp),rawPos+=byteWidth,pxPos+=byteWidth}return rawData}});var require_packer=__commonJS(function(exports,module){var constants=require_constants(),CrcStream=require_crc(),bitPacker=require_bitpacker(),filter=require_filter_pack(),zlib=__require("zlib"),Packer=module.exports=function(options){if(this._options=options,options.deflateChunkSize=options.deflateChunkSize||32768,options.deflateLevel=options.deflateLevel!=null?options.deflateLevel:9,options.deflateStrategy=options.deflateStrategy!=null?options.deflateStrategy:3,options.inputHasAlpha=options.inputHasAlpha!=null?options.inputHasAlpha:!0,options.deflateFactory=options.deflateFactory||zlib.createDeflate,options.bitDepth=options.bitDepth||8,options.colorType=typeof options.colorType==="number"?options.colorType:constants.COLORTYPE_COLOR_ALPHA,options.inputColorType=typeof options.inputColorType==="number"?options.inputColorType:constants.COLORTYPE_COLOR_ALPHA,[constants.COLORTYPE_GRAYSCALE,constants.COLORTYPE_COLOR,constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.colorType)===-1)throw Error("option color type:"+options.colorType+" is not supported at present");if([constants.COLORTYPE_GRAYSCALE,constants.COLORTYPE_COLOR,constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.inputColorType)===-1)throw Error("option input color type:"+options.inputColorType+" is not supported at present");if(options.bitDepth!==8&&options.bitDepth!==16)throw Error("option bit depth:"+options.bitDepth+" is not supported at present")};Packer.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}};Packer.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())};Packer.prototype.filterData=function(data,width,height){let packedData=bitPacker(data,width,height,this._options),bpp=constants.COLORTYPE_TO_BPP_MAP[this._options.colorType];return filter(packedData,width,height,this._options,bpp)};Packer.prototype._packChunk=function(type,data){let len=data?data.length:0,buf=Buffer.alloc(len+12);if(buf.writeUInt32BE(len,0),buf.writeUInt32BE(type,4),data)data.copy(buf,8);return buf.writeInt32BE(CrcStream.crc32(buf.slice(4,buf.length-4)),buf.length-4),buf};Packer.prototype.packGAMA=function(gamma){let buf=Buffer.alloc(4);return buf.writeUInt32BE(Math.floor(gamma*constants.GAMMA_DIVISION),0),this._packChunk(constants.TYPE_gAMA,buf)};Packer.prototype.packIHDR=function(width,height){let buf=Buffer.alloc(13);return buf.writeUInt32BE(width,0),buf.writeUInt32BE(height,4),buf[8]=this._options.bitDepth,buf[9]=this._options.colorType,buf[10]=0,buf[11]=0,buf[12]=0,this._packChunk(constants.TYPE_IHDR,buf)};Packer.prototype.packIDAT=function(data){return this._packChunk(constants.TYPE_IDAT,data)};Packer.prototype.packIEND=function(){return this._packChunk(constants.TYPE_IEND,null)}});var require_packer_async=__commonJS(function(exports,module){var util=__require("util"),Stream=__require("stream"),constants=require_constants(),Packer=require_packer(),PackerAsync=module.exports=function(opt){Stream.call(this);let options=opt||{};this._packer=new Packer(options),this._deflate=this._packer.createDeflate(),this.readable=!0};util.inherits(PackerAsync,Stream);PackerAsync.prototype.pack=function(data,width,height,gamma){if(this.emit("data",Buffer.from(constants.PNG_SIGNATURE)),this.emit("data",this._packer.packIHDR(width,height)),gamma)this.emit("data",this._packer.packGAMA(gamma));let filteredData=this._packer.filterData(data,width,height);this._deflate.on("error",this.emit.bind(this,"error")),this._deflate.on("data",function(compressedData){this.emit("data",this._packer.packIDAT(compressedData))}.bind(this)),this._deflate.on("end",function(){this.emit("data",this._packer.packIEND()),this.emit("end")}.bind(this)),this._deflate.end(filteredData)}});var require_sync_inflate=__commonJS(function(exports,module){var assert=__require("assert").ok,zlib=__require("zlib"),util=__require("util"),kMaxLength=__require("buffer").kMaxLength;function Inflate(opts){if(!(this instanceof Inflate))return new Inflate(opts);if(opts&&opts.chunkSize<zlib.Z_MIN_CHUNK)opts.chunkSize=zlib.Z_MIN_CHUNK;if(zlib.Inflate.call(this,opts),this._offset=this._offset===void 0?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,opts&&opts.maxLength!=null)this._maxLength=opts.maxLength}function createInflate(opts){return new Inflate(opts)}function _close(engine,callback){if(callback)process.nextTick(callback);if(!engine._handle)return;engine._handle.close(),engine._handle=null}Inflate.prototype._processChunk=function(chunk,flushFlag,asyncCb){if(typeof asyncCb==="function")return zlib.Inflate._processChunk.call(this,chunk,flushFlag,asyncCb);let self=this,availInBefore=chunk&&chunk.length,availOutBefore=this._chunkSize-this._offset,leftToInflate=this._maxLength,inOff=0,buffers=[],nread=0,error;this.on("error",function(err){error=err});function handleChunk(availInAfter,availOutAfter){if(self._hadError)return;let have=availOutBefore-availOutAfter;if(assert(have>=0,"have should not go down"),have>0){let out=self._buffer.slice(self._offset,self._offset+have);if(self._offset+=have,out.length>leftToInflate)out=out.slice(0,leftToInflate);if(buffers.push(out),nread+=out.length,leftToInflate-=out.length,leftToInflate===0)return!1}if(availOutAfter===0||self._offset>=self._chunkSize)availOutBefore=self._chunkSize,self._offset=0,self._buffer=Buffer.allocUnsafe(self._chunkSize);if(availOutAfter===0)return inOff+=availInBefore-availInAfter,availInBefore=availInAfter,!0;return!1}assert(this._handle,"zlib binding closed");let res;do res=this._handle.writeSync(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore),res=res||this._writeState;while(!this._hadError&&handleChunk(res[0],res[1]));if(this._hadError)throw error;if(nread>=kMaxLength)throw _close(this),RangeError("Cannot create final Buffer. It would be larger than 0x"+kMaxLength.toString(16)+" bytes");let buf=Buffer.concat(buffers,nread);return _close(this),buf};util.inherits(Inflate,zlib.Inflate);function zlibBufferSync(engine,buffer){if(typeof buffer==="string")buffer=Buffer.from(buffer);if(!(buffer instanceof Buffer))throw TypeError("Not a string or buffer");let flushFlag=engine._finishFlushFlag;if(flushFlag==null)flushFlag=zlib.Z_FINISH;return engine._processChunk(buffer,flushFlag)}function inflateSync(buffer,opts){return zlibBufferSync(new Inflate(opts),buffer)}module.exports=exports=inflateSync;exports.Inflate=Inflate;exports.createInflate=createInflate;exports.inflateSync=inflateSync});var require_sync_reader=__commonJS(function(exports,module){var SyncReader=module.exports=function(buffer){this._buffer=buffer,this._reads=[]};SyncReader.prototype.read=function(length,callback){this._reads.push({length:Math.abs(length),allowLess:length<0,func:callback})};SyncReader.prototype.process=function(){while(this._reads.length>0&&this._buffer.length){let read=this._reads[0];if(this._buffer.length&&(this._buffer.length>=read.length||read.allowLess)){this._reads.shift();let buf=this._buffer;this._buffer=buf.slice(read.length),read.func.call(this,buf.slice(0,read.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")}});var require_filter_parse_sync=__commonJS(function(exports){var SyncReader=require_sync_reader(),Filter=require_filter_parse();exports.process=function(inBuffer,bitmapInfo){let outBuffers=[],reader=new SyncReader(inBuffer);return new Filter(bitmapInfo,{read:reader.read.bind(reader),write:function(bufferPart){outBuffers.push(bufferPart)},complete:function(){}}).start(),reader.process(),Buffer.concat(outBuffers)}});var require_parser_sync=__commonJS(function(exports,module){var hasSyncZlib=!0,zlib=__require("zlib"),inflateSync=require_sync_inflate();if(!zlib.deflateSync)hasSyncZlib=!1;var SyncReader=require_sync_reader(),FilterSync=require_filter_parse_sync(),Parser=require_parser(),bitmapper=require_bitmapper(),formatNormaliser=require_format_normaliser();module.exports=function(buffer,options){if(!hasSyncZlib)throw Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let err;function handleError(_err_){err=_err_}let metaData;function handleMetaData(_metaData_){metaData=_metaData_}function handleTransColor(transColor){metaData.transColor=transColor}function handlePalette(palette){metaData.palette=palette}function handleSimpleTransparency(){metaData.alpha=!0}let gamma;function handleGamma(_gamma_){gamma=_gamma_}let inflateDataList=[];function handleInflateData(inflatedData){inflateDataList.push(inflatedData)}let reader=new SyncReader(buffer);if(new Parser(options,{read:reader.read.bind(reader),error:handleError,metadata:handleMetaData,gamma:handleGamma,palette:handlePalette,transColor:handleTransColor,inflateData:handleInflateData,simpleTransparency:handleSimpleTransparency}).start(),reader.process(),err)throw err;let inflateData=Buffer.concat(inflateDataList);inflateDataList.length=0;let inflatedData;if(metaData.interlace)inflatedData=zlib.inflateSync(inflateData);else{let imageSize=((metaData.width*metaData.bpp*metaData.depth+7>>3)+1)*metaData.height;inflatedData=inflateSync(inflateData,{chunkSize:imageSize,maxLength:imageSize})}if(inflateData=null,!inflatedData||!inflatedData.length)throw Error("bad png - invalid inflate data response");let unfilteredData=FilterSync.process(inflatedData,metaData);inflateData=null;let bitmapData=bitmapper.dataToBitMap(unfilteredData,metaData);unfilteredData=null;let normalisedBitmapData=formatNormaliser(bitmapData,metaData,options.skipRescale);return metaData.data=normalisedBitmapData,metaData.gamma=gamma||0,metaData}});var require_packer_sync=__commonJS(function(exports,module){var hasSyncZlib=!0,zlib=__require("zlib");if(!zlib.deflateSync)hasSyncZlib=!1;var constants=require_constants(),Packer=require_packer();module.exports=function(metaData,opt){if(!hasSyncZlib)throw Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let packer=new Packer(opt||{}),chunks=[];if(chunks.push(Buffer.from(constants.PNG_SIGNATURE)),chunks.push(packer.packIHDR(metaData.width,metaData.height)),metaData.gamma)chunks.push(packer.packGAMA(metaData.gamma));let filteredData=packer.filterData(metaData.data,metaData.width,metaData.height),compressedData=zlib.deflateSync(filteredData,packer.getDeflateOptions());if(filteredData=null,!compressedData||!compressedData.length)throw Error("bad png - invalid compressed data response");return chunks.push(packer.packIDAT(compressedData)),chunks.push(packer.packIEND()),Buffer.concat(chunks)}});var require_png_sync=__commonJS(function(exports){var parse=require_parser_sync(),pack=require_packer_sync();exports.read=function(buffer,options){return parse(buffer,options||{})};exports.write=function(png,options){return pack(png,options)}});var require_png=__commonJS(function(exports){var util=__require("util"),Stream=__require("stream"),Parser=require_parser_async(),Packer=require_packer_async(),PNGSync=require_png_sync(),PNG=exports.PNG=function(options){if(Stream.call(this),options=options||{},this.width=options.width|0,this.height=options.height|0,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,options.fill&&this.data)this.data.fill(0);this.gamma=0,this.readable=this.writable=!0,this._parser=new Parser(options),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(data){this.data=data,this.emit("parsed",data)}.bind(this)),this._packer=new Packer(options),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"))};util.inherits(PNG,Stream);PNG.sync=PNGSync;PNG.prototype.pack=function(){if(!this.data||!this.data.length)return this.emit("error","No data provided"),this;return process.nextTick(function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}.bind(this)),this};PNG.prototype.parse=function(data,callback){if(callback){let onParsed,onError;onParsed=function(parsedData){this.removeListener("error",onError),this.data=parsedData,callback(null,this)}.bind(this),onError=function(err){this.removeListener("parsed",onParsed),callback(err,null)}.bind(this),this.once("parsed",onParsed),this.once("error",onError)}return this.end(data),this};PNG.prototype.write=function(data){return this._parser.write(data),!0};PNG.prototype.end=function(data){this._parser.end(data)};PNG.prototype._metadata=function(metadata){this.width=metadata.width,this.height=metadata.height,this.emit("metadata",metadata)};PNG.prototype._gamma=function(gamma){this.gamma=gamma};PNG.prototype._handleClose=function(){if(!this._parser.writable&&!this._packer.readable)this.emit("close")};PNG.bitblt=function(src,dst,srcX,srcY,width,height,deltaX,deltaY){if(srcX|=0,srcY|=0,width|=0,height|=0,deltaX|=0,deltaY|=0,srcX>src.width||srcY>src.height||srcX+width>src.width||srcY+height>src.height)throw Error("bitblt reading outside image");if(deltaX>dst.width||deltaY>dst.height||deltaX+width>dst.width||deltaY+height>dst.height)throw Error("bitblt writing outside image");for(let y=0;y<height;y++)src.data.copy(dst.data,(deltaY+y)*dst.width+deltaX<<2,(srcY+y)*src.width+srcX<<2,(srcY+y)*src.width+srcX+width<<2)};PNG.prototype.bitblt=function(dst,srcX,srcY,width,height,deltaX,deltaY){return PNG.bitblt(this,dst,srcX,srcY,width,height,deltaX,deltaY),this};PNG.adjustGamma=function(src){if(src.gamma){for(let y=0;y<src.height;y++)for(let x=0;x<src.width;x++){let idx=src.width*y+x<<2;for(let i=0;i<3;i++){let sample=src.data[idx+i]/255;sample=Math.pow(sample,0.45454545454545453/src.gamma),src.data[idx+i]=Math.round(sample*255)}}src.gamma=0}};PNG.prototype.adjustGamma=function(){PNG.adjustGamma(this)}});var require_react_development=__commonJS(function(exports,module){(function(){function defineDeprecationWarning(methodName,info){Object.defineProperty(Component.prototype,methodName,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",info[0],info[1])}})}function getIteratorFn(maybeIterable){if(maybeIterable===null||typeof maybeIterable!=="object")return null;return maybeIterable=MAYBE_ITERATOR_SYMBOL&&maybeIterable[MAYBE_ITERATOR_SYMBOL]||maybeIterable["@@iterator"],typeof maybeIterable==="function"?maybeIterable:null}function warnNoop(publicInstance,callerName){publicInstance=(publicInstance=publicInstance.constructor)&&(publicInstance.displayName||publicInstance.name)||"ReactClass";var warningKey=publicInstance+"."+callerName;didWarnStateUpdateForUnmountedComponent[warningKey]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",callerName,publicInstance),didWarnStateUpdateForUnmountedComponent[warningKey]=!0)}function Component(props,context,updater){this.props=props,this.context=context,this.refs=emptyObject,this.updater=updater||ReactNoopUpdateQueue}function ComponentDummy(){}function PureComponent(props,context,updater){this.props=props,this.context=context,this.refs=emptyObject,this.updater=updater||ReactNoopUpdateQueue}function noop(){}function testStringCoercion(value){return""+value}function checkKeyStringCoercion(value){try{testStringCoercion(value);var JSCompiler_inline_result=!1}catch(e){JSCompiler_inline_result=!0}if(JSCompiler_inline_result){JSCompiler_inline_result=console;var JSCompiler_temp_const=JSCompiler_inline_result.error,JSCompiler_inline_result$jscomp$0=typeof Symbol==="function"&&Symbol.toStringTag&&value[Symbol.toStringTag]||value.constructor.name||"Object";return JSCompiler_temp_const.call(JSCompiler_inline_result,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",JSCompiler_inline_result$jscomp$0),testStringCoercion(value)}}function getComponentNameFromType(type){if(type==null)return null;if(typeof type==="function")return type.$$typeof===REACT_CLIENT_REFERENCE?null:type.displayName||type.name||null;if(typeof type==="string")return type;switch(type){case REACT_FRAGMENT_TYPE:return"Fragment";case REACT_PROFILER_TYPE:return"Profiler";case REACT_STRICT_MODE_TYPE:return"StrictMode";case REACT_SUSPENSE_TYPE:return"Suspense";case REACT_SUSPENSE_LIST_TYPE:return"SuspenseList";case REACT_ACTIVITY_TYPE:return"Activity"}if(typeof type==="object")switch(typeof type.tag==="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),type.$$typeof){case REACT_PORTAL_TYPE:return"Portal";case REACT_CONTEXT_TYPE:return type.displayName||"Context";case REACT_CONSUMER_TYPE:return(type._context.displayName||"Context")+".Consumer";case REACT_FORWARD_REF_TYPE:var innerType=type.render;return type=type.displayName,type||(type=innerType.displayName||innerType.name||"",type=type!==""?"ForwardRef("+type+")":"ForwardRef"),type;case REACT_MEMO_TYPE:return innerType=type.displayName||null,innerType!==null?innerType:getComponentNameFromType(type.type)||"Memo";case REACT_LAZY_TYPE:innerType=type._payload,type=type._init;try{return getComponentNameFromType(type(innerType))}catch(x){}}return null}function getTaskName(type){if(type===REACT_FRAGMENT_TYPE)return"<>";if(typeof type==="object"&&type!==null&&type.$$typeof===REACT_LAZY_TYPE)return"<...>";try{var name=getComponentNameFromType(type);return name?"<"+name+">":"<...>"}catch(x){return"<...>"}}function getOwner(){var dispatcher=ReactSharedInternals.A;return dispatcher===null?null:dispatcher.getOwner()}function UnknownOwner(){return Error("react-stack-top-frame")}function hasValidKey(config){if(hasOwnProperty.call(config,"key")){var getter=Object.getOwnPropertyDescriptor(config,"key").get;if(getter&&getter.isReactWarning)return!1}return config.key!==void 0}function defineKeyPropWarningGetter(props,displayName){function warnAboutAccessingKey(){specialPropKeyWarningShown||(specialPropKeyWarningShown=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",displayName))}warnAboutAccessingKey.isReactWarning=!0,Object.defineProperty(props,"key",{get:warnAboutAccessingKey,configurable:!0})}function elementRefGetterWithDeprecationWarning(){var componentName=getComponentNameFromType(this.type);return didWarnAboutElementRef[componentName]||(didWarnAboutElementRef[componentName]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),componentName=this.props.ref,componentName!==void 0?componentName:null}function ReactElement(type,key,props,owner,debugStack,debugTask){var refProp=props.ref;return type={$$typeof:REACT_ELEMENT_TYPE,type,key,props,_owner:owner},(refProp!==void 0?refProp:null)!==null?Object.defineProperty(type,"ref",{enumerable:!1,get:elementRefGetterWithDeprecationWarning}):Object.defineProperty(type,"ref",{enumerable:!1,value:null}),type._store={},Object.defineProperty(type._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(type,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(type,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:debugStack}),Object.defineProperty(type,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:debugTask}),Object.freeze&&(Object.freeze(type.props),Object.freeze(type)),type}function cloneAndReplaceKey(oldElement,newKey){return newKey=ReactElement(oldElement.type,newKey,oldElement.props,oldElement._owner,oldElement._debugStack,oldElement._debugTask),oldElement._store&&(newKey._store.validated=oldElement._store.validated),newKey}function validateChildKeys(node){isValidElement(node)?node._store&&(node._store.validated=1):typeof node==="object"&&node!==null&&node.$$typeof===REACT_LAZY_TYPE&&(node._payload.status==="fulfilled"?isValidElement(node._payload.value)&&node._payload.value._store&&(node._payload.value._store.validated=1):node._store&&(node._store.validated=1))}function isValidElement(object){return typeof object==="object"&&object!==null&&object.$$typeof===REACT_ELEMENT_TYPE}function escape(key){var escaperLookup={"=":"=0",":":"=2"};return"$"+key.replace(/[=:]/g,function(match){return escaperLookup[match]})}function getElementKey(element,index){return typeof element==="object"&&element!==null&&element.key!=null?(checkKeyStringCoercion(element.key),escape(""+element.key)):index.toString(36)}function resolveThenable(thenable){switch(thenable.status){case"fulfilled":return thenable.value;case"rejected":throw thenable.reason;default:switch(typeof thenable.status==="string"?thenable.then(noop,noop):(thenable.status="pending",thenable.then(function(fulfilledValue){thenable.status==="pending"&&(thenable.status="fulfilled",thenable.value=fulfilledValue)},function(error){thenable.status==="pending"&&(thenable.status="rejected",thenable.reason=error)})),thenable.status){case"fulfilled":return thenable.value;case"rejected":throw thenable.reason}}throw thenable}function mapIntoArray(children,array,escapedPrefix,nameSoFar,callback){var type=typeof children;if(type==="undefined"||type==="boolean")children=null;var invokeCallback=!1;if(children===null)invokeCallback=!0;else switch(type){case"bigint":case"string":case"number":invokeCallback=!0;break;case"object":switch(children.$$typeof){case REACT_ELEMENT_TYPE:case REACT_PORTAL_TYPE:invokeCallback=!0;break;case REACT_LAZY_TYPE:return invokeCallback=children._init,mapIntoArray(invokeCallback(children._payload),array,escapedPrefix,nameSoFar,callback)}}if(invokeCallback){invokeCallback=children,callback=callback(invokeCallback);var childKey=nameSoFar===""?"."+getElementKey(invokeCallback,0):nameSoFar;return isArrayImpl(callback)?(escapedPrefix="",childKey!=null&&(escapedPrefix=childKey.replace(userProvidedKeyEscapeRegex,"$&/")+"/"),mapIntoArray(callback,array,escapedPrefix,"",function(c){return c})):callback!=null&&(isValidElement(callback)&&(callback.key!=null&&(invokeCallback&&invokeCallback.key===callback.key||checkKeyStringCoercion(callback.key)),escapedPrefix=cloneAndReplaceKey(callback,escapedPrefix+(callback.key==null||invokeCallback&&invokeCallback.key===callback.key?"":(""+callback.key).replace(userProvidedKeyEscapeRegex,"$&/")+"/")+childKey),nameSoFar!==""&&invokeCallback!=null&&isValidElement(invokeCallback)&&invokeCallback.key==null&&invokeCallback._store&&!invokeCallback._store.validated&&(escapedPrefix._store.validated=2),callback=escapedPrefix),array.push(callback)),1}if(invokeCallback=0,childKey=nameSoFar===""?".":nameSoFar+":",isArrayImpl(children))for(var i=0;i<children.length;i++)nameSoFar=children[i],type=childKey+getElementKey(nameSoFar,i),invokeCallback+=mapIntoArray(nameSoFar,array,escapedPrefix,type,callback);else if(i=getIteratorFn(children),typeof i==="function")for(i===children.entries&&(didWarnAboutMaps||console.warn("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),didWarnAboutMaps=!0),children=i.call(children),i=0;!(nameSoFar=children.next()).done;)nameSoFar=nameSoFar.value,type=childKey+getElementKey(nameSoFar,i++),invokeCallback+=mapIntoArray(nameSoFar,array,escapedPrefix,type,callback);else if(type==="object"){if(typeof children.then==="function")return mapIntoArray(resolveThenable(children),array,escapedPrefix,nameSoFar,callback);throw array=String(children),Error("Objects are not valid as a React child (found: "+(array==="[object Object]"?"object with keys {"+Object.keys(children).join(", ")+"}":array)+"). If you meant to render a collection of children, use an array instead.")}return invokeCallback}function mapChildren(children,func,context){if(children==null)return children;var result=[],count=0;return mapIntoArray(children,result,"","",function(child){return func.call(context,child,count++)}),result}function lazyInitializer(payload){if(payload._status===-1){var ioInfo=payload._ioInfo;ioInfo!=null&&(ioInfo.start=ioInfo.end=performance.now()),ioInfo=payload._result;var thenable=ioInfo();if(thenable.then(function(moduleObject){if(payload._status===0||payload._status===-1){payload._status=1,payload._result=moduleObject;var _ioInfo=payload._ioInfo;_ioInfo!=null&&(_ioInfo.end=performance.now()),thenable.status===void 0&&(thenable.status="fulfilled",thenable.value=moduleObject)}},function(error){if(payload._status===0||payload._status===-1){payload._status=2,payload._result=error;var _ioInfo2=payload._ioInfo;_ioInfo2!=null&&(_ioInfo2.end=performance.now()),thenable.status===void 0&&(thenable.status="rejected",thenable.reason=error)}}),ioInfo=payload._ioInfo,ioInfo!=null){ioInfo.value=thenable;var displayName=thenable.displayName;typeof displayName==="string"&&(ioInfo.name=displayName)}payload._status===-1&&(payload._status=0,payload._result=thenable)}if(payload._status===1)return ioInfo=payload._result,ioInfo===void 0&&console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
|
|
2
|
+
import{isCssIdent,sanitizeCssTokenValue,neutralizeCssText,sanitizeGoogleFontSpec,isComponentNode,isSnippetInstance,isParamRef,isRepoNode,repoKey,ScreenSchema,resolveSnippetArgs,substituteSnippetParams,applySnippetOverrides,applySnippetExtraClassName,spacingCssTokens,ThemeSchema,typesetCss}from"./chunk-4pkw6d9n.js";import{__toESM,__commonJS,__exportCjs,__require}from"./chunk-2smsg2ct.js";var require_chunkstream=__commonJS(function(exports,module){var util=__require("util"),Stream=__require("stream"),ChunkStream=module.exports=function(){Stream.call(this),this._buffers=[],this._buffered=0,this._reads=[],this._paused=!1,this._encoding="utf8",this.writable=!0};util.inherits(ChunkStream,Stream);ChunkStream.prototype.read=function(length,callback){this._reads.push({length:Math.abs(length),allowLess:length<0,func:callback}),process.nextTick(function(){if(this._process(),this._paused&&this._reads&&this._reads.length>0)this._paused=!1,this.emit("drain")}.bind(this))};ChunkStream.prototype.write=function(data,encoding){if(!this.writable)return this.emit("error",Error("Stream not writable")),!1;let dataBuffer;if(Buffer.isBuffer(data))dataBuffer=data;else dataBuffer=Buffer.from(data,encoding||this._encoding);if(this._buffers.push(dataBuffer),this._buffered+=dataBuffer.length,this._process(),this._reads&&this._reads.length===0)this._paused=!0;return this.writable&&!this._paused};ChunkStream.prototype.end=function(data,encoding){if(data)this.write(data,encoding);if(this.writable=!1,!this._buffers)return;if(this._buffers.length===0)this._end();else this._buffers.push(null),this._process()};ChunkStream.prototype.destroySoon=ChunkStream.prototype.end;ChunkStream.prototype._end=function(){if(this._reads.length>0)this.emit("error",Error("Unexpected end of input"));this.destroy()};ChunkStream.prototype.destroy=function(){if(!this._buffers)return;this.writable=!1,this._reads=null,this._buffers=null,this.emit("close")};ChunkStream.prototype._processReadAllowingLess=function(read){this._reads.shift();let smallerBuf=this._buffers[0];if(smallerBuf.length>read.length)this._buffered-=read.length,this._buffers[0]=smallerBuf.slice(read.length),read.func.call(this,smallerBuf.slice(0,read.length));else this._buffered-=smallerBuf.length,this._buffers.shift(),read.func.call(this,smallerBuf)};ChunkStream.prototype._processRead=function(read){this._reads.shift();let pos=0,count=0,data=Buffer.alloc(read.length);while(pos<read.length){let buf=this._buffers[count++],len=Math.min(buf.length,read.length-pos);if(buf.copy(data,pos,0,len),pos+=len,len!==buf.length)this._buffers[--count]=buf.slice(len)}if(count>0)this._buffers.splice(0,count);this._buffered-=read.length,read.func.call(this,data)};ChunkStream.prototype._process=function(){try{while(this._buffered>0&&this._reads&&this._reads.length>0){let read=this._reads[0];if(read.allowLess)this._processReadAllowingLess(read);else if(this._buffered>=read.length)this._processRead(read);else break}if(this._buffers&&!this.writable)this._end()}catch(ex){this.emit("error",ex)}}});var require_interlace=__commonJS(function(exports){var imagePasses=[{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]}];exports.getImagePasses=function(width,height){let images=[],xLeftOver=width%8,yLeftOver=height%8,xRepeats=(width-xLeftOver)/8,yRepeats=(height-yLeftOver)/8;for(let i=0;i<imagePasses.length;i++){let pass=imagePasses[i],passWidth=xRepeats*pass.x.length,passHeight=yRepeats*pass.y.length;for(let j=0;j<pass.x.length;j++)if(pass.x[j]<xLeftOver)passWidth++;else break;for(let j=0;j<pass.y.length;j++)if(pass.y[j]<yLeftOver)passHeight++;else break;if(passWidth>0&&passHeight>0)images.push({width:passWidth,height:passHeight,index:i})}return images};exports.getInterlaceIterator=function(width){return function(x,y,pass){let outerXLeftOver=x%imagePasses[pass].x.length,outerX=(x-outerXLeftOver)/imagePasses[pass].x.length*8+imagePasses[pass].x[outerXLeftOver],outerYLeftOver=y%imagePasses[pass].y.length,outerY=(y-outerYLeftOver)/imagePasses[pass].y.length*8+imagePasses[pass].y[outerYLeftOver];return outerX*4+outerY*width*4}}});var require_paeth_predictor=__commonJS(function(exports,module){module.exports=function(left,above,upLeft){let paeth=left+above-upLeft,pLeft=Math.abs(paeth-left),pAbove=Math.abs(paeth-above),pUpLeft=Math.abs(paeth-upLeft);if(pLeft<=pAbove&&pLeft<=pUpLeft)return left;if(pAbove<=pUpLeft)return above;return upLeft}});var require_filter_parse=__commonJS(function(exports,module){var interlaceUtils=require_interlace(),paethPredictor=require_paeth_predictor();function getByteWidth(width,bpp,depth){let byteWidth=width*bpp;if(depth!==8)byteWidth=Math.ceil(byteWidth/(8/depth));return byteWidth}var Filter=module.exports=function(bitmapInfo,dependencies){let{width,height,interlace,bpp,depth}=bitmapInfo;if(this.read=dependencies.read,this.write=dependencies.write,this.complete=dependencies.complete,this._imageIndex=0,this._images=[],interlace){let passes=interlaceUtils.getImagePasses(width,height);for(let i=0;i<passes.length;i++)this._images.push({byteWidth:getByteWidth(passes[i].width,bpp,depth),height:passes[i].height,lineIndex:0})}else this._images.push({byteWidth:getByteWidth(width,bpp,depth),height,lineIndex:0});if(depth===8)this._xComparison=bpp;else if(depth===16)this._xComparison=bpp*2;else this._xComparison=1};Filter.prototype.start=function(){this.read(this._images[this._imageIndex].byteWidth+1,this._reverseFilterLine.bind(this))};Filter.prototype._unFilterType1=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f1Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0;unfilteredLine[x]=rawByte+f1Left}};Filter.prototype._unFilterType2=function(rawData,unfilteredLine,byteWidth){let lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f2Up=lastLine?lastLine[x]:0;unfilteredLine[x]=rawByte+f2Up}};Filter.prototype._unFilterType3=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1,lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f3Up=lastLine?lastLine[x]:0,f3Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0,f3Add=Math.floor((f3Left+f3Up)/2);unfilteredLine[x]=rawByte+f3Add}};Filter.prototype._unFilterType4=function(rawData,unfilteredLine,byteWidth){let xComparison=this._xComparison,xBiggerThan=xComparison-1,lastLine=this._lastLine;for(let x=0;x<byteWidth;x++){let rawByte=rawData[1+x],f4Up=lastLine?lastLine[x]:0,f4Left=x>xBiggerThan?unfilteredLine[x-xComparison]:0,f4UpLeft=x>xBiggerThan&&lastLine?lastLine[x-xComparison]:0,f4Add=paethPredictor(f4Left,f4Up,f4UpLeft);unfilteredLine[x]=rawByte+f4Add}};Filter.prototype._reverseFilterLine=function(rawData){let filter=rawData[0],unfilteredLine,currentImage=this._images[this._imageIndex],byteWidth=currentImage.byteWidth;if(filter===0)unfilteredLine=rawData.slice(1,byteWidth+1);else switch(unfilteredLine=Buffer.alloc(byteWidth),filter){case 1:this._unFilterType1(rawData,unfilteredLine,byteWidth);break;case 2:this._unFilterType2(rawData,unfilteredLine,byteWidth);break;case 3:this._unFilterType3(rawData,unfilteredLine,byteWidth);break;case 4:this._unFilterType4(rawData,unfilteredLine,byteWidth);break;default:throw Error("Unrecognised filter type - "+filter)}if(this.write(unfilteredLine),currentImage.lineIndex++,currentImage.lineIndex>=currentImage.height)this._lastLine=null,this._imageIndex++,currentImage=this._images[this._imageIndex];else this._lastLine=unfilteredLine;if(currentImage)this.read(currentImage.byteWidth+1,this._reverseFilterLine.bind(this));else this._lastLine=null,this.complete()}});var require_filter_parse_async=__commonJS(function(exports,module){var util=__require("util"),ChunkStream=require_chunkstream(),Filter=require_filter_parse(),FilterAsync=module.exports=function(bitmapInfo){ChunkStream.call(this);let buffers=[],that=this;this._filter=new Filter(bitmapInfo,{read:this.read.bind(this),write:function(buffer){buffers.push(buffer)},complete:function(){that.emit("complete",Buffer.concat(buffers))}}),this._filter.start()};util.inherits(FilterAsync,ChunkStream)});var require_constants=__commonJS(function(exports,module){module.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}});var require_crc=__commonJS(function(exports,module){var crcTable=[];(function(){for(let i=0;i<256;i++){let currentCrc=i;for(let j=0;j<8;j++)if(currentCrc&1)currentCrc=3988292384^currentCrc>>>1;else currentCrc=currentCrc>>>1;crcTable[i]=currentCrc}})();var CrcCalculator=module.exports=function(){this._crc=-1};CrcCalculator.prototype.write=function(data){for(let i=0;i<data.length;i++)this._crc=crcTable[(this._crc^data[i])&255]^this._crc>>>8;return!0};CrcCalculator.prototype.crc32=function(){return this._crc^-1};CrcCalculator.crc32=function(buf){let crc=-1;for(let i=0;i<buf.length;i++)crc=crcTable[(crc^buf[i])&255]^crc>>>8;return crc^-1}});var require_parser=__commonJS(function(exports,module){var constants=require_constants(),CrcCalculator=require_crc(),Parser=module.exports=function(options,dependencies){this._options=options,options.checkCRC=options.checkCRC!==!1,this._hasIHDR=!1,this._hasIEND=!1,this._emittedHeadersFinished=!1,this._palette=[],this._colorType=0,this._chunks={},this._chunks[constants.TYPE_IHDR]=this._handleIHDR.bind(this),this._chunks[constants.TYPE_IEND]=this._handleIEND.bind(this),this._chunks[constants.TYPE_IDAT]=this._handleIDAT.bind(this),this._chunks[constants.TYPE_PLTE]=this._handlePLTE.bind(this),this._chunks[constants.TYPE_tRNS]=this._handleTRNS.bind(this),this._chunks[constants.TYPE_gAMA]=this._handleGAMA.bind(this),this.read=dependencies.read,this.error=dependencies.error,this.metadata=dependencies.metadata,this.gamma=dependencies.gamma,this.transColor=dependencies.transColor,this.palette=dependencies.palette,this.parsed=dependencies.parsed,this.inflateData=dependencies.inflateData,this.finished=dependencies.finished,this.simpleTransparency=dependencies.simpleTransparency,this.headersFinished=dependencies.headersFinished||function(){}};Parser.prototype.start=function(){this.read(constants.PNG_SIGNATURE.length,this._parseSignature.bind(this))};Parser.prototype._parseSignature=function(data){let signature=constants.PNG_SIGNATURE;for(let i=0;i<signature.length;i++)if(data[i]!==signature[i]){this.error(Error("Invalid file signature"));return}this.read(8,this._parseChunkBegin.bind(this))};Parser.prototype._parseChunkBegin=function(data){let length=data.readUInt32BE(0),type=data.readUInt32BE(4),name="";for(let i=4;i<8;i++)name+=String.fromCharCode(data[i]);let ancillary=Boolean(data[4]&32);if(!this._hasIHDR&&type!==constants.TYPE_IHDR){this.error(Error("Expected IHDR on beggining"));return}if(this._crc=new CrcCalculator,this._crc.write(Buffer.from(name)),this._chunks[type])return this._chunks[type](length);if(!ancillary){this.error(Error("Unsupported critical chunk type "+name));return}this.read(length+4,this._skipChunk.bind(this))};Parser.prototype._skipChunk=function(){this.read(8,this._parseChunkBegin.bind(this))};Parser.prototype._handleChunkEnd=function(){this.read(4,this._parseChunkEnd.bind(this))};Parser.prototype._parseChunkEnd=function(data){let fileCrc=data.readInt32BE(0),calcCrc=this._crc.crc32();if(this._options.checkCRC&&calcCrc!==fileCrc){this.error(Error("Crc error - "+fileCrc+" - "+calcCrc));return}if(!this._hasIEND)this.read(8,this._parseChunkBegin.bind(this))};Parser.prototype._handleIHDR=function(length){this.read(length,this._parseIHDR.bind(this))};Parser.prototype._parseIHDR=function(data){this._crc.write(data);let width=data.readUInt32BE(0),height=data.readUInt32BE(4),depth=data[8],colorType=data[9],compr=data[10],filter=data[11],interlace=data[12];if(depth!==8&&depth!==4&&depth!==2&&depth!==1&&depth!==16){this.error(Error("Unsupported bit depth "+depth));return}if(!(colorType in constants.COLORTYPE_TO_BPP_MAP)){this.error(Error("Unsupported color type"));return}if(compr!==0){this.error(Error("Unsupported compression method"));return}if(filter!==0){this.error(Error("Unsupported filter method"));return}if(interlace!==0&&interlace!==1){this.error(Error("Unsupported interlace method"));return}this._colorType=colorType;let bpp=constants.COLORTYPE_TO_BPP_MAP[this._colorType];this._hasIHDR=!0,this.metadata({width,height,depth,interlace:Boolean(interlace),palette:Boolean(colorType&constants.COLORTYPE_PALETTE),color:Boolean(colorType&constants.COLORTYPE_COLOR),alpha:Boolean(colorType&constants.COLORTYPE_ALPHA),bpp,colorType}),this._handleChunkEnd()};Parser.prototype._handlePLTE=function(length){this.read(length,this._parsePLTE.bind(this))};Parser.prototype._parsePLTE=function(data){this._crc.write(data);let entries=Math.floor(data.length/3);for(let i=0;i<entries;i++)this._palette.push([data[i*3],data[i*3+1],data[i*3+2],255]);this.palette(this._palette),this._handleChunkEnd()};Parser.prototype._handleTRNS=function(length){this.simpleTransparency(),this.read(length,this._parseTRNS.bind(this))};Parser.prototype._parseTRNS=function(data){if(this._crc.write(data),this._colorType===constants.COLORTYPE_PALETTE_COLOR){if(this._palette.length===0){this.error(Error("Transparency chunk must be after palette"));return}if(data.length>this._palette.length){this.error(Error("More transparent colors than palette size"));return}for(let i=0;i<data.length;i++)this._palette[i][3]=data[i];this.palette(this._palette)}if(this._colorType===constants.COLORTYPE_GRAYSCALE)this.transColor([data.readUInt16BE(0)]);if(this._colorType===constants.COLORTYPE_COLOR)this.transColor([data.readUInt16BE(0),data.readUInt16BE(2),data.readUInt16BE(4)]);this._handleChunkEnd()};Parser.prototype._handleGAMA=function(length){this.read(length,this._parseGAMA.bind(this))};Parser.prototype._parseGAMA=function(data){this._crc.write(data),this.gamma(data.readUInt32BE(0)/constants.GAMMA_DIVISION),this._handleChunkEnd()};Parser.prototype._handleIDAT=function(length){if(!this._emittedHeadersFinished)this._emittedHeadersFinished=!0,this.headersFinished();this.read(-length,this._parseIDAT.bind(this,length))};Parser.prototype._parseIDAT=function(length,data){if(this._crc.write(data),this._colorType===constants.COLORTYPE_PALETTE_COLOR&&this._palette.length===0)throw Error("Expected palette not found");this.inflateData(data);let leftOverLength=length-data.length;if(leftOverLength>0)this._handleIDAT(leftOverLength);else this._handleChunkEnd()};Parser.prototype._handleIEND=function(length){this.read(length,this._parseIEND.bind(this))};Parser.prototype._parseIEND=function(data){if(this._crc.write(data),this._hasIEND=!0,this._handleChunkEnd(),this.finished)this.finished()}});var require_bitmapper=__commonJS(function(exports){var interlaceUtils=require_interlace(),pixelBppMapper=[function(){},function(pxData,data,pxPos,rawPos){if(rawPos===data.length)throw Error("Ran out of data");let pixel=data[rawPos];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=255},function(pxData,data,pxPos,rawPos){if(rawPos+1>=data.length)throw Error("Ran out of data");let pixel=data[rawPos];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=data[rawPos+1]},function(pxData,data,pxPos,rawPos){if(rawPos+2>=data.length)throw Error("Ran out of data");pxData[pxPos]=data[rawPos],pxData[pxPos+1]=data[rawPos+1],pxData[pxPos+2]=data[rawPos+2],pxData[pxPos+3]=255},function(pxData,data,pxPos,rawPos){if(rawPos+3>=data.length)throw Error("Ran out of data");pxData[pxPos]=data[rawPos],pxData[pxPos+1]=data[rawPos+1],pxData[pxPos+2]=data[rawPos+2],pxData[pxPos+3]=data[rawPos+3]}],pixelBppCustomMapper=[function(){},function(pxData,pixelData,pxPos,maxBit){let pixel=pixelData[0];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=maxBit},function(pxData,pixelData,pxPos){let pixel=pixelData[0];pxData[pxPos]=pixel,pxData[pxPos+1]=pixel,pxData[pxPos+2]=pixel,pxData[pxPos+3]=pixelData[1]},function(pxData,pixelData,pxPos,maxBit){pxData[pxPos]=pixelData[0],pxData[pxPos+1]=pixelData[1],pxData[pxPos+2]=pixelData[2],pxData[pxPos+3]=maxBit},function(pxData,pixelData,pxPos){pxData[pxPos]=pixelData[0],pxData[pxPos+1]=pixelData[1],pxData[pxPos+2]=pixelData[2],pxData[pxPos+3]=pixelData[3]}];function bitRetriever(data,depth){let leftOver=[],i=0;function split(){if(i===data.length)throw Error("Ran out of data");let byte=data[i];i++;let byte8,byte7,byte6,byte5,byte4,byte3,byte2,byte1;switch(depth){default:throw Error("unrecognised depth");case 16:byte2=data[i],i++,leftOver.push((byte<<8)+byte2);break;case 4:byte2=byte&15,byte1=byte>>4,leftOver.push(byte1,byte2);break;case 2:byte4=byte&3,byte3=byte>>2&3,byte2=byte>>4&3,byte1=byte>>6&3,leftOver.push(byte1,byte2,byte3,byte4);break;case 1:byte8=byte&1,byte7=byte>>1&1,byte6=byte>>2&1,byte5=byte>>3&1,byte4=byte>>4&1,byte3=byte>>5&1,byte2=byte>>6&1,byte1=byte>>7&1,leftOver.push(byte1,byte2,byte3,byte4,byte5,byte6,byte7,byte8);break}}return{get:function(count){while(leftOver.length<count)split();let returner=leftOver.slice(0,count);return leftOver=leftOver.slice(count),returner},resetAfterLine:function(){leftOver.length=0},end:function(){if(i!==data.length)throw Error("extra data found")}}}function mapImage8Bit(image,pxData,getPxPos,bpp,data,rawPos){let{width:imageWidth,height:imageHeight,index:imagePass}=image;for(let y=0;y<imageHeight;y++)for(let x=0;x<imageWidth;x++){let pxPos=getPxPos(x,y,imagePass);pixelBppMapper[bpp](pxData,data,pxPos,rawPos),rawPos+=bpp}return rawPos}function mapImageCustomBit(image,pxData,getPxPos,bpp,bits,maxBit){let{width:imageWidth,height:imageHeight,index:imagePass}=image;for(let y=0;y<imageHeight;y++){for(let x=0;x<imageWidth;x++){let pixelData=bits.get(bpp),pxPos=getPxPos(x,y,imagePass);pixelBppCustomMapper[bpp](pxData,pixelData,pxPos,maxBit)}bits.resetAfterLine()}}exports.dataToBitMap=function(data,bitmapInfo){let{width,height,depth,bpp,interlace}=bitmapInfo,bits;if(depth!==8)bits=bitRetriever(data,depth);let pxData;if(depth<=8)pxData=Buffer.alloc(width*height*4);else pxData=new Uint16Array(width*height*4);let maxBit=Math.pow(2,depth)-1,rawPos=0,images,getPxPos;if(interlace)images=interlaceUtils.getImagePasses(width,height),getPxPos=interlaceUtils.getInterlaceIterator(width,height);else{let nonInterlacedPxPos=0;getPxPos=function(){let returner=nonInterlacedPxPos;return nonInterlacedPxPos+=4,returner},images=[{width,height}]}for(let imageIndex=0;imageIndex<images.length;imageIndex++)if(depth===8)rawPos=mapImage8Bit(images[imageIndex],pxData,getPxPos,bpp,data,rawPos);else mapImageCustomBit(images[imageIndex],pxData,getPxPos,bpp,bits,maxBit);if(depth===8){if(rawPos!==data.length)throw Error("extra data found")}else bits.end();return pxData}});var require_format_normaliser=__commonJS(function(exports,module){function dePalette(indata,outdata,width,height,palette){let pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let color=palette[indata[pxPos]];if(!color)throw Error("index "+indata[pxPos]+" not in palette");for(let i=0;i<4;i++)outdata[pxPos+i]=color[i];pxPos+=4}}function replaceTransparentColor(indata,outdata,width,height,transColor){let pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){let makeTrans=!1;if(transColor.length===1){if(transColor[0]===indata[pxPos])makeTrans=!0}else if(transColor[0]===indata[pxPos]&&transColor[1]===indata[pxPos+1]&&transColor[2]===indata[pxPos+2])makeTrans=!0;if(makeTrans)for(let i=0;i<4;i++)outdata[pxPos+i]=0;pxPos+=4}}function scaleDepth(indata,outdata,width,height,depth){let maxOutSample=255,maxInSample=Math.pow(2,depth)-1,pxPos=0;for(let y=0;y<height;y++)for(let x=0;x<width;x++){for(let i=0;i<4;i++)outdata[pxPos+i]=Math.floor(indata[pxPos+i]*maxOutSample/maxInSample+0.5);pxPos+=4}}module.exports=function(indata,imageData,skipRescale=!1){let{depth,width,height,colorType,transColor,palette}=imageData,outdata=indata;if(colorType===3)dePalette(indata,outdata,width,height,palette);else{if(transColor)replaceTransparentColor(indata,outdata,width,height,transColor);if(depth!==8&&!skipRescale){if(depth===16)outdata=Buffer.alloc(width*height*4);scaleDepth(indata,outdata,width,height,depth)}}return outdata}});var require_parser_async=__commonJS(function(exports,module){var util=__require("util"),zlib=__require("zlib"),ChunkStream=require_chunkstream(),FilterAsync=require_filter_parse_async(),Parser=require_parser(),bitmapper=require_bitmapper(),formatNormaliser=require_format_normaliser(),ParserAsync=module.exports=function(options){ChunkStream.call(this),this._parser=new Parser(options,{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=options,this.writable=!0,this._parser.start()};util.inherits(ParserAsync,ChunkStream);ParserAsync.prototype._handleError=function(err){if(this.emit("error",err),this.writable=!1,this.destroy(),this._inflate&&this._inflate.destroy)this._inflate.destroy();if(this._filter)this._filter.destroy(),this._filter.on("error",function(){});this.errord=!0};ParserAsync.prototype._inflateData=function(data){if(!this._inflate)if(this._bitmapInfo.interlace)this._inflate=zlib.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 imageSize=((this._bitmapInfo.width*this._bitmapInfo.bpp*this._bitmapInfo.depth+7>>3)+1)*this._bitmapInfo.height,chunkSize=Math.max(imageSize,zlib.Z_MIN_CHUNK);this._inflate=zlib.createInflate({chunkSize});let leftToInflate=imageSize,emitError=this.emit.bind(this,"error");this._inflate.on("error",function(err){if(!leftToInflate)return;emitError(err)}),this._filter.on("complete",this._complete.bind(this));let filterWrite=this._filter.write.bind(this._filter);this._inflate.on("data",function(chunk){if(!leftToInflate)return;if(chunk.length>leftToInflate)chunk=chunk.slice(0,leftToInflate);leftToInflate-=chunk.length,filterWrite(chunk)}),this._inflate.on("end",this._filter.end.bind(this._filter))}this._inflate.write(data)};ParserAsync.prototype._handleMetaData=function(metaData){this._metaData=metaData,this._bitmapInfo=Object.create(metaData),this._filter=new FilterAsync(this._bitmapInfo)};ParserAsync.prototype._handleTransColor=function(transColor){this._bitmapInfo.transColor=transColor};ParserAsync.prototype._handlePalette=function(palette){this._bitmapInfo.palette=palette};ParserAsync.prototype._simpleTransparency=function(){this._metaData.alpha=!0};ParserAsync.prototype._headersFinished=function(){this.emit("metadata",this._metaData)};ParserAsync.prototype._finished=function(){if(this.errord)return;if(!this._inflate)this.emit("error","No Inflate block");else this._inflate.end()};ParserAsync.prototype._complete=function(filteredData){if(this.errord)return;let normalisedBitmapData;try{let bitmapData=bitmapper.dataToBitMap(filteredData,this._bitmapInfo);normalisedBitmapData=formatNormaliser(bitmapData,this._bitmapInfo,this._options.skipRescale),bitmapData=null}catch(ex){this._handleError(ex);return}this.emit("parsed",normalisedBitmapData)}});var require_bitpacker=__commonJS(function(exports,module){var constants=require_constants();module.exports=function(dataIn,width,height,options){let outHasAlpha=[constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.colorType)!==-1;if(options.colorType===options.inputColorType){let bigEndian=function(){let buffer=new ArrayBuffer(2);return new DataView(buffer).setInt16(0,256,!0),new Int16Array(buffer)[0]!==256}();if(options.bitDepth===8||options.bitDepth===16&&bigEndian)return dataIn}let data=options.bitDepth!==16?dataIn:new Uint16Array(dataIn.buffer),maxValue=255,inBpp=constants.COLORTYPE_TO_BPP_MAP[options.inputColorType];if(inBpp===4&&!options.inputHasAlpha)inBpp=3;let outBpp=constants.COLORTYPE_TO_BPP_MAP[options.colorType];if(options.bitDepth===16)maxValue=65535,outBpp*=2;let outData=Buffer.alloc(width*height*outBpp),inIndex=0,outIndex=0,bgColor=options.bgColor||{};if(bgColor.red===void 0)bgColor.red=maxValue;if(bgColor.green===void 0)bgColor.green=maxValue;if(bgColor.blue===void 0)bgColor.blue=maxValue;function getRGBA(){let red,green,blue,alpha=maxValue;switch(options.inputColorType){case constants.COLORTYPE_COLOR_ALPHA:alpha=data[inIndex+3],red=data[inIndex],green=data[inIndex+1],blue=data[inIndex+2];break;case constants.COLORTYPE_COLOR:red=data[inIndex],green=data[inIndex+1],blue=data[inIndex+2];break;case constants.COLORTYPE_ALPHA:alpha=data[inIndex+1],red=data[inIndex],green=red,blue=red;break;case constants.COLORTYPE_GRAYSCALE:red=data[inIndex],green=red,blue=red;break;default:throw Error("input color type:"+options.inputColorType+" is not supported at present")}if(options.inputHasAlpha){if(!outHasAlpha)alpha/=maxValue,red=Math.min(Math.max(Math.round((1-alpha)*bgColor.red+alpha*red),0),maxValue),green=Math.min(Math.max(Math.round((1-alpha)*bgColor.green+alpha*green),0),maxValue),blue=Math.min(Math.max(Math.round((1-alpha)*bgColor.blue+alpha*blue),0),maxValue)}return{red,green,blue,alpha}}for(let y=0;y<height;y++)for(let x=0;x<width;x++){let rgba=getRGBA(data,inIndex);switch(options.colorType){case constants.COLORTYPE_COLOR_ALPHA:case constants.COLORTYPE_COLOR:if(options.bitDepth===8){if(outData[outIndex]=rgba.red,outData[outIndex+1]=rgba.green,outData[outIndex+2]=rgba.blue,outHasAlpha)outData[outIndex+3]=rgba.alpha}else if(outData.writeUInt16BE(rgba.red,outIndex),outData.writeUInt16BE(rgba.green,outIndex+2),outData.writeUInt16BE(rgba.blue,outIndex+4),outHasAlpha)outData.writeUInt16BE(rgba.alpha,outIndex+6);break;case constants.COLORTYPE_ALPHA:case constants.COLORTYPE_GRAYSCALE:{let grayscale=(rgba.red+rgba.green+rgba.blue)/3;if(options.bitDepth===8){if(outData[outIndex]=grayscale,outHasAlpha)outData[outIndex+1]=rgba.alpha}else if(outData.writeUInt16BE(grayscale,outIndex),outHasAlpha)outData.writeUInt16BE(rgba.alpha,outIndex+2);break}default:throw Error("unrecognised color Type "+options.colorType)}inIndex+=inBpp,outIndex+=outBpp}return outData}});var require_filter_pack=__commonJS(function(exports,module){var paethPredictor=require_paeth_predictor();function filterNone(pxData,pxPos,byteWidth,rawData,rawPos){for(let x=0;x<byteWidth;x++)rawData[rawPos+x]=pxData[pxPos+x]}function filterSumNone(pxData,pxPos,byteWidth){let sum=0,length=pxPos+byteWidth;for(let i=pxPos;i<length;i++)sum+=Math.abs(pxData[i]);return sum}function filterSub(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,val=pxData[pxPos+x]-left;rawData[rawPos+x]=val}}function filterSumSub(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,val=pxData[pxPos+x]-left;sum+=Math.abs(val)}return sum}function filterUp(pxData,pxPos,byteWidth,rawData,rawPos){for(let x=0;x<byteWidth;x++){let up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-up;rawData[rawPos+x]=val}}function filterSumUp(pxData,pxPos,byteWidth){let sum=0,length=pxPos+byteWidth;for(let x=pxPos;x<length;x++){let up=pxPos>0?pxData[x-byteWidth]:0,val=pxData[x]-up;sum+=Math.abs(val)}return sum}function filterAvg(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-(left+up>>1);rawData[rawPos+x]=val}}function filterSumAvg(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,val=pxData[pxPos+x]-(left+up>>1);sum+=Math.abs(val)}return sum}function filterPaeth(pxData,pxPos,byteWidth,rawData,rawPos,bpp){for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,upleft=pxPos>0&&x>=bpp?pxData[pxPos+x-(byteWidth+bpp)]:0,val=pxData[pxPos+x]-paethPredictor(left,up,upleft);rawData[rawPos+x]=val}}function filterSumPaeth(pxData,pxPos,byteWidth,bpp){let sum=0;for(let x=0;x<byteWidth;x++){let left=x>=bpp?pxData[pxPos+x-bpp]:0,up=pxPos>0?pxData[pxPos+x-byteWidth]:0,upleft=pxPos>0&&x>=bpp?pxData[pxPos+x-(byteWidth+bpp)]:0,val=pxData[pxPos+x]-paethPredictor(left,up,upleft);sum+=Math.abs(val)}return sum}var filters={0:filterNone,1:filterSub,2:filterUp,3:filterAvg,4:filterPaeth},filterSums={0:filterSumNone,1:filterSumSub,2:filterSumUp,3:filterSumAvg,4:filterSumPaeth};module.exports=function(pxData,width,height,options,bpp){let filterTypes;if(!("filterType"in options)||options.filterType===-1)filterTypes=[0,1,2,3,4];else if(typeof options.filterType==="number")filterTypes=[options.filterType];else throw Error("unrecognised filter types");if(options.bitDepth===16)bpp*=2;let byteWidth=width*bpp,rawPos=0,pxPos=0,rawData=Buffer.alloc((byteWidth+1)*height),sel=filterTypes[0];for(let y=0;y<height;y++){if(filterTypes.length>1){let min=1/0;for(let i=0;i<filterTypes.length;i++){let sum=filterSums[filterTypes[i]](pxData,pxPos,byteWidth,bpp);if(sum<min)sel=filterTypes[i],min=sum}}rawData[rawPos]=sel,rawPos++,filters[sel](pxData,pxPos,byteWidth,rawData,rawPos,bpp),rawPos+=byteWidth,pxPos+=byteWidth}return rawData}});var require_packer=__commonJS(function(exports,module){var constants=require_constants(),CrcStream=require_crc(),bitPacker=require_bitpacker(),filter=require_filter_pack(),zlib=__require("zlib"),Packer=module.exports=function(options){if(this._options=options,options.deflateChunkSize=options.deflateChunkSize||32768,options.deflateLevel=options.deflateLevel!=null?options.deflateLevel:9,options.deflateStrategy=options.deflateStrategy!=null?options.deflateStrategy:3,options.inputHasAlpha=options.inputHasAlpha!=null?options.inputHasAlpha:!0,options.deflateFactory=options.deflateFactory||zlib.createDeflate,options.bitDepth=options.bitDepth||8,options.colorType=typeof options.colorType==="number"?options.colorType:constants.COLORTYPE_COLOR_ALPHA,options.inputColorType=typeof options.inputColorType==="number"?options.inputColorType:constants.COLORTYPE_COLOR_ALPHA,[constants.COLORTYPE_GRAYSCALE,constants.COLORTYPE_COLOR,constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.colorType)===-1)throw Error("option color type:"+options.colorType+" is not supported at present");if([constants.COLORTYPE_GRAYSCALE,constants.COLORTYPE_COLOR,constants.COLORTYPE_COLOR_ALPHA,constants.COLORTYPE_ALPHA].indexOf(options.inputColorType)===-1)throw Error("option input color type:"+options.inputColorType+" is not supported at present");if(options.bitDepth!==8&&options.bitDepth!==16)throw Error("option bit depth:"+options.bitDepth+" is not supported at present")};Packer.prototype.getDeflateOptions=function(){return{chunkSize:this._options.deflateChunkSize,level:this._options.deflateLevel,strategy:this._options.deflateStrategy}};Packer.prototype.createDeflate=function(){return this._options.deflateFactory(this.getDeflateOptions())};Packer.prototype.filterData=function(data,width,height){let packedData=bitPacker(data,width,height,this._options),bpp=constants.COLORTYPE_TO_BPP_MAP[this._options.colorType];return filter(packedData,width,height,this._options,bpp)};Packer.prototype._packChunk=function(type,data){let len=data?data.length:0,buf=Buffer.alloc(len+12);if(buf.writeUInt32BE(len,0),buf.writeUInt32BE(type,4),data)data.copy(buf,8);return buf.writeInt32BE(CrcStream.crc32(buf.slice(4,buf.length-4)),buf.length-4),buf};Packer.prototype.packGAMA=function(gamma){let buf=Buffer.alloc(4);return buf.writeUInt32BE(Math.floor(gamma*constants.GAMMA_DIVISION),0),this._packChunk(constants.TYPE_gAMA,buf)};Packer.prototype.packIHDR=function(width,height){let buf=Buffer.alloc(13);return buf.writeUInt32BE(width,0),buf.writeUInt32BE(height,4),buf[8]=this._options.bitDepth,buf[9]=this._options.colorType,buf[10]=0,buf[11]=0,buf[12]=0,this._packChunk(constants.TYPE_IHDR,buf)};Packer.prototype.packIDAT=function(data){return this._packChunk(constants.TYPE_IDAT,data)};Packer.prototype.packIEND=function(){return this._packChunk(constants.TYPE_IEND,null)}});var require_packer_async=__commonJS(function(exports,module){var util=__require("util"),Stream=__require("stream"),constants=require_constants(),Packer=require_packer(),PackerAsync=module.exports=function(opt){Stream.call(this);let options=opt||{};this._packer=new Packer(options),this._deflate=this._packer.createDeflate(),this.readable=!0};util.inherits(PackerAsync,Stream);PackerAsync.prototype.pack=function(data,width,height,gamma){if(this.emit("data",Buffer.from(constants.PNG_SIGNATURE)),this.emit("data",this._packer.packIHDR(width,height)),gamma)this.emit("data",this._packer.packGAMA(gamma));let filteredData=this._packer.filterData(data,width,height);this._deflate.on("error",this.emit.bind(this,"error")),this._deflate.on("data",function(compressedData){this.emit("data",this._packer.packIDAT(compressedData))}.bind(this)),this._deflate.on("end",function(){this.emit("data",this._packer.packIEND()),this.emit("end")}.bind(this)),this._deflate.end(filteredData)}});var require_sync_inflate=__commonJS(function(exports,module){var assert=__require("assert").ok,zlib=__require("zlib"),util=__require("util"),kMaxLength=__require("buffer").kMaxLength;function Inflate(opts){if(!(this instanceof Inflate))return new Inflate(opts);if(opts&&opts.chunkSize<zlib.Z_MIN_CHUNK)opts.chunkSize=zlib.Z_MIN_CHUNK;if(zlib.Inflate.call(this,opts),this._offset=this._offset===void 0?this._outOffset:this._offset,this._buffer=this._buffer||this._outBuffer,opts&&opts.maxLength!=null)this._maxLength=opts.maxLength}function createInflate(opts){return new Inflate(opts)}function _close(engine,callback){if(callback)process.nextTick(callback);if(!engine._handle)return;engine._handle.close(),engine._handle=null}Inflate.prototype._processChunk=function(chunk,flushFlag,asyncCb){if(typeof asyncCb==="function")return zlib.Inflate._processChunk.call(this,chunk,flushFlag,asyncCb);let self=this,availInBefore=chunk&&chunk.length,availOutBefore=this._chunkSize-this._offset,leftToInflate=this._maxLength,inOff=0,buffers=[],nread=0,error;this.on("error",function(err){error=err});function handleChunk(availInAfter,availOutAfter){if(self._hadError)return;let have=availOutBefore-availOutAfter;if(assert(have>=0,"have should not go down"),have>0){let out=self._buffer.slice(self._offset,self._offset+have);if(self._offset+=have,out.length>leftToInflate)out=out.slice(0,leftToInflate);if(buffers.push(out),nread+=out.length,leftToInflate-=out.length,leftToInflate===0)return!1}if(availOutAfter===0||self._offset>=self._chunkSize)availOutBefore=self._chunkSize,self._offset=0,self._buffer=Buffer.allocUnsafe(self._chunkSize);if(availOutAfter===0)return inOff+=availInBefore-availInAfter,availInBefore=availInAfter,!0;return!1}assert(this._handle,"zlib binding closed");let res;do res=this._handle.writeSync(flushFlag,chunk,inOff,availInBefore,this._buffer,this._offset,availOutBefore),res=res||this._writeState;while(!this._hadError&&handleChunk(res[0],res[1]));if(this._hadError)throw error;if(nread>=kMaxLength)throw _close(this),RangeError("Cannot create final Buffer. It would be larger than 0x"+kMaxLength.toString(16)+" bytes");let buf=Buffer.concat(buffers,nread);return _close(this),buf};util.inherits(Inflate,zlib.Inflate);function zlibBufferSync(engine,buffer){if(typeof buffer==="string")buffer=Buffer.from(buffer);if(!(buffer instanceof Buffer))throw TypeError("Not a string or buffer");let flushFlag=engine._finishFlushFlag;if(flushFlag==null)flushFlag=zlib.Z_FINISH;return engine._processChunk(buffer,flushFlag)}function inflateSync(buffer,opts){return zlibBufferSync(new Inflate(opts),buffer)}module.exports=exports=inflateSync;exports.Inflate=Inflate;exports.createInflate=createInflate;exports.inflateSync=inflateSync});var require_sync_reader=__commonJS(function(exports,module){var SyncReader=module.exports=function(buffer){this._buffer=buffer,this._reads=[]};SyncReader.prototype.read=function(length,callback){this._reads.push({length:Math.abs(length),allowLess:length<0,func:callback})};SyncReader.prototype.process=function(){while(this._reads.length>0&&this._buffer.length){let read=this._reads[0];if(this._buffer.length&&(this._buffer.length>=read.length||read.allowLess)){this._reads.shift();let buf=this._buffer;this._buffer=buf.slice(read.length),read.func.call(this,buf.slice(0,read.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")}});var require_filter_parse_sync=__commonJS(function(exports){var SyncReader=require_sync_reader(),Filter=require_filter_parse();exports.process=function(inBuffer,bitmapInfo){let outBuffers=[],reader=new SyncReader(inBuffer);return new Filter(bitmapInfo,{read:reader.read.bind(reader),write:function(bufferPart){outBuffers.push(bufferPart)},complete:function(){}}).start(),reader.process(),Buffer.concat(outBuffers)}});var require_parser_sync=__commonJS(function(exports,module){var hasSyncZlib=!0,zlib=__require("zlib"),inflateSync=require_sync_inflate();if(!zlib.deflateSync)hasSyncZlib=!1;var SyncReader=require_sync_reader(),FilterSync=require_filter_parse_sync(),Parser=require_parser(),bitmapper=require_bitmapper(),formatNormaliser=require_format_normaliser();module.exports=function(buffer,options){if(!hasSyncZlib)throw Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let err;function handleError(_err_){err=_err_}let metaData;function handleMetaData(_metaData_){metaData=_metaData_}function handleTransColor(transColor){metaData.transColor=transColor}function handlePalette(palette){metaData.palette=palette}function handleSimpleTransparency(){metaData.alpha=!0}let gamma;function handleGamma(_gamma_){gamma=_gamma_}let inflateDataList=[];function handleInflateData(inflatedData){inflateDataList.push(inflatedData)}let reader=new SyncReader(buffer);if(new Parser(options,{read:reader.read.bind(reader),error:handleError,metadata:handleMetaData,gamma:handleGamma,palette:handlePalette,transColor:handleTransColor,inflateData:handleInflateData,simpleTransparency:handleSimpleTransparency}).start(),reader.process(),err)throw err;let inflateData=Buffer.concat(inflateDataList);inflateDataList.length=0;let inflatedData;if(metaData.interlace)inflatedData=zlib.inflateSync(inflateData);else{let imageSize=((metaData.width*metaData.bpp*metaData.depth+7>>3)+1)*metaData.height;inflatedData=inflateSync(inflateData,{chunkSize:imageSize,maxLength:imageSize})}if(inflateData=null,!inflatedData||!inflatedData.length)throw Error("bad png - invalid inflate data response");let unfilteredData=FilterSync.process(inflatedData,metaData);inflateData=null;let bitmapData=bitmapper.dataToBitMap(unfilteredData,metaData);unfilteredData=null;let normalisedBitmapData=formatNormaliser(bitmapData,metaData,options.skipRescale);return metaData.data=normalisedBitmapData,metaData.gamma=gamma||0,metaData}});var require_packer_sync=__commonJS(function(exports,module){var hasSyncZlib=!0,zlib=__require("zlib");if(!zlib.deflateSync)hasSyncZlib=!1;var constants=require_constants(),Packer=require_packer();module.exports=function(metaData,opt){if(!hasSyncZlib)throw Error("To use the sync capability of this library in old node versions, please pin pngjs to v2.3.0");let packer=new Packer(opt||{}),chunks=[];if(chunks.push(Buffer.from(constants.PNG_SIGNATURE)),chunks.push(packer.packIHDR(metaData.width,metaData.height)),metaData.gamma)chunks.push(packer.packGAMA(metaData.gamma));let filteredData=packer.filterData(metaData.data,metaData.width,metaData.height),compressedData=zlib.deflateSync(filteredData,packer.getDeflateOptions());if(filteredData=null,!compressedData||!compressedData.length)throw Error("bad png - invalid compressed data response");return chunks.push(packer.packIDAT(compressedData)),chunks.push(packer.packIEND()),Buffer.concat(chunks)}});var require_png_sync=__commonJS(function(exports){var parse=require_parser_sync(),pack=require_packer_sync();exports.read=function(buffer,options){return parse(buffer,options||{})};exports.write=function(png,options){return pack(png,options)}});var require_png=__commonJS(function(exports){var util=__require("util"),Stream=__require("stream"),Parser=require_parser_async(),Packer=require_packer_async(),PNGSync=require_png_sync(),PNG=exports.PNG=function(options){if(Stream.call(this),options=options||{},this.width=options.width|0,this.height=options.height|0,this.data=this.width>0&&this.height>0?Buffer.alloc(4*this.width*this.height):null,options.fill&&this.data)this.data.fill(0);this.gamma=0,this.readable=this.writable=!0,this._parser=new Parser(options),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(data){this.data=data,this.emit("parsed",data)}.bind(this)),this._packer=new Packer(options),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"))};util.inherits(PNG,Stream);PNG.sync=PNGSync;PNG.prototype.pack=function(){if(!this.data||!this.data.length)return this.emit("error","No data provided"),this;return process.nextTick(function(){this._packer.pack(this.data,this.width,this.height,this.gamma)}.bind(this)),this};PNG.prototype.parse=function(data,callback){if(callback){let onParsed,onError;onParsed=function(parsedData){this.removeListener("error",onError),this.data=parsedData,callback(null,this)}.bind(this),onError=function(err){this.removeListener("parsed",onParsed),callback(err,null)}.bind(this),this.once("parsed",onParsed),this.once("error",onError)}return this.end(data),this};PNG.prototype.write=function(data){return this._parser.write(data),!0};PNG.prototype.end=function(data){this._parser.end(data)};PNG.prototype._metadata=function(metadata){this.width=metadata.width,this.height=metadata.height,this.emit("metadata",metadata)};PNG.prototype._gamma=function(gamma){this.gamma=gamma};PNG.prototype._handleClose=function(){if(!this._parser.writable&&!this._packer.readable)this.emit("close")};PNG.bitblt=function(src,dst,srcX,srcY,width,height,deltaX,deltaY){if(srcX|=0,srcY|=0,width|=0,height|=0,deltaX|=0,deltaY|=0,srcX>src.width||srcY>src.height||srcX+width>src.width||srcY+height>src.height)throw Error("bitblt reading outside image");if(deltaX>dst.width||deltaY>dst.height||deltaX+width>dst.width||deltaY+height>dst.height)throw Error("bitblt writing outside image");for(let y=0;y<height;y++)src.data.copy(dst.data,(deltaY+y)*dst.width+deltaX<<2,(srcY+y)*src.width+srcX<<2,(srcY+y)*src.width+srcX+width<<2)};PNG.prototype.bitblt=function(dst,srcX,srcY,width,height,deltaX,deltaY){return PNG.bitblt(this,dst,srcX,srcY,width,height,deltaX,deltaY),this};PNG.adjustGamma=function(src){if(src.gamma){for(let y=0;y<src.height;y++)for(let x=0;x<src.width;x++){let idx=src.width*y+x<<2;for(let i=0;i<3;i++){let sample=src.data[idx+i]/255;sample=Math.pow(sample,0.45454545454545453/src.gamma),src.data[idx+i]=Math.round(sample*255)}}src.gamma=0}};PNG.prototype.adjustGamma=function(){PNG.adjustGamma(this)}});var require_react_development=__commonJS(function(exports,module){(function(){function defineDeprecationWarning(methodName,info){Object.defineProperty(Component.prototype,methodName,{get:function(){console.warn("%s(...) is deprecated in plain JavaScript React classes. %s",info[0],info[1])}})}function getIteratorFn(maybeIterable){if(maybeIterable===null||typeof maybeIterable!=="object")return null;return maybeIterable=MAYBE_ITERATOR_SYMBOL&&maybeIterable[MAYBE_ITERATOR_SYMBOL]||maybeIterable["@@iterator"],typeof maybeIterable==="function"?maybeIterable:null}function warnNoop(publicInstance,callerName){publicInstance=(publicInstance=publicInstance.constructor)&&(publicInstance.displayName||publicInstance.name)||"ReactClass";var warningKey=publicInstance+"."+callerName;didWarnStateUpdateForUnmountedComponent[warningKey]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",callerName,publicInstance),didWarnStateUpdateForUnmountedComponent[warningKey]=!0)}function Component(props,context,updater){this.props=props,this.context=context,this.refs=emptyObject,this.updater=updater||ReactNoopUpdateQueue}function ComponentDummy(){}function PureComponent(props,context,updater){this.props=props,this.context=context,this.refs=emptyObject,this.updater=updater||ReactNoopUpdateQueue}function noop(){}function testStringCoercion(value){return""+value}function checkKeyStringCoercion(value){try{testStringCoercion(value);var JSCompiler_inline_result=!1}catch(e){JSCompiler_inline_result=!0}if(JSCompiler_inline_result){JSCompiler_inline_result=console;var JSCompiler_temp_const=JSCompiler_inline_result.error,JSCompiler_inline_result$jscomp$0=typeof Symbol==="function"&&Symbol.toStringTag&&value[Symbol.toStringTag]||value.constructor.name||"Object";return JSCompiler_temp_const.call(JSCompiler_inline_result,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",JSCompiler_inline_result$jscomp$0),testStringCoercion(value)}}function getComponentNameFromType(type){if(type==null)return null;if(typeof type==="function")return type.$$typeof===REACT_CLIENT_REFERENCE?null:type.displayName||type.name||null;if(typeof type==="string")return type;switch(type){case REACT_FRAGMENT_TYPE:return"Fragment";case REACT_PROFILER_TYPE:return"Profiler";case REACT_STRICT_MODE_TYPE:return"StrictMode";case REACT_SUSPENSE_TYPE:return"Suspense";case REACT_SUSPENSE_LIST_TYPE:return"SuspenseList";case REACT_ACTIVITY_TYPE:return"Activity"}if(typeof type==="object")switch(typeof type.tag==="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),type.$$typeof){case REACT_PORTAL_TYPE:return"Portal";case REACT_CONTEXT_TYPE:return type.displayName||"Context";case REACT_CONSUMER_TYPE:return(type._context.displayName||"Context")+".Consumer";case REACT_FORWARD_REF_TYPE:var innerType=type.render;return type=type.displayName,type||(type=innerType.displayName||innerType.name||"",type=type!==""?"ForwardRef("+type+")":"ForwardRef"),type;case REACT_MEMO_TYPE:return innerType=type.displayName||null,innerType!==null?innerType:getComponentNameFromType(type.type)||"Memo";case REACT_LAZY_TYPE:innerType=type._payload,type=type._init;try{return getComponentNameFromType(type(innerType))}catch(x){}}return null}function getTaskName(type){if(type===REACT_FRAGMENT_TYPE)return"<>";if(typeof type==="object"&&type!==null&&type.$$typeof===REACT_LAZY_TYPE)return"<...>";try{var name=getComponentNameFromType(type);return name?"<"+name+">":"<...>"}catch(x){return"<...>"}}function getOwner(){var dispatcher=ReactSharedInternals.A;return dispatcher===null?null:dispatcher.getOwner()}function UnknownOwner(){return Error("react-stack-top-frame")}function hasValidKey(config){if(hasOwnProperty.call(config,"key")){var getter=Object.getOwnPropertyDescriptor(config,"key").get;if(getter&&getter.isReactWarning)return!1}return config.key!==void 0}function defineKeyPropWarningGetter(props,displayName){function warnAboutAccessingKey(){specialPropKeyWarningShown||(specialPropKeyWarningShown=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",displayName))}warnAboutAccessingKey.isReactWarning=!0,Object.defineProperty(props,"key",{get:warnAboutAccessingKey,configurable:!0})}function elementRefGetterWithDeprecationWarning(){var componentName=getComponentNameFromType(this.type);return didWarnAboutElementRef[componentName]||(didWarnAboutElementRef[componentName]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),componentName=this.props.ref,componentName!==void 0?componentName:null}function ReactElement(type,key,props,owner,debugStack,debugTask){var refProp=props.ref;return type={$$typeof:REACT_ELEMENT_TYPE,type,key,props,_owner:owner},(refProp!==void 0?refProp:null)!==null?Object.defineProperty(type,"ref",{enumerable:!1,get:elementRefGetterWithDeprecationWarning}):Object.defineProperty(type,"ref",{enumerable:!1,value:null}),type._store={},Object.defineProperty(type._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(type,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(type,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:debugStack}),Object.defineProperty(type,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:debugTask}),Object.freeze&&(Object.freeze(type.props),Object.freeze(type)),type}function cloneAndReplaceKey(oldElement,newKey){return newKey=ReactElement(oldElement.type,newKey,oldElement.props,oldElement._owner,oldElement._debugStack,oldElement._debugTask),oldElement._store&&(newKey._store.validated=oldElement._store.validated),newKey}function validateChildKeys(node){isValidElement(node)?node._store&&(node._store.validated=1):typeof node==="object"&&node!==null&&node.$$typeof===REACT_LAZY_TYPE&&(node._payload.status==="fulfilled"?isValidElement(node._payload.value)&&node._payload.value._store&&(node._payload.value._store.validated=1):node._store&&(node._store.validated=1))}function isValidElement(object){return typeof object==="object"&&object!==null&&object.$$typeof===REACT_ELEMENT_TYPE}function escape(key){var escaperLookup={"=":"=0",":":"=2"};return"$"+key.replace(/[=:]/g,function(match){return escaperLookup[match]})}function getElementKey(element,index){return typeof element==="object"&&element!==null&&element.key!=null?(checkKeyStringCoercion(element.key),escape(""+element.key)):index.toString(36)}function resolveThenable(thenable){switch(thenable.status){case"fulfilled":return thenable.value;case"rejected":throw thenable.reason;default:switch(typeof thenable.status==="string"?thenable.then(noop,noop):(thenable.status="pending",thenable.then(function(fulfilledValue){thenable.status==="pending"&&(thenable.status="fulfilled",thenable.value=fulfilledValue)},function(error){thenable.status==="pending"&&(thenable.status="rejected",thenable.reason=error)})),thenable.status){case"fulfilled":return thenable.value;case"rejected":throw thenable.reason}}throw thenable}function mapIntoArray(children,array,escapedPrefix,nameSoFar,callback){var type=typeof children;if(type==="undefined"||type==="boolean")children=null;var invokeCallback=!1;if(children===null)invokeCallback=!0;else switch(type){case"bigint":case"string":case"number":invokeCallback=!0;break;case"object":switch(children.$$typeof){case REACT_ELEMENT_TYPE:case REACT_PORTAL_TYPE:invokeCallback=!0;break;case REACT_LAZY_TYPE:return invokeCallback=children._init,mapIntoArray(invokeCallback(children._payload),array,escapedPrefix,nameSoFar,callback)}}if(invokeCallback){invokeCallback=children,callback=callback(invokeCallback);var childKey=nameSoFar===""?"."+getElementKey(invokeCallback,0):nameSoFar;return isArrayImpl(callback)?(escapedPrefix="",childKey!=null&&(escapedPrefix=childKey.replace(userProvidedKeyEscapeRegex,"$&/")+"/"),mapIntoArray(callback,array,escapedPrefix,"",function(c){return c})):callback!=null&&(isValidElement(callback)&&(callback.key!=null&&(invokeCallback&&invokeCallback.key===callback.key||checkKeyStringCoercion(callback.key)),escapedPrefix=cloneAndReplaceKey(callback,escapedPrefix+(callback.key==null||invokeCallback&&invokeCallback.key===callback.key?"":(""+callback.key).replace(userProvidedKeyEscapeRegex,"$&/")+"/")+childKey),nameSoFar!==""&&invokeCallback!=null&&isValidElement(invokeCallback)&&invokeCallback.key==null&&invokeCallback._store&&!invokeCallback._store.validated&&(escapedPrefix._store.validated=2),callback=escapedPrefix),array.push(callback)),1}if(invokeCallback=0,childKey=nameSoFar===""?".":nameSoFar+":",isArrayImpl(children))for(var i=0;i<children.length;i++)nameSoFar=children[i],type=childKey+getElementKey(nameSoFar,i),invokeCallback+=mapIntoArray(nameSoFar,array,escapedPrefix,type,callback);else if(i=getIteratorFn(children),typeof i==="function")for(i===children.entries&&(didWarnAboutMaps||console.warn("Using Maps as children is not supported. Use an array of keyed ReactElements instead."),didWarnAboutMaps=!0),children=i.call(children),i=0;!(nameSoFar=children.next()).done;)nameSoFar=nameSoFar.value,type=childKey+getElementKey(nameSoFar,i++),invokeCallback+=mapIntoArray(nameSoFar,array,escapedPrefix,type,callback);else if(type==="object"){if(typeof children.then==="function")return mapIntoArray(resolveThenable(children),array,escapedPrefix,nameSoFar,callback);throw array=String(children),Error("Objects are not valid as a React child (found: "+(array==="[object Object]"?"object with keys {"+Object.keys(children).join(", ")+"}":array)+"). If you meant to render a collection of children, use an array instead.")}return invokeCallback}function mapChildren(children,func,context){if(children==null)return children;var result=[],count=0;return mapIntoArray(children,result,"","",function(child){return func.call(context,child,count++)}),result}function lazyInitializer(payload){if(payload._status===-1){var ioInfo=payload._ioInfo;ioInfo!=null&&(ioInfo.start=ioInfo.end=performance.now()),ioInfo=payload._result;var thenable=ioInfo();if(thenable.then(function(moduleObject){if(payload._status===0||payload._status===-1){payload._status=1,payload._result=moduleObject;var _ioInfo=payload._ioInfo;_ioInfo!=null&&(_ioInfo.end=performance.now()),thenable.status===void 0&&(thenable.status="fulfilled",thenable.value=moduleObject)}},function(error){if(payload._status===0||payload._status===-1){payload._status=2,payload._result=error;var _ioInfo2=payload._ioInfo;_ioInfo2!=null&&(_ioInfo2.end=performance.now()),thenable.status===void 0&&(thenable.status="rejected",thenable.reason=error)}}),ioInfo=payload._ioInfo,ioInfo!=null){ioInfo.value=thenable;var displayName=thenable.displayName;typeof displayName==="string"&&(ioInfo.name=displayName)}payload._status===-1&&(payload._status=0,payload._result=thenable)}if(payload._status===1)return ioInfo=payload._result,ioInfo===void 0&&console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s
|
|
3
3
|
|
|
4
4
|
Your code should look like:
|
|
5
5
|
const MyComponent = lazy(() => import('./MyComponent'))
|
|
@@ -88,10 +88,10 @@ Then retry \u2014 no server restart needed.`)}}var MAX_CONCURRENT_RENDERS=3,rend
|
|
|
88
88
|
${entries.map(([k,v])=>` ${k}: ${v};`).join(`
|
|
89
89
|
`)}
|
|
90
90
|
}
|
|
91
|
-
`};return{css:`${block(":root",light)}${block(".dark",dark)}`,light,dark,fonts:Array.from(fonts)}})}async function collectAssetUrls(page,max){return page.evaluate((limit)=>{let urls=new Set,add=(raw)=>{if(!raw)return;let v=raw.trim();if(!v||v.startsWith("data:")||v.startsWith("blob:"))return;try{urls.add(new URL(v,location.href).href)}catch{}};for(let img of Array.from(document.images)){add(img.getAttribute("src"));let srcset=img.getAttribute("srcset");if(srcset)for(let part of srcset.split(","))add(part.trim().split(/\s+/)[0])}for(let el of Array.from(document.querySelectorAll("*"))){let bg=getComputedStyle(el).backgroundImage;if(bg&&bg!=="none")for(let m of bg.matchAll(/url\((['"]?)(.*?)\1\)/g))add(m[2]);if(urls.size>=limit)break}return Array.from(urls).slice(0,limit)},max)}var MAX_ASSETS=40,MAX_ASSET_BYTES=4194304,CAPTURE_ASSET_EXTENSIONS={"image/png":".png","image/jpeg":".jpg","image/gif":".gif","image/webp":".webp","image/avif":".avif","image/svg+xml":".svg","image/x-icon":".ico","image/vnd.microsoft.icon":".ico","image/bmp":".bmp","font/woff":".woff","font/woff2":".woff2","font/ttf":".ttf","font/otf":".otf"};function assetFilename(url,contentType){let base=(new URL(url).pathname.split("/").pop()??"asset").replace(/[^A-Za-z0-9._-]/g,"_")||"asset",dot=base.lastIndexOf(".");if(dot>0&&ACCEPTED_EXTENSIONS.has(base.slice(dot).toLowerCase()))return base;let mime=(contentType??"").split(";")[0]?.trim().toLowerCase()??"",ext=CAPTURE_ASSET_EXTENSIONS[mime];return ext===void 0?null:`${base}${ext}`}var ACCEPTED_EXTENSIONS=new Set([...Object.values(CAPTURE_ASSET_EXTENSIONS),".jpeg"]);async function downloadAssets(page,urls,dir){if(urls.length===0)return[];mkdirSync2(dir,{recursive:!0,mode:448});let out=[],used=new Set;for(let url of urls)try{let res=await page.request.get(url,{timeout:1e4});if(!res.ok())continue;let body=await res.body();if(body.byteLength===0||body.byteLength>MAX_ASSET_BYTES)continue;let base=assetFilename(url,res.headers()["content-type"]);if(base===null)continue;let file=base,n=1;while(used.has(file))file=`${n++}-${base}`;used.add(file),writeFileSync2(join3(dir,file),body,{mode:384}),out.push({url,file,bytes:body.byteLength})}catch{}return out}async function captureMhtml(page){try{let client=await page.context().newCDPSession(page),{data}=await client.send("Page.captureSnapshot",{format:"mhtml"});return await client.detach().catch(()=>{return}),typeof data==="string"&&data.length>0?data:null}catch{return null}}async function pageState(page){let value=await page.evaluate((toolbar)=>{let height=Math.max(document.documentElement?.scrollHeight??0,document.body?.scrollHeight??0),visualHash=2166136261,mix=(part)=>{for(let i=0;i<part.length;i++)visualHash^=part.charCodeAt(i),visualHash=Math.imul(visualHash,16777619)},els=document.body?Array.from(document.body.querySelectorAll("*")):[];for(let i=0;i<els.length;i++){let el=els[i];if(!el||el.tagName.toLowerCase()===toolbar)continue;let cs=getComputedStyle(el);if(cs.display==="none"||cs.visibility==="hidden")continue;let r=el.getBoundingClientRect(),text=Array.from(el.childNodes).filter((n)=>n.nodeType===3).map((n)=>n.textContent??"").join("").replace(/\s+/g," ").trim().slice(0,80);mix(`${el.tagName}|${Math.round(r.x+scrollX)},${Math.round(r.y+scrollY)},${Math.round(r.width)},${Math.round(r.height)}|${text}|${el.getAttribute("src")??""}|${cs.opacity}|${cs.color}|${cs.backgroundColor}|${cs.font}|${cs.transform}`)}return{url:location.href,title:document.title,viewport:{w:innerWidth,h:innerHeight},documentHeight:height,scroll:{x:scrollX,y:scrollY},devicePixelRatio,elementCount:els.length,visualHash:visualHash>>>0}},TOOLBAR_TAG);return{id:createHash2("sha256").update(JSON.stringify(value)).digest("hex").slice(0,20),viewport:value.viewport,documentHeight:value.documentHeight,scroll:value.scroll,devicePixelRatio:value.devicePixelRatio}}async function settleInteractivePage(page){await page.waitForLoadState("load",{timeout:5000}).catch(()=>{return}),await page.evaluate(()=>Promise.race([document.fonts.ready,new Promise((resolve)=>setTimeout(resolve,2000))]).then(()=>new Promise((resolve)=>requestAnimationFrame(()=>requestAnimationFrame(()=>resolve()))))).catch(()=>{return})}async function capturePage(page,opts){let id=newCaptureId(),dir=join3(opts.capturesRoot,id);mkdirSync2(dir,{recursive:!0,mode:448});let files=[];await page.evaluate((tag)=>{let el=document.querySelector(tag);if(el instanceof HTMLElement)el.style.display="none"},TOOLBAR_TAG).catch(()=>{return});try{await settleInteractivePage(page);let initialState=await pageState(page).catch(()=>null),viewport=initialState?.viewport??{w:0,h:0},themeVars=null,dom=null,assets=[],png=null,mhtml=null,beforeState=initialState,afterState=initialState,attempts=0;if(!opts.themeOnly){for(let attempt=1;attempt<=2;attempt++)if(attempts=attempt,await settleInteractivePage(page),beforeState=await pageState(page),themeVars=await extractThemeVars(page),png=await capturePagePng(page,opts.fullPage??!0),dom=await extractDom(page,{maxNodes:MAX_NODES,maxDepth:MAX_DEPTH,maxText:MAX_TEXT},TOOLBAR_TAG),mhtml=await captureMhtml(page),afterState=await pageState(page),beforeState.id===afterState.id)break;if(!png||!dom||!themeVars||!beforeState||!afterState)throw Error("capture transaction did not produce a screenshot and DOM extract");if(writeFileSync2(join3(dir,"page.png"),png,{mode:384}),files.push("page.png"),writeFileSync2(join3(dir,"dom.json"),`${JSON.stringify(dom,null,2)}
|
|
91
|
+
`};return{css:`${block(":root",light)}${block(".dark",dark)}`,light,dark,fonts:Array.from(fonts)}})}async function collectAssetUrls(page,max){return page.evaluate((limit)=>{let urls=new Set,add=(raw)=>{if(!raw)return;let v=raw.trim();if(!v||v.startsWith("data:")||v.startsWith("blob:"))return;try{urls.add(new URL(v,location.href).href)}catch{}};for(let img of Array.from(document.images)){add(img.getAttribute("src"));let srcset=img.getAttribute("srcset");if(srcset)for(let part of srcset.split(","))add(part.trim().split(/\s+/)[0])}for(let el of Array.from(document.querySelectorAll("*"))){let bg=getComputedStyle(el).backgroundImage;if(bg&&bg!=="none")for(let m of bg.matchAll(/url\((['"]?)(.*?)\1\)/g))add(m[2]);if(urls.size>=limit)break}return Array.from(urls).slice(0,limit)},max)}var MAX_ASSETS=40,MAX_ASSET_BYTES=4194304,CAPTURE_ASSET_EXTENSIONS={"image/png":".png","image/jpeg":".jpg","image/gif":".gif","image/webp":".webp","image/avif":".avif","image/svg+xml":".svg","image/x-icon":".ico","image/vnd.microsoft.icon":".ico","image/bmp":".bmp","font/woff":".woff","font/woff2":".woff2","font/ttf":".ttf","font/otf":".otf"};function assetFilename(url,contentType){let base=(new URL(url).pathname.split("/").pop()??"asset").replace(/[^A-Za-z0-9._-]/g,"_")||"asset",dot=base.lastIndexOf(".");if(dot>0&&ACCEPTED_EXTENSIONS.has(base.slice(dot).toLowerCase()))return base;let mime=(contentType??"").split(";")[0]?.trim().toLowerCase()??"",ext=CAPTURE_ASSET_EXTENSIONS[mime];return ext===void 0?null:`${base}${ext}`}var ACCEPTED_EXTENSIONS=new Set([...Object.values(CAPTURE_ASSET_EXTENSIONS),".jpeg"]);async function downloadAssets(page,urls,dir){if(urls.length===0)return[];mkdirSync2(dir,{recursive:!0,mode:448});let out=[],used=new Set;for(let url of urls)try{let res=await page.request.get(url,{timeout:1e4});if(!res.ok())continue;let body=await res.body();if(body.byteLength===0||body.byteLength>MAX_ASSET_BYTES)continue;let base=assetFilename(url,res.headers()["content-type"]);if(base===null)continue;let file=base,n=1;while(used.has(file))file=`${n++}-${base}`;used.add(file),writeFileSync2(join3(dir,file),body,{mode:384}),out.push({url,file,bytes:body.byteLength})}catch{}return out}async function captureMhtml(page){try{let client=await page.context().newCDPSession(page),{data}=await client.send("Page.captureSnapshot",{format:"mhtml"});return await client.detach().catch(()=>{return}),typeof data==="string"&&data.length>0?data:null}catch{return null}}async function pageState(page){let value=await page.evaluate((toolbar)=>{let height=Math.max(document.documentElement?.scrollHeight??0,document.body?.scrollHeight??0),visualHash=2166136261,mix=(part)=>{for(let i=0;i<part.length;i++)visualHash^=part.charCodeAt(i),visualHash=Math.imul(visualHash,16777619)},els=document.body?Array.from(document.body.querySelectorAll("*")):[];for(let i=0;i<els.length;i++){let el=els[i];if(!el||el.tagName.toLowerCase()===toolbar)continue;let cs=getComputedStyle(el);if(cs.display==="none"||cs.visibility==="hidden")continue;let r=el.getBoundingClientRect(),text=Array.from(el.childNodes).filter((n)=>n.nodeType===3).map((n)=>n.textContent??"").join("").replace(/\s+/g," ").trim().slice(0,80);mix(`${el.tagName}|${Math.round(r.x+scrollX)},${Math.round(r.y+scrollY)},${Math.round(r.width)},${Math.round(r.height)}|${text}|${el.getAttribute("src")??""}|${cs.opacity}|${cs.color}|${cs.backgroundColor}|${cs.font}|${cs.transform}`)}return{url:location.href,title:document.title,viewport:{w:innerWidth,h:innerHeight},documentHeight:height,scroll:{x:scrollX,y:scrollY},devicePixelRatio,elementCount:els.length,visualHash:visualHash>>>0}},TOOLBAR_TAG);return{id:createHash2("sha256").update(JSON.stringify(value)).digest("hex").slice(0,20),viewport:value.viewport,documentHeight:value.documentHeight,scroll:value.scroll,devicePixelRatio:value.devicePixelRatio}}async function settleInteractivePage(page){await page.waitForLoadState("load",{timeout:5000}).catch(()=>{return}),await page.evaluate(()=>Promise.race([document.fonts.ready,new Promise((resolve)=>setTimeout(resolve,2000))]).then(()=>new Promise((resolve)=>requestAnimationFrame(()=>requestAnimationFrame(()=>resolve()))))).catch(()=>{return})}var PARKED_ANIMATIONS="__vellooParkedAnimations";async function restAnimations(page){await page.evaluate((key)=>{let store=window,parked=store[key]??[];for(let a of document.getAnimations()){if(a.playState==="finished"||a.playState==="idle")continue;if(a.effect?.getComputedTiming().endTime===Number.POSITIVE_INFINITY)a.cancel(),parked.push(a);else a.finish()}store[key]=parked},PARKED_ANIMATIONS).catch(()=>{return})}async function resumeAnimations(page){await page.evaluate((key)=>{let store=window;for(let a of store[key]??[])if(a.playState==="idle")a.play();delete store[key]},PARKED_ANIMATIONS).catch(()=>{return})}async function capturePage(page,opts){let id=newCaptureId(),dir=join3(opts.capturesRoot,id);mkdirSync2(dir,{recursive:!0,mode:448});let files=[];await page.evaluate((tag)=>{let el=document.querySelector(tag);if(el instanceof HTMLElement)el.style.display="none"},TOOLBAR_TAG).catch(()=>{return});try{await settleInteractivePage(page);let initialState=await pageState(page).catch(()=>null),viewport=initialState?.viewport??{w:0,h:0},themeVars=null,dom=null,assets=[],png=null,mhtml=null,beforeState=initialState,afterState=initialState,attempts=0;if(!opts.themeOnly){for(let attempt=1;attempt<=2;attempt++)if(attempts=attempt,await settleInteractivePage(page),await restAnimations(page),beforeState=await pageState(page),themeVars=await extractThemeVars(page),png=await capturePagePng(page,opts.fullPage??!0),dom=await extractDom(page,{maxNodes:MAX_NODES,maxDepth:MAX_DEPTH,maxText:MAX_TEXT},TOOLBAR_TAG),mhtml=await captureMhtml(page),afterState=await pageState(page),beforeState.id===afterState.id)break;if(!png||!dom||!themeVars||!beforeState||!afterState)throw Error("capture transaction did not produce a screenshot and DOM extract");if(writeFileSync2(join3(dir,"page.png"),png,{mode:384}),files.push("page.png"),writeFileSync2(join3(dir,"dom.json"),`${JSON.stringify(dom,null,2)}
|
|
92
92
|
`,{mode:384}),files.push("dom.json"),mhtml)writeFileSync2(join3(dir,"snapshot.mhtml"),mhtml,{mode:384}),files.push("snapshot.mhtml");let urls=await collectAssetUrls(page,MAX_ASSETS);if(assets=await downloadAssets(page,urls,join3(dir,"assets")),assets.length>0)writeFileSync2(join3(dir,"assets.json"),`${JSON.stringify({assets},null,2)}
|
|
93
93
|
`,{mode:384}),files.push("assets.json")}else themeVars=await extractThemeVars(page);if(!themeVars)throw Error("capture transaction did not produce theme evidence");writeFileSync2(join3(dir,"computed-vars.json"),`${JSON.stringify(themeVars,null,2)}
|
|
94
|
-
`,{mode:384}),files.unshift("computed-vars.json");let screenshotSize=png?pngSize(png):null,finalState=afterState??initialState,stable=Boolean(beforeState&&afterState&&beforeState.id===afterState.id),manifest={id,url:page.url(),finalUrl:page.url(),title:await page.title().catch(()=>""),capturedAt:new Date().toISOString(),viewport:dom?.viewport??viewport,files,assetCount:assets.length,nodeCount:dom?.nodes.length??0,themeOnly:opts.themeOnly===!0,captureVersion:2,kind:opts.themeOnly?"theme":"page",...opts.sessionId?{sessionId:opts.sessionId}:{},...stable&&finalState?{stateId:finalState.id}:{},...finalState?{geometry:{viewportCss:{width:finalState.viewport.w,height:finalState.viewport.h},documentCssHeight:dom?.documentHeight??finalState.documentHeight,scrollCss:finalState.scroll,devicePixelRatio:finalState.devicePixelRatio,...screenshotSize?{screenshot:{mode:opts.fullPage===!1?"viewport":"full-page",bitmapWidth:screenshotSize.width,bitmapHeight:screenshotSize.height}}:{},...files.includes("snapshot.mhtml")?{replay:{format:"mhtml",cssHeight:dom?.documentHeight??finalState.documentHeight,fidelity:"best-effort"}}:{}}}:{},stability:opts.themeOnly?{status:"not-applicable",attempts:0}:stable?{status:"stable",attempts}:{status:"unstable",attempts,...beforeState?{beforeStateId:beforeState.id}:{},...afterState?{afterStateId:afterState.id}:{}}};return writeCaptureManifest(dir,manifest),{manifest,dir,themeVars}}finally{await page.evaluate((tag)=>{let el=document.querySelector(tag);if(el instanceof HTMLElement)el.style.display=""},TOOLBAR_TAG).catch(()=>{return})}}class HeadedBrowserMissingError extends Error{constructor(detail){super(`A capture session needs a browser window, and none could be opened.
|
|
94
|
+
`,{mode:384}),files.unshift("computed-vars.json");let screenshotSize=png?pngSize(png):null,finalState=afterState??initialState,stable=Boolean(beforeState&&afterState&&beforeState.id===afterState.id),manifest={id,url:page.url(),finalUrl:page.url(),title:await page.title().catch(()=>""),capturedAt:new Date().toISOString(),viewport:dom?.viewport??viewport,files,assetCount:assets.length,nodeCount:dom?.nodes.length??0,themeOnly:opts.themeOnly===!0,captureVersion:2,kind:opts.themeOnly?"theme":"page",...opts.sessionId?{sessionId:opts.sessionId}:{},...stable&&finalState?{stateId:finalState.id}:{},...finalState?{geometry:{viewportCss:{width:finalState.viewport.w,height:finalState.viewport.h},documentCssHeight:dom?.documentHeight??finalState.documentHeight,scrollCss:finalState.scroll,devicePixelRatio:finalState.devicePixelRatio,...screenshotSize?{screenshot:{mode:opts.fullPage===!1?"viewport":"full-page",bitmapWidth:screenshotSize.width,bitmapHeight:screenshotSize.height}}:{},...files.includes("snapshot.mhtml")?{replay:{format:"mhtml",cssHeight:dom?.documentHeight??finalState.documentHeight,fidelity:"best-effort"}}:{}}}:{},stability:opts.themeOnly?{status:"not-applicable",attempts:0}:stable?{status:"stable",attempts}:{status:"unstable",attempts,...beforeState?{beforeStateId:beforeState.id}:{},...afterState?{afterStateId:afterState.id}:{}}};return writeCaptureManifest(dir,manifest),{manifest,dir,themeVars}}finally{await resumeAnimations(page),await page.evaluate((tag)=>{let el=document.querySelector(tag);if(el instanceof HTMLElement)el.style.display=""},TOOLBAR_TAG).catch(()=>{return})}}class HeadedBrowserMissingError extends Error{constructor(detail){super(`A capture session needs a browser window, and none could be opened.
|
|
95
95
|
${detail}
|
|
96
96
|
Either install Google Chrome (velloo will use it directly, no download), or run:
|
|
97
97
|
${CHROMIUM_FULL_INSTALL_CMD}
|
|
@@ -349,7 +349,7 @@ Check the render method of \``+name+"`.")}request||componentName&&(request=`
|
|
|
349
349
|
Check the top-level render call using <`+componentName+">."),componentName="",didWarnForKey!=null&&parentOwner!==didWarnForKey&&(parentOwner=null,typeof didWarnForKey.type<"u"?parentOwner=getComponentNameFromType(didWarnForKey.type):typeof didWarnForKey.name==="string"&&(parentOwner=didWarnForKey.name),parentOwner&&(componentName=" It was passed a child from "+parentOwner+".")),didWarnForKey=task.componentStack,task.componentStack={parent:task.componentStack,type:child.type,owner:child._owner,stack:child._debugStack},console.error('Each child in a list should have a unique "key" prop.%s%s See https://react.dev/link/warning-keys for more information.',request,componentName),task.componentStack=didWarnForKey}}}function renderChildrenArray(request,task,children,childIndex){var{keyPath:prevKeyPath,componentStack:previousComponentStack,debugTask:previousDebugTask}=task;if(pushServerComponentStack(task,task.node._debugInfo),childIndex!==-1&&(task.keyPath=[task.keyPath,"Fragment",childIndex],task.replay!==null)){for(var replay=task.replay,replayNodes=replay.nodes,j=0;j<replayNodes.length;j++){var node=replayNodes[j];if(node[1]===childIndex){childIndex=node[2],node=node[3],task.replay={nodes:childIndex,slots:node,pendingTasks:1};try{if(renderChildrenArray(request,task,children,-1),task.replay.pendingTasks===1&&0<task.replay.nodes.length)throw Error("Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering.");task.replay.pendingTasks--}catch(x){if(typeof x==="object"&&x!==null&&(x===SuspenseException||typeof x.then==="function"))throw x;task.replay.pendingTasks--;var thrownInfo=getThrownInfo(task.componentStack);children=task.blockedBoundary;var error=x,resumeSlots=node;node=logRecoverableError(request,error,thrownInfo,task.debugTask),abortRemainingReplayNodes(request,children,childIndex,resumeSlots,error,node,thrownInfo,!1)}task.replay=replay,replayNodes.splice(j,1);break}}task.keyPath=prevKeyPath,task.componentStack=previousComponentStack,task.debugTask=previousDebugTask;return}if(replay=task.treeContext,replayNodes=children.length,task.replay!==null&&(j=task.replay.slots,j!==null&&typeof j==="object")){for(childIndex=0;childIndex<replayNodes;childIndex++)node=children[childIndex],task.treeContext=pushTreeContext(replay,replayNodes,childIndex),error=j[childIndex],typeof error==="number"?(resumeNode(request,task,error,node,childIndex),delete j[childIndex]):renderNode(request,task,node,childIndex);task.treeContext=replay,task.keyPath=prevKeyPath,task.componentStack=previousComponentStack,task.debugTask=previousDebugTask;return}for(j=0;j<replayNodes;j++)childIndex=children[j],warnForMissingKey(request,task,childIndex),task.treeContext=pushTreeContext(replay,replayNodes,j),renderNode(request,task,childIndex,j);task.treeContext=replay,task.keyPath=prevKeyPath,task.componentStack=previousComponentStack,task.debugTask=previousDebugTask}function trackPostponedBoundary(request,trackedPostpones,boundary){if(boundary.status=POSTPONED,boundary.rootSegmentID=request.nextSegmentId++,request=boundary.trackedContentKeyPath,request===null)throw Error("It should not be possible to postpone at the root. This is a bug in React.");var fallbackReplayNode=boundary.trackedFallbackNode,children=[],boundaryNode=trackedPostpones.workingMap.get(request);if(boundaryNode===void 0)return boundary=[request[1],request[2],children,null,fallbackReplayNode,boundary.rootSegmentID],trackedPostpones.workingMap.set(request,boundary),addToReplayParent(boundary,request[0],trackedPostpones),boundary;return boundaryNode[4]=fallbackReplayNode,boundaryNode[5]=boundary.rootSegmentID,boundaryNode}function trackPostpone(request,trackedPostpones,task,segment){segment.status=POSTPONED;var keyPath=task.keyPath,boundary=task.blockedBoundary;if(boundary===null)segment.id=request.nextSegmentId++,trackedPostpones.rootSlots=segment.id,request.completedRootSegment!==null&&(request.completedRootSegment.status=POSTPONED);else{if(boundary!==null&&boundary.status===PENDING){var boundaryNode=trackPostponedBoundary(request,trackedPostpones,boundary);if(boundary.trackedContentKeyPath===keyPath&&task.childIndex===-1){segment.id===-1&&(segment.id=segment.parentFlushed?boundary.rootSegmentID:request.nextSegmentId++),boundaryNode[3]=segment.id;return}}if(segment.id===-1&&(segment.id=segment.parentFlushed&&boundary!==null?boundary.rootSegmentID:request.nextSegmentId++),task.childIndex===-1)keyPath===null?trackedPostpones.rootSlots=segment.id:(task=trackedPostpones.workingMap.get(keyPath),task===void 0?(task=[keyPath[1],keyPath[2],[],segment.id],addToReplayParent(task,keyPath[0],trackedPostpones)):task[3]=segment.id);else{if(keyPath===null){if(request=trackedPostpones.rootSlots,request===null)request=trackedPostpones.rootSlots={};else if(typeof request==="number")throw Error("It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React.")}else if(boundary=trackedPostpones.workingMap,boundaryNode=boundary.get(keyPath),boundaryNode===void 0)request={},boundaryNode=[keyPath[1],keyPath[2],[],request],boundary.set(keyPath,boundaryNode),addToReplayParent(boundaryNode,keyPath[0],trackedPostpones);else if(request=boundaryNode[3],request===null)request=boundaryNode[3]={};else if(typeof request==="number")throw Error("It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React.");request[task.childIndex]=segment.id}}}function untrackBoundary(request,boundary){request=request.trackedPostpones,request!==null&&(boundary=boundary.trackedContentKeyPath,boundary!==null&&(boundary=request.workingMap.get(boundary),boundary!==void 0&&(boundary.length=4,boundary[2]=[],boundary[3]=null)))}function spawnNewSuspendedReplayTask(request,task,thenableState){return createReplayTask(request,thenableState,task.replay,task.node,task.childIndex,task.blockedBoundary,task.hoistableState,task.abortSet,task.keyPath,task.formatContext,task.context,task.treeContext,task.row,task.componentStack,emptyContextObject,task.debugTask)}function spawnNewSuspendedRenderTask(request,task,thenableState){var segment=task.blockedSegment,newSegment=createPendingSegment(request,segment.chunks.length,null,task.formatContext,segment.lastPushedText,!0);return segment.children.push(newSegment),segment.lastPushedText=!1,createRenderTask(request,thenableState,task.node,task.childIndex,task.blockedBoundary,newSegment,task.blockedPreamble,task.hoistableState,task.abortSet,task.keyPath,task.formatContext,task.context,task.treeContext,task.row,task.componentStack,emptyContextObject,task.debugTask)}function renderNode(request,task,node,childIndex){var{formatContext:previousFormatContext,context:previousContext,keyPath:previousKeyPath,treeContext:previousTreeContext,componentStack:previousComponentStack,debugTask:previousDebugTask,blockedSegment:segment}=task;if(segment===null){segment=task.replay;try{return renderNodeDestructive(request,task,node,childIndex)}catch(thrownValue){if(resetHooksState(),node=thrownValue===SuspenseException?getSuspendedThenable():thrownValue,request.status!==12&&typeof node==="object"&&node!==null){if(typeof node.then==="function"){childIndex=thrownValue===SuspenseException?getThenableStateAfterSuspending():null,request=spawnNewSuspendedReplayTask(request,task,childIndex).ping,node.then(request,request),task.formatContext=previousFormatContext,task.context=previousContext,task.keyPath=previousKeyPath,task.treeContext=previousTreeContext,task.componentStack=previousComponentStack,task.replay=segment,task.debugTask=previousDebugTask,switchContext(previousContext);return}if(node.message==="Maximum call stack size exceeded"){node=thrownValue===SuspenseException?getThenableStateAfterSuspending():null,node=spawnNewSuspendedReplayTask(request,task,node),request.pingedTasks.push(node),task.formatContext=previousFormatContext,task.context=previousContext,task.keyPath=previousKeyPath,task.treeContext=previousTreeContext,task.componentStack=previousComponentStack,task.replay=segment,task.debugTask=previousDebugTask,switchContext(previousContext);return}}}}else{var childrenLength=segment.children.length,chunkLength=segment.chunks.length;try{return renderNodeDestructive(request,task,node,childIndex)}catch(thrownValue$3){if(resetHooksState(),segment.children.length=childrenLength,segment.chunks.length=chunkLength,node=thrownValue$3===SuspenseException?getSuspendedThenable():thrownValue$3,request.status!==12&&typeof node==="object"&&node!==null){if(typeof node.then==="function"){segment=node,node=thrownValue$3===SuspenseException?getThenableStateAfterSuspending():null,request=spawnNewSuspendedRenderTask(request,task,node).ping,segment.then(request,request),task.formatContext=previousFormatContext,task.context=previousContext,task.keyPath=previousKeyPath,task.treeContext=previousTreeContext,task.componentStack=previousComponentStack,task.debugTask=previousDebugTask,switchContext(previousContext);return}if(node.message==="Maximum call stack size exceeded"){segment=thrownValue$3===SuspenseException?getThenableStateAfterSuspending():null,segment=spawnNewSuspendedRenderTask(request,task,segment),request.pingedTasks.push(segment),task.formatContext=previousFormatContext,task.context=previousContext,task.keyPath=previousKeyPath,task.treeContext=previousTreeContext,task.componentStack=previousComponentStack,task.debugTask=previousDebugTask,switchContext(previousContext);return}}}}throw task.formatContext=previousFormatContext,task.context=previousContext,task.keyPath=previousKeyPath,task.treeContext=previousTreeContext,switchContext(previousContext),node}function abortTaskSoft(task){var{blockedBoundary:boundary,blockedSegment:segment}=task;segment!==null&&(segment.status=ABORTED,finishedTask(this,boundary,task.row,segment))}function abortRemainingReplayNodes(request$jscomp$0,boundary,nodes,slots,error$jscomp$0,errorDigest$jscomp$0,errorInfo$jscomp$0,aborted){for(var i=0;i<nodes.length;i++){var node=nodes[i];if(node.length===4)abortRemainingReplayNodes(request$jscomp$0,boundary,node[2],node[3],error$jscomp$0,errorDigest$jscomp$0,errorInfo$jscomp$0,aborted);else{var request=request$jscomp$0;node=node[5];var error=error$jscomp$0,errorDigest=errorDigest$jscomp$0,errorInfo=errorInfo$jscomp$0,wasAborted=aborted,resumedBoundary=createSuspenseBoundary(request,null,new Set,null,null);resumedBoundary.parentFlushed=!0,resumedBoundary.rootSegmentID=node,resumedBoundary.status=CLIENT_RENDERED,encodeErrorForBoundary(resumedBoundary,errorDigest,error,errorInfo,wasAborted),resumedBoundary.parentFlushed&&request.clientRenderedBoundaries.push(resumedBoundary)}}if(nodes.length=0,slots!==null){if(boundary===null)throw Error("We should not have any resumable nodes in the shell. This is a bug in React.");if(boundary.status!==CLIENT_RENDERED&&(boundary.status=CLIENT_RENDERED,encodeErrorForBoundary(boundary,errorDigest$jscomp$0,error$jscomp$0,errorInfo$jscomp$0,aborted),boundary.parentFlushed&&request$jscomp$0.clientRenderedBoundaries.push(boundary)),typeof slots==="object")for(var index in slots)delete slots[index]}}function abortTask(task,request,error){var boundary=task.blockedBoundary,segment=task.blockedSegment;if(segment!==null){if(segment.status===6)return;segment.status=ABORTED}var errorInfo=getThrownInfo(task.componentStack),node=task.node;if(node!==null&&typeof node==="object"&&pushHaltedAwaitOnComponentStack(task,node._debugInfo),boundary===null){if(request.status!==13&&request.status!==CLOSED){if(boundary=task.replay,boundary===null){request.trackedPostpones!==null&&segment!==null?(boundary=request.trackedPostpones,logRecoverableError(request,error,errorInfo,task.debugTask),trackPostpone(request,boundary,task,segment),finishedTask(request,null,task.row,segment)):(logRecoverableError(request,error,errorInfo,task.debugTask),fatalError(request,error,errorInfo,task.debugTask));return}boundary.pendingTasks--,boundary.pendingTasks===0&&0<boundary.nodes.length&&(segment=logRecoverableError(request,error,errorInfo,null),abortRemainingReplayNodes(request,null,boundary.nodes,boundary.slots,error,segment,errorInfo,!0)),request.pendingRootTasks--,request.pendingRootTasks===0&&completeShell(request)}}else{if(node=request.trackedPostpones,boundary.status!==CLIENT_RENDERED){if(node!==null&&segment!==null)return logRecoverableError(request,error,errorInfo,task.debugTask),trackPostpone(request,node,task,segment),boundary.fallbackAbortableTasks.forEach(function(fallbackTask){return abortTask(fallbackTask,request,error)}),boundary.fallbackAbortableTasks.clear(),finishedTask(request,boundary,task.row,segment);boundary.status=CLIENT_RENDERED,segment=logRecoverableError(request,error,errorInfo,task.debugTask),boundary.status=CLIENT_RENDERED,encodeErrorForBoundary(boundary,segment,error,errorInfo,!0),untrackBoundary(request,boundary),boundary.parentFlushed&&request.clientRenderedBoundaries.push(boundary)}boundary.pendingTasks--,errorInfo=boundary.row,errorInfo!==null&&--errorInfo.pendingTasks===0&&finishSuspenseListRow(request,errorInfo),boundary.fallbackAbortableTasks.forEach(function(fallbackTask){return abortTask(fallbackTask,request,error)}),boundary.fallbackAbortableTasks.clear()}task=task.row,task!==null&&--task.pendingTasks===0&&finishSuspenseListRow(request,task),request.allPendingTasks--,request.allPendingTasks===0&&completeAll(request)}function safelyEmitEarlyPreloads(request,shellComplete){try{var renderState=request.renderState,onHeaders=renderState.onHeaders;if(onHeaders){var headers=renderState.headers;if(headers){renderState.headers=null;var linkHeader=headers.preconnects;if(headers.fontPreloads&&(linkHeader&&(linkHeader+=", "),linkHeader+=headers.fontPreloads),headers.highImagePreloads&&(linkHeader&&(linkHeader+=", "),linkHeader+=headers.highImagePreloads),!shellComplete){var queueIter=renderState.styles.values(),queueStep=queueIter.next();b:for(;0<headers.remainingCapacity&&!queueStep.done;queueStep=queueIter.next())for(var sheetIter=queueStep.value.sheets.values(),sheetStep=sheetIter.next();0<headers.remainingCapacity&&!sheetStep.done;sheetStep=sheetIter.next()){var sheet=sheetStep.value,props=sheet.props,key=props.href,props$jscomp$0=sheet.props,header=getPreloadAsHeader(props$jscomp$0.href,"style",{crossOrigin:props$jscomp$0.crossOrigin,integrity:props$jscomp$0.integrity,nonce:props$jscomp$0.nonce,type:props$jscomp$0.type,fetchPriority:props$jscomp$0.fetchPriority,referrerPolicy:props$jscomp$0.referrerPolicy,media:props$jscomp$0.media});if(0<=(headers.remainingCapacity-=header.length+2))renderState.resets.style[key]=PRELOAD_NO_CREDS,linkHeader&&(linkHeader+=", "),linkHeader+=header,renderState.resets.style[key]=typeof props.crossOrigin==="string"||typeof props.integrity==="string"?[props.crossOrigin,props.integrity]:PRELOAD_NO_CREDS;else break b}}linkHeader?onHeaders({Link:linkHeader}):onHeaders({})}}}catch(error){logRecoverableError(request,error,{},null)}}function completeShell(request){request.trackedPostpones===null&&safelyEmitEarlyPreloads(request,!0),request.trackedPostpones===null&&preparePreamble(request),request.onShellError=noop,request=request.onShellReady,request()}function completeAll(request){safelyEmitEarlyPreloads(request,request.trackedPostpones===null?!0:request.completedRootSegment===null||request.completedRootSegment.status!==POSTPONED),preparePreamble(request),request=request.onAllReady,request()}function queueCompletedSegment(boundary,segment){if(segment.chunks.length===0&&segment.children.length===1&&segment.children[0].boundary===null&&segment.children[0].id===-1){var childSegment=segment.children[0];childSegment.id=segment.id,childSegment.parentFlushed=!0,childSegment.status!==COMPLETED&&childSegment.status!==ABORTED&&childSegment.status!==ERRORED||queueCompletedSegment(boundary,childSegment)}else boundary.completedSegments.push(segment)}function finishedSegment(request,boundary,segment){if(byteLengthOfChunk!==null){segment=segment.chunks;for(var segmentByteSize=0,i=0;i<segment.length;i++)segmentByteSize+=byteLengthOfChunk(segment[i]);boundary===null?request.byteSize+=segmentByteSize:boundary.byteSize+=segmentByteSize}}function finishedTask(request,boundary,row,segment){if(row!==null&&(--row.pendingTasks===0?finishSuspenseListRow(request,row):row.together&&tryToResolveTogetherRow(request,row)),request.allPendingTasks--,boundary===null){if(segment!==null&&segment.parentFlushed){if(request.completedRootSegment!==null)throw Error("There can only be one root segment. This is a bug in React.");request.completedRootSegment=segment}request.pendingRootTasks--,request.pendingRootTasks===0&&completeShell(request)}else if(boundary.pendingTasks--,boundary.status!==CLIENT_RENDERED)if(boundary.pendingTasks===0){if(boundary.status===PENDING&&(boundary.status=COMPLETED),segment!==null&&segment.parentFlushed&&(segment.status===COMPLETED||segment.status===ABORTED)&&queueCompletedSegment(boundary,segment),boundary.parentFlushed&&request.completedBoundaries.push(boundary),boundary.status===COMPLETED)row=boundary.row,row!==null&&hoistHoistables(row.hoistables,boundary.contentState),isEligibleForOutlining(request,boundary)||(boundary.fallbackAbortableTasks.forEach(abortTaskSoft,request),boundary.fallbackAbortableTasks.clear(),row!==null&&--row.pendingTasks===0&&finishSuspenseListRow(request,row)),request.pendingRootTasks===0&&request.trackedPostpones===null&&boundary.contentPreamble!==null&&preparePreamble(request);else if(boundary.status===POSTPONED&&(boundary=boundary.row,boundary!==null)){if(request.trackedPostpones!==null){row=request.trackedPostpones;var postponedRow=boundary.next;if(postponedRow!==null&&(segment=postponedRow.boundaries,segment!==null))for(postponedRow.boundaries=null,postponedRow=0;postponedRow<segment.length;postponedRow++){var postponedBoundary=segment[postponedRow];trackPostponedBoundary(request,row,postponedBoundary),finishedTask(request,postponedBoundary,null,null)}}--boundary.pendingTasks===0&&finishSuspenseListRow(request,boundary)}}else segment===null||!segment.parentFlushed||segment.status!==COMPLETED&&segment.status!==ABORTED||(queueCompletedSegment(boundary,segment),boundary.completedSegments.length===1&&boundary.parentFlushed&&request.partialBoundaries.push(boundary)),boundary=boundary.row,boundary!==null&&boundary.together&&tryToResolveTogetherRow(request,boundary);request.allPendingTasks===0&&completeAll(request)}function performWork(request$jscomp$2){if(request$jscomp$2.status!==CLOSED&&request$jscomp$2.status!==13){var prevContext=currentActiveSnapshot,prevDispatcher=ReactSharedInternals.H;ReactSharedInternals.H=HooksDispatcher;var prevAsyncDispatcher=ReactSharedInternals.A;ReactSharedInternals.A=DefaultAsyncDispatcher;var prevRequest=currentRequest;currentRequest=request$jscomp$2;var prevGetCurrentStackImpl=ReactSharedInternals.getCurrentStack;ReactSharedInternals.getCurrentStack=getCurrentStackInDEV;var prevResumableState=currentResumableState;currentResumableState=request$jscomp$2.resumableState;try{var pingedTasks=request$jscomp$2.pingedTasks,i;for(i=0;i<pingedTasks.length;i++){var request=request$jscomp$2,task=pingedTasks[i],segment=task.blockedSegment;if(segment===null){var prevTaskInDEV=void 0,request$jscomp$0=request;if(request=task,request.replay.pendingTasks!==0){switchContext(request.context),prevTaskInDEV=currentTaskInDEV,currentTaskInDEV=request;try{if(typeof request.replay.slots==="number"?resumeNode(request$jscomp$0,request,request.replay.slots,request.node,request.childIndex):retryNode(request$jscomp$0,request),request.replay.pendingTasks===1&&0<request.replay.nodes.length)throw Error("Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering.");request.replay.pendingTasks--,request.abortSet.delete(request),finishedTask(request$jscomp$0,request.blockedBoundary,request.row,null)}catch(thrownValue){resetHooksState();var x=thrownValue===SuspenseException?getSuspendedThenable():thrownValue;if(typeof x==="object"&&x!==null&&typeof x.then==="function"){var ping=request.ping;x.then(ping,ping),request.thenableState=thrownValue===SuspenseException?getThenableStateAfterSuspending():null}else{request.replay.pendingTasks--,request.abortSet.delete(request);var errorInfo=getThrownInfo(request.componentStack),errorDigest=void 0,request$jscomp$1=request$jscomp$0,boundary=request.blockedBoundary,error$jscomp$0=request$jscomp$0.status===12?request$jscomp$0.fatalError:x,errorInfo$jscomp$0=errorInfo,replayNodes=request.replay.nodes,resumeSlots=request.replay.slots;errorDigest=logRecoverableError(request$jscomp$1,error$jscomp$0,errorInfo$jscomp$0,request.debugTask),abortRemainingReplayNodes(request$jscomp$1,boundary,replayNodes,resumeSlots,error$jscomp$0,errorDigest,errorInfo$jscomp$0,!1),request$jscomp$0.pendingRootTasks--,request$jscomp$0.pendingRootTasks===0&&completeShell(request$jscomp$0),request$jscomp$0.allPendingTasks--,request$jscomp$0.allPendingTasks===0&&completeAll(request$jscomp$0)}}finally{currentTaskInDEV=prevTaskInDEV}}}else if(request$jscomp$0=prevTaskInDEV=void 0,errorDigest=task,request$jscomp$1=segment,request$jscomp$1.status===PENDING){request$jscomp$1.status=6,switchContext(errorDigest.context),request$jscomp$0=currentTaskInDEV,currentTaskInDEV=errorDigest;var childrenLength=request$jscomp$1.children.length,chunkLength=request$jscomp$1.chunks.length;try{retryNode(request,errorDigest),pushSegmentFinale(request$jscomp$1.chunks,request.renderState,request$jscomp$1.lastPushedText,request$jscomp$1.textEmbedded),errorDigest.abortSet.delete(errorDigest),request$jscomp$1.status=COMPLETED,finishedSegment(request,errorDigest.blockedBoundary,request$jscomp$1),finishedTask(request,errorDigest.blockedBoundary,errorDigest.row,request$jscomp$1)}catch(thrownValue){resetHooksState(),request$jscomp$1.children.length=childrenLength,request$jscomp$1.chunks.length=chunkLength;var x$jscomp$0=thrownValue===SuspenseException?getSuspendedThenable():request.status===12?request.fatalError:thrownValue;if(request.status===12&&request.trackedPostpones!==null){var trackedPostpones=request.trackedPostpones,thrownInfo=getThrownInfo(errorDigest.componentStack);errorDigest.abortSet.delete(errorDigest),logRecoverableError(request,x$jscomp$0,thrownInfo,errorDigest.debugTask),trackPostpone(request,trackedPostpones,errorDigest,request$jscomp$1),finishedTask(request,errorDigest.blockedBoundary,errorDigest.row,request$jscomp$1)}else if(typeof x$jscomp$0==="object"&&x$jscomp$0!==null&&typeof x$jscomp$0.then==="function"){request$jscomp$1.status=PENDING,errorDigest.thenableState=thrownValue===SuspenseException?getThenableStateAfterSuspending():null;var ping$jscomp$0=errorDigest.ping;x$jscomp$0.then(ping$jscomp$0,ping$jscomp$0)}else{var errorInfo$jscomp$1=getThrownInfo(errorDigest.componentStack);errorDigest.abortSet.delete(errorDigest),request$jscomp$1.status=ERRORED;var boundary$jscomp$0=errorDigest.blockedBoundary,row=errorDigest.row,debugTask=errorDigest.debugTask;if(row!==null&&--row.pendingTasks===0&&finishSuspenseListRow(request,row),request.allPendingTasks--,prevTaskInDEV=logRecoverableError(request,x$jscomp$0,errorInfo$jscomp$1,debugTask),boundary$jscomp$0===null)fatalError(request,x$jscomp$0,errorInfo$jscomp$1,debugTask);else if(boundary$jscomp$0.pendingTasks--,boundary$jscomp$0.status!==CLIENT_RENDERED){boundary$jscomp$0.status=CLIENT_RENDERED,encodeErrorForBoundary(boundary$jscomp$0,prevTaskInDEV,x$jscomp$0,errorInfo$jscomp$1,!1),untrackBoundary(request,boundary$jscomp$0);var boundaryRow=boundary$jscomp$0.row;boundaryRow!==null&&--boundaryRow.pendingTasks===0&&finishSuspenseListRow(request,boundaryRow),boundary$jscomp$0.parentFlushed&&request.clientRenderedBoundaries.push(boundary$jscomp$0),request.pendingRootTasks===0&&request.trackedPostpones===null&&boundary$jscomp$0.contentPreamble!==null&&preparePreamble(request)}request.allPendingTasks===0&&completeAll(request)}}finally{currentTaskInDEV=request$jscomp$0}}}pingedTasks.splice(0,i),request$jscomp$2.destination!==null&&flushCompletedQueues(request$jscomp$2,request$jscomp$2.destination)}catch(error){pingedTasks={},logRecoverableError(request$jscomp$2,error,pingedTasks,null),fatalError(request$jscomp$2,error,pingedTasks,null)}finally{currentResumableState=prevResumableState,ReactSharedInternals.H=prevDispatcher,ReactSharedInternals.A=prevAsyncDispatcher,ReactSharedInternals.getCurrentStack=prevGetCurrentStackImpl,prevDispatcher===HooksDispatcher&&switchContext(prevContext),currentRequest=prevRequest}}}function preparePreambleFromSubtree(request,segment,collectedPreambleSegments){segment.preambleChildren.length&&collectedPreambleSegments.push(segment.preambleChildren);for(var pendingPreambles=!1,i=0;i<segment.children.length;i++)pendingPreambles=preparePreambleFromSegment(request,segment.children[i],collectedPreambleSegments)||pendingPreambles;return pendingPreambles}function preparePreambleFromSegment(request,segment,collectedPreambleSegments){var boundary=segment.boundary;if(boundary===null)return preparePreambleFromSubtree(request,segment,collectedPreambleSegments);var{contentPreamble:preamble,fallbackPreamble}=boundary;if(preamble===null||fallbackPreamble===null)return!1;switch(boundary.status){case COMPLETED:if(hoistPreambleState(request.renderState,preamble),request.byteSize+=boundary.byteSize,segment=boundary.completedSegments[0],!segment)throw Error("A previously unvisited boundary must have exactly one root segment. This is a bug in React.");return preparePreambleFromSubtree(request,segment,collectedPreambleSegments);case POSTPONED:if(request.trackedPostpones!==null)return!0;case CLIENT_RENDERED:if(segment.status===COMPLETED)return hoistPreambleState(request.renderState,fallbackPreamble),preparePreambleFromSubtree(request,segment,collectedPreambleSegments);default:return!0}}function preparePreamble(request){if(request.completedRootSegment&&request.completedPreambleSegments===null){var collectedPreambleSegments=[],originalRequestByteSize=request.byteSize,hasPendingPreambles=preparePreambleFromSegment(request,request.completedRootSegment,collectedPreambleSegments),preamble=request.renderState.preamble;hasPendingPreambles===!1||preamble.headChunks&&preamble.bodyChunks?request.completedPreambleSegments=collectedPreambleSegments:request.byteSize=originalRequestByteSize}}function flushSubtree(request,destination,segment,hoistableState){switch(segment.parentFlushed=!0,segment.status){case PENDING:segment.id=request.nextSegmentId++;case POSTPONED:return hoistableState=segment.id,segment.lastPushedText=!1,segment.textEmbedded=!1,request=request.renderState,writeChunk(destination,placeholder1),writeChunk(destination,request.placeholderPrefix),request=hoistableState.toString(16),writeChunk(destination,request),!!destination.write(placeholder2);case COMPLETED:segment.status=FLUSHED;var r=!0,chunks=segment.chunks,chunkIdx=0;segment=segment.children;for(var childIdx=0;childIdx<segment.length;childIdx++){for(r=segment[childIdx];chunkIdx<r.index;chunkIdx++)writeChunk(destination,chunks[chunkIdx]);r=flushSegment(request,destination,r,hoistableState)}for(;chunkIdx<chunks.length-1;chunkIdx++)writeChunk(destination,chunks[chunkIdx]);return chunkIdx<chunks.length&&(r=!!destination.write(chunks[chunkIdx])),r;case ABORTED:return!0;default:throw Error("Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React.")}}var flushedByteSize=0;function flushSegment(request,destination,segment,hoistableState){var boundary=segment.boundary;if(boundary===null)return flushSubtree(request,destination,segment,hoistableState);if(boundary.parentFlushed=!0,boundary.status===CLIENT_RENDERED){var row=boundary.row;row!==null&&--row.pendingTasks===0&&finishSuspenseListRow(request,row),row=boundary.errorDigest;var errorMessage=boundary.errorMessage,errorStack=boundary.errorStack;boundary=boundary.errorComponentStack,destination.write(startClientRenderedSuspenseBoundary),writeChunk(destination,clientRenderedSuspenseBoundaryError1),row&&(writeChunk(destination,clientRenderedSuspenseBoundaryError1A),writeChunk(destination,escapeTextForBrowser(row)),writeChunk(destination,clientRenderedSuspenseBoundaryErrorAttrInterstitial)),errorMessage&&(writeChunk(destination,clientRenderedSuspenseBoundaryError1B),writeChunk(destination,escapeTextForBrowser(errorMessage)),writeChunk(destination,clientRenderedSuspenseBoundaryErrorAttrInterstitial)),errorStack&&(writeChunk(destination,clientRenderedSuspenseBoundaryError1C),writeChunk(destination,escapeTextForBrowser(errorStack)),writeChunk(destination,clientRenderedSuspenseBoundaryErrorAttrInterstitial)),boundary&&(writeChunk(destination,clientRenderedSuspenseBoundaryError1D),writeChunk(destination,escapeTextForBrowser(boundary)),writeChunk(destination,clientRenderedSuspenseBoundaryErrorAttrInterstitial)),destination.write(clientRenderedSuspenseBoundaryError2),flushSubtree(request,destination,segment,hoistableState)}else if(boundary.status!==COMPLETED)boundary.status===PENDING&&(boundary.rootSegmentID=request.nextSegmentId++),0<boundary.completedSegments.length&&request.partialBoundaries.push(boundary),writeStartPendingSuspenseBoundary(destination,request.renderState,boundary.rootSegmentID),hoistableState&&hoistHoistables(hoistableState,boundary.fallbackState),flushSubtree(request,destination,segment,hoistableState);else if(!flushingPartialBoundaries&&isEligibleForOutlining(request,boundary)&&(flushedByteSize+boundary.byteSize>request.progressiveChunkSize||hasSuspenseyContent(boundary.contentState)))boundary.rootSegmentID=request.nextSegmentId++,request.completedBoundaries.push(boundary),writeStartPendingSuspenseBoundary(destination,request.renderState,boundary.rootSegmentID),flushSubtree(request,destination,segment,hoistableState);else{if(flushedByteSize+=boundary.byteSize,hoistableState&&hoistHoistables(hoistableState,boundary.contentState),segment=boundary.row,segment!==null&&isEligibleForOutlining(request,boundary)&&--segment.pendingTasks===0&&finishSuspenseListRow(request,segment),destination.write(startCompletedSuspenseBoundary),segment=boundary.completedSegments,segment.length!==1)throw Error("A previously unvisited boundary must have exactly one root segment. This is a bug in React.");flushSegment(request,destination,segment[0],hoistableState)}return!!destination.write(endSuspenseBoundary)}function flushSegmentContainer(request,destination,segment,hoistableState){return writeStartSegment(destination,request.renderState,segment.parentFormatContext,segment.id),flushSegment(request,destination,segment,hoistableState),writeEndSegment(destination,segment.parentFormatContext)}function flushCompletedBoundary(request,destination,boundary){flushedByteSize=boundary.byteSize;for(var completedSegments=boundary.completedSegments,i=0;i<completedSegments.length;i++)flushPartiallyCompletedSegment(request,destination,boundary,completedSegments[i]);completedSegments.length=0,completedSegments=boundary.row,completedSegments!==null&&isEligibleForOutlining(request,boundary)&&--completedSegments.pendingTasks===0&&finishSuspenseListRow(request,completedSegments),writeHoistablesForBoundary(destination,boundary.contentState,request.renderState),completedSegments=request.resumableState,request=request.renderState,i=boundary.rootSegmentID,boundary=boundary.contentState;var requiresStyleInsertion=request.stylesToHoist;return request.stylesToHoist=!1,writeChunk(destination,request.startInlineScript),writeChunk(destination,endOfStartTag),requiresStyleInsertion?((completedSegments.instructions&SentClientRenderFunction)===NothingSent&&(completedSegments.instructions|=SentClientRenderFunction,writeChunk(destination,clientRenderScriptFunctionOnly)),(completedSegments.instructions&SentCompleteBoundaryFunction)===NothingSent&&(completedSegments.instructions|=SentCompleteBoundaryFunction,writeChunk(destination,completeBoundaryScriptFunctionOnly)),(completedSegments.instructions&SentStyleInsertionFunction)===NothingSent?(completedSegments.instructions|=SentStyleInsertionFunction,writeChunk(destination,completeBoundaryWithStylesScript1FullPartial)):writeChunk(destination,completeBoundaryWithStylesScript1Partial)):((completedSegments.instructions&SentCompleteBoundaryFunction)===NothingSent&&(completedSegments.instructions|=SentCompleteBoundaryFunction,writeChunk(destination,completeBoundaryScriptFunctionOnly)),writeChunk(destination,completeBoundaryScript1Partial)),completedSegments=i.toString(16),writeChunk(destination,request.boundaryPrefix),writeChunk(destination,completedSegments),writeChunk(destination,completeBoundaryScript2),writeChunk(destination,request.segmentPrefix),writeChunk(destination,completedSegments),requiresStyleInsertion?(writeChunk(destination,completeBoundaryScript3a),writeStyleResourceDependenciesInJS(destination,boundary)):writeChunk(destination,completeBoundaryScript3b),boundary=!!destination.write(completeBoundaryScriptEnd),writeBootstrap(destination,request)&&boundary}function flushPartiallyCompletedSegment(request,destination,boundary,segment){if(segment.status===FLUSHED)return!0;var hoistableState=boundary.contentState,segmentID=segment.id;if(segmentID===-1){if((segment.id=boundary.rootSegmentID)===-1)throw Error("A root segment ID must have been assigned by now. This is a bug in React.");return flushSegmentContainer(request,destination,segment,hoistableState)}if(segmentID===boundary.rootSegmentID)return flushSegmentContainer(request,destination,segment,hoistableState);return flushSegmentContainer(request,destination,segment,hoistableState),boundary=request.resumableState,request=request.renderState,writeChunk(destination,request.startInlineScript),writeChunk(destination,endOfStartTag),(boundary.instructions&SentCompleteSegmentFunction)===NothingSent?(boundary.instructions|=SentCompleteSegmentFunction,writeChunk(destination,completeSegmentScript1Full)):writeChunk(destination,completeSegmentScript1Partial),writeChunk(destination,request.segmentPrefix),segmentID=segmentID.toString(16),writeChunk(destination,segmentID),writeChunk(destination,completeSegmentScript2),writeChunk(destination,request.placeholderPrefix),writeChunk(destination,segmentID),destination=!!destination.write(completeSegmentScriptEnd),destination}var flushingPartialBoundaries=!1;function flushCompletedQueues(request,destination){try{if(!(0<request.pendingRootTasks)){var i,completedRootSegment=request.completedRootSegment;if(completedRootSegment!==null){if(completedRootSegment.status===POSTPONED)return;var completedPreambleSegments=request.completedPreambleSegments;if(completedPreambleSegments===null)return;flushedByteSize=request.byteSize;var{resumableState,renderState}=request,preamble=renderState.preamble,{htmlChunks,headChunks}=preamble,i$jscomp$0;if(htmlChunks){for(i$jscomp$0=0;i$jscomp$0<htmlChunks.length;i$jscomp$0++)writeChunk(destination,htmlChunks[i$jscomp$0]);if(headChunks)for(i$jscomp$0=0;i$jscomp$0<headChunks.length;i$jscomp$0++)writeChunk(destination,headChunks[i$jscomp$0]);else writeChunk(destination,startChunkForTag("head")),writeChunk(destination,endOfStartTag)}else if(headChunks)for(i$jscomp$0=0;i$jscomp$0<headChunks.length;i$jscomp$0++)writeChunk(destination,headChunks[i$jscomp$0]);var charsetChunks=renderState.charsetChunks;for(i$jscomp$0=0;i$jscomp$0<charsetChunks.length;i$jscomp$0++)writeChunk(destination,charsetChunks[i$jscomp$0]);charsetChunks.length=0,renderState.preconnects.forEach(flushResource,destination),renderState.preconnects.clear();var viewportChunks=renderState.viewportChunks;for(i$jscomp$0=0;i$jscomp$0<viewportChunks.length;i$jscomp$0++)writeChunk(destination,viewportChunks[i$jscomp$0]);viewportChunks.length=0,renderState.fontPreloads.forEach(flushResource,destination),renderState.fontPreloads.clear(),renderState.highImagePreloads.forEach(flushResource,destination),renderState.highImagePreloads.clear(),currentlyFlushingRenderState=renderState,renderState.styles.forEach(flushStylesInPreamble,destination),currentlyFlushingRenderState=null;var importMapChunks=renderState.importMapChunks;for(i$jscomp$0=0;i$jscomp$0<importMapChunks.length;i$jscomp$0++)writeChunk(destination,importMapChunks[i$jscomp$0]);importMapChunks.length=0,renderState.bootstrapScripts.forEach(flushResource,destination),renderState.scripts.forEach(flushResource,destination),renderState.scripts.clear(),renderState.bulkPreloads.forEach(flushResource,destination),renderState.bulkPreloads.clear(),htmlChunks||headChunks||(resumableState.instructions|=SentCompletedShellId);var hoistableChunks=renderState.hoistableChunks;for(i$jscomp$0=0;i$jscomp$0<hoistableChunks.length;i$jscomp$0++)writeChunk(destination,hoistableChunks[i$jscomp$0]);for(resumableState=hoistableChunks.length=0;resumableState<completedPreambleSegments.length;resumableState++){var segments=completedPreambleSegments[resumableState];for(renderState=0;renderState<segments.length;renderState++)flushSegment(request,destination,segments[renderState],null)}var preamble$jscomp$0=request.renderState.preamble,headChunks$jscomp$0=preamble$jscomp$0.headChunks;(preamble$jscomp$0.htmlChunks||headChunks$jscomp$0)&&writeChunk(destination,endChunkForTag("head"));var bodyChunks=preamble$jscomp$0.bodyChunks;if(bodyChunks)for(completedPreambleSegments=0;completedPreambleSegments<bodyChunks.length;completedPreambleSegments++)writeChunk(destination,bodyChunks[completedPreambleSegments]);flushSegment(request,destination,completedRootSegment,null),request.completedRootSegment=null;var renderState$jscomp$0=request.renderState;if(request.allPendingTasks!==0||request.clientRenderedBoundaries.length!==0||request.completedBoundaries.length!==0||request.trackedPostpones!==null&&(request.trackedPostpones.rootNodes.length!==0||request.trackedPostpones.rootSlots!==null)){var resumableState$jscomp$0=request.resumableState;if((resumableState$jscomp$0.instructions&SentMarkShellTime)===NothingSent){if(resumableState$jscomp$0.instructions|=SentMarkShellTime,writeChunk(destination,renderState$jscomp$0.startInlineScript),(resumableState$jscomp$0.instructions&SentCompletedShellId)===NothingSent){resumableState$jscomp$0.instructions|=SentCompletedShellId;var shellId="_"+resumableState$jscomp$0.idPrefix+"R_";writeChunk(destination,completedShellIdAttributeStart),writeChunk(destination,escapeTextForBrowser(shellId)),writeChunk(destination,attributeEnd)}writeChunk(destination,endOfStartTag),writeChunk(destination,shellTimeRuntimeScript),destination.write(endInlineScript)}}writeBootstrap(destination,renderState$jscomp$0)}var renderState$jscomp$1=request.renderState;completedRootSegment=0;var viewportChunks$jscomp$0=renderState$jscomp$1.viewportChunks;for(completedRootSegment=0;completedRootSegment<viewportChunks$jscomp$0.length;completedRootSegment++)writeChunk(destination,viewportChunks$jscomp$0[completedRootSegment]);viewportChunks$jscomp$0.length=0,renderState$jscomp$1.preconnects.forEach(flushResource,destination),renderState$jscomp$1.preconnects.clear(),renderState$jscomp$1.fontPreloads.forEach(flushResource,destination),renderState$jscomp$1.fontPreloads.clear(),renderState$jscomp$1.highImagePreloads.forEach(flushResource,destination),renderState$jscomp$1.highImagePreloads.clear(),renderState$jscomp$1.styles.forEach(preloadLateStyles,destination),renderState$jscomp$1.scripts.forEach(flushResource,destination),renderState$jscomp$1.scripts.clear(),renderState$jscomp$1.bulkPreloads.forEach(flushResource,destination),renderState$jscomp$1.bulkPreloads.clear();var hoistableChunks$jscomp$0=renderState$jscomp$1.hoistableChunks;for(completedRootSegment=0;completedRootSegment<hoistableChunks$jscomp$0.length;completedRootSegment++)writeChunk(destination,hoistableChunks$jscomp$0[completedRootSegment]);hoistableChunks$jscomp$0.length=0;var clientRenderedBoundaries=request.clientRenderedBoundaries;for(i=0;i<clientRenderedBoundaries.length;i++){var boundary=clientRenderedBoundaries[i];renderState$jscomp$1=destination;var{resumableState:resumableState$jscomp$1,renderState:renderState$jscomp$2}=request,id=boundary.rootSegmentID,errorDigest=boundary.errorDigest,errorMessage=boundary.errorMessage,errorStack=boundary.errorStack,errorComponentStack=boundary.errorComponentStack;if(writeChunk(renderState$jscomp$1,renderState$jscomp$2.startInlineScript),writeChunk(renderState$jscomp$1,endOfStartTag),(resumableState$jscomp$1.instructions&SentClientRenderFunction)===NothingSent?(resumableState$jscomp$1.instructions|=SentClientRenderFunction,writeChunk(renderState$jscomp$1,clientRenderScript1Full)):writeChunk(renderState$jscomp$1,clientRenderScript1Partial),writeChunk(renderState$jscomp$1,renderState$jscomp$2.boundaryPrefix),writeChunk(renderState$jscomp$1,id.toString(16)),writeChunk(renderState$jscomp$1,clientRenderScript1A),errorDigest||errorMessage||errorStack||errorComponentStack)writeChunk(renderState$jscomp$1,clientRenderErrorScriptArgInterstitial),writeChunk(renderState$jscomp$1,escapeJSStringsForInstructionScripts(errorDigest||""));if(errorMessage||errorStack||errorComponentStack)writeChunk(renderState$jscomp$1,clientRenderErrorScriptArgInterstitial),writeChunk(renderState$jscomp$1,escapeJSStringsForInstructionScripts(errorMessage||""));if(errorStack||errorComponentStack)writeChunk(renderState$jscomp$1,clientRenderErrorScriptArgInterstitial),writeChunk(renderState$jscomp$1,escapeJSStringsForInstructionScripts(errorStack||""));errorComponentStack&&(writeChunk(renderState$jscomp$1,clientRenderErrorScriptArgInterstitial),writeChunk(renderState$jscomp$1,escapeJSStringsForInstructionScripts(errorComponentStack)));var JSCompiler_inline_result=!!renderState$jscomp$1.write(clientRenderScriptEnd);if(!JSCompiler_inline_result){request.destination=null,i++,clientRenderedBoundaries.splice(0,i);return}}clientRenderedBoundaries.splice(0,i);var completedBoundaries=request.completedBoundaries;for(i=0;i<completedBoundaries.length;i++)if(!flushCompletedBoundary(request,destination,completedBoundaries[i])){request.destination=null,i++,completedBoundaries.splice(0,i);return}completedBoundaries.splice(0,i),flushingPartialBoundaries=!0;var partialBoundaries=request.partialBoundaries;for(i=0;i<partialBoundaries.length;i++){a:{clientRenderedBoundaries=request,boundary=destination;var boundary$jscomp$0=partialBoundaries[i];flushedByteSize=boundary$jscomp$0.byteSize;var completedSegments=boundary$jscomp$0.completedSegments;for(JSCompiler_inline_result=0;JSCompiler_inline_result<completedSegments.length;JSCompiler_inline_result++)if(!flushPartiallyCompletedSegment(clientRenderedBoundaries,boundary,boundary$jscomp$0,completedSegments[JSCompiler_inline_result])){JSCompiler_inline_result++,completedSegments.splice(0,JSCompiler_inline_result);var JSCompiler_inline_result$jscomp$0=!1;break a}completedSegments.splice(0,JSCompiler_inline_result);var row=boundary$jscomp$0.row;row!==null&&row.together&&boundary$jscomp$0.pendingTasks===1&&(row.pendingTasks===1?unblockSuspenseListRow(clientRenderedBoundaries,row,row.hoistables):row.pendingTasks--),JSCompiler_inline_result$jscomp$0=writeHoistablesForBoundary(boundary,boundary$jscomp$0.contentState,clientRenderedBoundaries.renderState)}if(!JSCompiler_inline_result$jscomp$0){request.destination=null,i++,partialBoundaries.splice(0,i);return}}partialBoundaries.splice(0,i),flushingPartialBoundaries=!1;var largeBoundaries=request.completedBoundaries;for(i=0;i<largeBoundaries.length;i++)if(!flushCompletedBoundary(request,destination,largeBoundaries[i])){request.destination=null,i++,largeBoundaries.splice(0,i);return}largeBoundaries.splice(0,i)}}finally{flushingPartialBoundaries=!1,request.allPendingTasks===0&&request.clientRenderedBoundaries.length===0&&request.completedBoundaries.length===0?(request.flushScheduled=!1,i=request.resumableState,i.hasBody&&writeChunk(destination,endChunkForTag("body")),i.hasHtml&&writeChunk(destination,endChunkForTag("html")),flushBuffered(destination),request.abortableTasks.size!==0&&console.error("There was still abortable task at the root when we closed. This is a bug in React."),request.status=CLOSED,destination.end(),request.destination=null):flushBuffered(destination)}}function startWork(request){request.flushScheduled=request.destination!==null,scheduleMicrotask(function(){return performWork(request)}),setTimeout(function(){request.status===10&&(request.status=11),request.trackedPostpones===null&&safelyEmitEarlyPreloads(request,request.pendingRootTasks===0)},0)}function enqueueFlush(request){request.flushScheduled===!1&&request.pingedTasks.length===0&&request.destination!==null&&(request.flushScheduled=!0,setTimeout(function(){var destination=request.destination;destination?flushCompletedQueues(request,destination):request.flushScheduled=!1},0))}function abort(request,reason){if(request.status===11||request.status===10)request.status=12;try{var abortableTasks=request.abortableTasks;if(0<abortableTasks.size){var error=reason===void 0?Error("The render was aborted by the server without a reason."):typeof reason==="object"&&reason!==null&&typeof reason.then==="function"?Error("The render was aborted by the server with a promise."):reason;request.fatalError=error,abortableTasks.forEach(function(task){var prevTaskInDEV=currentTaskInDEV,prevGetCurrentStackImpl=ReactSharedInternals.getCurrentStack;currentTaskInDEV=task,ReactSharedInternals.getCurrentStack=getCurrentStackInDEV;try{abortTask(task,request,error)}finally{currentTaskInDEV=prevTaskInDEV,ReactSharedInternals.getCurrentStack=prevGetCurrentStackImpl}}),abortableTasks.clear()}request.destination!==null&&flushCompletedQueues(request,request.destination)}catch(error$4){reason={},logRecoverableError(request,error$4,reason,null),fatalError(request,error$4,reason,null)}}function addToReplayParent(node,parentKeyPath,trackedPostpones){if(parentKeyPath===null)trackedPostpones.rootNodes.push(node);else{var workingMap=trackedPostpones.workingMap,parentNode=workingMap.get(parentKeyPath);parentNode===void 0&&(parentNode=[parentKeyPath[1],parentKeyPath[2],[],null],workingMap.set(parentKeyPath,parentNode),addToReplayParent(parentNode,parentKeyPath[0],trackedPostpones)),parentNode[2].push(node)}}var isomorphicReactPackageVersion$jscomp$inline_766=React.version;if(isomorphicReactPackageVersion$jscomp$inline_766!=="19.2.8")throw Error(`Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:
|
|
350
350
|
- react: `+(isomorphicReactPackageVersion$jscomp$inline_766+`
|
|
351
351
|
- react-dom: 19.2.8
|
|
352
|
-
Learn more: https://react.dev/warnings/version-mismatch`));var $renderToReadableStream=function(children,options){return new Promise(function(resolve,reject){var onFatalError,onAllReady,allReady=new Promise(function(res,rej){onAllReady=res,onFatalError=rej}),onHeaders=options?options.onHeaders:void 0,onHeadersImpl;onHeaders&&(onHeadersImpl=function(headersDescriptor){onHeaders(new Headers(headersDescriptor))});var resumableState=createResumableState(options?options.identifierPrefix:void 0,options?options.unstable_externalRuntimeSrc:void 0,options?options.bootstrapScriptContent:void 0,options?options.bootstrapScripts:void 0,options?options.bootstrapModules:void 0),request$jscomp$0=createRequest(children,resumableState,createRenderState(resumableState,options?options.nonce:void 0,options?options.unstable_externalRuntimeSrc:void 0,options?options.importMap:void 0,onHeadersImpl,options?options.maxHeadersLength:void 0),createRootFormatContext(options?options.namespaceURI:void 0),options?options.progressiveChunkSize:void 0,options?options.onError:void 0,onAllReady,function(){var stream=new ReadableStream({type:"direct",pull:function(controller){var request=request$jscomp$0;if(request.status===13)request.status=CLOSED,closeWithError(controller,request.fatalError);else if(request.status!==CLOSED&&request.destination===null){request.destination=controller;try{flushCompletedQueues(request,controller)}catch(error){controller={},logRecoverableError(request,error,controller,null),fatalError(request,error,controller,null)}}},cancel:function(reason){request$jscomp$0.destination=null,abort(request$jscomp$0,reason)}},{highWaterMark:2048});stream.allReady=allReady,resolve(stream)},function(error){allReady.catch(function(){}),reject(error)},onFatalError,options?options.onPostpone:void 0,options?options.formState:void 0);if(options&&options.signal){var signal=options.signal;if(signal.aborted)abort(request$jscomp$0,signal.reason);else{var listener=function(){abort(request$jscomp$0,signal.reason),signal.removeEventListener("abort",listener)};signal.addEventListener("abort",listener)}}startWork(request$jscomp$0)})},$version="19.2.8";var react_dom_server_legacy_browser_development=__toESM(require_react_dom_server_legacy_browser_development()),b,l;b=exports_react_dom_server_bun_development,l=react_dom_server_legacy_browser_development;var $version2=b.version,$renderToReadableStream2=b.renderToReadableStream,$resume=b.resume,$renderToString=l.renderToString,$renderToStaticMarkup=l.renderToStaticMarkup;var import_react=__toESM(require_react_development(),1);class UnknownComponentError extends Error{ref;constructor(ref){super(`Unknown component $ref="${ref}". Not in the active component provider's registry. ("$ref" is a library component or registered extension; the MCP compose tool resolves snippet tags to $snippet nodes.)`);this.ref=ref;this.name="UnknownComponentError"}}class UnknownSnippetError extends Error{snippetId;constructor(snippetId){super(`Unknown snippet $snippet="${snippetId}".`);this.snippetId=snippetId;this.name="UnknownSnippetError"}}class SnippetCycleError extends Error{snippetId;cycle;constructor(snippetId,stack){super(`Snippet cycle detected: ${[...stack,snippetId].join(" \u2192 ")}`);this.name="SnippetCycleError",this.snippetId=snippetId,this.cycle=stack}}class SnippetParamError extends Error{snippetId;paramName;constructor(snippetId,paramName,message){super(message??`Snippet "${snippetId}": required param "${paramName}" not supplied.`);this.snippetId=snippetId;this.paramName=paramName;this.name="SnippetParamError"}}class ParamRefError extends Error{paramName;constructor(paramName){super(`$param "${paramName}" appears outside a snippet body.`);this.paramName=paramName;this.name="ParamRefError"}}function resolveSnippetBody(instance,snippet){let{args,missing}=resolveSnippetArgs(snippet,instance.args??{});if(missing.length>0)throw new SnippetParamError(snippet.id,missing[0]);let substituted=substituteSnippetParams(snippet.tree,args);if(substituted.missing.length>0)throw new SnippetParamError(snippet.id,substituted.missing[0]);if(substituted.invalid.length>0){let bad=substituted.invalid[0];throw new SnippetParamError(snippet.id,bad.param,`Snippet "${snippet.id}": param "${bad.param}" resolved to a ${bad.valueType} but sits in a \`children\` array, where only nodes render. Pass a scalar param as a prop value, e.g. {"$ref":"Heading","props":{"children":{"$param":"${bad.param}"}}}. Only \`type:"node"\` params belong directly in children.`)}let body=substituted.value;if(instance.$overrides)body=applySnippetOverrides(body,instance.$overrides);let extra=instance.$extraClassName?.trim();if(!extra)return body;return applySnippetExtraClassName(body,extra)}function buildTree(node,opts,path=[],stack=[],lockedPath=null,body=null){if(isSnippetInstance(node)){let snippets=opts.snippets;if(!snippets)throw new UnknownSnippetError(node.$snippet);let snippet=snippets.get(node.$snippet);if(!snippet)throw new UnknownSnippetError(node.$snippet);if(stack.includes(snippet.id))throw new SnippetCycleError(snippet.id,stack);let resolved=resolveSnippetBody(node,snippet);return buildTree(resolved,opts,path,[...stack,snippet.id],lockedPath??path,{snippetId:snippet.id,path:[]})}if(isParamRef(node))throw new ParamRefError(node.$param);if(!isComponentNode(node))throw Error(`buildTree: expected a component, snippet instance, or node param in a node position but got ${JSON.stringify(node)}`);if(isRepoNode(node))return buildRepoNode(node,opts,path,stack,lockedPath,body);let Component=node.$ref===PARAM_TAG_REF?ParamTag:opts.registry[node.$ref];if(!Component)throw new UnknownComponentError(node.$ref);let{children:childrenProp,...restProps}=node.props??{},dataNodePath=(lockedPath??path).join("."),children;if(Array.isArray(node.children)&&node.children.length>0)children=node.children.flatMap((child,i)=>Array.isArray(child)?child.map((c,j)=>buildTree(c,opts,[...path,i,j],stack,lockedPath,null)):buildTree(child,opts,[...path,i],stack,lockedPath,descend(body,i)));else if(childrenProp!==void 0)children=resolvePropChildren(childrenProp,opts,path,stack,lockedPath);return import_react.createElement(Component,{...restProps,"data-node-path":dataNodePath,...body===null?{}:{"data-snippet-id":body.snippetId,"data-snippet-path":body.path.join(".")},key:dataNodePath||"root"},children)}function descend(body,index){return body===null?null:{snippetId:body.snippetId,path:[...body.path,index]}}function isNodeLike(v){return typeof v==="object"&&v!==null&&!Array.isArray(v)&&(isComponentNode(v)||isSnippetInstance(v)||isParamRef(v))}function resolvePropChildren(value,opts,path,stack,lockedPath){if(isNodeLike(value))return buildTree(value,opts,path,stack,lockedPath);if(Array.isArray(value))return value.map((item,i)=>{if(!isNodeLike(item))return item;let el=buildTree(item,opts,path,stack,lockedPath);return import_react.cloneElement(el,{key:`inline-${i}`})});return value}function buildRoot(node,opts){return import_react.createElement(import_react.Fragment,null,buildTree(node,opts))}function resolveSnippetBodyForEdit(body,paramDefaults,snippetId){if(isParamRef(body))return paramTagNode(body.$param);if(isSnippetInstance(body))return body;if(!isComponentNode(body))return body;let nextProps=body.props?substituteSnippetParams(body.props,paramDefaults).value:void 0,nextChildren=body.children?.map((c)=>resolveSnippetBodyForEdit(c,paramDefaults,snippetId));return{...body,...nextProps?{props:nextProps}:{},...nextChildren?{children:nextChildren}:{}}}var PARAM_TAG_REF="velloo:param-tag";function paramTagNode(name){return{$ref:PARAM_TAG_REF,props:{name}}}function snippetParamPlaceholder(param){if(param.default!==void 0)return param.default;switch(param.type){case"node":return paramTagNode(param.name);case"number":return 0;case"boolean":return!1;case"icon":return"Circle";case"color":return"#7c3aed";case"enum":return param.enum?.[0]??"";default:return`$${param.name}`}}var PARAM_TAG_STYLE={display:"inline-flex",alignItems:"center",alignSelf:"flex-start",borderRadius:"0.375rem",border:"1px dashed var(--color-border, #d4d4d8)",padding:"0.05rem 0.4rem",color:"var(--color-muted-foreground, #71717a)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:"0.75rem",lineHeight:1.6,whiteSpace:"nowrap"};function ParamTag({name,...rest}){return import_react.createElement("span",{...rest,style:PARAM_TAG_STYLE},`$${name}`)}function repoProxyInstance(node,snippet){let props=node.props??{},args={};for(let param of snippet.params)if(param.name==="children"&¶m.type==="node"&&node.children?.length)args.children=node.children.length===1?node.children[0]:node.children;else if(param.name in props)args[param.name]=props[param.name];return{$snippet:snippet.id,args}}function buildRepoNode(node,opts,path,stack,lockedPath,body){let proxy=node.$repo.proxy?opts.snippets?.get(node.$repo.proxy):void 0;if(proxy&&!stack.includes(proxy.id))return buildTree(repoProxyInstance(node,proxy),opts,path,stack,lockedPath??path);let dataNodePath=(lockedPath??path).join("."),textChild=node.props?.children,children=node.children&&node.children.length>0?node.children.flatMap((child,i)=>Array.isArray(child)?child.map((c,j)=>buildTree(c,opts,[...path,i,j],stack,lockedPath,null)):buildTree(child,opts,[...path,i],stack,lockedPath,descend(body,i))):typeof textChild==="string"||typeof textChild==="number"?textChild:null;return import_react.createElement(RepoPlaceholder,{label:node.$ref,source:node.$repo.importPath,"data-node-path":dataNodePath,...body===null?{}:{"data-snippet-id":body.snippetId,"data-snippet-path":body.path.join(".")},key:dataNodePath||"root",children})}var REPO_FRAME_STYLE={position:"relative",border:"1px dashed var(--color-border, #d4d4d8)",borderRadius:"0.5rem",padding:"1.5rem 0.75rem 0.75rem",minHeight:"2.5rem"},REPO_LABEL_STYLE={position:"absolute",top:"0.25rem",left:"0.5rem",color:"var(--color-muted-foreground, #71717a)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:"0.6875rem",lineHeight:1.4,pointerEvents:"none"};function RepoPlaceholder({label,source,children,...rest}){return import_react.createElement("div",{...rest,"data-velloo-repo":label,style:REPO_FRAME_STYLE,title:`${label} from ${source}`},import_react.createElement("span",{style:REPO_LABEL_STYLE},`<${label}>`),children)}var CANVAS_RUNTIME=`
|
|
352
|
+
Learn more: https://react.dev/warnings/version-mismatch`));var $renderToReadableStream=function(children,options){return new Promise(function(resolve,reject){var onFatalError,onAllReady,allReady=new Promise(function(res,rej){onAllReady=res,onFatalError=rej}),onHeaders=options?options.onHeaders:void 0,onHeadersImpl;onHeaders&&(onHeadersImpl=function(headersDescriptor){onHeaders(new Headers(headersDescriptor))});var resumableState=createResumableState(options?options.identifierPrefix:void 0,options?options.unstable_externalRuntimeSrc:void 0,options?options.bootstrapScriptContent:void 0,options?options.bootstrapScripts:void 0,options?options.bootstrapModules:void 0),request$jscomp$0=createRequest(children,resumableState,createRenderState(resumableState,options?options.nonce:void 0,options?options.unstable_externalRuntimeSrc:void 0,options?options.importMap:void 0,onHeadersImpl,options?options.maxHeadersLength:void 0),createRootFormatContext(options?options.namespaceURI:void 0),options?options.progressiveChunkSize:void 0,options?options.onError:void 0,onAllReady,function(){var stream=new ReadableStream({type:"direct",pull:function(controller){var request=request$jscomp$0;if(request.status===13)request.status=CLOSED,closeWithError(controller,request.fatalError);else if(request.status!==CLOSED&&request.destination===null){request.destination=controller;try{flushCompletedQueues(request,controller)}catch(error){controller={},logRecoverableError(request,error,controller,null),fatalError(request,error,controller,null)}}},cancel:function(reason){request$jscomp$0.destination=null,abort(request$jscomp$0,reason)}},{highWaterMark:2048});stream.allReady=allReady,resolve(stream)},function(error){allReady.catch(function(){}),reject(error)},onFatalError,options?options.onPostpone:void 0,options?options.formState:void 0);if(options&&options.signal){var signal=options.signal;if(signal.aborted)abort(request$jscomp$0,signal.reason);else{var listener=function(){abort(request$jscomp$0,signal.reason),signal.removeEventListener("abort",listener)};signal.addEventListener("abort",listener)}}startWork(request$jscomp$0)})},$version="19.2.8";var react_dom_server_legacy_browser_development=__toESM(require_react_dom_server_legacy_browser_development()),b,l;b=exports_react_dom_server_bun_development,l=react_dom_server_legacy_browser_development;var $version2=b.version,$renderToReadableStream2=b.renderToReadableStream,$resume=b.resume,$renderToString=l.renderToString,$renderToStaticMarkup=l.renderToStaticMarkup;var import_react=__toESM(require_react_development(),1);function descend(body,index){return body===null?null:{snippetId:body.snippetId,path:[...body.path,index]}}function enterSnippet(body,snippetId){if(body===null)return{snippetId,path:[]};let here=`${body.snippetId}#${body.path.join(".")}`,outer=body.path.length===0?body.at??[]:[];return{snippetId,path:[],at:[here,...outer]}}function bodyAttributes(body){if(body===null)return{};return{"data-snippet-id":body.snippetId,"data-snippet-path":body.path.join("."),...body.at&&body.path.length===0?{"data-snippet-at":body.at.join(" ")}:{}}}class UnknownComponentError extends Error{ref;constructor(ref){super(`Unknown component $ref="${ref}". Not in the active component provider's registry. ("$ref" is a library component or registered extension; the MCP compose tool resolves snippet tags to $snippet nodes.)`);this.ref=ref;this.name="UnknownComponentError"}}class UnknownSnippetError extends Error{snippetId;constructor(snippetId){super(`Unknown snippet $snippet="${snippetId}".`);this.snippetId=snippetId;this.name="UnknownSnippetError"}}class SnippetCycleError extends Error{snippetId;cycle;constructor(snippetId,stack){super(`Snippet cycle detected: ${[...stack,snippetId].join(" \u2192 ")}`);this.name="SnippetCycleError",this.snippetId=snippetId,this.cycle=stack}}class SnippetParamError extends Error{snippetId;paramName;constructor(snippetId,paramName,message){super(message??`Snippet "${snippetId}": required param "${paramName}" not supplied.`);this.snippetId=snippetId;this.paramName=paramName;this.name="SnippetParamError"}}class ParamRefError extends Error{paramName;constructor(paramName){super(`$param "${paramName}" appears outside a snippet body.`);this.paramName=paramName;this.name="ParamRefError"}}function resolveSnippetBody(instance,snippet){let{args,missing}=resolveSnippetArgs(snippet,instance.args??{});if(missing.length>0)throw new SnippetParamError(snippet.id,missing[0]);let substituted=substituteSnippetParams(snippet.tree,args);if(substituted.missing.length>0)throw new SnippetParamError(snippet.id,substituted.missing[0]);if(substituted.invalid.length>0){let bad=substituted.invalid[0];throw new SnippetParamError(snippet.id,bad.param,`Snippet "${snippet.id}": param "${bad.param}" resolved to a ${bad.valueType} but sits in a \`children\` array, where only nodes render. Pass a scalar param as a prop value, e.g. {"$ref":"Heading","props":{"children":{"$param":"${bad.param}"}}}. Only \`type:"node"\` params belong directly in children.`)}let body=substituted.value;if(instance.$overrides)body=applySnippetOverrides(body,instance.$overrides);let extra=instance.$extraClassName?.trim();if(!extra)return body;return applySnippetExtraClassName(body,extra)}function buildTree(node,opts,path=[],stack=[],lockedPath=null,body=null){if(isSnippetInstance(node)){let snippets=opts.snippets;if(!snippets)throw new UnknownSnippetError(node.$snippet);let snippet=snippets.get(node.$snippet);if(!snippet)throw new UnknownSnippetError(node.$snippet);if(stack.includes(snippet.id))throw new SnippetCycleError(snippet.id,stack);let resolved=resolveSnippetBody(node,snippet);return buildTree(resolved,opts,path,[...stack,snippet.id],lockedPath??path,enterSnippet(body,snippet.id))}if(isParamRef(node))throw new ParamRefError(node.$param);if(!isComponentNode(node))throw Error(`buildTree: expected a component, snippet instance, or node param in a node position but got ${JSON.stringify(node)}`);if(isRepoNode(node))return buildRepoNode(node,opts,path,stack,lockedPath,body);let Component=node.$ref===PARAM_TAG_REF?ParamTag:opts.registry[node.$ref];if(!Component)throw new UnknownComponentError(node.$ref);let{children:childrenProp,...restProps}=node.props??{},dataNodePath=(lockedPath??path).join("."),children;if(Array.isArray(node.children)&&node.children.length>0){if(children=node.children.flatMap((child,i)=>Array.isArray(child)?child.map((c,j)=>buildTree(c,opts,[...path,i,j],stack,lockedPath,null)):buildTree(child,opts,[...path,i],stack,lockedPath,descend(body,i))),Array.isArray(children)&&children.length===1)children=children[0]}else if(childrenProp!==void 0)children=resolvePropChildren(childrenProp,opts,path,stack,lockedPath);return import_react.createElement(Component,{...restProps,"data-node-path":dataNodePath,...bodyAttributes(body),key:dataNodePath||"root"},children)}function isNodeLike(v){return typeof v==="object"&&v!==null&&!Array.isArray(v)&&(isComponentNode(v)||isSnippetInstance(v)||isParamRef(v))}function resolvePropChildren(value,opts,path,stack,lockedPath){if(isNodeLike(value))return buildTree(value,opts,path,stack,lockedPath);if(Array.isArray(value))return value.map((item,i)=>{if(!isNodeLike(item))return item;let el=buildTree(item,opts,path,stack,lockedPath);return import_react.cloneElement(el,{key:`inline-${i}`})});return value}function buildRoot(node,opts){return import_react.createElement(import_react.Fragment,null,buildTree(node,opts))}function resolveSnippetBodyForEdit(body,paramDefaults,snippetId){if(isParamRef(body))return paramTagNode(body.$param);if(isSnippetInstance(body))return body;if(!isComponentNode(body))return body;let nextProps=body.props?substituteSnippetParams(body.props,paramDefaults).value:void 0,nextChildren=body.children?.map((c)=>resolveSnippetBodyForEdit(c,paramDefaults,snippetId));return{...body,...nextProps?{props:nextProps}:{},...nextChildren?{children:nextChildren}:{}}}var PARAM_TAG_REF="velloo:param-tag";function paramTagNode(name){return{$ref:PARAM_TAG_REF,props:{name}}}function snippetParamPlaceholder(param){if(param.default!==void 0)return param.default;switch(param.type){case"node":return paramTagNode(param.name);case"number":return 0;case"boolean":return!1;case"icon":return"Circle";case"color":return"#7c3aed";case"enum":return param.enum?.[0]??"";default:return`$${param.name}`}}var PARAM_TAG_STYLE={display:"inline-flex",alignItems:"center",alignSelf:"flex-start",borderRadius:"0.375rem",border:"1px dashed var(--color-border, #d4d4d8)",padding:"0.05rem 0.4rem",color:"var(--color-muted-foreground, #71717a)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:"0.75rem",lineHeight:1.6,whiteSpace:"nowrap"};function ParamTag({name,...rest}){return import_react.createElement("span",{...rest,"data-velloo-param":name,style:PARAM_TAG_STYLE},`$${name}`)}function repoProxyInstance(node,snippet){let props=node.props??{},args={};for(let param of snippet.params)if(param.name==="children"&¶m.type==="node"&&node.children?.length)args.children=node.children.length===1?node.children[0]:node.children;else if(param.name in props)args[param.name]=props[param.name];return{$snippet:snippet.id,args}}function buildRepoNode(node,opts,path,stack,lockedPath,body){let proxy=node.$repo.proxy?opts.snippets?.get(node.$repo.proxy):void 0;if(proxy&&!stack.includes(proxy.id))return buildTree(repoProxyInstance(node,proxy),opts,path,stack,lockedPath??path);let dataNodePath=(lockedPath??path).join("."),textChild=node.props?.children,children=node.children&&node.children.length>0?node.children.flatMap((child,i)=>Array.isArray(child)?child.map((c,j)=>buildTree(c,opts,[...path,i,j],stack,lockedPath,null)):buildTree(child,opts,[...path,i],stack,lockedPath,descend(body,i))):typeof textChild==="string"||typeof textChild==="number"?textChild:null;return import_react.createElement(RepoPlaceholder,{label:node.$ref,source:node.$repo.importPath,"data-node-path":dataNodePath,...bodyAttributes(body),key:dataNodePath||"root",children})}var REPO_FRAME_STYLE={position:"relative",border:"1px dashed var(--color-border, #d4d4d8)",borderRadius:"0.5rem",padding:"1.5rem 0.75rem 0.75rem",minHeight:"2.5rem"},REPO_LABEL_STYLE={position:"absolute",top:"0.25rem",left:"0.5rem",color:"var(--color-muted-foreground, #71717a)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:"0.6875rem",lineHeight:1.4,pointerEvents:"none"};function RepoPlaceholder({label,source,children,...rest}){return import_react.createElement("div",{...rest,"data-velloo-repo":label,style:REPO_FRAME_STYLE,title:`${label} from ${source}`},import_react.createElement("span",{style:REPO_LABEL_STYLE},`<${label}>`),children)}var CANVAS_RUNTIME=`
|
|
353
353
|
(() => {
|
|
354
354
|
if (window.__velloo_canvas) return;
|
|
355
355
|
window.__velloo_canvas = {};
|
|
@@ -377,7 +377,7 @@ Learn more: https://react.dev/warnings/version-mismatch`));var $renderToReadable
|
|
|
377
377
|
// of them at once; filtering at each call site only fixes the ones that
|
|
378
378
|
// remembered to, and the capture path (a Playwright selector, not our code)
|
|
379
379
|
// could not be fixed that way at all.
|
|
380
|
-
var IDENTITY_ATTRS = ["data-node-path", "data-snippet-id", "data-snippet-path"];
|
|
380
|
+
var IDENTITY_ATTRS = ["data-node-path", "data-snippet-id", "data-snippet-path", "data-snippet-at"];
|
|
381
381
|
|
|
382
382
|
function dropIdentity(el) {
|
|
383
383
|
var stale = el.querySelectorAll("[" + IDENTITY_ATTRS.join("],[") + "]");
|
|
@@ -482,7 +482,7 @@ Learn more: https://react.dev/warnings/version-mismatch`));var $renderToReadable
|
|
|
482
482
|
settleOnSsr();
|
|
483
483
|
});
|
|
484
484
|
})();
|
|
485
|
-
`;var PROTOCOL_VERSION=1,SELECT_RING="#2563eb";var HOVER_RING="#60a5fa";var RENDER_ERROR_META="velloo-render-error",COMPUTED_PROPS=["fontFamily","fontSize","fontWeight","lineHeight","letterSpacing","textAlign","color","backgroundColor","borderTopWidth","borderTopColor","borderTopLeftRadius","paddingTop","paddingRight","paddingBottom","paddingLeft","marginTop","marginRight","marginBottom","marginLeft","columnGap"];var IFRAME_RUNTIME=String.raw`
|
|
485
|
+
`;var HOST_FILES_PREFIX="/api/host-files",HOST_STYLESHEET_ATTRIBUTE="data-velloo-host-stylesheet";var PROTOCOL_VERSION=1,SELECT_RING="#2563eb";var HOVER_RING="#60a5fa";var RENDER_ERROR_META="velloo-render-error",COMPUTED_PROPS=["fontFamily","fontSize","fontWeight","lineHeight","letterSpacing","textAlign","color","backgroundColor","borderTopWidth","borderTopColor","borderTopLeftRadius","paddingTop","paddingRight","paddingBottom","paddingLeft","marginTop","marginRight","marginBottom","marginLeft","columnGap"];var IFRAME_RUNTIME=String.raw`
|
|
486
486
|
(() => {
|
|
487
487
|
if (window.__velloo) return;
|
|
488
488
|
const PROTOCOL_VERSION = ${PROTOCOL_VERSION};
|
|
@@ -638,6 +638,13 @@ Learn more: https://react.dev/warnings/version-mismatch`));var $renderToReadable
|
|
|
638
638
|
const p = el.getAttribute('data-snippet-path');
|
|
639
639
|
return p === null ? undefined : p;
|
|
640
640
|
}
|
|
641
|
+
// The root of an instance nested in the focused snippet's body: its own
|
|
642
|
+
// snippet re-roots the path, and \`data-snippet-at\` keeps where it sits.
|
|
643
|
+
const at = el.getAttribute && el.getAttribute('data-snippet-at');
|
|
644
|
+
if (at) {
|
|
645
|
+
const token = at.split(' ').find((t) => t.startsWith(focusedSnippet + '#'));
|
|
646
|
+
if (token !== undefined) return token.slice(focusedSnippet.length + 1);
|
|
647
|
+
}
|
|
641
648
|
el = el.parentElement;
|
|
642
649
|
}
|
|
643
650
|
return undefined;
|
|
@@ -715,7 +722,9 @@ Learn more: https://react.dev/warnings/version-mismatch`));var $renderToReadable
|
|
|
715
722
|
}
|
|
716
723
|
|
|
717
724
|
function snippetSelector(snippetPath) {
|
|
718
|
-
|
|
725
|
+
const id = focusedSnippet.replace(/"/g, '\\"');
|
|
726
|
+
const path = String(snippetPath).replace(/"/g, '\\"');
|
|
727
|
+
return '[data-snippet-id="' + id + '"][data-snippet-path="' + path + '"], [data-snippet-at~="' + id + '#' + path + '"]';
|
|
719
728
|
}
|
|
720
729
|
|
|
721
730
|
// Every element inside a snippet body carries the body's own path, so a
|
|
@@ -883,6 +892,16 @@ Learn more: https://react.dev/warnings/version-mismatch`));var $renderToReadable
|
|
|
883
892
|
return focusedSnippet !== null && findSnippetPath(target) === undefined;
|
|
884
893
|
}
|
|
885
894
|
|
|
895
|
+
// A design isn't a live form: on the canvas nothing in the frame takes
|
|
896
|
+
// focus \u2014 no typing into a field, no caret, no password manager offering to
|
|
897
|
+
// fill it, and no autofocus pulling the frame (or the board) around. The
|
|
898
|
+
// pointer still reaches the click reporter below; only the default goes.
|
|
899
|
+
document.addEventListener('mousedown', (ev) => ev.preventDefault(), true);
|
|
900
|
+
document.addEventListener('focusin', (ev) => {
|
|
901
|
+
const el = ev.target;
|
|
902
|
+
if (el && el !== document.body && typeof el.blur === 'function') el.blur();
|
|
903
|
+
}, true);
|
|
904
|
+
|
|
886
905
|
document.addEventListener('click', (ev) => {
|
|
887
906
|
const path = findPath(ev.target);
|
|
888
907
|
ev.preventDefault();
|
|
@@ -1199,7 +1218,8 @@ Learn more: https://react.dev/warnings/version-mismatch`));var $renderToReadable
|
|
|
1199
1218
|
settle();
|
|
1200
1219
|
});
|
|
1201
1220
|
})();
|
|
1202
|
-
`;function buildDocument(opts){let{viewport,bodyHtml,snapshotCss,themeCss,adapterCss,customCss,googleFonts,baseHref,title="Velloo design",includeRuntime=!0,dark,liveBundleUrl,canvasBundle,selectionRing,scriptNonce}=opts,script=scriptNonce?`<script nonce="${escapeHtml(scriptNonce)}">`:"<script>",runtime=includeRuntime?`${script}${IFRAME_RUNTIME}</script>`:"",live=liveBundleUrl?`${script}${LIVE_RUNTIME.replace("__VELLOO_LIVE_BUNDLE_URL__",JSON.stringify(liveBundleUrl))}</script>`:"",canvas=canvasBundle?`<script type="application/json" id="velloo-canvas-data">${jsonForScript({tree:canvasBundle.tree,themeOptions:canvasBundle.themeOptions,preview:canvasBundle.preview,pathname:canvasBundle.pathname})}</script>${script}${CANVAS_RUNTIME.replace("__VELLOO_CANVAS_BUNDLE_URL__",JSON.stringify(canvasBundle.url))}</script>`:"",
|
|
1221
|
+
`;function buildDocument(opts){let{viewport,bodyHtml,snapshotCss,themeCss,adapterCss,customCss,googleFonts,baseHref,title="Velloo design",includeRuntime=!0,dark,liveBundleUrl,canvasBundle,selectionRing,scriptNonce,hostStylesheets}=opts,script=scriptNonce?`<script nonce="${escapeHtml(scriptNonce)}">`:"<script>",runtime=includeRuntime?`${script}${IFRAME_RUNTIME}</script>`:"",live=liveBundleUrl?`${script}${LIVE_RUNTIME.replace("__VELLOO_LIVE_BUNDLE_URL__",JSON.stringify(liveBundleUrl))}</script>`:"",canvas=canvasBundle?`<script type="application/json" id="velloo-canvas-data">${jsonForScript({tree:canvasBundle.tree,themeOptions:canvasBundle.themeOptions,preview:canvasBundle.preview,pathname:canvasBundle.pathname})}</script>${script}${CANVAS_RUNTIME.replace("__VELLOO_CANVAS_BUNDLE_URL__",JSON.stringify(canvasBundle.url))}</script>`:"",hostStyles=(hostStylesheets??[]).map((path)=>{let href=path.startsWith("/")?`${HOST_FILES_PREFIX}${path}`:path;return`
|
|
1222
|
+
<link rel="stylesheet" href="${escapeHtml(href)}" ${HOST_STYLESHEET_ATTRIBUTE}="${escapeHtml(path)}" />`}).join(""),body=canvasBundle?`<div id="velloo-ssr">${bodyHtml}</div>`:bodyHtml,fontLinks=googleFonts&&googleFonts.length>0?`
|
|
1203
1223
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
1204
1224
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
1205
1225
|
<link rel="stylesheet" href="${escapeHtml(`https://fonts.googleapis.com/css2?${googleFonts.map((f)=>`family=${sanitizeGoogleFontSpec(f)}`).join("&")}&display=swap`)}" />`:"",adapterStyle=adapterCss&&adapterCss.trim()!==""?`
|
|
@@ -1210,15 +1230,15 @@ Learn more: https://react.dev/warnings/version-mismatch`));var $renderToReadable
|
|
|
1210
1230
|
<meta charset="utf-8" />${baseHref?`
|
|
1211
1231
|
<base href="${escapeHtml(baseHref)}" />`:""}
|
|
1212
1232
|
<meta name="viewport" content="width=${viewport.w}, initial-scale=1" />
|
|
1213
|
-
<title>${escapeHtml(title)}</title>${fontLinks}
|
|
1233
|
+
<title>${escapeHtml(title)}</title>${fontLinks}${hostStyles}
|
|
1214
1234
|
<style>${snapshotCss}</style>
|
|
1215
1235
|
<style>${neutralizeCssText(themeCss)}</style>${adapterStyle}${customStyle}
|
|
1216
1236
|
</head>
|
|
1217
1237
|
<body data-1p-ignore="true" data-lpignore="true" data-bwignore="true" data-form-type="other" autocomplete="off">${body}${runtime}${live}${canvas}</body>
|
|
1218
|
-
</html>`}function jsonForScript(value){return JSON.stringify(value).replace(/</g,"\\u003c")}function escapeHtml(s){return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var import_react2=__toESM(require_react_development(),1);var MAX_STAND_INS=8;class RenderGuardLimitError extends Error{failures;constructor(failures,options){super(`${failures.length} components failed to render \u2014 more than the ${MAX_STAND_INS} the guard will stand in for, so the screen was not drawn.`,options);this.name="RenderGuardLimitError",this.failures=failures}}function blame(error,registry){if(!(error instanceof Error)||typeof error.stack!=="string")return null;for(let match of error.stack.matchAll(/^\s*at ([A-Za-z0-9_$]+)/gm)){let name=match[1];if(name!==void 0&&Object.hasOwn(registry,name))return name}return null}function attr(props,name){let value=props[name];return typeof value==="string"?value:void 0}function standIn(componentId,reason,kind){let missing=kind==="missing";return function(props){return import_react2.createElement("div",{"data-velloo-render-error":componentId,"data-node-path":attr(props,"data-node-path"),"data-snippet-id":attr(props,"data-snippet-id"),"data-snippet-path":attr(props,"data-snippet-path"),title:reason,style:{border:"1px dashed currentColor",borderRadius:"6px",padding:"12px",...missing?{}:{opacity:0.7},font:"12px ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"pre-wrap"}},import_react2.createElement("span",{style:{display:"block",opacity:0.7}},missing?`${componentId} is not in this screen's library`:`${componentId} failed to render \u2014 ${reason}`),missing?props.children:null)}}function renderGuarded(registry,toHtml){let failures=[],active=registry;for(;;)try{return{html:toHtml(active),failures}}catch(error){let unknown=error instanceof UnknownComponentError,componentId=unknown?error.ref:blame(error,registry)
|
|
1238
|
+
</html>`}function jsonForScript(value){return JSON.stringify(value).replace(/</g,"\\u003c")}function escapeHtml(s){return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}var import_react2=__toESM(require_react_development(),1);var MAX_STAND_INS=8;class RenderGuardLimitError extends Error{failures;constructor(failures,options){super(`${failures.length} components failed to render \u2014 more than the ${MAX_STAND_INS} the guard will stand in for, so the screen was not drawn.`,options);this.name="RenderGuardLimitError",this.failures=failures}}function blame(error,registry){if(!(error instanceof Error)||typeof error.stack!=="string")return null;for(let match of error.stack.matchAll(/^\s*at ([A-Za-z0-9_$]+)/gm)){let name=match[1];if(name!==void 0&&Object.hasOwn(registry,name))return name}return null}function attr(props,name){let value=props[name];return typeof value==="string"?value:void 0}function standIn(componentId,reason,kind){let missing=kind==="missing";return function(props){return import_react2.createElement("div",{"data-velloo-render-error":componentId,"data-node-path":attr(props,"data-node-path"),"data-snippet-id":attr(props,"data-snippet-id"),"data-snippet-path":attr(props,"data-snippet-path"),"data-snippet-at":attr(props,"data-snippet-at"),title:reason,style:{border:"1px dashed currentColor",borderRadius:"6px",padding:"12px",...missing?{}:{opacity:0.7},font:"12px ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"pre-wrap"}},import_react2.createElement("span",{style:{display:"block",opacity:0.7}},missing?`${componentId} is not in this screen's library`:`${componentId} failed to render \u2014 ${reason}`),missing?props.children:null)}}function locate(registry,toHtml){let open=[];function Close({node}){let at=open.lastIndexOf(node);if(at>=0)open.splice(at,1);return null}let traced={};for(let[componentId,Component]of Object.entries(registry))traced[componentId]=function(props){let nodePath=attr(props,"data-node-path");if(nodePath===void 0)return import_react2.createElement(Component,props);let node={componentId,nodePath,snippetPath:attr(props,"data-snippet-path")};return open.push(node),import_react2.createElement(import_react2.Fragment,null,import_react2.createElement(Component,props),import_react2.createElement(Close,{node}))};try{toHtml(traced)}catch{return open.at(-1)??null}return null}function replaceAt(Component,at,replacement){return function(props){let here=attr(props,"data-node-path")===at.nodePath&&attr(props,"data-snippet-path")===at.snippetPath;return import_react2.createElement(here?replacement:Component,props)}}function renderGuarded(registry,toHtml){let failures=[],active=registry;for(;;)try{return{html:toHtml(active),failures}}catch(error){let unknown=error instanceof UnknownComponentError,reason=error instanceof Error?error.message:String(error),componentId=unknown?error.ref:blame(error,registry),node=componentId===null?locate(active,toHtml):null;if(componentId===null&&node===null)throw error;let failure=node?{componentId:node.componentId,reason,kind:"threw",nodePath:node.nodePath}:{componentId,reason,kind:unknown?"missing":"threw"};if(failures.some((seen)=>seen.componentId===failure.componentId&&seen.nodePath===failure.nodePath))throw error;if(failures.length>=MAX_STAND_INS)throw new RenderGuardLimitError([...failures,failure],{cause:error});failures.push(failure);let replacement=standIn(failure.componentId,reason,failure.kind),Original=active[failure.componentId];active={...active,[failure.componentId]:node&&Original?replaceAt(Original,node,replacement):replacement}}}var STATIC_REF="velloo:static";function collectSerializedRefs(tree){if(!tree)return[];let seen=new Set,visitValue=(value)=>{if(Array.isArray(value))for(let item of value)visitValue(item);else if(value&&typeof value==="object"&&"$node"in value)visit(value.$node)},visit=(node)=>{if(seen.add(node.ref),node.proxy)visit(node.proxy);for(let value of Object.values(node.props??{}))visitValue(value);for(let child of node.children??[])if(typeof child==="object")visit(child)};return visit(tree),[...seen]}function serializeTree(node,opts,path=[],stack=[],lockedPath=null,body=null){if(isSnippetInstance(node)){let snippet=opts.snippets?.get(node.$snippet);if(!snippet||stack.includes(snippet.id))return null;let resolved=resolveSnippetBody(node,snippet);return serializeTree(resolved,opts,path,[...stack,snippet.id],lockedPath??path,enterSnippet(body,snippet.id))}if(isParamRef(node))return null;if(!isComponentNode(node))return null;if(!isRepoNode(node)&&opts.staticFallback?.refs.has(node.$ref))return{ref:STATIC_REF,props:{html:opts.staticFallback.render(node,path,lockedPath)}};let{children:childrenProp,...rawProps}=node.props??{},repo=isRepoNode(node),restProps=repo?serializeSlotProps(rawProps,opts,path,stack,lockedPath):rawProps,dataNodePath=(lockedPath??path).join("."),children;if(Array.isArray(node.children)&&node.children.length>0)children=node.children.flatMap((child,i)=>Array.isArray(child)?child.map((c,j)=>serializeTree(c,opts,[...path,i,j],stack,lockedPath,null)):serializeTree(child,opts,[...path,i],stack,lockedPath,descend(body,i))).filter((c)=>c!==null);else if(childrenProp!==void 0)children=serializePropChildren(childrenProp,opts,path,stack,lockedPath);let proxy=repo?serializeProxy(node,opts,path,stack,lockedPath):null;return{ref:repo?repoKey(node.$repo):node.$ref,...repo?{repo:{...node.$repo,name:node.$ref}}:{},...proxy?{proxy}:{},props:{...restProps,"data-node-path":dataNodePath,...bodyAttributes(body)},...children&&children.length>0?{children}:{}}}function isNodeLike2(v){return typeof v==="object"&&v!==null&&!Array.isArray(v)&&(isComponentNode(v)||isSnippetInstance(v)||isParamRef(v))}function serializePropChildren(value,opts,path,stack,lockedPath){if(isNodeLike2(value)){let s=serializeTree(value,opts,path,stack,lockedPath);return s?[s]:void 0}if(Array.isArray(value)){let out=[];for(let item of value)if(isNodeLike2(item)){let s=serializeTree(item,opts,path,stack,lockedPath);if(s)out.push(s)}else if(typeof item==="string"||typeof item==="number")out.push(item);return out.length>0?out:void 0}if(typeof value==="string"||typeof value==="number")return[value];return}function serializeProxy(node,opts,path,stack,lockedPath){let snippet=node.$repo.proxy?opts.snippets?.get(node.$repo.proxy):void 0;if(!snippet||stack.includes(snippet.id))return null;try{return serializeTree(repoProxyInstance(node,snippet),opts,path,stack,lockedPath??path)}catch{return null}}function serializeSlotProps(props,opts,path,stack,lockedPath){let out={};for(let[name,value]of Object.entries(props))if(isNodeLike2(value)){let s=serializeTree(value,opts,path,stack,lockedPath??path);if(s)out[name]={$node:s}}else out[name]=value;return out}var COLOR_TOKEN_MAP={background:"--color-background",foreground:"--color-foreground",border:"--color-border",input:"--color-input",ring:"--color-ring",primary:["--color-primary","--color-primary-foreground"],secondary:["--color-secondary","--color-secondary-foreground"],muted:["--color-muted","--color-muted-foreground"],accent:["--color-accent","--color-accent-foreground"],destructive:["--color-destructive","--color-destructive-foreground"],card:["--color-card","--color-card-foreground"],popover:["--color-popover","--color-popover-foreground"]};function emit(varName,value,lines){if(typeof value==="number")lines.push(` ${varName}: ${value};`);else if(typeof value==="string")lines.push(` ${varName}: ${sanitizeCssTokenValue(value)};`)}var SEMANTIC_COLOR_VARS=new Set(Object.values(COLOR_TOKEN_MAP).flatMap((target)=>Array.isArray(target)?target:[target]));function emitPalette(palette,lines){if(!palette)return;for(let[name,value]of Object.entries(palette)){if(!isCssIdent(name))continue;if(SEMANTIC_COLOR_VARS.has(`--color-${name}`))continue;emit(`--color-${name}`,value,lines)}}function emitSpacing(spacing,lines){for(let[name,value]of spacingCssTokens(spacing))emit(`--spacing-${name}`,value,lines)}function emitShadows(shadows,lines){if(!shadows)return;for(let[name,value]of Object.entries(shadows)){if(!isCssIdent(name))continue;if(typeof value==="string"||typeof value==="number")emit(`--shadow-${name}`,value,lines)}}function emitContainer(container,lines){if(!container)return;let decls=[" width: 100%;"];if(container.center)decls.push(" margin-inline: auto;");if(container.padding)decls.push(` padding-inline: ${sanitizeCssTokenValue(container.padding)};`);if(container.maxWidth)decls.push(` max-width: ${sanitizeCssTokenValue(container.maxWidth)};`);lines.push("",".container {",...decls,"}")}function emitColorBlock(colors,lines){for(let[token,target]of Object.entries(COLOR_TOKEN_MAP)){let value=colors[token];if(value===void 0)continue;if(Array.isArray(target)){let[defaultVar,foregroundVar]=target;if(typeof value==="object")emit(defaultVar,value.DEFAULT,lines),emit(foregroundVar,value.foreground,lines);else emit(defaultVar,value,lines)}else if(typeof value==="string")emit(target,value,lines)}}function themeToCss(theme){let lines=[":root {"];emitColorBlock(theme.colors,lines),emitPalette(theme.palette,lines),emitSpacing(theme.spacing,lines),emitShadows(theme.shadows,lines);let fontFamily=theme.typography.fontFamily;if(fontFamily)for(let[role,stack]of Object.entries(fontFamily)){if(!isCssIdent(role))continue;emit(`--font-${role}`,stack,lines)}let radiusValue=theme.radius.md??theme.radius.lg??theme.radius.sm;if(radiusValue!==void 0){let formatted=typeof radiusValue==="number"?`${radiusValue}px`:sanitizeCssTokenValue(radiusValue);lines.push(` --radius: ${formatted};`)}if(lines.push("}"),theme.colorsDark||theme.paletteDark)lines.push(""),lines.push(".dark {"),emitColorBlock(theme.colorsDark??{},lines),emitPalette(theme.paletteDark,lines),lines.push("}");return emitContainer(theme.container,lines),[lines.join(`
|
|
1219
1239
|
`),typesetCss(theme.typography.typesets)].join(`
|
|
1220
1240
|
|
|
1221
|
-
`)}function renderBodyGuarded(screen,registry,snippets){return ScreenSchema.parse(screen),renderGuarded(registry,(active)=>$renderToString(buildRoot(screen.tree,{registry:active,snippets})))}async function renderScreen(screen,theme,options){ScreenSchema.parse(screen),ThemeSchema.parse(theme);let pass=options.renderPass,{html:bodyHtml,failures}=renderGuarded(options.registry,(active)=>{let element=buildRoot(screen.tree,{registry:active,snippets:options.snippets});return $renderToString(pass?pass.wrap(element):element)}),adapterCss=pass?pass.css(bodyHtml):void 0,themeCss=themeToCss(theme),canvasBundle=options.canvasBundle?(()=>{let staticRefs=options.canvasBundle.staticRefs??[],tree=serializeTree(screen.tree,{snippets:options.snippets,...staticRefs.length>0?{staticFallback:{refs:new Set(staticRefs),render:(node,path,lockedPath)=>$renderToString(buildTree(node,{registry:options.registry,snippets:options.snippets},path,[],lockedPath))}}:{}});return tree?{url:options.canvasBundle.url,tree,themeOptions:options.canvasBundle.themeOptions,preview:options.canvasBundle.preview,...screen.route?{pathname:screen.route}:{}}:void 0})():void 0;return{html:buildDocument({viewport:options.viewport,bodyHtml,snapshotCss:options.snapshotCss,themeCss,adapterCss,customCss:options.customCss,googleFonts:theme.typography.googleFonts,baseHref:options.baseHref,title:screen.name,dark:options.dark,liveBundleUrl:options.liveBundleUrl,canvasBundle,...options.includeRuntime!==void 0?{includeRuntime:options.includeRuntime}:{},...options.selectionRing!==void 0?{selectionRing:options.selectionRing}:{},...options.scriptNonce!==void 0?{scriptNonce:options.scriptNonce}:{}}),bodyHtml,themeCss,failures}}async function waitForLiveIslands(target,html){if(html.includes("data-live-node"))await target.waitForFunction(()=>window.__velloo_live_ready===!0,void 0,{timeout:6000}).catch(()=>{});if(html.includes("velloo-canvas-data"))await target.waitForFunction(()=>window.__velloo_canvas_ready===!0,void 0,{timeout:6000}).catch(()=>{})}async function waitForFonts(target){await target.evaluate(()=>Promise.race([document.fonts.ready,new Promise((r)=>setTimeout(r,2000))])).catch(()=>{})}async function settleForCapture(page,html,opts={}){if(await page.waitForLoadState("load",{timeout:5000}).catch(()=>{}),await waitForFonts(page),opts.liveIslands!==!1)await waitForLiveIslands(page,html)}async function screenshot(opts){return await screenshotInternal(opts),opts.outPath}async function screenshotBuffer(opts){let buf=await screenshotInternal(opts);if(!buf)throw Error("screenshotBuffer: no buffer returned (internal invariant)");return buf}async function openDocument(page,html){let base=/<base href="(http:\/\/(?:127\.0\.0\.1|localhost|\[::1\])(?::\d+)?)\/?"/.exec(html)?.[1];if(!base){await page.setContent(html,{waitUntil:"domcontentloaded",timeout:CAPTURE_TIMEOUT_MS});return}let url=`${base}/__velloo_capture/${crypto.randomUUID()}`;await page.route(url,(route)=>route.fulfill({status:200,contentType:"text/html; charset=utf-8",body:html})),await page.goto(url,{waitUntil:"domcontentloaded",timeout:CAPTURE_TIMEOUT_MS})}async function canvasMountState(page){return page.evaluate(()=>{let w=window;if(!document.getElementById("velloo-canvas-data"))return;let ssr=document.getElementById("velloo-ssr");return{mounted:Boolean(ssr&&ssr.style.display==="none"),...w.__velloo_canvas_bundle?{bundle:w.__velloo_canvas_bundle}:{},diagnostics:w.__velloo_canvas_diagnostics??[]}}).catch(()=>{return})}async function probeCanvasMount(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:1},async(context)=>{let page=await context.newPage(),consoleErrors=[];return page.on("console",(message)=>{if(message.type()==="error")consoleErrors.push(message.text().slice(0,400))}),page.on("pageerror",(error)=>consoleErrors.push(error.message.slice(0,400))),await openDocument(page,opts.html),await settleForCapture(page,opts.html),await page.waitForTimeout(150),{...await canvasMountState(page)??{mounted:!1,diagnostics:[]},consoleErrors:consoleErrors.slice(0,20)}})}async function captureScreenshot(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:opts.deviceScaleFactor??1},async(context)=>{let page=await context.newPage();await openDocument(page,opts.html),await settleForCapture(page,opts.html);let nodeRects=await page.$$eval("[data-node-path]",(els)=>els.map((el)=>{let r=el.getBoundingClientRect();return{path:el.dataset.nodePath??"",x:r.left,y:r.top,w:r.width,h:r.height}})),png=await page.screenshot({fullPage:opts.fullPage??!0,animations:"disabled",caret:"hide",timeout:CAPTURE_TIMEOUT_MS}),dom=opts.dom?await extractDom(page):void 0,canvas=await canvasMountState(page);return{png,nodeRects,...dom?{dom}:{},...canvas?{canvas}:{}}})}async function screenshotInternal(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:opts.deviceScaleFactor??1},async(context)=>{let page=await context.newPage();if(await openDocument(page,opts.html),await settleForCapture(page,opts.html),opts.clipSelector){let locator=page.locator(opts.clipSelector).first();if(await locator.count()===0)throw Error(`screenshot: no element matches selector ${opts.clipSelector}`);if(opts.outPath)return await locator.screenshot({path:opts.outPath,timeout:CAPTURE_TIMEOUT_MS}),null;return await locator.screenshot({timeout:CAPTURE_TIMEOUT_MS})}let fullPage=opts.fullPage??!0;if(opts.outPath)return await page.screenshot({path:opts.outPath,fullPage,timeout:CAPTURE_TIMEOUT_MS}),null;return await page.screenshot({fullPage,timeout:CAPTURE_TIMEOUT_MS})})}async function measureRendered(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:1},async(context)=>{let page=await context.newPage();return await openDocument(page,opts.html),await settleForCapture(page,opts.html),extractDom(page)})}function buildBoardComposite(frames,options={}){let maxWidth=options.maxWidth??1600,labelPad=options.labels?26:0,minX=Math.min(...frames.map(({frame})=>frame.x)),minY=Math.min(...frames.map(({frame})=>frame.y)),maxX=Math.max(...frames.map(({frame})=>frame.x+frame.w)),maxY=Math.max(...frames.map(({frame})=>frame.y+frame.h)),w=maxX-minX+48,h=maxY-minY+48+labelPad,scale=Math.min(1,maxWidth/w),outW=Math.max(1,Math.round(w*scale)),outH=Math.max(1,Math.round(h*scale)),esc=(s)=>s.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),pieces=frames.map(({frame,html,label})=>{let left=frame.x-minX+24,top=frame.y-minY+24+labelPad;return(options.labels&&label?`<div class="label" style="left:${left}px;top:${top-26}px">${esc(label)}</div>`:"")+`<iframe scrolling="no" srcdoc="${esc(html)}" style="position:absolute;left:${left}px;top:${top}px;width:${frame.w}px;height:${frame.h}px"></iframe>`}).join(`
|
|
1241
|
+
`)}function renderBody(screen,registry,snippets){return renderBodyGuarded(screen,registry,snippets).html}var CANVAS_ATTRIBUTE=/^data-(?:node-path|snippet-id|snippet-path|velloo-.*)$/;async function renderNativeHtml(screen,registry,snippets){return new HTMLRewriter().on('link[rel="preload"]',{element(element){element.remove()}}).on("*",{element(element){let param=element.getAttribute("data-velloo-param");if(param!==null){element.replace(`$${param}`);return}let html=element.namespaceURI==="http://www.w3.org/1999/xhtml";for(let[name,value]of[...element.attributes])if(CANVAS_ATTRIBUTE.test(name))element.removeAttribute(name);else if(html)element.removeAttribute(name),element.setAttribute(name,value)}}).transform(new Response(renderBody(screen,registry,snippets))).text()}function renderBodyGuarded(screen,registry,snippets){return ScreenSchema.parse(screen),renderGuarded(registry,(active)=>$renderToString(buildRoot(screen.tree,{registry:active,snippets})))}async function renderScreen(screen,theme,options){ScreenSchema.parse(screen),ThemeSchema.parse(theme);let pass=options.renderPass,{html:bodyHtml,failures}=renderGuarded(options.registry,(active)=>{let element=buildRoot(screen.tree,{registry:active,snippets:options.snippets});return $renderToString(pass?pass.wrap(element):element)}),adapterCss=pass?pass.css(bodyHtml):void 0,themeCss=themeToCss(theme),canvasBundle=options.canvasBundle?(()=>{let staticRefs=options.canvasBundle.staticRefs??[],tree=serializeTree(screen.tree,{snippets:options.snippets,...staticRefs.length>0?{staticFallback:{refs:new Set(staticRefs),render:(node,path,lockedPath)=>$renderToString(buildTree(node,{registry:options.registry,snippets:options.snippets},path,[],lockedPath))}}:{}});return tree?{url:options.canvasBundle.url,tree,themeOptions:options.canvasBundle.themeOptions,preview:options.canvasBundle.preview,...screen.route?{pathname:screen.route}:{}}:void 0})():void 0;return{html:buildDocument({viewport:options.viewport,bodyHtml,snapshotCss:options.snapshotCss,themeCss,adapterCss,customCss:options.customCss,googleFonts:theme.typography.googleFonts,baseHref:options.baseHref,title:screen.name,dark:options.dark,liveBundleUrl:options.liveBundleUrl,canvasBundle,...options.includeRuntime!==void 0?{includeRuntime:options.includeRuntime}:{},...options.selectionRing!==void 0?{selectionRing:options.selectionRing}:{},...options.scriptNonce!==void 0?{scriptNonce:options.scriptNonce}:{},...options.hostStylesheets?{hostStylesheets:options.hostStylesheets}:{}}),bodyHtml,themeCss,failures}}async function waitForLiveIslands(target,html){if(html.includes("data-live-node"))await target.waitForFunction(()=>window.__velloo_live_ready===!0,void 0,{timeout:6000}).catch(()=>{});if(html.includes("velloo-canvas-data"))await target.waitForFunction(()=>window.__velloo_canvas_ready===!0,void 0,{timeout:6000}).catch(()=>{})}async function missingHostStylesheets(target,html){if(!html.includes(HOST_STYLESHEET_ATTRIBUTE))return;return target.evaluate((attribute)=>[...document.querySelectorAll(`link[${attribute}]`)].flatMap((link)=>{let entry=performance.getEntriesByName(link.href)[0];if(!entry)return[];let status=entry.responseStatus??0,sameOrigin=new URL(link.href).origin===location.origin;return status>=400||sameOrigin&&status===0?[`${status||"blocked"} stylesheet ${link.getAttribute(attribute)}`]:[]}),HOST_STYLESHEET_ATTRIBUTE).catch(()=>{return})}async function waitForFonts(target){await target.evaluate(()=>Promise.race([document.fonts.ready,new Promise((r)=>setTimeout(r,2000))])).catch(()=>{})}async function settleForCapture(page,html,opts={}){if(await page.waitForLoadState("load",{timeout:5000}).catch(()=>{}),await waitForFonts(page),opts.liveIslands!==!1)await waitForLiveIslands(page,html)}async function screenshot(opts){return await screenshotInternal(opts),opts.outPath}async function screenshotBuffer(opts){let buf=await screenshotInternal(opts);if(!buf)throw Error("screenshotBuffer: no buffer returned (internal invariant)");return buf}async function openDocument(page,html){let base=/<base href="(http:\/\/(?:127\.0\.0\.1|localhost|\[::1\])(?::\d+)?)\/?"/.exec(html)?.[1];if(!base){await page.setContent(html,{waitUntil:"domcontentloaded",timeout:CAPTURE_TIMEOUT_MS});return}let url=`${base}/__velloo_capture/${crypto.randomUUID()}`;await page.route(url,(route)=>route.fulfill({status:200,contentType:"text/html; charset=utf-8",body:html})),await page.goto(url,{waitUntil:"domcontentloaded",timeout:CAPTURE_TIMEOUT_MS})}async function canvasMountState(page){return page.evaluate(()=>{let w=window;if(!document.getElementById("velloo-canvas-data"))return;let ssr=document.getElementById("velloo-ssr");return{mounted:Boolean(ssr&&ssr.style.display==="none"),...w.__velloo_canvas_bundle?{bundle:w.__velloo_canvas_bundle}:{},diagnostics:w.__velloo_canvas_diagnostics??[]}}).catch(()=>{return})}async function probeCanvasMount(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:1},async(context)=>{let page=await context.newPage(),consoleErrors=[];return page.on("console",(message)=>{if(message.type()==="error")consoleErrors.push(message.text().slice(0,400))}),page.on("pageerror",(error)=>consoleErrors.push(error.message.slice(0,400))),await openDocument(page,opts.html),await settleForCapture(page,opts.html),await page.waitForTimeout(150),{...await canvasMountState(page)??{mounted:!1,diagnostics:[]},consoleErrors:consoleErrors.slice(0,20)}})}async function captureScreenshot(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:opts.deviceScaleFactor??1},async(context)=>{let page=await context.newPage();await openDocument(page,opts.html),await settleForCapture(page,opts.html);let nodeRects=await page.$$eval("[data-node-path]",(els)=>els.map((el)=>{let r=el.getBoundingClientRect();return{path:el.dataset.nodePath??"",x:r.left,y:r.top,w:r.width,h:r.height}})),png=await page.screenshot({fullPage:opts.fullPage??!0,animations:"disabled",caret:"hide",timeout:CAPTURE_TIMEOUT_MS}),dom=opts.dom?await extractDom(page):void 0,canvas=await canvasMountState(page),missing=await missingHostStylesheets(page,opts.html);return{png,nodeRects,...dom?{dom}:{},...canvas?{canvas}:{},...missing?.length?{missingHostStylesheets:missing}:{}}})}async function screenshotInternal(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:opts.deviceScaleFactor??1},async(context)=>{let page=await context.newPage();if(await openDocument(page,opts.html),await settleForCapture(page,opts.html),opts.clipSelector){let locator=page.locator(opts.clipSelector).first();if(await locator.count()===0)throw Error(`screenshot: no element matches selector ${opts.clipSelector}`);if(opts.outPath)return await locator.screenshot({path:opts.outPath,timeout:CAPTURE_TIMEOUT_MS}),null;return await locator.screenshot({timeout:CAPTURE_TIMEOUT_MS})}let fullPage=opts.fullPage??!0;if(opts.outPath)return await page.screenshot({path:opts.outPath,fullPage,timeout:CAPTURE_TIMEOUT_MS}),null;return await page.screenshot({fullPage,timeout:CAPTURE_TIMEOUT_MS})})}async function measureRendered(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:1},async(context)=>{let page=await context.newPage();return await openDocument(page,opts.html),await settleForCapture(page,opts.html),extractDom(page)})}function buildBoardComposite(frames,options={}){let maxWidth=options.maxWidth??1600,labelPad=options.labels?26:0,minX=Math.min(...frames.map(({frame})=>frame.x)),minY=Math.min(...frames.map(({frame})=>frame.y)),maxX=Math.max(...frames.map(({frame})=>frame.x+frame.w)),maxY=Math.max(...frames.map(({frame})=>frame.y+frame.h)),w=maxX-minX+48,h=maxY-minY+48+labelPad,scale=Math.min(1,maxWidth/w),outW=Math.max(1,Math.round(w*scale)),outH=Math.max(1,Math.round(h*scale)),esc=(s)=>s.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),pieces=frames.map(({frame,html,label})=>{let left=frame.x-minX+24,top=frame.y-minY+24+labelPad;return(options.labels&&label?`<div class="label" style="left:${left}px;top:${top-26}px">${esc(label)}</div>`:"")+`<iframe scrolling="no" srcdoc="${esc(html)}" style="position:absolute;left:${left}px;top:${top}px;width:${frame.w}px;height:${frame.h}px"></iframe>`}).join(`
|
|
1222
1242
|
`);return{html:`<!doctype html>
|
|
1223
1243
|
<html><head><meta charset="utf-8"><style>
|
|
1224
1244
|
*{box-sizing:border-box}
|
|
@@ -1270,4 +1290,4 @@ for (let i = 0; i < ${pages.length}; i++) {
|
|
|
1270
1290
|
f.addEventListener("load", () => { f.dataset.ready = "1"; });
|
|
1271
1291
|
}
|
|
1272
1292
|
</script>
|
|
1273
|
-
</body></html>`}async function captureUrlScreenshot(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:opts.deviceScaleFactor??1,...opts.dark?{colorScheme:"dark"}:{},...opts.storageStatePath?{storageState:opts.storageStatePath}:{}},async(context)=>{if(opts.cookies&&opts.cookies.length>0)await context.addCookies(opts.cookies.map((cookie)=>({name:cookie.name,value:cookie.value,...cookie.url!==void 0?{url:cookie.url}:{},...cookie.domain!==void 0?{domain:cookie.domain}:{},...cookie.path!==void 0?{path:cookie.path}:{}})));if(opts.localStorage&&Object.keys(opts.localStorage).length>0)await context.addInitScript((entries)=>{try{for(let[k,v]of entries)localStorage.setItem(k,v)}catch{}},Object.entries(opts.localStorage));if(opts.dark)await context.addInitScript(()=>{try{localStorage.setItem("theme","dark")}catch{}});let page=await context.newPage();if(await page.goto(opts.url,{waitUntil:"domcontentloaded",timeout:15000}),opts.dark)await page.evaluate(()=>{let el=document.documentElement;el.classList.add("dark"),el.setAttribute("data-theme","dark"),el.style.colorScheme="dark"}).catch(()=>{});await page.waitForLoadState("networkidle",{timeout:
|
|
1293
|
+
</body></html>`}async function captureUrlScreenshot(opts){return withContext({viewport:{width:opts.viewport.w,height:opts.viewport.h},deviceScaleFactor:opts.deviceScaleFactor??1,...opts.dark?{colorScheme:"dark"}:{},...opts.storageStatePath?{storageState:opts.storageStatePath}:{}},async(context)=>{if(opts.cookies&&opts.cookies.length>0)await context.addCookies(opts.cookies.map((cookie)=>({name:cookie.name,value:cookie.value,...cookie.url!==void 0?{url:cookie.url}:{},...cookie.domain!==void 0?{domain:cookie.domain}:{},...cookie.path!==void 0?{path:cookie.path}:{}})));if(opts.localStorage&&Object.keys(opts.localStorage).length>0)await context.addInitScript((entries)=>{try{for(let[k,v]of entries)localStorage.setItem(k,v)}catch{}},Object.entries(opts.localStorage));if(opts.dark)await context.addInitScript(()=>{try{localStorage.setItem("theme","dark")}catch{}});let page=await context.newPage();if(await page.goto(opts.url,{waitUntil:"domcontentloaded",timeout:15000}),opts.dark)await page.evaluate(()=>{let el=document.documentElement;el.classList.add("dark"),el.setAttribute("data-theme","dark"),el.style.colorScheme="dark"}).catch(()=>{});let settleMs=opts.settleTimeoutMs??8000,settleStart=Date.now();await page.waitForLoadState("networkidle",{timeout:settleMs}).catch(()=>{});let stillLoading=await page.waitForFunction(()=>{let shown=(el)=>el.getClientRects().length>0&&getComputedStyle(el).visibility!=="hidden";for(let el of document.querySelectorAll('[aria-busy="true"]'))if(shown(el))return!1;for(let el of document.body?.querySelectorAll("*")??[]){if(el.childElementCount>0)continue;if(/^\s*loading[^a-z0-9]*$/i.test(el.textContent??"")&&shown(el))return!1}return!0},void 0,{timeout:Math.max(1000,settleMs-(Date.now()-settleStart)),polling:100}).then(()=>!1).catch(()=>!0),finalUrl=page.url(),authWall=await page.locator('input[type="password"]').count().then((n)=>n>0).catch(()=>!1),pageError=stillLoading?"the target was still showing a loading state when it was captured \u2014 its data had not arrived, so the diff isn't about your design. Pass a higher settleTimeoutMs":await page.evaluate(()=>{if(document.querySelector("nextjs-portal, [data-nextjs-dialog], #__next-build-error, vite-error-overlay"))return"the target app is showing a dev error overlay \u2014 it's throwing, so the diff isn't about your design";let txt=(document.body?.innerText??"").trim();if(txt.length===0)return"the target captured as a blank page (no visible text)";let m=txt.match(/Unhandled Runtime Error|Application error: a (?:client|server)-side exception|Internal Server Error|This page (?:could not be|isn't) found|Failed to compile|\b(?:Type|Syntax|Reference)Error:/i);return m?`the target looks like an error page ("${m[0]}")`:null}).catch(()=>null),png=await page.screenshot({fullPage:opts.fullPage??!0,animations:"disabled",caret:"hide",timeout:CAPTURE_TIMEOUT_MS}),dom=opts.dom?await extractDom(page).catch(()=>{return}):void 0;return{png,finalUrl,authWall,pageError,...dom?{dom}:{}}})}var LOGIN_PATH=/\/(login|signin|sign-in|auth|authenticate|account\/login|users\/sign_in)(\/|$)/i;function classifyCapture(requested,finalUrl){try{let norm=(u)=>u.origin+u.pathname.replace(/\/+$/,""),reqUrl=new URL(requested),finUrl=new URL(finalUrl);return{redirected:norm(reqUrl)!==norm(finUrl),finalLooksLikeLogin:LOGIN_PATH.test(finUrl.pathname),requestedLooksLikeLogin:LOGIN_PATH.test(reqUrl.pathname)}}catch{return{redirected:requested!==finalUrl,finalLooksLikeLogin:LOGIN_PATH.test(finalUrl),requestedLooksLikeLogin:LOGIN_PATH.test(requested)}}}export{require_react_development,buildBoardComposite,CHROMIUM_INSTALL_ARGV,CHROMIUM_INSTALL_CMD,CHROMIUM_FULL_INSTALL_ARGV,CHROMIUM_DEPS_INSTALL_ARGV,CHROMIUM_DEPS_INSTALL_CMD,BrowserMissingError,chromiumExecutable,MAX_CONCURRENT_RENDERS,closePooledBrowser,isCaptureTimeout,capturesDir,sessionStatePath,captureDir,listCaptures,readCaptureManifest,deleteCapture,isSafeCaptureId,isSafeCaptureFile,diffPngs,downscalePng,resizePng,pngSize,cropPng,sideBySidePng,unionRegion,HeadedBrowserMissingError,startCaptureSession,resolveSnippetBody,resolveSnippetBodyForEdit,snippetParamPlaceholder,HOST_FILES_PREFIX,RENDER_ERROR_META,screenshotCompareBuffer,pdfPageBuffer,pdfDeckBuffer,RenderGuardLimitError,require_react_dom,collectSerializedRefs,serializeTree,themeToCss,renderNativeHtml,renderBodyGuarded,renderScreen,screenshot,screenshotBuffer,probeCanvasMount,captureScreenshot,measureRendered,captureUrlScreenshot,classifyCapture};
|