Merge server and client repositories
s-ol
1 year, 8 months ago
0 | FROM node AS build-env | |
1 | WORKDIR /build | |
2 | COPY package.json /build/ | |
3 | RUN npm i | |
4 | COPY . /build/ | |
5 | RUN npm run build | |
6 | ||
7 | FROM nginx:alpine | |
8 | COPY nginx.conf.template /etc/nginx/templates/default.conf.template | |
9 | COPY --from=build-env /build/dist /usr/share/nginx/html | |
10 | RUN chmod 555 -R /usr/share/nginx/html |
0 | fedidag/client | |
1 | ============== | |
2 | ||
3 | Fedidag is a wip DAG-based discussion platform and client for the Fediverse. | |
4 | This repository contains the front-end and a sample data. | |
5 | ||
6 | # Running locally (development) | |
7 | To load Mastodon threads, a CORS proxy is needed. You can run it like this: | |
8 | ||
9 | $ yarn cors | |
10 | ||
11 | Then the dev server can be started: | |
12 | ||
13 | $ yarn start | |
14 | ||
15 | # Running using docker | |
16 | The `Dockerfile` sets up NGINX with its own CORS proxy at `/remote/...`. |
0 | var host = process.env.HOST || '0.0.0.0'; | |
1 | var port = process.env.PORT || 8088; | |
2 | ||
3 | var cors_proxy = require('cors-anywhere'); | |
4 | cors_proxy.createServer({ | |
5 | originWhitelist: [], // Allow all origins | |
6 | }).listen(port, host, function() { | |
7 | console.log('Running CORS Anywhere on ' + host + ':' + port); | |
8 | }); |
0 | /* | |
1 | Viz.js 2.1.2 (Graphviz 2.40.1, Emscripten 1.37.36) | |
2 | */ | |
3 | (function(global) { | |
4 | var Module = function(Module) { | |
5 | Module = Module || {}; | |
6 | var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);ret=convertReturnValue(ret);if(stack!==0)stackRestore(stack);return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=heap[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;__ATINIT__.push({func:function(){___wasm_call_ctors()}});function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}if(!Math.imul||Math.imul(4294967295,5)!==-5)Math.imul=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};if(!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(x){froundBuffer[0]=x;return froundBuffer[0]}}if(!Math.clz32)Math.clz32=function(x){var n=32;var y=x>>16;if(y){n-=16;x=y}y=x>>8;if(y){n-=8;x=y}y=x>>4;if(y){n-=4;x=y}y=x>>2;if(y){n-=2;x=y}y=x>>1;if(y)return n-2;return n-x};if(!Math.trunc)Math.trunc=function(x){return x<0?Math.ceil(x):Math.floor(x)};var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="module.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["M"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["N"];removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={1024:function($0,$1){var path=UTF8ToString($0);var data=UTF8ToString($1);FS.createPath("/",PATH.dirname(path));FS.writeFile(PATH.join("/",path),data)}};function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else if(typeof performance!=="undefined"&&performance.now){_emscripten_get_now=function(){return performance.now()}}else{_emscripten_get_now=Date.now}var _emscripten_get_now_is_monotonic=typeof performance==="object"&&performance&&typeof performance["now"]==="function"||ENVIRONMENT_IS_NODE||typeof dateNow!=="undefined";function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function _clock_gettime(clk_id,tp){var now;if(clk_id===0){now=Date.now()}else if((clk_id===1||clk_id===4)&&_emscripten_get_now_is_monotonic){now=_emscripten_get_now()}else{setErrNo(28);return-1}HEAP32[tp>>2]=now/1e3|0;HEAP32[tp+4>>2]=now%1e3*1e3*1e3|0;return 0}function ___clock_gettime(a0,a1){return _clock_gettime(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(ENVIRONMENT_IS_NODE){var BUFSIZE=256;var buf=Buffer.alloc?Buffer.alloc(BUFSIZE):new Buffer(BUFSIZE);var bytesRead=0;try{bytesRead=nodeFS.readSync(process.stdin.fd,buf,0,BUFSIZE,null)}catch(e){if(e.toString().indexOf("EOF")!=-1)bytesRead=0;else throw e}if(bytesRead>0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size<alignedSize)HEAP8[ptr+size++]=0;return ptr}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i<node.usedBytes;++i)arr.push(node.contents[i]);return arr}return node.contents},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length<newSize)node.contents.push(0);node.usedBytes=newSize},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,address,length,position,prot,flags){if(address!==0){throw new FS.ErrnoError(28)}if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(path,opts){path=PATH_FS.resolve(FS.cwd(),path);opts=opts||{};if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};for(var key in defaults){if(opts[key]===undefined){opts[key]=defaults[key]}}if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev:function(path,mode,dev){if(typeof dev==="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:function(oldpath,newpath){if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:function(old_path,new_path){var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}try{if(FS.trackingDelegate["willMovePath"]){FS.trackingDelegate["willMovePath"](old_path,new_path)}}catch(e){err("FS.trackingDelegate['willMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}try{if(FS.trackingDelegate["onMovePath"])FS.trackingDelegate["onMovePath"](old_path,new_path)}catch(e){err("FS.trackingDelegate['onMovePath']('"+old_path+"', '"+new_path+"') threw an exception: "+e.message)}},rmdir:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readdir:function(path){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:function(path){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}try{if(FS.trackingDelegate["willDeletePath"]){FS.trackingDelegate["willDeletePath"](path)}}catch(e){err("FS.trackingDelegate['willDeletePath']('"+path+"') threw an exception: "+e.message)}parent.node_ops.unlink(parent,name);FS.destroyNode(node);try{if(FS.trackingDelegate["onDeletePath"])FS.trackingDelegate["onDeletePath"](path)}catch(e){err("FS.trackingDelegate['onDeletePath']('"+path+"') threw an exception: "+e.message)}},readlink:function(path){var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:function(path,dontFollow){var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:function(path){return FS.stat(path,true)},chmod:function(path,mode,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:function(path,mode){FS.chmod(path,mode,true)},fchmod:function(fd,mode){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:function(path,uid,gid,dontFollow){var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:function(path,uid,gid){FS.chown(path,uid,gid,true)},fchown:function(fd,uid,gid){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:function(path,len){if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path==="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:function(fd,len){var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:function(path,atime,mtime){var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:function(path,flags,mode,fd_start,fd_end){if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags==="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode==="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path==="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false},fd_start,fd_end);if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1;err("FS.trackingDelegate error on read file: "+path)}}try{if(FS.trackingDelegate["onOpenFile"]){var trackingFlags=0;if((flags&2097155)!==1){trackingFlags|=FS.tracking.openFlags.READ}if((flags&2097155)!==0){trackingFlags|=FS.tracking.openFlags.WRITE}FS.trackingDelegate["onOpenFile"](path,trackingFlags)}}catch(e){err("FS.trackingDelegate['onOpenFile']('"+path+"', flags) threw an exception: "+e.message)}return stream},close:function(stream){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:function(stream){return stream.fd===null},llseek:function(stream,offset,whence){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:function(stream,buffer,offset,length,position){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:function(stream,buffer,offset,length,position,canOwn){if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!=="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;try{if(stream.path&&FS.trackingDelegate["onWriteToFile"])FS.trackingDelegate["onWriteToFile"](stream.path)}catch(e){err("FS.trackingDelegate['onWriteToFile']('"+stream.path+"') threw an exception: "+e.message)}return bytesWritten},allocate:function(stream,offset,length){if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:function(stream,address,length,position,prot,flags){if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,address,length,position,prot,flags)},msync:function(stream,buffer,offset,length,mmapFlags){if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:function(stream){return 0},ioctl:function(stream,cmd,arg){if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:function(path,opts){opts=opts||{};opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:function(path,data,opts){opts=opts||{};opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data==="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:function(){return FS.currentPath},chdir:function(path){var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:function(){FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:function(){FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:function(){return 0},write:function(stream,buffer,offset,length,pos){return length}});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:function(){var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:function(parent,name){var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return stream.path}}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:function(){if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:function(){if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(function(code){FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:function(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:function(path,dontResolveLastLink){var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:function(path,dontResolveLastLink){try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:function(parent,path,canRead,canWrite){parent=typeof parent==="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:function(parent,name,properties,canRead,canWrite){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:function(parent,name,data,canRead,canWrite,canOwn){var path=name?PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name):parent;var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data==="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:function(parent,name,input,output){var path=PATH.join2(typeof parent==="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:function(stream){stream.seekable=false},close:function(stream){if(output&&output.buffer&&output.buffer.length){output(10)}},read:function(stream,buffer,offset,length,pos){var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile:function(obj){if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!=="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:function(parent,name,url,canRead,canWrite){function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size};node.stream_ops=stream_ops;return node},createPreloadedFile:function(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){Browser.init();var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,function(){if(onerror)onerror();removeRunDependency(dep)});handled=true}});if(!handled)finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){Browser.asyncLoad(url,function(byteArray){processData(byteArray)},onerror)}else{processData(url)}},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=function openRequest_onupgradeneeded(){out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=function putRequest_onsuccess(){ok++;if(ok+fail==total)finish()};putRequest.onerror=function putRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:function(paths,onload,onerror){onload=onload||function(){};onerror=onerror||function(){};var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=function openRequest_onsuccess(){var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(function(path){var getRequest=files.get(path);getRequest.onsuccess=function getRequest_onsuccess(){if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=function getRequest_onerror(){fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={mappings:{},DEFAULT_POLLMASK:5,umask:511,calculateAt:function(dirfd,path){if(path[0]!=="/"){var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}path=PATH.join2(dir,path)}return path},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret},doWritev:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_access(path,amode){try{path=SYSCALLS.getStr(path);return SYSCALLS.doAccess(path,amode)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_fstat64(fd,buf){try{var stream=SYSCALLS.getStreamFromFD(fd);return SYSCALLS.doStat(FS.stat,stream.path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMmap2(addr,len,prot,flags,fd,off){off<<=12;var ptr;var allocated=false;if((flags&16)!==0&&addr%16384!==0){return-28}if((flags&32)!==0){ptr=_memalign(16384,len);if(!ptr)return-48;_memset(ptr,0,len);allocated=true}else{var info=FS.getStream(fd);if(!info)return-8;var res=FS.mmap(info,addr,len,off,prot,flags);ptr=res.ptr;allocated=res.allocated}SYSCALLS.mappings[ptr]={malloc:ptr,len:len,allocated:allocated,fd:fd,prot:prot,flags:flags,offset:off};return ptr}function ___sys_mmap2(addr,len,prot,flags,fd,off){try{return syscallMmap2(addr,len,prot,flags,fd,off)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function syscallMunmap(addr,len){if((addr|0)===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);if(stream){if(info.prot&2){SYSCALLS.doMsync(addr,stream,len,info.flags,info.offset)}FS.munmap(stream)}SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___sys_munmap(addr,len){try{return syscallMunmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_unlink(path){try{path=SYSCALLS.getStr(path);FS.unlink(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_longjmp(a0,a1){return _longjmp(a0,a1)}var _emscripten_memcpy_big=Uint8Array.prototype.copyWithin?function(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}:function(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)};function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){try{var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _environ_sizes_get(penviron_count,penviron_buf_size){try{var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _exit(status){exit(status)}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _getTempRet0(){return getTempRet0()|0}function _setTempRet0($i){setTempRet0($i|0)}function _times(buffer){if(buffer!==0){_memset(buffer,0,16)}return 0}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){var double=ch<105;if(double&&buf&1)buf++;readAsmConstArgsArray.push(double?HEAPF64[buf++>>1]:HEAP32[buf]);++buf}return readAsmConstArgsArray}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"a":___assert_fail,"B":___clock_gettime,"F":___sys_access,"p":___sys_fcntl64,"H":___sys_fstat64,"C":___sys_ioctl,"E":___sys_mmap2,"D":___sys_munmap,"r":___sys_open,"G":___sys_stat64,"A":___sys_unlink,"L":_emscripten_asm_const_int,"d":_emscripten_longjmp,"u":_emscripten_memcpy_big,"v":_emscripten_resize_heap,"x":_environ_get,"y":_environ_sizes_get,"i":_exit,"m":_fd_close,"w":_fd_fdstat_get,"z":_fd_read,"t":_fd_seek,"q":_fd_write,"b":_getTempRet0,"J":invoke_d,"K":invoke_i,"h":invoke_ii,"g":invoke_iii,"f":invoke_iiii,"I":invoke_iiiiiii,"k":invoke_v,"e":invoke_vi,"j":invoke_vii,"o":invoke_viii,"n":invoke_viiii,"l":invoke_viiiii,"c":_setTempRet0,"s":_times};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["O"]).apply(null,arguments)};var _vizLastErrorMessage=Module["_vizLastErrorMessage"]=function(){return(_vizLastErrorMessage=Module["_vizLastErrorMessage"]=Module["asm"]["P"]).apply(null,arguments)};var _vizCreateFile=Module["_vizCreateFile"]=function(){return(_vizCreateFile=Module["_vizCreateFile"]=Module["asm"]["Q"]).apply(null,arguments)};var _vizSetY_invert=Module["_vizSetY_invert"]=function(){return(_vizSetY_invert=Module["_vizSetY_invert"]=Module["asm"]["R"]).apply(null,arguments)};var _vizSetNop=Module["_vizSetNop"]=function(){return(_vizSetNop=Module["_vizSetNop"]=Module["asm"]["S"]).apply(null,arguments)};var _vizRenderFromString=Module["_vizRenderFromString"]=function(){return(_vizRenderFromString=Module["_vizRenderFromString"]=Module["asm"]["T"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["U"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["V"]).apply(null,arguments)};var _dtopen=Module["_dtopen"]=function(){return(_dtopen=Module["_dtopen"]=Module["asm"]["W"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["X"]).apply(null,arguments)};var _memset=Module["_memset"]=function(){return(_memset=Module["_memset"]=Module["asm"]["Y"]).apply(null,arguments)};var _dtdisc=Module["_dtdisc"]=function(){return(_dtdisc=Module["_dtdisc"]=Module["asm"]["Z"]).apply(null,arguments)};var _dtextract=Module["_dtextract"]=function(){return(_dtextract=Module["_dtextract"]=Module["asm"]["_"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["$"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["aa"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ba"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["ca"]).apply(null,arguments)};var _memalign=Module["_memalign"]=function(){return(_memalign=Module["_memalign"]=Module["asm"]["da"]).apply(null,arguments)};var _Dtoset=Module["_Dtoset"]=120916;var _Dtqueue=Module["_Dtqueue"]=151992;var _Dtobag=Module["_Dtobag"]=120928;var _Dttree=Module["_Dttree"]=120940;function invoke_ii(index,a1){var sp=stackSave();try{return wasmTable.get(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{wasmTable.get(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_v(index){var sp=stackSave();try{wasmTable.get(index)()}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_i(index){var sp=stackSave();try{return wasmTable.get(index)()}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{wasmTable.get(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_d(index){var sp=stackSave();try{return wasmTable.get(index)()}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{wasmTable.get(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return wasmTable.get(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0&&e!=="longjmp")throw e;_setThrew(1,0)}}Module["ccall"]=ccall;Module["UTF8ToString"]=UTF8ToString;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); | |
7 | return Module; | |
8 | }; | |
9 | ||
10 | function render(instance, src, options) { | |
11 | var i; | |
12 | for (i = 0; i < options.files.length; i++) { | |
13 | instance['ccall']('vizCreateFile', 'number', ['string', 'string'], [options.files[i].path, options.files[i].data]); | |
14 | } | |
15 | ||
16 | instance['ccall']('vizSetY_invert', 'number', ['number'], [options.yInvert ? 1 : 0]); | |
17 | instance['ccall']('vizSetNop', 'number', ['number'], [options.nop ? options.nop : 0]); | |
18 | var resultPointer = instance['ccall']('vizRenderFromString', 'number', ['string', 'string', 'string'], [src, options.format, options.engine]); | |
19 | var errorMessagePointer = instance['ccall']('vizLastErrorMessage', 'number', [], []); | |
20 | ||
21 | if (errorMessagePointer !== 0) { | |
22 | var errorMessageString = instance['UTF8ToString'](errorMessagePointer); | |
23 | instance['ccall']('free', 'number', ['number'], [errorMessagePointer]); | |
24 | throw new Error(errorMessageString); | |
25 | } | |
26 | if (!resultPointer) { | |
27 | throw new Error('unknown graphviz error'); | |
28 | } | |
29 | ||
30 | var resultString = instance['UTF8ToString'](resultPointer); | |
31 | instance['ccall']('free', 'number', ['number'], [resultPointer]); | |
32 | return resultString; | |
33 | } | |
34 | ||
35 | if (typeof importScripts === "function") { | |
36 | var instance = Module(); | |
37 | ||
38 | onmessage = function(event) { | |
39 | var id = event.data.id; | |
40 | var src = event.data.src; | |
41 | var options = event.data.options; | |
42 | ||
43 | try { | |
44 | var result = render(instance, src, options); | |
45 | postMessage({ id: id, result: result }); | |
46 | } catch (e) { | |
47 | var error; | |
48 | if (e instanceof Error) { | |
49 | error = { message: e.message, fileName: e.fileName, lineNumber: e.lineNumber }; | |
50 | } else { | |
51 | error = { message: e.toString() }; | |
52 | } | |
53 | postMessage({ id: id, error: error }); | |
54 | } | |
55 | } | |
56 | } | |
57 | ||
58 | if (typeof exports === 'object' && typeof module !== 'undefined') { | |
59 | module.exports = { render: render, Module: Module }; | |
60 | } else if (typeof define === 'function' && define.amd) { | |
61 | define(function() { return { render: render, Module: Module }; }); | |
62 | } | |
63 | ||
64 | if (typeof global.Viz !== 'undefined') { | |
65 | global.Viz.render = render; | |
66 | global.Viz.Module = Module; | |
67 | } | |
68 | ||
69 | })(typeof self !== 'undefined' ? self : this); |
Binary diff not shown
0 | { | |
1 | "name": "fedidag-client", | |
2 | "version": "0.0.1", | |
3 | "scripts": { | |
4 | "start": "API_PREFIX=http://localhost:3000 webpack serve -w --host 0.0.0.0", | |
5 | "cors": "node cors.js", | |
6 | "build": "webpack --config ./webpack.config.js --mode production --progress" | |
7 | }, | |
8 | "babel": { | |
9 | "presets": [ | |
10 | "@babel/env" | |
11 | ], | |
12 | "plugins": [ | |
13 | [ | |
14 | "@babel/plugin-proposal-decorators", | |
15 | { "decoratorsBeforeExport": false } | |
16 | ], | |
17 | "@babel/plugin-proposal-class-properties", | |
18 | [ | |
19 | "@babel/plugin-transform-react-jsx", | |
20 | { | |
21 | "pragma": "h", | |
22 | "pragmaFrag": "Fragment" | |
23 | } | |
24 | ] | |
25 | ] | |
26 | }, | |
27 | "dependencies": { | |
28 | "classnames": "^2.2.6", | |
29 | "color-hash": "^1.0.3", | |
30 | "core-js": "^3.8.3", | |
31 | "date-fns": "^2.16.1", | |
32 | "jsonld": "^3.3.0", | |
33 | "preact": "^10.5.12", | |
34 | "regenerator-runtime": "^0.13.7" | |
35 | }, | |
36 | "devDependencies": { | |
37 | "@babel/core": "^7.11.6", | |
38 | "@babel/plugin-proposal-class-properties": "^7.10.4", | |
39 | "@babel/plugin-proposal-decorators": "^7.12.13", | |
40 | "@babel/plugin-transform-react-jsx": "^7.12.12", | |
41 | "@babel/preset-env": "^7.11.5", | |
42 | "babel-loader": "^8.2.2", | |
43 | "copy-webpack-plugin": "^7.0.0", | |
44 | "html-webpack-plugin": "^4.5.0", | |
45 | "webpack": "^5.17.0", | |
46 | "webpack-cli": "^4.4.0", | |
47 | "cors-anywhere": "^0.4.3", | |
48 | "webpack-dev-server": "^3.11.2" | |
49 | } | |
50 | } |
0 | export const PUBLIC_URL = process.env.PUBLIC_URL || `${location.origin}`; | |
1 | export const API_PREFIX = process.env.API_PREFIX || `${location.origin}`; | |
2 | export const CORS_PREFIX = process.env.CORS_PREFIX || `${API_PREFIX}/remote`; |
0 | import { Component } from 'preact'; | |
1 | import * as jsonld from 'jsonld'; | |
2 | import { CORS_PREFIX } from './config'; | |
3 | ||
4 | const cors = (url) => `${CORS_PREFIX}/${url}`; | |
5 | ||
6 | function wrapCache(target) { | |
7 | const orig = target.descriptor.value; | |
8 | ||
9 | target.descriptor.value = function (id, ...args) { | |
10 | this.cache[id] ||= orig.call(this, id, ...args); | |
11 | return this.cache[id]; | |
12 | }; | |
13 | ||
14 | return target; | |
15 | }; | |
16 | ||
17 | const context = [ | |
18 | 'https://www.w3.org/ns/activitystreams', | |
19 | { | |
20 | replies: { '@id': 'as:replies', '@container': '@set' }, | |
21 | inReplyTo: { '@id': 'as:inReplyTo', '@container': '@set' }, | |
22 | items: { '@id': 'as:items', '@type': '@id', '@container': '@set' }, | |
23 | }, | |
24 | ]; | |
25 | ||
26 | export class GraphContainer extends Component { | |
27 | state = { | |
28 | loading: true, | |
29 | name: "loading…", | |
30 | items: {}, | |
31 | error: null, | |
32 | }; | |
33 | ||
34 | cache = {}; | |
35 | ||
36 | componentDidMount() { | |
37 | this.componentDidUpdate({}); | |
38 | } | |
39 | ||
40 | componentDidUpdate(prevProps) { | |
41 | if (prevProps.url === this.props.url) return; | |
42 | ||
43 | this.loadData(this.props.url) | |
44 | .catch(error => { | |
45 | console.error(`Error loading ${this.props.url}:`, error); | |
46 | this.setState({ | |
47 | loading: false, | |
48 | error, | |
49 | }); | |
50 | }); | |
51 | } | |
52 | ||
53 | @wrapCache | |
54 | async loadUser(id) { | |
55 | if (id === "https://dag.s-ol.nu/users/unknown") { | |
56 | return { | |
57 | '@context': context, | |
58 | id, | |
59 | type: 'Person', | |
60 | name: 'unknown', | |
61 | summary: 'unknown user', | |
62 | }; | |
63 | } | |
64 | ||
65 | try { | |
66 | const user = await jsonld.compact(id, context); | |
67 | user.id = id; | |
68 | return user; | |
69 | } catch (error) { | |
70 | console.error(`Error loading user '${id}':`, error); | |
71 | return { | |
72 | '@context': context, | |
73 | id, | |
74 | type: 'Person', | |
75 | name: id, | |
76 | summary: 'failed to load user information', | |
77 | }; | |
78 | } | |
79 | } | |
80 | ||
81 | render() { | |
82 | window.state = this.state; | |
83 | return this.props.render(this.state); | |
84 | } | |
85 | } | |
86 | ||
87 | export class GraphContainerMastodon extends GraphContainer { | |
88 | @wrapCache | |
89 | async loadCollection(id, ...args) { | |
90 | const collection = await jsonld.compact(cors(id), context); | |
91 | let items = []; | |
92 | ||
93 | const addItems = (i) => { | |
94 | if (Array.isArray(i)) | |
95 | items = items.concat(i); | |
96 | else if (i) | |
97 | items.push(i); | |
98 | }; | |
99 | ||
100 | // discover items | |
101 | if (collection.items) { | |
102 | addItems(collection.items); | |
103 | } else { | |
104 | let page = collection.first; | |
105 | const seen = []; | |
106 | while (page && seen.indexOf(page.id) < 0) { | |
107 | seen.push(page.id); | |
108 | addItems(page.items); | |
109 | ||
110 | page = page.next && await jsonld.compact(cors(page.next), context); | |
111 | } | |
112 | } | |
113 | ||
114 | // dereference items | |
115 | return await Promise.all(items.map(item => this.loadNote(item.id ?? item, ...args))); | |
116 | } | |
117 | ||
118 | @wrapCache | |
119 | async loadNote(id, items, inReplyTo) { | |
120 | let item; | |
121 | try { | |
122 | item = await jsonld.frame( | |
123 | cors(id), | |
124 | { | |
125 | '@context': context, | |
126 | type: 'Note', | |
127 | context: { '@embed': '@never' }, | |
128 | replies: { '@embed': '@always' }, | |
129 | inReplyTo: { '@embed': '@never' }, | |
130 | }, | |
131 | { omitGraph: true } | |
132 | ); | |
133 | ||
134 | if (item.replies.length) | |
135 | item.replies = await this.loadCollection(item.replies[0].id, items, [id]); | |
136 | } catch (error) { | |
137 | console.error(`Error loading note '${id}':`, error); | |
138 | item = { | |
139 | '@context': context, | |
140 | id, | |
141 | type: 'Tombstone', | |
142 | formerType: 'Note', | |
143 | attributedTo: 'https://dag.s-ol.nu/users/unknown', | |
144 | published: '1970-01-01T00:00:00Z', | |
145 | content: `Error loading note: ${error.toString()}`, | |
146 | replies: [], | |
147 | inReplyTo, | |
148 | }; | |
149 | } | |
150 | ||
151 | item.attributedTo = await this.loadUser(item.attributedTo); | |
152 | items[item.id] = item; | |
153 | return item; | |
154 | } | |
155 | ||
156 | async loadData(url) { | |
157 | const items = {}; | |
158 | const root = await this.loadNote(url, items, []); | |
159 | ||
160 | this.setState({ | |
161 | name: root.name || root.content, | |
162 | items, | |
163 | loading: false, | |
164 | }); | |
165 | } | |
166 | } | |
167 | ||
168 | export class GraphContainerJSONLD extends GraphContainer { | |
169 | async loadData(url) { | |
170 | const response = await fetch(url, { | |
171 | headers: { 'Accept': 'application/ld+json, application/json' }, | |
172 | credentials: 'include', | |
173 | }); | |
174 | ||
175 | const discussion = await jsonld.frame( | |
176 | await response.json(), | |
177 | { | |
178 | '@context': context, | |
179 | type: 'Document', | |
180 | first: { '@embed': '@never' }, | |
181 | items: { | |
182 | context: { '@embed': '@never' }, | |
183 | replies: { '@embed': '@never' }, | |
184 | inReplyTo: { '@embed': '@never' }, | |
185 | attributedTo: { '@embed': '@always' }, | |
186 | }, | |
187 | }, | |
188 | { omitGraph: true } | |
189 | ); | |
190 | ||
191 | const indexedItems = {}; | |
192 | await Promise.all(discussion.items.map(async (item) => { | |
193 | item.attributedTo = await this.loadUser(item.attributedTo); | |
194 | indexedItems[item.id] = item; | |
195 | })); | |
196 | ||
197 | discussion.items = indexedItems; | |
198 | ||
199 | this.setState({ | |
200 | ...discussion, | |
201 | loading: false, | |
202 | }); | |
203 | } | |
204 | } |
0 | import 'preact/debug'; | |
1 | import 'core-js/stable'; | |
2 | import 'regenerator-runtime/runtime'; | |
3 | import { h, Fragment, Component, render } from 'preact'; | |
4 | import { GraphContainerJSONLD, GraphContainerMastodon } from './graph'; | |
5 | import { Menu, Discussion, Selection } from './ui'; | |
6 | ||
7 | class SelectionContainer extends Component { | |
8 | state = { | |
9 | selection: [], | |
10 | }; | |
11 | ||
12 | toggle = (id) => { | |
13 | const { selection } = this.state; | |
14 | if (selection.indexOf(id) < 0) | |
15 | this.setState({ selection: [ ...selection, id ] }); | |
16 | else | |
17 | this.setState({ selection: selection.filter(i => i !== id) }); | |
18 | } | |
19 | ||
20 | render() { | |
21 | return this.props.render({ | |
22 | ...this.state, | |
23 | toggleSelected: this.toggle, | |
24 | }); | |
25 | } | |
26 | } | |
27 | ||
28 | class CollapseContainer extends Component { | |
29 | /** | |
30 | * Contains the collapse-state for each node. | |
31 | * | |
32 | * - `false`: visible | |
33 | * - `true`: implicitly hidden | |
34 | * - `'explicit'`: explicitly hidden | |
35 | */ | |
36 | state = {}; | |
37 | ||
38 | /** | |
39 | * Toggle a node's collapse-state. | |
40 | * - `false` → `'explicit'` | |
41 | * - `true`, `'explicit'` → `false` | |
42 | */ | |
43 | toggle = (id) => { | |
44 | const { items } = this.props; | |
45 | ||
46 | const state = Object.assign({}, this.state); | |
47 | state[id] = state[id] ? false : 'explicit'; | |
48 | ||
49 | this.setState(this.update(items[id], state)); | |
50 | } | |
51 | ||
52 | /** | |
53 | * Recursively update child node's collapse-state. | |
54 | * | |
55 | * If a node has parents and they are all collapsed, | |
56 | * mark that node as implicitly hidden (`true`). | |
57 | * | |
58 | * Then update all of that node's children. | |
59 | */ | |
60 | update(node, state) { | |
61 | const { items } = this.props; | |
62 | ||
63 | if (state[node.id] !== 'explicit') { | |
64 | state[node.id] = | |
65 | node.inReplyTo.length | |
66 | && node.inReplyTo.every(p => state[p.id]); | |
67 | } | |
68 | ||
69 | for (const child of node.replies) | |
70 | this.update(items[child.id], state); | |
71 | ||
72 | return state; | |
73 | } | |
74 | ||
75 | render() { | |
76 | return this.props.render({ | |
77 | collapsed: this.state, | |
78 | toggleCollapsed: this.toggle, | |
79 | }); | |
80 | } | |
81 | } | |
82 | ||
83 | const graphRender = ({ loading, error, name, items }) => { | |
84 | if (loading) { | |
85 | return ( | |
86 | <article> | |
87 | <div>loading...</div> | |
88 | </article> | |
89 | ); | |
90 | } | |
91 | ||
92 | if (error) { | |
93 | return ( | |
94 | <article> | |
95 | <h1>error loading</h1> | |
96 | <div> | |
97 | <p>{error.toString()}</p> | |
98 | <pre> | |
99 | <code> | |
100 | {error.stack} | |
101 | </code> | |
102 | </pre> | |
103 | </div> | |
104 | </article> | |
105 | ); | |
106 | } | |
107 | ||
108 | return ( | |
109 | <SelectionContainer render={({ selection, toggleSelected }) => ( | |
110 | <> | |
111 | <CollapseContainer | |
112 | items={items} | |
113 | render={({ collapsed, toggleCollapsed }) => ( | |
114 | <Discussion | |
115 | name={name} | |
116 | items={items} | |
117 | collapsed={collapsed} | |
118 | toggleCollapsed={toggleCollapsed} | |
119 | toggleSelected={toggleSelected} | |
120 | /> | |
121 | )} | |
122 | /> | |
123 | <Selection | |
124 | items={selection.map(id => items[id])} | |
125 | toggleSelected={toggleSelected} | |
126 | /> | |
127 | </> | |
128 | )} /> | |
129 | ); | |
130 | }; | |
131 | ||
132 | const search = new URLSearchParams(window.location.search); | |
133 | const graph = search.has('graph') ? search.get('graph') : 'lib/graph.json'; | |
134 | ||
135 | let app; | |
136 | if (search.has('document')) { | |
137 | app = ( | |
138 | <GraphContainerJSONLD | |
139 | url={search.get('document')} | |
140 | render={graphRender} | |
141 | /> | |
142 | ); | |
143 | } else if (search.has('note')) { | |
144 | app = ( | |
145 | <GraphContainerMastodon | |
146 | url={search.get('note')} | |
147 | render={graphRender} | |
148 | /> | |
149 | ); | |
150 | } else if (search.has('graph')) { | |
151 | app = ( | |
152 | <GraphContainerMastodon | |
153 | url={search.get('graph')} | |
154 | render={graphRender} | |
155 | /> | |
156 | ); | |
157 | } else { | |
158 | app = <Menu />; | |
159 | } | |
160 | ||
161 | render(app, document.body); |
0 | import Viz from './viz.es'; | |
1 | ||
2 | const toNumber = (i) => Number(i); | |
3 | const gv = new Viz({ workerURL: 'lib/lite.render.js' }); | |
4 | ||
5 | export default class Layout { | |
6 | constructor() { | |
7 | this.src = 'digraph { node [shape="rectangle"];\n'; | |
8 | } | |
9 | ||
10 | addNode(id, width, height) { | |
11 | this.src += ` "${id}" [fixedsize=true; width=${width / 72}; height=${height / 72}];\n`; | |
12 | } | |
13 | ||
14 | addLink(from, to) { | |
15 | this.src += ` "${from}" -> "${to}";\n`; | |
16 | } | |
17 | ||
18 | async render() { | |
19 | this.src += '}'; | |
20 | ||
21 | const info = await gv.renderJSONObject(this.src, { format: 'json0' }); | |
22 | info.objects ||= []; | |
23 | info.edges ||= []; | |
24 | const [width, height] = info.bb.split(',').map(toNumber).slice(2); | |
25 | ||
26 | const positions = {}; | |
27 | for (const object of info.objects) { | |
28 | const [x, y] = object.pos.split(',').map(toNumber); | |
29 | positions[object.name] = [ x, height - y ]; | |
30 | } | |
31 | ||
32 | const links = info.edges.map((edge) => { | |
33 | const pos = edge.pos.slice(2); | |
34 | return pos.split(' ').map(p => { | |
35 | const [x, y] = p.split(','); | |
36 | return [toNumber(x), height - toNumber(y)]; | |
37 | }); | |
38 | ||
39 | }); | |
40 | ||
41 | return { | |
42 | width, height, | |
43 | positions, | |
44 | links, | |
45 | }; | |
46 | } | |
47 | } |
0 | import { h } from 'preact'; | |
1 | import css from './css'; | |
2 | ||
3 | css` | |
4 | .attachment { | |
5 | margin: 1rem; | |
6 | ||
7 | height: 7rem; | |
8 | object-fit: contain; | |
9 | } | |
10 | ||
11 | .attachment + .attachment { | |
12 | margin-top: 0; | |
13 | } | |
14 | `; | |
15 | ||
16 | export const Attachment = ({ type, mediaType, url, style }) => { | |
17 | let content; | |
18 | if (mediaType.startsWith('video/')) { | |
19 | content = <video class="attachment" src={url} controls />; | |
20 | } else if (mediaType.startsWith('image/')) { | |
21 | content = <img class="attachment" src={url} />; | |
22 | } | |
23 | ||
24 | return content; | |
25 | } |
0 | import { h } from 'preact'; | |
1 | import { useState, useEffect } from 'preact/hooks'; | |
2 | import Layout from '../layout'; | |
3 | import css from './css'; | |
4 | import { Links } from './Links'; | |
5 | import { Note } from './Note'; | |
6 | ||
7 | css` | |
8 | article { | |
9 | position: absolute; | |
10 | inset: 0; | |
11 | ||
12 | overflow: auto; | |
13 | } | |
14 | ||
15 | article > h1 { | |
16 | display: flex; | |
17 | align-items: baseline; | |
18 | ||
19 | position: sticky; | |
20 | inset: 0; | |
21 | bottom: auto; | |
22 | z-index: 200; | |
23 | ||
24 | margin: 0; | |
25 | padding: 0.75rem 1.5rem; | |
26 | background: var(--theme-title-bg); | |
27 | color: var(--theme-title-fg); | |
28 | } | |
29 | ||
30 | article > h1 > span { | |
31 | overflow: hidden; | |
32 | white-space: nowrap; | |
33 | text-overflow: ellipsis; | |
34 | } | |
35 | ||
36 | article > h1 .back { | |
37 | font-size: 0.8em; | |
38 | color: inherit; | |
39 | opacity: 0.5; | |
40 | ||
41 | margin-left: 1em; | |
42 | } | |
43 | ||
44 | article > div { | |
45 | position: relative; | |
46 | margin: 2rem 2rem 6rem; | |
47 | } | |
48 | `; | |
49 | ||
50 | const tmp = document.createElement('span'); | |
51 | ||
52 | export const Discussion = ({ | |
53 | name, items, collapsed, | |
54 | toggleCollapsed, toggleSelected, | |
55 | }) => { | |
56 | const [{ width, height, positions, links }, setState] = useState({ | |
57 | width: 0, | |
58 | height: 0, | |
59 | positions: {}, | |
60 | links: [], | |
61 | }); | |
62 | ||
63 | const layout = new Layout(); | |
64 | const setNodeSize = layout.addNode.bind(layout); | |
65 | ||
66 | useEffect(() => { | |
67 | layout.render().then(setState); | |
68 | }, [ items, collapsed ]); | |
69 | ||
70 | tmp.innerHTML = name; | |
71 | name = tmp.innerText; | |
72 | ||
73 | return ( | |
74 | <article> | |
75 | <h1> | |
76 | <span>{name}</span> | |
77 | <a class="back" href="?">back</a> | |
78 | </h1> | |
79 | <div> | |
80 | <Links width={width} height={height} links={links} /> | |
81 | <div> | |
82 | {Object.values(items).map((item) => { | |
83 | const isCollapsed = collapsed[item.id]; | |
84 | const hidden = | |
85 | item.inReplyTo.every(p => collapsed[p.id]) | |
86 | && item.replies.every(c => collapsed[c.id]) | |
87 | && item.inReplyTo.length !== 0; | |
88 | if (hidden) | |
89 | return; | |
90 | ||
91 | const onlyParent = item.inReplyTo.length === 1 && items[item.inReplyTo[0].id]; | |
92 | ||
93 | for (const reply of item.replies) { | |
94 | if (isCollapsed && collapsed[reply.id]) | |
95 | continue; | |
96 | ||
97 | layout.addLink(item.id, reply.id); | |
98 | } | |
99 | ||
100 | return ( | |
101 | <Note | |
102 | {...item} | |
103 | smallHeader={ | |
104 | onlyParent // only one parent post | |
105 | && onlyParent.attributedTo === item.attributedTo // posted by same user | |
106 | && onlyParent.published === item.published // in the same second | |
107 | } | |
108 | collapsed={isCollapsed} | |
109 | position={positions[item.id]} | |
110 | onCollapse={toggleCollapsed} | |
111 | onSelect={toggleSelected} | |
112 | onSize={setNodeSize} | |
113 | /> | |
114 | ); | |
115 | })} | |
116 | </div> | |
117 | </div> | |
118 | </article> | |
119 | ); | |
120 | }; | |
121 |
0 | import { h } from 'preact'; | |
1 | import { useRef, useLayoutEffect } from 'preact/hooks'; | |
2 | ||
3 | export const Links = ({ links, ...props }) => { | |
4 | const canvas = useRef(null); | |
5 | ||
6 | useLayoutEffect(() => { | |
7 | const ctx = canvas.current.getContext('2d'); | |
8 | ctx.lineWidth = 4; | |
9 | ctx.lineCap = 'round'; | |
10 | ctx.lineJoin = 'round'; | |
11 | ctx.strokeStyle = '#696969'; | |
12 | ctx.fillStyle = '#696969'; | |
13 | ctx.shadowBlur = 2; | |
14 | ctx.shadowOffsetX = 2; | |
15 | ctx.shadowOffsetY = 4; | |
16 | ||
17 | ctx.clearRect(0, 0, canvas.current.width, canvas.current.height); | |
18 | ||
19 | for (const points of links) { | |
20 | ctx.shadowColor = 'rgba(0,0,0, 0.7)'; | |
21 | ctx.beginPath(); | |
22 | ctx.moveTo(...points[1]); | |
23 | for (let i = 4; i < points.length; i += 3) { | |
24 | const [ax, ay] = points[i - 2]; | |
25 | const [bx, by] = points[i - 1]; | |
26 | const [x, y] = points[i]; | |
27 | ctx.bezierCurveTo(ax, ay, bx, by, x, y); | |
28 | } | |
29 | ctx.stroke(); | |
30 | ||
31 | const [lx, ly] = points[points.length - 1]; | |
32 | const [tx, ty] = points[0]; | |
33 | const [dx, dy] = [tx - lx, ty - ly]; | |
34 | const [hx, hy] = [dy*0.7, dx*-0.7]; | |
35 | ||
36 | ctx.shadowColor = 'transparent'; | |
37 | ctx.beginPath(); | |
38 | ctx.moveTo(lx + dx*0.8, ly + dy*0.8); | |
39 | ctx.lineTo(lx - dx*0.5 + hx, ly - dy*0.5 + hy); | |
40 | ctx.lineTo(lx - dx*0.5 - hx, ly - dy*0.5 - hy); | |
41 | ctx.fill(); | |
42 | } | |
43 | }); | |
44 | ||
45 | return ( | |
46 | <canvas {...props} ref={canvas} /> | |
47 | ); | |
48 | }; | |
49 |
0 | import { h, Fragment } from 'preact'; | |
1 | import { useState, useEffect } from 'preact/hooks'; | |
2 | import cn from 'classnames'; | |
3 | import { API_PREFIX } from '../config'; | |
4 | import css from './css'; | |
5 | ||
6 | const fetchJSON = async (url) => { | |
7 | const res = await fetch(API_PREFIX + url, { credentials: 'include' }); | |
8 | if (res.status !== 200) | |
9 | throw new Error("wrong status"); | |
10 | ||
11 | return res.json(); | |
12 | }; | |
13 | ||
14 | css` | |
15 | a.discussion { | |
16 | display: flex; | |
17 | ||
18 | padding: 0.25rem 0.5rem; | |
19 | text-size: 2rem; | |
20 | line-height: 2rem; | |
21 | text-decoration: none; | |
22 | ||
23 | border-radius: 0.3rem; | |
24 | ||
25 | color: var(--theme-note-fg); | |
26 | background: var(--theme-note-bg); | |
27 | } | |
28 | ||
29 | a.discussion .access { | |
30 | opacity: 0.5; | |
31 | margin-right: 0.75rem; | |
32 | } | |
33 | ||
34 | a.discussion .name { | |
35 | flex: 1 1 auto; | |
36 | white-space: nowrap; | |
37 | overflow: hidden; | |
38 | text-overflow: ellipsis; | |
39 | } | |
40 | ||
41 | a.discussion > a { | |
42 | margin-left: 0.75rem; | |
43 | text-decoration: underline; | |
44 | color: inherit; | |
45 | opacity: 0.5; | |
46 | ||
47 | transition: opacity 0.3s; | |
48 | } | |
49 | a.discussion > a:hover { | |
50 | opacity: 1; | |
51 | } | |
52 | `; | |
53 | ||
54 | const DiscussionLink = ({ id, name, url, attributedTo, user }) => { | |
55 | const writable = attributedTo && attributedTo.indexOf(user) > -1; | |
56 | ||
57 | return ( | |
58 | <a class="discussion" href={`?document=${id}`}> | |
59 | <span class="access">{writable ? 'W' : 'R'}</span> | |
60 | <span class="name">{name}</span> | |
61 | {url && ( | |
62 | <a href={url.href}>ext</a> | |
63 | )} | |
64 | </a> | |
65 | ); | |
66 | }; | |
67 | ||
68 | css` | |
69 | ul.discussions { | |
70 | list-style: none; | |
71 | padding: 0; | |
72 | ||
73 | width: 26rem; | |
74 | } | |
75 | ||
76 | ul.discussions > li { | |
77 | margin: 0.2rem 0; | |
78 | } | |
79 | `; | |
80 | ||
81 | const DiscussionList = ({ discussions, user }) => { | |
82 | return ( | |
83 | <ul class="discussions"> | |
84 | {discussions.map((discussion) => ( | |
85 | <li> | |
86 | <DiscussionLink {...discussion} user={user} /> | |
87 | </li> | |
88 | ))} | |
89 | </ul> | |
90 | ); | |
91 | }; | |
92 | ||
93 | css` | |
94 | div.menu { | |
95 | margin: 1rem 2rem; | |
96 | } | |
97 | `; | |
98 | export const Menu = () => { | |
99 | const [user, setUser] = useState(null); | |
100 | const [discussions, setDiscussions] = useState([]); | |
101 | ||
102 | useEffect(() => { | |
103 | fetchJSON('/discdag/list') | |
104 | .then(({ user, discussions }) => { | |
105 | setUser(user ?? null); | |
106 | setDiscussions(discussions); | |
107 | }); | |
108 | }, []); | |
109 | ||
110 | if (user === null) { | |
111 | return ( | |
112 | <div class="menu"> | |
113 | <h2>Discussions</h2> | |
114 | loading... | |
115 | </div> | |
116 | ); | |
117 | } | |
118 | ||
119 | return ( | |
120 | <div class="menu"> | |
121 | <h2>Discussions</h2> | |
122 | {/*user && user.name !== 'Guest' | |
123 | ? ( | |
124 | <> | |
125 | <span>logged in as {user.name}</span> | |
126 | <button>log out</button> | |
127 | </> | |
128 | ) | |
129 | : ( | |
130 | <> | |
131 | <span>not logged in</span> | |
132 | <button>log in</button> | |
133 | </> | |
134 | )*/} | |
135 | <DiscussionList discussions={discussions} user={user?.id} /> | |
136 | </div> | |
137 | ); | |
138 | }; |
0 | import { h } from 'preact'; | |
1 | import { useRef, useLayoutEffect } from 'preact/hooks'; | |
2 | import ColorHash from 'color-hash'; | |
3 | import { formatRelative } from 'date-fns'; | |
4 | import cn from 'classnames'; | |
5 | import css from './css'; | |
6 | import { Attachment } from './Attachment'; | |
7 | ||
8 | const now = new Date(); | |
9 | const Time = ({ time }) => { | |
10 | const dt = new Date(time); | |
11 | return formatRelative(dt, now); | |
12 | }; | |
13 | ||
14 | css` | |
15 | .flex-space { | |
16 | flex: 1; | |
17 | margin: 0; | |
18 | } | |
19 | `; | |
20 | const Space = (props) => <div class="flex-space" {...props} />; | |
21 | ||
22 | css` | |
23 | section > header { | |
24 | display: flex; | |
25 | flex-direction: row; | |
26 | ||
27 | height: 1.75rem; | |
28 | ||
29 | color: var(--theme-header-fg); | |
30 | background: var(--theme-header-bg); | |
31 | } | |
32 | ||
33 | section > header.small { | |
34 | height: 0.5rem; | |
35 | } | |
36 | ||
37 | section > header > * { | |
38 | margin: 0 0.35rem; | |
39 | white-space: nowrap; | |
40 | overflow: hidden; | |
41 | text-overflow: ellipsis; | |
42 | line-height: 1.75rem; | |
43 | } | |
44 | ||
45 | section > header > .avatar { | |
46 | height: 1.25rem; | |
47 | width: 1.25rem; | |
48 | flex: 0 0 auto; | |
49 | margin: 0.25rem; | |
50 | border-radius: 0.2rem; | |
51 | ||
52 | font-size: 1.25rem; | |
53 | font-weight: bold; | |
54 | line-height: 1.25rem; | |
55 | text-align: center; | |
56 | text-decoration: none; | |
57 | background: white; | |
58 | color: black; | |
59 | } | |
60 | section > header > .avatar img { | |
61 | width: inherit; | |
62 | height: inherit; | |
63 | } | |
64 | section > header > .collapse { | |
65 | height: 1rem; | |
66 | width: 1rem; | |
67 | flex: 0 0 auto; | |
68 | margin: 0.3rem; | |
69 | border-radius: 0.2rem; | |
70 | border: 0.05rem solid var(--theme-header-fg); | |
71 | ||
72 | line-height: 0.8rem; | |
73 | text-align: center; | |
74 | text-decoration: none; | |
75 | text-weight: bold; | |
76 | ||
77 | transition: background 0.3s; | |
78 | } | |
79 | section > header > .collapse:hover { | |
80 | background: var(--theme-note-bg); | |
81 | } | |
82 | ||
83 | section > header > .user { | |
84 | flex: 0 0.5 auto; | |
85 | } | |
86 | ||
87 | section > header > .time { | |
88 | flex: 0 0 auto; | |
89 | font-size: 0.8em; | |
90 | color: #363636; | |
91 | } | |
92 | `; | |
93 | const Header = ({ id, user, published, collapsed, onCollapse }) => { | |
94 | const username = user.name || user.preferredUsername; | |
95 | ||
96 | const onClick = onCollapse && ((e) => { | |
97 | e.preventDefault(); | |
98 | onCollapse(id); | |
99 | }); | |
100 | ||
101 | return ( | |
102 | <header> | |
103 | <a class="avatar" href={user.id}> | |
104 | {user.icon | |
105 | ? <img src={new URL(user.icon.url, user.id)} /> | |
106 | : "?"} | |
107 | </a> | |
108 | <span class="user">{username}</span> | |
109 | <Space /> | |
110 | <a class="time" href={id}> | |
111 | <Time time={published} /> | |
112 | </a> | |
113 | <a class="collapse" href="#" onClick={onClick}> | |
114 | {collapsed ? '+' : '-'} | |
115 | </a> | |
116 | </header> | |
117 | ); | |
118 | }; | |
119 | ||
120 | css` | |
121 | section { | |
122 | display: flex; | |
123 | flex-direction: column; | |
124 | justify-content: space-between; | |
125 | ||
126 | width: 15rem; | |
127 | ||
128 | overflow: hidden; | |
129 | color: var(--theme-note-fg); | |
130 | background: var(--theme-note-bg); | |
131 | box-shadow: rgba(0,0,0, 0.7) 2px 4px 5px; | |
132 | ||
133 | border-radius: 0.3rem; | |
134 | } | |
135 | ||
136 | section.type-Tombstone { | |
137 | color: var(--theme-note-bg); | |
138 | background: var(--theme-note-fg); | |
139 | } | |
140 | ||
141 | section > main { | |
142 | position: relative; | |
143 | padding: 0.5rem; | |
144 | overflow: hidden; | |
145 | font-family: serif; | |
146 | } | |
147 | ||
148 | section > main > p:first-child { | |
149 | margin-top: 0; | |
150 | } | |
151 | section > main > p:last-child { | |
152 | margin-bottom: 0; | |
153 | } | |
154 | ||
155 | section.tombstone > main { | |
156 | font-family: inherit; | |
157 | } | |
158 | ||
159 | section.hidden { | |
160 | display: none; | |
161 | } | |
162 | ||
163 | section.ellipsis > main { | |
164 | max-height: 7em; | |
165 | } | |
166 | section.ellipsis > .attachment { | |
167 | display: none; | |
168 | } | |
169 | section.ellipsis > main::after { | |
170 | position: absolute; | |
171 | display: block; | |
172 | content: ''; | |
173 | ||
174 | pointer-events: none; | |
175 | ||
176 | left: 0; | |
177 | right: 0; | |
178 | bottom: 0; | |
179 | height: 1.25em; | |
180 | background: linear-gradient(0deg, var(--theme-note-bg) 5%, var(--theme-note-bg-trans) 100%); | |
181 | } | |
182 | section.type-Tombstone.ellipsis > main::after { | |
183 | background: linear-gradient(0deg, var(--theme-note-fg) 5%, var(--theme-note-fg-trans) 100%); | |
184 | } | |
185 | ||
186 | section.collapsed > main { | |
187 | max-height: 2em; | |
188 | } | |
189 | `; | |
190 | ||
191 | const colors = new ColorHash({ lightness: 0.8 }); | |
192 | export const Note = ({ | |
193 | id, type, attributedTo, published, content, attachment, | |
194 | smallHeader = false, collapsed = false, ellipsis = false, position, | |
195 | onCollapse, onSelect, onSize, | |
196 | }) => { | |
197 | ellipsis ||= collapsed; | |
198 | attachment ||= []; | |
199 | if (!Array.isArray(attachment)) | |
200 | attachment = [attachment]; | |
201 | ||
202 | const backgroundColor = attributedTo.color || colors.hex(attributedTo.id); | |
203 | ||
204 | const onClick = onSelect && ((e) => { | |
205 | e.preventDefault(); | |
206 | onSelect(id); | |
207 | }); | |
208 | ||
209 | const root = useRef(null); | |
210 | onSize && useLayoutEffect(() => { | |
211 | onSize(id, root.current.offsetWidth, root.current.offsetHeight); | |
212 | }); | |
213 | ||
214 | return ( | |
215 | <section | |
216 | style={{ | |
217 | '--theme-header-bg': backgroundColor, | |
218 | 'position': position && 'absolute', | |
219 | 'left': position && `${position[0] - root.current.offsetWidth / 2}px`, | |
220 | 'top': position && `${position[1] - root.current.offsetHeight / 2}px`, | |
221 | 'visibility': onSize && !position ? 'hidden' : 'visible', | |
222 | }} | |
223 | class={cn( | |
224 | `type-${type}`, | |
225 | collapsed && 'collapsed', | |
226 | ellipsis && 'ellipsis', | |
227 | )} | |
228 | data-id={id} | |
229 | ref={root} | |
230 | > | |
231 | {smallHeader | |
232 | ? <header className="small" onClick={onCollapse} /> | |
233 | : <Header | |
234 | id={id} | |
235 | user={attributedTo} | |
236 | published={published} | |
237 | collapsed={collapsed} | |
238 | onCollapse={onCollapse} | |
239 | /> | |
240 | } | |
241 | <main | |
242 | innerHTML={content} | |
243 | onClick={onClick} | |
244 | /> | |
245 | {attachment.map(a => <Attachment {...a} />)} | |
246 | </section> | |
247 | ); | |
248 | }; |
0 | import { h } from 'preact'; | |
1 | import { useState, useEffect } from 'preact/hooks'; | |
2 | import cn from 'classnames'; | |
3 | import css from './css'; | |
4 | import { Note } from './Note'; | |
5 | ||
6 | css` | |
7 | .drawer { | |
8 | position: fixed; | |
9 | inset: 0; | |
10 | top: auto; | |
11 | ||
12 | z-index: 200; | |
13 | background: var(--theme-note-fg); | |
14 | ||
15 | /* wtf webkit */ | |
16 | -webkit-backface-visibility: hidden; | |
17 | } | |
18 | ||
19 | .drawer .handle { | |
20 | height: 1.5rem; | |
21 | margin-bottom: 1rem; | |
22 | } | |
23 | ||
24 | .drawer .handle button { | |
25 | display: block; | |
26 | ||
27 | height: 1rem; | |
28 | line-height: 1rem; | |
29 | margin: -1rem auto 0; | |
30 | padding: 0.25rem; | |
31 | background: var(--theme-note-bg); | |
32 | border-radius: 0.2rem; | |
33 | } | |
34 | ||
35 | .drawer .scroller { | |
36 | display: flex; | |
37 | overflow: auto; | |
38 | width: 100%; | |
39 | ||
40 | transition: max-height 0.3s; | |
41 | } | |
42 | ||
43 | .drawer .contents { | |
44 | display: flex; | |
45 | ||
46 | align-items: flex-start; | |
47 | ||
48 | gap: 1rem; | |
49 | padding: 0 1.5rem; | |
50 | } | |
51 | ||
52 | .drawer .contents > * { | |
53 | flex: 0 0 auto; | |
54 | } | |
55 | `; | |
56 | ||
57 | export const Drawer = ({ height, children }) => { | |
58 | const [ hidden, setHidden ] = useState(true); | |
59 | ||
60 | return ( | |
61 | <div class="drawer"> | |
62 | <div class="handle"> | |
63 | <button onClick={() => setHidden(!hidden)}> | |
64 | ### | |
65 | </button> | |
66 | </div> | |
67 | <div | |
68 | class="scroller" | |
69 | style={{ | |
70 | height, | |
71 | 'max-height': hidden ? '1rem' : height, | |
72 | }} | |
73 | > | |
74 | <div class="contents"> | |
75 | {children} | |
76 | </div> | |
77 | </div> | |
78 | </div> | |
79 | ); | |
80 | }; | |
81 | ||
82 | export const Selection = ({ items, toggleSelected }) => ( | |
83 | <Drawer height="8.55rem" > | |
84 | {items.map((item) => ( | |
85 | <Note | |
86 | {...item} | |
87 | ellipsis | |
88 | onSelect={toggleSelected} | |
89 | /> | |
90 | ))} | |
91 | </Drawer> | |
92 | ); |
0 | export default ([ code ]) => { | |
1 | const style = document.createElement('style'); | |
2 | document.head.appendChild(style); | |
3 | style.appendChild(document.createTextNode('')); | |
4 | ||
5 | let i = 0; | |
6 | for (const v of code.split('}')) { | |
7 | if (v.indexOf('{') < 0) continue; | |
8 | style.sheet.insertRule(v + '}', i++); | |
9 | } | |
10 | ||
11 | return style; | |
12 | }; |
0 | import './theme'; | |
1 | import { Discussion } from './Discussion'; | |
2 | import { Selection } from './Selection'; | |
3 | import { Menu } from './Menu'; | |
4 | ||
5 | export { | |
6 | Discussion, | |
7 | Selection, | |
8 | Menu, | |
9 | }; |
0 | import css from './css'; | |
1 | ||
2 | css` | |
3 | html { | |
4 | margin: 0; | |
5 | padding: 0; | |
6 | } | |
7 | ||
8 | body { | |
9 | --theme-backdrop: #1e1e1e; | |
10 | --theme-fg: #eeeeee; | |
11 | --theme-note-bg: #eeeeee; | |
12 | --theme-note-fg: #363636; | |
13 | --theme-note-bg-trans: rgba(238,238,238,0); | |
14 | --theme-note-fg-trans: rgba(54,54,54,0); | |
15 | --theme-header-fg: #121212; | |
16 | ||
17 | --theme-title-fg: #eeeeee; | |
18 | --theme-title-bg: #363636; | |
19 | } | |
20 | ||
21 | body.darktheme { | |
22 | --theme-backdrop: #1e1e1e; | |
23 | --theme-note-bg: #363636; | |
24 | --theme-note-fg: #eeeeee; | |
25 | --theme-note-bg-trans: rgba(54,54,54,0); | |
26 | --theme-note-fg-trans: rgba(238,238,238,0); | |
27 | --theme-header-fg: #121212; | |
28 | } | |
29 | ||
30 | body { | |
31 | color: var(--theme-fg); | |
32 | background: var(--theme-backdrop); | |
33 | font-family: sans-serif; | |
34 | ||
35 | margin: 0; | |
36 | padding: 0; | |
37 | } | |
38 | `; |
0 | /* | |
1 | Viz.js 2.1.2 (Graphviz 2.40.1, Expat {{EXPAT_VERSION}}, Emscripten 1.37.36) | |
2 | Copyright (c) 2014-2018 Michael Daines | |
3 | Licensed under MIT license | |
4 | ||
5 | This distribution contains other software in object code form: | |
6 | ||
7 | Graphviz | |
8 | Licensed under Eclipse Public License - v 1.0 | |
9 | http://www.graphviz.org | |
10 | ||
11 | Expat | |
12 | Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper | |
13 | Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers. | |
14 | Licensed under MIT license | |
15 | http://www.libexpat.org | |
16 | ||
17 | zlib | |
18 | Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler | |
19 | http://www.zlib.net/zlib_license.html | |
20 | */ | |
21 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { | |
22 | return typeof obj; | |
23 | } : function (obj) { | |
24 | return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | |
25 | }; | |
26 | ||
27 | var classCallCheck = function (instance, Constructor) { | |
28 | if (!(instance instanceof Constructor)) { | |
29 | throw new TypeError("Cannot call a class as a function"); | |
30 | } | |
31 | }; | |
32 | ||
33 | var createClass = function () { | |
34 | function defineProperties(target, props) { | |
35 | for (var i = 0; i < props.length; i++) { | |
36 | var descriptor = props[i]; | |
37 | descriptor.enumerable = descriptor.enumerable || false; | |
38 | descriptor.configurable = true; | |
39 | if ("value" in descriptor) descriptor.writable = true; | |
40 | Object.defineProperty(target, descriptor.key, descriptor); | |
41 | } | |
42 | } | |
43 | ||
44 | return function (Constructor, protoProps, staticProps) { | |
45 | if (protoProps) defineProperties(Constructor.prototype, protoProps); | |
46 | if (staticProps) defineProperties(Constructor, staticProps); | |
47 | return Constructor; | |
48 | }; | |
49 | }(); | |
50 | ||
51 | var _extends = Object.assign || function (target) { | |
52 | for (var i = 1; i < arguments.length; i++) { | |
53 | var source = arguments[i]; | |
54 | ||
55 | for (var key in source) { | |
56 | if (Object.prototype.hasOwnProperty.call(source, key)) { | |
57 | target[key] = source[key]; | |
58 | } | |
59 | } | |
60 | } | |
61 | ||
62 | return target; | |
63 | }; | |
64 | ||
65 | var WorkerWrapper = function () { | |
66 | function WorkerWrapper(worker) { | |
67 | var _this = this; | |
68 | ||
69 | classCallCheck(this, WorkerWrapper); | |
70 | ||
71 | this.worker = worker; | |
72 | this.listeners = []; | |
73 | this.nextId = 0; | |
74 | ||
75 | this.worker.addEventListener('message', function (event) { | |
76 | var id = event.data.id; | |
77 | var error = event.data.error; | |
78 | var result = event.data.result; | |
79 | ||
80 | _this.listeners[id](error, result); | |
81 | delete _this.listeners[id]; | |
82 | }); | |
83 | } | |
84 | ||
85 | createClass(WorkerWrapper, [{ | |
86 | key: 'render', | |
87 | value: function render(src, options) { | |
88 | var _this2 = this; | |
89 | ||
90 | return new Promise(function (resolve, reject) { | |
91 | var id = _this2.nextId++; | |
92 | ||
93 | _this2.listeners[id] = function (error, result) { | |
94 | if (error) { | |
95 | reject(new Error(error.message, error.fileName, error.lineNumber)); | |
96 | return; | |
97 | } | |
98 | resolve(result); | |
99 | }; | |
100 | ||
101 | _this2.worker.postMessage({ id: id, src: src, options: options }); | |
102 | }); | |
103 | } | |
104 | }]); | |
105 | return WorkerWrapper; | |
106 | }(); | |
107 | ||
108 | var ModuleWrapper = function ModuleWrapper(module, render) { | |
109 | classCallCheck(this, ModuleWrapper); | |
110 | ||
111 | var instance = module(); | |
112 | this.render = function (src, options) { | |
113 | return new Promise(function (resolve, reject) { | |
114 | try { | |
115 | resolve(render(instance, src, options)); | |
116 | } catch (error) { | |
117 | reject(error); | |
118 | } | |
119 | }); | |
120 | }; | |
121 | }; | |
122 | ||
123 | // https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding | |
124 | ||
125 | var Viz = function () { | |
126 | function Viz() { | |
127 | var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | |
128 | workerURL = _ref3.workerURL, | |
129 | worker = _ref3.worker, | |
130 | Module = _ref3.Module, | |
131 | render = _ref3.render; | |
132 | ||
133 | classCallCheck(this, Viz); | |
134 | ||
135 | if (typeof workerURL !== 'undefined') { | |
136 | this.wrapper = new WorkerWrapper(new Worker(workerURL)); | |
137 | } else if (typeof worker !== 'undefined') { | |
138 | this.wrapper = new WorkerWrapper(worker); | |
139 | } else if (typeof Module !== 'undefined' && typeof render !== 'undefined') { | |
140 | this.wrapper = new ModuleWrapper(Module, render); | |
141 | } else if (typeof Viz.Module !== 'undefined' && typeof Viz.render !== 'undefined') { | |
142 | this.wrapper = new ModuleWrapper(Viz.Module, Viz.render); | |
143 | } else { | |
144 | throw new Error('Must specify workerURL or worker option, Module and render options, or include one of full.render.js or lite.render.js after viz.js.'); | |
145 | } | |
146 | } | |
147 | ||
148 | createClass(Viz, [{ | |
149 | key: 'renderString', | |
150 | value: function renderString(src) { | |
151 | var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | |
152 | _ref4$format = _ref4.format, | |
153 | format = _ref4$format === undefined ? 'svg' : _ref4$format, | |
154 | _ref4$engine = _ref4.engine, | |
155 | engine = _ref4$engine === undefined ? 'dot' : _ref4$engine, | |
156 | _ref4$files = _ref4.files, | |
157 | files = _ref4$files === undefined ? [] : _ref4$files, | |
158 | _ref4$images = _ref4.images, | |
159 | images = _ref4$images === undefined ? [] : _ref4$images, | |
160 | _ref4$yInvert = _ref4.yInvert, | |
161 | yInvert = _ref4$yInvert === undefined ? false : _ref4$yInvert, | |
162 | _ref4$nop = _ref4.nop, | |
163 | nop = _ref4$nop === undefined ? 0 : _ref4$nop; | |
164 | ||
165 | for (var i = 0; i < images.length; i++) { | |
166 | files.push({ | |
167 | path: images[i].path, | |
168 | data: '<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n<svg width="' + images[i].width + '" height="' + images[i].height + '"></svg>' | |
169 | }); | |
170 | } | |
171 | ||
172 | return this.wrapper.render(src, { format: format, engine: engine, files: files, images: images, yInvert: yInvert, nop: nop }); | |
173 | } | |
174 | }, { | |
175 | key: 'renderJSONObject', | |
176 | value: function renderJSONObject(src) { | |
177 | var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | |
178 | var format = options.format; | |
179 | ||
180 | ||
181 | if (format !== 'json' || format !== 'json0') { | |
182 | format = 'json'; | |
183 | } | |
184 | ||
185 | return this.renderString(src, _extends({}, options, { format: format })).then(function (str) { | |
186 | return JSON.parse(str); | |
187 | }); | |
188 | } | |
189 | }]); | |
190 | return Viz; | |
191 | }(); | |
192 | ||
193 | export default Viz; |
0 | const path = require('path'); | |
1 | const webpack = require('webpack'); | |
2 | const HtmlWebpackPlugin = require('html-webpack-plugin'); | |
3 | const CopyWebpackPlugin = require('copy-webpack-plugin'); | |
4 | const package = require('./package.json'); | |
5 | ||
6 | module.exports = { | |
7 | entry: './src/index.js', | |
8 | module: { | |
9 | rules: [ | |
10 | { | |
11 | test: /\.jsx?$/, | |
12 | exclude: /node_modules/, | |
13 | use: { | |
14 | loader: 'babel-loader', | |
15 | options: package.babel, | |
16 | }, | |
17 | }, | |
18 | ], | |
19 | }, | |
20 | mode: 'development', | |
21 | devtool: 'eval-source-map', | |
22 | devServer: { | |
23 | contentBase: './dist', | |
24 | }, | |
25 | plugins: [ | |
26 | new webpack.EnvironmentPlugin({ | |
27 | NODE_ENV: 'production', | |
28 | DEBUG: false, | |
29 | PUBLIC_URL: null, | |
30 | API_PREFIX: null, | |
31 | CORS_PREFIX: null, | |
32 | }), | |
33 | new HtmlWebpackPlugin({ | |
34 | title: 'FediDag' | |
35 | }), | |
36 | new CopyWebpackPlugin({ patterns: [ 'lib/*' ] }), | |
37 | ], | |
38 | output: { | |
39 | filename: '[name].bundle.js', | |
40 | path: path.resolve(__dirname, 'dist'), | |
41 | }, | |
42 | } |
0 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. | |
1 | # yarn lockfile v1 | |
2 | ||
3 | ||
4 | "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.11": | |
5 | version "7.12.11" | |
6 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" | |
7 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== | |
8 | dependencies: | |
9 | "@babel/highlight" "^7.10.4" | |
10 | ||
11 | "@babel/code-frame@^7.12.13": | |
12 | version "7.12.13" | |
13 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" | |
14 | integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== | |
15 | dependencies: | |
16 | "@babel/highlight" "^7.12.13" | |
17 | ||
18 | "@babel/compat-data@^7.12.5", "@babel/compat-data@^7.12.7": | |
19 | version "7.12.7" | |
20 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41" | |
21 | integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw== | |
22 | ||
23 | "@babel/core@^7.11.6": | |
24 | version "7.12.10" | |
25 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd" | |
26 | integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w== | |
27 | dependencies: | |
28 | "@babel/code-frame" "^7.10.4" | |
29 | "@babel/generator" "^7.12.10" | |
30 | "@babel/helper-module-transforms" "^7.12.1" | |
31 | "@babel/helpers" "^7.12.5" | |
32 | "@babel/parser" "^7.12.10" | |
33 | "@babel/template" "^7.12.7" | |
34 | "@babel/traverse" "^7.12.10" | |
35 | "@babel/types" "^7.12.10" | |
36 | convert-source-map "^1.7.0" | |
37 | debug "^4.1.0" | |
38 | gensync "^1.0.0-beta.1" | |
39 | json5 "^2.1.2" | |
40 | lodash "^4.17.19" | |
41 | semver "^5.4.1" | |
42 | source-map "^0.5.0" | |
43 | ||
44 | "@babel/generator@^7.12.10", "@babel/generator@^7.12.11": | |
45 | version "7.12.11" | |
46 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.11.tgz#98a7df7b8c358c9a37ab07a24056853016aba3af" | |
47 | integrity sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA== | |
48 | dependencies: | |
49 | "@babel/types" "^7.12.11" | |
50 | jsesc "^2.5.1" | |
51 | source-map "^0.5.0" | |
52 | ||
53 | "@babel/generator@^7.12.13": | |
54 | version "7.12.15" | |
55 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz#4617b5d0b25cc572474cc1aafee1edeaf9b5368f" | |
56 | integrity sha512-6F2xHxBiFXWNSGb7vyCUTBF8RCLY66rS0zEPcP8t/nQyXjha5EuK4z7H5o7fWG8B4M7y6mqVWq1J+1PuwRhecQ== | |
57 | dependencies: | |
58 | "@babel/types" "^7.12.13" | |
59 | jsesc "^2.5.1" | |
60 | source-map "^0.5.0" | |
61 | ||
62 | "@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.12.10": | |
63 | version "7.12.10" | |
64 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz#54ab9b000e60a93644ce17b3f37d313aaf1d115d" | |
65 | integrity sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ== | |
66 | dependencies: | |
67 | "@babel/types" "^7.12.10" | |
68 | ||
69 | "@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": | |
70 | version "7.10.4" | |
71 | resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" | |
72 | integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== | |
73 | dependencies: | |
74 | "@babel/helper-explode-assignable-expression" "^7.10.4" | |
75 | "@babel/types" "^7.10.4" | |
76 | ||
77 | "@babel/helper-compilation-targets@^7.12.5": | |
78 | version "7.12.5" | |
79 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz#cb470c76198db6a24e9dbc8987275631e5d29831" | |
80 | integrity sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw== | |
81 | dependencies: | |
82 | "@babel/compat-data" "^7.12.5" | |
83 | "@babel/helper-validator-option" "^7.12.1" | |
84 | browserslist "^4.14.5" | |
85 | semver "^5.5.0" | |
86 | ||
87 | "@babel/helper-create-class-features-plugin@^7.12.1": | |
88 | version "7.12.1" | |
89 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz#3c45998f431edd4a9214c5f1d3ad1448a6137f6e" | |
90 | integrity sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w== | |
91 | dependencies: | |
92 | "@babel/helper-function-name" "^7.10.4" | |
93 | "@babel/helper-member-expression-to-functions" "^7.12.1" | |
94 | "@babel/helper-optimise-call-expression" "^7.10.4" | |
95 | "@babel/helper-replace-supers" "^7.12.1" | |
96 | "@babel/helper-split-export-declaration" "^7.10.4" | |
97 | ||
98 | "@babel/helper-create-class-features-plugin@^7.12.13": | |
99 | version "7.12.13" | |
100 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.13.tgz#0f1707c2eec1a4604f2a22a6fb209854ef2a399a" | |
101 | integrity sha512-Vs/e9wv7rakKYeywsmEBSRC9KtmE7Px+YBlESekLeJOF0zbGUicGfXSNi3o+tfXSNS48U/7K9mIOOCR79Cl3+Q== | |
102 | dependencies: | |
103 | "@babel/helper-function-name" "^7.12.13" | |
104 | "@babel/helper-member-expression-to-functions" "^7.12.13" | |
105 | "@babel/helper-optimise-call-expression" "^7.12.13" | |
106 | "@babel/helper-replace-supers" "^7.12.13" | |
107 | "@babel/helper-split-export-declaration" "^7.12.13" | |
108 | ||
109 | "@babel/helper-create-regexp-features-plugin@^7.12.1": | |
110 | version "7.12.7" | |
111 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz#2084172e95443fa0a09214ba1bb328f9aea1278f" | |
112 | integrity sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ== | |
113 | dependencies: | |
114 | "@babel/helper-annotate-as-pure" "^7.10.4" | |
115 | regexpu-core "^4.7.1" | |
116 | ||
117 | "@babel/helper-define-map@^7.10.4": | |
118 | version "7.10.5" | |
119 | resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" | |
120 | integrity sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ== | |
121 | dependencies: | |
122 | "@babel/helper-function-name" "^7.10.4" | |
123 | "@babel/types" "^7.10.5" | |
124 | lodash "^4.17.19" | |
125 | ||
126 | "@babel/helper-explode-assignable-expression@^7.10.4": | |
127 | version "7.12.1" | |
128 | resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz#8006a466695c4ad86a2a5f2fb15b5f2c31ad5633" | |
129 | integrity sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA== | |
130 | dependencies: | |
131 | "@babel/types" "^7.12.1" | |
132 | ||
133 | "@babel/helper-function-name@^7.10.4", "@babel/helper-function-name@^7.12.11": | |
134 | version "7.12.11" | |
135 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz#1fd7738aee5dcf53c3ecff24f1da9c511ec47b42" | |
136 | integrity sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA== | |
137 | dependencies: | |
138 | "@babel/helper-get-function-arity" "^7.12.10" | |
139 | "@babel/template" "^7.12.7" | |
140 | "@babel/types" "^7.12.11" | |
141 | ||
142 | "@babel/helper-function-name@^7.12.13": | |
143 | version "7.12.13" | |
144 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" | |
145 | integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== | |
146 | dependencies: | |
147 | "@babel/helper-get-function-arity" "^7.12.13" | |
148 | "@babel/template" "^7.12.13" | |
149 | "@babel/types" "^7.12.13" | |
150 | ||
151 | "@babel/helper-get-function-arity@^7.12.10": | |
152 | version "7.12.10" | |
153 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz#b158817a3165b5faa2047825dfa61970ddcc16cf" | |
154 | integrity sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag== | |
155 | dependencies: | |
156 | "@babel/types" "^7.12.10" | |
157 | ||
158 | "@babel/helper-get-function-arity@^7.12.13": | |
159 | version "7.12.13" | |
160 | resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" | |
161 | integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== | |
162 | dependencies: | |
163 | "@babel/types" "^7.12.13" | |
164 | ||
165 | "@babel/helper-hoist-variables@^7.10.4": | |
166 | version "7.10.4" | |
167 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" | |
168 | integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== | |
169 | dependencies: | |
170 | "@babel/types" "^7.10.4" | |
171 | ||
172 | "@babel/helper-member-expression-to-functions@^7.12.1", "@babel/helper-member-expression-to-functions@^7.12.7": | |
173 | version "7.12.7" | |
174 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz#aa77bd0396ec8114e5e30787efa78599d874a855" | |
175 | integrity sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw== | |
176 | dependencies: | |
177 | "@babel/types" "^7.12.7" | |
178 | ||
179 | "@babel/helper-member-expression-to-functions@^7.12.13": | |
180 | version "7.12.13" | |
181 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz#c5715695b4f8bab32660dbdcdc2341dec7e3df40" | |
182 | integrity sha512-B+7nN0gIL8FZ8SvMcF+EPyB21KnCcZHQZFczCxbiNGV/O0rsrSBlWGLzmtBJ3GMjSVMIm4lpFhR+VdVBuIsUcQ== | |
183 | dependencies: | |
184 | "@babel/types" "^7.12.13" | |
185 | ||
186 | "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5": | |
187 | version "7.12.5" | |
188 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb" | |
189 | integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA== | |
190 | dependencies: | |
191 | "@babel/types" "^7.12.5" | |
192 | ||
193 | "@babel/helper-module-transforms@^7.12.1": | |
194 | version "7.12.1" | |
195 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz#7954fec71f5b32c48e4b303b437c34453fd7247c" | |
196 | integrity sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w== | |
197 | dependencies: | |
198 | "@babel/helper-module-imports" "^7.12.1" | |
199 | "@babel/helper-replace-supers" "^7.12.1" | |
200 | "@babel/helper-simple-access" "^7.12.1" | |
201 | "@babel/helper-split-export-declaration" "^7.11.0" | |
202 | "@babel/helper-validator-identifier" "^7.10.4" | |
203 | "@babel/template" "^7.10.4" | |
204 | "@babel/traverse" "^7.12.1" | |
205 | "@babel/types" "^7.12.1" | |
206 | lodash "^4.17.19" | |
207 | ||
208 | "@babel/helper-optimise-call-expression@^7.10.4", "@babel/helper-optimise-call-expression@^7.12.10": | |
209 | version "7.12.10" | |
210 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz#94ca4e306ee11a7dd6e9f42823e2ac6b49881e2d" | |
211 | integrity sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ== | |
212 | dependencies: | |
213 | "@babel/types" "^7.12.10" | |
214 | ||
215 | "@babel/helper-optimise-call-expression@^7.12.13": | |
216 | version "7.12.13" | |
217 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" | |
218 | integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== | |
219 | dependencies: | |
220 | "@babel/types" "^7.12.13" | |
221 | ||
222 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": | |
223 | version "7.10.4" | |
224 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" | |
225 | integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== | |
226 | ||
227 | "@babel/helper-plugin-utils@^7.12.13": | |
228 | version "7.12.13" | |
229 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz#174254d0f2424d8aefb4dd48057511247b0a9eeb" | |
230 | integrity sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA== | |
231 | ||
232 | "@babel/helper-remap-async-to-generator@^7.12.1": | |
233 | version "7.12.1" | |
234 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz#8c4dbbf916314f6047dc05e6a2217074238347fd" | |
235 | integrity sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A== | |
236 | dependencies: | |
237 | "@babel/helper-annotate-as-pure" "^7.10.4" | |
238 | "@babel/helper-wrap-function" "^7.10.4" | |
239 | "@babel/types" "^7.12.1" | |
240 | ||
241 | "@babel/helper-replace-supers@^7.12.1": | |
242 | version "7.12.11" | |
243 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz#ea511658fc66c7908f923106dd88e08d1997d60d" | |
244 | integrity sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA== | |
245 | dependencies: | |
246 | "@babel/helper-member-expression-to-functions" "^7.12.7" | |
247 | "@babel/helper-optimise-call-expression" "^7.12.10" | |
248 | "@babel/traverse" "^7.12.10" | |
249 | "@babel/types" "^7.12.11" | |
250 | ||
251 | "@babel/helper-replace-supers@^7.12.13": | |
252 | version "7.12.13" | |
253 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz#00ec4fb6862546bd3d0aff9aac56074277173121" | |
254 | integrity sha512-pctAOIAMVStI2TMLhozPKbf5yTEXc0OJa0eENheb4w09SrgOWEs+P4nTOZYJQCqs8JlErGLDPDJTiGIp3ygbLg== | |
255 | dependencies: | |
256 | "@babel/helper-member-expression-to-functions" "^7.12.13" | |
257 | "@babel/helper-optimise-call-expression" "^7.12.13" | |
258 | "@babel/traverse" "^7.12.13" | |
259 | "@babel/types" "^7.12.13" | |
260 | ||
261 | "@babel/helper-simple-access@^7.12.1": | |
262 | version "7.12.1" | |
263 | resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz#32427e5aa61547d38eb1e6eaf5fd1426fdad9136" | |
264 | integrity sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA== | |
265 | dependencies: | |
266 | "@babel/types" "^7.12.1" | |
267 | ||
268 | "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": | |
269 | version "7.12.1" | |
270 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" | |
271 | integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== | |
272 | dependencies: | |
273 | "@babel/types" "^7.12.1" | |
274 | ||
275 | "@babel/helper-split-export-declaration@^7.10.4", "@babel/helper-split-export-declaration@^7.11.0", "@babel/helper-split-export-declaration@^7.12.11": | |
276 | version "7.12.11" | |
277 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz#1b4cc424458643c47d37022223da33d76ea4603a" | |
278 | integrity sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g== | |
279 | dependencies: | |
280 | "@babel/types" "^7.12.11" | |
281 | ||
282 | "@babel/helper-split-export-declaration@^7.12.13": | |
283 | version "7.12.13" | |
284 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" | |
285 | integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== | |
286 | dependencies: | |
287 | "@babel/types" "^7.12.13" | |
288 | ||
289 | "@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.12.11": | |
290 | version "7.12.11" | |
291 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" | |
292 | integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== | |
293 | ||
294 | "@babel/helper-validator-option@^7.12.1", "@babel/helper-validator-option@^7.12.11": | |
295 | version "7.12.11" | |
296 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f" | |
297 | integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw== | |
298 | ||
299 | "@babel/helper-wrap-function@^7.10.4": | |
300 | version "7.12.3" | |
301 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9" | |
302 | integrity sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow== | |
303 | dependencies: | |
304 | "@babel/helper-function-name" "^7.10.4" | |
305 | "@babel/template" "^7.10.4" | |
306 | "@babel/traverse" "^7.10.4" | |
307 | "@babel/types" "^7.10.4" | |
308 | ||
309 | "@babel/helpers@^7.12.5": | |
310 | version "7.12.5" | |
311 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.5.tgz#1a1ba4a768d9b58310eda516c449913fe647116e" | |
312 | integrity sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA== | |
313 | dependencies: | |
314 | "@babel/template" "^7.10.4" | |
315 | "@babel/traverse" "^7.12.5" | |
316 | "@babel/types" "^7.12.5" | |
317 | ||
318 | "@babel/highlight@^7.10.4": | |
319 | version "7.10.4" | |
320 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" | |
321 | integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== | |
322 | dependencies: | |
323 | "@babel/helper-validator-identifier" "^7.10.4" | |
324 | chalk "^2.0.0" | |
325 | js-tokens "^4.0.0" | |
326 | ||
327 | "@babel/highlight@^7.12.13": | |
328 | version "7.12.13" | |
329 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" | |
330 | integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== | |
331 | dependencies: | |
332 | "@babel/helper-validator-identifier" "^7.12.11" | |
333 | chalk "^2.0.0" | |
334 | js-tokens "^4.0.0" | |
335 | ||
336 | "@babel/parser@^7.12.10", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7": | |
337 | version "7.12.11" | |
338 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.11.tgz#9ce3595bcd74bc5c466905e86c535b8b25011e79" | |
339 | integrity sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg== | |
340 | ||
341 | "@babel/parser@^7.12.13": | |
342 | version "7.12.15" | |
343 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz#2b20de7f0b4b332d9b119dd9c33409c538b8aacf" | |
344 | integrity sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA== | |
345 | ||
346 | "@babel/plugin-proposal-async-generator-functions@^7.12.1": | |
347 | version "7.12.12" | |
348 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz#04b8f24fd4532008ab4e79f788468fd5a8476566" | |
349 | integrity sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A== | |
350 | dependencies: | |
351 | "@babel/helper-plugin-utils" "^7.10.4" | |
352 | "@babel/helper-remap-async-to-generator" "^7.12.1" | |
353 | "@babel/plugin-syntax-async-generators" "^7.8.0" | |
354 | ||
355 | "@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.12.1": | |
356 | version "7.12.1" | |
357 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz#a082ff541f2a29a4821065b8add9346c0c16e5de" | |
358 | integrity sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w== | |
359 | dependencies: | |
360 | "@babel/helper-create-class-features-plugin" "^7.12.1" | |
361 | "@babel/helper-plugin-utils" "^7.10.4" | |
362 | ||
363 | "@babel/plugin-proposal-decorators@^7.12.13": | |
364 | version "7.12.13" | |
365 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.13.tgz#d4c89b40c2b7a526b0d394de4f4def36191e413e" | |
366 | integrity sha512-x2aOr5w4ARJoYHFKoG2iEUL/Xe99JAJXjAasHijXp3/KgaetJXGE62SmHgsW3Tia/XUT5AxF2YC0F+JyhPY/0Q== | |
367 | dependencies: | |
368 | "@babel/helper-create-class-features-plugin" "^7.12.13" | |
369 | "@babel/helper-plugin-utils" "^7.12.13" | |
370 | "@babel/plugin-syntax-decorators" "^7.12.13" | |
371 | ||
372 | "@babel/plugin-proposal-dynamic-import@^7.12.1": | |
373 | version "7.12.1" | |
374 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz#43eb5c2a3487ecd98c5c8ea8b5fdb69a2749b2dc" | |
375 | integrity sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ== | |
376 | dependencies: | |
377 | "@babel/helper-plugin-utils" "^7.10.4" | |
378 | "@babel/plugin-syntax-dynamic-import" "^7.8.0" | |
379 | ||
380 | "@babel/plugin-proposal-export-namespace-from@^7.12.1": | |
381 | version "7.12.1" | |
382 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz#8b9b8f376b2d88f5dd774e4d24a5cc2e3679b6d4" | |
383 | integrity sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw== | |
384 | dependencies: | |
385 | "@babel/helper-plugin-utils" "^7.10.4" | |
386 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" | |
387 | ||
388 | "@babel/plugin-proposal-json-strings@^7.12.1": | |
389 | version "7.12.1" | |
390 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz#d45423b517714eedd5621a9dfdc03fa9f4eb241c" | |
391 | integrity sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw== | |
392 | dependencies: | |
393 | "@babel/helper-plugin-utils" "^7.10.4" | |
394 | "@babel/plugin-syntax-json-strings" "^7.8.0" | |
395 | ||
396 | "@babel/plugin-proposal-logical-assignment-operators@^7.12.1": | |
397 | version "7.12.1" | |
398 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz#f2c490d36e1b3c9659241034a5d2cd50263a2751" | |
399 | integrity sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA== | |
400 | dependencies: | |
401 | "@babel/helper-plugin-utils" "^7.10.4" | |
402 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" | |
403 | ||
404 | "@babel/plugin-proposal-nullish-coalescing-operator@^7.12.1": | |
405 | version "7.12.1" | |
406 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz#3ed4fff31c015e7f3f1467f190dbe545cd7b046c" | |
407 | integrity sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg== | |
408 | dependencies: | |
409 | "@babel/helper-plugin-utils" "^7.10.4" | |
410 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" | |
411 | ||
412 | "@babel/plugin-proposal-numeric-separator@^7.12.7": | |
413 | version "7.12.7" | |
414 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz#8bf253de8139099fea193b297d23a9d406ef056b" | |
415 | integrity sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ== | |
416 | dependencies: | |
417 | "@babel/helper-plugin-utils" "^7.10.4" | |
418 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" | |
419 | ||
420 | "@babel/plugin-proposal-object-rest-spread@^7.12.1": | |
421 | version "7.12.1" | |
422 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz#def9bd03cea0f9b72283dac0ec22d289c7691069" | |
423 | integrity sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA== | |
424 | dependencies: | |
425 | "@babel/helper-plugin-utils" "^7.10.4" | |
426 | "@babel/plugin-syntax-object-rest-spread" "^7.8.0" | |
427 | "@babel/plugin-transform-parameters" "^7.12.1" | |
428 | ||
429 | "@babel/plugin-proposal-optional-catch-binding@^7.12.1": | |
430 | version "7.12.1" | |
431 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz#ccc2421af64d3aae50b558a71cede929a5ab2942" | |
432 | integrity sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g== | |
433 | dependencies: | |
434 | "@babel/helper-plugin-utils" "^7.10.4" | |
435 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" | |
436 | ||
437 | "@babel/plugin-proposal-optional-chaining@^7.12.7": | |
438 | version "7.12.7" | |
439 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz#e02f0ea1b5dc59d401ec16fb824679f683d3303c" | |
440 | integrity sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA== | |
441 | dependencies: | |
442 | "@babel/helper-plugin-utils" "^7.10.4" | |
443 | "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" | |
444 | "@babel/plugin-syntax-optional-chaining" "^7.8.0" | |
445 | ||
446 | "@babel/plugin-proposal-private-methods@^7.12.1": | |
447 | version "7.12.1" | |
448 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz#86814f6e7a21374c980c10d38b4493e703f4a389" | |
449 | integrity sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w== | |
450 | dependencies: | |
451 | "@babel/helper-create-class-features-plugin" "^7.12.1" | |
452 | "@babel/helper-plugin-utils" "^7.10.4" | |
453 | ||
454 | "@babel/plugin-proposal-unicode-property-regex@^7.12.1", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": | |
455 | version "7.12.1" | |
456 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz#2a183958d417765b9eae334f47758e5d6a82e072" | |
457 | integrity sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w== | |
458 | dependencies: | |
459 | "@babel/helper-create-regexp-features-plugin" "^7.12.1" | |
460 | "@babel/helper-plugin-utils" "^7.10.4" | |
461 | ||
462 | "@babel/plugin-syntax-async-generators@^7.8.0": | |
463 | version "7.8.4" | |
464 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" | |
465 | integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== | |
466 | dependencies: | |
467 | "@babel/helper-plugin-utils" "^7.8.0" | |
468 | ||
469 | "@babel/plugin-syntax-class-properties@^7.12.1": | |
470 | version "7.12.1" | |
471 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz#bcb297c5366e79bebadef509549cd93b04f19978" | |
472 | integrity sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA== | |
473 | dependencies: | |
474 | "@babel/helper-plugin-utils" "^7.10.4" | |
475 | ||
476 | "@babel/plugin-syntax-decorators@^7.12.13": | |
477 | version "7.12.13" | |
478 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz#fac829bf3c7ef4a1bc916257b403e58c6bdaf648" | |
479 | integrity sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA== | |
480 | dependencies: | |
481 | "@babel/helper-plugin-utils" "^7.12.13" | |
482 | ||
483 | "@babel/plugin-syntax-dynamic-import@^7.8.0": | |
484 | version "7.8.3" | |
485 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" | |
486 | integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== | |
487 | dependencies: | |
488 | "@babel/helper-plugin-utils" "^7.8.0" | |
489 | ||
490 | "@babel/plugin-syntax-export-namespace-from@^7.8.3": | |
491 | version "7.8.3" | |
492 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" | |
493 | integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== | |
494 | dependencies: | |
495 | "@babel/helper-plugin-utils" "^7.8.3" | |
496 | ||
497 | "@babel/plugin-syntax-json-strings@^7.8.0": | |
498 | version "7.8.3" | |
499 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" | |
500 | integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== | |
501 | dependencies: | |
502 | "@babel/helper-plugin-utils" "^7.8.0" | |
503 | ||
504 | "@babel/plugin-syntax-jsx@^7.12.1": | |
505 | version "7.12.1" | |
506 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz#9d9d357cc818aa7ae7935917c1257f67677a0926" | |
507 | integrity sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg== | |
508 | dependencies: | |
509 | "@babel/helper-plugin-utils" "^7.10.4" | |
510 | ||
511 | "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": | |
512 | version "7.10.4" | |
513 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" | |
514 | integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== | |
515 | dependencies: | |
516 | "@babel/helper-plugin-utils" "^7.10.4" | |
517 | ||
518 | "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": | |
519 | version "7.8.3" | |
520 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" | |
521 | integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== | |
522 | dependencies: | |
523 | "@babel/helper-plugin-utils" "^7.8.0" | |
524 | ||
525 | "@babel/plugin-syntax-numeric-separator@^7.10.4": | |
526 | version "7.10.4" | |
527 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" | |
528 | integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== | |
529 | dependencies: | |
530 | "@babel/helper-plugin-utils" "^7.10.4" | |
531 | ||
532 | "@babel/plugin-syntax-object-rest-spread@^7.8.0": | |
533 | version "7.8.3" | |
534 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" | |
535 | integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== | |
536 | dependencies: | |
537 | "@babel/helper-plugin-utils" "^7.8.0" | |
538 | ||
539 | "@babel/plugin-syntax-optional-catch-binding@^7.8.0": | |
540 | version "7.8.3" | |
541 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" | |
542 | integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== | |
543 | dependencies: | |
544 | "@babel/helper-plugin-utils" "^7.8.0" | |
545 | ||
546 | "@babel/plugin-syntax-optional-chaining@^7.8.0": | |
547 | version "7.8.3" | |
548 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" | |
549 | integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== | |
550 | dependencies: | |
551 | "@babel/helper-plugin-utils" "^7.8.0" | |
552 | ||
553 | "@babel/plugin-syntax-top-level-await@^7.12.1": | |
554 | version "7.12.1" | |
555 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz#dd6c0b357ac1bb142d98537450a319625d13d2a0" | |
556 | integrity sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A== | |
557 | dependencies: | |
558 | "@babel/helper-plugin-utils" "^7.10.4" | |
559 | ||
560 | "@babel/plugin-transform-arrow-functions@^7.12.1": | |
561 | version "7.12.1" | |
562 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz#8083ffc86ac8e777fbe24b5967c4b2521f3cb2b3" | |
563 | integrity sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A== | |
564 | dependencies: | |
565 | "@babel/helper-plugin-utils" "^7.10.4" | |
566 | ||
567 | "@babel/plugin-transform-async-to-generator@^7.12.1": | |
568 | version "7.12.1" | |
569 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz#3849a49cc2a22e9743cbd6b52926d30337229af1" | |
570 | integrity sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A== | |
571 | dependencies: | |
572 | "@babel/helper-module-imports" "^7.12.1" | |
573 | "@babel/helper-plugin-utils" "^7.10.4" | |
574 | "@babel/helper-remap-async-to-generator" "^7.12.1" | |
575 | ||
576 | "@babel/plugin-transform-block-scoped-functions@^7.12.1": | |
577 | version "7.12.1" | |
578 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz#f2a1a365bde2b7112e0a6ded9067fdd7c07905d9" | |
579 | integrity sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA== | |
580 | dependencies: | |
581 | "@babel/helper-plugin-utils" "^7.10.4" | |
582 | ||
583 | "@babel/plugin-transform-block-scoping@^7.12.11": | |
584 | version "7.12.12" | |
585 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca" | |
586 | integrity sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ== | |
587 | dependencies: | |
588 | "@babel/helper-plugin-utils" "^7.10.4" | |
589 | ||
590 | "@babel/plugin-transform-classes@^7.12.1": | |
591 | version "7.12.1" | |
592 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz#65e650fcaddd3d88ddce67c0f834a3d436a32db6" | |
593 | integrity sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog== | |
594 | dependencies: | |
595 | "@babel/helper-annotate-as-pure" "^7.10.4" | |
596 | "@babel/helper-define-map" "^7.10.4" | |
597 | "@babel/helper-function-name" "^7.10.4" | |
598 | "@babel/helper-optimise-call-expression" "^7.10.4" | |
599 | "@babel/helper-plugin-utils" "^7.10.4" | |
600 | "@babel/helper-replace-supers" "^7.12.1" | |
601 | "@babel/helper-split-export-declaration" "^7.10.4" | |
602 | globals "^11.1.0" | |
603 | ||
604 | "@babel/plugin-transform-computed-properties@^7.12.1": | |
605 | version "7.12.1" | |
606 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz#d68cf6c9b7f838a8a4144badbe97541ea0904852" | |
607 | integrity sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg== | |
608 | dependencies: | |
609 | "@babel/helper-plugin-utils" "^7.10.4" | |
610 | ||
611 | "@babel/plugin-transform-destructuring@^7.12.1": | |
612 | version "7.12.1" | |
613 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz#b9a570fe0d0a8d460116413cb4f97e8e08b2f847" | |
614 | integrity sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw== | |
615 | dependencies: | |
616 | "@babel/helper-plugin-utils" "^7.10.4" | |
617 | ||
618 | "@babel/plugin-transform-dotall-regex@^7.12.1", "@babel/plugin-transform-dotall-regex@^7.4.4": | |
619 | version "7.12.1" | |
620 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz#a1d16c14862817b6409c0a678d6f9373ca9cd975" | |
621 | integrity sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA== | |
622 | dependencies: | |
623 | "@babel/helper-create-regexp-features-plugin" "^7.12.1" | |
624 | "@babel/helper-plugin-utils" "^7.10.4" | |
625 | ||
626 | "@babel/plugin-transform-duplicate-keys@^7.12.1": | |
627 | version "7.12.1" | |
628 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz#745661baba295ac06e686822797a69fbaa2ca228" | |
629 | integrity sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw== | |
630 | dependencies: | |
631 | "@babel/helper-plugin-utils" "^7.10.4" | |
632 | ||
633 | "@babel/plugin-transform-exponentiation-operator@^7.12.1": | |
634 | version "7.12.1" | |
635 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz#b0f2ed356ba1be1428ecaf128ff8a24f02830ae0" | |
636 | integrity sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug== | |
637 | dependencies: | |
638 | "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" | |
639 | "@babel/helper-plugin-utils" "^7.10.4" | |
640 | ||
641 | "@babel/plugin-transform-for-of@^7.12.1": | |
642 | version "7.12.1" | |
643 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz#07640f28867ed16f9511c99c888291f560921cfa" | |
644 | integrity sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg== | |
645 | dependencies: | |
646 | "@babel/helper-plugin-utils" "^7.10.4" | |
647 | ||
648 | "@babel/plugin-transform-function-name@^7.12.1": | |
649 | version "7.12.1" | |
650 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz#2ec76258c70fe08c6d7da154003a480620eba667" | |
651 | integrity sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw== | |
652 | dependencies: | |
653 | "@babel/helper-function-name" "^7.10.4" | |
654 | "@babel/helper-plugin-utils" "^7.10.4" | |
655 | ||
656 | "@babel/plugin-transform-literals@^7.12.1": | |
657 | version "7.12.1" | |
658 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz#d73b803a26b37017ddf9d3bb8f4dc58bfb806f57" | |
659 | integrity sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ== | |
660 | dependencies: | |
661 | "@babel/helper-plugin-utils" "^7.10.4" | |
662 | ||
663 | "@babel/plugin-transform-member-expression-literals@^7.12.1": | |
664 | version "7.12.1" | |
665 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz#496038602daf1514a64d43d8e17cbb2755e0c3ad" | |
666 | integrity sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg== | |
667 | dependencies: | |
668 | "@babel/helper-plugin-utils" "^7.10.4" | |
669 | ||
670 | "@babel/plugin-transform-modules-amd@^7.12.1": | |
671 | version "7.12.1" | |
672 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz#3154300b026185666eebb0c0ed7f8415fefcf6f9" | |
673 | integrity sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ== | |
674 | dependencies: | |
675 | "@babel/helper-module-transforms" "^7.12.1" | |
676 | "@babel/helper-plugin-utils" "^7.10.4" | |
677 | babel-plugin-dynamic-import-node "^2.3.3" | |
678 | ||
679 | "@babel/plugin-transform-modules-commonjs@^7.12.1": | |
680 | version "7.12.1" | |
681 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz#fa403124542636c786cf9b460a0ffbb48a86e648" | |
682 | integrity sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag== | |
683 | dependencies: | |
684 | "@babel/helper-module-transforms" "^7.12.1" | |
685 | "@babel/helper-plugin-utils" "^7.10.4" | |
686 | "@babel/helper-simple-access" "^7.12.1" | |
687 | babel-plugin-dynamic-import-node "^2.3.3" | |
688 | ||
689 | "@babel/plugin-transform-modules-systemjs@^7.12.1": | |
690 | version "7.12.1" | |
691 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz#663fea620d593c93f214a464cd399bf6dc683086" | |
692 | integrity sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q== | |
693 | dependencies: | |
694 | "@babel/helper-hoist-variables" "^7.10.4" | |
695 | "@babel/helper-module-transforms" "^7.12.1" | |
696 | "@babel/helper-plugin-utils" "^7.10.4" | |
697 | "@babel/helper-validator-identifier" "^7.10.4" | |
698 | babel-plugin-dynamic-import-node "^2.3.3" | |
699 | ||
700 | "@babel/plugin-transform-modules-umd@^7.12.1": | |
701 | version "7.12.1" | |
702 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz#eb5a218d6b1c68f3d6217b8fa2cc82fec6547902" | |
703 | integrity sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q== | |
704 | dependencies: | |
705 | "@babel/helper-module-transforms" "^7.12.1" | |
706 | "@babel/helper-plugin-utils" "^7.10.4" | |
707 | ||
708 | "@babel/plugin-transform-named-capturing-groups-regex@^7.12.1": | |
709 | version "7.12.1" | |
710 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz#b407f5c96be0d9f5f88467497fa82b30ac3e8753" | |
711 | integrity sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q== | |
712 | dependencies: | |
713 | "@babel/helper-create-regexp-features-plugin" "^7.12.1" | |
714 | ||
715 | "@babel/plugin-transform-new-target@^7.12.1": | |
716 | version "7.12.1" | |
717 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz#80073f02ee1bb2d365c3416490e085c95759dec0" | |
718 | integrity sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw== | |
719 | dependencies: | |
720 | "@babel/helper-plugin-utils" "^7.10.4" | |
721 | ||
722 | "@babel/plugin-transform-object-super@^7.12.1": | |
723 | version "7.12.1" | |
724 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz#4ea08696b8d2e65841d0c7706482b048bed1066e" | |
725 | integrity sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw== | |
726 | dependencies: | |
727 | "@babel/helper-plugin-utils" "^7.10.4" | |
728 | "@babel/helper-replace-supers" "^7.12.1" | |
729 | ||
730 | "@babel/plugin-transform-parameters@^7.12.1": | |
731 | version "7.12.1" | |
732 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz#d2e963b038771650c922eff593799c96d853255d" | |
733 | integrity sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg== | |
734 | dependencies: | |
735 | "@babel/helper-plugin-utils" "^7.10.4" | |
736 | ||
737 | "@babel/plugin-transform-property-literals@^7.12.1": | |
738 | version "7.12.1" | |
739 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz#41bc81200d730abb4456ab8b3fbd5537b59adecd" | |
740 | integrity sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ== | |
741 | dependencies: | |
742 | "@babel/helper-plugin-utils" "^7.10.4" | |
743 | ||
744 | "@babel/plugin-transform-react-jsx@^7.12.12": | |
745 | version "7.12.12" | |
746 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz#b0da51ffe5f34b9a900e9f1f5fb814f9e512d25e" | |
747 | integrity sha512-JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw== | |
748 | dependencies: | |
749 | "@babel/helper-annotate-as-pure" "^7.12.10" | |
750 | "@babel/helper-module-imports" "^7.12.5" | |
751 | "@babel/helper-plugin-utils" "^7.10.4" | |
752 | "@babel/plugin-syntax-jsx" "^7.12.1" | |
753 | "@babel/types" "^7.12.12" | |
754 | ||
755 | "@babel/plugin-transform-regenerator@^7.12.1": | |
756 | version "7.12.1" | |
757 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz#5f0a28d842f6462281f06a964e88ba8d7ab49753" | |
758 | integrity sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng== | |
759 | dependencies: | |
760 | regenerator-transform "^0.14.2" | |
761 | ||
762 | "@babel/plugin-transform-reserved-words@^7.12.1": | |
763 | version "7.12.1" | |
764 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz#6fdfc8cc7edcc42b36a7c12188c6787c873adcd8" | |
765 | integrity sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A== | |
766 | dependencies: | |
767 | "@babel/helper-plugin-utils" "^7.10.4" | |
768 | ||
769 | "@babel/plugin-transform-shorthand-properties@^7.12.1": | |
770 | version "7.12.1" | |
771 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz#0bf9cac5550fce0cfdf043420f661d645fdc75e3" | |
772 | integrity sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw== | |
773 | dependencies: | |
774 | "@babel/helper-plugin-utils" "^7.10.4" | |
775 | ||
776 | "@babel/plugin-transform-spread@^7.12.1": | |
777 | version "7.12.1" | |
778 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz#527f9f311be4ec7fdc2b79bb89f7bf884b3e1e1e" | |
779 | integrity sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng== | |
780 | dependencies: | |
781 | "@babel/helper-plugin-utils" "^7.10.4" | |
782 | "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" | |
783 | ||
784 | "@babel/plugin-transform-sticky-regex@^7.12.7": | |
785 | version "7.12.7" | |
786 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz#560224613ab23987453948ed21d0b0b193fa7fad" | |
787 | integrity sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg== | |
788 | dependencies: | |
789 | "@babel/helper-plugin-utils" "^7.10.4" | |
790 | ||
791 | "@babel/plugin-transform-template-literals@^7.12.1": | |
792 | version "7.12.1" | |
793 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz#b43ece6ed9a79c0c71119f576d299ef09d942843" | |
794 | integrity sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw== | |
795 | dependencies: | |
796 | "@babel/helper-plugin-utils" "^7.10.4" | |
797 | ||
798 | "@babel/plugin-transform-typeof-symbol@^7.12.10": | |
799 | version "7.12.10" | |
800 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz#de01c4c8f96580bd00f183072b0d0ecdcf0dec4b" | |
801 | integrity sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA== | |
802 | dependencies: | |
803 | "@babel/helper-plugin-utils" "^7.10.4" | |
804 | ||
805 | "@babel/plugin-transform-unicode-escapes@^7.12.1": | |
806 | version "7.12.1" | |
807 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz#5232b9f81ccb07070b7c3c36c67a1b78f1845709" | |
808 | integrity sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q== | |
809 | dependencies: | |
810 | "@babel/helper-plugin-utils" "^7.10.4" | |
811 | ||
812 | "@babel/plugin-transform-unicode-regex@^7.12.1": | |
813 | version "7.12.1" | |
814 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz#cc9661f61390db5c65e3febaccefd5c6ac3faecb" | |
815 | integrity sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg== | |
816 | dependencies: | |
817 | "@babel/helper-create-regexp-features-plugin" "^7.12.1" | |
818 | "@babel/helper-plugin-utils" "^7.10.4" | |
819 | ||
820 | "@babel/preset-env@^7.11.5": | |
821 | version "7.12.11" | |
822 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.12.11.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9" | |
823 | integrity sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw== | |
824 | dependencies: | |
825 | "@babel/compat-data" "^7.12.7" | |
826 | "@babel/helper-compilation-targets" "^7.12.5" | |
827 | "@babel/helper-module-imports" "^7.12.5" | |
828 | "@babel/helper-plugin-utils" "^7.10.4" | |
829 | "@babel/helper-validator-option" "^7.12.11" | |
830 | "@babel/plugin-proposal-async-generator-functions" "^7.12.1" | |
831 | "@babel/plugin-proposal-class-properties" "^7.12.1" | |
832 | "@babel/plugin-proposal-dynamic-import" "^7.12.1" | |
833 | "@babel/plugin-proposal-export-namespace-from" "^7.12.1" | |
834 | "@babel/plugin-proposal-json-strings" "^7.12.1" | |
835 | "@babel/plugin-proposal-logical-assignment-operators" "^7.12.1" | |
836 | "@babel/plugin-proposal-nullish-coalescing-operator" "^7.12.1" | |
837 | "@babel/plugin-proposal-numeric-separator" "^7.12.7" | |
838 | "@babel/plugin-proposal-object-rest-spread" "^7.12.1" | |
839 | "@babel/plugin-proposal-optional-catch-binding" "^7.12.1" | |
840 | "@babel/plugin-proposal-optional-chaining" "^7.12.7" | |
841 | "@babel/plugin-proposal-private-methods" "^7.12.1" | |
842 | "@babel/plugin-proposal-unicode-property-regex" "^7.12.1" | |
843 | "@babel/plugin-syntax-async-generators" "^7.8.0" | |
844 | "@babel/plugin-syntax-class-properties" "^7.12.1" | |
845 | "@babel/plugin-syntax-dynamic-import" "^7.8.0" | |
846 | "@babel/plugin-syntax-export-namespace-from" "^7.8.3" | |
847 | "@babel/plugin-syntax-json-strings" "^7.8.0" | |
848 | "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" | |
849 | "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" | |
850 | "@babel/plugin-syntax-numeric-separator" "^7.10.4" | |
851 | "@babel/plugin-syntax-object-rest-spread" "^7.8.0" | |
852 | "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" | |
853 | "@babel/plugin-syntax-optional-chaining" "^7.8.0" | |
854 | "@babel/plugin-syntax-top-level-await" "^7.12.1" | |
855 | "@babel/plugin-transform-arrow-functions" "^7.12.1" | |
856 | "@babel/plugin-transform-async-to-generator" "^7.12.1" | |
857 | "@babel/plugin-transform-block-scoped-functions" "^7.12.1" | |
858 | "@babel/plugin-transform-block-scoping" "^7.12.11" | |
859 | "@babel/plugin-transform-classes" "^7.12.1" | |
860 | "@babel/plugin-transform-computed-properties" "^7.12.1" | |
861 | "@babel/plugin-transform-destructuring" "^7.12.1" | |
862 | "@babel/plugin-transform-dotall-regex" "^7.12.1" | |
863 | "@babel/plugin-transform-duplicate-keys" "^7.12.1" | |
864 | "@babel/plugin-transform-exponentiation-operator" "^7.12.1" | |
865 | "@babel/plugin-transform-for-of" "^7.12.1" | |
866 | "@babel/plugin-transform-function-name" "^7.12.1" | |
867 | "@babel/plugin-transform-literals" "^7.12.1" | |
868 | "@babel/plugin-transform-member-expression-literals" "^7.12.1" | |
869 | "@babel/plugin-transform-modules-amd" "^7.12.1" | |
870 | "@babel/plugin-transform-modules-commonjs" "^7.12.1" | |
871 | "@babel/plugin-transform-modules-systemjs" "^7.12.1" | |
872 | "@babel/plugin-transform-modules-umd" "^7.12.1" | |
873 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.1" | |
874 | "@babel/plugin-transform-new-target" "^7.12.1" | |
875 | "@babel/plugin-transform-object-super" "^7.12.1" | |
876 | "@babel/plugin-transform-parameters" "^7.12.1" | |
877 | "@babel/plugin-transform-property-literals" "^7.12.1" | |
878 | "@babel/plugin-transform-regenerator" "^7.12.1" | |
879 | "@babel/plugin-transform-reserved-words" "^7.12.1" | |
880 | "@babel/plugin-transform-shorthand-properties" "^7.12.1" | |
881 | "@babel/plugin-transform-spread" "^7.12.1" | |
882 | "@babel/plugin-transform-sticky-regex" "^7.12.7" | |
883 | "@babel/plugin-transform-template-literals" "^7.12.1" | |
884 | "@babel/plugin-transform-typeof-symbol" "^7.12.10" | |
885 | "@babel/plugin-transform-unicode-escapes" "^7.12.1" | |
886 | "@babel/plugin-transform-unicode-regex" "^7.12.1" | |
887 | "@babel/preset-modules" "^0.1.3" | |
888 | "@babel/types" "^7.12.11" | |
889 | core-js-compat "^3.8.0" | |
890 | semver "^5.5.0" | |
891 | ||
892 | "@babel/preset-modules@^0.1.3": | |
893 | version "0.1.4" | |
894 | resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" | |
895 | integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== | |
896 | dependencies: | |
897 | "@babel/helper-plugin-utils" "^7.0.0" | |
898 | "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" | |
899 | "@babel/plugin-transform-dotall-regex" "^7.4.4" | |
900 | "@babel/types" "^7.4.4" | |
901 | esutils "^2.0.2" | |
902 | ||
903 | "@babel/runtime@^7.8.4": | |
904 | version "7.12.5" | |
905 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.12.5.tgz#410e7e487441e1b360c29be715d870d9b985882e" | |
906 | integrity sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg== | |
907 | dependencies: | |
908 | regenerator-runtime "^0.13.4" | |
909 | ||
910 | "@babel/template@^7.10.4", "@babel/template@^7.12.7": | |
911 | version "7.12.7" | |
912 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.7.tgz#c817233696018e39fbb6c491d2fb684e05ed43bc" | |
913 | integrity sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow== | |
914 | dependencies: | |
915 | "@babel/code-frame" "^7.10.4" | |
916 | "@babel/parser" "^7.12.7" | |
917 | "@babel/types" "^7.12.7" | |
918 | ||
919 | "@babel/template@^7.12.13": | |
920 | version "7.12.13" | |
921 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" | |
922 | integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== | |
923 | dependencies: | |
924 | "@babel/code-frame" "^7.12.13" | |
925 | "@babel/parser" "^7.12.13" | |
926 | "@babel/types" "^7.12.13" | |
927 | ||
928 | "@babel/traverse@^7.10.4", "@babel/traverse@^7.12.1", "@babel/traverse@^7.12.10", "@babel/traverse@^7.12.5": | |
929 | version "7.12.12" | |
930 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.12.tgz#d0cd87892704edd8da002d674bc811ce64743376" | |
931 | integrity sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w== | |
932 | dependencies: | |
933 | "@babel/code-frame" "^7.12.11" | |
934 | "@babel/generator" "^7.12.11" | |
935 | "@babel/helper-function-name" "^7.12.11" | |
936 | "@babel/helper-split-export-declaration" "^7.12.11" | |
937 | "@babel/parser" "^7.12.11" | |
938 | "@babel/types" "^7.12.12" | |
939 | debug "^4.1.0" | |
940 | globals "^11.1.0" | |
941 | lodash "^4.17.19" | |
942 | ||
943 | "@babel/traverse@^7.12.13": | |
944 | version "7.12.13" | |
945 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz#689f0e4b4c08587ad26622832632735fb8c4e0c0" | |
946 | integrity sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA== | |
947 | dependencies: | |
948 | "@babel/code-frame" "^7.12.13" | |
949 | "@babel/generator" "^7.12.13" | |
950 | "@babel/helper-function-name" "^7.12.13" | |
951 | "@babel/helper-split-export-declaration" "^7.12.13" | |
952 | "@babel/parser" "^7.12.13" | |
953 | "@babel/types" "^7.12.13" | |
954 | debug "^4.1.0" | |
955 | globals "^11.1.0" | |
956 | lodash "^4.17.19" | |
957 | ||
958 | "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.12.1", "@babel/types@^7.12.10", "@babel/types@^7.12.11", "@babel/types@^7.12.12", "@babel/types@^7.12.5", "@babel/types@^7.12.7", "@babel/types@^7.4.4": | |
959 | version "7.12.12" | |
960 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299" | |
961 | integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ== | |
962 | dependencies: | |
963 | "@babel/helper-validator-identifier" "^7.12.11" | |
964 | lodash "^4.17.19" | |
965 | to-fast-properties "^2.0.0" | |
966 | ||
967 | "@babel/types@^7.12.13": | |
968 | version "7.12.13" | |
969 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz#8be1aa8f2c876da11a9cf650c0ecf656913ad611" | |
970 | integrity sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ== | |
971 | dependencies: | |
972 | "@babel/helper-validator-identifier" "^7.12.11" | |
973 | lodash "^4.17.19" | |
974 | to-fast-properties "^2.0.0" | |
975 | ||
976 | "@discoveryjs/json-ext@^0.5.0": | |
977 | version "0.5.2" | |
978 | resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz#8f03a22a04de437254e8ce8cc84ba39689288752" | |
979 | integrity sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg== | |
980 | ||
981 | "@nodelib/fs.scandir@2.1.4": | |
982 | version "2.1.4" | |
983 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" | |
984 | integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== | |
985 | dependencies: | |
986 | "@nodelib/fs.stat" "2.0.4" | |
987 | run-parallel "^1.1.9" | |
988 | ||
989 | "@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": | |
990 | version "2.0.4" | |
991 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" | |
992 | integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== | |
993 | ||
994 | "@nodelib/fs.walk@^1.2.3": | |
995 | version "1.2.6" | |
996 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" | |
997 | integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== | |
998 | dependencies: | |
999 | "@nodelib/fs.scandir" "2.1.4" | |
1000 | fastq "^1.6.0" | |
1001 | ||
1002 | "@types/anymatch@*": | |
1003 | version "1.3.1" | |
1004 | resolved "https://registry.yarnpkg.com/@types/anymatch/-/anymatch-1.3.1.tgz#336badc1beecb9dacc38bea2cf32adf627a8421a" | |
1005 | integrity sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA== | |
1006 | ||
1007 | "@types/eslint-scope@^3.7.0": | |
1008 | version "3.7.0" | |
1009 | resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.0.tgz#4792816e31119ebd506902a482caec4951fabd86" | |
1010 | integrity sha512-O/ql2+rrCUe2W2rs7wMR+GqPRcgB6UiqN5RhrR5xruFlY7l9YLMn0ZkDzjoHLeiFkR8MCQZVudUuuvQ2BLC9Qw== | |
1011 | dependencies: | |
1012 | "@types/eslint" "*" | |
1013 | "@types/estree" "*" | |
1014 | ||
1015 | "@types/eslint@*": | |
1016 | version "7.2.6" | |
1017 | resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.6.tgz#5e9aff555a975596c03a98b59ecd103decc70c3c" | |
1018 | integrity sha512-I+1sYH+NPQ3/tVqCeUSBwTE/0heyvtXqpIopUUArlBm0Kpocb8FbMa3AZ/ASKIFpN3rnEx932TTXDbt9OXsNDw== | |
1019 | dependencies: | |
1020 | "@types/estree" "*" | |
1021 | "@types/json-schema" "*" | |
1022 | ||
1023 | "@types/estree@*", "@types/estree@^0.0.46": | |
1024 | version "0.0.46" | |
1025 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" | |
1026 | integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== | |
1027 | ||
1028 | "@types/glob@^7.1.1": | |
1029 | version "7.1.3" | |
1030 | resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" | |
1031 | integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== | |
1032 | dependencies: | |
1033 | "@types/minimatch" "*" | |
1034 | "@types/node" "*" | |
1035 | ||
1036 | "@types/html-minifier-terser@^5.0.0": | |
1037 | version "5.1.1" | |
1038 | resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#3c9ee980f1a10d6021ae6632ca3e79ca2ec4fb50" | |
1039 | integrity sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA== | |
1040 | ||
1041 | "@types/json-schema@*", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": | |
1042 | version "7.0.7" | |
1043 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" | |
1044 | integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== | |
1045 | ||
1046 | "@types/minimatch@*": | |
1047 | version "3.0.3" | |
1048 | resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" | |
1049 | integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== | |
1050 | ||
1051 | "@types/node@*": | |
1052 | version "14.14.22" | |
1053 | resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.22.tgz#0d29f382472c4ccf3bd96ff0ce47daf5b7b84b18" | |
1054 | integrity sha512-g+f/qj/cNcqKkc3tFqlXOYjrmZA+jNBiDzbP3kH+B+otKFqAdPgVTGP1IeKRdMml/aE69as5S4FqtxAbl+LaMw== | |
1055 | ||
1056 | "@types/source-list-map@*": | |
1057 | version "0.1.2" | |
1058 | resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9" | |
1059 | integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA== | |
1060 | ||
1061 | "@types/tapable@*", "@types/tapable@^1.0.5": | |
1062 | version "1.0.6" | |
1063 | resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" | |
1064 | integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== | |
1065 | ||
1066 | "@types/uglify-js@*": | |
1067 | version "3.11.1" | |
1068 | resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.11.1.tgz#97ff30e61a0aa6876c270b5f538737e2d6ab8ceb" | |
1069 | integrity sha512-7npvPKV+jINLu1SpSYVWG8KvyJBhBa8tmzMMdDoVc2pWUYHN8KIXlPJhjJ4LT97c4dXJA2SHL/q6ADbDriZN+Q== | |
1070 | dependencies: | |
1071 | source-map "^0.6.1" | |
1072 | ||
1073 | "@types/webpack-sources@*": | |
1074 | version "2.1.0" | |
1075 | resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-2.1.0.tgz#8882b0bd62d1e0ce62f183d0d01b72e6e82e8c10" | |
1076 | integrity sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg== | |
1077 | dependencies: | |
1078 | "@types/node" "*" | |
1079 | "@types/source-list-map" "*" | |
1080 | source-map "^0.7.3" | |
1081 | ||
1082 | "@types/webpack@^4.41.8": | |
1083 | version "4.41.26" | |
1084 | resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.26.tgz#27a30d7d531e16489f9c7607c747be6bc1a459ef" | |
1085 | integrity sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA== | |
1086 | dependencies: | |
1087 | "@types/anymatch" "*" | |
1088 | "@types/node" "*" | |
1089 | "@types/tapable" "*" | |
1090 | "@types/uglify-js" "*" | |
1091 | "@types/webpack-sources" "*" | |
1092 | source-map "^0.6.0" | |
1093 | ||
1094 | "@webassemblyjs/ast@1.11.0": | |
1095 | version "1.11.0" | |
1096 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.0.tgz#a5aa679efdc9e51707a4207139da57920555961f" | |
1097 | integrity sha512-kX2W49LWsbthrmIRMbQZuQDhGtjyqXfEmmHyEi4XWnSZtPmxY0+3anPIzsnRb45VH/J55zlOfWvZuY47aJZTJg== | |
1098 | dependencies: | |
1099 | "@webassemblyjs/helper-numbers" "1.11.0" | |
1100 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" | |
1101 | ||
1102 | "@webassemblyjs/floating-point-hex-parser@1.11.0": | |
1103 | version "1.11.0" | |
1104 | resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.0.tgz#34d62052f453cd43101d72eab4966a022587947c" | |
1105 | integrity sha512-Q/aVYs/VnPDVYvsCBL/gSgwmfjeCb4LW8+TMrO3cSzJImgv8lxxEPM2JA5jMrivE7LSz3V+PFqtMbls3m1exDA== | |
1106 | ||
1107 | "@webassemblyjs/helper-api-error@1.11.0": | |
1108 | version "1.11.0" | |
1109 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.0.tgz#aaea8fb3b923f4aaa9b512ff541b013ffb68d2d4" | |
1110 | integrity sha512-baT/va95eXiXb2QflSx95QGT5ClzWpGaa8L7JnJbgzoYeaA27FCvuBXU758l+KXWRndEmUXjP0Q5fibhavIn8w== | |
1111 | ||
1112 | "@webassemblyjs/helper-buffer@1.11.0": | |
1113 | version "1.11.0" | |
1114 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.0.tgz#d026c25d175e388a7dbda9694e91e743cbe9b642" | |
1115 | integrity sha512-u9HPBEl4DS+vA8qLQdEQ6N/eJQ7gT7aNvMIo8AAWvAl/xMrcOSiI2M0MAnMCy3jIFke7bEee/JwdX1nUpCtdyA== | |
1116 | ||
1117 | "@webassemblyjs/helper-numbers@1.11.0": | |
1118 | version "1.11.0" | |
1119 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.0.tgz#7ab04172d54e312cc6ea4286d7d9fa27c88cd4f9" | |
1120 | integrity sha512-DhRQKelIj01s5IgdsOJMKLppI+4zpmcMQ3XboFPLwCpSNH6Hqo1ritgHgD0nqHeSYqofA6aBN/NmXuGjM1jEfQ== | |
1121 | dependencies: | |
1122 | "@webassemblyjs/floating-point-hex-parser" "1.11.0" | |
1123 | "@webassemblyjs/helper-api-error" "1.11.0" | |
1124 | "@xtuc/long" "4.2.2" | |
1125 | ||
1126 | "@webassemblyjs/helper-wasm-bytecode@1.11.0": | |
1127 | version "1.11.0" | |
1128 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.0.tgz#85fdcda4129902fe86f81abf7e7236953ec5a4e1" | |
1129 | integrity sha512-MbmhvxXExm542tWREgSFnOVo07fDpsBJg3sIl6fSp9xuu75eGz5lz31q7wTLffwL3Za7XNRCMZy210+tnsUSEA== | |
1130 | ||
1131 | "@webassemblyjs/helper-wasm-section@1.11.0": | |
1132 | version "1.11.0" | |
1133 | resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.0.tgz#9ce2cc89300262509c801b4af113d1ca25c1a75b" | |
1134 | integrity sha512-3Eb88hcbfY/FCukrg6i3EH8H2UsD7x8Vy47iVJrP967A9JGqgBVL9aH71SETPx1JrGsOUVLo0c7vMCN22ytJew== | |
1135 | dependencies: | |
1136 | "@webassemblyjs/ast" "1.11.0" | |
1137 | "@webassemblyjs/helper-buffer" "1.11.0" | |
1138 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" | |
1139 | "@webassemblyjs/wasm-gen" "1.11.0" | |
1140 | ||
1141 | "@webassemblyjs/ieee754@1.11.0": | |
1142 | version "1.11.0" | |
1143 | resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.0.tgz#46975d583f9828f5d094ac210e219441c4e6f5cf" | |
1144 | integrity sha512-KXzOqpcYQwAfeQ6WbF6HXo+0udBNmw0iXDmEK5sFlmQdmND+tr773Ti8/5T/M6Tl/413ArSJErATd8In3B+WBA== | |
1145 | dependencies: | |
1146 | "@xtuc/ieee754" "^1.2.0" | |
1147 | ||
1148 | "@webassemblyjs/leb128@1.11.0": | |
1149 | version "1.11.0" | |
1150 | resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.0.tgz#f7353de1df38aa201cba9fb88b43f41f75ff403b" | |
1151 | integrity sha512-aqbsHa1mSQAbeeNcl38un6qVY++hh8OpCOzxhixSYgbRfNWcxJNJQwe2rezK9XEcssJbbWIkblaJRwGMS9zp+g== | |
1152 | dependencies: | |
1153 | "@xtuc/long" "4.2.2" | |
1154 | ||
1155 | "@webassemblyjs/utf8@1.11.0": | |
1156 | version "1.11.0" | |
1157 | resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.0.tgz#86e48f959cf49e0e5091f069a709b862f5a2cadf" | |
1158 | integrity sha512-A/lclGxH6SpSLSyFowMzO/+aDEPU4hvEiooCMXQPcQFPPJaYcPQNKGOCLUySJsYJ4trbpr+Fs08n4jelkVTGVw== | |
1159 | ||
1160 | "@webassemblyjs/wasm-edit@1.11.0": | |
1161 | version "1.11.0" | |
1162 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.0.tgz#ee4a5c9f677046a210542ae63897094c2027cb78" | |
1163 | integrity sha512-JHQ0damXy0G6J9ucyKVXO2j08JVJ2ntkdJlq1UTiUrIgfGMmA7Ik5VdC/L8hBK46kVJgujkBIoMtT8yVr+yVOQ== | |
1164 | dependencies: | |
1165 | "@webassemblyjs/ast" "1.11.0" | |
1166 | "@webassemblyjs/helper-buffer" "1.11.0" | |
1167 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" | |
1168 | "@webassemblyjs/helper-wasm-section" "1.11.0" | |
1169 | "@webassemblyjs/wasm-gen" "1.11.0" | |
1170 | "@webassemblyjs/wasm-opt" "1.11.0" | |
1171 | "@webassemblyjs/wasm-parser" "1.11.0" | |
1172 | "@webassemblyjs/wast-printer" "1.11.0" | |
1173 | ||
1174 | "@webassemblyjs/wasm-gen@1.11.0": | |
1175 | version "1.11.0" | |
1176 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.0.tgz#3cdb35e70082d42a35166988dda64f24ceb97abe" | |
1177 | integrity sha512-BEUv1aj0WptCZ9kIS30th5ILASUnAPEvE3tVMTrItnZRT9tXCLW2LEXT8ezLw59rqPP9klh9LPmpU+WmRQmCPQ== | |
1178 | dependencies: | |
1179 | "@webassemblyjs/ast" "1.11.0" | |
1180 | "@webassemblyjs/helper-wasm-bytecode" "1.11.0" | |
1181 | "@webassemblyjs/ieee754" "1.11.0" | |
1182 | "@webassemblyjs/leb128" "1.11.0" | |
1183 | "@webassemblyjs/utf8" "1.11.0" | |
1184 | ||
1185 | "@webassemblyjs/wasm-opt@1.11.0": | |
1186 | version "1.11.0" | |
1187 | resolved "https://registry.yarnpkg.com/@webassemblyjs/wa |