@chromatic-com/playwright 0.10.1 → 0.10.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.
@@ -10,8 +10,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
11
11
  var c__default = /*#__PURE__*/_interopDefault(c);
12
12
 
13
- var U=Object.defineProperty;var i=(e,r)=>U(e,"name",{value:r,configurable:!0}),u=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var G=Object.defineProperty,o=i((e,r)=>G(e,"name",{value:r,configurable:!0}),"r"),w=(e=>typeof u<"u"?u:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof u<"u"?u:r)[t]}):e)(function(e){if(typeof u<"u")return u.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function S(){return process.cwd()}i(S,"V");o(S,"rootDir");function F(){let{CHROMATIC_ARCHIVE_LOCATION:e}=process.env;return e}i(F,"O");o(F,"outputDirOverride");function l(e){let r=F()||e;return c__default.default.resolve(S(),r,"chromatic-archives")}i(l,"c");o(l,"archivesDir");function k(e){return c__default.default.resolve(l(e),"archive")}i(k,"d");o(k,"assetsDir");function d(e){let r=l(e);if(!fs.existsSync(r))throw new Error(`Chromatic archives directory cannot be found: ${r}
13
+ var U=Object.defineProperty;var i=(e,r)=>U(e,"name",{value:r,configurable:!0}),u=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var G=Object.defineProperty,o=i((e,r)=>G(e,"name",{value:r,configurable:!0}),"r"),y=(e=>typeof u<"u"?u:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof u<"u"?u:r)[t]}):e)(function(e){if(typeof u<"u")return u.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function g(){return process.cwd()}i(g,"V");o(g,"rootDir");function F(){let{CHROMATIC_ARCHIVE_LOCATION:e}=process.env;return e}i(F,"O");o(F,"outputDirOverride");function l(e){let r=F()||e;return c__default.default.resolve(g(),r,"chromatic-archives")}i(l,"c");o(l,"archivesDir");function k(e){return c__default.default.resolve(l(e),"archive")}i(k,"l");o(k,"assetsDir");function d(e){let r=l(e);if(!fs.existsSync(r))throw new Error(`Chromatic archives directory cannot be found: ${r}
14
14
 
15
- Please make sure that you have run your E2E tests, or have set the CHROMATIC_ARCHIVE_LOCATION env var if the output directory for the tests is not in the standard location.`)}i(d,"h");o(d,"checkArchivesDirExists");function O(e){fs.existsSync(e)||fs.mkdirSync(e,{recursive:!0});}i(O,"$");o(O,"ensureDir");async function T(e,r){return O(c__default.default.dirname(e)),promises.writeFile(e,r,{mode:511})}i(T,"C");o(T,"outputFile");async function C(e,r){return T(e,JSON.stringify(r))}i(C,"w");o(C,"outputJSONFile");async function D(e){let r=await promises.readFile(e);return JSON.parse(r.toString())}i(D,"x");o(D,"readJSONFile");function p(e){return `w${e.width}h${e.height}`}i(p,"a");o(p,"viewportToString");function A(e){let r=e.match(/w(\d+)h(\d+)/);return {width:Number(r[1]),height:Number(r[2])}}i(A,"N");o(A,"parseViewport");var X="snapshot.json";function x(e){let r=e.split(".");return r.slice(0,r.length-3).join(".")}i(x,"F");o(x,"snapshotIdFromFileName");function E(e){let r=e.split("."),t=r[r.length-3];return A(t)}i(E,"S");o(E,"viewportFromFileName");async function N(e){return (await promises.readdir(e)).filter(r=>r.endsWith(`.${X}`))}i(N,"v");o(N,"listSnapshotFiles");var B="stories.json";function _(e,r){let{stories:t}=e,n=t.map(s=>{let h=s.parameters.server.id,a=r[h];return {...s,parameters:{...s.parameters,chromatic:{...s.parameters.chromatic,modes:V(a)},viewport:{viewports:P(a),defaultViewport:p($(a))}}}});return {...e,stories:n}}i(_,"g");o(_,"addViewportsToStories");async function I(e){return (await promises.readdir(e)).filter(r=>r.endsWith(`.${B}`))}i(I,"E");o(I,"listStoriesFiles");function V(e){return e.reduce((r,t)=>{let n=p(t);return r[n]={viewport:n},r},{})}i(V,"X");o(V,"buildStoryModesConfig");function P(e){return e.reduce((r,t)=>{let n=p(t);return r[n]={name:n,styles:{width:`${t.width}px`,height:`${t.height}px`}},r},{})}i(P,"W");o(P,"buildStoryViewportsConfig");function $(e){let r=o((t,n)=>t.width<n.width?1:t.width>n.width?-1:0,"compareFn");return e.sort(r)[0]}i($,"z");o($,"findDefaultViewport");async function f(e){let r=k(e),t=await N(r),n=q(t),s=l(e),h=(await I(s)).map(a=>c__default.default.resolve(s,a));await Promise.all(h.map(async a=>{let j=await D(a),L=_(j,n);await C(a,L);}));}i(f,"l");o(f,"addViewportsToStoriesFiles");function q(e){let r={};return e.forEach(t=>{let n=x(t),s=r[n]||[];s.push(E(t)),r[n]=s;}),r}i(q,"G");o(q,"buildSnapshotViewportsLookup");function m(e,r,t){d(t),f(t).then(()=>{child_process.execFileSync("node",[v(),"dev",...e,"-c",r],{stdio:"inherit"});});}i(m,"Lt");o(m,"archiveStorybook");function K(e,r,t){d(t),f(t).then(()=>{child_process.execFileSync("node",[v(),"build",...e,"-c",r],{stdio:"inherit"});});}i(K,"kt");o(K,"buildArchiveStorybook");function v(){let e=w("storybook/package.json");return c.resolve(c.dirname(w.resolve("storybook/package.json")),e.bin.storybook)}i(v,"I");o(v,"binPath");var R="test-results";var Y=process.argv.slice(2),Z=c__default.default.resolve(__dirname,"../storybook-config");try{m(Y,Z,R);}catch(e){console.error(e.message),process.exitCode=1;}
15
+ Please make sure that you have run your E2E tests, or have set the CHROMATIC_ARCHIVE_LOCATION env var if the output directory for the tests is not in the standard location.`)}i(d,"h");o(d,"checkArchivesDirExists");function O(e){fs.existsSync(e)||fs.mkdirSync(e,{recursive:!0});}i(O,"$");o(O,"ensureDir");async function T(e,r){return O(c__default.default.dirname(e)),promises.writeFile(e,r,{mode:511})}i(T,"B");o(T,"outputFile");async function D(e,r){return T(e,JSON.stringify(r))}i(D,"w");o(D,"outputJSONFile");async function A(e){let r=await promises.readFile(e);return JSON.parse(r.toString())}i(A,"N");o(A,"readJSONFile");function p(e){return `w${e.width}h${e.height}`}i(p,"a");o(p,"viewportToString");function C(e){let r=e.match(/w(\d+)h(\d+)/);return {width:Number(r[1]),height:Number(r[2])}}i(C,"x");o(C,"parseViewport");var X="snapshot.json";function x(e){let r=e.split(".");return r.slice(0,r.length-3).join(".")}i(x,"F");o(x,"snapshotIdFromFileName");function E(e){let r=e.split("."),t=r[r.length-3];return C(t)}i(E,"S");o(E,"viewportFromFileName");async function N(e){return (await promises.readdir(e)).filter(r=>r.endsWith(`.${X}`))}i(N,"v");o(N,"listSnapshotFiles");var z="stories.json";function _(e,r){let{stories:t}=e,n=t.map(s=>{let h=s.parameters.server.id,a=r[h];return {...s,parameters:{...s.parameters,chromatic:{...s.parameters.chromatic,modes:I(a)},viewport:{viewports:P(a),defaultViewport:p($(a))}}}});return {...e,stories:n}}i(_,"y");o(_,"addViewportsToStories");async function V(e){return (await promises.readdir(e)).filter(r=>r.endsWith(`.${z}`))}i(V,"E");o(V,"listStoriesFiles");function I(e){return e.reduce((r,t)=>{let n=p(t);return r[n]={viewport:n},r},{})}i(I,"R");o(I,"buildStoryModesConfig");function P(e){return e.reduce((r,t)=>{let n=p(t);return r[n]={name:n,styles:{width:`${t.width}px`,height:`${t.height}px`}},r},{})}i(P,"X");o(P,"buildStoryViewportsConfig");function $(e){let r=o((t,n)=>t.width<n.width?1:t.width>n.width?-1:0,"compareFn");return e.sort(r)[0]}i($,"W");o($,"findDefaultViewport");async function f(e){let r=k(e),t=await N(r),n=q(t),s=l(e),h=(await V(s)).map(a=>c__default.default.resolve(s,a));await Promise.all(h.map(async a=>{let j=await A(a),L=_(j,n);await D(a,L);}));}i(f,"d");o(f,"addViewportsToStoriesFiles");function q(e){let r={};return e.forEach(t=>{let n=x(t),s=r[n]||[];s.push(E(t)),r[n]=s;}),r}i(q,"G");o(q,"buildSnapshotViewportsLookup");function m(e,r,t){d(t),f(t).then(()=>{child_process.execFileSync("node",[v(),"dev",...e,"-c",r],{stdio:"inherit"});});}i(m,"Lt");o(m,"archiveStorybook");function K(e,r,t){d(t),f(t).then(()=>{child_process.execFileSync("node",[v(),"build",...e,"-c",r],{stdio:"inherit"});});}i(K,"kt");o(K,"buildArchiveStorybook");function v(){let e=y("storybook/package.json");return c.resolve(c.dirname(y.resolve("storybook/package.json")),e.bin.storybook)}i(v,"T");o(v,"binPath");var R="test-results";var Y=process.argv.slice(2),Z=c__default.default.resolve(__dirname,"../storybook-config");try{m(Y,Z,R);}catch(e){console.error(e.message),process.exitCode=1;}
16
16
  //# sourceMappingURL=out.js.map
17
17
  //# sourceMappingURL=archive-storybook.js.map
@@ -10,8 +10,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
10
 
11
11
  var c__default = /*#__PURE__*/_interopDefault(c);
12
12
 
13
- var U=Object.defineProperty;var i=(e,r)=>U(e,"name",{value:r,configurable:!0}),u=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var G=Object.defineProperty,o=i((e,r)=>G(e,"name",{value:r,configurable:!0}),"r"),w=(e=>typeof u<"u"?u:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof u<"u"?u:r)[t]}):e)(function(e){if(typeof u<"u")return u.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function S(){return process.cwd()}i(S,"V");o(S,"rootDir");function F(){let{CHROMATIC_ARCHIVE_LOCATION:e}=process.env;return e}i(F,"O");o(F,"outputDirOverride");function l(e){let r=F()||e;return c__default.default.resolve(S(),r,"chromatic-archives")}i(l,"c");o(l,"archivesDir");function k(e){return c__default.default.resolve(l(e),"archive")}i(k,"d");o(k,"assetsDir");function d(e){let r=l(e);if(!fs.existsSync(r))throw new Error(`Chromatic archives directory cannot be found: ${r}
13
+ var U=Object.defineProperty;var i=(e,r)=>U(e,"name",{value:r,configurable:!0}),u=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof require<"u"?require:r)[t]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var G=Object.defineProperty,o=i((e,r)=>G(e,"name",{value:r,configurable:!0}),"r"),y=(e=>typeof u<"u"?u:typeof Proxy<"u"?new Proxy(e,{get:(r,t)=>(typeof u<"u"?u:r)[t]}):e)(function(e){if(typeof u<"u")return u.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});function g(){return process.cwd()}i(g,"V");o(g,"rootDir");function F(){let{CHROMATIC_ARCHIVE_LOCATION:e}=process.env;return e}i(F,"O");o(F,"outputDirOverride");function l(e){let r=F()||e;return c__default.default.resolve(g(),r,"chromatic-archives")}i(l,"c");o(l,"archivesDir");function k(e){return c__default.default.resolve(l(e),"archive")}i(k,"l");o(k,"assetsDir");function d(e){let r=l(e);if(!fs.existsSync(r))throw new Error(`Chromatic archives directory cannot be found: ${r}
14
14
 
15
- Please make sure that you have run your E2E tests, or have set the CHROMATIC_ARCHIVE_LOCATION env var if the output directory for the tests is not in the standard location.`)}i(d,"h");o(d,"checkArchivesDirExists");function O(e){fs.existsSync(e)||fs.mkdirSync(e,{recursive:!0});}i(O,"$");o(O,"ensureDir");async function T(e,r){return O(c__default.default.dirname(e)),promises.writeFile(e,r,{mode:511})}i(T,"C");o(T,"outputFile");async function A(e,r){return T(e,JSON.stringify(r))}i(A,"w");o(A,"outputJSONFile");async function C(e){let r=await promises.readFile(e);return JSON.parse(r.toString())}i(C,"x");o(C,"readJSONFile");function p(e){return `w${e.width}h${e.height}`}i(p,"a");o(p,"viewportToString");function D(e){let r=e.match(/w(\d+)h(\d+)/);return {width:Number(r[1]),height:Number(r[2])}}i(D,"N");o(D,"parseViewport");var X="snapshot.json";function x(e){let r=e.split(".");return r.slice(0,r.length-3).join(".")}i(x,"F");o(x,"snapshotIdFromFileName");function E(e){let r=e.split("."),t=r[r.length-3];return D(t)}i(E,"S");o(E,"viewportFromFileName");async function N(e){return (await promises.readdir(e)).filter(r=>r.endsWith(`.${X}`))}i(N,"v");o(N,"listSnapshotFiles");var B="stories.json";function _(e,r){let{stories:t}=e,n=t.map(s=>{let h=s.parameters.server.id,a=r[h];return {...s,parameters:{...s.parameters,chromatic:{...s.parameters.chromatic,modes:V(a)},viewport:{viewports:P(a),defaultViewport:p($(a))}}}});return {...e,stories:n}}i(_,"g");o(_,"addViewportsToStories");async function I(e){return (await promises.readdir(e)).filter(r=>r.endsWith(`.${B}`))}i(I,"E");o(I,"listStoriesFiles");function V(e){return e.reduce((r,t)=>{let n=p(t);return r[n]={viewport:n},r},{})}i(V,"X");o(V,"buildStoryModesConfig");function P(e){return e.reduce((r,t)=>{let n=p(t);return r[n]={name:n,styles:{width:`${t.width}px`,height:`${t.height}px`}},r},{})}i(P,"W");o(P,"buildStoryViewportsConfig");function $(e){let r=o((t,n)=>t.width<n.width?1:t.width>n.width?-1:0,"compareFn");return e.sort(r)[0]}i($,"z");o($,"findDefaultViewport");async function f(e){let r=k(e),t=await N(r),n=q(t),s=l(e),h=(await I(s)).map(a=>c__default.default.resolve(s,a));await Promise.all(h.map(async a=>{let j=await C(a),L=_(j,n);await A(a,L);}));}i(f,"l");o(f,"addViewportsToStoriesFiles");function q(e){let r={};return e.forEach(t=>{let n=x(t),s=r[n]||[];s.push(E(t)),r[n]=s;}),r}i(q,"G");o(q,"buildSnapshotViewportsLookup");function K(e,r,t){d(t),f(t).then(()=>{child_process.execFileSync("node",[v(),"dev",...e,"-c",r],{stdio:"inherit"});});}i(K,"Lt");o(K,"archiveStorybook");function m(e,r,t){d(t),f(t).then(()=>{child_process.execFileSync("node",[v(),"build",...e,"-c",r],{stdio:"inherit"});});}i(m,"kt");o(m,"buildArchiveStorybook");function v(){let e=w("storybook/package.json");return c.resolve(c.dirname(w.resolve("storybook/package.json")),e.bin.storybook)}i(v,"I");o(v,"binPath");var R="test-results";var Y=process.argv.slice(2),Z=c__default.default.resolve(__dirname,"../storybook-config");try{m(Y,Z,R);}catch(e){console.error(e.message),process.exitCode=1;}
15
+ Please make sure that you have run your E2E tests, or have set the CHROMATIC_ARCHIVE_LOCATION env var if the output directory for the tests is not in the standard location.`)}i(d,"h");o(d,"checkArchivesDirExists");function O(e){fs.existsSync(e)||fs.mkdirSync(e,{recursive:!0});}i(O,"$");o(O,"ensureDir");async function T(e,r){return O(c__default.default.dirname(e)),promises.writeFile(e,r,{mode:511})}i(T,"B");o(T,"outputFile");async function A(e,r){return T(e,JSON.stringify(r))}i(A,"w");o(A,"outputJSONFile");async function D(e){let r=await promises.readFile(e);return JSON.parse(r.toString())}i(D,"N");o(D,"readJSONFile");function p(e){return `w${e.width}h${e.height}`}i(p,"a");o(p,"viewportToString");function C(e){let r=e.match(/w(\d+)h(\d+)/);return {width:Number(r[1]),height:Number(r[2])}}i(C,"x");o(C,"parseViewport");var X="snapshot.json";function x(e){let r=e.split(".");return r.slice(0,r.length-3).join(".")}i(x,"F");o(x,"snapshotIdFromFileName");function E(e){let r=e.split("."),t=r[r.length-3];return C(t)}i(E,"S");o(E,"viewportFromFileName");async function N(e){return (await promises.readdir(e)).filter(r=>r.endsWith(`.${X}`))}i(N,"v");o(N,"listSnapshotFiles");var z="stories.json";function _(e,r){let{stories:t}=e,n=t.map(s=>{let h=s.parameters.server.id,a=r[h];return {...s,parameters:{...s.parameters,chromatic:{...s.parameters.chromatic,modes:I(a)},viewport:{viewports:P(a),defaultViewport:p($(a))}}}});return {...e,stories:n}}i(_,"y");o(_,"addViewportsToStories");async function V(e){return (await promises.readdir(e)).filter(r=>r.endsWith(`.${z}`))}i(V,"E");o(V,"listStoriesFiles");function I(e){return e.reduce((r,t)=>{let n=p(t);return r[n]={viewport:n},r},{})}i(I,"R");o(I,"buildStoryModesConfig");function P(e){return e.reduce((r,t)=>{let n=p(t);return r[n]={name:n,styles:{width:`${t.width}px`,height:`${t.height}px`}},r},{})}i(P,"X");o(P,"buildStoryViewportsConfig");function $(e){let r=o((t,n)=>t.width<n.width?1:t.width>n.width?-1:0,"compareFn");return e.sort(r)[0]}i($,"W");o($,"findDefaultViewport");async function f(e){let r=k(e),t=await N(r),n=q(t),s=l(e),h=(await V(s)).map(a=>c__default.default.resolve(s,a));await Promise.all(h.map(async a=>{let j=await D(a),L=_(j,n);await A(a,L);}));}i(f,"d");o(f,"addViewportsToStoriesFiles");function q(e){let r={};return e.forEach(t=>{let n=x(t),s=r[n]||[];s.push(E(t)),r[n]=s;}),r}i(q,"G");o(q,"buildSnapshotViewportsLookup");function K(e,r,t){d(t),f(t).then(()=>{child_process.execFileSync("node",[v(),"dev",...e,"-c",r],{stdio:"inherit"});});}i(K,"Lt");o(K,"archiveStorybook");function m(e,r,t){d(t),f(t).then(()=>{child_process.execFileSync("node",[v(),"build",...e,"-c",r],{stdio:"inherit"});});}i(m,"kt");o(m,"buildArchiveStorybook");function v(){let e=y("storybook/package.json");return c.resolve(c.dirname(y.resolve("storybook/package.json")),e.bin.storybook)}i(v,"T");o(v,"binPath");var R="test-results";var Y=process.argv.slice(2),Z=c__default.default.resolve(__dirname,"../storybook-config");try{m(Y,Z,R);}catch(e){console.error(e.message),process.exitCode=1;}
16
16
  //# sourceMappingURL=out.js.map
17
17
  //# sourceMappingURL=build-archive-storybook.js.map
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,_=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=Object.getOwnPropertyNames,ba=Object.getPrototypeOf,wa=Object.prototype.hasOwnProperty,ka=s((t,a,i)=>a in t?_(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i,"gi"),d=s((t,a)=>_(t,"name",{value:a,configurable:!0}),"o"),R=s((t,a)=>()=>(a||t((a={exports:{}}).exports,a),a.exports),"w"),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&&_(t,p,{get:()=>a[p],enumerable:!(e=ha(a,p))||e.enumerable});return t},"hi"),Q=s((t,a,i)=>(i=t!=null?fa(ba(t)):{},ya(a||!t||!t.__esModule?_(i,"default",{value:t,enumerable:!0}):i,t)),"B"),b=s((t,a,i)=>(ka(t,typeof a!="symbol"?a+"":a,i),i),"m"),ja=R((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,"q"),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=R((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=R((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=R((t,a)=>{var i=ja();a.exports=new i(za(),Sa());}),Ea=R(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((v,h)=>h%2===1).map(v=>{let[h,...g]=v.trim().split(/\s+/),x={url:h};l&&p(r,g);for(let u of g){let m=u[u.length-1],f=Number.parseFloat(u.slice(0,-1));switch(l&&(n(f,m,u),i(r,f,m)),m){case"w":{x.width=f;break}case"h":{x.height=f;break}case"x":{x.density=f;break}}}return x})};var c=new Set(["width","height","density"]);t.stringify=(o,{strict:l=!1}={})=>{let r=l?{}:null;return o.map(v=>{if(!v.url){if(l)throw new Error("URL is required");return ""}let h=Object.keys(v).filter(x=>c.has(x));l&&p(r,h);let g=[v.url];for(let x of h){let u=v[x],m;switch(x){case"width":{m="w";break}case"height":{m="h";break}case"density":{m="x";break}}let f=`${u}${m}`;l&&(n(u,m),i(r,u,m)),g.push(f);}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:v,base64Encoded:h}=r,g=l.find(({name:u})=>u.toLowerCase()==="content-type"),x=i.toString()===this.firstUrl.toString();e&&!x&&(this.archive[p.url]={statusCode:c,statusText:o,body:Buffer.from(v,h?"base64":"utf8"),contentType:g?.value}),await this.clientSend(p,"Fetch.continueRequest",{requestId:n});}},s(E,"O"),E);d(X,"ResourceArchiver");var Z=X;function U(t){fs.existsSync(t)||fs.mkdirSync(t,{recursive:!0});}s(U,"A");d(U,"ensureDir");async function O(t,a){return U(y__default.default.dirname(t)),promises.writeFile(t,a,{mode:511})}s(O,"E");d(O,"outputFile");async function F(t,a){return O(t,JSON.stringify(a))}s(F,"U");d(F,"outputJSONFile");function aa(t){return crypto.createHash("shake256",{outputLength:2}).update(t).digest("hex")}s(aa,"zi");d(aa,"hash");var A=255;function L(t,a=A){let i=t.split("/"),e=i.pop();if(e.length<=a)return t;let p=aa(e),[n,...c]=e.split("."),o=c.join("."),l=o.length===0?0:o.length+1,r=p.length+l,v=[`${n.slice(0,a-r)}${p}`,o].filter(Boolean).join(".");return [...i,v].join("/")}s(L,"N");d(L,"truncateFileName");var Ca=Q(qa()),Na=["/index.json","/iframe.html","/index.html","/main.iframe.bundle.js","/runtime~main.iframe.bundle.js","/sb-preview/runtime.js"],C,ia=(C=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=Ca.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&&Na.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(C,"D"),C);d(ia,"ArchiveFile");var Ra=ia,J=Q(Ea()),$a=/url\((?!['"]?(?:data):)['"]?([^'")]*)['"]?\)/gi,N,ta=(N=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(a.tagName==="link"&&a.attributes.href){let e=a.attributes.href;i.has(e)&&(a.attributes.href=i.get(e));}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($a,(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(N,"V"),N);d(ta,"DOMSnapshot");var Ta=ta;function ea(t){return `w${t.width}h${t.height}`}s(ea,"W");d(ea,"viewportToString");function Oa(t){let a=t.match(/w(\d+)h(\d+)/);return {width:Number(a[1]),height:Number(a[2])}}s(Oa,"$i");d(Oa,"parseViewport");var P=d(t=>t.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),"sanitize"),_a="snapshot.json";function I(t,a){let i=`${P(t)}-${P(a)}`,e=A-25;return L(i,e)}s(I,"$");d(I,"snapshotId");function pa(t,a){return [t,ea(a),_a].join(".")}s(pa,"oi");d(pa,"snapshotFileName");var Fa="stories.json";function na(t){let a=[P(t),Fa].join("."),i=A-25;return L(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:I(t,e)},chromatic:{...i}}}))}}s(oa,"ci");d(oa,"createStories");async function D(t,a,i,e){let{titlePath:p,outputDir:n,pageUrl:c,viewport:o}=t,l=p.map(m=>m.replace(/\.(ts|js|mjs|cjs|tsx|jsx|cjsx|coffee)$/,"").replace(/\.(spec|test|cy)$/,"")).join("/"),r=y.join(n,"chromatic-archives"),v=y.join(r,"archive");await U(v),w.log(`Writing test results for "${l}"`);let h=new Map;await Promise.all(Object.entries(i).map(async([m,f])=>{if("error"in f)return;let j=new Ra(m,f,c),z=j.originalSrc(),q=j.toFileSystemPath();z!==q&&h.set(z,q),await O(y.join(v,q),f.body);})),await Promise.all(await Object.entries(a).map(async([m,f])=>{let j=await new Ta(f).mapAssetPaths(h),z=pa(I(l,m),o);await O(y.join(v,z),j);}));let g=na(l),x=oa(l,a,e);await F(y.join(r,g),x);let u=Object.entries(i).filter(([,m])=>"error"in m);u.length>0&&(w.log(`Encountered ${u.length} errors archiving resources, writing to 'errors.json'`),await F(y.join(v,"errors.json"),{errors:Object.fromEntries(u)}));}s(D,"_a");d(D,"writeTestResult");var Pa=new analyticsNode.Analytics({writeKey:process.env.SEGMENT_WRITE_KEY||"cwWhBWso2gwzyenW29CnCp30Kjz4DogE"}),Ua="@chromaui/test-archiver run";function M(t,a){Pa.track({userId:Ua,event:t,properties:a});}s(M,"mi");d(M,"track");var V=!1;function B(t={}){V||(M("run",t),V=!0);}s(B,"Oa");d(B,"trackRun");var K=!1;function W(t={}){K||(M("complete",t),K=!0);}s(W,"Aa");d(W,"trackComplete");var $=1e4;var Ia=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,F=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=Object.getOwnPropertyNames,ba=Object.getPrototypeOf,wa=Object.prototype.hasOwnProperty,ka=s((t,a,i)=>a in t?F(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i,"gi"),d=s((t,a)=>F(t,"name",{value:a,configurable:!0}),"o"),R=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&&F(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?F(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=R((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=R((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=R((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=R((t,a)=>{var i=ja();a.exports=new i(za(),Sa());}),Ea=R(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,"A"),E);d(X,"ResourceArchiver");var Z=X;function P(t){fs.existsSync(t)||fs.mkdirSync(t,{recursive:!0});}s(P,"O");d(P,"ensureDir");async function O(t,a){return P(y__default.default.dirname(t)),promises.writeFile(t,a,{mode:511})}s(O,"F");d(O,"outputFile");async function _(t,a){return O(t,JSON.stringify(a))}s(_,"U");d(_,"outputJSONFile");function aa(t){return crypto.createHash("shake256",{outputLength:2}).update(t).digest("hex")}s(aa,"zi");d(aa,"hash");var U=255;function L(t,a=U){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(L,"T");d(L,"truncateFileName");var Ca=Y(qa()),Na=["/index.json","/iframe.html","/index.html","/main.iframe.bundle.js","/runtime~main.iframe.bundle.js","/sb-preview/runtime.js"],C,ia=(C=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=Ca.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&&Na.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(C,"D"),C);d(ia,"ArchiveFile");var Ra=ia,J=Y(Ea()),$a=/url\((?!['"]?(?:data):)['"]?([^'")]*)['"]?\)/gi,N,ta=(N=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(a.tagName==="link"&&a.attributes.href){let e=a.attributes.href;i.has(e)&&(a.attributes.href=i.get(e));}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($a,(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(N,"H"),N);d(ta,"DOMSnapshot");var Ta=ta;function ea(t){return `w${t.width}h${t.height}`}s(ea,"V");d(ea,"viewportToString");function Oa(t){let a=t.match(/w(\d+)h(\d+)/);return {width:Number(a[1]),height:Number(a[2])}}s(Oa,"_i");d(Oa,"parseViewport");var A=d(t=>t.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),"sanitize"),Fa="snapshot.json";function I(t,a){let i=`${A(t)}-${A(a)}`,e=U-25;return L(i,e)}s(I,"L");d(I,"snapshotId");function pa(t,a){return [t,ea(a),Fa].join(".")}s(pa,"oi");d(pa,"snapshotFileName");var _a="stories.json";function na(t){let a=[A(t),_a].join("."),i=U-25;return L(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:I(t,e)},chromatic:{...i}}}))}}s(oa,"ci");d(oa,"createStories");async function D(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 P(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 Ra(x,h,c),z=j.originalSrc(),q=j.toFileSystemPath();z!==q&&f.set(z,q),await O(y.join(m,q),h.body);})),await Promise.all(await Object.entries(a).map(async([x,h])=>{let j=await new Ta(h).mapAssetPaths(f),z=pa(I(l,x),o);await O(y.join(m,z),j);}));let g=na(l),v=oa(l,a,e);await _(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 _(y.join(m,"errors.json"),{errors:Object.fromEntries(u)}));}s(D,"$a");d(D,"writeTestResult");var Aa=new analyticsNode.Analytics({writeKey:process.env.SEGMENT_WRITE_KEY||"cwWhBWso2gwzyenW29CnCp30Kjz4DogE"}),Pa="@chromaui/test-archiver run";function M(t,a){Aa.track({userId:Pa,event:t,properties:a});}s(M,"mi");d(M,"track");var V=!1;function B(t={}){V||(M("run",t),V=!0);}s(B,"Aa");d(B,"trackRun");var Q=!1;function W(t={}){Q||(M("complete",t),Q=!0);}s(W,"Oa");d(W,"trackComplete");var $=1e4;var Ia=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
  ${Ia};
21
21
  // page.evaluate returns the value of the function being evaluated. In this case, it means that
22
22
  // it is returning either the resolved value of the Promise or the return value of the call to
@@ -31,7 +31,7 @@ var da=Object.defineProperty;var s=(t,a)=>da(t,"name",{value:a,configurable:!0})
31
31
  } else {
32
32
  rrwebSnapshot.snapshot(document);
33
33
  }
34
- `),c=Buffer.from(JSON.stringify(n));k.has(p)||k.set(p,new Map),k.get(p).set(e,c);}s(H,"takeSnapshot");var Da=s(async(t,a=$)=>{let i=null,e=null,p=new Promise(c=>{e=c,i=setTimeout(()=>{w.warn(`Global timeout of ${a}ms reached`),e();},a);}),n=t.waitForLoadState("networkidle").finally(()=>{clearTimeout(i);});await Promise.race([p,n]);},"idle"),la=s(async({page:t,networkTimeout:a,assetDomains:i,httpCredentials:e})=>{let p=await t.context().newCDPSession(t),n=new Z(p,i,e);return await n.watch(),async()=>(await Da(t,a??$),n.archive)},"createResourceArchive");var Ba=s(async({page:t,delay:a,diffIncludeAntiAliasing:i,diffThreshold:e,disableAutoSnapshot:p,forcedColors:n,pauseAnimationAtEnd:c,prefersReducedMotion:o,resourceArchiveTimeout:l,assetDomains:r,cropToViewport:v,ignoreSelectors:h},g,x)=>{let{testId:u,project:m}=x,f=m?.use?.httpCredentials;try{if(B(),t.context().browser().browserType().name()!=="chromium"){await g();return}let j=await la({page:t,networkTimeout:l,assetDomains:r,httpCredentials:f});await g(),p||await H(t,x);let z=await j(),q=k.get(u)||new Map,ca={...a&&{delay:a},...i&&{diffIncludeAntiAliasing:i},...e&&{diffThreshold:e},...n&&{forcedColors:n},...c&&{pauseAnimationAtEnd:c},...o&&{prefersReducedMotion:o},...v&&{cropToViewport:v},...h&&{ignoreSelectors:h}},ra=y.join(x.outputDir,"..");await D({...x,outputDir:ra,pageUrl:t.url(),viewport:t.viewportSize()},Object.fromEntries(q),z,ca),W();}finally{k.delete(u);}},"performChromaticSnapshot"),sa=s(t=>t.extend({delay:[void 0,{option:!0}],diffIncludeAntiAliasing:[void 0,{option:!0}],diffThreshold:[void 0,{option:!0}],disableAutoSnapshot:[!1,{option:!0}],forcedColors:[void 0,{option:!0}],pauseAnimationAtEnd:[void 0,{option:!0}],prefersReducedMotion:[void 0,{option:!0}],resourceArchiveTimeout:[$,{option:!0}],assetDomains:[[],{option:!0}],cropToViewport:[void 0,{option:!0}],ignoreSelectors:[void 0,{option:!0}],chromaticSnapshot:[Ba,{auto:!0}]}),"makeTest");var hi=sa(test.test);
34
+ `),c=Buffer.from(JSON.stringify(n));k.has(p)||k.set(p,new Map),k.get(p).set(e,c);}s(H,"takeSnapshot");var Da=s(async(t,a=$)=>{let i=null,e=null,p=new Promise(c=>{e=c,i=setTimeout(()=>{w.warn(`Global timeout of ${a}ms reached`),e();},a);}),n=t.waitForLoadState("networkidle").finally(()=>{clearTimeout(i);});await Promise.race([p,n]);},"idle"),la=s(async({page:t,networkTimeout:a,assetDomains:i,httpCredentials:e})=>{let p=await t.context().newCDPSession(t),n=new Z(p,i,e);return await n.watch(),async()=>(await Da(t,a??$),n.archive)},"createResourceArchive");var Ba=s(async({page:t,delay:a,diffIncludeAntiAliasing:i,diffThreshold:e,disableAutoSnapshot:p,forcedColors:n,pauseAnimationAtEnd:c,prefersReducedMotion:o,resourceArchiveTimeout:l,assetDomains:r,cropToViewport:m,ignoreSelectors:f},g,v)=>{let{testId:u,project:x}=v,h=x?.use?.httpCredentials;try{if(B(),t.context().browser().browserType().name()!=="chromium"){await g();return}let j=await la({page:t,networkTimeout:l,assetDomains:r,httpCredentials:h});await g(),p||await H(t,v);let z=await j(),q=k.get(u)||new Map,ca={...a&&{delay:a},...i&&{diffIncludeAntiAliasing:i},...e&&{diffThreshold:e},...n&&{forcedColors:n},...c&&{pauseAnimationAtEnd:c},...o&&{prefersReducedMotion:o},...m&&{cropToViewport:m},...f&&{ignoreSelectors:f}},ra=y.join(v.outputDir,"..");await D({...v,outputDir:ra,pageUrl:t.url(),viewport:t.viewportSize()},Object.fromEntries(q),z,ca),W();}finally{k.delete(u);}},"performChromaticSnapshot"),sa=s(t=>t.extend({delay:[void 0,{option:!0}],diffIncludeAntiAliasing:[void 0,{option:!0}],diffThreshold:[void 0,{option:!0}],disableAutoSnapshot:[!1,{option:!0}],forcedColors:[void 0,{option:!0}],pauseAnimationAtEnd:[void 0,{option:!0}],prefersReducedMotion:[void 0,{option:!0}],resourceArchiveTimeout:[$,{option:!0}],assetDomains:[[],{option:!0}],cropToViewport:[void 0,{option:!0}],ignoreSelectors:[void 0,{option:!0}],chromaticSnapshot:[Ba,{auto:!0}]}),"makeTest");var hi=sa(test.test);
35
35
 
36
36
  Object.defineProperty(exports, "expect", {
37
37
  enumerable: true,
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 { elementNode } 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: elementNode = await page.evaluate(dedent`\n ${rrweb};\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 require(['rrwebSnapshot'], (rrwebSnapshot) => {\n resolve(rrwebSnapshot.snapshot(document));\n });\n });\n } else {\n rrwebSnapshot.snapshot(document);\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":";;sUAAA,OAASA,QAAQC,GAAMC,UAAAA,OAAc,o4+CCgBrC,OAASC,QAAAA,OAAY,OCfrB,OAASC,gBAAAA,OAAoB,KAC7B,OAASC,UAAAA,OAAc,YAIvB,IAAMC,GAAQF,GAAaG,EAAQC,QAAQ,0BAAA,EAA6B,MAAA,EAG3DC,EAAuD,IAAIC,IAIxE,eAAeC,EACbC,EACAC,EACAC,EAAwB,CAExB,IAAIC,EACAC,EACJ,GAAI,OAAOH,GAAmB,SAAU,CACtC,GAAI,CAACC,EAAe,MAAM,IAAIG,MAAM,iBAAA,EACpCD,EAASF,EAAcE,OACvBD,EAAOF,CACT,MACEG,EAASH,EAAeG,OAExBD,EAAO,aADQN,EAAmBS,IAAIF,CAAAA,EAAUP,EAAmBU,IAAIH,CAAAA,EAAQI,KAAO,EAAI,CACtEC,GAGtBT,EAAKU,GAAG,UAAYC,GAAAA,CAClBC,EAAOC,IAAI,aAAaF,EAAIG,KAAI,CAAA,GAAK,CACvC,CAAA,EAGA,IAAMC,EAA2B,MAAMf,EAAKgB,SAASvB;MACjDC,EAAAA;;;;;;;;;;;;;;GAcH,EAEKuB,EAAmBC,OAAOC,KAAKC,KAAKC,UAAUN,CAAAA,CAAAA,EAC/ClB,EAAmBS,IAAIF,CAAAA,GAE1BP,EAAmByB,IAAIlB,EAAQ,IAAIN,GAAAA,EAErCD,EAAmBU,IAAIH,CAAAA,EAAQkB,IAAInB,EAAMc,CAAAA,CAC3C,CA7CelB,EAAAA,EAAAA,gBCJf,IAAMwB,GAAOC,EAAA,MAAOxB,EAAYyB,EAAmBC,IAA0C,CAC3F,IAAIC,EAA6D,KAC7DC,EAA6C,KAM3CC,EAAuB,IAAIC,QAAelC,GAAAA,CAC9CgC,EAAwBhC,EAExB+B,EAAuBI,WAAW,IAAA,CAChCnB,EAAOoB,KAAK,qBAAqBP,CAAAA,YAA4B,EAC7DG,EAAAA,CACF,EAAGH,CAAAA,CACL,CAAA,EAIMQ,EAAqBjC,EAAKkC,iBAAiB,aAAA,EAAeC,QAAQ,IAAA,CACtEC,aAAaT,CAAAA,CACf,CAAA,EAEA,MAAMG,QAAQO,KAAK,CAACR,EAAsBI,EAAmB,CAC/D,EAxBa,QA0BAK,GAAwBd,EAAA,MAAO,CAC1CxB,KAAAA,EACAuC,eAAAA,EACAC,aAAAA,EACAC,gBAAAA,CAAe,IAMhB,CACC,IAAMC,EAAY,MAAM1C,EAAK2C,QAAO,EAAGC,cAAc5C,CAAAA,EAE/C6C,EAAmB,IAAIC,EAAiBJ,EAAWF,EAAcC,CAAAA,EACvE,aAAMI,EAAiBE,MAAK,EAErB,UACL,MAAMxB,GAAKvB,EAAMuC,GAAkBb,CAAAA,EAE5BmB,EAAiBG,QAE5B,EArBqC,yBFf9B,IAAMC,GAA2BzB,EAAA,MACtC,CACExB,KAAAA,EACAkD,MAAAA,EACAC,wBAAAA,EACAC,cAAAA,EACAC,oBAAAA,EACAC,aAAAA,EACAC,oBAAAA,EACAC,qBAAAA,EACAC,uBAAAA,EACAjB,aAAAA,EACAkB,eAAAA,EACAC,gBAAAA,CAAe,EAEjBC,EACAC,IAAAA,CAEA,GAAM,CAAEzD,OAAAA,EAAQ0D,QAAAA,CAAO,EAAKD,EACtBpB,EAAkBqB,GAASF,KAAKnB,gBAEtC,GAAI,CAOF,GANAsB,EAAAA,EAMI/D,EAAK2C,QAAO,EAAGqB,QAAO,EAAGC,YAAW,EAAG9D,KAAI,IAAO,WAAY,CAChE,MAAMyD,EAAAA,EACN,MACF,CAEA,IAAMM,EAAkB,MAAM5B,GAAsB,CAClDtC,KAAAA,EACAuC,eAAgBkB,EAChBjB,aAAAA,EACAC,gBAAAA,CACF,CAAA,EACA,MAAMmB,EAAAA,EAEDP,GACH,MAAMtD,EAAaC,EAAM6D,CAAAA,EAG3B,IAAMM,EAAkB,MAAMD,EAAAA,EACxBE,EAAiCvE,EAAmBU,IAAIH,CAAAA,GAAW,IAAIN,IAEvEuE,GAA2B,CAC/B,GAAInB,GAAS,CAAEA,MAAAA,CAAM,EACrB,GAAIC,GAA2B,CAAEA,wBAAAA,CAAwB,EACzD,GAAIC,GAAiB,CAAEA,cAAAA,CAAc,EACrC,GAAIE,GAAgB,CAAEA,aAAAA,CAAa,EACnC,GAAIC,GAAuB,CAAEA,oBAAAA,CAAoB,EACjD,GAAIC,GAAwB,CAAEA,qBAAAA,CAAqB,EACnD,GAAIE,GAAkB,CAAEA,eAAAA,CAAe,EACvC,GAAIC,GAAmB,CAAEA,gBAAAA,CAAgB,CAC3C,EAIMW,GAAY/E,GAAKsE,EAASS,UAAW,IAAA,EAC3C,MAAMC,EACJ,CAAE,GAAGV,EAAUS,UAAAA,GAAWE,QAASxE,EAAKyE,IAAG,EAAIC,SAAU1E,EAAK2E,aAAY,CAAG,EAC7EC,OAAOC,YAAYT,CAAAA,EACnBD,EACAE,EAAAA,EAGFS,EAAAA,CACF,QAAA,CAEEjF,EAAmBkF,OAAO3E,CAAAA,CAC5B,CACF,EA1EwC,4BAiF3B4E,GAAWxD,EACtBnC,GAKAA,EAAK4F,OAAsD,CAEzD/B,MAAO,CAACgC,OAAW,CAAEC,OAAQ,EAAK,GAClChC,wBAAyB,CAAC+B,OAAW,CAAEC,OAAQ,EAAK,GACpD/B,cAAe,CAAC8B,OAAW,CAAEC,OAAQ,EAAK,GAC1C9B,oBAAqB,CAAC,GAAO,CAAE8B,OAAQ,EAAK,GAC5C7B,aAAc,CAAC4B,OAAW,CAAEC,OAAQ,EAAK,GACzC5B,oBAAqB,CAAC2B,OAAW,CAAEC,OAAQ,EAAK,GAChD3B,qBAAsB,CAAC0B,OAAW,CAAEC,OAAQ,EAAK,GACjD1B,uBAAwB,CAAC/B,EAA4C,CAAEyD,OAAQ,EAAK,GACpF3C,aAAc,CAAC,CAAA,EAAI,CAAE2C,OAAQ,EAAK,GAClCzB,eAAgB,CAACwB,OAAW,CAAEC,OAAQ,EAAK,GAC3CxB,gBAAiB,CAACuB,OAAW,CAAEC,OAAQ,EAAK,GAE5CC,kBAAmB,CACjBnC,GAEA,CAAEoC,KAAM,EAAK,EAEjB,CAAA,EAzBsB,YDjGjB,IAAMjG,GAAO4F,GAAS3F,EAAAA","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 { elementNode } 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: elementNode = await page.evaluate(dedent`\n ${rrweb};\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 require(['rrwebSnapshot'], (rrwebSnapshot) => {\n resolve(rrwebSnapshot.snapshot(document));\n });\n });\n } else {\n rrwebSnapshot.snapshot(document);\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,_=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=Object.getOwnPropertyNames,ba=Object.getPrototypeOf,wa=Object.prototype.hasOwnProperty,ka=s((t,a,i)=>a in t?_(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i,"gi"),d=s((t,a)=>_(t,"name",{value:a,configurable:!0}),"o"),R=s((t,a)=>()=>(a||t((a={exports:{}}).exports,a),a.exports),"w"),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&&_(t,p,{get:()=>a[p],enumerable:!(e=ha(a,p))||e.enumerable});return t},"hi"),Q=s((t,a,i)=>(i=t!=null?fa(ba(t)):{},ya(a||!t||!t.__esModule?_(i,"default",{value:t,enumerable:!0}):i,t)),"B"),b=s((t,a,i)=>(ka(t,typeof a!="symbol"?a+"":a,i),i),"m"),ja=R((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,"q"),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=R((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=R((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=R((t,a)=>{var i=ja();a.exports=new i(za(),Sa());}),Ea=R(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((v,h)=>h%2===1).map(v=>{let[h,...g]=v.trim().split(/\s+/),x={url:h};l&&p(r,g);for(let u of g){let m=u[u.length-1],f=Number.parseFloat(u.slice(0,-1));switch(l&&(n(f,m,u),i(r,f,m)),m){case"w":{x.width=f;break}case"h":{x.height=f;break}case"x":{x.density=f;break}}}return x})};var c=new Set(["width","height","density"]);t.stringify=(o,{strict:l=!1}={})=>{let r=l?{}:null;return o.map(v=>{if(!v.url){if(l)throw new Error("URL is required");return ""}let h=Object.keys(v).filter(x=>c.has(x));l&&p(r,h);let g=[v.url];for(let x of h){let u=v[x],m;switch(x){case"width":{m="w";break}case"height":{m="h";break}case"density":{m="x";break}}let f=`${u}${m}`;l&&(n(u,m),i(r,u,m)),g.push(f);}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:v,base64Encoded:h}=r,g=l.find(({name:u})=>u.toLowerCase()==="content-type"),x=i.toString()===this.firstUrl.toString();e&&!x&&(this.archive[p.url]={statusCode:c,statusText:o,body:Buffer.from(v,h?"base64":"utf8"),contentType:g?.value}),await this.clientSend(p,"Fetch.continueRequest",{requestId:n});}},s(E,"O"),E);d(X,"ResourceArchiver");var Z=X;function U(t){existsSync(t)||mkdirSync(t,{recursive:!0});}s(U,"A");d(U,"ensureDir");async function O(t,a){return U(y.dirname(t)),writeFile(t,a,{mode:511})}s(O,"E");d(O,"outputFile");async function F(t,a){return O(t,JSON.stringify(a))}s(F,"U");d(F,"outputJSONFile");function aa(t){return createHash("shake256",{outputLength:2}).update(t).digest("hex")}s(aa,"zi");d(aa,"hash");var A=255;function L(t,a=A){let i=t.split("/"),e=i.pop();if(e.length<=a)return t;let p=aa(e),[n,...c]=e.split("."),o=c.join("."),l=o.length===0?0:o.length+1,r=p.length+l,v=[`${n.slice(0,a-r)}${p}`,o].filter(Boolean).join(".");return [...i,v].join("/")}s(L,"N");d(L,"truncateFileName");var Ca=Q(qa()),Na=["/index.json","/iframe.html","/index.html","/main.iframe.bundle.js","/runtime~main.iframe.bundle.js","/sb-preview/runtime.js"],C,ia=(C=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=Ca.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&&Na.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(C,"D"),C);d(ia,"ArchiveFile");var Ra=ia,J=Q(Ea()),$a=/url\((?!['"]?(?:data):)['"]?([^'")]*)['"]?\)/gi,N,ta=(N=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(a.tagName==="link"&&a.attributes.href){let e=a.attributes.href;i.has(e)&&(a.attributes.href=i.get(e));}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($a,(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(N,"V"),N);d(ta,"DOMSnapshot");var Ta=ta;function ea(t){return `w${t.width}h${t.height}`}s(ea,"W");d(ea,"viewportToString");function Oa(t){let a=t.match(/w(\d+)h(\d+)/);return {width:Number(a[1]),height:Number(a[2])}}s(Oa,"$i");d(Oa,"parseViewport");var P=d(t=>t.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),"sanitize"),_a="snapshot.json";function I(t,a){let i=`${P(t)}-${P(a)}`,e=A-25;return L(i,e)}s(I,"$");d(I,"snapshotId");function pa(t,a){return [t,ea(a),_a].join(".")}s(pa,"oi");d(pa,"snapshotFileName");var Fa="stories.json";function na(t){let a=[P(t),Fa].join("."),i=A-25;return L(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:I(t,e)},chromatic:{...i}}}))}}s(oa,"ci");d(oa,"createStories");async function D(t,a,i,e){let{titlePath:p,outputDir:n,pageUrl:c,viewport:o}=t,l=p.map(m=>m.replace(/\.(ts|js|mjs|cjs|tsx|jsx|cjsx|coffee)$/,"").replace(/\.(spec|test|cy)$/,"")).join("/"),r=join(n,"chromatic-archives"),v=join(r,"archive");await U(v),w.log(`Writing test results for "${l}"`);let h=new Map;await Promise.all(Object.entries(i).map(async([m,f])=>{if("error"in f)return;let j=new Ra(m,f,c),z=j.originalSrc(),q=j.toFileSystemPath();z!==q&&h.set(z,q),await O(join(v,q),f.body);})),await Promise.all(await Object.entries(a).map(async([m,f])=>{let j=await new Ta(f).mapAssetPaths(h),z=pa(I(l,m),o);await O(join(v,z),j);}));let g=na(l),x=oa(l,a,e);await F(join(r,g),x);let u=Object.entries(i).filter(([,m])=>"error"in m);u.length>0&&(w.log(`Encountered ${u.length} errors archiving resources, writing to 'errors.json'`),await F(join(v,"errors.json"),{errors:Object.fromEntries(u)}));}s(D,"_a");d(D,"writeTestResult");var Pa=new Analytics({writeKey:process.env.SEGMENT_WRITE_KEY||"cwWhBWso2gwzyenW29CnCp30Kjz4DogE"}),Ua="@chromaui/test-archiver run";function M(t,a){Pa.track({userId:Ua,event:t,properties:a});}s(M,"mi");d(M,"track");var V=!1;function B(t={}){V||(M("run",t),V=!0);}s(B,"Oa");d(B,"trackRun");var K=!1;function W(t={}){K||(M("complete",t),K=!0);}s(W,"Aa");d(W,"trackComplete");var $=1e4;var Ia=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,F=Object.defineProperty,ha=Object.getOwnPropertyDescriptor,ga=Object.getOwnPropertyNames,ba=Object.getPrototypeOf,wa=Object.prototype.hasOwnProperty,ka=s((t,a,i)=>a in t?F(t,a,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[a]=i,"gi"),d=s((t,a)=>F(t,"name",{value:a,configurable:!0}),"o"),R=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&&F(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?F(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=R((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=R((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=R((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=R((t,a)=>{var i=ja();a.exports=new i(za(),Sa());}),Ea=R(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,"A"),E);d(X,"ResourceArchiver");var Z=X;function P(t){existsSync(t)||mkdirSync(t,{recursive:!0});}s(P,"O");d(P,"ensureDir");async function O(t,a){return P(y.dirname(t)),writeFile(t,a,{mode:511})}s(O,"F");d(O,"outputFile");async function _(t,a){return O(t,JSON.stringify(a))}s(_,"U");d(_,"outputJSONFile");function aa(t){return createHash("shake256",{outputLength:2}).update(t).digest("hex")}s(aa,"zi");d(aa,"hash");var U=255;function L(t,a=U){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(L,"T");d(L,"truncateFileName");var Ca=Y(qa()),Na=["/index.json","/iframe.html","/index.html","/main.iframe.bundle.js","/runtime~main.iframe.bundle.js","/sb-preview/runtime.js"],C,ia=(C=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=Ca.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&&Na.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(C,"D"),C);d(ia,"ArchiveFile");var Ra=ia,J=Y(Ea()),$a=/url\((?!['"]?(?:data):)['"]?([^'")]*)['"]?\)/gi,N,ta=(N=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(a.tagName==="link"&&a.attributes.href){let e=a.attributes.href;i.has(e)&&(a.attributes.href=i.get(e));}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($a,(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(N,"H"),N);d(ta,"DOMSnapshot");var Ta=ta;function ea(t){return `w${t.width}h${t.height}`}s(ea,"V");d(ea,"viewportToString");function Oa(t){let a=t.match(/w(\d+)h(\d+)/);return {width:Number(a[1]),height:Number(a[2])}}s(Oa,"_i");d(Oa,"parseViewport");var A=d(t=>t.toLowerCase().replace(/[ ’–—―′¿'`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi,"-").replace(/-+/g,"-").replace(/^-+/,"").replace(/-+$/,""),"sanitize"),Fa="snapshot.json";function I(t,a){let i=`${A(t)}-${A(a)}`,e=U-25;return L(i,e)}s(I,"L");d(I,"snapshotId");function pa(t,a){return [t,ea(a),Fa].join(".")}s(pa,"oi");d(pa,"snapshotFileName");var _a="stories.json";function na(t){let a=[A(t),_a].join("."),i=U-25;return L(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:I(t,e)},chromatic:{...i}}}))}}s(oa,"ci");d(oa,"createStories");async function D(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 P(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 Ra(x,h,c),z=j.originalSrc(),q=j.toFileSystemPath();z!==q&&f.set(z,q),await O(join(m,q),h.body);})),await Promise.all(await Object.entries(a).map(async([x,h])=>{let j=await new Ta(h).mapAssetPaths(f),z=pa(I(l,x),o);await O(join(m,z),j);}));let g=na(l),v=oa(l,a,e);await _(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 _(join(m,"errors.json"),{errors:Object.fromEntries(u)}));}s(D,"$a");d(D,"writeTestResult");var Aa=new Analytics({writeKey:process.env.SEGMENT_WRITE_KEY||"cwWhBWso2gwzyenW29CnCp30Kjz4DogE"}),Pa="@chromaui/test-archiver run";function M(t,a){Aa.track({userId:Pa,event:t,properties:a});}s(M,"mi");d(M,"track");var V=!1;function B(t={}){V||(M("run",t),V=!0);}s(B,"Aa");d(B,"trackRun");var Q=!1;function W(t={}){Q||(M("complete",t),Q=!0);}s(W,"Oa");d(W,"trackComplete");var $=1e4;var Ia=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
  ${Ia};
15
15
  // page.evaluate returns the value of the function being evaluated. In this case, it means that
16
16
  // it is returning either the resolved value of the Promise or the return value of the call to
@@ -25,7 +25,7 @@ var da=Object.defineProperty;var s=(t,a)=>da(t,"name",{value:a,configurable:!0})
25
25
  } else {
26
26
  rrwebSnapshot.snapshot(document);
27
27
  }
28
- `),c=Buffer.from(JSON.stringify(n));k.has(p)||k.set(p,new Map),k.get(p).set(e,c);}s(H,"takeSnapshot");var Da=s(async(t,a=$)=>{let i=null,e=null,p=new Promise(c=>{e=c,i=setTimeout(()=>{w.warn(`Global timeout of ${a}ms reached`),e();},a);}),n=t.waitForLoadState("networkidle").finally(()=>{clearTimeout(i);});await Promise.race([p,n]);},"idle"),la=s(async({page:t,networkTimeout:a,assetDomains:i,httpCredentials:e})=>{let p=await t.context().newCDPSession(t),n=new Z(p,i,e);return await n.watch(),async()=>(await Da(t,a??$),n.archive)},"createResourceArchive");var Ba=s(async({page:t,delay:a,diffIncludeAntiAliasing:i,diffThreshold:e,disableAutoSnapshot:p,forcedColors:n,pauseAnimationAtEnd:c,prefersReducedMotion:o,resourceArchiveTimeout:l,assetDomains:r,cropToViewport:v,ignoreSelectors:h},g,x)=>{let{testId:u,project:m}=x,f=m?.use?.httpCredentials;try{if(B(),t.context().browser().browserType().name()!=="chromium"){await g();return}let j=await la({page:t,networkTimeout:l,assetDomains:r,httpCredentials:f});await g(),p||await H(t,x);let z=await j(),q=k.get(u)||new Map,ca={...a&&{delay:a},...i&&{diffIncludeAntiAliasing:i},...e&&{diffThreshold:e},...n&&{forcedColors:n},...c&&{pauseAnimationAtEnd:c},...o&&{prefersReducedMotion:o},...v&&{cropToViewport:v},...h&&{ignoreSelectors:h}},ra=join(x.outputDir,"..");await D({...x,outputDir:ra,pageUrl:t.url(),viewport:t.viewportSize()},Object.fromEntries(q),z,ca),W();}finally{k.delete(u);}},"performChromaticSnapshot"),sa=s(t=>t.extend({delay:[void 0,{option:!0}],diffIncludeAntiAliasing:[void 0,{option:!0}],diffThreshold:[void 0,{option:!0}],disableAutoSnapshot:[!1,{option:!0}],forcedColors:[void 0,{option:!0}],pauseAnimationAtEnd:[void 0,{option:!0}],prefersReducedMotion:[void 0,{option:!0}],resourceArchiveTimeout:[$,{option:!0}],assetDomains:[[],{option:!0}],cropToViewport:[void 0,{option:!0}],ignoreSelectors:[void 0,{option:!0}],chromaticSnapshot:[Ba,{auto:!0}]}),"makeTest");var hi=sa(test);
28
+ `),c=Buffer.from(JSON.stringify(n));k.has(p)||k.set(p,new Map),k.get(p).set(e,c);}s(H,"takeSnapshot");var Da=s(async(t,a=$)=>{let i=null,e=null,p=new Promise(c=>{e=c,i=setTimeout(()=>{w.warn(`Global timeout of ${a}ms reached`),e();},a);}),n=t.waitForLoadState("networkidle").finally(()=>{clearTimeout(i);});await Promise.race([p,n]);},"idle"),la=s(async({page:t,networkTimeout:a,assetDomains:i,httpCredentials:e})=>{let p=await t.context().newCDPSession(t),n=new Z(p,i,e);return await n.watch(),async()=>(await Da(t,a??$),n.archive)},"createResourceArchive");var Ba=s(async({page:t,delay:a,diffIncludeAntiAliasing:i,diffThreshold:e,disableAutoSnapshot:p,forcedColors:n,pauseAnimationAtEnd:c,prefersReducedMotion:o,resourceArchiveTimeout:l,assetDomains:r,cropToViewport:m,ignoreSelectors:f},g,v)=>{let{testId:u,project:x}=v,h=x?.use?.httpCredentials;try{if(B(),t.context().browser().browserType().name()!=="chromium"){await g();return}let j=await la({page:t,networkTimeout:l,assetDomains:r,httpCredentials:h});await g(),p||await H(t,v);let z=await j(),q=k.get(u)||new Map,ca={...a&&{delay:a},...i&&{diffIncludeAntiAliasing:i},...e&&{diffThreshold:e},...n&&{forcedColors:n},...c&&{pauseAnimationAtEnd:c},...o&&{prefersReducedMotion:o},...m&&{cropToViewport:m},...f&&{ignoreSelectors:f}},ra=join(v.outputDir,"..");await D({...v,outputDir:ra,pageUrl:t.url(),viewport:t.viewportSize()},Object.fromEntries(q),z,ca),W();}finally{k.delete(u);}},"performChromaticSnapshot"),sa=s(t=>t.extend({delay:[void 0,{option:!0}],diffIncludeAntiAliasing:[void 0,{option:!0}],diffThreshold:[void 0,{option:!0}],disableAutoSnapshot:[!1,{option:!0}],forcedColors:[void 0,{option:!0}],pauseAnimationAtEnd:[void 0,{option:!0}],prefersReducedMotion:[void 0,{option:!0}],resourceArchiveTimeout:[$,{option:!0}],assetDomains:[[],{option:!0}],cropToViewport:[void 0,{option:!0}],ignoreSelectors:[void 0,{option:!0}],chromaticSnapshot:[Ba,{auto:!0}]}),"makeTest");var hi=sa(test);
29
29
 
30
30
  export { H as takeSnapshot, hi as test };
31
31
  //# sourceMappingURL=out.js.map
@@ -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 { elementNode } 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: elementNode = await page.evaluate(dedent`\n ${rrweb};\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 require(['rrwebSnapshot'], (rrwebSnapshot) => {\n resolve(rrwebSnapshot.snapshot(document));\n });\n });\n } else {\n rrwebSnapshot.snapshot(document);\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 { elementNode } 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: elementNode = await page.evaluate(dedent`\n ${rrweb};\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 require(['rrwebSnapshot'], (rrwebSnapshot) => {\n resolve(rrwebSnapshot.snapshot(document));\n });\n });\n } else {\n rrwebSnapshot.snapshot(document);\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,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var n = require('path');
3
+ var s = require('path');
4
4
  var fs = require('fs');
5
5
  var promises = require('fs/promises');
6
6
  var crypto = require('crypto');
7
7
 
8
8
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
9
 
10
- var n__default = /*#__PURE__*/_interopDefault(n);
10
+ var s__default = /*#__PURE__*/_interopDefault(s);
11
11
 
12
- var T=Object.defineProperty;var t=(e,r)=>T(e,"name",{value:r,configurable:!0}),f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,s)=>(typeof require<"u"?require:r)[s]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var S=Object.defineProperty,i=t((e,r)=>S(e,"name",{value:r,configurable:!0}),"r");function m(){return process.cwd()}t(m,"A");i(m,"rootDir");function v(){let{CHROMATIC_ARCHIVE_LOCATION:e}=process.env;return e}t(v,"E");i(v,"outputDirOverride");function o(e){let r=v()||e;return n__default.default.resolve(m(),r,"chromatic-archives")}t(o,"u");i(o,"archivesDir");function L(e){return n__default.default.resolve(o(e),"archive")}t(L,"L");i(L,"assetsDir");function b(e){let r=o(e);if(!fs.existsSync(r))throw new Error(`Chromatic archives directory cannot be found: ${r}
12
+ var k=Object.defineProperty;var t=(e,r)=>k(e,"name",{value:r,configurable:!0}),f=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(r,i)=>(typeof require<"u"?require:r)[i]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var S=Object.defineProperty,o=t((e,r)=>S(e,"name",{value:r,configurable:!0}),"r");function m(){return process.cwd()}t(m,"C");o(m,"rootDir");function v(){let{CHROMATIC_ARCHIVE_LOCATION:e}=process.env;return e}t(v,"F");o(v,"outputDirOverride");function n(e){let r=v()||e;return s__default.default.resolve(m(),r,"chromatic-archives")}t(n,"d");o(n,"archivesDir");function j(e){return s__default.default.resolve(n(e),"archive")}t(j,"J");o(j,"assetsDir");function J(e){let r=n(e);if(!fs.existsSync(r))throw new Error(`Chromatic archives directory cannot be found: ${r}
13
13
 
14
- Please make sure that you have run your E2E tests, or have set the CHROMATIC_ARCHIVE_LOCATION env var if the output directory for the tests is not in the standard location.`)}t(b,"T");i(b,"checkArchivesDirExists");function d(e){fs.existsSync(e)||fs.mkdirSync(e,{recursive:!0});}t(d,"g");i(d,"ensureDir");async function D(e,r){return d(n__default.default.dirname(e)),promises.writeFile(e,r,{mode:511})}t(D,"y");i(D,"outputFile");async function j(e,r){return D(e,JSON.stringify(r))}t(j,"k");i(j,"outputJSONFile");async function w(e){let r=await promises.readFile(e);return JSON.parse(r.toString())}t(w,"J");i(w,"readJSONFile");function O(e){return crypto.createHash("shake256",{outputLength:2}).update(e).digest("hex")}t(O,"C");i(O,"hash");var x=255;function J(e,r=x){let s=e.split("/"),a=s.pop();if(a.length<=r)return e;let h=O(a),[A,...F]=a.split("."),u=F.join("."),E=u.length===0?0:u.length+1,g=h.length+E,N=[`${A.slice(0,r-g)}${h}`,u].filter(Boolean).join(".");return [...s,N].join("/")}t(J,"M");i(J,"truncateFileName");var l="test-results";function y(e){return n__default.default.dirname(f.resolve(n__default.default.join(e,"package.json")))}t(y,"getAbsolutePath");var z={stories:[n__default.default.resolve(o(l),"*.stories.json")],addons:[y("@storybook/addon-essentials"),"."],framework:{name:y("@storybook/server-webpack5"),options:{}},staticDirs:[n__default.default.resolve(o(l),"archive")]};
14
+ Please make sure that you have run your E2E tests, or have set the CHROMATIC_ARCHIVE_LOCATION env var if the output directory for the tests is not in the standard location.`)}t(J,"M");o(J,"checkArchivesDirExists");function D(e){fs.existsSync(e)||fs.mkdirSync(e,{recursive:!0});}t(D,"B");o(D,"ensureDir");async function y(e,r){return D(s__default.default.dirname(e)),promises.writeFile(e,r,{mode:511})}t(y,"D");o(y,"outputFile");async function R(e,r){return y(e,JSON.stringify(r))}t(R,"R");o(R,"outputJSONFile");async function H(e){let r=await promises.readFile(e);return JSON.parse(r.toString())}t(H,"j");o(H,"readJSONFile");function O(e){return crypto.createHash("shake256",{outputLength:2}).update(e).digest("hex")}t(O,"L");o(O,"hash");var U=255;function M(e,r=U){let i=new TextEncoder,E=new TextDecoder,h=e.split("/"),a=h.pop();if(i.encode(a).byteLength<=r)return e;let d=O(a),[F,...A]=a.split("."),N=i.encode(F),c=A.join("."),_=c.length===0?0:i.encode(c).byteLength+1,g=i.encode(d).byteLength+_,L=N.slice(0,r-g),b=[`${E.decode(L)}${d}`,c].filter(Boolean).join(".");return [...h,b].join("/")}t(M,"$");o(M,"truncateFileName");var l="test-results";function T(e){return s__default.default.dirname(f.resolve(s__default.default.join(e,"package.json")))}t(T,"getAbsolutePath");var W={stories:[s__default.default.resolve(n(l),"*.stories.json")],addons:[T("@storybook/addon-essentials"),"."],framework:{name:T("@storybook/server-webpack5"),options:{}},staticDirs:[s__default.default.resolve(n(l),"archive")]};
15
15
 
16
- module.exports = z;
16
+ module.exports = W;
17
17
  //# sourceMappingURL=out.js.map
18
18
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/storybook-config/main.ts","../../src/constants.ts"],"names":["path","DEFAULT_OUTPUT_DIR","getAbsolutePath","value","dirname","require","resolve","join","main_default","stories","archivesDir","addons","framework","name","options","staticDirs"],"mappings":"oUAAA,OAAOA,MAAU;;m6BCAV,IAAMC,EAAqB,eDIlC,SAASC,EAAgBC,EAAa,CACpC,OAAOH,EAAKI,QAAQC,EAAQC,QAAQN,EAAKO,KAAKJ,EAAO,cAAA,CAAA,CAAA,CACvD,CAFSD,EAAAA,EAAAA,mBAKT,IAAAM,EAAe,CACbC,QAAS,CAACT,EAAKM,QAAQI,EAAYT,CAAAA,EAAqB,gBAAA,GACxDU,OAAQ,CAACT,EAAgB,6BAAA,EAAgC,KACzDU,UAAW,CACTC,KAAMX,EAAgB,4BAAA,EACtBY,QAAS,CAAC,CACZ,EACAC,WAAY,CAACf,EAAKM,QAAQI,EAAYT,CAAAA,EAAqB,SAAA,EAC7D","sourcesContent":["import path from 'path';\nimport { archivesDir } from '@chromatic-com/shared-e2e/utils/filePaths';\nimport { DEFAULT_OUTPUT_DIR } from '../constants';\n\nfunction getAbsolutePath(value: string) {\n return path.dirname(require.resolve(path.join(value, 'package.json')));\n}\n\n/** @type { import('@storybook/server-webpack5').StorybookConfig } */\nexport default {\n stories: [path.resolve(archivesDir(DEFAULT_OUTPUT_DIR), '*.stories.json')],\n addons: [getAbsolutePath('@storybook/addon-essentials'), '.'],\n framework: {\n name: getAbsolutePath('@storybook/server-webpack5'),\n options: {},\n },\n staticDirs: [path.resolve(archivesDir(DEFAULT_OUTPUT_DIR), 'archive')],\n};\n","export const DEFAULT_OUTPUT_DIR = 'test-results';\n"]}
1
+ {"version":3,"sources":["../../src/storybook-config/main.ts","../../src/constants.ts"],"names":["path","DEFAULT_OUTPUT_DIR","getAbsolutePath","value","dirname","require","resolve","join","main_default","stories","archivesDir","addons","framework","name","options","staticDirs"],"mappings":"oUAAA,OAAOA,MAAU;;6gCCAV,IAAMC,EAAqB,eDIlC,SAASC,EAAgBC,EAAa,CACpC,OAAOH,EAAKI,QAAQC,EAAQC,QAAQN,EAAKO,KAAKJ,EAAO,cAAA,CAAA,CAAA,CACvD,CAFSD,EAAAA,EAAAA,mBAKT,IAAAM,EAAe,CACbC,QAAS,CAACT,EAAKM,QAAQI,EAAYT,CAAAA,EAAqB,gBAAA,GACxDU,OAAQ,CAACT,EAAgB,6BAAA,EAAgC,KACzDU,UAAW,CACTC,KAAMX,EAAgB,4BAAA,EACtBY,QAAS,CAAC,CACZ,EACAC,WAAY,CAACf,EAAKM,QAAQI,EAAYT,CAAAA,EAAqB,SAAA,EAC7D","sourcesContent":["import path from 'path';\nimport { archivesDir } from '@chromatic-com/shared-e2e/utils/filePaths';\nimport { DEFAULT_OUTPUT_DIR } from '../constants';\n\nfunction getAbsolutePath(value: string) {\n return path.dirname(require.resolve(path.join(value, 'package.json')));\n}\n\n/** @type { import('@storybook/server-webpack5').StorybookConfig } */\nexport default {\n stories: [path.resolve(archivesDir(DEFAULT_OUTPUT_DIR), '*.stories.json')],\n addons: [getAbsolutePath('@storybook/addon-essentials'), '.'],\n framework: {\n name: getAbsolutePath('@storybook/server-webpack5'),\n options: {},\n },\n staticDirs: [path.resolve(archivesDir(DEFAULT_OUTPUT_DIR), 'archive')],\n};\n","export const DEFAULT_OUTPUT_DIR = 'test-results';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chromatic-com/playwright",
3
- "version": "0.10.1",
3
+ "version": "0.10.2",
4
4
  "description": "Chromatic Visual Regression Testing for Playwright",
5
5
  "repository": {
6
6
  "type": "git",