pup-recorder 0.4.0 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/biome.json +29 -0
- package/build.ts +12 -10
- package/dist/_tsup-dts-rollup.d.ts +242 -102
- package/dist/app.cjs +5 -5
- package/dist/chunk-XRCHOYPZ.js +4 -0
- package/dist/cli.js +2 -2
- package/dist/index.d.ts +11 -31
- package/dist/index.js +2 -2
- package/dist/runtime/audio_preload.cjs +2 -0
- package/dist/runtime/iframe_preload.cjs +3 -0
- package/package.json +4 -3
- package/dist/audio_preload.cjs +0 -2
- package/dist/chunk-GDKW7ZIE.js +0 -4
- package/dist/iframe_preload.cjs +0 -3
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import'source-map-support/register.js';import {Log}from'node-av';import {AV_LOG_ERROR,AV_LOG_WARNING}from'node-av/constants';import {createRequire}from'module';import {dirname,join}from'path';import m from'zod';import {rmSync}from'fs';import {mkdtemp}from'fs/promises';import {tmpdir,platform}from'os';import {HardwareContext}from'node-av/api';import {spawn}from'child_process';import Ue from'tree-kill';import {EventEmitter}from'events';var be=Object.create;var L=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var q=(t,e)=>(e=Symbol[t])?e:Symbol.for("Symbol."+t),E=t=>{throw TypeError(t)};var Y=(t,e,r)=>e in t?L(t,e,{enumerable:true,configurable:true,writable:true,value:r}):t[e]=r;var Q=t=>[,,,be(null)],X=["class","method","getter","setter","accessor","field","value","get","set"],C=t=>t!==void 0&&typeof t!="function"?E("Function expected"):t,ve=(t,e,r,o,n)=>({kind:X[t],name:e,metadata:o,addInitializer:s=>r._?E("Already initialized"):n.push(C(s||null))}),M=(t,e)=>Y(e,q("metadata"),t[3]),Z=(t,e,r,o)=>{for(var n=0,s=t[e>>1],l=s&&s.length;n<l;n++)s[n].call(r);return o},_=(t,e,r,o,n,s)=>{var i,p,y,w,a=e&7,T=false,u=false,x=2,P=X[a+5],fe=t[x]||(t[x]=[]),b=((n=n.prototype),we(n,r));for(var D=o.length-1;D>=0;D--)y=ve(a,r,p={},t[3],fe),(y.static=T,y.private=u,w=y.access={has:d=>r in d},(w.get=d=>d[r]),a>2),i=(0, o[D])(b[P],y),p._=1,C(i)&&(b[P]=i);return b&&L(n,r,b),n},ee=(t,e,r)=>Y(t,e+"",r);var re=class{_written=0;_shown=false;_total;_out;_tty;_showCount;constructor(e){this._total=e.total,this._out=e.out,this._tty=!!e.out.isTTY,this._showCount=e.showCount??false;}get total(){return this._total}update(e){this._written=Math.min(this._total,Math.max(0,e)),this.render();}updatePercent(e){this.update(Math.round(e/100*this._total));}clear(){this._tty&&this._shown&&this._out.write("\r\x1B[2K");}redraw(){this.render();}log(e){this.clear(),this._out.write(`${e}
|
|
2
|
+
`),this.redraw();}finish(e){this.clear(),this._out.write(`${e}
|
|
3
|
+
`),this._shown=false;}render(){if(!this._tty||this._written===0&&!this._shown)return;let e=this._total>0?this._written/this._total:0,r=Math.round(e*40),o="#".repeat(r)+"-".repeat(40-r),n=Math.round(e*100),s=this._showCount?`${this._written}/${this._total} (${n}%)`:`${n}%`;this._out.write(`\r[${o}] ${s}`),this._shown=true;}};function ze(t){let e=r=>(...o)=>{t.clear(),r(...o),t.redraw();};return {debug:e(console.debug),info:e(console.info),warn:e(console.warn),error:e(console.error)}}function te(t,e,r){try{return e(process.env[t])}catch{return r}}function oe(t){if(typeof t=="number")return t;let e=Number(t);if(Number.isNaN(e))throw new Error(`Value ${t} is not a valid number`);return e}var _e=createRequire(import.meta.url),I=te("PUP_LOG_LEVEL",oe,2),G=dirname(_e.resolve("pup-recorder/package.json")),ne=join(G,"dist","app.cjs");join(G,"dist","runtime","audio_preload.cjs");join(G,"dist","runtime","iframe_preload.cjs");var F="<pup@debug>",U="<pup@info>",N="<pup@warn>",H="<pup@error>",W="<pup@fatal>";function A(t,e){return function(...r){let o=r.map(n=>n instanceof Error?n.stack??String(n):n);return t.call(this,...o)}}var se,ie,ae,le,pe,k;pe=[A],le=[A],ae=[A],ie=[A],se=[A];var v=class{constructor(e=I){this._level=e;Z(k,5,this);ee(this,"_impl");this.impl=console;}_level;get level(){return this._level}set level(e){this._level=e,this.impl=this._impl??console;}get impl(){return this._impl}set impl(e){let r=e.debug??console.debug,o=e.info??console.info,n=e.warn??console.warn,s=e.error??console.error,l=this._level;this._impl={debug:l>=3?r:void 0,info:l>=2?o:void 0,warn:l>=1?n:void 0,error:l>=0?s:void 0};}debug(...e){this.impl?.debug?.(F,...e);}info(...e){this.impl?.info?.(U,...e);}warn(...e){this.impl?.warn?.(N,...e);}error(...e){this.impl?.error?.(H,...e);}fatal(...e){this.impl?.error?.(W,...e),process.exit(1);}dispatch(e){let r=e.trimEnd();r.startsWith(F)?this.debug(r.slice(F.length+1)):r.startsWith(U)?this.info(r.slice(U.length+1)):r.startsWith(N)?this.warn(r.slice(N.length+1)):r.startsWith(H)?this.error(r.slice(H.length+1)):this.info(r);}attach(e,r){return new Promise((o,n)=>{this.debug(`${r}.attach`);let s="",l=i=>{let p=i.toString();p.startsWith(W)?s+=p.slice(W.length+1):this.dispatch(p);};e.stderr?.on("data",l),e.stdout?.on("data",l),e.on("error",i=>{s+=i.message,e.kill();}).once("close",(i,p)=>{i||p||s?(s||=`command failed: ${e.spawnargs.join(" ")}`,this.debug(`${r}.close`,{code:i,signal:p,fatal:s}),n(new Error(s))):(this.debug(`${r}.close`),o());}).on("unhandledRejection",i=>{this.error(`${r}.unhandled`,i);}).on("uncaughtExceptionMonitor",i=>{this.error(`${r}.unhandled`,i);});})}};k=Q(),_(k,1,"debug",pe,v),_(k,1,"info",le,v),_(k,1,"warn",ae,v),_(k,1,"error",ie,v),_(k,1,"fatal",se,v),M(k,v);var c=new v;Log.setCallback((t,e)=>{let r=e.trimEnd();r&&(t<=AV_LOG_ERROR?c.error(r):t<=AV_LOG_WARNING&&c.warn(r));});function hr(t,e){return (...r)=>{try{let o=t(...r);return o instanceof Promise?o.catch(()=>e):o}catch{return e}}}var Ae=1920,Ie=1080,Re=30,De=5,Oe=10,Le="out/html.mp4,out/html.webm",vr=m.object({duration:m.number().describe("Duration in seconds"),width:m.number().describe("Video width"),height:m.number().describe("Video height"),fps:m.number().describe("Frames per second"),withAudio:m.boolean().describe("Capture and encode audio"),outFile:m.string().describe("Comma-separated output paths; extension (.mp4/.webm) selects encoder"),useInnerProxy:m.boolean().describe("Use bilibili inner proxy for resource access"),deterministic:m.boolean().describe("Render by frame rather than recording"),disableGpu:m.boolean().describe("Disable GPU rendering, may reduce performance but increase stability"),disableHwCodec:m.boolean().describe("Disable hardware video encoder (NVENC/VideoToolbox), use software x265"),windowTolerant:m.boolean().describe("Fall back to dom-ready if warmup load times out"),windowTimeout:m.number().describe("Window load timeout in seconds")}),ce={width:Ae,height:Ie,fps:Re,duration:De,outFile:Le,withAudio:false,useInnerProxy:false,deterministic:false,disableGpu:false,disableHwCodec:false,windowTolerant:false,windowTimeout:Oe};var $e="[HWAccel]";async function Se(){let t=HardwareContext.auto(),e=t!==null;return t?.dispose(),e}var ue=Se().then(t=>(c.debug($e,"gpu:",t),t));async function de(t){let e=["no-sandbox","disable-dev-shm-usage","disable-web-security","disable-site-isolation-trials","ignore-certificate-errors","disable-blink-features=AutomationControlled","mute-audio","autoplay-policy=no-user-gesture-required","disable-extensions","deny-permission-prompts","use-mock-keychain","force-device-scale-factor=1","force-color-profile=srgb","ignore-gpu-blocklist","use-gl=angle","deterministic-mode","enable-begin-frame-control","disable-new-content-rendering-timeout","run-all-compositor-stages-before-draw","disable-threaded-animation","disable-threaded-scrolling","disable-checker-imaging","disable-image-animation-resync","enable-surface-synchronization","font-render-hinting=none","disable-background-networking","js-flags=--max-old-space-size=512","renderer-process-limit=1","num-raster-threads=2","disable-background-timer-throttling","disable-renderer-backgrounding","disable-backgrounding-occluded-windows","enable-logging=stderr"];I>=3?e.push("log-level=0","v=1"):e.push("log-level=3");let r=["FontationBackend"];if(!(await ue&&!t))e.push("use-angle=swiftshader","enable-unsafe-swiftshader");else {e.push("disable-gpu-sandbox","enable-unsafe-webgpu");let n=platform();n==="darwin"?e.push("use-angle=metal"):n==="win32"?e.push("use-angle=d3d11"):(e.push("use-angle=vulkan","disable-vulkan-surface"),r.push("Vulkan"));}return e.push(`enable-features=${r.join(",")}`),e}var j="--pup-priv-args";function Mr(){let t=process.argv,e=t.find(o=>o.startsWith(j));if(!e)return c.debug("procargv",t),process.argv;let r=["exec",...t.slice(-1)];return e=Buffer.from(e.split("=")[1],"base64").toString(),r.push(...JSON.parse(e)),c.debug("pupargs",r),r}function me(t,e){let r=t.split(" ").filter(i=>i.length),[o,...n]=r;if(!o)throw new Error("empty command");let s=spawn(o,n,{stdio:"inherit",...e}),l=false;return {process:s,wait:c.attach(s,o),get killed(){return l},kill(){if(l)return;l=true;let i=s.pid;i?Ue(i,"SIGKILL"):s.kill("SIGKILL");}}}async function Be(t){return [...await de(t),"headless=new"]}var ge="[Electron]";async function he({args:t}){let{default:e}=await import('electron'),r=await Be(t.includes("--disable-gpu")),o=await mkdtemp(join(tmpdir(),"pup-profile-")),n=r.map(p=>`--${p}`);n.push(`--user-data-dir=${o}`),n.push(`${j}=${Buffer.from(JSON.stringify(t)).toString("base64")}`);let s=[e,...n,ne].join(" ");c.debug(ge,s);let l={...process.env,RUST_BACKTRACE:"full"},i=me(s,{stdio:["ignore","pipe","pipe","ipc"],env:l});return i.process.once("exit",()=>{try{rmSync(o,{recursive:!0,force:!0});}catch(p){c.warn(ge,"profile cleanup failed:",p);}}),i}var R=class extends EventEmitter{constructor(e){super(),e.on("message",r=>{let o=r;switch(o.type){case "console":{this.emit("console",o.level,o.message);break}case "progress":{this.emit("progress",o.value);break}case "done":{this.emit("done",o.payload);break}case "error":{this.emit("error",new Error(o.error));break}}}),e.once("exit",r=>this.emit("close",r));}};var B="[pup]";async function Ke(t,e){c.debug(B,"runPupApp",t,e);let r=[t,"--width",`${e.width}`,"--height",`${e.height}`,"--fps",`${e.fps}`,"--duration",`${e.duration}`,"--window-timeout",`${e.windowTimeout}`,"--out-file",`${e.outFile}`];return e.withAudio&&r.push("--with-audio"),e.useInnerProxy&&r.push("--use-inner-proxy"),e.deterministic&&r.push("--deterministic"),e.disableGpu&&r.push("--disable-gpu"),e.disableHwCodec&&r.push("--disable-hw-codec"),e.windowTolerant&&r.push("--window-tolerant"),he({args:r})}var f=ce;async function rt(t,e){c.debug(B,"pup",t,e);let{signal:r}=e;r?.throwIfAborted();let o=e.outFile??f.outFile,n={width:e.width??f.width,height:e.height??f.height,fps:e.fps??f.fps,duration:e.duration??f.duration,withAudio:e.withAudio??f.withAudio,useInnerProxy:e.useInnerProxy??f.useInnerProxy,deterministic:e.deterministic??f.deterministic,disableGpu:e.disableGpu??f.disableGpu,disableHwCodec:e.disableHwCodec??f.disableHwCodec,windowTolerant:e.windowTolerant??f.windowTolerant,windowTimeout:e.windowTimeout??f.windowTimeout,outFile:o},s=performance.now(),l=0,i=w=>{l=w,e.onProgress?.(w);},p=await Ke(t,n),y=()=>{p.process.send?.({type:"cancel",reason:String(r?.reason??"abort")}),setTimeout(()=>p.kill(),5e3);};r?.addEventListener("abort",y,{once:true});try{let w=new Promise((T,u)=>{new R(p.process).on("close",x=>{let P=JSON.stringify({source:t,progress:l,code:x,killed:p.killed});u(new Error(`crashed: ${P}`));}).on("progress",i).on("console",(x,P)=>e.onConsole?.(x,P)).on("done",T).on("error",u);});i(0);let[a]=await Promise.all([w,p.wait]);return i(100),c.debug(B,`done ${o} in ${Math.round(performance.now()-s)}ms`),{...a,options:n}}catch(w){throw p.kill(),r?.throwIfAborted(),w}finally{r?.removeEventListener("abort",y);}}export{re as a,ze as b,te as c,oe as d,v as e,c as f,hr as g,Mr as h,Ae as i,Ie as j,Re as k,De as l,Oe as m,vr as n,ce as o,rt as p};//# sourceMappingURL=chunk-XRCHOYPZ.js.map
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXNlL2NsaV91aS50cyIsIi4uL3NyYy9iYXNlL2Vudi50cyIsIi4uL3NyYy9iYXNlL3BhcnNlci50cyIsIi4uL3NyYy9iYXNlL2NvbnN0YW50cy50cyIsIi4uL3NyYy9iYXNlL2xvZ2dpbmcudHMiLCIuLi9zcmMvYmFzZS9ub2Vyci50cyIsIi4uL3NyYy9yZW5kZXJlci9zY2hlbWEudHMiLCIuLi9zcmMvYmFzZS9od2FjY2VsLnRzIiwiLi4vc3JjL2Jhc2UvY2hyb21pdW0udHMiLCIuLi9zcmMvYmFzZS9wcm9jZXNzLnRzIiwiLi4vc3JjL3JlbmRlcmVyL2VsZWN0cm9uLnRzIiwiLi4vc3JjL3JlbmRlcmVyL2lwYy50cyIsIi4uL3NyYy9wdXAudHMiXSwibmFtZXMiOlsiUHJvZ3Jlc3NCYXIiLCJvcHRzIiwid3JpdHRlbiIsInBjdCIsImxpbmUiLCJyYXRpbyIsImZpbGxlZCIsImJhciIsInN1ZmZpeCIsImJhckxvZ2dlciIsIndyYXAiLCJmbiIsImFyZ3MiLCJwZW52IiwibmFtZSIsInBhcnNlciIsImRlZmF1bHRWYWx1ZSIsInBhcnNlTnVtYmVyIiwieCIsIm51bSIsInJlcXVpcmUiLCJjcmVhdGVSZXF1aXJlIiwicHVwTG9nTGV2ZWwiLCJwdXBQa2dSb290IiwiZGlybmFtZSIsInB1cEFwcCIsImpvaW4iLCJERUJVRyIsIklORk8iLCJXQVJOIiwiRVJST1IiLCJGQVRBTCIsInN0YWNrSG9vayIsInRhcmdldCIsIl9jb250ZXh0IiwibWVzc2FnZXMiLCJwcm9jZXNzZWQiLCJtc2ciLCJfZmF0YWxfZGVjIiwiX2Vycm9yX2RlYyIsIl93YXJuX2RlYyIsIl9pbmZvX2RlYyIsIl9kZWJ1Z19kZWMiLCJfaW5pdCIsIkxvZ2dlciIsIl9sZXZlbCIsIl9fcnVuSW5pdGlhbGl6ZXJzIiwiX19wdWJsaWNGaWVsZCIsInZhbHVlIiwiZGVidWciLCJpbmZvIiwid2FybiIsImVycm9yIiwibHYiLCJtZXNzYWdlIiwicHJvYyIsInJlc29sdmUiLCJyZWplY3QiLCJmYXRhbCIsImRpc3BhdGNoIiwiZGF0YSIsImVyciIsImNvZGUiLCJzaWduYWwiLCJyZWFzb24iLCJfX2RlY29yYXRvclN0YXJ0IiwiX19kZWNvcmF0ZUVsZW1lbnQiLCJfX2RlY29yYXRvck1ldGFkYXRhIiwibG9nZ2VyIiwiTG9nIiwibGV2ZWwiLCJBVl9MT0dfRVJST1IiLCJBVl9MT0dfV0FSTklORyIsIm5vZXJyIiwicmV0IiwiREVGQVVMVF9XSURUSCIsIkRFRkFVTFRfSEVJR0hUIiwiREVGQVVMVF9GUFMiLCJERUZBVUxUX0RVUkFUSU9OIiwiREVGQVVMVF9XSU5ET1dfVElNRU9VVCIsIkRFRkFVTFRfT1VUX0ZJTEUiLCJyZW5kZXJTY2hlbWEiLCJ6IiwiZGVmYXVsdFJlbmRlck9wdGlvbnMiLCJUQUciLCJkZXRlY3RHUFVEcml2ZXIiLCJodyIsIkhhcmR3YXJlQ29udGV4dCIsInJlc3VsdCIsImNhbklVc2VHUFUiLCJjaHJvbWl1bU9wdGlvbnMiLCJkaXNhYmxlR3B1IiwiZmVhdHVyZXMiLCJwbGF0IiwicGxhdGZvcm0iLCJQVVBfQVJHU19LRVkiLCJwYXJncyIsImFyZ3YiLCJwcml2IiwiYXJnIiwiZXhlYyIsImNtZCIsIm9wdGlvbnMiLCJwYXJ0cyIsInMiLCJjb21tYW5kIiwic3Bhd24iLCJraWxsZWQiLCJwaWQiLCJ0cmVlS2lsbCIsImVsZWN0cm9uT3B0cyIsInJ1bkVsZWN0cm9uQXBwIiwiZWxlY3Ryb24iLCJwcm9maWxlRGlyIiwibWtkdGVtcCIsInRtcGRpciIsImVsZWN0cm9uQXJncyIsImEiLCJlbnYiLCJoYW5kbGUiLCJybVN5bmMiLCJlIiwiSXBjUmVhZGVyIiwiRXZlbnRFbWl0dGVyIiwiY2hpbGQiLCJyYXciLCJjIiwicnVuUHVwQXBwIiwic291cmNlIiwicmVuZGVyIiwiZCIsInB1cCIsIm91dEZpbGUiLCJyZW5kZXJPcHRzIiwidDAiLCJwcm9ncmVzcyIsInRpY2siLCJwIiwib25BYm9ydCIsImwiLCJtIiwic3VtbWFyeSJdLCJtYXBwaW5ncyI6InU0Q0FZTyxJ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UFouanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA1LzI2LlxuXG5pbXBvcnQgdHlwZSB7IExvZ2dlckxpa2UgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5cbmNvbnN0IEJBUl9XSURUSCA9IDQwO1xuXG5pbnRlcmZhY2UgQmFyT3B0aW9ucyB7XG4gIHRvdGFsOiBudW1iZXI7XG4gIG91dDogTm9kZUpTLldyaXRlU3RyZWFtO1xuICBzaG93Q291bnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUHJvZ3Jlc3NCYXIge1xuICBwcml2YXRlIF93cml0dGVuID0gMDtcbiAgcHJpdmF0ZSBfc2hvd24gPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdG90YWw6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3V0OiBOb2RlSlMuV3JpdGVTdHJlYW07XG4gIHByaXZhdGUgcmVhZG9ubHkgX3R0eTogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2hvd0NvdW50OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKG9wdHM6IEJhck9wdGlvbnMpIHtcbiAgICB0aGlzLl90b3RhbCA9IG9wdHMudG90YWw7XG4gICAgdGhpcy5fb3V0ID0gb3B0cy5vdXQ7XG4gICAgdGhpcy5fdHR5ID0gISFvcHRzLm91dC5pc1RUWTtcbiAgICB0aGlzLl9zaG93Q291bnQgPSBvcHRzLnNob3dDb3VudCA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCB0b3RhbCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl90b3RhbDtcbiAgfVxuXG4gIHVwZGF0ZSh3cml0dGVuOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl93cml0dGVuID0gTWF0aC5taW4odGhpcy5fdG90YWwsIE1hdGgubWF4KDAsIHdyaXR0ZW4pKTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgdXBkYXRlUGVyY2VudChwY3Q6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlKE1hdGgucm91bmQoKHBjdCAvIDEwMCkgKiB0aGlzLl90b3RhbCkpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3R0eSAmJiB0aGlzLl9zaG93bikge1xuICAgICAgdGhpcy5fb3V0LndyaXRlKFwiXFxyXFx4MWJbMktcIik7XG4gICAgfVxuICB9XG5cbiAgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBsb2cobGluZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuX291dC53cml0ZShgJHtsaW5lfVxcbmApO1xuICAgIHRoaXMucmVkcmF3KCk7XG4gIH1cblxuICBmaW5pc2gobGluZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhcigpO1xuICAgIHRoaXMuX291dC53cml0ZShgJHtsaW5lfVxcbmApO1xuICAgIHRoaXMuX3Nob3duID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3R0eSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fd3JpdHRlbiA9PT0gMCAmJiAhdGhpcy5fc2hvd24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmF0aW8gPSB0aGlzLl90b3RhbCA+IDAgPyB0aGlzLl93cml0dGVuIC8gdGhpcy5fdG90YWwgOiAwO1xuICAgIGNvbnN0IGZpbGxlZCA9IE1hdGgucm91bmQocmF0aW8gKiBCQVJfV0lEVEgpO1xuICAgIGNvbnN0IGJhciA9IFwiI1wiLnJlcGVhdChmaWxsZWQpICsgXCItXCIucmVwZWF0KEJBUl9XSURUSCAtIGZpbGxlZCk7XG4gICAgY29uc3QgcGN0ID0gTWF0aC5yb3VuZChyYXRpbyAqIDEwMCk7XG4gICAgY29uc3Qgc3VmZml4ID0gdGhpcy5fc2hvd0NvdW50ID8gYCR7dGhpcy5fd3JpdHRlbn0vJHt0aGlzLl90b3RhbH0gKCR7cGN0fSUpYCA6IGAke3BjdH0lYDtcbiAgICB0aGlzLl9vdXQud3JpdGUoYFxcclske2Jhcn1dICR7c3VmZml4fWApO1xuICAgIHRoaXMuX3Nob3duID0gdHJ1ZTtcbiAgfVxufVxuXG4vLyBBcm91bmQgZWFjaCBjb25zb2xlLiogY2FsbCwgY2xlYXIgdGhlIGJhciBsaW5lIHRoZW4gcmVkcmF3IOKAlCBrZWVwcyBuYXRpdmUgY29uc29sZSBjb2xvcmluZyBpbnRhY3QuXG5leHBvcnQgZnVuY3Rpb24gYmFyTG9nZ2VyKGJhcjogUHJvZ3Jlc3NCYXIpOiBMb2dnZXJMaWtlIHtcbiAgY29uc3Qgd3JhcCA9XG4gICAgPFQgZXh0ZW5kcyAoLi4uYTogdW5rbm93bltdKSA9PiB2b2lkPihmbjogVCkgPT5cbiAgICAoLi4uYXJnczogdW5rbm93bltdKSA9PiB7XG4gICAgICBiYXIuY2xlYXIoKTtcbiAgICAgIGZuKC4uLmFyZ3MpO1xuICAgICAgYmFyLnJlZHJhdygpO1xuICAgIH07XG4gIHJldHVybiB7XG4gICAgZGVidWc6IHdyYXAoY29uc29sZS5kZWJ1ZyksXG4gICAgaW5mbzogd3JhcChjb25zb2xlLmluZm8pLFxuICAgIHdhcm46IHdyYXAoY29uc29sZS53YXJuKSxcbiAgICBlcnJvcjogd3JhcChjb25zb2xlLmVycm9yKSxcbiAgfTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjUuXG5cbmV4cG9ydCB0eXBlIEVudlBhcnNlcjxUPiA9ICh2YWx1ZTogdW5rbm93bikgPT4gVDtcblxuZXhwb3J0IGZ1bmN0aW9uIHBlbnY8VD4obmFtZTogc3RyaW5nLCBwYXJzZXI6IEVudlBhcnNlcjxUPiwgZGVmYXVsdFZhbHVlOiBUKTogVDtcbmV4cG9ydCBmdW5jdGlvbiBwZW52PFQ+KG5hbWU6IHN0cmluZywgcGFyc2VyOiBFbnZQYXJzZXI8VD4sIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIHBlbnY8VD4obmFtZTogc3RyaW5nLCBwYXJzZXI6IEVudlBhcnNlcjxUPiwgZGVmYXVsdFZhbHVlPzogVCk6IFQgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIHJldHVybiBwYXJzZXIocHJvY2Vzcy5lbnZbbmFtZV0pO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICB9XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAxLzMwLlxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VOdW1iZXIoeDogdW5rbm93bik6IG51bWJlciB7XG4gIGlmICh0eXBlb2YgeCA9PT0gXCJudW1iZXJcIikge1xuICAgIHJldHVybiB4O1xuICB9XG4gIGNvbnN0IG51bSA9IE51bWJlcih4KTtcbiAgaWYgKE51bWJlci5pc05hTihudW0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBWYWx1ZSAke3h9IGlzIG5vdCBhIHZhbGlkIG51bWJlcmApO1xuICB9XG4gIHJldHVybiBudW07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVN0cmluZyh4OiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiB4ID09PSBcInN0cmluZ1wiKSB7XG4gICAgcmV0dXJuIHg7XG4gIH1cbiAgcmV0dXJuIFN0cmluZyh4KTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDkuXG5cbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBwZW52IH0gZnJvbSBcIi4vZW52XCI7XG5pbXBvcnQgeyBwYXJzZU51bWJlciB9IGZyb20gXCIuL3BhcnNlclwiO1xuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuXG5leHBvcnQgY29uc3QgcHVwTG9nTGV2ZWwgPSBwZW52KFwiUFVQX0xPR19MRVZFTFwiLCBwYXJzZU51bWJlciwgMik7XG5cbmV4cG9ydCBjb25zdCBwdXBQa2dSb290ID0gZGlybmFtZShyZXF1aXJlLnJlc29sdmUoXCJwdXAtcmVjb3JkZXIvcGFja2FnZS5qc29uXCIpKTtcbmV4cG9ydCBjb25zdCBwdXBBcHAgPSBqb2luKHB1cFBrZ1Jvb3QsIFwiZGlzdFwiLCBcImFwcC5janNcIik7XG5leHBvcnQgY29uc3QgcHVwQXVkaW9QcmVsb2FkID0gam9pbihwdXBQa2dSb290LCBcImRpc3RcIiwgXCJydW50aW1lXCIsIFwiYXVkaW9fcHJlbG9hZC5janNcIik7XG5leHBvcnQgY29uc3QgcHVwSWZyYW1lUHJlbG9hZCA9IGpvaW4ocHVwUGtnUm9vdCwgXCJkaXN0XCIsIFwicnVudGltZVwiLCBcImlmcmFtZV9wcmVsb2FkLmNqc1wiKTtcbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDYuXG5cbmltcG9ydCB0eXBlIHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSBcIm5vZGU6Y2hpbGRfcHJvY2Vzc1wiO1xuaW1wb3J0IHsgTG9nIH0gZnJvbSBcIm5vZGUtYXZcIjtcbmltcG9ydCB7IEFWX0xPR19FUlJPUiwgQVZfTE9HX1dBUk5JTkcgfSBmcm9tIFwibm9kZS1hdi9jb25zdGFudHNcIjtcbmltcG9ydCB7IHB1cExvZ0xldmVsIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9nZ2VyTGlrZSB7XG4gIGRlYnVnPyh0aGlzOiB2b2lkLCAuLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZDtcblxuICBpbmZvPyh0aGlzOiB2b2lkLCAuLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZDtcblxuICB3YXJuPyh0aGlzOiB2b2lkLCAuLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZDtcblxuICBlcnJvcj8odGhpczogdm9pZCwgLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQ7XG59XG5cbmNvbnN0IERFQlVHID0gXCI8cHVwQGRlYnVnPlwiO1xuY29uc3QgSU5GTyA9IFwiPHB1cEBpbmZvPlwiO1xuY29uc3QgV0FSTiA9IFwiPHB1cEB3YXJuPlwiO1xuY29uc3QgRVJST1IgPSBcIjxwdXBAZXJyb3I+XCI7XG5jb25zdCBGQVRBTCA9IFwiPHB1cEBmYXRhbD5cIjtcblxuZnVuY3Rpb24gc3RhY2tIb29rKHRhcmdldDogKC4uLm1lc3NhZ2VzOiB1bmtub3duW10pID0+IHVua25vd24sIF9jb250ZXh0OiBDbGFzc01ldGhvZERlY29yYXRvckNvbnRleHQpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGlzOiBMb2dnZXIsIC4uLm1lc3NhZ2VzOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBwcm9jZXNzZWQgPSBtZXNzYWdlcy5tYXAoKG1zZykgPT4ge1xuICAgICAgcmV0dXJuIG1zZyBpbnN0YW5jZW9mIEVycm9yID8gKG1zZy5zdGFjayA/PyBTdHJpbmcobXNnKSkgOiBtc2c7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRhcmdldC5jYWxsKHRoaXMsIC4uLnByb2Nlc3NlZCk7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBMb2dnZXIgaW1wbGVtZW50cyBMb2dnZXJMaWtlIHtcbiAgcHJpdmF0ZSBfaW1wbD86IExvZ2dlckxpa2U7XG5cbiAgZ2V0IGxldmVsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xldmVsO1xuICB9XG5cbiAgc2V0IGxldmVsKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9sZXZlbCA9IHZhbHVlO1xuICAgIHRoaXMuaW1wbCA9IHRoaXMuX2ltcGwgPz8gY29uc29sZTtcbiAgfVxuXG4gIGdldCBpbXBsKCk6IExvZ2dlckxpa2UgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9pbXBsO1xuICB9XG5cbiAgc2V0IGltcGwodmFsdWU6IExvZ2dlckxpa2UpIHtcbiAgICBjb25zdCBkZWJ1ZyA9IHZhbHVlLmRlYnVnID8/IGNvbnNvbGUuZGVidWc7XG4gICAgY29uc3QgaW5mbyA9IHZhbHVlLmluZm8gPz8gY29uc29sZS5pbmZvO1xuICAgIGNvbnN0IHdhcm4gPSB2YWx1ZS53YXJuID8/IGNvbnNvbGUud2FybjtcbiAgICBjb25zdCBlcnJvciA9IHZhbHVlLmVycm9yID8/IGNvbnNvbGUuZXJyb3I7XG4gICAgY29uc3QgbHYgPSB0aGlzLl9sZXZlbDtcbiAgICB0aGlzLl9pbXBsID0ge1xuICAgICAgZGVidWc6IGx2ID49IDMgPyBkZWJ1ZyA6IHVuZGVmaW5lZCxcbiAgICAgIGluZm86IGx2ID49IDIgPyBpbmZvIDogdW5kZWZpbmVkLFxuICAgICAgd2FybjogbHYgPj0gMSA/IHdhcm4gOiB1bmRlZmluZWQsXG4gICAgICBlcnJvcjogbHYgPj0gMCA/IGVycm9yIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9sZXZlbDogbnVtYmVyID0gcHVwTG9nTGV2ZWwpIHtcbiAgICB0aGlzLmltcGwgPSBjb25zb2xlO1xuICB9XG5cbiAgQHN0YWNrSG9va1xuICBkZWJ1ZyguLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5pbXBsPy5kZWJ1Zz8uKERFQlVHLCAuLi5tZXNzYWdlcyk7XG4gIH1cblxuICBAc3RhY2tIb29rXG4gIGluZm8oLi4ubWVzc2FnZXM6IHVua25vd25bXSk6IHZvaWQge1xuICAgIHRoaXMuaW1wbD8uaW5mbz8uKElORk8sIC4uLm1lc3NhZ2VzKTtcbiAgfVxuXG4gIEBzdGFja0hvb2tcbiAgd2FybiguLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5pbXBsPy53YXJuPy4oV0FSTiwgLi4ubWVzc2FnZXMpO1xuICB9XG5cbiAgQHN0YWNrSG9va1xuICBlcnJvciguLi5tZXNzYWdlczogdW5rbm93bltdKTogdm9pZCB7XG4gICAgdGhpcy5pbXBsPy5lcnJvcj8uKEVSUk9SLCAuLi5tZXNzYWdlcyk7XG4gIH1cblxuICBAc3RhY2tIb29rXG4gIGZhdGFsKC4uLm1lc3NhZ2VzOiB1bmtub3duW10pOiB2b2lkIHtcbiAgICB0aGlzLmltcGw/LmVycm9yPy4oRkFUQUwsIC4uLm1lc3NhZ2VzKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BhdGNoKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGNvbnN0IG1zZyA9IG1lc3NhZ2UudHJpbUVuZCgpO1xuICAgIGlmIChtc2cuc3RhcnRzV2l0aChERUJVRykpIHtcbiAgICAgIHRoaXMuZGVidWcobXNnLnNsaWNlKERFQlVHLmxlbmd0aCArIDEpKTtcbiAgICB9IGVsc2UgaWYgKG1zZy5zdGFydHNXaXRoKElORk8pKSB7XG4gICAgICB0aGlzLmluZm8obXNnLnNsaWNlKElORk8ubGVuZ3RoICsgMSkpO1xuICAgIH0gZWxzZSBpZiAobXNnLnN0YXJ0c1dpdGgoV0FSTikpIHtcbiAgICAgIHRoaXMud2Fybihtc2cuc2xpY2UoV0FSTi5sZW5ndGggKyAxKSk7XG4gICAgfSBlbHNlIGlmIChtc2cuc3RhcnRzV2l0aChFUlJPUikpIHtcbiAgICAgIHRoaXMuZXJyb3IobXNnLnNsaWNlKEVSUk9SLmxlbmd0aCArIDEpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbmZvKG1zZyk7XG4gICAgfVxuICB9XG5cbiAgYXR0YWNoKHByb2M6IENoaWxkUHJvY2VzcywgbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuZGVidWcoYCR7bmFtZX0uYXR0YWNoYCk7XG4gICAgICBsZXQgZmF0YWw6IHN0cmluZyA9IFwiXCI7XG4gICAgICBjb25zdCBkaXNwYXRjaCA9IChkYXRhOiBCdWZmZXIpID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgICAgaWYgKG1lc3NhZ2Uuc3RhcnRzV2l0aChGQVRBTCkpIHtcbiAgICAgICAgICBmYXRhbCArPSBtZXNzYWdlLnNsaWNlKEZBVEFMLmxlbmd0aCArIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZGlzcGF0Y2gobWVzc2FnZSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBwcm9jLnN0ZGVycj8ub24oXCJkYXRhXCIsIGRpc3BhdGNoKTtcbiAgICAgIHByb2Muc3Rkb3V0Py5vbihcImRhdGFcIiwgZGlzcGF0Y2gpO1xuICAgICAgcHJvY1xuICAgICAgICAub24oXCJlcnJvclwiLCAoZXJyKSA9PiB7XG4gICAgICAgICAgZmF0YWwgKz0gZXJyLm1lc3NhZ2U7XG4gICAgICAgICAgcHJvYy5raWxsKCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbmNlKFwiY2xvc2VcIiwgKGNvZGUsIHNpZ25hbCkgPT4ge1xuICAgICAgICAgIGlmIChjb2RlIHx8IHNpZ25hbCB8fCBmYXRhbCkge1xuICAgICAgICAgICAgZmF0YWwgfHw9IGBjb21tYW5kIGZhaWxlZDogJHtwcm9jLnNwYXduYXJncy5qb2luKFwiIFwiKX1gO1xuICAgICAgICAgICAgdGhpcy5kZWJ1ZyhgJHtuYW1lfS5jbG9zZWAsIHsgY29kZSwgc2lnbmFsLCBmYXRhbCB9KTtcbiAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IoZmF0YWwpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZWJ1ZyhgJHtuYW1lfS5jbG9zZWApO1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLm9uKFwidW5oYW5kbGVkUmVqZWN0aW9uXCIsIChyZWFzb24pID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yKGAke25hbWV9LnVuaGFuZGxlZGAsIHJlYXNvbik7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbihcInVuY2F1Z2h0RXhjZXB0aW9uTW9uaXRvclwiLCAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvcihgJHtuYW1lfS51bmhhbmRsZWRgLCBlcnIpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5jb25zdCBsb2dnZXIgPSBuZXcgTG9nZ2VyKCk7XG5cbi8vIFJvdXRlIGZmbXBlZyBuYXRpdmUgbG9ncyB0aHJvdWdoIHB1cCdzIGxvZ2dlci5cbkxvZy5zZXRDYWxsYmFjaygobGV2ZWwsIG1lc3NhZ2UpID0+IHtcbiAgY29uc3QgbXNnID0gbWVzc2FnZS50cmltRW5kKCk7XG4gIGlmICghbXNnKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmIChsZXZlbCA8PSBBVl9MT0dfRVJST1IpIHtcbiAgICBsb2dnZXIuZXJyb3IobXNnKTtcbiAgfSBlbHNlIGlmIChsZXZlbCA8PSBBVl9MT0dfV0FSTklORykge1xuICAgIGxvZ2dlci53YXJuKG1zZyk7XG4gIH1cbn0pO1xuXG5leHBvcnQgeyBsb2dnZXIgfTtcbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjQuXG5cbmV4cG9ydCBmdW5jdGlvbiBub2VycjxBIGV4dGVuZHMgdW5rbm93bltdLCBSLCBEPihmbjogKC4uLmFyZ3M6IEEpID0+IFIsIGRlZmF1bHRWYWx1ZTogRCk6ICguLi5hcmdzOiBBKSA9PiBSIHwgRCB7XG4gIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXQgPSBmbiguLi5hcmdzKTtcbiAgICAgIGlmIChyZXQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgIHJldHVybiByZXQuY2F0Y2goKCkgPT4gZGVmYXVsdFZhbHVlKSBhcyBSIHwgRDtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZGVmYXVsdFZhbHVlO1xuICAgIH1cbiAgfTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMDYuXG5cbmltcG9ydCB6IGZyb20gXCJ6b2RcIjtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfV0lEVEggPSAxOTIwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSEVJR0hUID0gMTA4MDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0ZQUyA9IDMwO1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfRFVSQVRJT04gPSA1O1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfV0lORE9XX1RJTUVPVVQgPSAxMDtcbmV4cG9ydCBjb25zdCBERUZBVUxUX09VVF9GSUxFID0gXCJvdXQvaHRtbC5tcDQsb3V0L2h0bWwud2VibVwiO1xuXG5leHBvcnQgY29uc3QgcmVuZGVyU2NoZW1hID0gei5vYmplY3Qoe1xuICBkdXJhdGlvbjogei5udW1iZXIoKS5kZXNjcmliZShcIkR1cmF0aW9uIGluIHNlY29uZHNcIiksXG4gIHdpZHRoOiB6Lm51bWJlcigpLmRlc2NyaWJlKFwiVmlkZW8gd2lkdGhcIiksXG4gIGhlaWdodDogei5udW1iZXIoKS5kZXNjcmliZShcIlZpZGVvIGhlaWdodFwiKSxcbiAgZnBzOiB6Lm51bWJlcigpLmRlc2NyaWJlKFwiRnJhbWVzIHBlciBzZWNvbmRcIiksXG4gIHdpdGhBdWRpbzogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJDYXB0dXJlIGFuZCBlbmNvZGUgYXVkaW9cIiksXG4gIG91dEZpbGU6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJDb21tYS1zZXBhcmF0ZWQgb3V0cHV0IHBhdGhzOyBleHRlbnNpb24gKC5tcDQvLndlYm0pIHNlbGVjdHMgZW5jb2RlclwiKSxcbiAgdXNlSW5uZXJQcm94eTogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJVc2UgYmlsaWJpbGkgaW5uZXIgcHJveHkgZm9yIHJlc291cmNlIGFjY2Vzc1wiKSxcbiAgZGV0ZXJtaW5pc3RpYzogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJSZW5kZXIgYnkgZnJhbWUgcmF0aGVyIHRoYW4gcmVjb3JkaW5nXCIpLFxuICBkaXNhYmxlR3B1OiB6LmJvb2xlYW4oKS5kZXNjcmliZShcIkRpc2FibGUgR1BVIHJlbmRlcmluZywgbWF5IHJlZHVjZSBwZXJmb3JtYW5jZSBidXQgaW5jcmVhc2Ugc3RhYmlsaXR5XCIpLFxuICBkaXNhYmxlSHdDb2RlYzogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJEaXNhYmxlIGhhcmR3YXJlIHZpZGVvIGVuY29kZXIgKE5WRU5DL1ZpZGVvVG9vbGJveCksIHVzZSBzb2Z0d2FyZSB4MjY1XCIpLFxuICB3aW5kb3dUb2xlcmFudDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJGYWxsIGJhY2sgdG8gZG9tLXJlYWR5IGlmIHdhcm11cCBsb2FkIHRpbWVzIG91dFwiKSxcbiAgd2luZG93VGltZW91dDogei5udW1iZXIoKS5kZXNjcmliZShcIldpbmRvdyBsb2FkIHRpbWVvdXQgaW4gc2Vjb25kc1wiKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBSZW5kZXJPcHRpb25zID0gei5pbmZlcjx0eXBlb2YgcmVuZGVyU2NoZW1hPjtcblxuZXhwb3J0IHR5cGUgQ29uc29sZUNhbGxiYWNrID0gKGxldmVsOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NDYWxsYmFjayA9IChwcm9ncmVzczogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQQ1JlbmRlck9wdGlvbnMgZXh0ZW5kcyBSZW5kZXJPcHRpb25zIHtcbiAgc291cmNlOiBzdHJpbmc7XG4gIHNpZ25hbDogQWJvcnRTaWduYWw7XG4gIG9uUHJvZ3Jlc3M6IFByb2dyZXNzQ2FsbGJhY2s7XG4gIG9uQ29uc29sZTogQ29uc29sZUNhbGxiYWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlclJlc3VsdCB7XG4gIG9wdGlvbnM6IFJlbmRlck9wdGlvbnM7XG4gIHdyaXR0ZW46IG51bWJlcjtcbiAgamFuazogbnVtYmVyO1xuICBvdXRGaWxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0UmVuZGVyT3B0aW9uczogUmVuZGVyT3B0aW9ucyA9IHtcbiAgd2lkdGg6IERFRkFVTFRfV0lEVEgsXG4gIGhlaWdodDogREVGQVVMVF9IRUlHSFQsXG4gIGZwczogREVGQVVMVF9GUFMsXG4gIGR1cmF0aW9uOiBERUZBVUxUX0RVUkFUSU9OLFxuICBvdXRGaWxlOiBERUZBVUxUX09VVF9GSUxFLFxuICB3aXRoQXVkaW86IGZhbHNlLFxuICB1c2VJbm5lclByb3h5OiBmYWxzZSxcbiAgZGV0ZXJtaW5pc3RpYzogZmFsc2UsXG4gIGRpc2FibGVHcHU6IGZhbHNlLFxuICBkaXNhYmxlSHdDb2RlYzogZmFsc2UsXG4gIHdpbmRvd1RvbGVyYW50OiBmYWxzZSxcbiAgd2luZG93VGltZW91dDogREVGQVVMVF9XSU5ET1dfVElNRU9VVCxcbn07XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzI3LlxuXG5pbXBvcnQgeyBIYXJkd2FyZUNvbnRleHQgfSBmcm9tIFwibm9kZS1hdi9hcGlcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZ2dpbmdcIjtcblxuY29uc3QgVEFHID0gXCJbSFdBY2NlbF1cIjtcblxuYXN5bmMgZnVuY3Rpb24gZGV0ZWN0R1BVRHJpdmVyKCkge1xuICBjb25zdCBodyA9IEhhcmR3YXJlQ29udGV4dC5hdXRvKCk7XG4gIGNvbnN0IHJlc3VsdCA9IGh3ICE9PSBudWxsO1xuICBodz8uZGlzcG9zZSgpO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgY29uc3QgY2FuSVVzZUdQVSA9IGRldGVjdEdQVURyaXZlcigpLnRoZW4oKHJlc3VsdCkgPT4ge1xuICBsb2dnZXIuZGVidWcoVEFHLCBcImdwdTpcIiwgcmVzdWx0KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn0pO1xuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wNC8wMy5cblxuaW1wb3J0IHsgcGxhdGZvcm0gfSBmcm9tIFwibm9kZTpvc1wiO1xuaW1wb3J0IHsgcHVwTG9nTGV2ZWwgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNhbklVc2VHUFUgfSBmcm9tIFwiLi9od2FjY2VsXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjaHJvbWl1bU9wdGlvbnMoZGlzYWJsZUdwdTogYm9vbGVhbikge1xuICBjb25zdCBvcHRzID0gW1xuICAgIC8vIOWuueWZqOaymeeusVxuICAgIFwibm8tc2FuZGJveFwiLFxuICAgIFwiZGlzYWJsZS1kZXYtc2htLXVzYWdlXCIsXG4gICAgLy8g6Leo5Z+fL+WuieWFqFxuICAgIFwiZGlzYWJsZS13ZWItc2VjdXJpdHlcIixcbiAgICBcImRpc2FibGUtc2l0ZS1pc29sYXRpb24tdHJpYWxzXCIsXG4gICAgXCJpZ25vcmUtY2VydGlmaWNhdGUtZXJyb3JzXCIsXG4gICAgLy8g5b2V5Yi26KGM5Li6XG4gICAgXCJkaXNhYmxlLWJsaW5rLWZlYXR1cmVzPUF1dG9tYXRpb25Db250cm9sbGVkXCIsXG4gICAgXCJtdXRlLWF1ZGlvXCIsXG4gICAgXCJhdXRvcGxheS1wb2xpY3k9bm8tdXNlci1nZXN0dXJlLXJlcXVpcmVkXCIsXG4gICAgXCJkaXNhYmxlLWV4dGVuc2lvbnNcIixcbiAgICBcImRlbnktcGVybWlzc2lvbi1wcm9tcHRzXCIsXG4gICAgXCJ1c2UtbW9jay1rZXljaGFpblwiLFxuICAgIC8vIOa4suafk1xuICAgIFwiZm9yY2UtZGV2aWNlLXNjYWxlLWZhY3Rvcj0xXCIsXG4gICAgXCJmb3JjZS1jb2xvci1wcm9maWxlPXNyZ2JcIixcbiAgICBcImlnbm9yZS1ncHUtYmxvY2tsaXN0XCIsXG4gICAgXCJ1c2UtZ2w9YW5nbGVcIixcbiAgICBcImRldGVybWluaXN0aWMtbW9kZVwiLFxuICAgIFwiZW5hYmxlLWJlZ2luLWZyYW1lLWNvbnRyb2xcIixcbiAgICBcImRpc2FibGUtbmV3LWNvbnRlbnQtcmVuZGVyaW5nLXRpbWVvdXRcIixcbiAgICBcInJ1bi1hbGwtY29tcG9zaXRvci1zdGFnZXMtYmVmb3JlLWRyYXdcIixcbiAgICBcImRpc2FibGUtdGhyZWFkZWQtYW5pbWF0aW9uXCIsXG4gICAgXCJkaXNhYmxlLXRocmVhZGVkLXNjcm9sbGluZ1wiLFxuICAgIFwiZGlzYWJsZS1jaGVja2VyLWltYWdpbmdcIixcbiAgICBcImRpc2FibGUtaW1hZ2UtYW5pbWF0aW9uLXJlc3luY1wiLFxuICAgIFwiZW5hYmxlLXN1cmZhY2Utc3luY2hyb25pemF0aW9uXCIsXG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3B1cHBldGVlci9wdXBwZXRlZXIvaXNzdWVzLzI0MTBcbiAgICBcImZvbnQtcmVuZGVyLWhpbnRpbmc9bm9uZVwiLFxuICAgIC8vIOi1hOa6kOaOp+WItlxuICAgIFwiZGlzYWJsZS1iYWNrZ3JvdW5kLW5ldHdvcmtpbmdcIixcbiAgICBcImpzLWZsYWdzPS0tbWF4LW9sZC1zcGFjZS1zaXplPTUxMlwiLFxuICAgIFwicmVuZGVyZXItcHJvY2Vzcy1saW1pdD0xXCIsXG4gICAgXCJudW0tcmFzdGVyLXRocmVhZHM9MlwiLFxuICAgIFwiZGlzYWJsZS1iYWNrZ3JvdW5kLXRpbWVyLXRocm90dGxpbmdcIixcbiAgICBcImRpc2FibGUtcmVuZGVyZXItYmFja2dyb3VuZGluZ1wiLFxuICAgIFwiZGlzYWJsZS1iYWNrZ3JvdW5kaW5nLW9jY2x1ZGVkLXdpbmRvd3NcIixcbiAgICAvLyDml6Xlv5fov73ouKpcbiAgICBcImVuYWJsZS1sb2dnaW5nPXN0ZGVyclwiLFxuICBdO1xuXG4gIGlmIChwdXBMb2dMZXZlbCA+PSAzKSB7XG4gICAgb3B0cy5wdXNoKFwibG9nLWxldmVsPTBcIiwgXCJ2PTFcIik7XG4gIH0gZWxzZSB7XG4gICAgb3B0cy5wdXNoKFwibG9nLWxldmVsPTNcIik7XG4gIH1cblxuICBjb25zdCBmZWF0dXJlcyA9IFtcIkZvbnRhdGlvbkJhY2tlbmRcIl07XG4gIGNvbnN0IGVuYWJsZUdwdSA9IChhd2FpdCBjYW5JVXNlR1BVKSAmJiAhZGlzYWJsZUdwdTtcbiAgaWYgKCFlbmFibGVHcHUpIHtcbiAgICBvcHRzLnB1c2goXCJ1c2UtYW5nbGU9c3dpZnRzaGFkZXJcIiwgXCJlbmFibGUtdW5zYWZlLXN3aWZ0c2hhZGVyXCIpO1xuICB9IGVsc2Uge1xuICAgIG9wdHMucHVzaChcImRpc2FibGUtZ3B1LXNhbmRib3hcIiwgXCJlbmFibGUtdW5zYWZlLXdlYmdwdVwiKTtcbiAgICBjb25zdCBwbGF0ID0gcGxhdGZvcm0oKTtcbiAgICBpZiAocGxhdCA9PT0gXCJkYXJ3aW5cIikge1xuICAgICAgb3B0cy5wdXNoKFwidXNlLWFuZ2xlPW1ldGFsXCIpO1xuICAgIH0gZWxzZSBpZiAocGxhdCA9PT0gXCJ3aW4zMlwiKSB7XG4gICAgICBvcHRzLnB1c2goXCJ1c2UtYW5nbGU9ZDNkMTFcIik7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9wdHMucHVzaChcInVzZS1hbmdsZT12dWxrYW5cIiwgXCJkaXNhYmxlLXZ1bGthbi1zdXJmYWNlXCIpO1xuICAgICAgZmVhdHVyZXMucHVzaChcIlZ1bGthblwiKTtcbiAgICB9XG4gIH1cblxuICBvcHRzLnB1c2goYGVuYWJsZS1mZWF0dXJlcz0ke2ZlYXR1cmVzLmpvaW4oXCIsXCIpfWApO1xuICByZXR1cm4gb3B0cztcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDEvMzAuXG5cbmltcG9ydCB7IHR5cGUgQ2hpbGRQcm9jZXNzLCB0eXBlIFNwYXduT3B0aW9ucywgc3Bhd24gfSBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgdHJlZUtpbGwgZnJvbSBcInRyZWUta2lsbFwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuXG5leHBvcnQgY29uc3QgUFVQX0FSR1NfS0VZID0gXCItLXB1cC1wcml2LWFyZ3NcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmdzKCkge1xuICBjb25zdCBhcmd2ID0gcHJvY2Vzcy5hcmd2O1xuICBsZXQgcHJpdiA9IGFyZ3YuZmluZCgoYXJnKSA9PiBhcmcuc3RhcnRzV2l0aChQVVBfQVJHU19LRVkpKTtcbiAgaWYgKCFwcml2KSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwicHJvY2FyZ3ZcIiwgYXJndik7XG4gICAgcmV0dXJuIHByb2Nlc3MuYXJndjtcbiAgfVxuICBjb25zdCBhcmdzID0gW1wiZXhlY1wiLCAuLi5hcmd2LnNsaWNlKC0xKV07XG4gIHByaXYgPSBCdWZmZXIuZnJvbShwcml2LnNwbGl0KFwiPVwiKVsxXSEsIFwiYmFzZTY0XCIpLnRvU3RyaW5nKCk7XG4gIGFyZ3MucHVzaCguLi5KU09OLnBhcnNlKHByaXYpKTtcbiAgbG9nZ2VyLmRlYnVnKFwicHVwYXJnc1wiLCBhcmdzKTtcbiAgcmV0dXJuIGFyZ3M7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc0hhbmRsZSB7XG4gIHByb2Nlc3M6IENoaWxkUHJvY2VzcztcbiAgd2FpdDogUHJvbWlzZTx2b2lkPjtcbiAgZ2V0IGtpbGxlZCgpOiBib29sZWFuO1xuICBraWxsKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGVjKGNtZDogc3RyaW5nLCBvcHRpb25zPzogU3Bhd25PcHRpb25zKTogUHJvY2Vzc0hhbmRsZSB7XG4gIGNvbnN0IHBhcnRzID0gY21kLnNwbGl0KFwiIFwiKS5maWx0ZXIoKHMpID0+IHMubGVuZ3RoKTtcbiAgY29uc3QgW2NvbW1hbmQsIC4uLmFyZ3NdID0gcGFydHM7XG4gIGlmICghY29tbWFuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcImVtcHR5IGNvbW1hbmRcIik7XG4gIH1cbiAgY29uc3QgcHJvYyA9IHNwYXduKGNvbW1hbmQsIGFyZ3MsIHtcbiAgICBzdGRpbzogXCJpbmhlcml0XCIsXG4gICAgLi4ub3B0aW9ucyxcbiAgfSk7XG4gIGxldCBraWxsZWQgPSBmYWxzZTtcbiAgcmV0dXJuIHtcbiAgICBwcm9jZXNzOiBwcm9jLFxuICAgIHdhaXQ6IGxvZ2dlci5hdHRhY2gocHJvYywgY29tbWFuZCksXG4gICAgZ2V0IGtpbGxlZCgpIHtcbiAgICAgIHJldHVybiBraWxsZWQ7XG4gICAgfSxcbiAgICBraWxsKCkge1xuICAgICAgaWYgKGtpbGxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBraWxsZWQgPSB0cnVlO1xuICAgICAgY29uc3QgcGlkID0gcHJvYy5waWQ7XG4gICAgICBpZiAocGlkKSB7XG4gICAgICAgIHRyZWVLaWxsKHBpZCwgXCJTSUdLSUxMXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvYy5raWxsKFwiU0lHS0lMTFwiKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8yNS5cblxuaW1wb3J0IHsgcm1TeW5jIH0gZnJvbSBcIm5vZGU6ZnNcIjtcbmltcG9ydCB7IG1rZHRlbXAgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSBcIm5vZGU6b3NcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBjaHJvbWl1bU9wdGlvbnMgfSBmcm9tIFwiLi4vYmFzZS9jaHJvbWl1bVwiO1xuaW1wb3J0IHsgcHVwQXBwIH0gZnJvbSBcIi4uL2Jhc2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBleGVjLCBQVVBfQVJHU19LRVkgfSBmcm9tIFwiLi4vYmFzZS9wcm9jZXNzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbGVjdHJvbk9wdHMoZGlzYWJsZUdwdTogYm9vbGVhbikge1xuICByZXR1cm4gWy4uLihhd2FpdCBjaHJvbWl1bU9wdGlvbnMoZGlzYWJsZUdwdSkpLCBcImhlYWRsZXNzPW5ld1wiXTtcbn1cblxuY29uc3QgVEFHID0gXCJbRWxlY3Ryb25dXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVuRWxlY3Ryb25BcHBPcHRpb25zIHtcbiAgYXJnczogdW5rbm93bltdO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuRWxlY3Ryb25BcHAoeyBhcmdzIH06IFJ1bkVsZWN0cm9uQXBwT3B0aW9ucykge1xuICAvLyBMYXp5OiBlbGVjdHJvbidzIGVudHJ5IHRocm93cyBpZiB0aGUgYmluYXJ5IGlzIGFic2VudCwgc28gdXRpbC1vbmx5IGNvbnN1bWVycyBtdXN0IG5vdCBsb2FkIGl0IGF0IGltcG9ydCB0aW1lLlxuICBjb25zdCB7IGRlZmF1bHQ6IGVsZWN0cm9uIH0gPSBhd2FpdCBpbXBvcnQoXCJlbGVjdHJvblwiKTtcbiAgY29uc3Qgb3B0cyA9IGF3YWl0IGVsZWN0cm9uT3B0cyhhcmdzLmluY2x1ZGVzKFwiLS1kaXNhYmxlLWdwdVwiKSk7XG4gIC8vIFBlci1wcm9jZXNzIHByb2ZpbGU6IGlzb2xhdGVzIHRoaXMgY2FsbCdzIENocm9taXVtIGNhY2hlICh3YXJtdXAgd2luZG93cyBzaGFyZSBpdCB2aWEgZGVmYXVsdFNlc3Npb24pLCB3aXBlZCBvbiBleGl0LlxuICBjb25zdCBwcm9maWxlRGlyID0gYXdhaXQgbWtkdGVtcChqb2luKHRtcGRpcigpLCBcInB1cC1wcm9maWxlLVwiKSk7XG4gIGNvbnN0IGVsZWN0cm9uQXJncyA9IG9wdHMubWFwKChhKSA9PiBgLS0ke2F9YCk7XG4gIGVsZWN0cm9uQXJncy5wdXNoKGAtLXVzZXItZGF0YS1kaXI9JHtwcm9maWxlRGlyfWApO1xuICBlbGVjdHJvbkFyZ3MucHVzaChgJHtQVVBfQVJHU19LRVl9PSR7QnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoYXJncykpLnRvU3RyaW5nKFwiYmFzZTY0XCIpfWApO1xuICBjb25zdCBjbWQgPSBbZWxlY3Ryb24sIC4uLmVsZWN0cm9uQXJncywgcHVwQXBwXS5qb2luKFwiIFwiKTtcbiAgbG9nZ2VyLmRlYnVnKFRBRywgY21kKTtcblxuICBjb25zdCBlbnY6IE5vZGVKUy5Qcm9jZXNzRW52ID0geyAuLi5wcm9jZXNzLmVudiwgUlVTVF9CQUNLVFJBQ0U6IFwiZnVsbFwiIH07XG4gIGNvbnN0IGhhbmRsZSA9IGV4ZWMoY21kLCB7IHN0ZGlvOiBbXCJpZ25vcmVcIiwgXCJwaXBlXCIsIFwicGlwZVwiLCBcImlwY1wiXSwgZW52IH0pO1xuICBoYW5kbGUucHJvY2Vzcy5vbmNlKFwiZXhpdFwiLCAoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIHJtU3luYyhwcm9maWxlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nZ2VyLndhcm4oVEFHLCBcInByb2ZpbGUgY2xlYW51cCBmYWlsZWQ6XCIsIGUpO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBoYW5kbGU7XG59XG4iLCIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzA0LzAxLlxuXG5pbXBvcnQgdHlwZSB7IENoaWxkUHJvY2VzcyB9IGZyb20gXCJub2RlOmNoaWxkX3Byb2Nlc3NcIjtcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJub2RlOmV2ZW50c1wiO1xuXG5leHBvcnQgZW51bSBJcGNNc2dUeXBlIHtcbiAgLy8gY2hpbGQg4oaSIHBhcmVudFxuICBDb25zb2xlID0gXCJjb25zb2xlXCIsXG4gIFByb2dyZXNzID0gXCJwcm9ncmVzc1wiLFxuICBEb25lID0gXCJkb25lXCIsXG4gIEVycm9yID0gXCJlcnJvclwiLFxuICAvLyBwYXJlbnQg4oaSIGNoaWxkXG4gIENhbmNlbCA9IFwiY2FuY2VsXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc29sZU1zZyB7XG4gIHR5cGU6IElwY01zZ1R5cGUuQ29uc29sZTtcbiAgbGV2ZWw6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbmNlbE1zZyB7XG4gIHR5cGU6IElwY01zZ1R5cGUuQ2FuY2VsO1xuICByZWFzb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXBjRG9uZVBheWxvYWQge1xuICB3cml0dGVuOiBudW1iZXI7XG4gIGphbms6IG51bWJlcjtcbiAgb3V0RmlsZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2dyZXNzTXNnIHtcbiAgdHlwZTogSXBjTXNnVHlwZS5Qcm9ncmVzcztcbiAgdmFsdWU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb25lTXNnIHtcbiAgdHlwZTogSXBjTXNnVHlwZS5Eb25lO1xuICBwYXlsb2FkOiBJcGNEb25lUGF5bG9hZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFcnJvck1zZyB7XG4gIHR5cGU6IElwY01zZ1R5cGUuRXJyb3I7XG4gIGVycm9yOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIElwY01zZyA9IENvbnNvbGVNc2cgfCBQcm9ncmVzc01zZyB8IERvbmVNc2cgfCBFcnJvck1zZyB8IENhbmNlbE1zZztcblxuZXhwb3J0IGludGVyZmFjZSBJcGNFdmVudHMge1xuICBwcm9ncmVzczogW3ZhbHVlOiBudW1iZXJdO1xuICBjb25zb2xlOiBbbGV2ZWw6IHN0cmluZywgbXNnOiBzdHJpbmddO1xuICBkb25lOiBbcGF5bG9hZDogSXBjRG9uZVBheWxvYWRdO1xuICBlcnJvcjogW2Vycm9yOiBFcnJvcl07XG4gIGNsb3NlOiBbY29kZTogbnVtYmVyIHwgbnVsbF07XG59XG5cbmV4cG9ydCBjbGFzcyBJcGNXcml0ZXIge1xuICB3cml0ZUNvbnNvbGUobGV2ZWw6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZW5kKHsgdHlwZTogSXBjTXNnVHlwZS5Db25zb2xlLCBsZXZlbCwgbWVzc2FnZSB9KTtcbiAgfVxuXG4gIHdyaXRlUHJvZ3Jlc3ModmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuUHJvZ3Jlc3MsIHZhbHVlIH0pO1xuICB9XG5cbiAgd3JpdGVFcnJvcihlcnJvcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuRXJyb3IsIGVycm9yIH0pO1xuICB9XG5cbiAgd3JpdGVEb25lKHBheWxvYWQ6IElwY0RvbmVQYXlsb2FkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VuZCh7IHR5cGU6IElwY01zZ1R5cGUuRG9uZSwgcGF5bG9hZCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZChtc2c6IElwY01zZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgaWYgKCFwcm9jZXNzLnNlbmQpIHtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICAgIH1cbiAgICAgIHByb2Nlc3Muc2VuZChtc2csICgpID0+IHJlc29sdmUoKSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIElwY1JlYWRlciBleHRlbmRzIEV2ZW50RW1pdHRlcjxJcGNFdmVudHM+IHtcbiAgY29uc3RydWN0b3IoY2hpbGQ6IENoaWxkUHJvY2Vzcykge1xuICAgIHN1cGVyKCk7XG4gICAgY2hpbGQub24oXCJtZXNzYWdlXCIsIChyYXcpID0+IHtcbiAgICAgIGNvbnN0IG1zZyA9IHJhdyBhcyBJcGNNc2c7XG4gICAgICBzd2l0Y2ggKG1zZy50eXBlKSB7XG4gICAgICAgIGNhc2UgSXBjTXNnVHlwZS5Db25zb2xlOiB7XG4gICAgICAgICAgdGhpcy5lbWl0KFwiY29uc29sZVwiLCBtc2cubGV2ZWwsIG1zZy5tZXNzYWdlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIElwY01zZ1R5cGUuUHJvZ3Jlc3M6IHtcbiAgICAgICAgICB0aGlzLmVtaXQoXCJwcm9ncmVzc1wiLCBtc2cudmFsdWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgSXBjTXNnVHlwZS5Eb25lOiB7XG4gICAgICAgICAgdGhpcy5lbWl0KFwiZG9uZVwiLCBtc2cucGF5bG9hZCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBJcGNNc2dUeXBlLkVycm9yOiB7XG4gICAgICAgICAgdGhpcy5lbWl0KFwiZXJyb3JcIiwgbmV3IEVycm9yKG1zZy5lcnJvcikpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgY2hpbGQub25jZShcImV4aXRcIiwgKGMpID0+IHRoaXMuZW1pdChcImNsb3NlXCIsIGMpKTtcbiAgfVxufVxuIiwiLy8gQ3JlYXRlZCBieSBBdXRva2FrYSAocXExOTA5Njk4NDk0QGdtYWlsLmNvbSkgb24gMjAyNi8wMi8wOS5cblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBydW5FbGVjdHJvbkFwcCB9IGZyb20gXCIuL3JlbmRlcmVyL2VsZWN0cm9uXCI7XG5pbXBvcnQgeyB0eXBlIElwY0RvbmVQYXlsb2FkLCBJcGNNc2dUeXBlLCBJcGNSZWFkZXIgfSBmcm9tIFwiLi9yZW5kZXJlci9pcGNcIjtcbmltcG9ydCB7XG4gIHR5cGUgQ29uc29sZUNhbGxiYWNrLFxuICBkZWZhdWx0UmVuZGVyT3B0aW9ucyxcbiAgdHlwZSBQcm9ncmVzc0NhbGxiYWNrLFxuICB0eXBlIFJlbmRlck9wdGlvbnMsXG4gIHR5cGUgUmVuZGVyUmVzdWx0LFxufSBmcm9tIFwiLi9yZW5kZXJlci9zY2hlbWFcIjtcblxuY29uc3QgVEFHID0gXCJbcHVwXVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFB1cE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPFJlbmRlck9wdGlvbnM+IHtcbiAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIG9uUHJvZ3Jlc3M/OiBQcm9ncmVzc0NhbGxiYWNrO1xuICBvbkNvbnNvbGU/OiBDb25zb2xlQ2FsbGJhY2s7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHVwUmVzdWx0IGV4dGVuZHMgUmVuZGVyUmVzdWx0IHt9XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1blB1cEFwcChzb3VyY2U6IHN0cmluZywgcmVuZGVyOiBSZW5kZXJPcHRpb25zKSB7XG4gIGxvZ2dlci5kZWJ1ZyhUQUcsIGBydW5QdXBBcHBgLCBzb3VyY2UsIHJlbmRlcik7XG5cbiAgY29uc3QgYXJnczogc3RyaW5nW10gPSBbXG4gICAgc291cmNlLFxuICAgIGAtLXdpZHRoYCxcbiAgICBgJHtyZW5kZXIud2lkdGh9YCxcbiAgICBgLS1oZWlnaHRgLFxuICAgIGAke3JlbmRlci5oZWlnaHR9YCxcbiAgICBgLS1mcHNgLFxuICAgIGAke3JlbmRlci5mcHN9YCxcbiAgICBgLS1kdXJhdGlvbmAsXG4gICAgYCR7cmVuZGVyLmR1cmF0aW9ufWAsXG4gICAgYC0td2luZG93LXRpbWVvdXRgLFxuICAgIGAke3JlbmRlci53aW5kb3dUaW1lb3V0fWAsXG4gICAgYC0tb3V0LWZpbGVgLFxuICAgIGAke3JlbmRlci5vdXRGaWxlfWAsXG4gIF07XG4gIGlmIChyZW5kZXIud2l0aEF1ZGlvKSB7XG4gICAgYXJncy5wdXNoKGAtLXdpdGgtYXVkaW9gKTtcbiAgfVxuICBpZiAocmVuZGVyLnVzZUlubmVyUHJveHkpIHtcbiAgICBhcmdzLnB1c2goYC0tdXNlLWlubmVyLXByb3h5YCk7XG4gIH1cbiAgaWYgKHJlbmRlci5kZXRlcm1pbmlzdGljKSB7XG4gICAgYXJncy5wdXNoKGAtLWRldGVybWluaXN0aWNgKTtcbiAgfVxuICBpZiAocmVuZGVyLmRpc2FibGVHcHUpIHtcbiAgICBhcmdzLnB1c2goYC0tZGlzYWJsZS1ncHVgKTtcbiAgfVxuICBpZiAocmVuZGVyLmRpc2FibGVId0NvZGVjKSB7XG4gICAgYXJncy5wdXNoKGAtLWRpc2FibGUtaHctY29kZWNgKTtcbiAgfVxuICBpZiAocmVuZGVyLndpbmRvd1RvbGVyYW50KSB7XG4gICAgYXJncy5wdXNoKGAtLXdpbmRvdy10b2xlcmFudGApO1xuICB9XG5cbiAgcmV0dXJuIHJ1bkVsZWN0cm9uQXBwKHsgYXJncyB9KTtcbn1cblxuY29uc3QgZCA9IGRlZmF1bHRSZW5kZXJPcHRpb25zO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVwKHNvdXJjZTogc3RyaW5nLCBvcHRpb25zOiBQYXJ0aWFsPFB1cE9wdGlvbnM+KTogUHJvbWlzZTxQdXBSZXN1bHQ+IHtcbiAgbG9nZ2VyLmRlYnVnKFRBRywgYHB1cGAsIHNvdXJjZSwgb3B0aW9ucyk7XG5cbiAgY29uc3QgeyBzaWduYWwgfSA9IG9wdGlvbnM7XG4gIHNpZ25hbD8udGhyb3dJZkFib3J0ZWQoKTtcblxuICBjb25zdCBvdXRGaWxlID0gb3B0aW9ucy5vdXRGaWxlID8/IGQub3V0RmlsZTtcbiAgY29uc3QgcmVuZGVyT3B0czogUmVuZGVyT3B0aW9ucyA9IHtcbiAgICB3aWR0aDogb3B0aW9ucy53aWR0aCA/PyBkLndpZHRoLFxuICAgIGhlaWdodDogb3B0aW9ucy5oZWlnaHQgPz8gZC5oZWlnaHQsXG4gICAgZnBzOiBvcHRpb25zLmZwcyA/PyBkLmZwcyxcbiAgICBkdXJhdGlvbjogb3B0aW9ucy5kdXJhdGlvbiA/PyBkLmR1cmF0aW9uLFxuICAgIHdpdGhBdWRpbzogb3B0aW9ucy53aXRoQXVkaW8gPz8gZC53aXRoQXVkaW8sXG4gICAgdXNlSW5uZXJQcm94eTogb3B0aW9ucy51c2VJbm5lclByb3h5ID8/IGQudXNlSW5uZXJQcm94eSxcbiAgICBkZXRlcm1pbmlzdGljOiBvcHRpb25zLmRldGVybWluaXN0aWMgPz8gZC5kZXRlcm1pbmlzdGljLFxuICAgIGRpc2FibGVHcHU6IG9wdGlvbnMuZGlzYWJsZUdwdSA/PyBkLmRpc2FibGVHcHUsXG4gICAgZGlzYWJsZUh3Q29kZWM6IG9wdGlvbnMuZGlzYWJsZUh3Q29kZWMgPz8gZC5kaXNhYmxlSHdDb2RlYyxcbiAgICB3aW5kb3dUb2xlcmFudDogb3B0aW9ucy53aW5kb3dUb2xlcmFudCA/PyBkLndpbmRvd1RvbGVyYW50LFxuICAgIHdpbmRvd1RpbWVvdXQ6IG9wdGlvbnMud2luZG93VGltZW91dCA/PyBkLndpbmRvd1RpbWVvdXQsXG4gICAgb3V0RmlsZSxcbiAgfTtcblxuICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICBsZXQgcHJvZ3Jlc3MgPSAwO1xuICBjb25zdCB0aWNrID0gKHA6IG51bWJlcikgPT4ge1xuICAgIHByb2dyZXNzID0gcDtcbiAgICBvcHRpb25zLm9uUHJvZ3Jlc3M/LihwKTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGUgPSBhd2FpdCBydW5QdXBBcHAoc291cmNlLCByZW5kZXJPcHRzKTtcblxuICBjb25zdCBvbkFib3J0ID0gKCkgPT4ge1xuICAgIGhhbmRsZS5wcm9jZXNzLnNlbmQ/Lih7IHR5cGU6IElwY01zZ1R5cGUuQ2FuY2VsLCByZWFzb246IFN0cmluZyhzaWduYWw/LnJlYXNvbiA/PyBcImFib3J0XCIpIH0pO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gaGFuZGxlLmtpbGwoKSwgNV8wMDApO1xuICB9O1xuICBzaWduYWw/LmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0LCB7IG9uY2U6IHRydWUgfSk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgUHJvbWlzZTxJcGNEb25lUGF5bG9hZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgbmV3IElwY1JlYWRlcihoYW5kbGUucHJvY2VzcylcbiAgICAgICAgLm9uKFwiY2xvc2VcIiwgKGNvZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBtc2cgPSBKU09OLnN0cmluZ2lmeSh7IHNvdXJjZSwgcHJvZ3Jlc3MsIGNvZGUsIGtpbGxlZDogaGFuZGxlLmtpbGxlZCB9KTtcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBjcmFzaGVkOiAke21zZ31gKSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5vbihcInByb2dyZXNzXCIsIHRpY2spXG4gICAgICAgIC5vbihcImNvbnNvbGVcIiwgKGwsIG0pID0+IG9wdGlvbnMub25Db25zb2xlPy4obCwgbSkpXG4gICAgICAgIC5vbihcImRvbmVcIiwgcmVzb2x2ZSlcbiAgICAgICAgLm9uKFwiZXJyb3JcIiwgcmVqZWN0KTtcbiAgICB9KTtcbiAgICB0aWNrKDApO1xuICAgIGNvbnN0IFtzdW1tYXJ5XSA9IGF3YWl0IFByb21pc2UuYWxsKFtyZXN1bHQsIGhhbmRsZS53YWl0XSk7XG4gICAgdGljaygxMDApO1xuICAgIGxvZ2dlci5kZWJ1ZyhUQUcsIGBkb25lICR7b3V0RmlsZX0gaW4gJHtNYXRoLnJvdW5kKHBlcmZvcm1hbmNlLm5vdygpIC0gdDApfW1zYCk7XG4gICAgcmV0dXJuIHsgLi4uc3VtbWFyeSwgb3B0aW9uczogcmVuZGVyT3B0cyB9O1xuICB9IGNhdGNoIChlKSB7XG4gICAgaGFuZGxlLmtpbGwoKTtcbiAgICBzaWduYWw/LnRocm93SWZBYm9ydGVkKCk7XG4gICAgdGhyb3cgZTtcbiAgfSBmaW5hbGx5IHtcbiAgICBzaWduYWw/LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0KTtcbiAgfVxufVxuIl19
|
package/dist/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import'source-map-support/register.js';import {
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24udHMiLCIuLi9zcmMvY2xpLnRzIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVNvdXJjZSIsInMiLCJhYnMiLCJyZWFscGF0aFN5bmMiLCJyZXNvbHZlIiwibWFrZUNMSSIsIm9wdGlvbnMiLCJzaGFwZSIsIlJlbmRlclNjaGVtYSIsImQiLCJkZWZhdWx0UmVuZGVyT3B0aW9ucyIsInByb2dyYW0iLCJzb3VyY2UiLCJvcHRzIiwibm9lcnIiLCJwYXJzZU51bWJlciIsImUiLCJsb2dnZXIiLCJwYXJncyIsImN0cmwiLCJleGl0Q29kZSIsImMiLCJ0b3RhbCIsImJhciIsIlByb2dyZXNzQmFyIiwiYmFyTG9nZ2VyIiwib3V0cyIsInQwIiwicHVwIiwicCIsInNlYyJdLCJtYXBwaW5ncyI6Im9MQVlBLFNBQVNBLEVBQWdCQyxDQUFBQSxDQUFtQixDQUMxQyxHQUFJQSxDQUFBQSxDQUFFLFFBQUEsQ0FBUyxLQUFLLEdBQUtBLENBQUFBLENBQUUsVUFBQSxDQUFXLE9BQU8sQ0FBQSxDQUFHLE9BQU9BLENBQUFBLENBQ3ZELElBQUlDLENBQUFBLENBQ0osR0FBSSxDQUNGQSxDQUFBQSxDQUFNQyxZQUFBQSxDQUFhRixDQUFDLEVBQ3RCLENBQUEsS0FBUSxDQUNOQyxDQUFBQSxDQUFNRSxPQUFBQSxDQUFRSCxDQUFDLEVBQ2pCLENBQ0EsT0FBTyxDQUFBLE9BQUEsRUFBVUMsQ0FBRyxDQUFBLENBQ3RCLENBT0EsZUFBc0JHLENBQUFBLENBQVFDLENBQUFBLENBQXFCLENBQ2pELElBQU1DLENBQUFBLENBQVFDLENBQUFBLENBQWEsS0FBQSxDQUNyQkMsQ0FBQUEsQ0FBSUMsRUFDVkMsT0FBQUEsQ0FDRyxJQUFBLENBQUtMLENBQUFBLENBQVEsSUFBSSxDQUFBLENBQ2pCLFFBQUEsQ0FBUyxXQUFZLG9EQUFvRCxDQUFBLENBQ3pFLE1BQUEsQ0FBTyxzQkFBQSxDQUF3QkMsQ0FBQUEsQ0FBTSxLQUFBLENBQU0sWUFBYSxDQUFBLEVBQUdFLENBQUFBLENB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dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA5LlxuXG5pbXBvcnQgeyBwcm9ncmFtIH0gZnJvbSBcImNvbW1hbmRlclwiO1xuaW1wb3J0IHsgcmVhbHBhdGhTeW5jIH0gZnJvbSBcImZzXCI7XG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2Jhc2UvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgbm9lcnIgfSBmcm9tIFwiLi9iYXNlL25vZXJyXCI7XG5pbXBvcnQgeyBwYXJzZU51bWJlciB9IGZyb20gXCIuL2Jhc2UvcGFyc2VyXCI7XG5pbXBvcnQgeyBwYXJncyB9IGZyb20gXCIuL2Jhc2UvcHJvY2Vzc1wiO1xuaW1wb3J0IHsgZGVmYXVsdFJlbmRlck9wdGlvbnMsIFJlbmRlclNjaGVtYSwgdHlwZSBSZW5kZXJPcHRpb25zIH0gZnJvbSBcIi4vcmVuZGVyZXIvc2NoZW1hXCI7XG5cbi8vIFNjaGVtZWQgVVJJcyBwYXNzIHRocm91Z2g7IGJhcmUgcGF0aHMgZ2V0IGNhbm9uaWNhbGl6ZWQgYW5kIHdyYXBwZWQgYXMgZmlsZTovLy5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNvdXJjZShzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAocy5pbmNsdWRlcyhcIjovL1wiKSB8fCBzLnN0YXJ0c1dpdGgoXCJkYXRhOlwiKSkgcmV0dXJuIHM7XG4gIGxldCBhYnM6IHN0cmluZztcbiAgdHJ5IHtcbiAgICBhYnMgPSByZWFscGF0aFN5bmMocyk7XG4gIH0gY2F0Y2gge1xuICAgIGFicyA9IHJlc29sdmUocyk7XG4gIH1cbiAgcmV0dXJuIGBmaWxlOi8vJHthYnN9YDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDTElPcHRpb25zIHtcbiAgbmFtZTogc3RyaW5nO1xuICBydW46IChzb3VyY2U6IHN0cmluZywgb3B0aW9uczogUmVuZGVyT3B0aW9ucykgPT4gUHJvbWlzZTx1bmtub3duPjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1ha2VDTEkob3B0aW9uczogQ0xJT3B0aW9ucykge1xuICBjb25zdCBzaGFwZSA9IFJlbmRlclNjaGVtYS5zaGFwZTtcbiAgY29uc3QgZCA9IGRlZmF1bHRSZW5kZXJPcHRpb25zO1xuICBwcm9ncmFtXG4gICAgLm5hbWUob3B0aW9ucy5uYW1lKVxuICAgIC5hcmd1bWVudChcIjxzb3VyY2U+XCIsIFwiZmlsZTovLywgaHR0cChzKTovLywgZGF0YTogVVJJLCBvciBmaWxlc3lzdGVtIHBhdGhcIilcbiAgICAub3B0aW9uKFwiLVcsIC0td2lkdGggPG51bWJlcj5cIiwgc2hhcGUud2lkdGguZGVzY3JpcHRpb24sIGAke2Qud2lkdGh9YClcbiAgICAub3B0aW9uKFwiLUgsIC0taGVpZ2h0IDxudW1iZXI+XCIsIHNoYXBlLmhlaWdodC5kZXNjcmlwdGlvbiwgYCR7ZC5oZWlnaHR9YClcbiAgICAub3B0aW9uKFwiLWYsIC0tZnBzIDxudW1iZXI+XCIsIHNoYXBlLmZwcy5kZXNjcmlwdGlvbiwgYCR7ZC5mcHN9YClcbiAgICAub3B0aW9uKFwiLXQsIC0tZHVyYXRpb24gPG51bWJlcj5cIiwgc2hhcGUuZHVyYXRpb24uZGVzY3JpcHRpb24sIGAke2QuZHVyYXRpb259YClcbiAgICAub3B0aW9uKFwiLW8sIC0tb3V0LWZpbGUgPHBhdGg+XCIsIHNoYXBlLm91dEZpbGUuZGVzY3JpcHRpb24sIGQub3V0RmlsZSlcbiAgICAub3B0aW9uKFwiLWEsIC0td2l0aC1hdWRpb1wiLCBzaGFwZS53aXRoQXVkaW8uZGVzY3JpcHRpb24sIGQud2l0aEF1ZGlvKVxuICAgIC5vcHRpb24oXCItZCwgLS1kZXRlcm1pbmlzdGljXCIsIHNoYXBlLmRldGVybWluaXN0aWMuZGVzY3JpcHRpb24sIGQuZGV0ZXJtaW5pc3RpYylcbiAgICAub3B0aW9uKFwiLS11c2UtaW5uZXItcHJveHlcIiwgc2hhcGUudXNlSW5uZXJQcm94eS5kZXNjcmlwdGlvbiwgZC51c2VJbm5lclByb3h5KVxuICAgIC5vcHRpb24oXCItLWRpc2FibGUtZ3B1XCIsIHNoYXBlLmRpc2FibGVHcHUuZGVzY3JpcHRpb24sIGQuZGlzYWJsZUdwdSlcbiAgICAub3B0aW9uKFwiLS1kaXNhYmxlLWh3LWNvZGVjXCIsIHNoYXBlLmRpc2FibGVId0NvZGVjLmRlc2NyaXB0aW9uLCBkLmRpc2FibGVId0NvZGVjKVxuICAgIC5vcHRpb24oXCItLXdpbmRvdy10b2xlcmFudFwiLCBzaGFwZS53aW5kb3dUb2xlcmFudC5kZXNjcmlwdGlvbiwgZC53aW5kb3dUb2xlcmFudClcbiAgICAuYWN0aW9uKGFzeW5jIChzb3VyY2U6IHN0cmluZywgb3B0cykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgb3B0aW9ucy5ydW4obm9ybWFsaXplU291cmNlKHNvdXJjZSksIHtcbiAgICAgICAgICB3aWR0aDogbm9lcnIocGFyc2VOdW1iZXIsIGQud2lkdGgpKG9wdHMud2lkdGgpLFxuICAgICAgICAgIGhlaWdodDogbm9lcnIocGFyc2VOdW1iZXIsIGQuaGVpZ2h0KShvcHRzLmhlaWdodCksXG4gICAgICAgICAgZnBzOiBub2VycihwYXJzZU51bWJlciwgZC5mcHMpKG9wdHMuZnBzKSxcbiAgICAgICAgICBkdXJhdGlvbjogbm9lcnIocGFyc2VOdW1iZXIsIGQuZHVyYXRpb24pKG9wdHMuZHVyYXRpb24pLFxuICAgICAgICAgIG91dEZpbGU6IG9wdHMub3V0RmlsZSA/PyBkLm91dEZpbGUsXG4gICAgICAgICAgd2l0aEF1ZGlvOiBvcHRzLndpdGhBdWRpbyA/PyBkLndpdGhBdWRpbyxcbiAgICAgICAgICB1c2VJbm5lclByb3h5OiBvcHRzLnVzZUlubmVyUHJveHkgPz8gZC51c2VJbm5lclByb3h5LFxuICAgICAgICAgIGRldGVybWluaXN0aWM6IG9wdHMuZGV0ZXJtaW5pc3RpYyA/PyBkLmRldGVybWluaXN0aWMsXG4gICAgICAgICAgZGlzYWJsZUdwdTogb3B0cy5kaXNhYmxlR3B1ID8/IGQuZGlzYWJsZUdwdSxcbiAgICAgICAgICBkaXNhYmxlSHdDb2RlYzogb3B0cy5kaXNhYmxlSHdDb2RlYyA/PyBkLmRpc2FibGVId0NvZGVjLFxuICAgICAgICAgIHdpbmRvd1RvbGVyYW50OiBvcHRzLndpbmRvd1RvbGVyYW50ID8/IGQud2luZG93VG9sZXJhbnQsXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsb2dnZXIuZmF0YWwoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIGF3YWl0IHByb2dyYW0ucGFyc2VBc3luYyhwYXJncygpKTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjUuXG5cbmltcG9ydCB7IGJhckxvZ2dlciwgUHJvZ3Jlc3NCYXIgfSBmcm9tIFwiLi9iYXNlL2NsaV91aVwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBtYWtlQ0xJIH0gZnJvbSBcIi4vY29tbW9uXCI7XG5pbXBvcnQgeyBwdXAgfSBmcm9tIFwiLi9wdXBcIjtcblxubWFrZUNMSSh7XG4gIG5hbWU6IFwicHVwXCIsXG4gIHJ1bjogYXN5bmMgKHNvdXJjZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGN0cmwgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgbGV0IGV4aXRDb2RlID0gMDtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdURVJNXCIsICgpID0+ICgoZXhpdENvZGUgPSAxNDMpLCBjdHJsLmFib3J0KG5ldyBFcnJvcihcIlNJR1RFUk1cIikpKSk7XG4gICAgcHJvY2Vzcy5vbmNlKFwiU0lHSU5UXCIsICgpID0+ICgoZXhpdENvZGUgPSAxMzApLCBjdHJsLmFib3J0KG5ldyBFcnJvcihcIlNJR0lOVFwiKSkpKTtcbiAgICBwcm9jZXNzLm9uY2UoXCJleGl0XCIsIChjKSA9PiAoKGV4aXRDb2RlID0gYyksIGN0cmwuYWJvcnQobmV3IEVycm9yKFwiU0lHS0lMTFwiKSkpKTtcblxuICAgIGNvbnN0IHRvdGFsID0gTWF0aC5jZWlsKG9wdGlvbnMuZnBzICogb3B0aW9ucy5kdXJhdGlvbik7XG4gICAgY29uc3QgYmFyID0gbmV3IFByb2dyZXNzQmFyKHsgdG90YWwsIG91dDogcHJvY2Vzcy5zdGRlcnIsIHNob3dDb3VudDogdHJ1ZSB9KTtcbiAgICBsb2dnZXIuaW1wbCA9IGJhckxvZ2dlcihiYXIpO1xuXG4gICAgY29uc3Qgb3V0cyA9IG9wdGlvbnMub3V0RmlsZS5zcGxpdChcIixcIikubWFwKChzKSA9PiBzLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGJhci5sb2coYHJlbmRlcmluZyAke3NvdXJjZX0g4oaSICR7b3V0cy5qb2luKFwiLCBcIil9YCk7XG4gICAgY29uc3QgdDAgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcHVwKHNvdXJjZSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBzaWduYWw6IGN0cmwuc2lnbmFsLFxuICAgICAgICBvblByb2dyZXNzOiAocCkgPT4gYmFyLnVwZGF0ZVBlcmNlbnQocCksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNlYyA9ICgocGVyZm9ybWFuY2Uubm93KCkgLSB0MCkgLyAxMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgYmFyLnVwZGF0ZSh0b3RhbCk7XG4gICAgICBiYXIuZmluaXNoKFxuICAgICAgICBgZG9uZTogJHtvdXRzLmpvaW4oXCIsIFwiKX0gKCR7dG90YWx9IGZyYW1lcywgJHtvcHRpb25zLndpZHRofXgke29wdGlvbnMuaGVpZ2h0fSBAICR7b3B0aW9ucy5mcHN9ZnBzKSBpbiAke3NlY31zYCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYmFyLmZpbmlzaChgZXJyb3I6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpfWApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBwcm9jZXNzLmV4aXQoZXhpdENvZGUpO1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
|
|
1
|
+
import'source-map-support/register.js';import {n,o,g,d,f,h,a,b as b$1,p}from'./chunk-XRCHOYPZ.js';import {realpathSync}from'fs';import {resolve}from'path';import {program}from'commander';function G(r){if(r.includes("://")||r.startsWith("data:"))return r;let e;try{e=realpathSync(r);}catch{e=resolve(r);}return `file://${e}`}async function b(r){let e=n.shape,i=o;program.name(r.name).argument("<source>","file://, http(s)://, data: URI, or filesystem path").option("-W, --width <number>",e.width.description,`${i.width}`).option("-H, --height <number>",e.height.description,`${i.height}`).option("-f, --fps <number>",e.fps.description,`${i.fps}`).option("-t, --duration <number>",e.duration.description,`${i.duration}`).option("-o, --out-file <path>",e.outFile.description,i.outFile).option("-a, --with-audio",e.withAudio.description,i.withAudio).option("-d, --deterministic",e.deterministic.description,i.deterministic).option("--use-inner-proxy",e.useInnerProxy.description,i.useInnerProxy).option("--disable-gpu",e.disableGpu.description,i.disableGpu).option("--disable-hw-codec",e.disableHwCodec.description,i.disableHwCodec).option("--window-tolerant",e.windowTolerant.description,i.windowTolerant).option("--window-timeout <number>",e.windowTimeout.description,`${i.windowTimeout}`).action(async(s,o)=>{try{await r.run(G(s),{width:g(d,i.width)(o.width),height:g(d,i.height)(o.height),fps:g(d,i.fps)(o.fps),duration:g(d,i.duration)(o.duration),outFile:o.outFile??i.outFile,withAudio:o.withAudio??i.withAudio,useInnerProxy:o.useInnerProxy??i.useInnerProxy,deterministic:o.deterministic??i.deterministic,disableGpu:o.disableGpu??i.disableGpu,disableHwCodec:o.disableHwCodec??i.disableHwCodec,windowTolerant:o.windowTolerant??i.windowTolerant,windowTimeout:g(d,i.windowTimeout)(o.windowTimeout)});}catch(n){f.fatal(n);}}),await program.parseAsync(h());}b({name:"pup",run:async(r,e)=>{let i=new AbortController,s=0;process.once("SIGTERM",()=>{s=143,i.abort(new Error("SIGTERM"));}),process.once("SIGINT",()=>{s=130,i.abort(new Error("SIGINT"));}),process.once("exit",t=>{s=t,i.abort(new Error("SIGKILL"));});let o=Math.ceil(e.fps*e.duration),n=new a({total:o,out:process.stderr,showCount:true});f.impl=b$1(n);let c=e.outFile.split(",").map(t=>t.trim()).filter(Boolean);n.log(`rendering ${r} \u2192 ${c.join(", ")}`);let I=performance.now();try{await p(r,{...e,signal:i.signal,onProgress:y=>n.updatePercent(y)});let t=((performance.now()-I)/1e3).toFixed(2);n.update(o),n.finish(`done: ${c.join(", ")} (${o} frames, ${e.width}x${e.height} @ ${e.fps}fps) in ${t}s`);}catch(t){n.finish(`error: ${t instanceof Error?t.message:String(t)}`);}finally{process.exit(s);}}});//# sourceMappingURL=cli.js.map
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24udHMiLCIuLi9zcmMvY2xpLnRzIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZVNvdXJjZSIsInMiLCJhYnMiLCJyZWFscGF0aFN5bmMiLCJyZXNvbHZlIiwibWFrZUNMSSIsIm9wdGlvbnMiLCJzaGFwZSIsInJlbmRlclNjaGVtYSIsImQiLCJkZWZhdWx0UmVuZGVyT3B0aW9ucyIsInByb2dyYW0iLCJzb3VyY2UiLCJvcHRzIiwibm9lcnIiLCJwYXJzZU51bWJlciIsImUiLCJsb2dnZXIiLCJwYXJncyIsImN0cmwiLCJleGl0Q29kZSIsImMiLCJ0b3RhbCIsImJhciIsIlByb2dyZXNzQmFyIiwiYmFyTG9nZ2VyIiwib3V0cyIsInQwIiwicHVwIiwicCIsInNlYyJdLCJtYXBwaW5ncyI6IjJMQVlBLFNBQVNBLENBQUFBLENBQWdCQyxFQUFtQixDQUMxQyxHQUFJQSxDQUFBQSxDQUFFLFFBQUEsQ0FBUyxLQUFLLENBQUEsRUFBS0EsQ0FBQUEsQ0FBRSxVQUFBLENBQVcsT0FBTyxDQUFBLENBQzNDLE9BQU9BLENBQUFBLENBRVQsSUFBSUMsQ0FBQUEsQ0FDSixHQUFJLENBQ0ZBLENBQUFBLENBQU1DLFlBQUFBLENBQWFGLENBQUMsRUFDdEIsQ0FBQSxLQUFRLENBQ05DLENBQUFBLENBQU1FLE9BQUFBLENBQVFILENBQUMsRUFDakIsQ0FDQSxPQUFPLENBQUEsT0FBQSxFQUFVQyxDQUFHLENBQUEsQ0FDdEIsQ0FPQSxlQUFzQkcsQ0FBQUEsQ0FBUUMsQ0FBQUEsQ0FBcUIsQ0FDakQsSUFBTUMsQ0FBQUEsQ0FBUUMsQ0FBQUEsQ0FBYSxLQUFBLENBQ3JCQyxDQUFBQSxDQUFJQyxDQUFBQSxDQUNWQyxPQUFBQSxDQUNHLElBQUEsQ0FBS0wsQ0FBQUEsQ0FBUSxJQUFJLENBQUEsQ0FDakIsUUFBQSxDQUFTLFVBQUEsQ0FBWSxvREFBb0QsQ0FBQSxDQUN6RSxNQUFBLENBQU8sc0JBQUEsQ0FBd0JDLENBQUFBLENBQU0sS0FBQSxDQUFNLFdBQUEsQ0FB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LE1BQU0sQ0FBQSxHQUFBLEVBQU1BLEVBQVEsR0FBRyxDQUFBLFFBQUEsRUFBV3dCLENBQUcsQ0FBQSxDQUFBLENBQzlHLEVBQ0YsQ0FBQSxNQUFTZCxDQUFBQSxDQUFHLENBQ1ZPLENBQUFBLENBQUksTUFBQSxDQUFPLENBQUEsT0FBQSxFQUFVUCxDQUFBQSxZQUFhLEtBQUEsQ0FBUUEsQ0FBQUEsQ0FBRSxPQUFBLENBQVUsTUFBQSxDQUFPQSxDQUFDLENBQUMsQ0FBQSxDQUFFLEVBQ25FLENBQUEsT0FBRSxDQUNBLE9BQUEsQ0FBUSxJQUFBLENBQUtJLENBQVEsRUFDdkIsQ0FDRixDQUNGLENBQUMsQ0FBQSIsImZpbGUiOiJjbGkuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDcmVhdGVkIGJ5IEF1dG9rYWthIChxcTE5MDk2OTg0OTRAZ21haWwuY29tKSBvbiAyMDI2LzAyLzA5LlxuXG5pbXBvcnQgeyByZWFscGF0aFN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHByb2dyYW0gfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9iYXNlL2xvZ2dpbmdcIjtcbmltcG9ydCB7IG5vZXJyIH0gZnJvbSBcIi4vYmFzZS9ub2VyclwiO1xuaW1wb3J0IHsgcGFyc2VOdW1iZXIgfSBmcm9tIFwiLi9iYXNlL3BhcnNlclwiO1xuaW1wb3J0IHsgcGFyZ3MgfSBmcm9tIFwiLi9iYXNlL3Byb2Nlc3NcIjtcbmltcG9ydCB7IGRlZmF1bHRSZW5kZXJPcHRpb25zLCB0eXBlIFJlbmRlck9wdGlvbnMsIHJlbmRlclNjaGVtYSB9IGZyb20gXCIuL3JlbmRlcmVyL3NjaGVtYVwiO1xuXG4vLyBTY2hlbWVkIFVSSXMgcGFzcyB0aHJvdWdoOyBiYXJlIHBhdGhzIGdldCBjYW5vbmljYWxpemVkIGFuZCB3cmFwcGVkIGFzIGZpbGU6Ly8uXG5mdW5jdGlvbiBub3JtYWxpemVTb3VyY2Uoczogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKHMuaW5jbHVkZXMoXCI6Ly9cIikgfHwgcy5zdGFydHNXaXRoKFwiZGF0YTpcIikpIHtcbiAgICByZXR1cm4gcztcbiAgfVxuICBsZXQgYWJzOiBzdHJpbmc7XG4gIHRyeSB7XG4gICAgYWJzID0gcmVhbHBhdGhTeW5jKHMpO1xuICB9IGNhdGNoIHtcbiAgICBhYnMgPSByZXNvbHZlKHMpO1xuICB9XG4gIHJldHVybiBgZmlsZTovLyR7YWJzfWA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ0xJT3B0aW9ucyB7XG4gIG5hbWU6IHN0cmluZztcbiAgcnVuOiAoc291cmNlOiBzdHJpbmcsIG9wdGlvbnM6IFJlbmRlck9wdGlvbnMpID0+IFByb21pc2U8dW5rbm93bj47XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBtYWtlQ0xJKG9wdGlvbnM6IENMSU9wdGlvbnMpIHtcbiAgY29uc3Qgc2hhcGUgPSByZW5kZXJTY2hlbWEuc2hhcGU7XG4gIGNvbnN0IGQgPSBkZWZhdWx0UmVuZGVyT3B0aW9ucztcbiAgcHJvZ3JhbVxuICAgIC5uYW1lKG9wdGlvbnMubmFtZSlcbiAgICAuYXJndW1lbnQoXCI8c291cmNlPlwiLCBcImZpbGU6Ly8sIGh0dHAocyk6Ly8sIGRhdGE6IFVSSSwgb3IgZmlsZXN5c3RlbSBwYXRoXCIpXG4gICAgLm9wdGlvbihcIi1XLCAtLXdpZHRoIDxudW1iZXI+XCIsIHNoYXBlLndpZHRoLmRlc2NyaXB0aW9uLCBgJHtkLndpZHRofWApXG4gICAgLm9wdGlvbihcIi1ILCAtLWhlaWdodCA8bnVtYmVyPlwiLCBzaGFwZS5oZWlnaHQuZGVzY3JpcHRpb24sIGAke2QuaGVpZ2h0fWApXG4gICAgLm9wdGlvbihcIi1mLCAtLWZwcyA8bnVtYmVyPlwiLCBzaGFwZS5mcHMuZGVzY3JpcHRpb24sIGAke2QuZnBzfWApXG4gICAgLm9wdGlvbihcIi10LCAtLWR1cmF0aW9uIDxudW1iZXI+XCIsIHNoYXBlLmR1cmF0aW9uLmRlc2NyaXB0aW9uLCBgJHtkLmR1cmF0aW9ufWApXG4gICAgLm9wdGlvbihcIi1vLCAtLW91dC1maWxlIDxwYXRoPlwiLCBzaGFwZS5vdXRGaWxlLmRlc2NyaXB0aW9uLCBkLm91dEZpbGUpXG4gICAgLm9wdGlvbihcIi1hLCAtLXdpdGgtYXVkaW9cIiwgc2hhcGUud2l0aEF1ZGlvLmRlc2NyaXB0aW9uLCBkLndpdGhBdWRpbylcbiAgICAub3B0aW9uKFwiLWQsIC0tZGV0ZXJtaW5pc3RpY1wiLCBzaGFwZS5kZXRlcm1pbmlzdGljLmRlc2NyaXB0aW9uLCBkLmRldGVybWluaXN0aWMpXG4gICAgLm9wdGlvbihcIi0tdXNlLWlubmVyLXByb3h5XCIsIHNoYXBlLnVzZUlubmVyUHJveHkuZGVzY3JpcHRpb24sIGQudXNlSW5uZXJQcm94eSlcbiAgICAub3B0aW9uKFwiLS1kaXNhYmxlLWdwdVwiLCBzaGFwZS5kaXNhYmxlR3B1LmRlc2NyaXB0aW9uLCBkLmRpc2FibGVHcHUpXG4gICAgLm9wdGlvbihcIi0tZGlzYWJsZS1ody1jb2RlY1wiLCBzaGFwZS5kaXNhYmxlSHdDb2RlYy5kZXNjcmlwdGlvbiwgZC5kaXNhYmxlSHdDb2RlYylcbiAgICAub3B0aW9uKFwiLS13aW5kb3ctdG9sZXJhbnRcIiwgc2hhcGUud2luZG93VG9sZXJhbnQuZGVzY3JpcHRpb24sIGQud2luZG93VG9sZXJhbnQpXG4gICAgLm9wdGlvbihcIi0td2luZG93LXRpbWVvdXQgPG51bWJlcj5cIiwgc2hhcGUud2luZG93VGltZW91dC5kZXNjcmlwdGlvbiwgYCR7ZC53aW5kb3dUaW1lb3V0fWApXG4gICAgLmFjdGlvbihhc3luYyAoc291cmNlOiBzdHJpbmcsIG9wdHMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IG9wdGlvbnMucnVuKG5vcm1hbGl6ZVNvdXJjZShzb3VyY2UpLCB7XG4gICAgICAgICAgd2lkdGg6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLndpZHRoKShvcHRzLndpZHRoKSxcbiAgICAgICAgICBoZWlnaHQ6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmhlaWdodCkob3B0cy5oZWlnaHQpLFxuICAgICAgICAgIGZwczogbm9lcnIocGFyc2VOdW1iZXIsIGQuZnBzKShvcHRzLmZwcyksXG4gICAgICAgICAgZHVyYXRpb246IG5vZXJyKHBhcnNlTnVtYmVyLCBkLmR1cmF0aW9uKShvcHRzLmR1cmF0aW9uKSxcbiAgICAgICAgICBvdXRGaWxlOiBvcHRzLm91dEZpbGUgPz8gZC5vdXRGaWxlLFxuICAgICAgICAgIHdpdGhBdWRpbzogb3B0cy53aXRoQXVkaW8gPz8gZC53aXRoQXVkaW8sXG4gICAgICAgICAgdXNlSW5uZXJQcm94eTogb3B0cy51c2VJbm5lclByb3h5ID8/IGQudXNlSW5uZXJQcm94eSxcbiAgICAgICAgICBkZXRlcm1pbmlzdGljOiBvcHRzLmRldGVybWluaXN0aWMgPz8gZC5kZXRlcm1pbmlzdGljLFxuICAgICAgICAgIGRpc2FibGVHcHU6IG9wdHMuZGlzYWJsZUdwdSA/PyBkLmRpc2FibGVHcHUsXG4gICAgICAgICAgZGlzYWJsZUh3Q29kZWM6IG9wdHMuZGlzYWJsZUh3Q29kZWMgPz8gZC5kaXNhYmxlSHdDb2RlYyxcbiAgICAgICAgICB3aW5kb3dUb2xlcmFudDogb3B0cy53aW5kb3dUb2xlcmFudCA/PyBkLndpbmRvd1RvbGVyYW50LFxuICAgICAgICAgIHdpbmRvd1RpbWVvdXQ6IG5vZXJyKHBhcnNlTnVtYmVyLCBkLndpbmRvd1RpbWVvdXQpKG9wdHMud2luZG93VGltZW91dCksXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBsb2dnZXIuZmF0YWwoZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIGF3YWl0IHByb2dyYW0ucGFyc2VBc3luYyhwYXJncygpKTtcbn1cbiIsIi8vIENyZWF0ZWQgYnkgQXV0b2tha2EgKHFxMTkwOTY5ODQ5NEBnbWFpbC5jb20pIG9uIDIwMjYvMDIvMjUuXG5cbmltcG9ydCB7IGJhckxvZ2dlciwgUHJvZ3Jlc3NCYXIgfSBmcm9tIFwiLi9iYXNlL2NsaV91aVwiO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vYmFzZS9sb2dnaW5nXCI7XG5pbXBvcnQgeyBtYWtlQ0xJIH0gZnJvbSBcIi4vY29tbW9uXCI7XG5pbXBvcnQgeyBwdXAgfSBmcm9tIFwiLi9wdXBcIjtcblxubWFrZUNMSSh7XG4gIG5hbWU6IFwicHVwXCIsXG4gIHJ1bjogYXN5bmMgKHNvdXJjZSwgb3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGN0cmwgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgbGV0IGV4aXRDb2RlID0gMDtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdURVJNXCIsICgpID0+IHtcbiAgICAgIGV4aXRDb2RlID0gMTQzO1xuICAgICAgY3RybC5hYm9ydChuZXcgRXJyb3IoXCJTSUdURVJNXCIpKTtcbiAgICB9KTtcbiAgICBwcm9jZXNzLm9uY2UoXCJTSUdJTlRcIiwgKCkgPT4ge1xuICAgICAgZXhpdENvZGUgPSAxMzA7XG4gICAgICBjdHJsLmFib3J0KG5ldyBFcnJvcihcIlNJR0lOVFwiKSk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5vbmNlKFwiZXhpdFwiLCAoYykgPT4ge1xuICAgICAgZXhpdENvZGUgPSBjO1xuICAgICAgY3RybC5hYm9ydChuZXcgRXJyb3IoXCJTSUdLSUxMXCIpKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRvdGFsID0gTWF0aC5jZWlsKG9wdGlvbnMuZnBzICogb3B0aW9ucy5kdXJhdGlvbik7XG4gICAgY29uc3QgYmFyID0gbmV3IFByb2dyZXNzQmFyKHsgdG90YWwsIG91dDogcHJvY2Vzcy5zdGRlcnIsIHNob3dDb3VudDogdHJ1ZSB9KTtcbiAgICBsb2dnZXIuaW1wbCA9IGJhckxvZ2dlcihiYXIpO1xuXG4gICAgY29uc3Qgb3V0cyA9IG9wdGlvbnMub3V0RmlsZVxuICAgICAgLnNwbGl0KFwiLFwiKVxuICAgICAgLm1hcCgocykgPT4gcy50cmltKCkpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGJhci5sb2coYHJlbmRlcmluZyAke3NvdXJjZX0g4oaSICR7b3V0cy5qb2luKFwiLCBcIil9YCk7XG4gICAgY29uc3QgdDAgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcHVwKHNvdXJjZSwge1xuICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICBzaWduYWw6IGN0cmwuc2lnbmFsLFxuICAgICAgICBvblByb2dyZXNzOiAocCkgPT4gYmFyLnVwZGF0ZVBlcmNlbnQocCksXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHNlYyA9ICgocGVyZm9ybWFuY2Uubm93KCkgLSB0MCkgLyAxMDAwKS50b0ZpeGVkKDIpO1xuICAgICAgYmFyLnVwZGF0ZSh0b3RhbCk7XG4gICAgICBiYXIuZmluaXNoKFxuICAgICAgICBgZG9uZTogJHtvdXRzLmpvaW4oXCIsIFwiKX0gKCR7dG90YWx9IGZyYW1lcywgJHtvcHRpb25zLndpZHRofXgke29wdGlvbnMuaGVpZ2h0fSBAICR7b3B0aW9ucy5mcHN9ZnBzKSBpbiAke3NlY31zYCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgYmFyLmZpbmlzaChgZXJyb3I6ICR7ZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpfWApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBwcm9jZXNzLmV4aXQoZXhpdENvZGUpO1xuICAgIH1cbiAgfSxcbn0pO1xuIl19
|
package/dist/index.d.ts
CHANGED
|
@@ -1,44 +1,24 @@
|
|
|
1
1
|
export { barLogger } from './_tsup-dts-rollup.js';
|
|
2
2
|
export { ProgressBar } from './_tsup-dts-rollup.js';
|
|
3
|
-
export { pupLogLevel } from './_tsup-dts-rollup.js';
|
|
4
|
-
export { pupPkgRoot } from './_tsup-dts-rollup.js';
|
|
5
|
-
export { pupApp } from './_tsup-dts-rollup.js';
|
|
6
|
-
export { pupAudioPreload } from './_tsup-dts-rollup.js';
|
|
7
|
-
export { pupIframePreload } from './_tsup-dts-rollup.js';
|
|
8
3
|
export { penv } from './_tsup-dts-rollup.js';
|
|
9
|
-
export { EnvParser } from './_tsup-dts-rollup.js';
|
|
10
4
|
export { Lazy } from './_tsup-dts-rollup.js';
|
|
11
|
-
export { ConcurrencyLimiter } from './_tsup-dts-rollup.js';
|
|
12
|
-
export { LoggerLike } from './_tsup-dts-rollup.js';
|
|
13
5
|
export { Logger } from './_tsup-dts-rollup.js';
|
|
6
|
+
export { LoggerLike } from './_tsup-dts-rollup.js';
|
|
14
7
|
export { logger } from './_tsup-dts-rollup.js';
|
|
15
8
|
export { noerr } from './_tsup-dts-rollup.js';
|
|
16
9
|
export { parseNumber } from './_tsup-dts-rollup.js';
|
|
17
|
-
export { parseString } from './_tsup-dts-rollup.js';
|
|
18
|
-
export { pargs } from './_tsup-dts-rollup.js';
|
|
19
|
-
export { exec } from './_tsup-dts-rollup.js';
|
|
20
|
-
export { PUP_ARGS_KEY } from './_tsup-dts-rollup.js';
|
|
21
|
-
export { ProcessHandle } from './_tsup-dts-rollup.js';
|
|
22
|
-
export { useRetry } from './_tsup-dts-rollup.js';
|
|
23
10
|
export { RetryOptions } from './_tsup-dts-rollup.js';
|
|
24
|
-
export {
|
|
25
|
-
export { withTimeout } from './_tsup-dts-rollup.js';
|
|
11
|
+
export { useRetry } from './_tsup-dts-rollup.js';
|
|
26
12
|
export { periodical } from './_tsup-dts-rollup.js';
|
|
27
|
-
export {
|
|
28
|
-
export {
|
|
29
|
-
export {
|
|
30
|
-
export {
|
|
31
|
-
export { DEFAULT_HEIGHT } from './_tsup-dts-rollup.js';
|
|
32
|
-
export { DEFAULT_FPS } from './_tsup-dts-rollup.js';
|
|
13
|
+
export { sleep } from './_tsup-dts-rollup.js';
|
|
14
|
+
export { PupOptions } from './_tsup-dts-rollup.js';
|
|
15
|
+
export { PupResult } from './_tsup-dts-rollup.js';
|
|
16
|
+
export { pup } from './_tsup-dts-rollup.js';
|
|
33
17
|
export { DEFAULT_DURATION } from './_tsup-dts-rollup.js';
|
|
34
|
-
export {
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
37
|
-
export {
|
|
18
|
+
export { DEFAULT_FPS } from './_tsup-dts-rollup.js';
|
|
19
|
+
export { DEFAULT_HEIGHT } from './_tsup-dts-rollup.js';
|
|
20
|
+
export { DEFAULT_WIDTH } from './_tsup-dts-rollup.js';
|
|
21
|
+
export { DEFAULT_WINDOW_TIMEOUT } from './_tsup-dts-rollup.js';
|
|
38
22
|
export { ProgressCallback } from './_tsup-dts-rollup.js';
|
|
39
|
-
export {
|
|
23
|
+
export { RenderOptions } from './_tsup-dts-rollup.js';
|
|
40
24
|
export { RenderResult } from './_tsup-dts-rollup.js';
|
|
41
|
-
export { defaultRenderOptions } from './_tsup-dts-rollup.js';
|
|
42
|
-
export { pup } from './_tsup-dts-rollup.js';
|
|
43
|
-
export { PupOptions } from './_tsup-dts-rollup.js';
|
|
44
|
-
export { PupResult } from './_tsup-dts-rollup.js';
|