@chromatic-com/playwright 0.12.1 → 0.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
16
16
|
var y__default = /*#__PURE__*/_interopDefault(y);
|
|
17
17
|
|
|
18
18
|
const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('out.js', document.baseURI).href)));
|
|
19
|
-
var da=Object.defineProperty;var s=(t,a)=>da(t,"name",{value:a,configurable:!0}),G=(t=>typeof require$1<"u"?require$1:typeof Proxy<"u"?new Proxy(t,{get:(a,i)=>(typeof require$1<"u"?require$1:a)[i]}):t)(function(t){if(typeof require$1<"u")return require$1.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var fa=Object.create,U=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=Object.getOwnPropertyNames,ba=Object.getPrototypeOf,wa=Object.prototype.hasOwnProperty,ka=s((t,a,i)=>a in t?U(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i,"gi"),d=s((t,a)=>U(t,"name",{value:a,configurable:!0}),"o"),C=s((t,a)=>()=>(a||t((a={exports:{}}).exports,a),a.exports),"j"),ya=s((t,a,i,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let p of ga(a))!wa.call(t,p)&&p!==i&&U(t,p,{get:()=>a[p],enumerable:!(e=ha(a,p))||e.enumerable});return t},"hi"),Y=s((t,a,i)=>(i=t!=null?fa(ba(t)):{},ya(a||!t||!t.__esModule?U(i,"default",{value:t,enumerable:!0}):i,t)),"W"),b=s((t,a,i)=>(ka(t,typeof a!="symbol"?a+"":a,i),i),"m"),ja=C((t,a)=>{function i(){this._types=Object.create(null),this._extensions=Object.create(null);for(let e=0;e<arguments.length;e++)this.define(arguments[e]);this.define=this.define.bind(this),this.getType=this.getType.bind(this),this.getExtension=this.getExtension.bind(this);}s(i,"C"),d(i,"Mime"),i.prototype.define=function(e,p){for(let n in e){let c=e[n].map(function(o){return o.toLowerCase()});n=n.toLowerCase();for(let o=0;o<c.length;o++){let l=c[o];if(l[0]!=="*"){if(!p&&l in this._types)throw new Error('Attempt to change mapping for "'+l+'" extension from "'+this._types[l]+'" to "'+n+'". Pass `force=true` to allow this, otherwise remove "'+l+'" from the list of extensions for "'+n+'".');this._types[l]=n;}}if(p||!this._extensions[n]){let o=c[0];this._extensions[n]=o[0]!=="*"?o:o.substr(1);}}},i.prototype.getType=function(e){e=String(e);let p=e.replace(/^.*[/\\]/,"").toLowerCase(),n=p.replace(/^.*\./,"").toLowerCase(),c=p.length<e.length;return (n.length<p.length-1||!c)&&this._types[n]||null},i.prototype.getExtension=function(e){return e=/^\s*([^;\s]*)/.test(e)&&RegExp.$1,e&&this._extensions[e.toLowerCase()]||null},a.exports=i;}),za=C((t,a)=>{a.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["es","ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avif":["avif"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]};}),Sa=C((t,a)=>{a.exports={"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.sap.vds":["vds"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]};}),qa=C((t,a)=>{var i=ja();a.exports=new i(za(),Sa());}),Ea=C(t=>{var a=/\s*([^,]\S*[^,](?:\s+[^,]+)?)\s*(?:,|$)/,i=d((o,l,r)=>{if(o[r]=o[r]||{},o[r][l])throw new Error(`No more than one image candidate is allowed for a given descriptor: ${l}${r}`);o[r][l]=!0;},"duplicateDescriptorCheck"),e=d(o=>{if(o.fallback)throw new Error("Only one fallback image candidate is allowed");if(o.x[1])throw new Error("A fallback image is equivalent to a 1x descriptor, providing both is invalid.");o.fallback=!0;},"fallbackDescriptorDuplicateCheck"),p=d((o,l)=>{if(l.length===0)e(o);else if(l.length>1)throw new Error(`Image candidate may have no more than one descriptor, found ${l.length}: ${l.join(" ")}`)},"descriptorCountCheck"),n=d((o,l,r)=>{if(Number.isNaN(o))throw new TypeError(`${r||o} is not a valid number`);switch(l){case"w":{if(o<=0)throw new Error("Width descriptor must be greater than zero");if(!Number.isInteger(o))throw new TypeError("Width descriptor must be an integer");break}case"x":{if(o<=0)throw new Error("Pixel density descriptor must be greater than zero");break}case"h":throw new Error("Height descriptor is no longer allowed");default:throw new Error(`Invalid srcset descriptor: ${r}`)}},"validDescriptorCheck");t.parse=(o,{strict:l=!1}={})=>{let r=l?{}:void 0;return o.split(a).filter((m,f)=>f%2===1).map(m=>{let[f,...g]=m.trim().split(/\s+/),v={url:f};l&&p(r,g);for(let u of g){let x=u[u.length-1],h=Number.parseFloat(u.slice(0,-1));switch(l&&(n(h,x,u),i(r,h,x)),x){case"w":{v.width=h;break}case"h":{v.height=h;break}case"x":{v.density=h;break}}}return v})};var c=new Set(["width","height","density"]);t.stringify=(o,{strict:l=!1}={})=>{let r=l?{}:null;return o.map(m=>{if(!m.url){if(l)throw new Error("URL is required");return ""}let f=Object.keys(m).filter(v=>c.has(v));l&&p(r,f);let g=[m.url];for(let v of f){let u=m[v],x;switch(v){case"width":{x="w";break}case"height":{x="h";break}case"density":{x="x";break}}let h=`${u}${x}`;l&&(n(u,x),i(r,u,x)),g.push(h);}return g.join(" ")}).join(", ")};}),w=process.env.LOG?console:{log:(...t)=>{},warn:(...t)=>{}},E,X=(E=class{constructor(a,i,e){b(this,"archive",{}),b(this,"client"),b(this,"assetDomains"),b(this,"firstUrl"),b(this,"httpCredentials"),this.client=a,this.assetDomains=(i||[]).map(p=>`https://${p}`),this.httpCredentials=e;}async watch(){this.client.on("Fetch.requestPaused",this.requestPaused.bind(this)),this.client.on("Fetch.authRequired",this.authRequired.bind(this)),await this.client.send("Fetch.enable",{handleAuthRequests:!0});}async clientSend(a,i,e){try{return await this.client.send(i,e)}catch(p){return w.log("Client error",a.url,p),this.archive[a.url]={error:p},null}}async authRequired({requestId:a,request:i}){await this.clientSend(i,"Fetch.continueWithAuth",{requestId:a,authChallengeResponse:{response:"ProvideCredentials",...this.httpCredentials}});}async requestPaused({requestId:a,request:i,responseStatusCode:e,responseStatusText:p,responseErrorReason:n,responseHeaders:c}){if(!i.method.match(/get/i)){await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}if(e===304){await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}let o=new URL(i.url);this.firstUrl??(this.firstUrl=o);let l=o.origin===this.firstUrl.origin||this.assetDomains.includes(o.origin);if(w.log("requestPaused",o.toString(),e||n?"response":"request",this.firstUrl.toString(),l),n){w.log(`Got response error: ${n}`),await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}if(e){await this.handleSuccessfulResponse({request:i,requestId:a,responseStatusCode:e,responseStatusText:p,responseHeaders:c},o,l);return}await this.clientSend(i,"Fetch.continueRequest",{requestId:a,interceptResponse:!0});}async handleSuccessfulResponse(a,i,e){let{request:p,requestId:n,responseStatusCode:c,responseStatusText:o,responseHeaders:l}=a;if([301,302,307,308].includes(c)){await this.clientSend(p,"Fetch.continueRequest",{requestId:n,interceptResponse:!0});return}let r=await this.clientSend(p,"Fetch.getResponseBody",{requestId:n});if(r===null)return;let{body:m,base64Encoded:f}=r,g=l.find(({name:u})=>u.toLowerCase()==="content-type"),v=i.toString()===this.firstUrl.toString();e&&!v&&(this.archive[p.url]={statusCode:c,statusText:o,body:Buffer.from(m,f?"base64":"utf8"),contentType:g?.value}),await this.clientSend(p,"Fetch.continueRequest",{requestId:n});}},s(E,"P"),E);d(X,"ResourceArchiver");var Z=X;function L(t){fs.existsSync(t)||fs.mkdirSync(t,{recursive:!0});}s(L,"O");d(L,"ensureDir");async function P(t,a){return L(y__default.default.dirname(t)),promises.writeFile(t,a,{mode:511})}s(P,"F");d(P,"outputFile");async function O(t,a){return P(t,JSON.stringify(a))}s(O,"U");d(O,"outputJSONFile");function aa(t){return crypto.createHash("shake256",{outputLength:2}).update(t).digest("hex")}s(aa,"zi");d(aa,"hash");var _=255;function A(t,a=_){let i=new TextEncoder,e=new TextDecoder,p=t.split("/"),n=p.pop();if(i.encode(n).byteLength<=a)return t;let c=aa(n),[o,...l]=n.split("."),r=i.encode(o),m=l.join("."),f=m.length===0?0:i.encode(m).byteLength+1,g=i.encode(c).byteLength+f,v=r.slice(0,a-g),u=[`${e.decode(v)}${c}`,m].filter(Boolean).join(".");return [...p,u].join("/")}s(A,"T");d(A,"truncateFileName");var Na=Y(qa()),Ra=["/index.json","/iframe.html","/index.html","/main.iframe.bundle.js","/runtime~main.iframe.bundle.js","/sb-preview/runtime.js"],N,ia=(N=class{constructor(a,i,e){b(this,"url"),b(this,"response"),b(this,"shortenedFileNameLength"),b(this,"pageUrl"),this.url=new URL(a),this.response=i,this.shortenedFileNameLength=250,this.pageUrl=new URL(e);}originalSrc(){return this.url.toString()}toFileSystemPath(){let a=this.url.pathname;return a=this.preserveExternalDomain(),a=this.ensureNonDirectory(a),a=this.encodeQueryString(a),a=this.truncateFileName(a),a=this.removeSpecialChars(a),a=this.renameReservedPathnames(a),a=this.addExtension(a),a}ensureNonDirectory(a){return a.endsWith("/")?`${a}index.html`:a}encodeQueryString(a){let i=this.url.search;if(!i)return a;let e=this.hash(i);return `${a}-${e}`}truncateFileName(a){let i=a.split("/"),e=[];return i.forEach((p,n)=>{let c=p;p.length>this.shortenedFileNameLength&&(c=p.substring(0,this.shortenedFileNameLength),w.log(`Chunk of filename '${p}' is too long. Shortening to '${c}'`)),e.push(c);}),`${a.startsWith("/")?"/":""}${y__default.default.join(...e)}`}removeSpecialChars(a){return a.replace(/[%]/g,"")}addExtension(a){if("error"in this.response)return a;let i=a;if(!y__default.default.extname(i)){let e=Na.default.getExtension(this.response.contentType)||"tmp";i=`${a}.${e}`;}return i}preserveExternalDomain(){return this.url.origin===this.pageUrl.origin?this.url.pathname:`/${encodeURIComponent(this.url.host)}/${this.url.pathname}`}hash(a){return crypto.createHash("md5").update(a).digest("hex")}renameReservedPathnames(a){if(this.url.origin===this.pageUrl.origin&&Ra.includes(a)){let i=this.hash(this.url.toString()),e=y__default.default.basename(a,y__default.default.extname(a));return `${y__default.default.dirname(a)}/${e}-${i}${y__default.default.extname(a)}`}return a}},s(N,"D"),N);d(ia,"ArchiveFile");var Ca=ia,J=Y(Ea()),Ta=/url\((?!['"]?(?:data):)['"]?([^'")]*)['"]?\)/gi,R,ta=(R=class{constructor(a){if(b(this,"snapshot"),Buffer.isBuffer(a)){let i=a.toString("utf-8");this.snapshot=JSON.parse(i);}else this.snapshot=JSON.parse(a);}async mapAssetPaths(a){let i=await this.mapNode(this.snapshot,a);return JSON.stringify(i)}async mapNode(a,i){return a=this.mapNodeAttributes(a,i),a=this.mapTextElement(a,i),"childNodes"in a&&(a.childNodes=await Promise.all(a.childNodes.map(async e=>this.mapNode(e,i)))),a}mapNodeAttributes(a,i){if(a.type===rrwebSnapshot.NodeType.Element){if(a.attributes.src){let e=a.attributes.src;i.has(e)&&(a.attributes.src=i.get(e));}if(a.attributes.style){let e=a.attributes.style,p=this.mapCssUrls(e,i);a.attributes.style=p;}if(a.attributes._cssText){let e=a.attributes._cssText,p=this.mapCssUrls(e,i);a.attributes._cssText=p;}if(["link","use"].includes(a.tagName)&&a.attributes.href){let e=a.attributes.href.split("#"),p=e[0];i.has(p)&&(e[0]=i.get(p),a.attributes.href=e.join("#"));}if(a.tagName==="img"&&a.attributes.srcset){let e=a.attributes.srcset,p=this.mapSrcsetUrls(e,i);p&&(a.attributes.src=p,delete a.attributes.srcset,delete a.attributes.sizes);}a.tagName==="picture"&&this.mapPictureElement(a,i);}return a}mapPictureElement(a,i){let e=a.childNodes.filter(this.isSourceElement).map(p=>J.default.parse(p.attributes?.srcset??"").map(n=>n.url)).flat().find(p=>i.has(p));if(e){a.childNodes=a.childNodes.filter(n=>!this.isSourceElement(n));let p=a.childNodes.find(n=>n.type===rrwebSnapshot.NodeType.Element&&n.tagName==="img");p&&p.attributes&&(p.attributes.src=i.get(e));}}isSourceElement(a){return a.type===rrwebSnapshot.NodeType.Element&&a.tagName==="source"}mapTextElement(a,i){if(a.type===rrwebSnapshot.NodeType.Text&&a.isStyle&&a.textContent){let e=this.mapCssUrls(a.textContent,i);a.textContent=e;}return a}mapCssUrls(a,i){return a.replace(Ta,(e,p)=>{let n=e;return i.has(p)&&(n=e.replace(p,i.get(p))),n})}mapSrcsetUrls(a,i){let e=J.default.parse(a),p;return e.forEach(n=>{i.has(n.url)&&(p=i.get(n.url));}),p}},s(R,"B"),R);d(ta,"DOMSnapshot");var $a=ta;function ea(t){return `w${t.width}h${t.height}`}s(ea,"H");d(ea,"viewportToString");function Pa(t){let a=t.match(/w(\d+)h(\d+)/);return {width:Number(a[1]),height:Number(a[2])}}s(Pa,"_i");d(Pa,"parseViewport");var F=d(t=>t.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),"sanitize"),Ua="snapshot.json";function D(t,a){let i=`${F(t)}-${F(a)}`,e=_-25;return A(i,e)}s(D,"L");d(D,"snapshotId");function pa(t,a){return [t,ea(a),Ua].join(".")}s(pa,"oi");d(pa,"snapshotFileName");var Oa="stories.json";function na(t){let a=[F(t),Oa].join("."),i=_-25;return A(a,i)}s(na,"si");d(na,"storiesFileName");function oa(t,a,i){return {title:t,stories:Object.keys(a).map(e=>({name:e,parameters:{server:{id:D(t,e)},chromatic:{...i}}}))}}s(oa,"ci");d(oa,"createStories");async function I(t,a,i,e){let{titlePath:p,outputDir:n,pageUrl:c,viewport:o}=t,l=p.map(x=>x.replace(/\.(ts|js|mjs|cjs|tsx|jsx|cjsx|coffee)$/,"").replace(/\.(spec|test|cy)$/,"")).join("/"),r=y.join(n,"chromatic-archives"),m=y.join(r,"archive");await L(m),w.log(`Writing test results for "${l}"`);let f=new Map;await Promise.all(Object.entries(i).map(async([x,h])=>{if("error"in h)return;let j=new Ca(x,h,c),z=j.originalSrc(),q=j.toFileSystemPath();z!==q&&f.set(z,q),await P(y.join(m,q),h.body);})),await Promise.all(await Object.entries(a).map(async([x,h])=>{let j=await new $a(h).mapAssetPaths(f),z=pa(D(l,x),o);await P(y.join(m,z),j);}));let g=na(l),v=oa(l,a,e);await O(y.join(r,g),v);let u=Object.entries(i).filter(([,x])=>"error"in x);u.length>0&&(w.log(`Encountered ${u.length} errors archiving resources, writing to 'errors.json'`),await O(y.join(m,"errors.json"),{errors:Object.fromEntries(u)}));}s(I,"$a");d(I,"writeTestResult");var Fa=new analyticsNode.Analytics({writeKey:process.env.SEGMENT_WRITE_KEY||"cwWhBWso2gwzyenW29CnCp30Kjz4DogE"}),La="@chromaui/test-archiver run";function B(t,a){Fa.track({userId:La,event:t,properties:a});}s(B,"mi");d(B,"track");var V=!1;function M(t={}){V||(B("run",t),V=!0);}s(M,"Pa");d(M,"trackRun");var Q=!1;function W(t={}){Q||(B("complete",t),Q=!0);}s(W,"Oa");d(W,"trackComplete");var T=1e4;var Da=fs.readFileSync(G.resolve("@chromaui/rrweb-snapshot"),"utf8"),k=new Map;async function H(t,a,i){let e,p;if(typeof a=="string"){if(!i)throw new Error("Incorrect usage");p=i.testId,e=a;}else p=a.testId,e=`Snapshot #${k.has(p)?k.get(p).size+1:1}`;t.on("console",o=>{w.log(`CONSOLE: "${o.text()}"`);});let n=await t.evaluate(tsDedent.dedent`
|
|
19
|
+
var da=Object.defineProperty;var s=(t,a)=>da(t,"name",{value:a,configurable:!0}),G=(t=>typeof require$1<"u"?require$1:typeof Proxy<"u"?new Proxy(t,{get:(a,i)=>(typeof require$1<"u"?require$1:a)[i]}):t)(function(t){if(typeof require$1<"u")return require$1.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var fa=Object.create,U=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=Object.getOwnPropertyNames,ba=Object.getPrototypeOf,wa=Object.prototype.hasOwnProperty,ka=s((t,a,i)=>a in t?U(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i,"gi"),d=s((t,a)=>U(t,"name",{value:a,configurable:!0}),"o"),C=s((t,a)=>()=>(a||t((a={exports:{}}).exports,a),a.exports),"j"),ya=s((t,a,i,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let p of ga(a))!wa.call(t,p)&&p!==i&&U(t,p,{get:()=>a[p],enumerable:!(e=ha(a,p))||e.enumerable});return t},"hi"),Y=s((t,a,i)=>(i=t!=null?fa(ba(t)):{},ya(a||!t||!t.__esModule?U(i,"default",{value:t,enumerable:!0}):i,t)),"W"),b=s((t,a,i)=>(ka(t,typeof a!="symbol"?a+"":a,i),i),"m"),ja=C((t,a)=>{function i(){this._types=Object.create(null),this._extensions=Object.create(null);for(let e=0;e<arguments.length;e++)this.define(arguments[e]);this.define=this.define.bind(this),this.getType=this.getType.bind(this),this.getExtension=this.getExtension.bind(this);}s(i,"C"),d(i,"Mime"),i.prototype.define=function(e,p){for(let n in e){let c=e[n].map(function(o){return o.toLowerCase()});n=n.toLowerCase();for(let o=0;o<c.length;o++){let l=c[o];if(l[0]!=="*"){if(!p&&l in this._types)throw new Error('Attempt to change mapping for "'+l+'" extension from "'+this._types[l]+'" to "'+n+'". Pass `force=true` to allow this, otherwise remove "'+l+'" from the list of extensions for "'+n+'".');this._types[l]=n;}}if(p||!this._extensions[n]){let o=c[0];this._extensions[n]=o[0]!=="*"?o:o.substr(1);}}},i.prototype.getType=function(e){e=String(e);let p=e.replace(/^.*[/\\]/,"").toLowerCase(),n=p.replace(/^.*\./,"").toLowerCase(),c=p.length<e.length;return (n.length<p.length-1||!c)&&this._types[n]||null},i.prototype.getExtension=function(e){return e=/^\s*([^;\s]*)/.test(e)&&RegExp.$1,e&&this._extensions[e.toLowerCase()]||null},a.exports=i;}),za=C((t,a)=>{a.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["es","ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avif":["avif"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]};}),Sa=C((t,a)=>{a.exports={"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.sap.vds":["vds"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]};}),qa=C((t,a)=>{var i=ja();a.exports=new i(za(),Sa());}),Ea=C(t=>{var a=/\s*([^,]\S*[^,](?:\s+[^,]+)?)\s*(?:,|$)/,i=d((o,l,r)=>{if(o[r]=o[r]||{},o[r][l])throw new Error(`No more than one image candidate is allowed for a given descriptor: ${l}${r}`);o[r][l]=!0;},"duplicateDescriptorCheck"),e=d(o=>{if(o.fallback)throw new Error("Only one fallback image candidate is allowed");if(o.x[1])throw new Error("A fallback image is equivalent to a 1x descriptor, providing both is invalid.");o.fallback=!0;},"fallbackDescriptorDuplicateCheck"),p=d((o,l)=>{if(l.length===0)e(o);else if(l.length>1)throw new Error(`Image candidate may have no more than one descriptor, found ${l.length}: ${l.join(" ")}`)},"descriptorCountCheck"),n=d((o,l,r)=>{if(Number.isNaN(o))throw new TypeError(`${r||o} is not a valid number`);switch(l){case"w":{if(o<=0)throw new Error("Width descriptor must be greater than zero");if(!Number.isInteger(o))throw new TypeError("Width descriptor must be an integer");break}case"x":{if(o<=0)throw new Error("Pixel density descriptor must be greater than zero");break}case"h":throw new Error("Height descriptor is no longer allowed");default:throw new Error(`Invalid srcset descriptor: ${r}`)}},"validDescriptorCheck");t.parse=(o,{strict:l=!1}={})=>{let r=l?{}:void 0;return o.split(a).filter((m,f)=>f%2===1).map(m=>{let[f,...g]=m.trim().split(/\s+/),v={url:f};l&&p(r,g);for(let u of g){let x=u[u.length-1],h=Number.parseFloat(u.slice(0,-1));switch(l&&(n(h,x,u),i(r,h,x)),x){case"w":{v.width=h;break}case"h":{v.height=h;break}case"x":{v.density=h;break}}}return v})};var c=new Set(["width","height","density"]);t.stringify=(o,{strict:l=!1}={})=>{let r=l?{}:null;return o.map(m=>{if(!m.url){if(l)throw new Error("URL is required");return ""}let f=Object.keys(m).filter(v=>c.has(v));l&&p(r,f);let g=[m.url];for(let v of f){let u=m[v],x;switch(v){case"width":{x="w";break}case"height":{x="h";break}case"density":{x="x";break}}let h=`${u}${x}`;l&&(n(u,x),i(r,u,x)),g.push(h);}return g.join(" ")}).join(", ")};}),w=process.env.LOG?console:{log:(...t)=>{},warn:(...t)=>{}},E,X=(E=class{constructor(a,i,e){b(this,"archive",{}),b(this,"client"),b(this,"assetDomains"),b(this,"firstUrl"),b(this,"httpCredentials"),this.client=a,this.assetDomains=(i||[]).map(p=>`https://${p}`),this.httpCredentials=e;}async watch(){this.client.on("Fetch.requestPaused",this.requestPaused.bind(this)),this.client.on("Fetch.authRequired",this.authRequired.bind(this)),await this.client.send("Fetch.enable",{handleAuthRequests:!0});}async clientSend(a,i,e){try{return await this.client.send(i,e)}catch(p){return w.log("Client error",a.url,p),this.archive[a.url]={error:p},null}}async authRequired({requestId:a,request:i}){await this.clientSend(i,"Fetch.continueWithAuth",{requestId:a,authChallengeResponse:{response:"ProvideCredentials",...this.httpCredentials}});}async requestPaused({requestId:a,request:i,responseStatusCode:e,responseStatusText:p,responseErrorReason:n,responseHeaders:c}){if(!i.method.match(/get/i)){await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}if(e===304){await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}let o=new URL(i.url);this.firstUrl??(this.firstUrl=o);let l=o.origin===this.firstUrl.origin||this.assetDomains.includes(o.origin);if(w.log("requestPaused",o.toString(),e||n?"response":"request",this.firstUrl.toString(),l),n){w.log(`Got response error: ${n}`),await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}if(e){await this.handleSuccessfulResponse({request:i,requestId:a,responseStatusCode:e,responseStatusText:p,responseHeaders:c},o,l);return}await this.clientSend(i,"Fetch.continueRequest",{requestId:a,interceptResponse:!0});}async handleSuccessfulResponse(a,i,e){let{request:p,requestId:n,responseStatusCode:c,responseStatusText:o,responseHeaders:l}=a;if([301,302,303,307,308].includes(c)){await this.clientSend(p,"Fetch.continueRequest",{requestId:n,interceptResponse:!0});return}let r=await this.clientSend(p,"Fetch.getResponseBody",{requestId:n});if(r===null)return;let{body:m,base64Encoded:f}=r,g=l.find(({name:u})=>u.toLowerCase()==="content-type"),v=i.toString()===this.firstUrl.toString();e&&!v&&(this.archive[p.url]={statusCode:c,statusText:o,body:Buffer.from(m,f?"base64":"utf8"),contentType:g?.value}),await this.clientSend(p,"Fetch.continueRequest",{requestId:n});}},s(E,"P"),E);d(X,"ResourceArchiver");var Z=X;function L(t){fs.existsSync(t)||fs.mkdirSync(t,{recursive:!0});}s(L,"O");d(L,"ensureDir");async function P(t,a){return L(y__default.default.dirname(t)),promises.writeFile(t,a,{mode:511})}s(P,"F");d(P,"outputFile");async function O(t,a){return P(t,JSON.stringify(a))}s(O,"U");d(O,"outputJSONFile");function aa(t){return crypto.createHash("shake256",{outputLength:2}).update(t).digest("hex")}s(aa,"zi");d(aa,"hash");var _=255;function A(t,a=_){let i=new TextEncoder,e=new TextDecoder,p=t.split("/"),n=p.pop();if(i.encode(n).byteLength<=a)return t;let c=aa(n),[o,...l]=n.split("."),r=i.encode(o),m=l.join("."),f=m.length===0?0:i.encode(m).byteLength+1,g=i.encode(c).byteLength+f,v=r.slice(0,a-g),u=[`${e.decode(v)}${c}`,m].filter(Boolean).join(".");return [...p,u].join("/")}s(A,"T");d(A,"truncateFileName");var Na=Y(qa()),Ra=["/index.json","/iframe.html","/index.html","/main.iframe.bundle.js","/runtime~main.iframe.bundle.js","/sb-preview/runtime.js"],N,ia=(N=class{constructor(a,i,e){b(this,"url"),b(this,"response"),b(this,"shortenedFileNameLength"),b(this,"pageUrl"),this.url=new URL(a),this.response=i,this.shortenedFileNameLength=250,this.pageUrl=new URL(e);}originalSrc(){return this.url.toString()}toFileSystemPath(){let a=this.url.pathname;return a=this.preserveExternalDomain(),a=this.ensureNonDirectory(a),a=this.encodeQueryString(a),a=this.truncateFileName(a),a=this.removeSpecialChars(a),a=this.renameReservedPathnames(a),a=this.addExtension(a),a}ensureNonDirectory(a){return a.endsWith("/")?`${a}index.html`:a}encodeQueryString(a){let i=this.url.search;if(!i)return a;let e=this.hash(i);return `${a}-${e}`}truncateFileName(a){let i=a.split("/"),e=[];return i.forEach((p,n)=>{let c=p;p.length>this.shortenedFileNameLength&&(c=p.substring(0,this.shortenedFileNameLength),w.log(`Chunk of filename '${p}' is too long. Shortening to '${c}'`)),e.push(c);}),`${a.startsWith("/")?"/":""}${y__default.default.join(...e)}`}removeSpecialChars(a){return a.replace(/[%]/g,"")}addExtension(a){if("error"in this.response)return a;let i=a;if(!y__default.default.extname(i)){let e=Na.default.getExtension(this.response.contentType)||"tmp";i=`${a}.${e}`;}return i}preserveExternalDomain(){return this.url.origin===this.pageUrl.origin?this.url.pathname:`/${encodeURIComponent(this.url.host)}/${this.url.pathname}`}hash(a){return crypto.createHash("md5").update(a).digest("hex")}renameReservedPathnames(a){if(this.url.origin===this.pageUrl.origin&&Ra.includes(a)){let i=this.hash(this.url.toString()),e=y__default.default.basename(a,y__default.default.extname(a));return `${y__default.default.dirname(a)}/${e}-${i}${y__default.default.extname(a)}`}return a}},s(N,"D"),N);d(ia,"ArchiveFile");var Ca=ia,J=Y(Ea()),Ta=/url\((?!['"]?(?:data):)['"]?([^'")]*)['"]?\)/gi,R,ta=(R=class{constructor(a){if(b(this,"snapshot"),Buffer.isBuffer(a)){let i=a.toString("utf-8");this.snapshot=JSON.parse(i);}else this.snapshot=JSON.parse(a);}async mapAssetPaths(a){let i=await this.mapNode(this.snapshot,a);return JSON.stringify(i)}async mapNode(a,i){return a=this.mapNodeAttributes(a,i),a=this.mapTextElement(a,i),"childNodes"in a&&(a.childNodes=await Promise.all(a.childNodes.map(async e=>this.mapNode(e,i)))),a}mapNodeAttributes(a,i){if(a.type===rrwebSnapshot.NodeType.Element){if(a.attributes.src){let e=a.attributes.src;i.has(e)&&(a.attributes.src=i.get(e));}if(a.attributes.style){let e=a.attributes.style,p=this.mapCssUrls(e,i);a.attributes.style=p;}if(a.attributes._cssText){let e=a.attributes._cssText,p=this.mapCssUrls(e,i);a.attributes._cssText=p;}if(["link","use"].includes(a.tagName)&&a.attributes.href){let e=a.attributes.href.split("#"),p=e[0];i.has(p)&&(e[0]=i.get(p),a.attributes.href=e.join("#"));}if(a.tagName==="img"&&a.attributes.srcset){let e=a.attributes.srcset,p=this.mapSrcsetUrls(e,i);p&&(a.attributes.src=p,delete a.attributes.srcset,delete a.attributes.sizes);}a.tagName==="picture"&&this.mapPictureElement(a,i);}return a}mapPictureElement(a,i){let e=a.childNodes.filter(this.isSourceElement).map(p=>J.default.parse(p.attributes?.srcset??"").map(n=>n.url)).flat().find(p=>i.has(p));if(e){a.childNodes=a.childNodes.filter(n=>!this.isSourceElement(n));let p=a.childNodes.find(n=>n.type===rrwebSnapshot.NodeType.Element&&n.tagName==="img");p&&p.attributes&&(p.attributes.src=i.get(e));}}isSourceElement(a){return a.type===rrwebSnapshot.NodeType.Element&&a.tagName==="source"}mapTextElement(a,i){if(a.type===rrwebSnapshot.NodeType.Text&&a.isStyle&&a.textContent){let e=this.mapCssUrls(a.textContent,i);a.textContent=e;}return a}mapCssUrls(a,i){return a.replace(Ta,(e,p)=>{let n=e;return i.has(p)&&(n=e.replace(p,i.get(p))),n})}mapSrcsetUrls(a,i){let e=J.default.parse(a),p;return e.forEach(n=>{i.has(n.url)&&(p=i.get(n.url));}),p}},s(R,"B"),R);d(ta,"DOMSnapshot");var $a=ta;function ea(t){return `w${t.width}h${t.height}`}s(ea,"H");d(ea,"viewportToString");function Pa(t){let a=t.match(/w(\d+)h(\d+)/);return {width:Number(a[1]),height:Number(a[2])}}s(Pa,"_i");d(Pa,"parseViewport");var F=d(t=>t.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),"sanitize"),Ua="snapshot.json";function D(t,a){let i=`${F(t)}-${F(a)}`,e=_-25;return A(i,e)}s(D,"L");d(D,"snapshotId");function pa(t,a){return [t,ea(a),Ua].join(".")}s(pa,"oi");d(pa,"snapshotFileName");var Oa="stories.json";function na(t){let a=[F(t),Oa].join("."),i=_-25;return A(a,i)}s(na,"si");d(na,"storiesFileName");function oa(t,a,i){return {title:t,stories:Object.keys(a).map(e=>({name:e,parameters:{server:{id:D(t,e)},chromatic:{...i}}}))}}s(oa,"ci");d(oa,"createStories");async function I(t,a,i,e){let{titlePath:p,outputDir:n,pageUrl:c,viewport:o}=t,l=p.map(x=>x.replace(/\.(ts|js|mjs|cjs|tsx|jsx|cjsx|coffee)$/,"").replace(/\.(spec|test|cy)$/,"")).join("/"),r=y.join(n,"chromatic-archives"),m=y.join(r,"archive");await L(m),w.log(`Writing test results for "${l}"`);let f=new Map;await Promise.all(Object.entries(i).map(async([x,h])=>{if("error"in h)return;let j=new Ca(x,h,c),z=j.originalSrc(),q=j.toFileSystemPath();z!==q&&f.set(z,q),await P(y.join(m,q),h.body);})),await Promise.all(await Object.entries(a).map(async([x,h])=>{let j=await new $a(h).mapAssetPaths(f),z=pa(D(l,x),o);await P(y.join(m,z),j);}));let g=na(l),v=oa(l,a,e);await O(y.join(r,g),v);let u=Object.entries(i).filter(([,x])=>"error"in x);u.length>0&&(w.log(`Encountered ${u.length} errors archiving resources, writing to 'errors.json'`),await O(y.join(m,"errors.json"),{errors:Object.fromEntries(u)}));}s(I,"$a");d(I,"writeTestResult");var Fa=new analyticsNode.Analytics({writeKey:process.env.SEGMENT_WRITE_KEY||"cwWhBWso2gwzyenW29CnCp30Kjz4DogE"}),La="@chromaui/test-archiver run";function B(t,a){Fa.track({userId:La,event:t,properties:a});}s(B,"mi");d(B,"track");var V=!1;function M(t={}){V||(B("run",t),V=!0);}s(M,"Pa");d(M,"trackRun");var Q=!1;function W(t={}){Q||(B("complete",t),Q=!0);}s(W,"Oa");d(W,"trackComplete");var T=1e4;var Da=fs.readFileSync(G.resolve("@chromaui/rrweb-snapshot"),"utf8"),k=new Map;async function H(t,a,i){let e,p;if(typeof a=="string"){if(!i)throw new Error("Incorrect usage");p=i.testId,e=a;}else p=a.testId,e=`Snapshot #${k.has(p)?k.get(p).size+1:1}`;t.on("console",o=>{w.log(`CONSOLE: "${o.text()}"`);});let n=await t.evaluate(tsDedent.dedent`
|
|
20
20
|
${Da};
|
|
21
21
|
|
|
22
22
|
// this code was erroring the page.evaluate() when it was passed as a function to page.evaluate(),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/makeTest.ts","../src/takeSnapshot.ts","../src/createResourceArchive.ts"],"names":["test","base","expect","join","readFileSync","dedent","rrweb","require","resolve","chromaticSnapshots","Map","takeSnapshot","page","nameOrTestInfo","maybeTestInfo","name","testId","Error","has","get","size","number","on","msg","logger","log","text","domSnapshot","evaluate","bufferedSnapshot","Buffer","from","JSON","stringify","set","idle","__name","networkTimeoutMs","DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS","globalNetworkTimerId","globalNetworkResolver","globalNetworkTimeout","Promise","setTimeout","warn","networkIdlePromise","waitForLoadState","finally","clearTimeout","race","createResourceArchive","networkTimeout","assetDomains","httpCredentials","cdpClient","context","newCDPSession","resourceArchiver","ResourceArchiver","watch","archive","performChromaticSnapshot","delay","diffIncludeAntiAliasing","diffThreshold","disableAutoSnapshot","forcedColors","pauseAnimationAtEnd","prefersReducedMotion","resourceArchiveTimeout","cropToViewport","ignoreSelectors","use","testInfo","project","trackRun","browser","browserType","completeArchive","resourceArchive","snapshots","chromaticStorybookParams","outputDir","writeTestResult","pageUrl","url","viewport","viewportSize","Object","fromEntries","trackComplete","delete","makeTest","extend","undefined","option","chromaticSnapshot","auto"],"mappings":"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","sourcesContent":["import { test as base, expect } from '@playwright/test';\n\nimport { makeTest } from './makeTest';\n\nexport const test = makeTest(base);\nexport { expect };\n\nexport { takeSnapshot } from './takeSnapshot';\nexport type { ChromaticConfig } from '@chromatic-com/shared-e2e';\n","import type {\n TestType,\n PlaywrightTestArgs,\n PlaywrightTestOptions,\n PlaywrightWorkerArgs,\n PlaywrightWorkerOptions,\n TestInfo,\n Page,\n} from '@playwright/test';\nimport type { ChromaticConfig } from '@chromatic-com/shared-e2e';\nimport {\n writeTestResult,\n trackComplete,\n trackRun,\n DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS,\n} from '@chromatic-com/shared-e2e';\nimport { join } from 'node:path';\nimport { chromaticSnapshots, takeSnapshot } from './takeSnapshot';\nimport { createResourceArchive } from './createResourceArchive';\n\nexport const performChromaticSnapshot = async (\n {\n page,\n delay,\n diffIncludeAntiAliasing,\n diffThreshold,\n disableAutoSnapshot,\n forcedColors,\n pauseAnimationAtEnd,\n prefersReducedMotion,\n resourceArchiveTimeout,\n assetDomains,\n cropToViewport,\n ignoreSelectors,\n }: ChromaticConfig & { page: Page },\n use: () => Promise<void>,\n testInfo: TestInfo\n) => {\n const { testId, project } = testInfo;\n const httpCredentials = project?.use?.httpCredentials;\n\n try {\n trackRun();\n\n // CDP only works in Chromium, so we only capture archives in Chromium.\n // We can later snapshot them in different browsers in the cloud.\n // TODO: I'm not sure if this is the best way to detect the browser version, but\n // it seems to work\n if (page.context().browser().browserType().name() !== 'chromium') {\n await use();\n return;\n }\n\n const completeArchive = await createResourceArchive({\n page,\n networkTimeout: resourceArchiveTimeout,\n assetDomains,\n httpCredentials,\n });\n await use();\n\n if (!disableAutoSnapshot) {\n await takeSnapshot(page, testInfo);\n }\n\n const resourceArchive = await completeArchive();\n const snapshots: Map<string, Buffer> = chromaticSnapshots.get(testId) || new Map();\n\n const chromaticStorybookParams = {\n ...(delay && { delay }),\n ...(diffIncludeAntiAliasing && { diffIncludeAntiAliasing }),\n ...(diffThreshold && { diffThreshold }),\n ...(forcedColors && { forcedColors }),\n ...(pauseAnimationAtEnd && { pauseAnimationAtEnd }),\n ...(prefersReducedMotion && { prefersReducedMotion }),\n ...(cropToViewport && { cropToViewport }),\n ...(ignoreSelectors && { ignoreSelectors }),\n };\n\n // TestInfo.outputDir gives us the test-specific subfolder (https://playwright.dev/docs/api/class-testconfig#test-config-output-dir);\n // we want to write one level above that\n const outputDir = join(testInfo.outputDir, '..');\n await writeTestResult(\n { ...testInfo, outputDir, pageUrl: page.url(), viewport: page.viewportSize() },\n Object.fromEntries(snapshots),\n resourceArchive,\n chromaticStorybookParams\n );\n\n trackComplete();\n } finally {\n // make sure we clear the value associated with this test ID, so the shared chromaticSnapshots object stays small\n chromaticSnapshots.delete(testId);\n }\n};\n\n// We do this slightly odd thing (makeTest) to avoid importing playwright multiple times when\n// linking this package. To avoid the main entry, you can:\n//\n// import { makeTest } from '@chromaui/test-archiver/src/playwright-api/makeTest';\n// import { takeSnapshot as snapshot } from '@chromaui/test-archiver/src/playwright-api/takeSnapshot';\nexport const makeTest = (\n base: TestType<\n PlaywrightTestArgs & PlaywrightTestOptions,\n PlaywrightWorkerArgs & PlaywrightWorkerOptions\n >\n) =>\n base.extend<ChromaticConfig & { chromaticSnapshot: void }>({\n // ChromaticConfig defaults\n delay: [undefined, { option: true }],\n diffIncludeAntiAliasing: [undefined, { option: true }],\n diffThreshold: [undefined, { option: true }],\n disableAutoSnapshot: [false, { option: true }],\n forcedColors: [undefined, { option: true }],\n pauseAnimationAtEnd: [undefined, { option: true }],\n prefersReducedMotion: [undefined, { option: true }],\n resourceArchiveTimeout: [DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS, { option: true }],\n assetDomains: [[], { option: true }],\n cropToViewport: [undefined, { option: true }],\n ignoreSelectors: [undefined, { option: true }],\n\n chromaticSnapshot: [\n performChromaticSnapshot,\n // ensures this fixture runs without having to be explicitly called (https://playwright.dev/docs/test-fixtures#automatic-fixtures)\n { auto: true },\n ],\n });\n","import type { Page, TestInfo } from '@playwright/test';\nimport { readFileSync } from 'fs';\nimport { dedent } from 'ts-dedent';\nimport type { serializedNodeWithId } from '@chromaui/rrweb-snapshot';\nimport { logger } from '@chromatic-com/shared-e2e';\n\nconst rrweb = readFileSync(require.resolve('@chromaui/rrweb-snapshot'), 'utf8');\n\n// top-level key is the test ID, next level key is the name of the snapshot (which we expect to be unique)\nexport const chromaticSnapshots: Map<string, Map<string, Buffer>> = new Map();\n\nasync function takeSnapshot(page: Page, testInfo: TestInfo): Promise<void>;\nasync function takeSnapshot(page: Page, name: string, testInfo: TestInfo): Promise<void>;\nasync function takeSnapshot(\n page: Page,\n nameOrTestInfo: string | TestInfo,\n maybeTestInfo?: TestInfo\n): Promise<void> {\n let name: string;\n let testId: string;\n if (typeof nameOrTestInfo === 'string') {\n if (!maybeTestInfo) throw new Error('Incorrect usage');\n testId = maybeTestInfo.testId;\n name = nameOrTestInfo;\n } else {\n testId = nameOrTestInfo.testId;\n const number = chromaticSnapshots.has(testId) ? chromaticSnapshots.get(testId).size + 1 : 1;\n name = `Snapshot #${number}`;\n }\n\n page.on('console', (msg) => {\n logger.log(`CONSOLE: \"${msg.text()}\"`);\n });\n\n // Serialize and capture the DOM\n const domSnapshot: serializedNodeWithId = await page.evaluate(dedent`\n ${rrweb};\n\n // this code was erroring the page.evaluate() when it was passed as a function to page.evaluate(),\n // so for now it is being passed as a string until that can be resolved.\n const doPostProcessing = (rrwebSnapshotInstance, documentToSnapshot) => {\n return new Promise((resolve) => {\n const domSnapshot = rrwebSnapshotInstance.snapshot(documentToSnapshot, { recordCanvas: true });\n // do some post-processing on the snapshot\n const toDataURL = async (url) => {\n // read contents of the blob URL\n const response = await fetch(url);\n const blob = await response.blob();\n return new Promise((resolveFileRead, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolveFileRead(reader.result);\n reader.onerror = reject;\n // convert the blob to base64 string\n reader.readAsDataURL(blob);\n });\n };\n\n const replaceBlobUrls = async (node) => {\n await Promise.all(\n node.childNodes.map(async (childNode) => {\n if (childNode.tagName === 'img' && childNode.attributes.src?.startsWith('blob:')) {\n const base64Url = await toDataURL(childNode.attributes.src);\n // eslint-disable-next-line no-param-reassign\n childNode.attributes.src = base64Url;\n }\n\n if (childNode.childNodes?.length) {\n await replaceBlobUrls(childNode);\n }\n })\n );\n };\n\n replaceBlobUrls(domSnapshot).then(() => {\n resolve(domSnapshot);\n });\n });\n };\n\n // page.evaluate returns the value of the function being evaluated. In this case, it means that\n // it is returning either the resolved value of the Promise or the return value of the call to\n // the snapshot function. See https://playwright.dev/docs/api/class-page#page-evaluate.\n if (typeof define === 'function' && define.amd) {\n // AMD support is detected, so we need to load rrwebSnapshot asynchronously\n new Promise((resolve) => {\n // eslint-disable-next-line import/no-dynamic-require, global-require\n require(['rrwebSnapshot'], (rrwebSnapshot) => {\n doPostProcessing(rrwebSnapshot, document).then((domSnapshot) => {\n resolve(domSnapshot);\n });\n });\n });\n } else {\n new Promise((resolve) => {\n doPostProcessing(rrwebSnapshot, document).then((domSnapshot) => {\n resolve(domSnapshot);\n }); \n });\n } \n `);\n\n const bufferedSnapshot = Buffer.from(JSON.stringify(domSnapshot));\n if (!chromaticSnapshots.has(testId)) {\n // map used so the snapshots are always in order\n chromaticSnapshots.set(testId, new Map());\n }\n chromaticSnapshots.get(testId).set(name, bufferedSnapshot);\n}\n\nexport { takeSnapshot };\n","import type { Page } from 'playwright';\nimport {\n ResourceArchiver,\n ResourceArchive,\n DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS,\n logger,\n HttpCredentials,\n} from '@chromatic-com/shared-e2e';\n\nconst idle = async (page: Page, networkTimeoutMs = DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS) => {\n let globalNetworkTimerId: null | ReturnType<typeof setTimeout> = null;\n let globalNetworkResolver: null | (() => void) = null;\n // XXX_jwir3: The way this works is as follows:\n // There are two promises created here. They wrap two separate timers, and we await on a race of both Promises.\n\n // The first promise wraps a global timeout, where all requests MUST complete before that timeout has passed.\n // If the timeout passes, an error is thrown. This promise can only throw errors, it cannot resolve successfully.\n const globalNetworkTimeout = new Promise<void>((resolve) => {\n globalNetworkResolver = resolve;\n\n globalNetworkTimerId = setTimeout(() => {\n logger.warn(`Global timeout of ${networkTimeoutMs}ms reached`);\n globalNetworkResolver();\n }, networkTimeoutMs);\n });\n\n // The second promise wraps a network idle timeout. This uses playwright's built-in functionality to detect when the network\n // is idle.\n const networkIdlePromise = page.waitForLoadState('networkidle').finally(() => {\n clearTimeout(globalNetworkTimerId);\n });\n\n await Promise.race([globalNetworkTimeout, networkIdlePromise]);\n};\n\nexport const createResourceArchive = async ({\n page,\n networkTimeout,\n assetDomains,\n httpCredentials,\n}: {\n page: Page;\n networkTimeout?: number;\n assetDomains?: string[];\n httpCredentials?: HttpCredentials;\n}): Promise<() => Promise<ResourceArchive>> => {\n const cdpClient = await page.context().newCDPSession(page);\n\n const resourceArchiver = new ResourceArchiver(cdpClient, assetDomains, httpCredentials);\n await resourceArchiver.watch();\n\n return async () => {\n await idle(page, networkTimeout ?? DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS);\n\n return resourceArchiver.archive;\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/makeTest.ts","../src/takeSnapshot.ts","../src/createResourceArchive.ts"],"names":["test","base","expect","join","readFileSync","dedent","rrweb","require","resolve","chromaticSnapshots","Map","takeSnapshot","page","nameOrTestInfo","maybeTestInfo","name","testId","Error","has","get","size","number","on","msg","logger","log","text","domSnapshot","evaluate","bufferedSnapshot","Buffer","from","JSON","stringify","set","idle","__name","networkTimeoutMs","DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS","globalNetworkTimerId","globalNetworkResolver","globalNetworkTimeout","Promise","setTimeout","warn","networkIdlePromise","waitForLoadState","finally","clearTimeout","race","createResourceArchive","networkTimeout","assetDomains","httpCredentials","cdpClient","context","newCDPSession","resourceArchiver","ResourceArchiver","watch","archive","performChromaticSnapshot","delay","diffIncludeAntiAliasing","diffThreshold","disableAutoSnapshot","forcedColors","pauseAnimationAtEnd","prefersReducedMotion","resourceArchiveTimeout","cropToViewport","ignoreSelectors","use","testInfo","project","trackRun","browser","browserType","completeArchive","resourceArchive","snapshots","chromaticStorybookParams","outputDir","writeTestResult","pageUrl","url","viewport","viewportSize","Object","fromEntries","trackComplete","delete","makeTest","extend","undefined","option","chromaticSnapshot","auto"],"mappings":"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","sourcesContent":["import { test as base, expect } from '@playwright/test';\n\nimport { makeTest } from './makeTest';\n\nexport const test = makeTest(base);\nexport { expect };\n\nexport { takeSnapshot } from './takeSnapshot';\nexport type { ChromaticConfig } from '@chromatic-com/shared-e2e';\n","import type {\n TestType,\n PlaywrightTestArgs,\n PlaywrightTestOptions,\n PlaywrightWorkerArgs,\n PlaywrightWorkerOptions,\n TestInfo,\n Page,\n} from '@playwright/test';\nimport type { ChromaticConfig } from '@chromatic-com/shared-e2e';\nimport {\n writeTestResult,\n trackComplete,\n trackRun,\n DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS,\n} from '@chromatic-com/shared-e2e';\nimport { join } from 'node:path';\nimport { chromaticSnapshots, takeSnapshot } from './takeSnapshot';\nimport { createResourceArchive } from './createResourceArchive';\n\nexport const performChromaticSnapshot = async (\n {\n page,\n delay,\n diffIncludeAntiAliasing,\n diffThreshold,\n disableAutoSnapshot,\n forcedColors,\n pauseAnimationAtEnd,\n prefersReducedMotion,\n resourceArchiveTimeout,\n assetDomains,\n cropToViewport,\n ignoreSelectors,\n }: ChromaticConfig & { page: Page },\n use: () => Promise<void>,\n testInfo: TestInfo\n) => {\n const { testId, project } = testInfo;\n const httpCredentials = project?.use?.httpCredentials;\n\n try {\n trackRun();\n\n // CDP only works in Chromium, so we only capture archives in Chromium.\n // We can later snapshot them in different browsers in the cloud.\n // TODO: I'm not sure if this is the best way to detect the browser version, but\n // it seems to work\n if (page.context().browser().browserType().name() !== 'chromium') {\n await use();\n return;\n }\n\n const completeArchive = await createResourceArchive({\n page,\n networkTimeout: resourceArchiveTimeout,\n assetDomains,\n httpCredentials,\n });\n await use();\n\n if (!disableAutoSnapshot) {\n await takeSnapshot(page, testInfo);\n }\n\n const resourceArchive = await completeArchive();\n const snapshots: Map<string, Buffer> = chromaticSnapshots.get(testId) || new Map();\n\n const chromaticStorybookParams = {\n ...(delay && { delay }),\n ...(diffIncludeAntiAliasing && { diffIncludeAntiAliasing }),\n ...(diffThreshold && { diffThreshold }),\n ...(forcedColors && { forcedColors }),\n ...(pauseAnimationAtEnd && { pauseAnimationAtEnd }),\n ...(prefersReducedMotion && { prefersReducedMotion }),\n ...(cropToViewport && { cropToViewport }),\n ...(ignoreSelectors && { ignoreSelectors }),\n };\n\n // TestInfo.outputDir gives us the test-specific subfolder (https://playwright.dev/docs/api/class-testconfig#test-config-output-dir);\n // we want to write one level above that\n const outputDir = join(testInfo.outputDir, '..');\n await writeTestResult(\n { ...testInfo, outputDir, pageUrl: page.url(), viewport: page.viewportSize() },\n Object.fromEntries(snapshots),\n resourceArchive,\n chromaticStorybookParams\n );\n\n trackComplete();\n } finally {\n // make sure we clear the value associated with this test ID, so the shared chromaticSnapshots object stays small\n chromaticSnapshots.delete(testId);\n }\n};\n\n// We do this slightly odd thing (makeTest) to avoid importing playwright multiple times when\n// linking this package. To avoid the main entry, you can:\n//\n// import { makeTest } from '@chromaui/test-archiver/src/playwright-api/makeTest';\n// import { takeSnapshot as snapshot } from '@chromaui/test-archiver/src/playwright-api/takeSnapshot';\nexport const makeTest = (\n base: TestType<\n PlaywrightTestArgs & PlaywrightTestOptions,\n PlaywrightWorkerArgs & PlaywrightWorkerOptions\n >\n) =>\n base.extend<ChromaticConfig & { chromaticSnapshot: void }>({\n // ChromaticConfig defaults\n delay: [undefined, { option: true }],\n diffIncludeAntiAliasing: [undefined, { option: true }],\n diffThreshold: [undefined, { option: true }],\n disableAutoSnapshot: [false, { option: true }],\n forcedColors: [undefined, { option: true }],\n pauseAnimationAtEnd: [undefined, { option: true }],\n prefersReducedMotion: [undefined, { option: true }],\n resourceArchiveTimeout: [DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS, { option: true }],\n assetDomains: [[], { option: true }],\n cropToViewport: [undefined, { option: true }],\n ignoreSelectors: [undefined, { option: true }],\n\n chromaticSnapshot: [\n performChromaticSnapshot,\n // ensures this fixture runs without having to be explicitly called (https://playwright.dev/docs/test-fixtures#automatic-fixtures)\n { auto: true },\n ],\n });\n","import type { Page, TestInfo } from '@playwright/test';\nimport { readFileSync } from 'fs';\nimport { dedent } from 'ts-dedent';\nimport type { serializedNodeWithId } from '@chromaui/rrweb-snapshot';\nimport { logger } from '@chromatic-com/shared-e2e';\n\nconst rrweb = readFileSync(require.resolve('@chromaui/rrweb-snapshot'), 'utf8');\n\n// top-level key is the test ID, next level key is the name of the snapshot (which we expect to be unique)\nexport const chromaticSnapshots: Map<string, Map<string, Buffer>> = new Map();\n\nasync function takeSnapshot(page: Page, testInfo: TestInfo): Promise<void>;\nasync function takeSnapshot(page: Page, name: string, testInfo: TestInfo): Promise<void>;\nasync function takeSnapshot(\n page: Page,\n nameOrTestInfo: string | TestInfo,\n maybeTestInfo?: TestInfo\n): Promise<void> {\n let name: string;\n let testId: string;\n if (typeof nameOrTestInfo === 'string') {\n if (!maybeTestInfo) throw new Error('Incorrect usage');\n testId = maybeTestInfo.testId;\n name = nameOrTestInfo;\n } else {\n testId = nameOrTestInfo.testId;\n const number = chromaticSnapshots.has(testId) ? chromaticSnapshots.get(testId).size + 1 : 1;\n name = `Snapshot #${number}`;\n }\n\n page.on('console', (msg) => {\n logger.log(`CONSOLE: \"${msg.text()}\"`);\n });\n\n // Serialize and capture the DOM\n const domSnapshot: serializedNodeWithId = await page.evaluate(dedent`\n ${rrweb};\n\n // this code was erroring the page.evaluate() when it was passed as a function to page.evaluate(),\n // so for now it is being passed as a string until that can be resolved.\n const doPostProcessing = (rrwebSnapshotInstance, documentToSnapshot) => {\n return new Promise((resolve) => {\n const domSnapshot = rrwebSnapshotInstance.snapshot(documentToSnapshot, { recordCanvas: true });\n // do some post-processing on the snapshot\n const toDataURL = async (url) => {\n // read contents of the blob URL\n const response = await fetch(url);\n const blob = await response.blob();\n return new Promise((resolveFileRead, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolveFileRead(reader.result);\n reader.onerror = reject;\n // convert the blob to base64 string\n reader.readAsDataURL(blob);\n });\n };\n\n const replaceBlobUrls = async (node) => {\n await Promise.all(\n node.childNodes.map(async (childNode) => {\n if (childNode.tagName === 'img' && childNode.attributes.src?.startsWith('blob:')) {\n const base64Url = await toDataURL(childNode.attributes.src);\n // eslint-disable-next-line no-param-reassign\n childNode.attributes.src = base64Url;\n }\n\n if (childNode.childNodes?.length) {\n await replaceBlobUrls(childNode);\n }\n })\n );\n };\n\n replaceBlobUrls(domSnapshot).then(() => {\n resolve(domSnapshot);\n });\n });\n };\n\n // page.evaluate returns the value of the function being evaluated. In this case, it means that\n // it is returning either the resolved value of the Promise or the return value of the call to\n // the snapshot function. See https://playwright.dev/docs/api/class-page#page-evaluate.\n if (typeof define === 'function' && define.amd) {\n // AMD support is detected, so we need to load rrwebSnapshot asynchronously\n new Promise((resolve) => {\n // eslint-disable-next-line import/no-dynamic-require, global-require\n require(['rrwebSnapshot'], (rrwebSnapshot) => {\n doPostProcessing(rrwebSnapshot, document).then((domSnapshot) => {\n resolve(domSnapshot);\n });\n });\n });\n } else {\n new Promise((resolve) => {\n doPostProcessing(rrwebSnapshot, document).then((domSnapshot) => {\n resolve(domSnapshot);\n }); \n });\n } \n `);\n\n const bufferedSnapshot = Buffer.from(JSON.stringify(domSnapshot));\n if (!chromaticSnapshots.has(testId)) {\n // map used so the snapshots are always in order\n chromaticSnapshots.set(testId, new Map());\n }\n chromaticSnapshots.get(testId).set(name, bufferedSnapshot);\n}\n\nexport { takeSnapshot };\n","import type { Page } from 'playwright';\nimport {\n ResourceArchiver,\n ResourceArchive,\n DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS,\n logger,\n HttpCredentials,\n} from '@chromatic-com/shared-e2e';\n\nconst idle = async (page: Page, networkTimeoutMs = DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS) => {\n let globalNetworkTimerId: null | ReturnType<typeof setTimeout> = null;\n let globalNetworkResolver: null | (() => void) = null;\n // XXX_jwir3: The way this works is as follows:\n // There are two promises created here. They wrap two separate timers, and we await on a race of both Promises.\n\n // The first promise wraps a global timeout, where all requests MUST complete before that timeout has passed.\n // If the timeout passes, an error is thrown. This promise can only throw errors, it cannot resolve successfully.\n const globalNetworkTimeout = new Promise<void>((resolve) => {\n globalNetworkResolver = resolve;\n\n globalNetworkTimerId = setTimeout(() => {\n logger.warn(`Global timeout of ${networkTimeoutMs}ms reached`);\n globalNetworkResolver();\n }, networkTimeoutMs);\n });\n\n // The second promise wraps a network idle timeout. This uses playwright's built-in functionality to detect when the network\n // is idle.\n const networkIdlePromise = page.waitForLoadState('networkidle').finally(() => {\n clearTimeout(globalNetworkTimerId);\n });\n\n await Promise.race([globalNetworkTimeout, networkIdlePromise]);\n};\n\nexport const createResourceArchive = async ({\n page,\n networkTimeout,\n assetDomains,\n httpCredentials,\n}: {\n page: Page;\n networkTimeout?: number;\n assetDomains?: string[];\n httpCredentials?: HttpCredentials;\n}): Promise<() => Promise<ResourceArchive>> => {\n const cdpClient = await page.context().newCDPSession(page);\n\n const resourceArchiver = new ResourceArchiver(cdpClient, assetDomains, httpCredentials);\n await resourceArchiver.watch();\n\n return async () => {\n await idle(page, networkTimeout ?? DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS);\n\n return resourceArchiver.archive;\n };\n};\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -10,7 +10,7 @@ import { Analytics } from '@segment/analytics-node';
|
|
|
10
10
|
import { dedent } from 'ts-dedent';
|
|
11
11
|
|
|
12
12
|
const require = createRequire(import.meta.url);
|
|
13
|
-
var da=Object.defineProperty;var s=(t,a)=>da(t,"name",{value:a,configurable:!0}),G=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(a,i)=>(typeof require<"u"?require:a)[i]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var fa=Object.create,U=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=Object.getOwnPropertyNames,ba=Object.getPrototypeOf,wa=Object.prototype.hasOwnProperty,ka=s((t,a,i)=>a in t?U(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i,"gi"),d=s((t,a)=>U(t,"name",{value:a,configurable:!0}),"o"),C=s((t,a)=>()=>(a||t((a={exports:{}}).exports,a),a.exports),"j"),ya=s((t,a,i,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let p of ga(a))!wa.call(t,p)&&p!==i&&U(t,p,{get:()=>a[p],enumerable:!(e=ha(a,p))||e.enumerable});return t},"hi"),Y=s((t,a,i)=>(i=t!=null?fa(ba(t)):{},ya(a||!t||!t.__esModule?U(i,"default",{value:t,enumerable:!0}):i,t)),"W"),b=s((t,a,i)=>(ka(t,typeof a!="symbol"?a+"":a,i),i),"m"),ja=C((t,a)=>{function i(){this._types=Object.create(null),this._extensions=Object.create(null);for(let e=0;e<arguments.length;e++)this.define(arguments[e]);this.define=this.define.bind(this),this.getType=this.getType.bind(this),this.getExtension=this.getExtension.bind(this);}s(i,"C"),d(i,"Mime"),i.prototype.define=function(e,p){for(let n in e){let c=e[n].map(function(o){return o.toLowerCase()});n=n.toLowerCase();for(let o=0;o<c.length;o++){let l=c[o];if(l[0]!=="*"){if(!p&&l in this._types)throw new Error('Attempt to change mapping for "'+l+'" extension from "'+this._types[l]+'" to "'+n+'". Pass `force=true` to allow this, otherwise remove "'+l+'" from the list of extensions for "'+n+'".');this._types[l]=n;}}if(p||!this._extensions[n]){let o=c[0];this._extensions[n]=o[0]!=="*"?o:o.substr(1);}}},i.prototype.getType=function(e){e=String(e);let p=e.replace(/^.*[/\\]/,"").toLowerCase(),n=p.replace(/^.*\./,"").toLowerCase(),c=p.length<e.length;return (n.length<p.length-1||!c)&&this._types[n]||null},i.prototype.getExtension=function(e){return e=/^\s*([^;\s]*)/.test(e)&&RegExp.$1,e&&this._extensions[e.toLowerCase()]||null},a.exports=i;}),za=C((t,a)=>{a.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["es","ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avif":["avif"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]};}),Sa=C((t,a)=>{a.exports={"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.sap.vds":["vds"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]};}),qa=C((t,a)=>{var i=ja();a.exports=new i(za(),Sa());}),Ea=C(t=>{var a=/\s*([^,]\S*[^,](?:\s+[^,]+)?)\s*(?:,|$)/,i=d((o,l,r)=>{if(o[r]=o[r]||{},o[r][l])throw new Error(`No more than one image candidate is allowed for a given descriptor: ${l}${r}`);o[r][l]=!0;},"duplicateDescriptorCheck"),e=d(o=>{if(o.fallback)throw new Error("Only one fallback image candidate is allowed");if(o.x[1])throw new Error("A fallback image is equivalent to a 1x descriptor, providing both is invalid.");o.fallback=!0;},"fallbackDescriptorDuplicateCheck"),p=d((o,l)=>{if(l.length===0)e(o);else if(l.length>1)throw new Error(`Image candidate may have no more than one descriptor, found ${l.length}: ${l.join(" ")}`)},"descriptorCountCheck"),n=d((o,l,r)=>{if(Number.isNaN(o))throw new TypeError(`${r||o} is not a valid number`);switch(l){case"w":{if(o<=0)throw new Error("Width descriptor must be greater than zero");if(!Number.isInteger(o))throw new TypeError("Width descriptor must be an integer");break}case"x":{if(o<=0)throw new Error("Pixel density descriptor must be greater than zero");break}case"h":throw new Error("Height descriptor is no longer allowed");default:throw new Error(`Invalid srcset descriptor: ${r}`)}},"validDescriptorCheck");t.parse=(o,{strict:l=!1}={})=>{let r=l?{}:void 0;return o.split(a).filter((m,f)=>f%2===1).map(m=>{let[f,...g]=m.trim().split(/\s+/),v={url:f};l&&p(r,g);for(let u of g){let x=u[u.length-1],h=Number.parseFloat(u.slice(0,-1));switch(l&&(n(h,x,u),i(r,h,x)),x){case"w":{v.width=h;break}case"h":{v.height=h;break}case"x":{v.density=h;break}}}return v})};var c=new Set(["width","height","density"]);t.stringify=(o,{strict:l=!1}={})=>{let r=l?{}:null;return o.map(m=>{if(!m.url){if(l)throw new Error("URL is required");return ""}let f=Object.keys(m).filter(v=>c.has(v));l&&p(r,f);let g=[m.url];for(let v of f){let u=m[v],x;switch(v){case"width":{x="w";break}case"height":{x="h";break}case"density":{x="x";break}}let h=`${u}${x}`;l&&(n(u,x),i(r,u,x)),g.push(h);}return g.join(" ")}).join(", ")};}),w=process.env.LOG?console:{log:(...t)=>{},warn:(...t)=>{}},E,X=(E=class{constructor(a,i,e){b(this,"archive",{}),b(this,"client"),b(this,"assetDomains"),b(this,"firstUrl"),b(this,"httpCredentials"),this.client=a,this.assetDomains=(i||[]).map(p=>`https://${p}`),this.httpCredentials=e;}async watch(){this.client.on("Fetch.requestPaused",this.requestPaused.bind(this)),this.client.on("Fetch.authRequired",this.authRequired.bind(this)),await this.client.send("Fetch.enable",{handleAuthRequests:!0});}async clientSend(a,i,e){try{return await this.client.send(i,e)}catch(p){return w.log("Client error",a.url,p),this.archive[a.url]={error:p},null}}async authRequired({requestId:a,request:i}){await this.clientSend(i,"Fetch.continueWithAuth",{requestId:a,authChallengeResponse:{response:"ProvideCredentials",...this.httpCredentials}});}async requestPaused({requestId:a,request:i,responseStatusCode:e,responseStatusText:p,responseErrorReason:n,responseHeaders:c}){if(!i.method.match(/get/i)){await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}if(e===304){await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}let o=new URL(i.url);this.firstUrl??(this.firstUrl=o);let l=o.origin===this.firstUrl.origin||this.assetDomains.includes(o.origin);if(w.log("requestPaused",o.toString(),e||n?"response":"request",this.firstUrl.toString(),l),n){w.log(`Got response error: ${n}`),await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}if(e){await this.handleSuccessfulResponse({request:i,requestId:a,responseStatusCode:e,responseStatusText:p,responseHeaders:c},o,l);return}await this.clientSend(i,"Fetch.continueRequest",{requestId:a,interceptResponse:!0});}async handleSuccessfulResponse(a,i,e){let{request:p,requestId:n,responseStatusCode:c,responseStatusText:o,responseHeaders:l}=a;if([301,302,307,308].includes(c)){await this.clientSend(p,"Fetch.continueRequest",{requestId:n,interceptResponse:!0});return}let r=await this.clientSend(p,"Fetch.getResponseBody",{requestId:n});if(r===null)return;let{body:m,base64Encoded:f}=r,g=l.find(({name:u})=>u.toLowerCase()==="content-type"),v=i.toString()===this.firstUrl.toString();e&&!v&&(this.archive[p.url]={statusCode:c,statusText:o,body:Buffer.from(m,f?"base64":"utf8"),contentType:g?.value}),await this.clientSend(p,"Fetch.continueRequest",{requestId:n});}},s(E,"P"),E);d(X,"ResourceArchiver");var Z=X;function L(t){existsSync(t)||mkdirSync(t,{recursive:!0});}s(L,"O");d(L,"ensureDir");async function P(t,a){return L(y.dirname(t)),writeFile(t,a,{mode:511})}s(P,"F");d(P,"outputFile");async function O(t,a){return P(t,JSON.stringify(a))}s(O,"U");d(O,"outputJSONFile");function aa(t){return createHash("shake256",{outputLength:2}).update(t).digest("hex")}s(aa,"zi");d(aa,"hash");var _=255;function A(t,a=_){let i=new TextEncoder,e=new TextDecoder,p=t.split("/"),n=p.pop();if(i.encode(n).byteLength<=a)return t;let c=aa(n),[o,...l]=n.split("."),r=i.encode(o),m=l.join("."),f=m.length===0?0:i.encode(m).byteLength+1,g=i.encode(c).byteLength+f,v=r.slice(0,a-g),u=[`${e.decode(v)}${c}`,m].filter(Boolean).join(".");return [...p,u].join("/")}s(A,"T");d(A,"truncateFileName");var Na=Y(qa()),Ra=["/index.json","/iframe.html","/index.html","/main.iframe.bundle.js","/runtime~main.iframe.bundle.js","/sb-preview/runtime.js"],N,ia=(N=class{constructor(a,i,e){b(this,"url"),b(this,"response"),b(this,"shortenedFileNameLength"),b(this,"pageUrl"),this.url=new URL(a),this.response=i,this.shortenedFileNameLength=250,this.pageUrl=new URL(e);}originalSrc(){return this.url.toString()}toFileSystemPath(){let a=this.url.pathname;return a=this.preserveExternalDomain(),a=this.ensureNonDirectory(a),a=this.encodeQueryString(a),a=this.truncateFileName(a),a=this.removeSpecialChars(a),a=this.renameReservedPathnames(a),a=this.addExtension(a),a}ensureNonDirectory(a){return a.endsWith("/")?`${a}index.html`:a}encodeQueryString(a){let i=this.url.search;if(!i)return a;let e=this.hash(i);return `${a}-${e}`}truncateFileName(a){let i=a.split("/"),e=[];return i.forEach((p,n)=>{let c=p;p.length>this.shortenedFileNameLength&&(c=p.substring(0,this.shortenedFileNameLength),w.log(`Chunk of filename '${p}' is too long. Shortening to '${c}'`)),e.push(c);}),`${a.startsWith("/")?"/":""}${y.join(...e)}`}removeSpecialChars(a){return a.replace(/[%]/g,"")}addExtension(a){if("error"in this.response)return a;let i=a;if(!y.extname(i)){let e=Na.default.getExtension(this.response.contentType)||"tmp";i=`${a}.${e}`;}return i}preserveExternalDomain(){return this.url.origin===this.pageUrl.origin?this.url.pathname:`/${encodeURIComponent(this.url.host)}/${this.url.pathname}`}hash(a){return createHash("md5").update(a).digest("hex")}renameReservedPathnames(a){if(this.url.origin===this.pageUrl.origin&&Ra.includes(a)){let i=this.hash(this.url.toString()),e=y.basename(a,y.extname(a));return `${y.dirname(a)}/${e}-${i}${y.extname(a)}`}return a}},s(N,"D"),N);d(ia,"ArchiveFile");var Ca=ia,J=Y(Ea()),Ta=/url\((?!['"]?(?:data):)['"]?([^'")]*)['"]?\)/gi,R,ta=(R=class{constructor(a){if(b(this,"snapshot"),Buffer.isBuffer(a)){let i=a.toString("utf-8");this.snapshot=JSON.parse(i);}else this.snapshot=JSON.parse(a);}async mapAssetPaths(a){let i=await this.mapNode(this.snapshot,a);return JSON.stringify(i)}async mapNode(a,i){return a=this.mapNodeAttributes(a,i),a=this.mapTextElement(a,i),"childNodes"in a&&(a.childNodes=await Promise.all(a.childNodes.map(async e=>this.mapNode(e,i)))),a}mapNodeAttributes(a,i){if(a.type===NodeType.Element){if(a.attributes.src){let e=a.attributes.src;i.has(e)&&(a.attributes.src=i.get(e));}if(a.attributes.style){let e=a.attributes.style,p=this.mapCssUrls(e,i);a.attributes.style=p;}if(a.attributes._cssText){let e=a.attributes._cssText,p=this.mapCssUrls(e,i);a.attributes._cssText=p;}if(["link","use"].includes(a.tagName)&&a.attributes.href){let e=a.attributes.href.split("#"),p=e[0];i.has(p)&&(e[0]=i.get(p),a.attributes.href=e.join("#"));}if(a.tagName==="img"&&a.attributes.srcset){let e=a.attributes.srcset,p=this.mapSrcsetUrls(e,i);p&&(a.attributes.src=p,delete a.attributes.srcset,delete a.attributes.sizes);}a.tagName==="picture"&&this.mapPictureElement(a,i);}return a}mapPictureElement(a,i){let e=a.childNodes.filter(this.isSourceElement).map(p=>J.default.parse(p.attributes?.srcset??"").map(n=>n.url)).flat().find(p=>i.has(p));if(e){a.childNodes=a.childNodes.filter(n=>!this.isSourceElement(n));let p=a.childNodes.find(n=>n.type===NodeType.Element&&n.tagName==="img");p&&p.attributes&&(p.attributes.src=i.get(e));}}isSourceElement(a){return a.type===NodeType.Element&&a.tagName==="source"}mapTextElement(a,i){if(a.type===NodeType.Text&&a.isStyle&&a.textContent){let e=this.mapCssUrls(a.textContent,i);a.textContent=e;}return a}mapCssUrls(a,i){return a.replace(Ta,(e,p)=>{let n=e;return i.has(p)&&(n=e.replace(p,i.get(p))),n})}mapSrcsetUrls(a,i){let e=J.default.parse(a),p;return e.forEach(n=>{i.has(n.url)&&(p=i.get(n.url));}),p}},s(R,"B"),R);d(ta,"DOMSnapshot");var $a=ta;function ea(t){return `w${t.width}h${t.height}`}s(ea,"H");d(ea,"viewportToString");function Pa(t){let a=t.match(/w(\d+)h(\d+)/);return {width:Number(a[1]),height:Number(a[2])}}s(Pa,"_i");d(Pa,"parseViewport");var F=d(t=>t.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),"sanitize"),Ua="snapshot.json";function D(t,a){let i=`${F(t)}-${F(a)}`,e=_-25;return A(i,e)}s(D,"L");d(D,"snapshotId");function pa(t,a){return [t,ea(a),Ua].join(".")}s(pa,"oi");d(pa,"snapshotFileName");var Oa="stories.json";function na(t){let a=[F(t),Oa].join("."),i=_-25;return A(a,i)}s(na,"si");d(na,"storiesFileName");function oa(t,a,i){return {title:t,stories:Object.keys(a).map(e=>({name:e,parameters:{server:{id:D(t,e)},chromatic:{...i}}}))}}s(oa,"ci");d(oa,"createStories");async function I(t,a,i,e){let{titlePath:p,outputDir:n,pageUrl:c,viewport:o}=t,l=p.map(x=>x.replace(/\.(ts|js|mjs|cjs|tsx|jsx|cjsx|coffee)$/,"").replace(/\.(spec|test|cy)$/,"")).join("/"),r=join(n,"chromatic-archives"),m=join(r,"archive");await L(m),w.log(`Writing test results for "${l}"`);let f=new Map;await Promise.all(Object.entries(i).map(async([x,h])=>{if("error"in h)return;let j=new Ca(x,h,c),z=j.originalSrc(),q=j.toFileSystemPath();z!==q&&f.set(z,q),await P(join(m,q),h.body);})),await Promise.all(await Object.entries(a).map(async([x,h])=>{let j=await new $a(h).mapAssetPaths(f),z=pa(D(l,x),o);await P(join(m,z),j);}));let g=na(l),v=oa(l,a,e);await O(join(r,g),v);let u=Object.entries(i).filter(([,x])=>"error"in x);u.length>0&&(w.log(`Encountered ${u.length} errors archiving resources, writing to 'errors.json'`),await O(join(m,"errors.json"),{errors:Object.fromEntries(u)}));}s(I,"$a");d(I,"writeTestResult");var Fa=new Analytics({writeKey:process.env.SEGMENT_WRITE_KEY||"cwWhBWso2gwzyenW29CnCp30Kjz4DogE"}),La="@chromaui/test-archiver run";function B(t,a){Fa.track({userId:La,event:t,properties:a});}s(B,"mi");d(B,"track");var V=!1;function M(t={}){V||(B("run",t),V=!0);}s(M,"Pa");d(M,"trackRun");var Q=!1;function W(t={}){Q||(B("complete",t),Q=!0);}s(W,"Oa");d(W,"trackComplete");var T=1e4;var Da=readFileSync(G.resolve("@chromaui/rrweb-snapshot"),"utf8"),k=new Map;async function H(t,a,i){let e,p;if(typeof a=="string"){if(!i)throw new Error("Incorrect usage");p=i.testId,e=a;}else p=a.testId,e=`Snapshot #${k.has(p)?k.get(p).size+1:1}`;t.on("console",o=>{w.log(`CONSOLE: "${o.text()}"`);});let n=await t.evaluate(dedent`
|
|
13
|
+
var da=Object.defineProperty;var s=(t,a)=>da(t,"name",{value:a,configurable:!0}),G=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(a,i)=>(typeof require<"u"?require:a)[i]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var fa=Object.create,U=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=Object.getOwnPropertyNames,ba=Object.getPrototypeOf,wa=Object.prototype.hasOwnProperty,ka=s((t,a,i)=>a in t?U(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i,"gi"),d=s((t,a)=>U(t,"name",{value:a,configurable:!0}),"o"),C=s((t,a)=>()=>(a||t((a={exports:{}}).exports,a),a.exports),"j"),ya=s((t,a,i,e)=>{if(a&&typeof a=="object"||typeof a=="function")for(let p of ga(a))!wa.call(t,p)&&p!==i&&U(t,p,{get:()=>a[p],enumerable:!(e=ha(a,p))||e.enumerable});return t},"hi"),Y=s((t,a,i)=>(i=t!=null?fa(ba(t)):{},ya(a||!t||!t.__esModule?U(i,"default",{value:t,enumerable:!0}):i,t)),"W"),b=s((t,a,i)=>(ka(t,typeof a!="symbol"?a+"":a,i),i),"m"),ja=C((t,a)=>{function i(){this._types=Object.create(null),this._extensions=Object.create(null);for(let e=0;e<arguments.length;e++)this.define(arguments[e]);this.define=this.define.bind(this),this.getType=this.getType.bind(this),this.getExtension=this.getExtension.bind(this);}s(i,"C"),d(i,"Mime"),i.prototype.define=function(e,p){for(let n in e){let c=e[n].map(function(o){return o.toLowerCase()});n=n.toLowerCase();for(let o=0;o<c.length;o++){let l=c[o];if(l[0]!=="*"){if(!p&&l in this._types)throw new Error('Attempt to change mapping for "'+l+'" extension from "'+this._types[l]+'" to "'+n+'". Pass `force=true` to allow this, otherwise remove "'+l+'" from the list of extensions for "'+n+'".');this._types[l]=n;}}if(p||!this._extensions[n]){let o=c[0];this._extensions[n]=o[0]!=="*"?o:o.substr(1);}}},i.prototype.getType=function(e){e=String(e);let p=e.replace(/^.*[/\\]/,"").toLowerCase(),n=p.replace(/^.*\./,"").toLowerCase(),c=p.length<e.length;return (n.length<p.length-1||!c)&&this._types[n]||null},i.prototype.getExtension=function(e){return e=/^\s*([^;\s]*)/.test(e)&&RegExp.$1,e&&this._extensions[e.toLowerCase()]||null},a.exports=i;}),za=C((t,a)=>{a.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["es","ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avif":["avif"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]};}),Sa=C((t,a)=>{a.exports={"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.sap.vds":["vds"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]};}),qa=C((t,a)=>{var i=ja();a.exports=new i(za(),Sa());}),Ea=C(t=>{var a=/\s*([^,]\S*[^,](?:\s+[^,]+)?)\s*(?:,|$)/,i=d((o,l,r)=>{if(o[r]=o[r]||{},o[r][l])throw new Error(`No more than one image candidate is allowed for a given descriptor: ${l}${r}`);o[r][l]=!0;},"duplicateDescriptorCheck"),e=d(o=>{if(o.fallback)throw new Error("Only one fallback image candidate is allowed");if(o.x[1])throw new Error("A fallback image is equivalent to a 1x descriptor, providing both is invalid.");o.fallback=!0;},"fallbackDescriptorDuplicateCheck"),p=d((o,l)=>{if(l.length===0)e(o);else if(l.length>1)throw new Error(`Image candidate may have no more than one descriptor, found ${l.length}: ${l.join(" ")}`)},"descriptorCountCheck"),n=d((o,l,r)=>{if(Number.isNaN(o))throw new TypeError(`${r||o} is not a valid number`);switch(l){case"w":{if(o<=0)throw new Error("Width descriptor must be greater than zero");if(!Number.isInteger(o))throw new TypeError("Width descriptor must be an integer");break}case"x":{if(o<=0)throw new Error("Pixel density descriptor must be greater than zero");break}case"h":throw new Error("Height descriptor is no longer allowed");default:throw new Error(`Invalid srcset descriptor: ${r}`)}},"validDescriptorCheck");t.parse=(o,{strict:l=!1}={})=>{let r=l?{}:void 0;return o.split(a).filter((m,f)=>f%2===1).map(m=>{let[f,...g]=m.trim().split(/\s+/),v={url:f};l&&p(r,g);for(let u of g){let x=u[u.length-1],h=Number.parseFloat(u.slice(0,-1));switch(l&&(n(h,x,u),i(r,h,x)),x){case"w":{v.width=h;break}case"h":{v.height=h;break}case"x":{v.density=h;break}}}return v})};var c=new Set(["width","height","density"]);t.stringify=(o,{strict:l=!1}={})=>{let r=l?{}:null;return o.map(m=>{if(!m.url){if(l)throw new Error("URL is required");return ""}let f=Object.keys(m).filter(v=>c.has(v));l&&p(r,f);let g=[m.url];for(let v of f){let u=m[v],x;switch(v){case"width":{x="w";break}case"height":{x="h";break}case"density":{x="x";break}}let h=`${u}${x}`;l&&(n(u,x),i(r,u,x)),g.push(h);}return g.join(" ")}).join(", ")};}),w=process.env.LOG?console:{log:(...t)=>{},warn:(...t)=>{}},E,X=(E=class{constructor(a,i,e){b(this,"archive",{}),b(this,"client"),b(this,"assetDomains"),b(this,"firstUrl"),b(this,"httpCredentials"),this.client=a,this.assetDomains=(i||[]).map(p=>`https://${p}`),this.httpCredentials=e;}async watch(){this.client.on("Fetch.requestPaused",this.requestPaused.bind(this)),this.client.on("Fetch.authRequired",this.authRequired.bind(this)),await this.client.send("Fetch.enable",{handleAuthRequests:!0});}async clientSend(a,i,e){try{return await this.client.send(i,e)}catch(p){return w.log("Client error",a.url,p),this.archive[a.url]={error:p},null}}async authRequired({requestId:a,request:i}){await this.clientSend(i,"Fetch.continueWithAuth",{requestId:a,authChallengeResponse:{response:"ProvideCredentials",...this.httpCredentials}});}async requestPaused({requestId:a,request:i,responseStatusCode:e,responseStatusText:p,responseErrorReason:n,responseHeaders:c}){if(!i.method.match(/get/i)){await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}if(e===304){await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}let o=new URL(i.url);this.firstUrl??(this.firstUrl=o);let l=o.origin===this.firstUrl.origin||this.assetDomains.includes(o.origin);if(w.log("requestPaused",o.toString(),e||n?"response":"request",this.firstUrl.toString(),l),n){w.log(`Got response error: ${n}`),await this.clientSend(i,"Fetch.continueRequest",{requestId:a});return}if(e){await this.handleSuccessfulResponse({request:i,requestId:a,responseStatusCode:e,responseStatusText:p,responseHeaders:c},o,l);return}await this.clientSend(i,"Fetch.continueRequest",{requestId:a,interceptResponse:!0});}async handleSuccessfulResponse(a,i,e){let{request:p,requestId:n,responseStatusCode:c,responseStatusText:o,responseHeaders:l}=a;if([301,302,303,307,308].includes(c)){await this.clientSend(p,"Fetch.continueRequest",{requestId:n,interceptResponse:!0});return}let r=await this.clientSend(p,"Fetch.getResponseBody",{requestId:n});if(r===null)return;let{body:m,base64Encoded:f}=r,g=l.find(({name:u})=>u.toLowerCase()==="content-type"),v=i.toString()===this.firstUrl.toString();e&&!v&&(this.archive[p.url]={statusCode:c,statusText:o,body:Buffer.from(m,f?"base64":"utf8"),contentType:g?.value}),await this.clientSend(p,"Fetch.continueRequest",{requestId:n});}},s(E,"P"),E);d(X,"ResourceArchiver");var Z=X;function L(t){existsSync(t)||mkdirSync(t,{recursive:!0});}s(L,"O");d(L,"ensureDir");async function P(t,a){return L(y.dirname(t)),writeFile(t,a,{mode:511})}s(P,"F");d(P,"outputFile");async function O(t,a){return P(t,JSON.stringify(a))}s(O,"U");d(O,"outputJSONFile");function aa(t){return createHash("shake256",{outputLength:2}).update(t).digest("hex")}s(aa,"zi");d(aa,"hash");var _=255;function A(t,a=_){let i=new TextEncoder,e=new TextDecoder,p=t.split("/"),n=p.pop();if(i.encode(n).byteLength<=a)return t;let c=aa(n),[o,...l]=n.split("."),r=i.encode(o),m=l.join("."),f=m.length===0?0:i.encode(m).byteLength+1,g=i.encode(c).byteLength+f,v=r.slice(0,a-g),u=[`${e.decode(v)}${c}`,m].filter(Boolean).join(".");return [...p,u].join("/")}s(A,"T");d(A,"truncateFileName");var Na=Y(qa()),Ra=["/index.json","/iframe.html","/index.html","/main.iframe.bundle.js","/runtime~main.iframe.bundle.js","/sb-preview/runtime.js"],N,ia=(N=class{constructor(a,i,e){b(this,"url"),b(this,"response"),b(this,"shortenedFileNameLength"),b(this,"pageUrl"),this.url=new URL(a),this.response=i,this.shortenedFileNameLength=250,this.pageUrl=new URL(e);}originalSrc(){return this.url.toString()}toFileSystemPath(){let a=this.url.pathname;return a=this.preserveExternalDomain(),a=this.ensureNonDirectory(a),a=this.encodeQueryString(a),a=this.truncateFileName(a),a=this.removeSpecialChars(a),a=this.renameReservedPathnames(a),a=this.addExtension(a),a}ensureNonDirectory(a){return a.endsWith("/")?`${a}index.html`:a}encodeQueryString(a){let i=this.url.search;if(!i)return a;let e=this.hash(i);return `${a}-${e}`}truncateFileName(a){let i=a.split("/"),e=[];return i.forEach((p,n)=>{let c=p;p.length>this.shortenedFileNameLength&&(c=p.substring(0,this.shortenedFileNameLength),w.log(`Chunk of filename '${p}' is too long. Shortening to '${c}'`)),e.push(c);}),`${a.startsWith("/")?"/":""}${y.join(...e)}`}removeSpecialChars(a){return a.replace(/[%]/g,"")}addExtension(a){if("error"in this.response)return a;let i=a;if(!y.extname(i)){let e=Na.default.getExtension(this.response.contentType)||"tmp";i=`${a}.${e}`;}return i}preserveExternalDomain(){return this.url.origin===this.pageUrl.origin?this.url.pathname:`/${encodeURIComponent(this.url.host)}/${this.url.pathname}`}hash(a){return createHash("md5").update(a).digest("hex")}renameReservedPathnames(a){if(this.url.origin===this.pageUrl.origin&&Ra.includes(a)){let i=this.hash(this.url.toString()),e=y.basename(a,y.extname(a));return `${y.dirname(a)}/${e}-${i}${y.extname(a)}`}return a}},s(N,"D"),N);d(ia,"ArchiveFile");var Ca=ia,J=Y(Ea()),Ta=/url\((?!['"]?(?:data):)['"]?([^'")]*)['"]?\)/gi,R,ta=(R=class{constructor(a){if(b(this,"snapshot"),Buffer.isBuffer(a)){let i=a.toString("utf-8");this.snapshot=JSON.parse(i);}else this.snapshot=JSON.parse(a);}async mapAssetPaths(a){let i=await this.mapNode(this.snapshot,a);return JSON.stringify(i)}async mapNode(a,i){return a=this.mapNodeAttributes(a,i),a=this.mapTextElement(a,i),"childNodes"in a&&(a.childNodes=await Promise.all(a.childNodes.map(async e=>this.mapNode(e,i)))),a}mapNodeAttributes(a,i){if(a.type===NodeType.Element){if(a.attributes.src){let e=a.attributes.src;i.has(e)&&(a.attributes.src=i.get(e));}if(a.attributes.style){let e=a.attributes.style,p=this.mapCssUrls(e,i);a.attributes.style=p;}if(a.attributes._cssText){let e=a.attributes._cssText,p=this.mapCssUrls(e,i);a.attributes._cssText=p;}if(["link","use"].includes(a.tagName)&&a.attributes.href){let e=a.attributes.href.split("#"),p=e[0];i.has(p)&&(e[0]=i.get(p),a.attributes.href=e.join("#"));}if(a.tagName==="img"&&a.attributes.srcset){let e=a.attributes.srcset,p=this.mapSrcsetUrls(e,i);p&&(a.attributes.src=p,delete a.attributes.srcset,delete a.attributes.sizes);}a.tagName==="picture"&&this.mapPictureElement(a,i);}return a}mapPictureElement(a,i){let e=a.childNodes.filter(this.isSourceElement).map(p=>J.default.parse(p.attributes?.srcset??"").map(n=>n.url)).flat().find(p=>i.has(p));if(e){a.childNodes=a.childNodes.filter(n=>!this.isSourceElement(n));let p=a.childNodes.find(n=>n.type===NodeType.Element&&n.tagName==="img");p&&p.attributes&&(p.attributes.src=i.get(e));}}isSourceElement(a){return a.type===NodeType.Element&&a.tagName==="source"}mapTextElement(a,i){if(a.type===NodeType.Text&&a.isStyle&&a.textContent){let e=this.mapCssUrls(a.textContent,i);a.textContent=e;}return a}mapCssUrls(a,i){return a.replace(Ta,(e,p)=>{let n=e;return i.has(p)&&(n=e.replace(p,i.get(p))),n})}mapSrcsetUrls(a,i){let e=J.default.parse(a),p;return e.forEach(n=>{i.has(n.url)&&(p=i.get(n.url));}),p}},s(R,"B"),R);d(ta,"DOMSnapshot");var $a=ta;function ea(t){return `w${t.width}h${t.height}`}s(ea,"H");d(ea,"viewportToString");function Pa(t){let a=t.match(/w(\d+)h(\d+)/);return {width:Number(a[1]),height:Number(a[2])}}s(Pa,"_i");d(Pa,"parseViewport");var F=d(t=>t.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),"sanitize"),Ua="snapshot.json";function D(t,a){let i=`${F(t)}-${F(a)}`,e=_-25;return A(i,e)}s(D,"L");d(D,"snapshotId");function pa(t,a){return [t,ea(a),Ua].join(".")}s(pa,"oi");d(pa,"snapshotFileName");var Oa="stories.json";function na(t){let a=[F(t),Oa].join("."),i=_-25;return A(a,i)}s(na,"si");d(na,"storiesFileName");function oa(t,a,i){return {title:t,stories:Object.keys(a).map(e=>({name:e,parameters:{server:{id:D(t,e)},chromatic:{...i}}}))}}s(oa,"ci");d(oa,"createStories");async function I(t,a,i,e){let{titlePath:p,outputDir:n,pageUrl:c,viewport:o}=t,l=p.map(x=>x.replace(/\.(ts|js|mjs|cjs|tsx|jsx|cjsx|coffee)$/,"").replace(/\.(spec|test|cy)$/,"")).join("/"),r=join(n,"chromatic-archives"),m=join(r,"archive");await L(m),w.log(`Writing test results for "${l}"`);let f=new Map;await Promise.all(Object.entries(i).map(async([x,h])=>{if("error"in h)return;let j=new Ca(x,h,c),z=j.originalSrc(),q=j.toFileSystemPath();z!==q&&f.set(z,q),await P(join(m,q),h.body);})),await Promise.all(await Object.entries(a).map(async([x,h])=>{let j=await new $a(h).mapAssetPaths(f),z=pa(D(l,x),o);await P(join(m,z),j);}));let g=na(l),v=oa(l,a,e);await O(join(r,g),v);let u=Object.entries(i).filter(([,x])=>"error"in x);u.length>0&&(w.log(`Encountered ${u.length} errors archiving resources, writing to 'errors.json'`),await O(join(m,"errors.json"),{errors:Object.fromEntries(u)}));}s(I,"$a");d(I,"writeTestResult");var Fa=new Analytics({writeKey:process.env.SEGMENT_WRITE_KEY||"cwWhBWso2gwzyenW29CnCp30Kjz4DogE"}),La="@chromaui/test-archiver run";function B(t,a){Fa.track({userId:La,event:t,properties:a});}s(B,"mi");d(B,"track");var V=!1;function M(t={}){V||(B("run",t),V=!0);}s(M,"Pa");d(M,"trackRun");var Q=!1;function W(t={}){Q||(B("complete",t),Q=!0);}s(W,"Oa");d(W,"trackComplete");var T=1e4;var Da=readFileSync(G.resolve("@chromaui/rrweb-snapshot"),"utf8"),k=new Map;async function H(t,a,i){let e,p;if(typeof a=="string"){if(!i)throw new Error("Incorrect usage");p=i.testId,e=a;}else p=a.testId,e=`Snapshot #${k.has(p)?k.get(p).size+1:1}`;t.on("console",o=>{w.log(`CONSOLE: "${o.text()}"`);});let n=await t.evaluate(dedent`
|
|
14
14
|
${Da};
|
|
15
15
|
|
|
16
16
|
// this code was erroring the page.evaluate() when it was passed as a function to page.evaluate(),
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/makeTest.ts","../src/takeSnapshot.ts","../src/createResourceArchive.ts"],"names":["test","base","expect","join","readFileSync","dedent","rrweb","require","resolve","chromaticSnapshots","Map","takeSnapshot","page","nameOrTestInfo","maybeTestInfo","name","testId","Error","has","get","size","number","on","msg","logger","log","text","domSnapshot","evaluate","bufferedSnapshot","Buffer","from","JSON","stringify","set","idle","__name","networkTimeoutMs","DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS","globalNetworkTimerId","globalNetworkResolver","globalNetworkTimeout","Promise","setTimeout","warn","networkIdlePromise","waitForLoadState","finally","clearTimeout","race","createResourceArchive","networkTimeout","assetDomains","httpCredentials","cdpClient","context","newCDPSession","resourceArchiver","ResourceArchiver","watch","archive","performChromaticSnapshot","delay","diffIncludeAntiAliasing","diffThreshold","disableAutoSnapshot","forcedColors","pauseAnimationAtEnd","prefersReducedMotion","resourceArchiveTimeout","cropToViewport","ignoreSelectors","use","testInfo","project","trackRun","browser","browserType","completeArchive","resourceArchive","snapshots","chromaticStorybookParams","outputDir","writeTestResult","pageUrl","url","viewport","viewportSize","Object","fromEntries","trackComplete","delete","makeTest","extend","undefined","option","chromaticSnapshot","auto"],"mappings":"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","sourcesContent":["import { test as base, expect } from '@playwright/test';\n\nimport { makeTest } from './makeTest';\n\nexport const test = makeTest(base);\nexport { expect };\n\nexport { takeSnapshot } from './takeSnapshot';\nexport type { ChromaticConfig } from '@chromatic-com/shared-e2e';\n","import type {\n TestType,\n PlaywrightTestArgs,\n PlaywrightTestOptions,\n PlaywrightWorkerArgs,\n PlaywrightWorkerOptions,\n TestInfo,\n Page,\n} from '@playwright/test';\nimport type { ChromaticConfig } from '@chromatic-com/shared-e2e';\nimport {\n writeTestResult,\n trackComplete,\n trackRun,\n DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS,\n} from '@chromatic-com/shared-e2e';\nimport { join } from 'node:path';\nimport { chromaticSnapshots, takeSnapshot } from './takeSnapshot';\nimport { createResourceArchive } from './createResourceArchive';\n\nexport const performChromaticSnapshot = async (\n {\n page,\n delay,\n diffIncludeAntiAliasing,\n diffThreshold,\n disableAutoSnapshot,\n forcedColors,\n pauseAnimationAtEnd,\n prefersReducedMotion,\n resourceArchiveTimeout,\n assetDomains,\n cropToViewport,\n ignoreSelectors,\n }: ChromaticConfig & { page: Page },\n use: () => Promise<void>,\n testInfo: TestInfo\n) => {\n const { testId, project } = testInfo;\n const httpCredentials = project?.use?.httpCredentials;\n\n try {\n trackRun();\n\n // CDP only works in Chromium, so we only capture archives in Chromium.\n // We can later snapshot them in different browsers in the cloud.\n // TODO: I'm not sure if this is the best way to detect the browser version, but\n // it seems to work\n if (page.context().browser().browserType().name() !== 'chromium') {\n await use();\n return;\n }\n\n const completeArchive = await createResourceArchive({\n page,\n networkTimeout: resourceArchiveTimeout,\n assetDomains,\n httpCredentials,\n });\n await use();\n\n if (!disableAutoSnapshot) {\n await takeSnapshot(page, testInfo);\n }\n\n const resourceArchive = await completeArchive();\n const snapshots: Map<string, Buffer> = chromaticSnapshots.get(testId) || new Map();\n\n const chromaticStorybookParams = {\n ...(delay && { delay }),\n ...(diffIncludeAntiAliasing && { diffIncludeAntiAliasing }),\n ...(diffThreshold && { diffThreshold }),\n ...(forcedColors && { forcedColors }),\n ...(pauseAnimationAtEnd && { pauseAnimationAtEnd }),\n ...(prefersReducedMotion && { prefersReducedMotion }),\n ...(cropToViewport && { cropToViewport }),\n ...(ignoreSelectors && { ignoreSelectors }),\n };\n\n // TestInfo.outputDir gives us the test-specific subfolder (https://playwright.dev/docs/api/class-testconfig#test-config-output-dir);\n // we want to write one level above that\n const outputDir = join(testInfo.outputDir, '..');\n await writeTestResult(\n { ...testInfo, outputDir, pageUrl: page.url(), viewport: page.viewportSize() },\n Object.fromEntries(snapshots),\n resourceArchive,\n chromaticStorybookParams\n );\n\n trackComplete();\n } finally {\n // make sure we clear the value associated with this test ID, so the shared chromaticSnapshots object stays small\n chromaticSnapshots.delete(testId);\n }\n};\n\n// We do this slightly odd thing (makeTest) to avoid importing playwright multiple times when\n// linking this package. To avoid the main entry, you can:\n//\n// import { makeTest } from '@chromaui/test-archiver/src/playwright-api/makeTest';\n// import { takeSnapshot as snapshot } from '@chromaui/test-archiver/src/playwright-api/takeSnapshot';\nexport const makeTest = (\n base: TestType<\n PlaywrightTestArgs & PlaywrightTestOptions,\n PlaywrightWorkerArgs & PlaywrightWorkerOptions\n >\n) =>\n base.extend<ChromaticConfig & { chromaticSnapshot: void }>({\n // ChromaticConfig defaults\n delay: [undefined, { option: true }],\n diffIncludeAntiAliasing: [undefined, { option: true }],\n diffThreshold: [undefined, { option: true }],\n disableAutoSnapshot: [false, { option: true }],\n forcedColors: [undefined, { option: true }],\n pauseAnimationAtEnd: [undefined, { option: true }],\n prefersReducedMotion: [undefined, { option: true }],\n resourceArchiveTimeout: [DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS, { option: true }],\n assetDomains: [[], { option: true }],\n cropToViewport: [undefined, { option: true }],\n ignoreSelectors: [undefined, { option: true }],\n\n chromaticSnapshot: [\n performChromaticSnapshot,\n // ensures this fixture runs without having to be explicitly called (https://playwright.dev/docs/test-fixtures#automatic-fixtures)\n { auto: true },\n ],\n });\n","import type { Page, TestInfo } from '@playwright/test';\nimport { readFileSync } from 'fs';\nimport { dedent } from 'ts-dedent';\nimport type { serializedNodeWithId } from '@chromaui/rrweb-snapshot';\nimport { logger } from '@chromatic-com/shared-e2e';\n\nconst rrweb = readFileSync(require.resolve('@chromaui/rrweb-snapshot'), 'utf8');\n\n// top-level key is the test ID, next level key is the name of the snapshot (which we expect to be unique)\nexport const chromaticSnapshots: Map<string, Map<string, Buffer>> = new Map();\n\nasync function takeSnapshot(page: Page, testInfo: TestInfo): Promise<void>;\nasync function takeSnapshot(page: Page, name: string, testInfo: TestInfo): Promise<void>;\nasync function takeSnapshot(\n page: Page,\n nameOrTestInfo: string | TestInfo,\n maybeTestInfo?: TestInfo\n): Promise<void> {\n let name: string;\n let testId: string;\n if (typeof nameOrTestInfo === 'string') {\n if (!maybeTestInfo) throw new Error('Incorrect usage');\n testId = maybeTestInfo.testId;\n name = nameOrTestInfo;\n } else {\n testId = nameOrTestInfo.testId;\n const number = chromaticSnapshots.has(testId) ? chromaticSnapshots.get(testId).size + 1 : 1;\n name = `Snapshot #${number}`;\n }\n\n page.on('console', (msg) => {\n logger.log(`CONSOLE: \"${msg.text()}\"`);\n });\n\n // Serialize and capture the DOM\n const domSnapshot: serializedNodeWithId = await page.evaluate(dedent`\n ${rrweb};\n\n // this code was erroring the page.evaluate() when it was passed as a function to page.evaluate(),\n // so for now it is being passed as a string until that can be resolved.\n const doPostProcessing = (rrwebSnapshotInstance, documentToSnapshot) => {\n return new Promise((resolve) => {\n const domSnapshot = rrwebSnapshotInstance.snapshot(documentToSnapshot, { recordCanvas: true });\n // do some post-processing on the snapshot\n const toDataURL = async (url) => {\n // read contents of the blob URL\n const response = await fetch(url);\n const blob = await response.blob();\n return new Promise((resolveFileRead, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolveFileRead(reader.result);\n reader.onerror = reject;\n // convert the blob to base64 string\n reader.readAsDataURL(blob);\n });\n };\n\n const replaceBlobUrls = async (node) => {\n await Promise.all(\n node.childNodes.map(async (childNode) => {\n if (childNode.tagName === 'img' && childNode.attributes.src?.startsWith('blob:')) {\n const base64Url = await toDataURL(childNode.attributes.src);\n // eslint-disable-next-line no-param-reassign\n childNode.attributes.src = base64Url;\n }\n\n if (childNode.childNodes?.length) {\n await replaceBlobUrls(childNode);\n }\n })\n );\n };\n\n replaceBlobUrls(domSnapshot).then(() => {\n resolve(domSnapshot);\n });\n });\n };\n\n // page.evaluate returns the value of the function being evaluated. In this case, it means that\n // it is returning either the resolved value of the Promise or the return value of the call to\n // the snapshot function. See https://playwright.dev/docs/api/class-page#page-evaluate.\n if (typeof define === 'function' && define.amd) {\n // AMD support is detected, so we need to load rrwebSnapshot asynchronously\n new Promise((resolve) => {\n // eslint-disable-next-line import/no-dynamic-require, global-require\n require(['rrwebSnapshot'], (rrwebSnapshot) => {\n doPostProcessing(rrwebSnapshot, document).then((domSnapshot) => {\n resolve(domSnapshot);\n });\n });\n });\n } else {\n new Promise((resolve) => {\n doPostProcessing(rrwebSnapshot, document).then((domSnapshot) => {\n resolve(domSnapshot);\n }); \n });\n } \n `);\n\n const bufferedSnapshot = Buffer.from(JSON.stringify(domSnapshot));\n if (!chromaticSnapshots.has(testId)) {\n // map used so the snapshots are always in order\n chromaticSnapshots.set(testId, new Map());\n }\n chromaticSnapshots.get(testId).set(name, bufferedSnapshot);\n}\n\nexport { takeSnapshot };\n","import type { Page } from 'playwright';\nimport {\n ResourceArchiver,\n ResourceArchive,\n DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS,\n logger,\n HttpCredentials,\n} from '@chromatic-com/shared-e2e';\n\nconst idle = async (page: Page, networkTimeoutMs = DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS) => {\n let globalNetworkTimerId: null | ReturnType<typeof setTimeout> = null;\n let globalNetworkResolver: null | (() => void) = null;\n // XXX_jwir3: The way this works is as follows:\n // There are two promises created here. They wrap two separate timers, and we await on a race of both Promises.\n\n // The first promise wraps a global timeout, where all requests MUST complete before that timeout has passed.\n // If the timeout passes, an error is thrown. This promise can only throw errors, it cannot resolve successfully.\n const globalNetworkTimeout = new Promise<void>((resolve) => {\n globalNetworkResolver = resolve;\n\n globalNetworkTimerId = setTimeout(() => {\n logger.warn(`Global timeout of ${networkTimeoutMs}ms reached`);\n globalNetworkResolver();\n }, networkTimeoutMs);\n });\n\n // The second promise wraps a network idle timeout. This uses playwright's built-in functionality to detect when the network\n // is idle.\n const networkIdlePromise = page.waitForLoadState('networkidle').finally(() => {\n clearTimeout(globalNetworkTimerId);\n });\n\n await Promise.race([globalNetworkTimeout, networkIdlePromise]);\n};\n\nexport const createResourceArchive = async ({\n page,\n networkTimeout,\n assetDomains,\n httpCredentials,\n}: {\n page: Page;\n networkTimeout?: number;\n assetDomains?: string[];\n httpCredentials?: HttpCredentials;\n}): Promise<() => Promise<ResourceArchive>> => {\n const cdpClient = await page.context().newCDPSession(page);\n\n const resourceArchiver = new ResourceArchiver(cdpClient, assetDomains, httpCredentials);\n await resourceArchiver.watch();\n\n return async () => {\n await idle(page, networkTimeout ?? DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS);\n\n return resourceArchiver.archive;\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/makeTest.ts","../src/takeSnapshot.ts","../src/createResourceArchive.ts"],"names":["test","base","expect","join","readFileSync","dedent","rrweb","require","resolve","chromaticSnapshots","Map","takeSnapshot","page","nameOrTestInfo","maybeTestInfo","name","testId","Error","has","get","size","number","on","msg","logger","log","text","domSnapshot","evaluate","bufferedSnapshot","Buffer","from","JSON","stringify","set","idle","__name","networkTimeoutMs","DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS","globalNetworkTimerId","globalNetworkResolver","globalNetworkTimeout","Promise","setTimeout","warn","networkIdlePromise","waitForLoadState","finally","clearTimeout","race","createResourceArchive","networkTimeout","assetDomains","httpCredentials","cdpClient","context","newCDPSession","resourceArchiver","ResourceArchiver","watch","archive","performChromaticSnapshot","delay","diffIncludeAntiAliasing","diffThreshold","disableAutoSnapshot","forcedColors","pauseAnimationAtEnd","prefersReducedMotion","resourceArchiveTimeout","cropToViewport","ignoreSelectors","use","testInfo","project","trackRun","browser","browserType","completeArchive","resourceArchive","snapshots","chromaticStorybookParams","outputDir","writeTestResult","pageUrl","url","viewport","viewportSize","Object","fromEntries","trackComplete","delete","makeTest","extend","undefined","option","chromaticSnapshot","auto"],"mappings":"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","sourcesContent":["import { test as base, expect } from '@playwright/test';\n\nimport { makeTest } from './makeTest';\n\nexport const test = makeTest(base);\nexport { expect };\n\nexport { takeSnapshot } from './takeSnapshot';\nexport type { ChromaticConfig } from '@chromatic-com/shared-e2e';\n","import type {\n TestType,\n PlaywrightTestArgs,\n PlaywrightTestOptions,\n PlaywrightWorkerArgs,\n PlaywrightWorkerOptions,\n TestInfo,\n Page,\n} from '@playwright/test';\nimport type { ChromaticConfig } from '@chromatic-com/shared-e2e';\nimport {\n writeTestResult,\n trackComplete,\n trackRun,\n DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS,\n} from '@chromatic-com/shared-e2e';\nimport { join } from 'node:path';\nimport { chromaticSnapshots, takeSnapshot } from './takeSnapshot';\nimport { createResourceArchive } from './createResourceArchive';\n\nexport const performChromaticSnapshot = async (\n {\n page,\n delay,\n diffIncludeAntiAliasing,\n diffThreshold,\n disableAutoSnapshot,\n forcedColors,\n pauseAnimationAtEnd,\n prefersReducedMotion,\n resourceArchiveTimeout,\n assetDomains,\n cropToViewport,\n ignoreSelectors,\n }: ChromaticConfig & { page: Page },\n use: () => Promise<void>,\n testInfo: TestInfo\n) => {\n const { testId, project } = testInfo;\n const httpCredentials = project?.use?.httpCredentials;\n\n try {\n trackRun();\n\n // CDP only works in Chromium, so we only capture archives in Chromium.\n // We can later snapshot them in different browsers in the cloud.\n // TODO: I'm not sure if this is the best way to detect the browser version, but\n // it seems to work\n if (page.context().browser().browserType().name() !== 'chromium') {\n await use();\n return;\n }\n\n const completeArchive = await createResourceArchive({\n page,\n networkTimeout: resourceArchiveTimeout,\n assetDomains,\n httpCredentials,\n });\n await use();\n\n if (!disableAutoSnapshot) {\n await takeSnapshot(page, testInfo);\n }\n\n const resourceArchive = await completeArchive();\n const snapshots: Map<string, Buffer> = chromaticSnapshots.get(testId) || new Map();\n\n const chromaticStorybookParams = {\n ...(delay && { delay }),\n ...(diffIncludeAntiAliasing && { diffIncludeAntiAliasing }),\n ...(diffThreshold && { diffThreshold }),\n ...(forcedColors && { forcedColors }),\n ...(pauseAnimationAtEnd && { pauseAnimationAtEnd }),\n ...(prefersReducedMotion && { prefersReducedMotion }),\n ...(cropToViewport && { cropToViewport }),\n ...(ignoreSelectors && { ignoreSelectors }),\n };\n\n // TestInfo.outputDir gives us the test-specific subfolder (https://playwright.dev/docs/api/class-testconfig#test-config-output-dir);\n // we want to write one level above that\n const outputDir = join(testInfo.outputDir, '..');\n await writeTestResult(\n { ...testInfo, outputDir, pageUrl: page.url(), viewport: page.viewportSize() },\n Object.fromEntries(snapshots),\n resourceArchive,\n chromaticStorybookParams\n );\n\n trackComplete();\n } finally {\n // make sure we clear the value associated with this test ID, so the shared chromaticSnapshots object stays small\n chromaticSnapshots.delete(testId);\n }\n};\n\n// We do this slightly odd thing (makeTest) to avoid importing playwright multiple times when\n// linking this package. To avoid the main entry, you can:\n//\n// import { makeTest } from '@chromaui/test-archiver/src/playwright-api/makeTest';\n// import { takeSnapshot as snapshot } from '@chromaui/test-archiver/src/playwright-api/takeSnapshot';\nexport const makeTest = (\n base: TestType<\n PlaywrightTestArgs & PlaywrightTestOptions,\n PlaywrightWorkerArgs & PlaywrightWorkerOptions\n >\n) =>\n base.extend<ChromaticConfig & { chromaticSnapshot: void }>({\n // ChromaticConfig defaults\n delay: [undefined, { option: true }],\n diffIncludeAntiAliasing: [undefined, { option: true }],\n diffThreshold: [undefined, { option: true }],\n disableAutoSnapshot: [false, { option: true }],\n forcedColors: [undefined, { option: true }],\n pauseAnimationAtEnd: [undefined, { option: true }],\n prefersReducedMotion: [undefined, { option: true }],\n resourceArchiveTimeout: [DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS, { option: true }],\n assetDomains: [[], { option: true }],\n cropToViewport: [undefined, { option: true }],\n ignoreSelectors: [undefined, { option: true }],\n\n chromaticSnapshot: [\n performChromaticSnapshot,\n // ensures this fixture runs without having to be explicitly called (https://playwright.dev/docs/test-fixtures#automatic-fixtures)\n { auto: true },\n ],\n });\n","import type { Page, TestInfo } from '@playwright/test';\nimport { readFileSync } from 'fs';\nimport { dedent } from 'ts-dedent';\nimport type { serializedNodeWithId } from '@chromaui/rrweb-snapshot';\nimport { logger } from '@chromatic-com/shared-e2e';\n\nconst rrweb = readFileSync(require.resolve('@chromaui/rrweb-snapshot'), 'utf8');\n\n// top-level key is the test ID, next level key is the name of the snapshot (which we expect to be unique)\nexport const chromaticSnapshots: Map<string, Map<string, Buffer>> = new Map();\n\nasync function takeSnapshot(page: Page, testInfo: TestInfo): Promise<void>;\nasync function takeSnapshot(page: Page, name: string, testInfo: TestInfo): Promise<void>;\nasync function takeSnapshot(\n page: Page,\n nameOrTestInfo: string | TestInfo,\n maybeTestInfo?: TestInfo\n): Promise<void> {\n let name: string;\n let testId: string;\n if (typeof nameOrTestInfo === 'string') {\n if (!maybeTestInfo) throw new Error('Incorrect usage');\n testId = maybeTestInfo.testId;\n name = nameOrTestInfo;\n } else {\n testId = nameOrTestInfo.testId;\n const number = chromaticSnapshots.has(testId) ? chromaticSnapshots.get(testId).size + 1 : 1;\n name = `Snapshot #${number}`;\n }\n\n page.on('console', (msg) => {\n logger.log(`CONSOLE: \"${msg.text()}\"`);\n });\n\n // Serialize and capture the DOM\n const domSnapshot: serializedNodeWithId = await page.evaluate(dedent`\n ${rrweb};\n\n // this code was erroring the page.evaluate() when it was passed as a function to page.evaluate(),\n // so for now it is being passed as a string until that can be resolved.\n const doPostProcessing = (rrwebSnapshotInstance, documentToSnapshot) => {\n return new Promise((resolve) => {\n const domSnapshot = rrwebSnapshotInstance.snapshot(documentToSnapshot, { recordCanvas: true });\n // do some post-processing on the snapshot\n const toDataURL = async (url) => {\n // read contents of the blob URL\n const response = await fetch(url);\n const blob = await response.blob();\n return new Promise((resolveFileRead, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => resolveFileRead(reader.result);\n reader.onerror = reject;\n // convert the blob to base64 string\n reader.readAsDataURL(blob);\n });\n };\n\n const replaceBlobUrls = async (node) => {\n await Promise.all(\n node.childNodes.map(async (childNode) => {\n if (childNode.tagName === 'img' && childNode.attributes.src?.startsWith('blob:')) {\n const base64Url = await toDataURL(childNode.attributes.src);\n // eslint-disable-next-line no-param-reassign\n childNode.attributes.src = base64Url;\n }\n\n if (childNode.childNodes?.length) {\n await replaceBlobUrls(childNode);\n }\n })\n );\n };\n\n replaceBlobUrls(domSnapshot).then(() => {\n resolve(domSnapshot);\n });\n });\n };\n\n // page.evaluate returns the value of the function being evaluated. In this case, it means that\n // it is returning either the resolved value of the Promise or the return value of the call to\n // the snapshot function. See https://playwright.dev/docs/api/class-page#page-evaluate.\n if (typeof define === 'function' && define.amd) {\n // AMD support is detected, so we need to load rrwebSnapshot asynchronously\n new Promise((resolve) => {\n // eslint-disable-next-line import/no-dynamic-require, global-require\n require(['rrwebSnapshot'], (rrwebSnapshot) => {\n doPostProcessing(rrwebSnapshot, document).then((domSnapshot) => {\n resolve(domSnapshot);\n });\n });\n });\n } else {\n new Promise((resolve) => {\n doPostProcessing(rrwebSnapshot, document).then((domSnapshot) => {\n resolve(domSnapshot);\n }); \n });\n } \n `);\n\n const bufferedSnapshot = Buffer.from(JSON.stringify(domSnapshot));\n if (!chromaticSnapshots.has(testId)) {\n // map used so the snapshots are always in order\n chromaticSnapshots.set(testId, new Map());\n }\n chromaticSnapshots.get(testId).set(name, bufferedSnapshot);\n}\n\nexport { takeSnapshot };\n","import type { Page } from 'playwright';\nimport {\n ResourceArchiver,\n ResourceArchive,\n DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS,\n logger,\n HttpCredentials,\n} from '@chromatic-com/shared-e2e';\n\nconst idle = async (page: Page, networkTimeoutMs = DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS) => {\n let globalNetworkTimerId: null | ReturnType<typeof setTimeout> = null;\n let globalNetworkResolver: null | (() => void) = null;\n // XXX_jwir3: The way this works is as follows:\n // There are two promises created here. They wrap two separate timers, and we await on a race of both Promises.\n\n // The first promise wraps a global timeout, where all requests MUST complete before that timeout has passed.\n // If the timeout passes, an error is thrown. This promise can only throw errors, it cannot resolve successfully.\n const globalNetworkTimeout = new Promise<void>((resolve) => {\n globalNetworkResolver = resolve;\n\n globalNetworkTimerId = setTimeout(() => {\n logger.warn(`Global timeout of ${networkTimeoutMs}ms reached`);\n globalNetworkResolver();\n }, networkTimeoutMs);\n });\n\n // The second promise wraps a network idle timeout. This uses playwright's built-in functionality to detect when the network\n // is idle.\n const networkIdlePromise = page.waitForLoadState('networkidle').finally(() => {\n clearTimeout(globalNetworkTimerId);\n });\n\n await Promise.race([globalNetworkTimeout, networkIdlePromise]);\n};\n\nexport const createResourceArchive = async ({\n page,\n networkTimeout,\n assetDomains,\n httpCredentials,\n}: {\n page: Page;\n networkTimeout?: number;\n assetDomains?: string[];\n httpCredentials?: HttpCredentials;\n}): Promise<() => Promise<ResourceArchive>> => {\n const cdpClient = await page.context().newCDPSession(page);\n\n const resourceArchiver = new ResourceArchiver(cdpClient, assetDomains, httpCredentials);\n await resourceArchiver.watch();\n\n return async () => {\n await idle(page, networkTimeout ?? DEFAULT_GLOBAL_RESOURCE_ARCHIVE_TIMEOUT_MS);\n\n return resourceArchiver.archive;\n };\n};\n"]}
|