From 6980abbef9fd8eee6a0be7006c7229ee14042ee4 Mon Sep 17 00:00:00 2001 From: Pablo Ferreiro Date: Sun, 17 Apr 2022 22:30:27 +0200 Subject: [PATCH] Moved to JS, using JSDOM and added Docker --- .dockerignore | 1 + .editorconfig | 4 +- .gitignore | 2 +- Dockerfile | 9 + README.md | 13 +- TikTokSigner/Signer.py | 89 --- TikTokSigner/Utils.py | 9 - TikTokSigner/__init__.py | 0 app.json | 10 +- cli.py | 20 - index.js | 9 + js/signature.js | 2 +- js/xttparams.js | 2 - package.json | 18 + requirements.txt | 19 - server.js | 30 + src/Signer.js | 78 +++ src/Utils.js | 8 + web.py | 38 -- yarn.lock | 1111 ++++++++++++++++++++++++++++++++++++++ 20 files changed, 1274 insertions(+), 198 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile delete mode 100644 TikTokSigner/Signer.py delete mode 100644 TikTokSigner/Utils.py delete mode 100644 TikTokSigner/__init__.py delete mode 100644 cli.py create mode 100644 index.js delete mode 100644 js/xttparams.js create mode 100644 package.json delete mode 100644 requirements.txt create mode 100644 server.js create mode 100644 src/Signer.js create mode 100644 src/Utils.js delete mode 100644 web.py create mode 100644 yarn.lock diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +node_modules diff --git a/.editorconfig b/.editorconfig index 2c6ffb0..de93d36 100644 --- a/.editorconfig +++ b/.editorconfig @@ -11,6 +11,6 @@ trim_trailing_whitespace = true charset = utf-8 # 4 space indentation -[*.py] +[*.js] indent_style = space -indent_size = 4 +indent_size = 2 diff --git a/.gitignore b/.gitignore index 556cfc4..e8e5e5d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ /.venv /.vscode -__pycache__ +/node_modules diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..41d89c1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM node:17 + +WORKDIR /usr/src/app + +COPY package.json ./ +RUN yarn install +COPY . . +EXPOSE 8080 +CMD [ "node", "server.js" ] diff --git a/README.md b/README.md index c2dafd9..fa18cb4 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,21 @@ # SignTok Sign your TikTok urls easily. -This is a port of [tiktok-signature](https://github.com/carcabot/tiktok-signature) to Python using Selenium and Selenium Stealth - -[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy) +This is a port of [tiktok-signature](https://github.com/carcabot/tiktok-signature) using JSDOM ## Installation ``` -pip install -r requirements.txt +yarn install ``` You also need to have Chrome installed ## Usage For webserver: ``` -python web.py +node server.py ``` Then you can send a POST request to localhost:8080 with a raw/plain body containing the url For cli usage: ``` -python cli.py +node index.js 'YOUR_URL_HERE' ``` - -## TODO -* Docker diff --git a/TikTokSigner/Signer.py b/TikTokSigner/Signer.py deleted file mode 100644 index 27a1a85..0000000 --- a/TikTokSigner/Signer.py +++ /dev/null @@ -1,89 +0,0 @@ -from os import getenv -from selenium import webdriver -from selenium_stealth import stealth -from selenium.webdriver.chrome.options import Options -from selenium.webdriver.support.ui import WebDriverWait -from selenium.webdriver.common.by import By -from selenium.webdriver.support import expected_conditions as EC -from urllib import parse -from TikTokSigner.Utils import Utils - -class Signer: - DEFAULT_URL = 'https://www.tiktok.com/@tiktok/?lang=en' - USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Windows NT 10.0; Win64; x64) Chrome/90.0.4430.85 Safari/537.36' - TIMEOUT = 30 - driver: webdriver.Chrome - - signature = '' - xttparams = '' - - def __init__(self): - print('Starting Browser') - options = Options() - path = getenv('GOOGLE_CHROME_SHIM', '') - options._binary_location = path - options.add_argument("--headless") - options.add_argument("--disable-gpu") - options.add_argument("--no-sandbox") - options.add_argument("--remote-debugging-port=9222") - options.add_experimental_option("excludeSwitches", ["enable-automation"]) - options.add_experimental_option('useAutomationExtension', False) - options.add_argument('--disable-blink-features=AutomationControlled') - self.driver = webdriver.Chrome(options=options) - stealth(self.driver, - user_agent=self.USER_AGENT, - languages=["en-US", "en"], - vendor="Google Inc.", - platform="Win32", - webgl_vendor="Intel Inc.", - renderer="Intel Iris OpenGL Engine", - fix_hairline=True - ) - - self.driver.get(self.DEFAULT_URL) - WebDriverWait(self.driver, self.TIMEOUT).until(EC.presence_of_element_located((By.ID, 'app'))) - - # Load scripts - with open('./js/signature.js') as f: - signature = f.read() - - with open('./js/xttparams.js') as f: - xttparams = f.read() - - self.driver.execute_script(signature) - self.driver.execute_script(xttparams) - - def navigator(self)-> dict: - info = self.driver.execute_script(""" - return { - deviceScaleFactor: window.devicePixelRatio, - user_agent: window.navigator.userAgent, - browser_language: window.navigator.language, - browser_platform: window.navigator.platform, - browser_name: window.navigator.appCodeName, - browser_version: window.navigator.appVersion, - } - """) - return info - - def sign(self, url: str)-> dict: - fp = Utils.verify_fp() - # Add verifyFp to url - url += '&verifyFp=' + fp - signature = self.driver.execute_script('return window.byted_acrawler.sign(arguments[0])', { - url: url - }) - signed_url = url + '&_signature=' + signature - - # Get params of url as dict - params = dict(parse.parse_qsl(parse.urlsplit(url).query)) - xttparams = self.driver.execute_script('return window.genXTTParams(arguments[0])', params) - return { - 'signature': signature, - 'verify_fp': fp, - 'signed_url': signed_url, - 'x-tt-params': xttparams - } - - def cleanup(self): - self.driver.close() diff --git a/TikTokSigner/Utils.py b/TikTokSigner/Utils.py deleted file mode 100644 index 14cce17..0000000 --- a/TikTokSigner/Utils.py +++ /dev/null @@ -1,9 +0,0 @@ -import time -import random -import string - -class Utils: - @staticmethod - def verify_fp()-> str: - # TODO, add proper verify fp method - return 'verify_5b161567bda98b6a50c0414d99909d4b' diff --git a/TikTokSigner/__init__.py b/TikTokSigner/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/app.json b/app.json index 215f258..40238a4 100644 --- a/app.json +++ b/app.json @@ -4,19 +4,13 @@ "keywords": [ "tiktok", "api", - "python" + "node" ], "website": "https://github.com/pablouser1/SignTok", "repository": "https://github.com/pablouser1/SignTok", "buildpacks": [ { - "url": "https://github.com/heroku/heroku-buildpack-google-chrome" - }, - { - "url": "https://github.com/heroku/heroku-buildpack-chromedriver" - }, - { - "url": "heroku/python" + "url": "heroku/nodejs" } ] } diff --git a/cli.py b/cli.py deleted file mode 100644 index 8b8a28c..0000000 --- a/cli.py +++ /dev/null @@ -1,20 +0,0 @@ -from TikTokSigner.Signer import Signer -from sys import argv -import json - -if __name__ == '__main__': - if len(argv) > 1: - signer = Signer() - data = signer.sign(argv[1]) - nav = signer.navigator() - res = { - 'status': 'ok', - 'data': { - **data, - 'navigator': nav - } - } - print(json.dumps(res)) - signer.cleanup() - else: - print('You need to type a url!') diff --git a/index.js b/index.js new file mode 100644 index 0000000..c1f901d --- /dev/null +++ b/index.js @@ -0,0 +1,9 @@ +const Signer = require("./src/Signer") + +if (process.argv.length > 2) { + const signer = new Signer() + const url = process.argv[2] + + const data = signer.sign(url) + console.log(data) +} diff --git a/js/signature.js b/js/signature.js index a5163b1..2940a4e 100644 --- a/js/signature.js +++ b/js/signature.js @@ -1 +1 @@ -Function(function (t) { return 'w={S(S,K){if(!a[S]){a[S]={};for(y=0;y>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;switch(o){case 0:for(o=0,l=Math.pow(2,8),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;k=K(o)1:for(o=0,l=Math.pow(2,16),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;k=K(o)2:""}for(i[3]=k,m=k,b.push(k);;){if(z.index>S)"";for(o=0,l=Math.pow(2,j),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;switch(k=o){case 0:for(o=0,l=Math.pow(2,8),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;i[q]=K(o),k=q-1,J--1:for(o=0,l=Math.pow(2,16),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;i[q]=K(o),k=q-1,J--2:b.join("")}if(0==J&&(J=Math.pow(2,j),j),i[k])I=i[k]if(k!==q)null;I=m+m.charAt(0)}b.push(I),i[q]=m+I.charAt(0),m=I,0==--J&&(J=Math.pow(2,j),j)}}};y};""==typeof define&&define.amd?define({w}):"undefined"!=typeof module&&null!=module?module.exports=w:"undefined"!=typeof angular&&null!=angular&&angular.module("w",[]).factory("w",{w}),eval(w.x("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";'.replace(/[-]/g, function (m) { return t[m.charCodeAt(0) & 15] }) }("var function ().length++return ));break;case ;else{".split("")))() +Function(function (t) { return 'w={S(S,K){if(!a[S]){a[S]={};for(y=0;y>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;switch(o){case 0:for(o=0,l=Math.pow(2,8),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;k=K(o)1:for(o=0,l=Math.pow(2,16),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;k=K(o)2:""}for(i[3]=k,m=k,b.push(k);;){if(z.index>S)"";for(o=0,l=Math.pow(2,j),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;switch(k=o){case 0:for(o=0,l=Math.pow(2,8),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;i[q]=K(o),k=q-1,J--1:for(o=0,l=Math.pow(2,16),r=1;r!=l;)T=z.val&z.position,z.position>>=1,0==z.position&&(z.position=a,z.val=y(z.index,o|=(T>0?1:0)*r,r<<=1;i[q]=K(o),k=q-1,J--2:b.join("")}if(0==J&&(J=Math.pow(2,j),j),i[k])I=i[k]if(k!==q)null;I=m+m.charAt(0)}b.push(I),i[q]=m+I.charAt(0),m=I,0==--J&&(J=Math.pow(2,j),j)}}};y};""==typeof define&&define.amd?define({w}):"undefined"!=typeof module&&null!=module?module.exports=w:"undefined"!=typeof angular&&null!=angular&&angular.module("w",[]).factory("w",{w}),eval(w.x("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";'.replace(/[-]/g, function (m) { return t[m.charCodeAt(0) & 15] }) }("var function ().length++return ));break;case ;else{".split("")))(); diff --git a/js/xttparams.js b/js/xttparams.js deleted file mode 100644 index c3f0ede..0000000 --- a/js/xttparams.js +++ /dev/null @@ -1,2 +0,0 @@ -var CryptoJS=CryptoJS||function(e,t){var r={},n=r.lib={},i=n.Base=function(){function e(){}return{extend:function(t){e.prototype=this;var r=new e;return t&&r.mixIn(t),r.hasOwnProperty("init")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),c=n.WordArray=i.extend({init:function(e,t){e=this.words=e||[],this.sigBytes=null!=t?t:4*e.length},toString:function(e){return(e||f).stringify(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;if(this.clamp(),n%4)for(var c=0;c>>2]>>>24-c%4*8&255;t[n+c>>>2]|=o<<24-(n+c)%4*8}else if(r.length>65535)for(c=0;c>>2]=r[c>>>2];else t.push.apply(t,r);return this.sigBytes+=i,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=i.clone.call(this);return e.words=this.words.slice(0),e},random:function(t){for(var r,n=[],i=function(t){t=t;var r=987654321,n=4294967295;return function(){var i=((r=36969*(65535&r)+(r>>16)&n)<<16)+(t=18e3*(65535&t)+(t>>16)&n)&n;return i/=4294967296,(i+=.5)*(e.random()>.5?1:-1)}},o=0;o>>2]>>>24-i%4*8&255;n.push((c>>>4).toString(16)),n.push((15&c).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new c.init(r,t/2)}},a=o.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(c))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new c.init(r,t)}},s=o.Utf8={stringify:function(e){try{return decodeURIComponent(escape(a.stringify(e)))}catch(e){throw new Error("Malformed UTF-8 data")}},parse:function(e){return a.parse(unescape(encodeURIComponent(e)))}},u=n.BufferedBlockAlgorithm=i.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=s.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,f=i/(4*o),a=(f=t?e.ceil(f):e.max((0|f)-this._minBufferSize,0))*o,s=e.min(4*a,i);if(a){for(var u=0;u>>2]>>>24-c%4*8&255)<<16|(t[c+1>>>2]>>>24-(c+1)%4*8&255)<<8|t[c+2>>>2]>>>24-(c+2)%4*8&255,f=0;f<4&&c+.75*f>>6*(3-f)&63));var a=n.charAt(64);if(a)for(;i.length%4;)i.push(a);return i.join("")},parse:function(e){var r=e.length,n=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var c=0;c>>6-o%4*2;i[c>>>2]|=(f|a)<<24-c%4*8,c++}return t.create(i,c)}(e,r,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),CryptoJS.lib.Cipher||function(e){var t=CryptoJS,r=t.lib,n=r.Base,i=r.WordArray,c=r.BufferedBlockAlgorithm,o=t.enc,f=(o.Utf8,o.Base64),a=t.algo.EvpKDF,s=r.Cipher=c.extend({cfg:n.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){c.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?_:v}return function(t){return{encrypt:function(r,n,i){return e(n).encrypt(t,r,n,i)},decrypt:function(r,n,i){return e(n).decrypt(t,r,n,i)}}}}()}),u=(r.StreamCipher=s.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),t.mode={}),d=r.BlockCipherMode=n.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),l=u.CBC=function(){var t=d.extend();function r(t,r,n){var i=this._iv;if(i){var c=i;this._iv=e}else c=this._prevBlock;for(var o=0;o>>2];e.sigBytes-=t}},h=(r.BlockCipher=s.extend({cfg:s.cfg.extend({mode:l,padding:p}),reset:function(){s.reset.call(this);var e=this.cfg,t=e.iv,r=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=r.createEncryptor;else{n=r.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==n?this._mode.init(this,t&&t.words):(this._mode=n.call(r,this,t&&t.words),this._mode.__creator=n)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{t=this._process(!0);e.unpad(t)}return t},blockSize:4}),r.CipherParams=n.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),y=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;if(r)var n=i.create([1398893684,1701076831]).concat(r).concat(t);else n=t;return n.toString(f)},parse:function(e){var t=f.parse(e),r=t.words;if(1398893684==r[0]&&1701076831==r[1]){var n=i.create(r.slice(2,4));r.splice(0,4),t.sigBytes-=16}return h.create({ciphertext:t,salt:n})}},v=r.SerializableCipher=n.extend({cfg:n.extend({format:y}),encrypt:function(e,t,r,n){n=this.cfg.extend(n);var i=e.createEncryptor(r,n),c=i.finalize(t),o=i.cfg;return h.create({ciphertext:c,key:r,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,r,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),e.createDecryptor(r,n).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),b=(t.kdf={}).OpenSSL={execute:function(e,t,r,n){n||(n=i.random(8));var c=a.create({keySize:t+r}).compute(e,n),o=i.create(c.words.slice(t),4*r);return c.sigBytes=4*t,h.create({key:c,iv:o,salt:n})}},_=r.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:b}),encrypt:function(e,t,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,e.keySize,e.ivSize);n.iv=i.iv;var c=v.encrypt.call(this,e,t,i.key,n);return c.mixIn(i),c},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=n.kdf.execute(r,e.keySize,e.ivSize,t.salt);return n.iv=i.iv,v.decrypt.call(this,e,t,i.key,n)}})}(),CryptoJS.mode.ECB=function(){var e=CryptoJS.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),e.Decryptor=e.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),e}(),function(){var e=CryptoJS,t=e.lib.BlockCipher,r=e.algo,n=[],i=[],c=[],o=[],f=[],a=[],s=[],u=[],d=[],l=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,p=0;for(t=0;t<256;t++){var h=p^p<<1^p<<2^p<<3^p<<4;h=h>>>8^255&h^99,n[r]=h,i[h]=r;var y=e[r],v=e[y],b=e[v],_=257*e[h]^16843008*h;c[r]=_<<24|_>>>8,o[r]=_<<16|_>>>16,f[r]=_<<8|_>>>24,a[r]=_;_=16843009*b^65537*v^257*y^16843008*r;s[h]=_<<24|_>>>8,u[h]=_<<16|_>>>16,d[h]=_<<8|_>>>24,l[h]=_,r?(r=y^e[e[e[b^y]]],p^=e[e[p]]):r=p=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],h=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,i=4*((this._nRounds=r+6)+1),c=this._keySchedule=[],o=0;o6&&o%r==4&&(f=n[f>>>24]<<24|n[f>>>16&255]<<16|n[f>>>8&255]<<8|n[255&f]):(f=n[(f=f<<8|f>>>24)>>>24]<<24|n[f>>>16&255]<<16|n[f>>>8&255]<<8|n[255&f],f^=p[o/r|0]<<24),c[o]=c[o-r]^f}for(var a=this._invKeySchedule=[],h=0;h>>24]]^u[n[f>>>16&255]]^d[n[f>>>8&255]]^l[n[255&f]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,c,o,f,a,n)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,s,u,d,l,i);r=e[t+1];e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,i,c,o,f){for(var a=this._nRounds,s=e[t]^r[0],u=e[t+1]^r[1],d=e[t+2]^r[2],l=e[t+3]^r[3],p=4,h=1;h>>24]^i[u>>>16&255]^c[d>>>8&255]^o[255&l]^r[p++],v=n[u>>>24]^i[d>>>16&255]^c[l>>>8&255]^o[255&s]^r[p++],b=n[d>>>24]^i[l>>>16&255]^c[s>>>8&255]^o[255&u]^r[p++],_=n[l>>>24]^i[s>>>16&255]^c[u>>>8&255]^o[255&d]^r[p++];s=y,u=v,d=b,l=_}y=(f[s>>>24]<<24|f[u>>>16&255]<<16|f[d>>>8&255]<<8|f[255&l])^r[p++],v=(f[u>>>24]<<24|f[d>>>16&255]<<16|f[l>>>8&255]<<8|f[255&s])^r[p++],b=(f[d>>>24]<<24|f[l>>>16&255]<<16|f[s>>>8&255]<<8|f[255&u])^r[p++],_=(f[l>>>24]<<24|f[s>>>16&255]<<16|f[u>>>8&255]<<8|f[255&d])^r[p++];e[t]=y,e[t+1]=v,e[t+2]=b,e[t+3]=_},keySize:8});e.AES=t._createHelper(h)}();var a,i={};i.CryptoJS=CryptoJS,window._$jsvmprt=function(e,t,r){function n(e,t,r){return(n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(e){return!1}}()?Reflect.construct:function(e,t,r){var n=[null];n.push.apply(n,t);var i=new(Function.bind.apply(e,n));return r&&function(e,t){(Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}(i,r.prototype),i}).apply(null,arguments)}function i(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t>7==0)return[1,i];if(i>>6==2){var c=parseInt(""+e[++t]+e[++t],16);return i&=63,[2,c=(i<<=8)+c]}if(i>>6==3){var o=parseInt(""+e[++t]+e[++t],16),f=parseInt(""+e[++t]+e[++t],16);return i&=63,[3,f=(i<<=16)+(o<<=8)+f]}},u=function(e,t){var r=parseInt(""+e[t]+e[t+1],16);return r>127?-256+r:r},d=function(e,t){var r=parseInt(""+e[t]+e[t+1]+e[t+2]+e[t+3],16);return r>32767?-65536+r:r},l=function(e,t){var r=parseInt(""+e[t]+e[t+1]+e[t+2]+e[t+3]+e[t+4]+e[t+5]+e[t+6]+e[t+7],16);return r>2147483647?0+r:r},p=function(e,t){return parseInt(""+e[t]+e[t+1],16)},h=function(e,t){return parseInt(""+e[t]+e[t+1]+e[t+2]+e[t+3],16)},y=y||this||window,v=(Object.keys,e.length,0),b="",_=v;_>=2,O>2)O=3&B,B>>=2,O<1?(O=B)<4?(g=k[C--],k[C]=k[C]-g):O<6?(g=k[C--],k[C]=k[C]===g):O<15&&(g=k[C],k[C]=k[C-1],k[C-1]=g):O<2?(O=B)<5&&(x=p(e,w),w+=2,g=l[x],k[++C]=g):O<3?(O=B)<6||(O<8?g=k[C--]:O<12&&(x=d(e,w),f[++a]=[[w+4,x-3],0,0],w+=2*x-2)):(O=B)<2?(g=k[C--],k[C]=k[C]1)if(O=3&B,B>>=2,O>2)(O=B)>5?(x=p(e,w),w+=2,k[++C]=l["$"+x]):O>3&&(x=d(e,w),f[a][0]&&!f[a][2]?f[a][1]=[w+4,x-3]:f[a++]=[0,[w+4,x-3],0],w+=2*x-2);else if(O>1){if((O=B)>2)if(k[C--])w+=4;else{if((x=d(e,w))<0){_=1,X(e,t,2*r),w+=2*x-2;break}w+=2*x-2}else if(O>0){for(x=h(e,w),g="",A=c.q[x][0];A0?(O=B)>1?(g=k[C--],k[C]=k[C]+g):O>-1&&(k[++C]=y):(O=B)>9?(x=p(e,w),w+=2,g=k[C--],l[x]=g):O>7?(x=h(e,w),w+=4,m=C+1,k[C-=x-1]=x?k.slice(C,m):[]):O>0&&(g=k[C--],k[C]=k[C]>g);else if(O>0){if(O=3&B,B>>=2,O<1){if((O=B)>9);else if(O>5)x=p(e,w),w+=2,k[C-=x]=0===x?new k[C]:n(k[C],i(k.slice(C+1,C+x+1)));else if(O>3){x=d(e,w);try{if(f[a][2]=1,1==(g=N(e,w+4,x-3,[],l,v,null,0))[0])return g}catch(b){if(f[a]&&f[a][1]&&1==(g=N(e,f[a][1][0],f[a][1][1],[],l,v,b,0))[0])return g}finally{if(f[a]&&f[a][0]&&1==(g=N(e,f[a][0][0],f[a][0][1],[],l,v,null,0))[0])return g;f[a]=0,a--}w+=2*x-2}}else if(O<2){if((O=B)>12)k[++C]=u(e,w),w+=2;else if(O>8){for(x=h(e,w),O="",A=c.q[x][0];A11?(g=k[C],k[++C]=g):O>0&&(k[++C]=g);else if((O=B)<1)k[C]=!k[C];else if(O<3){if((x=d(e,w))<0){_=1,X(e,t,2*r),w+=2*x-2;break}w+=2*x-2}}else if(O=3&B,B>>=2,O>2)(O=B)<1&&(k[++C]=null);else if(O>1){if((O=B)<9){for(g=k[C--],x=h(e,w),O="",A=c.q[x][0];A0)(O=B)<4?(m=k[C--],(O=k[C]).x===N?O.y>=1?k[C]=U(e,O.c,O.l,[m],O.z,S,null,1):(k[C]=U(e,O.c,O.l,[m],O.z,S,null,0),O.y++):k[C]=O(m)):O<6&&(k[C-=1]=k[C][k[C+1]]);else{if((O=B)<1)return[1,k[C--]];O<14?(m=k[C--],S=k[C--],(O=k[C--]).x===N?O.y>=1?k[++C]=U(e,O.c,O.l,m,O.z,S,null,1):(k[++C]=U(e,O.c,O.l,m,O.z,S,null,0),O.y++):k[++C]=O.apply(S,m)):O<16&&(x=d(e,w),(I=function t(){var r=arguments;return t.y>0||t.y++,U(e,t.c,t.l,r,t.z,this,null,0)}).c=w+4,I.l=x-2,I.x=N,I.y=0,I.z=l,k[C]=I,w+=2*x-2)}}if(_)for(;w>=2,O<1)if(O=3&B,B>>=2,O>2)(O=B)<1&&(k[++C]=null);else if(O>1){if((O=B)<9){for(g=k[C--],x=$[w],O="",A=c.q[x][0];A0)(O=B)<4?(m=k[C--],(O=k[C]).x===N?O.y>=1?k[C]=U(e,O.c,O.l,[m],O.z,S,null,1):(k[C]=U(e,O.c,O.l,[m],O.z,S,null,0),O.y++):k[C]=O(m)):O<6&&(k[C-=1]=k[C][k[C+1]]);else{var I;if((O=B)>14)x=$[w],(I=function t(){var r=arguments;return t.y>0||t.y++,U(e,t.c,t.l,r,t.z,this,null,0)}).c=w+4,I.l=x-2,I.x=N,I.y=0,I.z=l,k[C]=I,w+=2*x-2;else if(O>12)m=k[C--],S=k[C--],(O=k[C--]).x===N?O.y>=1?k[++C]=U(e,O.c,O.l,m,O.z,S,null,1):(k[++C]=U(e,O.c,O.l,m,O.z,S,null,0),O.y++):k[++C]=O.apply(S,m);else if(O>-1)return[1,k[C--]]}else if(O<2)if(O=3&B,B>>=2,O>2)(O=B)<1?k[C]=!k[C]:O<3&&(w+=2*(x=$[w])-2);else if(O>1)(O=B)<2?k[++C]=g:O<13&&(g=k[C],k[++C]=g);else if(O>0)if((O=B)<10){for(x=$[w],O="",A=c.q[x][0];A>=2,O<1)(O=B)>9?(x=$[w],w+=2,g=k[C--],l[x]=g):O>7?(x=$[w],w+=4,m=C+1,k[C-=x-1]=x?k.slice(C,m):[]):O>0&&(g=k[C--],k[C]=k[C]>g);else if(O<2)(O=B)>1?(g=k[C--],k[C]=k[C]+g):O>-1&&(k[++C]=y);else if(O<3)if((O=B)<2){for(x=$[w],g="",A=c.q[x][0];A5?(x=$[w],w+=2,k[++C]=l["$"+x]):O>3&&(x=$[w],f[a][0]&&!f[a][2]?f[a][1]=[w+4,x-3]:f[a++]=[0,[w+4,x-3],0],w+=2*x-2);else O=3&B,B>>=2,O<1?(O=B)<4?(g=k[C--],k[C]=k[C]-g):O<6?(g=k[C--],k[C]=k[C]===g):O<15&&(g=k[C],k[C]=k[C-1],k[C-1]=g):O<2?(O=B)<5&&(x=$[w],w+=2,g=l[x],k[++C]=g):O<3?(O=B)>10?(x=$[w],f[++a]=[[w+4,x-3],0,0],w+=2*x-2):O>6&&(g=k[C--]):(O=B)<2?(g=k[C--],k[C]=k[C]{const o=i+"="+e[i];t.push(o)}),t.push("is_encryption=1"),((e,t)=>{const i=((e,t)=>{let i=e.toString();const o=i.length;return(o<16?(i=new Array(16-o+1).join("0")+i):o>16&&(i=i.slice(0,16)),i)})("webapp1.0+20210628"),n=o.enc.Utf8.parse(i);return o.AES.encrypt(e,n,{iv:n,mode:o.mode.CBC,padding:o.pad.Pkcs7,}).toString()})(t.join("&")))} -window.genXTTParams=function(e){return encryptParams(e)} \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..1edc224 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "signtok", + "version": "1.0.0", + "description": "Sign your TikTok requests easily", + "repository": "https://github.com/pablouser1/SignTok", + "author": "Pablo Ferreiro", + "license": "MIT", + "private": true, + "scripts": { + "start": "node server.js" + }, + "dependencies": { + "canvas": "^2.9.1", + "crypto-js": "^4.1.1", + "express": "^4.17.3", + "jsdom": "^19.0.0" + } +} diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 6792994..0000000 --- a/requirements.txt +++ /dev/null @@ -1,19 +0,0 @@ -async-generator==1.10 -attrs==21.4.0 -certifi==2021.10.8 -cffi==1.15.0 -cryptography==36.0.1 -h11==0.13.0 -idna==3.3 -outcome==1.1.0 -pycparser==2.21 -pyOpenSSL==22.0.0 -PySocks==1.7.1 -selenium==4.1.2 -selenium-stealth==1.0.6 -sniffio==1.2.0 -sortedcontainers==2.4.0 -trio==0.20.0 -trio-websocket==0.9.2 -urllib3==1.26.8 -wsproto==1.1.0 diff --git a/server.js b/server.js new file mode 100644 index 0000000..2e8d2c6 --- /dev/null +++ b/server.js @@ -0,0 +1,30 @@ +const Signer = require("./src/Signer") +const bodyParser = require("body-parser") +const express = require("express") + +const port = process.env.PORT || 8080 +const app = express() +app.use(bodyParser.text()) + +const signer = new Signer() + +app.get('/', (req, res) => { + res.redirect('https://github.com/pablouser1/SignTok') +}) + +app.post("/signature", (req, res) => { + const url = req.body + const data = signer.sign(url) + console.log("Sent data from request with url: " + url) + res.send({ + status: "ok", + data: { + ...data, + navigator: signer.navigator() + } + }) +}) + +app.listen(port, () => { + console.log(`App listening on port ${port}`) +}) diff --git a/src/Signer.js b/src/Signer.js new file mode 100644 index 0000000..dbde82c --- /dev/null +++ b/src/Signer.js @@ -0,0 +1,78 @@ +const fs = require("fs") +const Utils = require("./Utils") +const { JSDOM, ResourceLoader } = require("jsdom") +const CryptoJS = require("crypto-js") + +class Signer { + static DEFAULT_USERAGENT = + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36" + static PASSWORD = CryptoJS.enc.Utf8.parse('webapp1.0+202106') + /** + * @type Window + */ + window = null + + constructor(userAgent = Signer.DEFAULT_USERAGENT) { + const signature_js = fs.readFileSync(__dirname + "/../js/signature.js", "utf-8") + const resourceLoader = new ResourceLoader({ + userAgent + }) + + const { window } = new JSDOM(``, { + url: "https://www.tiktok.com", + referrer: "https://www.tiktok.com", + contentType: "text/html", + includeNodeLocations: true, + runScripts: "outside-only", + resources: resourceLoader + }) + this.window = window + this.window.eval(signature_js.toString()) + this.window.byted_acrawler.init({ + "aid":24, + "dfp":true + }) + } + + navigator() { + return { + deviceScaleFactor: this.window.devicePixelRatio, + user_agent: this.window.navigator.userAgent, + browser_language: this.window.navigator.language, + browser_platform: this.window.navigator.platform, + browser_name: this.window.navigator.appCodeName, + browser_version: this.window.navigator.appVersion + } + } + + signature(url) { + return this.window.byted_acrawler.sign({ url }) + } + + xttparams(params) { + params += "&is_encryption=1" + const crypt = CryptoJS.AES.encrypt(params, Signer.PASSWORD, { + iv: Signer.PASSWORD, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.Pkcs7 + }).toString() + return crypt + } + + sign(url) { + const verifyFp = Utils.verify_fp() + url += "&verifyFp=" + verifyFp + const signature = this.signature(url) + const signed_url = url + "&_signature=" + signature + const params = new URL(url).searchParams.toString() + const xttparams = this.xttparams(params) + return { + signature: signature, + verify_fp: verifyFp, + signed_url: signed_url, + "x-tt-params": xttparams + } + } +} + +module.exports = Signer diff --git a/src/Utils.js b/src/Utils.js new file mode 100644 index 0000000..a77a9d9 --- /dev/null +++ b/src/Utils.js @@ -0,0 +1,8 @@ +class Utils { + static verify_fp() { + // TODO, add proper verify fp method + return "verify_68b8ccfa65726db8b3db0cc07821d696" + } +} + +module.exports = Utils diff --git a/web.py b/web.py deleted file mode 100644 index c31d2aa..0000000 --- a/web.py +++ /dev/null @@ -1,38 +0,0 @@ -import json -from http.server import BaseHTTPRequestHandler, HTTPServer -from TikTokSigner.Signer import Signer -from os import getenv - -signer = Signer() - -class TikServer(BaseHTTPRequestHandler): - def do_POST(self): - if self.path == '/signature': - content_length = int(self.headers['Content-Length']) - post_data = self.rfile.read(content_length) - url = post_data.decode() - - data = signer.sign(url) - nav = signer.navigator() - - res = { - 'status': 'ok', - 'data': { - **data, - 'navigator': nav - } - } - - self.send_response(200) - self.send_header('Content-type', 'application/json') - self.end_headers() - self.wfile.write(json.dumps(res).encode()) - -if __name__ == '__main__': - PORT = getenv('PORT', 8080) - try: - print('Starting server') - httpd = HTTPServer(('0.0.0.0', PORT), TikServer) - httpd.serve_forever() - except KeyboardInterrupt: - httpd.shutdown() diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..f4becdc --- /dev/null +++ b/yarn.lock @@ -0,0 +1,1111 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@mapbox/node-pre-gyp@^1.0.0": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz#09a8781a3a036151cdebbe8719d6f8b25d4058bc" + integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-globals@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" + integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== + dependencies: + acorn "^7.1.1" + acorn-walk "^7.1.1" + +acorn-walk@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== + +acorn@^7.1.1: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +acorn@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" + integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== + +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +body-parser@1.19.2: + version "1.19.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e" + integrity sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.9.7" + raw-body "2.4.3" + type-is "~1.6.18" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +browser-process-hrtime@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" + integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +canvas@^2.9.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/canvas/-/canvas-2.9.1.tgz#58ec841cba36cef0675bc7a74ebd1561f0b476b0" + integrity sha512-vSQti1uG/2gjv3x6QLOZw7TctfufaerTWbVe+NSduHxxLGB+qf3kFgQ6n66DSnuoINtVUjrLLIK2R+lxrBG07A== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.0" + nan "^2.15.0" + simple-get "^3.0.3" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +color-support@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +crypto-js@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" + integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== + +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +data-urls@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.1.tgz#597fc2ae30f8bc4dbcf731fcd1b1954353afc6f8" + integrity sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw== + dependencies: + abab "^2.0.3" + whatwg-mimetype "^3.0.0" + whatwg-url "^10.0.0" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decimal.js@^10.3.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== + +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +domexception@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" + integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== + dependencies: + webidl-conversions "^7.0.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +express@^4.17.3: + version "4.17.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.3.tgz#f6c7302194a4fb54271b73a1fe7a06478c8f85a1" + integrity sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.19.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.4.2" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.9.7" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.17.2" + serve-static "1.14.2" + setprototypeof "1.2.0" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +glob@^7.1.3: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + +http-errors@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +jsdom@^19.0.0: + version "19.0.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-19.0.0.tgz#93e67c149fe26816d38a849ea30ac93677e16b6a" + integrity sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A== + dependencies: + abab "^2.0.5" + acorn "^8.5.0" + acorn-globals "^6.0.0" + cssom "^0.5.0" + cssstyle "^2.3.0" + data-urls "^3.0.1" + decimal.js "^10.3.1" + domexception "^4.0.0" + escodegen "^2.0.0" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.0" + parse5 "6.0.1" + saxes "^5.0.1" + symbol-tree "^3.2.4" + tough-cookie "^4.0.0" + w3c-hr-time "^1.0.2" + w3c-xmlserializer "^3.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^10.0.0" + ws "^8.2.3" + xml-name-validator "^4.0.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + +minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minipass@^3.0.0: + version "3.1.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" + integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + dependencies: + yallist "^4.0.0" + +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nan@^2.15.0: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +nwsapi@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" + integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +psl@^1.1.33: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.9.7: + version "6.9.7" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.7.tgz#4610846871485e1e048f44ae3b94033f0e675afe" + integrity sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.3.tgz#8f80305d11c2a0a545c2d9d89d7a0286fcead43c" + integrity sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g== + dependencies: + bytes "3.1.2" + http-errors "1.8.1" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +safe-buffer@5.2.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +saxes@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" + integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== + dependencies: + xmlchars "^2.2.0" + +semver@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +send@0.17.2: + version "0.17.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820" + integrity sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "1.8.1" + mime "1.6.0" + ms "2.1.3" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serve-static@1.14.2: + version "1.14.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.2.tgz#722d6294b1d62626d41b43a013ece4598d292bfa" + integrity sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.2" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +signal-exit@^3.0.0: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.1.tgz#cc7ba77cfbe761036fbfce3d021af25fc5584d55" + integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +tar@^6.1.11: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.1.2" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +w3c-hr-time@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" + integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== + dependencies: + browser-process-hrtime "^1.0.0" + +w3c-xmlserializer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz#06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923" + integrity sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg== + dependencies: + xml-name-validator "^4.0.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-10.0.0.tgz#37264f720b575b4a311bd4094ed8c760caaa05da" + integrity sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +wide-align@^1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +ws@^8.2.3: + version "8.5.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" + integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==