From 466c122dd214e18b1eb0193c2826efcfe9575243 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 19 Dec 2021 16:59:13 -0600 Subject: [PATCH 01/45] Initial rough working draft of v3 --- .eslintrc.js | 10 +- .nvmrc | 1 + .prettierrc.js | 1 - .vscode/launch.json | 2 +- .vscode/settings.json | 14 +- Dockerfile | 15 +- config/.gitignore | 4 - config/db/db.sqlite3 | Bin 0 -> 2166784 bytes config/db/db.sqlite3-shm | Bin 0 -> 32768 bytes config/db/db.sqlite3-wal | Bin 0 -> 4144752 bytes ecosystem.config.js | 12 - index.ts | 420 -- ormconfig.js | 40 + package-lock.json | 7939 ++++++++++++++++++++++++++++++++------ package.json | 79 +- src/config/classes.ts | 131 + src/config/index.ts | 2 + src/config/setup.ts | 80 + src/deploy-commands.ts | 22 + src/entity/Channel.ts | 17 + src/entity/Guild.ts | 12 + src/index.ts | 390 ++ src/logger.ts | 22 + src/migration/.gitkeep | 0 src/subscriber/.gitkeep | 0 src/util.ts | 21 + tsconfig.json | 10 +- 27 files changed, 7581 insertions(+), 1663 deletions(-) create mode 100644 .nvmrc delete mode 100644 config/.gitignore create mode 100644 config/db/db.sqlite3 create mode 100644 config/db/db.sqlite3-shm create mode 100644 config/db/db.sqlite3-wal delete mode 100644 ecosystem.config.js delete mode 100644 index.ts create mode 100644 ormconfig.js create mode 100644 src/config/classes.ts create mode 100644 src/config/index.ts create mode 100644 src/config/setup.ts create mode 100644 src/deploy-commands.ts create mode 100644 src/entity/Channel.ts create mode 100644 src/entity/Guild.ts create mode 100644 src/index.ts create mode 100644 src/logger.ts create mode 100644 src/migration/.gitkeep create mode 100644 src/subscriber/.gitkeep create mode 100644 src/util.ts diff --git a/.eslintrc.js b/.eslintrc.js index 7e3886b..7e3ce0e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,7 +6,6 @@ module.exports = { extends: [ 'airbnb-base', 'plugin:@typescript-eslint/recommended', - 'prettier/@typescript-eslint', 'plugin:prettier/recommended', ], parser: '@typescript-eslint/parser', @@ -15,6 +14,12 @@ module.exports = { sourceType: 'module' }, plugins: ['@typescript-eslint'], + rules: { + 'import/extensions': 0, + 'import/prefer-default-export': 0, + 'no-shadow': 'off', + '@typescript-eslint/no-shadow': ['error'], + }, settings: { 'import/extensions': ['.js', '.ts',], 'import/parsers': { @@ -25,5 +30,6 @@ module.exports = { extensions: ['.js', '.ts',] } } - } + }, + ignorePatterns: ['dist/**', 'node_modules/**', '.eslintrc.js'] } \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..19c7bdb --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +16 \ No newline at end of file diff --git a/.prettierrc.js b/.prettierrc.js index ad4c1a2..73903ff 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,5 +1,4 @@ module.exports = { printWidth: 100, singleQuote: true, - trailingComma: 'es5' } \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index c7255c1..3df7e96 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -13,7 +13,7 @@ "ts-node/register" ], "args": [ - "${workspaceFolder}/index.ts" + "${workspaceFolder}/src/index.ts" ] } ] diff --git a/.vscode/settings.json b/.vscode/settings.json index 9335a91..178be3b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,6 +13,16 @@ "[typescript]": { "editor.formatOnSave": false, }, - "eslint.enable": true, - "typescript.tsdk": "node_modules\\typescript\\lib", + "[json]": { + "files.insertFinalNewline": true + }, + "typescript.tsdk": "node_modules/typescript/lib", + "sqltools.connections": [ + { + "previewLimit": 50, + "driver": "SQLite", + "name": "Local SQLite", + "database": "./config/db/db.sqlite3" + } + ], } \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index c2668e0..f7dcf32 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,8 @@ ######## # BASE ######## -FROM keymetrics/pm2:12-alpine as base -WORKDIR /usr/src/markbot +FROM node:16-alpine3.14 as base +WORKDIR /usr/src/app COPY package*.json ./ # Install build tools for erlpack, then install prod deps only, then remove build tools @@ -25,23 +25,20 @@ RUN npm run build ######## # DEPLOY ######## -FROM keymetrics/pm2:12-alpine as deploy -WORKDIR /usr/src/markbot +FROM node:16-alpine3.14 as deploy +WORKDIR /usr/src/app ENV NPM_CONFIG_LOGLEVEL warn # Steal node_modules from base image -COPY --from=base /usr/src/markbot/node_modules ./node_modules/ +COPY --from=base /usr/src/app/node_modules ./node_modules/ # Steal compiled code from build image -COPY --from=build /usr/src/markbot/dist ./ +COPY --from=build /usr/src/app/dist ./ # Copy package.json for version number COPY package*.json ./ -# Copy PM2 config -COPY ecosystem.config.js . - RUN mkdir config # RUN ls -al diff --git a/config/.gitignore b/config/.gitignore deleted file mode 100644 index 86d0cb2..0000000 --- a/config/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Ignore everything in this directory -* -# Except this file -!.gitignore \ No newline at end of file diff --git a/config/db/db.sqlite3 b/config/db/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..cfd0d7d4be787412b2498d36b1a736b5d7e72b6c GIT binary patch literal 2166784 zcmeF4349dCmGFD6o_kui0C6-r0CCQJ2xAaJ+%SMR&8cGq0$u3fGMMxTfz1szHrVEH z5<43wj^iZWII*+N;|0F)-8fEyc^Q>dB{VDzTt*_eK>}}V-2pu5; zLlLm9(1nU;%+MVvhTo>CzZrV!8(L#Mv9`{Rcu}FbxTHjPB$3y+qrSa8)|&jsRYB$KsqpRiRYnCpZDwnpl zboa#COXY@+j@DRxd+LxpuXcX*nx(7dNuEk5w!OEdwP{iMa#Q7+=<>SNtEv|*UoDr; zU$Qk2Zi)oMO@UB27W9T9F>hmIIP7m~@VkAb^8Dzk+C>YNtM{Iix>lvUs&; zwROomB!#Y&qsu{nrL|D2GnW8)HRAIH%ckSxf zv$eUaetTQ2y=TCmrc6)+jxt~^?LD#Wu}omqYgR`WEr-*W)k1wW`1W>mHFc*UYmRjH z)OYo)gTu>InUG!b%78Q0-gLb~jU8Q`z1_9#Jze`V&KbzNv8gc@Y-nzXxf>gr0!@wH z`sPq`AQ)?E7|46DB$?!s9J)F>dj4MigUp~l5D2+r;l@y?$r}ze)yLdHU(DYSb_YWP z#Tv-qe@-Z0q$w0`_C&l*F<-#vZfK4)#+v=HMt>+WP^e7$LyD9rvK7p$YyS|uYO3pM zs^`@XX|3_KlDW97Om_rS0*|%^yyjQ^kXEYE4zr_-NBX)J+R@q5($U_1U0YgJyL4+q zec0^@M%?vYPbe1fhdlmzx7QaAMjA`yHOm*RTvH2;N%}(2APlg^>t6uOKJ)3muX`;e_cV{dm) zM_Z}f6WiAV&p&IRuB#PjQGN9xe5f134gOF=s3{!tHPu5BX^I2}GSyseNRws9|4yp5 zlfrp?>nOb{)y%h!Gn3%E^46)GRwNczm*|9+_NLgr?%l1>-P>B<+tZ=`y)`MrR!{O5 zak)(_E-uy`QpHzaVQON}6kW|@3cu0ova-@H7SAfa-tE=vZ1t%BIHX&2Q;Qe*bjl1> zwng*SZ*6SwG&eOg#u^&Djm?pIZ`d6PL+c%md6VX;ZCTh$ebMrHwd>{58=qf_txf3= zSHW6|`J&q4Py!ZnvCpTA=W3r3?LCLMfHf19rbIQUV$F=}u~2(0UG-i2(@GhXB}%sl z78Fg93e3Y{#e^I_tA^H&#$BbAa=a#AWp!lQ-@(dqT~@u_8Lx}KuK`cUlwx8&pRmy=Jv3OD0 z^^7%nYpml|kLHgYrO03|uB_B4+qGtpd_^S-CjT-Hsr<~h+25yk=p*#R>RJxOQXR)s z$Fp*UUc_GS234$NJJ=oD-5YCfj1BnHkRjNBgOl3p+hSAU%u09+zld+pxJO&n^b0Xr z+jPdz-IVlk)}Y?3JG}^0vpIA<)ubB@jb65ThRn`!LM8Ol>w@&U^jmCK=!Xap0U|&I zhyW2F0z`la5CI}U1c(3;_y;9m?0fV-&OGtzk@pA&L8mvczibA<>XaT3Owt-bdcV{s zy&?$l%_d??P|9=V6pQQhKw=vQEhyW2F0z`la5CI}U1c(3;AOb{y2oQn)IRZvK zP6IINFg3w#^aE-CTYGjLmDB8uAjPo;QFfTy{`ATI$RB|m9B_uqHDA( z$0ay_?);APqt4ULL(Wd;R_6j|z&Y7D*6DD(<@mPaV~&R$_c;0-yBr%F%N=taZimzU zbNkEoZ`eO$f7pJ`-e>Q%H`a?HSugZ4cWn+4^leY^!b4Z4T?( z)?Zj(u|8-0nDw-^&AQ1Nwccu-V9m3dEN@soV|l=G+;Yg$YFTZWWAR$Xncp^l&-@kh z)8lxd={ zMi6wRbL+ct#c8y8ZfncF7_2j@TU}edY^$frQx))pg28YkxL~w0RTKiCEst9sbb|06 zhcZPJis51&kL+c&tTAr6^2+%=*TjmOU|<9Xl*3lSE+* z9B|8tLwDGfiK0*lIYF=NJ|rmXu0iPW79+Z^|QJ4+K(~^4JK2N~s4fl!*eYrO}nn>zXd7%Fb~rrJ^tr@*^@H*>6|ICnSRU zNA~3@a-x0#uiqOEWBuGvzi}D$W5@PN%Gk{M?XfFklJyJ9?p{e5ol(DF&p4$-6lQ7a z=dKC{{K0_RpR8VYsWM6wYM?}Y`~J3$E?9EJYL_nBm8XnMh&gYm%*yR{DkBm#D}_b* z^Olx7l;VWy!ZPHP*_0wt$X6>K?zAd}q5x4ibaJF4M=216aqzo0==J#hP-mzytW?x! zlpSf8l)TIux7n54WR3l@yH!$hGHUGKHBONR*4XR!MIzylJE72>;}w@ERKxvCtGl{l z2ecJtB}e8c&V-C1Iaz8%k>bdZ(Gv*<-Jr1+NwH_jxWlg4k}`T^_jXCKX2|Gi9;a9a z${6(d++j}y%A?W6#wq4RiJA^vJFHPjvRqTXB8ox<)?!6RN9TT7E!Ze2ro_Dhaw5OM zrWg}y2+9GwRWT&h5VRF3`XTGHQc`r8^{KZjLZUwYi0s}b9oAOIAK5D3k@*a{tGwDGi%{0Ojx{|yR@Cp+Rw-3@bN<0ZmArDg;3n(ss{B@;>@7GT3KQWn z$>%-(e2H$T4;^boyeH9y`yJ`yuEpKepgaE+hLhqm#pU3E>xC8Xns*B;HY2|((ReM# za9XXhT5ftyB++=4R?CU}X^wE}5h|^o>IfzO^1{P2B`-LL#pI$uhJG2QO39yDze#pq zvVPDcOq9GC^$SfH=NVMLU?75_hZ6Ox81GKL-|ISBdm%(m`t2D>7A()1k*Ew+BCORwQbD+11eHHff%W@HPP&Hi@c3_+YJymVrbF3YDso3?zmTHW|dZwrW z+2Q-1J4_UVY2|A?Oy5-xUBg*QQCqW-n zJ({drt_RzSB@?E)?6YH4ff z*^yaiR@jgaeN*h!L8Fr@sJB9A6l!Dj%f1rmglZa~g!QooC;2+%bCdZ^=Xl+33{}?eTRvfURex4`kL3fdU%O^F4?BMB zm}cK$d)*eYUb5y}X2REay?DU%lu0lyFkI1p+p^MC>%3rlTQWO-@2Ig>+V8MFZd;~* z)BJhkR`V#+2z{e?-t>~;pN&si|73g0bf^AR#|N#wMx)JYe9^Gh@o{63w8k>tb&K<))U01(`;F_bj$b&ctg`tj^B&WA;~IOf z^%2)6%ty>QCYOGLc&F)0;t!m^a(&ja(D;4FXY6kp_E}!B*NRonInKX29EK0u9x@$t zF1P7ZnHjPo@Dxg{?CRlI#xK1 zrU}mX+E3_r8{1r~qyoD|YIl@aD)nL4E3OjfF8gZRH*IC+3*wtbuf9T`C&o8k4jgif0Ld!jLI}U*-)de?(KnC^cjPI z?r;FU*am&VzZSu&k@>x?t!=R$7>iC86~38osMMFP-Vu{i$Ap*chLL*sb_lt`i+P5L z`s65m;%l<-jlo$jXtEMRX~Nf?hB117a{hquywy;shp7O5;cJ+$e$A9Ys;`bU%+|AU zW%y_i0xR^x7f&344)}zxj5Ad0OAo+@S#70KrGziL4CD0p6;LfAe5nA|v}Alzu$2kV zsW)VTe9>kohA9&;#4UUQPfkbz8N%ns7-pqJaaV=m!SKOTk(A_fC`tFOmiF$9PnoQg z@YxbW1UYtf)b~u9+q)m4Sj)-c!n26pqXN|&7XC#Q#Rp$EgwNy{%Jgg;AHHA;&kR+Q zr!#8uX+#=^PesC~(n!N@;i&=jh=jvlcQE-uT=?X8L#@7aU)|o8<{r(^DbzPvPWb0s zLxmo{K(a!@ld7QjIYRgZ3d)A+QSyZDZc$1((c0tJO>B5vWMX+c4`k81@@&umEo z|45}_jegL?meeo=%c(~NCK%bhpqLDZ?BSv_?`qX7ia1q{zPhDbii|}5&Gk$&)9zwa< z#1*W_HI3XXU$~kf_Z3xc7+)7IYvc|J4{Cv@XQd>8KY%R=o0O80I$cb-A4SnjToEpz z#ED5O!bL=_PFNA{vl#NBB4OcPvmsXxb+~{J8k>qD3-@Shz;cDVGiq>NtpR*z6V7RB z;1|wj)__ejN!H+u+FD$9GKz2-zU-h>n37(QRx$tJ>4yf&L?BJ?9Zm}DXxQSk+ZzMZ zKXQ1CVRmXp)}YxWca$0y-DD=op&UbnPCJX_pxKZQ-&DM}=NcwvP9Hg--Za`( ztyi!`Hq_p5+Q$x*OEcwT`w((9Yo&;x6gbVJDJ?}H)R-wnYSKnRiiUB98r==1cGSBJ z<2BPdwyD&x<=m=Dm!8hCMI#-1YBp=7+l12L6poE)=_0|~21v)|VI-v6Fv+k6zP@J8 z!_c%rsc9SQu{S$-%EmgpC$^VsGo^K}8A96CT50Q4jlx@WRa#oVd*x`utki>(o@|j2 zc7=-a`cpEZh%!ALWBCvwEYpgxR8=QDEKAZN1pJG&z% zBs5bl77ViN`B;Lz`rut&i_bQ++w(+2F3c~i!9U?k_gwYQaJAFbj9aT!)Ex^t$sLCZGy4<~UTKNU8Y^Gjm207|WG&RLQTL)H9LQ~exLvW## zFbBao=#g@u+-0&ItCXB-VAK3=wHZcYK1?65q<=Lhf5nLc>0eFiuizub2H11P9Hv{K zK$F@_PPjxS_&YiO|3m8h|GT6HX{l5tl}l#VuUtO@Kl{_Jhg|)xjV`}ytjpni%lSR$ z=bayOKIA;^>~Jo0j(6G}e{{U&_>$vs$5qE^$6iO&QR&Ec=f402=-tQx}!?qUNI@@epk@Z*B?_0lOecXE4ddRxOT5fe&{%m>8@{;8#%NffK z%PN@LKhgXb^S_xtYyOD&f;n#9WnO8XX|53eDt=e|ocOqSRXi>BhzrH>qTTei=?&Aj zO`kU1V`?|8H_bQAFqw@%Ha>6s6wKxCH+C7f7;BBA4R0BKWcY^R3ByI0#lOQa3r0%> z{V(+2)<2=YL%&WxM?X!Uuls}U1>GaMGrEJi2HkSqbU>8+8Kbz2!VGbcYsV&9_hl--B)$J5aLEC`=KPy;ydf9n9IQ)(>Y|C4z_u1$#903$onuUafZ0E?=g0 zCiWPG8u11mBD-91Hwvrq6xo5iF05I?V`O=`yYUfGJx7*R*l85TiOe-j&A}?^&{UNj zW#{Cyt5tZa?4vYtD5OTvQiUv8HH-``s*54xx$?&Y09N!**Pt$F!1hX zIR!g3!ldl4e0!!anSLZYx4aokUC*CnrAEZ?0oMAJ>_|Zq-kbTCELUnY3i%@VnJmNA zV1!9;a>^(Q>eC|oBdk=#HtnM@$fsn*CT}$gi^TNm15MMDTBg9tj@W{dYrRZ%MB0op zg1gBwT$@xGQ!QN1Mg)zHCM!{JTT*J(<7BxN8wN<7>3XJ$t;b^5^+8#&f^~Qg=8UFt z*J3X7N?GoRHL6-Ps~6aj!qsRyDL<8E=hmsO40KpoR`IIL_A6z~IV-XH=#R3Z1uIzf z(J^JY717M<5AaY~u}RC-*ToH1D6o>n%TOYX&&m$uEJcaXH)S~mOVSbrLM*ppai&BA zyj50g;v#HvZs4}Ef<+6B!g%#9kXV+$@^crcG|`b|S;g~J*;zl_lX@C+YEgFdTv^eA zd1=`rsRyH?W`OLOzAQW0Jy(5~y#uF~oiVoBD0tL{KhqIr$8+YOfavD3oZ{J;bxBE{ zbE|3@+OEW`bY1+Za^<&ZTcClSF1yXdnW`GD@A9&OMOCPVwC~IEb0Vr)XrI$?TAV=2 zpesUJv>Ibdd@5>HNuUJf!3>KM+#?PV^GT6Tb7+WJ!!tB)v2s$Y8E=YEUS1b)-m0qOf{D! zQ#5Z(cATA6Fj=i`a>S11=2WU!v=8tk4VKgcTt0CCmJBzUU2Vby^*wrBf0>mltibB0 z9A}m-m1Fx4LlP{*Ri?K8Df=%hRohVZEVE)I<2ChW9ana+KpwK*V^XgOrR0qb5&p)mnzMU zNZ@wmi!ju{GF;$bLH$z=t_!>;_=(0HkSuq)$2~8v?dxq)JP@b)of|^AVFz%(ai#zhsLVJ-XKnr^S0s$MwC^pKNoD z4@rAmpKuwS&4vd3NW)L`@6&zKU^RZjxW@W(*VkO59D;PxdC>6{+c`&r?Jaw^>5JB0 z@pY@t++o^mdB|cGcbaF~tM$LK|G@Mq=XBdE;#2y&>?_1+dYv<@yJFjBdQ_ZeYnN8L z&O2YV|HOWq_%-VnObaY~9FI%iw|?98IajXqGyCriUy%Bo-HvB%cN(9yZZLmeeA%(V z_NElEHe3E+Zq`etI?F}#U-g$PZ@7AmwNkD1HS-$hTrq0f=U8lMbv|c!!qq2k(>-SY zviU{BYUj7~f3xp2zU}&*b&6%B<2R>he9$$~(P7#Ju>}4@{H^P|(j|w}(5Y{d8eG?$zp@-L{Hys5 z=PFyV#bXN?^G(0j&qrk>e%ROUg&nOOrNWo+qfZz=P9;8ZLuWiBhdsg<2Yj4@h3eiw z1UiXWK==Y4E$wn=tXK;s%Lt#x&q_F+fdz!msh_{_%k5{ApTFP^@YViV?FUeIl_vlb z47{-HK6#6O!CSm~u|NIIUQ;IVt$R&tPfJ_1jD>_})Q_RBKKRHlpE@lk4hT<6hVkl0 z=tQ=le(Vn72QK!p8zqSdPi0Et^+aGrzBd9L4YjhLRKEx|)wgtLWl5D1{#hjoV+U#x z;YqA-1nc{WbbTW};p3S^eG!;c;e&oy;wB$M8A=y5#1VJW3KtV*Swrg5zOje5tkD%`0#g)tz z9%gq7W0l{py&LrKaA_CJJW}r#7T$*nTTTJH5{zNp{S(RobFe7Pq*hI=bPeeGce_P_9{> zlb{JG62t4VA-E>|{sSX#jp|pbU_<(z{z$#n3ZUuA3;?q2=2JGd;;prVX}!qsK@M6i zHE*^0=@v)2>d;J>gDQLct56>}uC+4B2D{La6`5=XjABJ^HqT-?-b6EIwG3~9Lsd)D zHwlE6WZq=Jz|`WKOruzoIgMgr@-wx^y+FM=^D{i2`FL|2YpPA(JQAEY;O3blOEvFw zmc-nlXGv7!J#qMGPNp#K#K(JRmbD-6-5DS62M!J0a+66AGczYaRH>}N>LTgtf}g0Z z?x4}0&`sw!1hF2Pv7G?k#Sh(3fBG)|urKp5X3-h&Me7TyU;D2&ZsS4w)ehIF-}g(| zD9wzdc1x?LtH0rx%rq1!ZOLBkXMUDF_%pvBtWfir-yfPZK<13mm5Dc=gfIagveZ~g z1wQ^Tgi@|P{*f~E31oIys%dN4%W}NRF6rIMNEAm!#-)k+JYxswEprS+{p5e$p^wpn zCLxq0o8rVM$S9N-#y3W)@`gub$Xh&wyhU1h3z@u$5BteL3i+Ax4j7=wyV)d!+`*F& za!}2hQ3y#h2|@k558jDWtw9LfJD85fh}(y#flXTjt7^m0Fj&&W{Xz498VndTxcMXm z6PmJih`?wDpRxg~!CwE^E5P{wCTY3=Gt56M#ijM|EBz1wB0vO)01+SpM1Tko0U|&I zhyW4z|D3=ilhI@K3|^t1T2~Jdb|aBUAn2WB#FB#-?GI7Xpq3o8j(>=fdbQ-BrTs&c z)M3d~ermOUDkmi;`u{rV4T%5u|G8?Z`b2;T5CI}U1c(3;AOb{y2oM1xKm`6*5Gc^; z(<1^Y{~zQ3lmGv}LcvrCB0vO)01+SpM1Tko0U|&IhyW2F0ze=m{(s8<$M64z!fS%` z3+ZL)1?gGo3F&>(1&BJoPik=$JD#(5+s0d7G#?VD7{6yYrVl{Tf3%-?6gIEyA0t4V zMHwO^Xrd;hf>gmW(98uE5WhiY0UzYlS`HZ&c_iXZBzDhCZLO)j5Zi?_vD^rDEFJ1X zu-=7jGMd21!lN6vm^l`6m(ON36%bC_ke4@hI#&OGNn*&5K82i(Deg zk7#Z@3cDW@QGP^o;!)TwnuzivD#fF)u{IIqN7NOM!mi{*lpj%NJPMn;6H$Id9r380 zh{j}oMD0$SNhlFgLH?aq?VnbM#UzYWk7B5QhgtKN*&(vOFyOz#r1{I_FtWd5t*u6f zLGu@E#bgr71l{I*y3)Bswl09ZN)c5*-_ljv=BviH?a!M-x$= zL`TP?B}9}b(UN#{6cOb~bW}V#l8EvoIx-#|K}2~H9TATf6H%T-i{sHEBFd9!5$yk` z`@L~Cc=`HV>22vP>DRCez)z%CrB|eXm%arv0=_JLPI?-4qJLcaAj}N7EZrxalTJwe z(qU=8)Gf71+ogJGqqIhfN{gf#X_gd{Jkk`YLK-KHl=3AAkuT|75INuVOV>|buen}v zeb@C(*YmFDT+g~b<@&hmG1muRcfki-7hGptce(mphg^GIyIs3nG1pet23MVHnQMWo z+BMS^aLsU4y2@N*T*a}ME=Wm^FI)CE)G3;3I9p{VAuR6cr{EYLH&L^B7 zaz5<5>b&H<+j+`)%&9nUclN?wg)PoT=Vs?R=St@iXRUL#Gvf3)r#UCW4u&PpLZ{@k zIt`A$IDYT=wc}@w*Bw7}e9!SM#|w@xJ3i-l+VLdpZumjR`y7`Y_c_ivPB{7<`#4z%Ge*+57B=?0fCI?YrzT`&Rn~d!2omeSy8& zKGPns&#+h8%j{$9#r9mg-EOk|&GtvzZ*6bdeq#Hv?Pc3{Y%kirYWsriGqz9Kp0It$ z_OR`$?ULIn_|1&)@$p4Jr^5on_=I@m9{0eTG)LtV)NOi*(Tb?+e&POHpvE? zOyxlY;|HzpgMAwBv!1h_u=ZOITlZVL zt!>ur)_Utk>l$m+y2x5%on;MKJ=Q7K3hOxQNNc{;X*FAQmbWdxv;5NXQ`p(@70Y)m z-?Th$dCu~zjqItZz#9U~W%vQ5O z{EPT|@z>(d#Mi|iir*8zCB7hj8TOfcT6_}rn*5;nKJl`6pLk9@A@+-h#r&1=Y8Zjy^5^Ka+Vo3CeQ^X2!oH$a<7oDP6)WOb_zcc;P^i$JordLegHGR|cyy-d9 zv!+j(K5lx<^a0aDrUy(HOlM4YnfgqJOnXhcO}k7n(^k_4Q=Ms3+zC#*|^TQ(zpb6!kit9_|%a95NY|pKSu?cjht(na0}6EYaw-A zTLG!_+G0o@*XBWLzjiC6wrgQXt=GJeTCPon)O>9Mq~bLhQq#3jkQ%QQKx(+=f>eLa z0;%pA>`tN=t{#Lo>Tg%~K>F9KosjP|@ie6#L=Z{_5&zNPl^?2-06%&4KjI ztFS6c_w%c;Q;P0qSMGrHjVt>g{ppo1NdNDZR!Dzxr5V!yys{0_*RR|L>HoR18q(LU zEQj>fD+?k0@s+ud{^$zqxvKl&l^~=)xZ;NNl`E4W{f{f*0z{q7YJ(to=G4YTe$mk&Vt?aMuoe(Q2Or2l$(2c+M;+yLoIm)Al1;$^J$H!fF0 z`od+r*Vivkh4lH$z*+aT%fMOp)yu$H_m#`QS@-43z*+aD%fMOp+-2ab`{IMh`3nys z=g&WgoIm#MB4-_TryC8k?fi;kR;(;)vAAbO4_}KkO^@;mY{*T^|#2&xD2GWn*k7XXae;TA8zP}XG z58aRDAH5%C{^0#6^FQ5>GJoKHl=+cMDD%UY@Lun~gfhSH63YDEODOY0mr&+wmr&-b zmr&*_mr&-*m(VsIyo9##z@;ik@4w`S^wK4)%f(BRAieJr-u>Q7qanR;sR+`0E}?DQ zeF<&j{3W!Fa~H7|XD{x9^vp%HjnfxfAw6|*6Qn0E;=N8>#CsjTi1)hdBHruHi+HbN z7x7+4FXFxWFXFw9T*Q0zUBr9EFXFwFi+Hd1T*P}Fz7Owp$9;IOL-%z+dhos&q_^L< z5z+(qt%P*{eG4Gnci${X_ul7&bkBX2koMj;4$_|c3L)*j&kkwVeW;_|_wI$X^WHW{ zJML|SwEf-qb+>2JU<6hLo_Is_6HeW!gVi&q0ZMv`n z(#8v$A#J#TwCgXRJlihZ0_oNZ9!R%bKx^E5p#;)R7qE^SFJKSkwtEghy5SzI*ZO-< zckAv!N!H$jwz1|Ow2jsGpd@woplz(W2Z^n`2d!?!Jq}2t_h5~d-;I{A>~6HWrFUDf+5$DiE^seBfBjyt;r(y?dPLptUxYG?FWw9k^W zXrH6b&Vh8~S+vg)XOU0wS+vihvy&h#Jd3mo&W?sO|18>P-q{>TbI+oE=A1P`DxE<~ zaGlu)sq;)1q>eMKklN2QLuxy-4N~iw+aR@^Sq-WA3~E+9vk+3#8Ki1FgH#P?kgEO+ zQq`S7s=^tdD*WvXP!;}q2B->uIg90>OhV)mb=Rx|*)3-wUi_>99-#qPw^yjCi zLi)4Qz+ZUdv<&G_PXmA9|DFc^!cR^Ef8jq*1ApQ5)4*T&Kc|4d@Y*ThFT8pR_zOQi z1^k5{odW*C4^IJq;RmOHzwpYbRgnJ2sily*Dc~>s>nY$beDf6W7hXCA{Dl`!0)OEfCxO54!b#vSeEnoA zq|cuO{=(NzZiDozCxO54m6O0<`0`2MFMR1F@E4vt3H*gGo&^5F7fu3y;qxbfzwo(} zz+d?6N#y_RN#y@8Cz1bWP9pzjP9p!OPa^+MpM*sC)CuJO)CuJO$rH%`pHCqFCr=>% zPnDA-#%nDbI!_y>OK3)sygU8X+ zdEj^i()*7?3n^SW4(*9>@%ThY?>jyo(tD3X>m=NB99m1^?&Da;^LIfDDV)0tS|s7@ zUC8asUC<&4r|&{(Pu+!AIC&SAKXKs(0$ARY1dI`(}dkeQMS&byCLm33N572el!MY+fit9gw~@d z^RALK0K ze-P4*{rD8z*53)~hJJhs*7svg*Y$6KbZ!57NZ0h^Q?R;!DWrA%_!O+_p9AT#{whe9 z_In^*(vNjq3{yJ|BB&^HHCe;?M} z*N0Dpw{IMzo<3{`+lj2yfiSY@L zPKcu<6>+qU@;KT?nSzp(Drg(y6(lArsF!gHTHRO$Ycxhds~fGL4U{NoU89s@NJlDY zt0NR0q{RrP2%m~V6r*4zB>8Aec}OD{Pj!ul#93&AR4@HRkp2r2`XK^DfCvx)B0vO) z01+SpM1Tko0U|&I{*ehd3_4LSKKi4#!f`=>J?h2e?=~mY>YdI1pGGq;c+R|-7LQIP zqCAOCjYp>tQJzGn#G{jmC{Lo3Jc&+- zM=OXZPofp^XgLw(Nwhp3EhC~liI&Bqr9_k`(b9MB|3`>CPx6s?G)zQ!5)H?rAtK6? zXeb^H5>cK+gYjs9i1H*Fh)4ZIlqXStJnAE&Jc;_^Q7;kYNz@yUdWa}bqMmrvO+F?bCuO;$4$wTnxc|?>aQ3(EALqvHJh2YO~i6~E^5d68C zi1H)~!Jp?4QJzHS#G|u`C{LoZtzJe%c@l-V)k}#e zPofaFdI=HbNfhE%FD9Zqi5A79i-;&sqOhs+LL$nOC~WGyfQa%W3Y$95C!#!w=Dl0KiNgmd%ZX%*QiNd4i1H*l zHy&L}M0paejz`xJQJzG>|6ff+c@l;FsOyL*Pol6N^(rFDljzuY?*F$Cd7k89-Rce^ z%9ALpTis4Xc@l+ntIb4|CsA0p8Y7}SiNd^Ps)~)ssQJzF$-D)=xTV*+lPIiP?IfZ+iNdh-jM3g5{h)3N@M0pa0 zc+|UyC{Lmgk9sE&+Q;r~w%Tpw|6a@cH7S(_~d;^$4B#-Gy15}O{zql%8e z^8^peRuzGe@K#OsCsA0pdWeYfBnn?y4iZtGL}A_P?L?F(QCPQn zfQa%Wnir4mC!#!wLOkkyM3g5{h)2Dbi1H)~@u>F@QJzFy=>OYw9fIpI=WPzN?Gx5| zi%Wdkw8L1a|2$;V4_^Y{^*hLdd0H^6R#ohTlqXVHuBzAwDNm%ZURALYQl3b`@mDN_ zlqXV{U#XZ0DNm%ZWK|IfDNm$h0jY_Q@Yf|38nA z@;OeCsGKVtVo2ECsK%=thfj%Poxk$S#c6lo=7Xm|G$aH&i61_ za4A_ZPYZ^XfXaA6$`dIp1yp20$`dK91ysfnQl3a*F`zP*kn%)Y3rNQhQl3ZyfOIq= z<%tyH{3<1clqXUM^s9^_q&$&Aq+ewuA?1k_Lj5Wu2q{mbZu0;6I`}ua8d&f&vS6MT z4C~gEsf3g#QdqdAOd+H^k;2L~Wilb-*A&)31f$<@GuYsi9mS}?A&noCG|BE@x9)r6EM z(h5L2hmi6_ih)086H=Z?G4SWDgp?;z4E#BZkn%)|&gw0MlqXUQ{4tY|@Z~z@J+PDNm#r_;WKM z<%tvne{LeAJdtAH&y9qXCsGXjc^e_+iS$f7a`?|6a#Z~z@OU*DNm#r z__LXi@|ldHv}aT8fEPYZ^1R&gUC<%ty5S;Y;6lqXUjAk`C6o=73^XIw`}c_M|t zpK*bZ@lQ>A@FD1K}dNbg}|S2J0azX6as(7 zZG@C3QV9GRw-QpGNFnfN+(JlsB89-8aWf(1i4+2V#zjKP6KO4d|L5%C-}rK1!6jtD zJS`a3S;a>YQl3a*omG4!A?1k_hOXly2q{mb5co4*Oh|bmg}|TjB0|a&DFptE7ZOsQ zNFnfNynvAML<)gFclz zM@V@hg}|Tjv4oT-QV9GRA45oaB89-8@zI2oC(;q*|8w^6Z+tnhU=LX^PYZ^1R&h5W z<%tyi{~3goCsOqPrxQ}1NYVeFMo4)gg}|Tjsf3g#QV9GRpF&7^B89-8@yUdgCsGLf z8LuRyJdr}+&-f%l$`dIB{)|r~q&$(%CIA1%4m;#V8> zDNm%efHXo#c_Iw}(l8ZKz@Kq1A?1m59{K;AJ^UMA4lH;9Sujrv#&uTn2`NvcxX!AUkn%+81f=r_DNm#r z__KzP@!C|K|+vS6MTjO(mc5>lQ>ah=r)Ldp~A2tXPoq&$&g;LqiRlqXUQ{JD&f z@fAtB|7G>80u&K~}aF9#O9 znJk#61>-uaO@x#uQe0=Xk&yC4Iv0@MMo4)g#lW8%2q{mb=&Y_Mq&$&g;E#2LlqXUQ z{IQmh@Wb5WNVS}?4$>a!41o=9PxRiBxV@@yKko=73^XP=Rf@8Eegp?;z4E%YRkn%*DPyYXn9d^z~p;0Ix z3+8FTu+FM4pOErI3hS);@(3wUq!R#XE+OTK6as(t~j)Qo=DMIbr4dXNFne?pPi8ML<)gF`fP-hC(^Ox|8w^6Z+tnh;BjQZJS`a3 zS@n%2q&$(rI;*}hgp?;z4)NO>ZKz@L33gp?;z2>jVMijeX|3V}cSMiNqHcIQl3aF$^XBx!_N6ASny=BV4fBX>#X`J2`Nvc zu+FM)5+UV@^cFxmk&yC43V}cSCJ<7dNFnfNUj-rMi4+2V_LUP-o=73^XI~j1<%tvm zfA*CUQl3a5@Mqt6Ldp{<1pe%k2`Nvce)9i0d-ylL99VFGESRSS#X{G zgp?=Jd_d|Yq&$&A;Lkn}A?1k_0)O_o2`Nvc5csoi1|j8%6as(tO(�kwW0lzG;M% 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 X)dML`&AY!aenA6v<_OMnw3Gh;eWO;| literal 0 HcmV?d00001 diff --git a/config/db/db.sqlite3-wal b/config/db/db.sqlite3-wal new file mode 100644 index 0000000000000000000000000000000000000000..6be24820a3501bba919267cca814cdcc023ca2ee GIT binary patch literal 4144752 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
FOWDSEG=DDynf|6VYZYHr`5MMG}e|SvzsfF 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 literal 0 HcmV?d00001 diff --git a/ecosystem.config.js b/ecosystem.config.js deleted file mode 100644 index b18a7af..0000000 --- a/ecosystem.config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - apps: [{ - name: 'markbot', - script: './index.js', - env: { - NODE_ENV: 'development', - }, - env_production: { - NODE_ENV: 'production', - }, - }], -}; diff --git a/index.ts b/index.ts deleted file mode 100644 index f02a3e4..0000000 --- a/index.ts +++ /dev/null @@ -1,420 +0,0 @@ -/* eslint-disable no-console */ -import 'source-map-support/register'; -import * as Discord from 'discord.js'; -// https://discord.js.org/#/docs/main/stable/general/welcome -import * as fs from 'fs'; - -import Markov, { - MarkovGenerateOptions, - MarkovResult, - MarkovConstructorOptions, - MarkovImportExport, -} from 'markov-strings'; - -import * as schedule from 'node-schedule'; - -interface MessageRecord { - id: string; - string: string; - attachment?: string; -} - -interface MarkbotMarkovResult extends MarkovResult { - refs: Array; -} - -interface MessagesDB { - messages: MessageRecord[]; -} - -interface MarkbotConfig { - stateSize?: number; - minScore?: number; - maxTries?: number; - prefix?: string; - game?: string; - token?: string; -} - -const version: string = JSON.parse(fs.readFileSync('./package.json', 'utf8')).version || '0.0.0'; - -const client = new Discord.Client(); -// const ZEROWIDTH_SPACE = String.fromCharCode(parseInt('200B', 16)); -// const MAXMESSAGELENGTH = 2000; - -const PAGE_SIZE = 100; -// let guilds = []; -// let connected = -1; -let GAME = '!mark help'; -let PREFIX = '!mark'; -let STATE_SIZE = 2; // Value of 1 to 3, based on corpus quality -let MAX_TRIES = 1000; -let MIN_SCORE = 10; -const inviteCmd = 'invite'; -const errors: string[] = []; - -let fileObj: MessagesDB = { - messages: [], -}; - -let markovDB: MessageRecord[] = []; -let messageCache: MessageRecord[] = []; -let deletionCache: string[] = []; -let markovOpts: MarkovConstructorOptions = { - stateSize: STATE_SIZE, -}; - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function uniqueBy( - arr: Record[], - propertyName: keyof Record -): Record[] { - const unique: Record[] = []; - const found: { [key: string]: boolean } = {}; - - for (let i = 0; i < arr.length; i += 1) { - if (arr[i][propertyName]) { - const value = arr[i][propertyName]; - if (!found[value]) { - found[value] = true; - unique.push(arr[i]); - } - } - } - return unique; -} - -/** - * Regenerates the corpus and saves all cached changes to disk - */ -function regenMarkov(): void { - console.log('Regenerating Markov corpus...'); - try { - fileObj = JSON.parse(fs.readFileSync('config/markovDB.json', 'utf8')); - } catch (err) { - console.log('No markovDB.json, starting with initial values'); - fileObj = { - messages: [ - { - id: '0', - string: '', - }, - ], - }; - } - // console.log("MessageCache", messageCache) - markovDB = fileObj.messages; - markovDB = uniqueBy(markovDB.concat(messageCache), 'id'); - deletionCache.forEach(id => { - const removeIndex = markovDB.map(item => item.id).indexOf(id); - // console.log('Remove Index:', removeIndex) - markovDB.splice(removeIndex, 1); - }); - deletionCache = []; - const markov = new Markov(markovOpts); - fileObj.messages = markovDB; - // console.log("WRITING THE FOLLOWING DATA:") - // console.log(fileObj) - fs.writeFileSync('config/markovDB.json', JSON.stringify(fileObj), 'utf-8'); - fileObj.messages = []; - messageCache = []; - markov.addData(markovDB); - fs.writeFileSync('config/markov.json', JSON.stringify(markov.export())); - console.log('Done regenerating Markov corpus.'); -} - -/** - * Loads the config settings from disk - */ -function loadConfig(): void { - // Move config if in legacy location - if (fs.existsSync('./config.json')) { - console.log('Copying config.json to new location in ./config'); - fs.renameSync('./config.json', './config/config.json'); - } - - if (fs.existsSync('./markovDB.json')) { - console.log('Copying markovDB.json to new location in ./config'); - fs.renameSync('./markovDB.json', './config/markovDB.json'); - } - - let token = 'missing'; - try { - const cfg: MarkbotConfig = JSON.parse(fs.readFileSync('./config/config.json', 'utf8')); - PREFIX = cfg.prefix || '!mark'; - GAME = cfg.game || '!mark help'; - token = cfg.token || process.env.TOKEN || token; - STATE_SIZE = cfg.stateSize || STATE_SIZE; - MIN_SCORE = cfg.minScore || MIN_SCORE; - MAX_TRIES = cfg.maxTries || MAX_TRIES; - } catch (e) { - console.warn('Failed to read config.json.'); - token = process.env.TOKEN || token; - } - try { - client.login(token); - } catch (e) { - console.error('Failed to login with token:', token); - } - markovOpts = { - stateSize: STATE_SIZE, - }; -} - -/** - * Checks if the author of a message as moderator-like permissions. - * @param {GuildMember} member Sender of the message - * @return {Boolean} True if the sender is a moderator. - */ -function isModerator(member: Discord.GuildMember): boolean { - return ( - member.hasPermission('ADMINISTRATOR') || - member.hasPermission('MANAGE_CHANNELS') || - member.hasPermission('KICK_MEMBERS') || - member.hasPermission('MOVE_MEMBERS') || - member.id === '82684276755136512' // charlocharlie#8095 - ); -} - -/** - * Reads a new message and checks if and which command it is. - * @param {Message} message Message to be interpreted as a command - * @return {String} Command string - */ -function validateMessage(message: Discord.Message): string | null { - const messageText = message.content.toLowerCase(); - let command = null; - const thisPrefix = messageText.substring(0, PREFIX.length); - if (thisPrefix === PREFIX) { - const split = messageText.split(' '); - if (split[0] === PREFIX && split.length === 1) { - command = 'respond'; - } else if (split[1] === 'train') { - command = 'train'; - } else if (split[1] === 'help') { - command = 'help'; - } else if (split[1] === 'regen') { - command = 'regen'; - } else if (split[1] === 'invite') { - command = 'invite'; - } else if (split[1] === 'debug') { - command = 'debug'; - } else if (split[1] === 'tts') { - command = 'tts'; - } - } - return command; -} - -/** - * Function to recursively get all messages in a text channel's history. Ends - * by regnerating the corpus. - * @param {Message} message Message initiating the command, used for getting - * channel data - */ -async function fetchMessages(message: Discord.Message): Promise { - let historyCache: MessageRecord[] = []; - let keepGoing = true; - let oldestMessageID: string | undefined; - - while (keepGoing) { - const messages: Discord.Collection< - string, - Discord.Message - // eslint-disable-next-line no-await-in-loop - > = await message.channel.messages.fetch({ - before: oldestMessageID, - limit: PAGE_SIZE, - }); - const nonBotMessageFormatted = messages - .filter(elem => !elem.author.bot) - .map(elem => { - const dbObj: MessageRecord = { - string: elem.content, - id: elem.id, - }; - if (elem.attachments.size > 0) { - dbObj.attachment = elem.attachments.values().next().value.url; - } - return dbObj; - }); - historyCache = historyCache.concat(nonBotMessageFormatted); - const lastMessage = messages.last(); - if (!lastMessage || messages.size < PAGE_SIZE) { - keepGoing = false; - } else { - oldestMessageID = lastMessage.id; - } - } - console.log(`Trained from ${historyCache.length} past human authored messages.`); - messageCache = messageCache.concat(historyCache); - regenMarkov(); - message.reply(`Finished training from past ${historyCache.length} messages.`); -} - -/** - * General Markov-chain response function - * @param {Message} message The message that invoked the action, used for channel info. - * @param {Boolean} debug Sends debug info as a message if true. - * @param {Boolean} tts If the message should be sent as TTS. Defaults to the TTS setting of the - * invoking message. - */ -function generateResponse(message: Discord.Message, debug = false, tts = message.tts): void { - console.log('Responding...'); - const options: MarkovGenerateOptions = { - filter: (result): boolean => { - return result.score >= MIN_SCORE; - }, - maxTries: MAX_TRIES, - }; - - const fsMarkov = new Markov(); - const markovFile = JSON.parse( - fs.readFileSync('config/markov.json', 'utf-8') - ) as MarkovImportExport; - fsMarkov.import(markovFile); - - try { - const myResult = fsMarkov.generate(options) as MarkbotMarkovResult; - console.log('Generated Result:', myResult); - const messageOpts: Discord.MessageOptions = { tts }; - const attachmentRefs = myResult.refs - .filter(ref => Object.prototype.hasOwnProperty.call(ref, 'attachment')) - .map(ref => ref.attachment as string); - if (attachmentRefs.length > 0) { - const randomRefAttachment = attachmentRefs[Math.floor(Math.random() * attachmentRefs.length)]; - messageOpts.files = [randomRefAttachment]; - } else { - const randomMessage = markovDB[Math.floor(Math.random() * markovDB.length)]; - if (randomMessage.attachment) { - messageOpts.files = [{ attachment: randomMessage.attachment }]; - } - } - - myResult.string = myResult.string.replace(/@everyone/g, '@everyοne'); // Replace @everyone with a homoglyph 'o' - message.channel.send(myResult.string, messageOpts); - if (debug) message.channel.send(`\`\`\`\n${JSON.stringify(myResult, null, 2)}\n\`\`\``); - } catch (err) { - console.log(err); - if (debug) message.channel.send(`\n\`\`\`\nERROR: ${err}\n\`\`\``); - if (err.message.includes('Cannot build sentence with current corpus')) { - console.log('Not enough chat data for a response.'); - } - } -} - -client.on('ready', () => { - console.log('Markbot by Charlie Laabs'); - if (client.user) client.user.setActivity(GAME); - regenMarkov(); -}); - -client.on('error', err => { - const errText = `ERROR: ${err.name} - ${err.message}`; - console.log(errText); - errors.push(errText); - fs.writeFile('./config/error.json', JSON.stringify(errors), fsErr => { - if (fsErr) { - console.log(`error writing to error file: ${fsErr.message}`); - } - }); -}); - -client.on('message', message => { - if (message.guild) { - const command = validateMessage(message); - if (command === 'help') { - const avatarURL = client.user?.avatarURL() || undefined; - const richem = new Discord.MessageEmbed() - .setAuthor(client.user?.username, avatarURL) - .setThumbnail(avatarURL as string) - .setDescription('A Markov chain chatbot that speaks based on previous chat input.') - .addField( - '!mark', - 'Generates a sentence to say based on the chat database. Send your ' + - 'message as TTS to recieve it as TTS.' - ) - .addField( - '!mark train', - 'Fetches the maximum amount of previous messages in the current ' + - 'text channel, adds it to the database, and regenerates the corpus. Takes some time.' - ) - .addField( - '!mark regen', - 'Manually regenerates the corpus to add recent chat info. Run ' + - 'this before shutting down to avoid any data loss. This automatically runs at midnight.' - ) - .addField( - '!mark invite', - "Don't invite this bot to other servers. The database is shared " + - 'between all servers and text channels.' - ) - .addField('!mark debug', 'Runs the !mark command and follows it up with debug info.') - .setFooter(`Markov Discord v${version} by Charlie Laabs`); - message.channel.send(richem).catch(() => { - message.author.send(richem); - }); - } - if (command === 'train') { - if (message.member && isModerator(message.member)) { - console.log('Training...'); - fileObj = { - messages: [], - }; - fs.writeFileSync('config/markovDB.json', JSON.stringify(fileObj), 'utf-8'); - fetchMessages(message); - } - } - if (command === 'respond') { - generateResponse(message); - } - if (command === 'tts') { - generateResponse(message, false, true); - } - if (command === 'debug') { - generateResponse(message, true); - } - if (command === 'regen') { - regenMarkov(); - } - if (command === null) { - console.log('Listening...'); - if (!message.author.bot) { - const dbObj: MessageRecord = { - string: message.content, - id: message.id, - }; - if (message.attachments.size > 0) { - dbObj.attachment = message.attachments.values().next().value.url; - } - messageCache.push(dbObj); - if (client.user && message.mentions.has(client.user)) { - generateResponse(message); - } - } - } - if (command === inviteCmd) { - const avatarURL = client.user?.avatarURL() || undefined; - const richem = new Discord.MessageEmbed() - .setAuthor(`Invite ${client.user?.username}`, avatarURL) - .setThumbnail(avatarURL as string) - .addField( - 'Invite', - `[Invite ${client.user?.username} to your server](https://discordapp.com/oauth2/authorize?client_id=${client.user?.id}&scope=bot)` - ); - - message.channel.send(richem).catch(() => { - message.author.send(richem); - }); - } - } -}); - -client.on('messageDelete', message => { - // console.log('Adding message ' + message.id + ' to deletion cache.') - deletionCache.push(message.id); - console.log('deletionCache:', deletionCache); -}); - -loadConfig(); -schedule.scheduleJob('0 4 * * *', () => regenMarkov()); diff --git a/ormconfig.js b/ormconfig.js new file mode 100644 index 0000000..e472ad5 --- /dev/null +++ b/ormconfig.js @@ -0,0 +1,40 @@ +const devConfig = { + type: 'better-sqlite3', + database: process.env.CONFIG_DIR + ? `${process.env.CONFIG_DIR}/db/db.sqlite3` + : 'config/db/db.sqlite3', + synchronize: true, + migrationsRun: false, + // logging: true, + // logging: "all", + enableWAL: true, + entities: ['src/entity/**/*.ts'], + migrations: ['src/migration/**/*.ts'], + subscribers: ['src/subscriber/**/*.ts'], + cli: { + entitiesDir: 'src/entity', + migrationsDir: 'src/migration', + }, +}; + +const prodConfig = { + type: 'better-sqlite3', + database: process.env.CONFIG_DIR + ? `${process.env.CONFIG_DIR}/db/db.sqlite3` + : 'config/db/db.sqlite3', + synchronize: false, + logging: false, + enableWAL: true, + entities: ['dist/entity/**/*.js'], + migrations: ['dist/migration/**/*.js'], + migrationsRun: false, + subscribers: ['dist/subscriber/**/*.js'], + cli: { + entitiesDir: 'dist/entity', + migrationsDir: 'dist/migration', + }, +}; + +const finalConfig = process.env.NODE_ENV !== 'production' ? devConfig : prodConfig; + +module.exports = finalConfig; diff --git a/package-lock.json b/package-lock.json index 42cc444..ca41785 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,33 +1,4504 @@ { - "name": "markbot", - "version": "0.7.3", - "lockfileVersion": 1, + "name": "markov-discord", + "version": "3.0.0", + "lockfileVersion": 2, "requires": true, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" + "packages": { + "": { + "name": "markov-discord", + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@discordjs/builders": "^0.9.0", + "@discordjs/rest": "^0.2.0-canary.0", + "@types/fs-extra": "^9.0.13", + "better-sqlite3": "^7.4.5", + "bufferutil": "^4.0.5", + "class-transformer": "^0.5.1", + "class-validator": "^0.13.2", + "discord-api-types": "^0.25.2", + "discord.js": "^13.3.1", + "dotenv": "^10.0.0", + "erlpack": "github:discord/erlpack", + "fs-extra": "^10.0.0", + "json5": "^2.2.0", + "markov-strings-db": "file:../markov-strings/markov-strings-db-4.0.0.tgz", + "pino": "^7.5.1", + "pino-pretty": "^7.3.0", + "reflect-metadata": "^0.1.13", + "source-map-support": "^0.5.21", + "typeorm": "^0.2.38", + "utf-8-validate": "^5.0.7", + "zlib-sync": "^0.1.7" + }, + "devDependencies": { + "@types/node": "^16.11.14", + "@types/validator": "^13.7.0", + "@typescript-eslint/eslint-plugin": "^5.7.0", + "@typescript-eslint/parser": "^5.7.0", + "eslint": "^8.4.1", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-prettier": "^4.0.0", + "prettier": "^2.5.1", + "rimraf": "^3.0.2", + "ts-node": "^10.4.0", + "types-package-json": "^2.0.39", + "typescript": "^4.5.4" + }, + "engines": { + "node": "16" } }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "node_modules/@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-consumer": "0.8.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@discordjs/builders": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.9.0.tgz", + "integrity": "sha512-XM/5yrTxMF0SDKza32YzGDQO1t+qEJTaF8Zvxu/UOjzoqzMPPGQBjC1VgZxz8/CBLygW5qI+UVygMa88z13G3g==", + "dependencies": { + "@sindresorhus/is": "^4.2.0", + "discord-api-types": "^0.24.0", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.1", + "zod": "^3.11.6" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@discordjs/builders/node_modules/discord-api-types": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", + "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==", + "engines": { + "node": ">=12" + } + }, + "node_modules/@discordjs/collection": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.3.2.tgz", + "integrity": "sha512-dMjLl60b2DMqObbH1MQZKePgWhsNe49XkKBZ0W5Acl5uVV43SN414i2QfZwRI7dXAqIn8pEWD2+XXQFn9KWxqg==", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@discordjs/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@discordjs/rest": { + "version": "0.2.0-canary.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.2.0-canary.0.tgz", + "integrity": "sha512-jOxz1aqTEzn9N0qaJcZbHz6FbA0oq+vjpXUKkQzgfMihO6gC+kLlpRnFqG25T/aPYbjaR1UM/lGhrGBB1dutqg==", + "dependencies": { + "@discordjs/collection": "^0.3.2", + "@sapphire/async-queue": "^1.1.9", + "@sapphire/snowflake": "^3.0.0", + "discord-api-types": "^0.25.2", + "form-data": "^4.0.0", + "node-fetch": "^2.6.5", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@discordjs/rest/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.2.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", + "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@sapphire/async-queue": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz", + "integrity": "sha512-CbXaGwwlEMq+l1TRu01FJCvySJ1CEFKFclHT48nIfNeZXaAAmmwwy7scUKmYHPUa3GhoMp6Qr1B3eAJux6XgOQ==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sapphire/snowflake": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.0.0.tgz", + "integrity": "sha512-YVYXvpWe8fVs2P9mvvsMXByXCcSPcsgUhuKwA+SSlJk1VO7EW1vWjlgGozGj0tPOhsuaeAj1EjPbkCmNKiSRLA==", + "engines": { + "node": ">=v14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@sqltools/formatter": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", + "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.14.tgz", + "integrity": "sha512-mK6BKLpL0bG6v2CxHbm0ed6RcZrAtTHBTd/ZpnlVPVa3HkumsqLE4BC4u6TQ8D7pnrRbOU0am6epuALs+Ncnzw==" + }, + "node_modules/@types/node-fetch": { + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", + "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", + "dependencies": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "node_modules/@types/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-+jBxVvXVuggZOrm04NR8z+5+bgoW4VZyLzUO+hmPPW1mVFL/HaitLAkizfv4yg9TbG8lkfHWVMQ11yDqrVVCzA==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", + "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/zen-observable": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", + "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz", + "integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "5.7.0", + "@typescript-eslint/scope-manager": "5.7.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz", + "integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/typescript-estree": "5.7.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz", + "integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/typescript-estree": "5.7.0", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz", + "integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/visitor-keys": "5.7.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz", + "integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz", + "integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/visitor-keys": "5.7.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz", + "integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.7.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/acorn": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "node_modules/app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "node_modules/are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/args": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", + "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/args/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/args/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/args/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/args/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/args/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/better-sqlite3": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.5.tgz", + "integrity": "sha512-mybC3dgrtJeHkIRGP36tST7wjBlIMgTRAXhhO4bMpPZ17EG23FZxZeFcwKWy6o8mV1SKQFnQNyeAZlQpGrgheQ==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "prebuild-install": "^7.0.0", + "tar": "^6.1.11" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/bufferutil": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", + "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + "node_modules/class-validator": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz", + "integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==", + "dependencies": { + "libphonenumber-js": "^1.9.43", + "validator": "^13.7.0" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "dependencies": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/discord-api-types": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.25.2.tgz", + "integrity": "sha512-O243LXxb5gLLxubu5zgoppYQuolapGVWPw3ll0acN0+O8TnPUE2kFp9Bt3sTRYodw8xFIknOVxjSeyWYBpVcEQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/discord.js": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.3.1.tgz", + "integrity": "sha512-zn4G8tL5+tMV00+0aSsVYNYcIfMSdT2g0nudKny+Ikd+XKv7m6bqI7n3Vji0GIRqXDr5ArPaw+iYFM2I1Iw3vg==", + "dependencies": { + "@discordjs/builders": "^0.8.1", + "@discordjs/collection": "^0.3.2", + "@discordjs/form-data": "^3.0.1", + "@sapphire/async-queue": "^1.1.8", + "@types/node-fetch": "^2.5.12", + "@types/ws": "^8.2.0", + "discord-api-types": "^0.24.0", + "node-fetch": "^2.6.1", + "ws": "^8.2.3" + }, + "engines": { + "node": ">=16.6.0", + "npm": ">=7.0.0" + } + }, + "node_modules/discord.js/node_modules/@discordjs/builders": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.8.2.tgz", + "integrity": "sha512-/YRd11SrcluqXkKppq/FAVzLIPRVlIVmc6X8ZklspzMIHDtJ+A4W37D43SHvLdH//+NnK+SHW/WeOF4Ts54PeQ==", + "dependencies": { + "@sindresorhus/is": "^4.2.0", + "discord-api-types": "^0.24.0", + "ow": "^0.27.0", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/discord.js/node_modules/discord-api-types": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", + "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==", + "engines": { + "node": ">=12" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "dependencies": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/erlpack": { + "version": "0.1.3", + "resolved": "git+ssh://git@github.com/discord/erlpack.git#f7d730debe32c416d1b55b4217f8aef2ade05874", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.15.0" + } + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.5.0.tgz", + "integrity": "sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.2.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "dependencies": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" + } + }, + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/espree": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", + "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", + "dev": true, + "dependencies": { + "acorn": "^8.6.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.1.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-redact": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.2.tgz", + "integrity": "sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "node_modules/fastify-warning": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", + "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "engines": { + "node": "*" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.9.44", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.44.tgz", + "integrity": "sha512-zhw8nUMJuQf7jG1dZfEOKKOS6M3QYIv3HnvB/vGohNd0QfxIQcObH3a6Y6s350H+9xgBeOXClOJkS0hJ0yvS3g==" + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/markov-strings-db": { + "version": "4.0.0", + "resolved": "file:../markov-strings/markov-strings-db-4.0.0.tgz", + "integrity": "sha512-CBYNkqUqj0XVohyBLz6kJL81VKzh+8xLcN6vp0ojps/AjqmycKHmj/xZWdCZjc72X7r85UaLnJ6L7QqnW+xPEw==", + "license": "MIT", + "dependencies": { + "reflect-metadata": "^0.1.13", + "typeorm": "^0.2.41" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/node-abi": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.5.0.tgz", + "integrity": "sha512-LtHvNIBgOy5mO8mPEUtkCW/YCRWYEKshIvqhe1GHHyXEHEB5mgICyYnAcl4qan3uFeRROErKGzatFHPf6kDxWw==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-fetch": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-exit-leak-free": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", + "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ow": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", + "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", + "dependencies": { + "@sindresorhus/is": "^4.0.1", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^1.2.1", + "vali-date": "^1.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ow/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pino": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/pino/-/pino-7.5.1.tgz", + "integrity": "sha512-Wzo2G7CLaRHKOz3+Ex006LC5Xi0xEUm+mwm/h0NKzuKZONdekcbmjXg7vWDoO8hVTGX+1RuUy2fwlzvZ24EI5A==", + "dependencies": { + "fast-redact": "^3.0.0", + "fastify-warning": "^0.2.0", + "get-caller-file": "^2.0.5", + "on-exit-leak-free": "^0.2.0", + "pino-abstract-transport": "v0.5.0", + "pino-std-serializers": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.1.0", + "safe-stable-stringify": "^2.1.0", + "sonic-boom": "^2.2.1", + "thread-stream": "^0.13.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", + "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", + "dependencies": { + "duplexify": "^4.1.2", + "split2": "^4.0.0" + } + }, + "node_modules/pino-pretty": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-7.3.0.tgz", + "integrity": "sha512-HAhShJ2z2QzxXhYAn6XfwYpF13o1PQbjzSNA9q+30FAvhjOmeACit9lprhV/mCOw/8YFWSyyNk0YCq2EDYGYpw==", + "dependencies": { + "args": "^5.0.1", + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-safe-stringify": "^2.0.7", + "joycon": "^3.1.1", + "pino-abstract-transport": "^0.5.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "rfdc": "^1.3.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^2.2.0", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "pino-pretty": "bin.js" + } + }, + "node_modules/pino-pretty/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prebuild-install": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.0.tgz", + "integrity": "sha512-IvSenf33K7JcgddNz2D5w521EgO+4aMMjFt73Uk9FRzQ7P+QZPKrp7qPsDydsSwjGt3T5xRNnM1bj1zMTD5fTA==", + "dependencies": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/real-require": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", + "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/secure-json-parse": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", + "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" + }, + "node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz", + "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sonic-boom": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.4.1.tgz", + "integrity": "sha512-WgtVLfGl347/zS1oTuLaOAvVD5zijgjphAJHgbbnBJGgexnr+C1ULSj0j7ftoGxpuxR4PaV635NkwFemG8m/5w==", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "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" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thread-stream": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.13.0.tgz", + "integrity": "sha512-kTMZeX4Dzlb1zZ00/01aerGaTw2i8NE4sWF0TvF1uXewRhCiUjCvatQkvxIvFqauWG2ADFS2Wpd3qBeYL9i3dg==", + "dependencies": { + "real-require": "^0.1.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/ts-mixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", + "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" + }, + "node_modules/ts-node": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz", + "integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typeorm": { + "version": "0.2.41", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.41.tgz", + "integrity": "sha512-/d8CLJJxKPgsnrZWiMyPI0rz2MFZnBQrnQ5XP3Vu3mswv2WPexb58QM6BEtmRmlTMYN5KFWUz8SKluze+wS9xw==", + "dependencies": { + "@sqltools/formatter": "^1.2.2", + "app-root-path": "^3.0.0", + "buffer": "^6.0.3", + "chalk": "^4.1.0", + "cli-highlight": "^2.1.11", + "debug": "^4.3.1", + "dotenv": "^8.2.0", + "glob": "^7.1.6", + "js-yaml": "^4.0.0", + "mkdirp": "^1.0.4", + "reflect-metadata": "^0.1.13", + "sha.js": "^2.4.11", + "tslib": "^2.1.0", + "xml2js": "^0.4.23", + "yargs": "^17.0.1", + "zen-observable-ts": "^1.0.0" + }, + "bin": { + "typeorm": "cli.js" + }, + "funding": { + "url": "https://opencollective.com/typeorm" + }, + "peerDependencies": { + "@sap/hana-client": "*", + "better-sqlite3": "*", + "hdb-pool": "*", + "ioredis": "*", + "mongodb": "^3.6.0", + "mssql": "*", + "mysql2": "*", + "oracledb": "*", + "pg": "*", + "pg-native": "*", + "pg-query-stream": "*", + "redis": "*", + "sql.js": "*", + "sqlite3": "*", + "typeorm-aurora-data-api-driver": "*" + }, + "peerDependenciesMeta": { + "@sap/hana-client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "hdb-pool": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "redis": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "typeorm-aurora-data-api-driver": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/typeorm/node_modules/dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/types-package-json": { + "version": "2.0.39", + "resolved": "https://registry.npmjs.org/types-package-json/-/types-package-json-2.0.39.tgz", + "integrity": "sha512-c8ua5W1Uu6x7LAwtwSGCl46cHmj+r2eAA+lXR1CluIZotu9V03ZHcGB9wKRZE2oIAX5IzMP/rxDV9g9ikCg9Nw==", + "dev": true + }, + "node_modules/typescript": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", + "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", + "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz", + "integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "node_modules/zen-observable-ts": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz", + "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", + "dependencies": { + "@types/zen-observable": "0.8.3", + "zen-observable": "0.8.15" + } + }, + "node_modules/zlib-sync": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/zlib-sync/-/zlib-sync-0.1.7.tgz", + "integrity": "sha512-UmciU6ZrIwtwPC8noMzq+kGMdiWwNRZ3wC0SbED4Ew5Ikqx14MqDPRs/Pbk+3rZPh5SzsOgUBs1WRE0iieddpg==", + "hasInstallScript": true, + "dependencies": { + "nan": "^2.14.0" + } + }, + "node_modules/zod": { + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.11.6.tgz", + "integrity": "sha512-daZ80A81I3/9lIydI44motWe6n59kRBfNzTuS2bfzVh1nAXi667TOTWWtatxyG+fwgNUiagSj/CWZwRRbevJIg==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + }, + "dependencies": { + "@cspotcode/source-map-consumer": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", + "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", + "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", "dev": true, "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "@cspotcode/source-map-consumer": "0.8.0" + } + }, + "@discordjs/builders": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.9.0.tgz", + "integrity": "sha512-XM/5yrTxMF0SDKza32YzGDQO1t+qEJTaF8Zvxu/UOjzoqzMPPGQBjC1VgZxz8/CBLygW5qI+UVygMa88z13G3g==", + "requires": { + "@sindresorhus/is": "^4.2.0", + "discord-api-types": "^0.24.0", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.1", + "zod": "^3.11.6" + }, + "dependencies": { + "discord-api-types": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", + "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==" + } } }, "@discordjs/collection": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", - "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==" + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.3.2.tgz", + "integrity": "sha512-dMjLl60b2DMqObbH1MQZKePgWhsNe49XkKBZ0W5Acl5uVV43SN414i2QfZwRI7dXAqIn8pEWD2+XXQFn9KWxqg==" }, "@discordjs/form-data": { "version": "3.0.1", @@ -39,243 +4510,486 @@ "mime-types": "^2.1.12" } }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==", - "dev": true - }, - "@types/node": { - "version": "12.12.21", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.21.tgz", - "integrity": "sha512-8sRGhbpU+ck1n0PGAUgVrWrWdjSW2aqNeyC15W88GRsMpSwzv6RJGlLhE7s2RhVSOdyDmxbqlWSeThq4/7xqlA==", - "dev": true - }, - "@types/node-schedule": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/node-schedule/-/node-schedule-1.3.0.tgz", - "integrity": "sha512-gjKmC9wFxn8laKYKwVP2iZvxeiA1DWUb6CXAYXtoYBcDbiyMqxLn2sQq+8aaNc7Xr0p93Hf0O0VizdaEPUO0vA==", - "dev": true, + "@discordjs/rest": { + "version": "0.2.0-canary.0", + "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.2.0-canary.0.tgz", + "integrity": "sha512-jOxz1aqTEzn9N0qaJcZbHz6FbA0oq+vjpXUKkQzgfMihO6gC+kLlpRnFqG25T/aPYbjaR1UM/lGhrGBB1dutqg==", "requires": { - "@types/node": "*" - } - }, - "@types/ws": { - "version": "7.2.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.2.7.tgz", - "integrity": "sha512-UUFC/xxqFLP17hTva8/lVT0SybLUrfSD9c+iapKb0fEiC8uoDbA+xuZ3pAN603eW+bY8ebSMLm9jXdIPnD0ZgA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.13.0.tgz", - "integrity": "sha512-QoiANo0MMGNa8ej/yX3BrW5dZj5d8HYcKiM2fyYUlezECqn8Xc7T/e4EUdiGinn8jhBrn+9X47E9TWaaup3u1g==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "2.13.0", - "eslint-utils": "^1.4.3", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" + "@discordjs/collection": "^0.3.2", + "@sapphire/async-queue": "^1.1.9", + "@sapphire/snowflake": "^3.0.0", + "discord-api-types": "^0.25.2", + "form-data": "^4.0.0", + "node-fetch": "^2.6.5", + "tslib": "^2.3.1" }, "dependencies": { - "regexpp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", - "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==", + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@eslint/eslintrc": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz", + "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.2.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true } } }, - "@typescript-eslint/experimental-utils": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.13.0.tgz", - "integrity": "sha512-+Hss3clwa6aNiC8ZjA45wEm4FutDV5HsVXPl/rDug1THq6gEtOYRGLqS3JlTk7mSnL5TbJz0LpEbzbPnKvY6sw==", + "@humanwhocodes/config-array": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.2.tgz", + "integrity": "sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==", "dev": true, "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.13.0", - "eslint-scope": "^5.0.0" + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sapphire/async-queue": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz", + "integrity": "sha512-CbXaGwwlEMq+l1TRu01FJCvySJ1CEFKFclHT48nIfNeZXaAAmmwwy7scUKmYHPUa3GhoMp6Qr1B3eAJux6XgOQ==" + }, + "@sapphire/snowflake": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.0.0.tgz", + "integrity": "sha512-YVYXvpWe8fVs2P9mvvsMXByXCcSPcsgUhuKwA+SSlJk1VO7EW1vWjlgGozGj0tPOhsuaeAj1EjPbkCmNKiSRLA==" + }, + "@sindresorhus/is": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.2.0.tgz", + "integrity": "sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==" + }, + "@sqltools/formatter": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", + "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true + }, + "@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "requires": { + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@types/node": { + "version": "16.11.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.14.tgz", + "integrity": "sha512-mK6BKLpL0bG6v2CxHbm0ed6RcZrAtTHBTd/ZpnlVPVa3HkumsqLE4BC4u6TQ8D7pnrRbOU0am6epuALs+Ncnzw==" + }, + "@types/node-fetch": { + "version": "2.5.12", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", + "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", + "requires": { + "@types/node": "*", + "form-data": "^3.0.0" + } + }, + "@types/validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-+jBxVvXVuggZOrm04NR8z+5+bgoW4VZyLzUO+hmPPW1mVFL/HaitLAkizfv4yg9TbG8lkfHWVMQ11yDqrVVCzA==", + "dev": true + }, + "@types/ws": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", + "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", + "requires": { + "@types/node": "*" + } + }, + "@types/zen-observable": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz", + "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz", + "integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "5.7.0", + "@typescript-eslint/scope-manager": "5.7.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz", + "integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/typescript-estree": "5.7.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.13.0.tgz", - "integrity": "sha512-vbDeLr5QRJ1K7x5iRK8J9wuGwR9OVyd1zDAY9XFAQvAosHVjSVbDgkm328ayE6hx2QWVGhwvGaEhedcqAbfQcA==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz", + "integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==", "dev": true, "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.13.0", - "@typescript-eslint/typescript-estree": "2.13.0", - "eslint-visitor-keys": "^1.1.0" + "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/typescript-estree": "5.7.0", + "debug": "^4.3.2" } }, + "@typescript-eslint/scope-manager": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz", + "integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/visitor-keys": "5.7.0" + } + }, + "@typescript-eslint/types": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz", + "integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==", + "dev": true + }, "@typescript-eslint/typescript-estree": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.13.0.tgz", - "integrity": "sha512-t21Mg5cc8T3ADEUGwDisHLIubgXKjuNRbkpzDMLb7/JMmgCe/gHM9FaaujokLey+gwTuLF5ndSQ7/EfQqrQx4g==", + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz", + "integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==", "dev": true, "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash.unescape": "4.0.1", - "semver": "^6.3.0", - "tsutils": "^3.17.1" + "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/visitor-keys": "5.7.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" } }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "@typescript-eslint/visitor-keys": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz", + "integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==", + "dev": true, "requires": { - "event-target-shim": "^5.0.0" + "@typescript-eslint/types": "5.7.0", + "eslint-visitor-keys": "^3.0.0" } }, "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", "dev": true }, "acorn-jsx": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", - "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, - "ansi-escapes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.0.tgz", - "integrity": "sha512-EiYhwo0v255HUL6eDyuLrXEkTi7WwVCLAw+SeOQ7M7qdun1z1pum4DEm/nuqIVbPvi9RPPc9k9LbyBv6H0DwVg==", - "dev": true, - "requires": { - "type-fest": "^0.8.1" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" + } + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" + }, + "app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==" + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "are-we-there-yet": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", + "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "arg": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.2.tgz", - "integrity": "sha512-+ytCkGcBtHZ3V2r2Z06AncYO8jz46UEamcspGoU8lHcEbpn6J77QK0vdWvChsclg/tM5XIJC5tnjmPp7Eq6Obg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "args": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", + "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", "requires": { - "sprintf-js": "~1.0.2" + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - }, - "dependencies": { - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" } }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - }, - "dependencies": { - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "es-abstract": "^1.19.0" } }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "balanced-match": { + "atomic-sleep": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "better-sqlite3": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.5.tgz", + "integrity": "sha512-mybC3dgrtJeHkIRGP36tST7wjBlIMgTRAXhhO4bMpPZ17EG23FZxZeFcwKWy6o8mV1SKQFnQNyeAZlQpGrgheQ==", + "requires": { + "bindings": "^1.5.0", + "prebuild-install": "^7.0.0", + "tar": "^6.1.11" + } }, "bindings": { "version": "1.5.0", @@ -285,81 +4999,214 @@ "file-uri-to-path": "1.0.0" } }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "bufferutil": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.1.tgz", - "integrity": "sha512-xowrxvpxojqkagPcWRQVXZl0YXhRhAtBEIq3VoER1NH5Mw1n1o0ojdspp+GS2J//2gCVyrzQDApQ4unGF+QOoA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", + "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", "requires": { - "node-gyp-build": "~3.7.0" + "node-gyp-build": "^4.3.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" }, "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, + "class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + "class-validator": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz", + "integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==", "requires": { - "restore-cursor": "^3.1.0" + "libphonenumber-js": "^1.9.43", + "validator": "^13.7.0" } }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true + "cli-highlight": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", + "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", + "requires": { + "chalk": "^4.0.0", + "highlight.js": "^10.7.1", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^6.0.0", + "yargs": "^16.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.3" + "color-name": "~1.1.4" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" }, "combined-stream": { "version": "1.0.8", @@ -372,73 +5219,80 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "confusing-browser-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", - "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, - "cron-parser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-2.11.0.tgz", - "integrity": "sha512-L5LAGlvq2xmCLErhjQRX8IL5v72y8jhGOaxrarYOhse0kJjJGb/vY/0sV/c7F/SylJGkUIY2iZPPJXZD3glZqA==", - "requires": { - "is-nan": "^1.2.1", - "moment-timezone": "^0.5.23" - } + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, + "dateformat": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", + "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==" + }, "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, "define-properties": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "object-keys": "^1.0.12" } }, "delayed-stream": { @@ -446,25 +5300,69 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + }, "diff": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", - "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, - "discord.js": { - "version": "12.3.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.3.1.tgz", - "integrity": "sha512-mSFyV/mbvzH12UXdS4zadmeUf8IMQOo/YdunubG1wWt1xjWvtaJz/s9CGsFD2B5pTw1W/LXxxUbrQjIZ/xlUdw==", + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "requires": { - "@discordjs/collection": "^0.1.6", + "path-type": "^4.0.0" + } + }, + "discord-api-types": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.25.2.tgz", + "integrity": "sha512-O243LXxb5gLLxubu5zgoppYQuolapGVWPw3ll0acN0+O8TnPUE2kFp9Bt3sTRYodw8xFIknOVxjSeyWYBpVcEQ==" + }, + "discord.js": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.3.1.tgz", + "integrity": "sha512-zn4G8tL5+tMV00+0aSsVYNYcIfMSdT2g0nudKny+Ikd+XKv7m6bqI7n3Vji0GIRqXDr5ArPaw+iYFM2I1Iw3vg==", + "requires": { + "@discordjs/builders": "^0.8.1", + "@discordjs/collection": "^0.3.2", "@discordjs/form-data": "^3.0.1", - "abort-controller": "^3.0.0", - "node-fetch": "^2.6.0", - "prism-media": "^1.2.2", - "setimmediate": "^1.0.5", - "tweetnacl": "^1.0.3", - "ws": "^7.3.1" + "@sapphire/async-queue": "^1.1.8", + "@types/node-fetch": "^2.5.12", + "@types/ws": "^8.2.0", + "discord-api-types": "^0.24.0", + "node-fetch": "^2.6.1", + "ws": "^8.2.3" + }, + "dependencies": { + "@discordjs/builders": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.8.2.tgz", + "integrity": "sha512-/YRd11SrcluqXkKppq/FAVzLIPRVlIVmc6X8ZklspzMIHDtJ+A4W37D43SHvLdH//+NnK+SHW/WeOF4Ts54PeQ==", + "requires": { + "@sindresorhus/is": "^4.2.0", + "discord-api-types": "^0.24.0", + "ow": "^0.27.0", + "ts-mixer": "^6.0.0", + "tslib": "^2.3.1" + } + }, + "discord-api-types": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", + "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==" + } } }, "doctrine": { @@ -476,55 +5374,98 @@ "esutils": "^2.0.2" } }, + "dot-prop": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", + "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" + }, + "duplexify": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", + "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", + "requires": { + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "erlpack": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/erlpack/-/erlpack-0.1.3.tgz", - "integrity": "sha512-QeG9v8CVsY/a/IoQi8zjn23aYKcziOihAxwjUl3tI/KB4R1FjTtctDAAMovgtpC16S+WiOauers2oWwIOQtKBQ==", + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "bindings": "^1.5.0", - "nan": "^2.14.0" + "once": "^1.4.0" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "ansi-colors": "^4.1.1" + } + }, + "erlpack": { + "version": "git+ssh://git@github.com/discord/erlpack.git#f7d730debe32c416d1b55b4217f8aef2ade05874", + "from": "erlpack@github:discord/erlpack", + "requires": { + "bindings": "^1.5.0", + "nan": "^2.15.0" } }, "es-abstract": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0.tgz", - "integrity": "sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", "dev": true, "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - }, - "dependencies": { - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" } }, "es-to-primitive": { @@ -538,149 +5479,176 @@ "is-symbol": "^1.0.2" } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.5.0.tgz", + "integrity": "sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^1.0.5", + "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.2.0", + "esquery": "^1.4.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", - "optionator": "^0.8.3", + "optionator": "^0.9.1", "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } } }, "eslint-config-airbnb-base": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.0.0.tgz", - "integrity": "sha512-2IDHobw97upExLmsebhtfoD3NAKhV4H0CJWP3Uprd/uk+cHuWYOczPVxQ8PxLFUAw7o3Th1RAU8u1DoUpr+cMA==", + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dev": true, "requires": { - "confusing-browser-globals": "^1.0.7", - "object.assign": "^4.1.0", - "object.entries": "^1.1.0" + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "eslint-config-prettier": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-6.7.0.tgz", - "integrity": "sha512-FamQVKM3jjUVwhG4hEMnbtsq7xOIDm+SY5iBPfR8gKsJoAB2IQnNF+bk1+8Fy44Nq7PPJaLvkRxILYdJWoguKQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz", + "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==", "dev": true, - "requires": { - "get-stdin": "^6.0.0" - } + "requires": {} }, "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", "dev": true, "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "debug": "^3.2.7", + "resolve": "^1.20.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, "eslint-module-utils": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz", - "integrity": "sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", "dev": true, "requires": { - "debug": "^2.6.9", + "debug": "^3.2.7", + "find-up": "^2.1.0", "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, "eslint-plugin-import": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz", - "integrity": "sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw==", + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" }, "dependencies": { "debug": { @@ -693,13 +5661,12 @@ } }, "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "esutils": "^2.0.2" } }, "ms": { @@ -711,86 +5678,96 @@ } }, "eslint-plugin-prettier": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz", - "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" } }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { - "esrecurse": "^4.1.0", + "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" + "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", "dev": true }, "espree": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.1.2.tgz", - "integrity": "sha512-2iUPuuPP+yW1PZaMSDM9eyVf8D5P0Hi8h83YtZ5bPc/zHYjII5khoixIUTMO794NOY8F/ThF1Bo8ncZILarUTA==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", + "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", "dev": true, "requires": { - "acorn": "^7.1.0", - "acorn-jsx": "^5.1.0", - "eslint-visitor-keys": "^1.1.0" + "acorn": "^8.6.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.1.0" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } } }, "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { @@ -799,26 +5776,15 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } + "expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-diff": { @@ -827,6 +5793,30 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", "dev": true }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -839,22 +5829,37 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, - "figures": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", - "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", + "fast-redact": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.2.tgz", + "integrity": "sha512-YN+CYfCVRVMUZOUPeinHNKgytM1wPI/C/UCLEi56EsY2dwwvI00kIJHJoI7pMVqGoMew8SMZ2SSfHKHULHXDsg==" + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + }, + "fastify-warning": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", + "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "reusify": "^1.0.4" } }, "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { - "flat-cache": "^2.0.1" + "flat-cache": "^3.0.4" } }, "file-uri-to-path": { @@ -862,6 +5867,15 @@ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -872,32 +5886,58 @@ } }, "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.1.0", + "rimraf": "^3.0.2" } }, "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs-extra": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", + "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "function-bind": { "version": "1.1.1", @@ -911,17 +5951,71 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "get-stdin": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-6.0.0.tgz", - "integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==", - "dev": true + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" }, "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -932,28 +6026,41 @@ } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "globals": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.3.0.tgz", - "integrity": "sha512-wAfjdLgFsPZsklLJvOBUBmzYE8/CwhEqSBEMRXA3qxIiNtyqvjYurAtIfDh6chlEPUfmTY3MnZh5Hfh4q0UlIw==", + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", "dev": true, "requires": { - "type-fest": "^0.8.1" + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", + "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" } }, "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", - "dev": true + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" }, "has": { "version": "1.0.3", @@ -964,43 +6071,57 @@ "function-bind": "^1.1.1" } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "dev": true }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "has-symbols": "^1.0.2" } }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", "dev": true }, "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1017,56 +6138,74 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "inquirer": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.1.tgz", - "integrity": "sha512-V1FFQ3TIO15det8PijPLFR9M9baSlnRs9nL7zWu1MNVA2T9YVl9ZbrHJhYs7e9X8jeMZ3lr2JH/rdHFgNCBdYw==", + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.2.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", "dev": true }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } }, "is-extglob": { "version": "2.1.1", @@ -1075,63 +6214,95 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, - "is-nan": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.2.1.tgz", - "integrity": "sha1-n69ltvttskt/XAYoR16nH5iEAeI=", + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, "requires": { - "define-properties": "^1.1.1" + "has-tostringtag": "^1.0.0" } }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "requires": { - "has": "^1.0.3" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", "dev": true }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" } }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", @@ -1139,20 +6310,17 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==" }, "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "json-schema-traverse": { @@ -1167,28 +6335,43 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "minimist": "^1.2.5" } }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" } }, + "libphonenumber-js": { + "version": "1.9.44", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.44.tgz", + "integrity": "sha512-zhw8nUMJuQf7jG1dZfEOKKOS6M3QYIv3HnvB/vGohNd0QfxIQcObH3a6Y6s350H+9xgBeOXClOJkS0hJ0yvS3g==" + }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -1199,60 +6382,77 @@ "path-exists": "^3.0.0" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" }, - "lodash.unescape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", - "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "long-timeout": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/long-timeout/-/long-timeout-0.1.1.tgz", - "integrity": "sha1-lyHXiLR+C8taJMLivuGg2lXatRQ=" + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } }, "make-error": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", - "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "markov-strings": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/markov-strings/-/markov-strings-3.0.1.tgz", - "integrity": "sha512-/Cf6m7iIK1JWtvOemZ9eRUpKvebm+m6uXMTzszOJrRO3rkmdCqoS/EO9d4/3aFPnYEIHkopcF4C7W+k1zTDjnw==", + "markov-strings-db": { + "version": "file:../markov-strings/markov-strings-db-4.0.0.tgz", + "integrity": "sha512-CBYNkqUqj0XVohyBLz6kJL81VKzh+8xLcN6vp0ojps/AjqmycKHmj/xZWdCZjc72X7r85UaLnJ6L7QqnW+xPEw==", "requires": { - "lodash": "^4.17.20" + "reflect-metadata": "^0.1.13", + "typeorm": "^0.2.41" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" }, "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "requires": { - "mime-db": "1.44.0" + "mime-db": "1.51.0" } }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -1260,47 +6460,64 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } }, "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, - "moment-timezone": { - "version": "0.5.25", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.25.tgz", - "integrity": "sha512-DgEaTyN/z0HFaVcVbSyVCUU6HeFdnNC3vE4c9cgu2dgMTvjBUBdBzWfasTBmAW45u5OIMeCJtU8yNjM22DHucw==", - "requires": { - "moment": ">= 2.9.0" - } + "mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } }, "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + }, + "napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, "natural-compare": { "version": "1.4.0", @@ -1308,170 +6525,140 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "node-abi": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.5.0.tgz", + "integrity": "sha512-LtHvNIBgOy5mO8mPEUtkCW/YCRWYEKshIvqhe1GHHyXEHEB5mgICyYnAcl4qan3uFeRROErKGzatFHPf6kDxWw==", + "requires": { + "semver": "^7.3.5" + } }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "requires": { + "whatwg-url": "^5.0.0" + } }, "node-gyp-build": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-3.7.0.tgz", - "integrity": "sha512-L/Eg02Epx6Si2NXmedx+Okg+4UHqmaf3TNcxd50SF9NQGcJaON3AtU++kax69XV7YWz4tUspqZSAsVofhFKG2w==" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", + "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" }, - "node-schedule": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/node-schedule/-/node-schedule-1.3.2.tgz", - "integrity": "sha512-GIND2pHMHiReSZSvS6dpZcDH7pGPGFfWBIEud6S00Q8zEIzAs9ommdyRK1ZbQt8y1LyZsJYZgPnyi7gpU2lcdw==", + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { - "cron-parser": "^2.7.3", - "long-timeout": "0.1.1", - "sorted-array-functions": "^1.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.1.tgz", + "integrity": "sha512-If7BjFlpkzzBeV1cqgT3OSWT3azyoxDGajR+iGnFBfVV2EWyDyWaZZW2ERDjUaY2QM8i5jI3Sj7mhsM4DDAqWA==", "dev": true }, "object-keys": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true }, "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, "object.entries": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", - "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - }, - "dependencies": { - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "es-abstract": "^1.19.1" } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", "dev": true, "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - }, - "dependencies": { - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } + "es-abstract": "^1.19.1" } }, + "on-exit-leak-free": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", + "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==" + }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { - "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" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "ow": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", + "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", + "requires": { + "@sindresorhus/is": "^4.0.1", + "callsites": "^3.1.0", + "dot-prop": "^6.0.1", + "lodash.isequal": "^4.5.0", + "type-fest": "^1.2.1", + "vali-date": "^1.0.0" + }, + "dependencies": { + "type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" + } + } }, "p-limit": { "version": "1.3.0", @@ -1506,13 +6693,24 @@ "callsites": "^3.0.0" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "requires": { - "error-ex": "^1.2.0" + "parse5": "^6.0.1" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + } } }, "path-exists": { @@ -1524,35 +6722,94 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "pino": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/pino/-/pino-7.5.1.tgz", + "integrity": "sha512-Wzo2G7CLaRHKOz3+Ex006LC5Xi0xEUm+mwm/h0NKzuKZONdekcbmjXg7vWDoO8hVTGX+1RuUy2fwlzvZ24EI5A==", "requires": { - "pify": "^2.0.0" + "fast-redact": "^3.0.0", + "fastify-warning": "^0.2.0", + "get-caller-file": "^2.0.5", + "on-exit-leak-free": "^0.2.0", + "pino-abstract-transport": "v0.5.0", + "pino-std-serializers": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.1.0", + "safe-stable-stringify": "^2.1.0", + "sonic-boom": "^2.2.1", + "thread-stream": "^0.13.0" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "pino-abstract-transport": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", + "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", + "requires": { + "duplexify": "^4.1.2", + "split2": "^4.0.0" + } + }, + "pino-pretty": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-7.3.0.tgz", + "integrity": "sha512-HAhShJ2z2QzxXhYAn6XfwYpF13o1PQbjzSNA9q+30FAvhjOmeACit9lprhV/mCOw/8YFWSyyNk0YCq2EDYGYpw==", + "requires": { + "args": "^5.0.1", + "colorette": "^2.0.7", + "dateformat": "^4.6.3", + "fast-safe-stringify": "^2.0.7", + "joycon": "^3.1.1", + "pino-abstract-transport": "^0.5.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.0", + "rfdc": "^1.3.0", + "secure-json-parse": "^2.4.0", + "sonic-boom": "^2.2.0", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" }, "pkg-dir": { "version": "2.0.0", @@ -1563,16 +6820,36 @@ "find-up": "^2.1.0" } }, + "prebuild-install": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.0.tgz", + "integrity": "sha512-IvSenf33K7JcgddNz2D5w521EgO+4aMMjFt73Uk9FRzQ7P+QZPKrp7qPsDydsSwjGt3T5xRNnM1bj1zMTD5fTA==", + "requires": { + "detect-libc": "^1.0.3", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "npmlog": "^4.0.1", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + } + }, "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", + "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true }, "prettier-linter-helpers": { @@ -1584,10 +6861,10 @@ "fast-diff": "^1.1.2" } }, - "prism-media": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.2.2.tgz", - "integrity": "sha512-I+nkWY212lJ500jLe4tN9tWO7nRiBAVdMv76P9kffZjYhw20raMlW1HSSvS+MLXC9MmbNZCazMrAr+5jEEgTuw==" + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "progress": { "version": "2.0.3", @@ -1595,45 +6872,92 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, + "quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "real-require": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", + "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==" + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, "resolve": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.1.tgz", - "integrity": "sha512-fn5Wobh4cxbLzuHaE+nphztHy43/b++4M6SsGFC2gB8uYwf0C8LcarfCz1un7UTW8OFQg9iNjZ4xpcFVGebDPg==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { + "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, @@ -1643,104 +6967,136 @@ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { - "is-promise": "^2.1.0" + "queue-microtask": "^1.2.2" } }, - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "secure-json-parse": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.4.0.tgz", + "integrity": "sha512-Q5Z/97nbON5t/L/sH6mY2EacfjVGwrCcSi5D3btRO2GZ8pf1K1UN7Z9H5J57hjVU2Qzxr1xO+FmBhOvEkzCMmg==" }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" } }, - "sorted-array-functions": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.2.0.tgz", - "integrity": "sha512-sWpjPhIZJtqO77GN+LD8dDsDKcWZ9GCOJNqKzi1tvtjGIzwfoyuRH8S0psunmc6Z5P+qfDqztSbwYR5X/e1UTg==" + "signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz", + "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==", + "requires": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "sonic-boom": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.4.1.tgz", + "integrity": "sha512-WgtVLfGl347/zS1oTuLaOAvVD5zijgjphAJHgbbnBJGgexnr+C1ULSj0j7ftoGxpuxR4PaV635NkwFemG8m/5w==", + "requires": { + "atomic-sleep": "^1.0.0" + } }, "source-map": { "version": "0.6.1", @@ -1748,145 +7104,85 @@ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "dev": true, + "split2": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", + "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "safe-buffer": "~5.1.0" } }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - }, - "dependencies": { - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } - } - }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - }, - "dependencies": { - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } } } }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -1894,53 +7190,69 @@ "dev": true }, "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", - "dev": true + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" } }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "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" + } + }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" }, "dependencies": { - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } } } @@ -1951,134 +7263,390 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", "requires": { - "os-tmpdir": "~1.0.2" + "any-promise": "^1.0.0" } }, - "ts-node": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.5.4.tgz", - "integrity": "sha512-izbVCRV68EasEPQ8MSIGBNK9dc/4sYJJKYA+IarMQct1RtEot6Xp0bXuClsbUSnKpg50ho+aOAx8en5c+y4OFw==", + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-stream": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.13.0.tgz", + "integrity": "sha512-kTMZeX4Dzlb1zZ00/01aerGaTw2i8NE4sWF0TvF1uXewRhCiUjCvatQkvxIvFqauWG2ADFS2Wpd3qBeYL9i3dg==", + "requires": { + "real-require": "^0.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { + "is-number": "^7.0.0" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "ts-mixer": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz", + "integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ==" + }, + "ts-node": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz", + "integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "0.7.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", "arg": "^4.1.0", + "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" + "yn": "3.1.1" + } + }, + "tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } } }, "tslib": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", - "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", - "dev": true + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } } }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } }, "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "^1.2.1" } }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typeorm": { + "version": "0.2.41", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.41.tgz", + "integrity": "sha512-/d8CLJJxKPgsnrZWiMyPI0rz2MFZnBQrnQ5XP3Vu3mswv2WPexb58QM6BEtmRmlTMYN5KFWUz8SKluze+wS9xw==", + "requires": { + "@sqltools/formatter": "^1.2.2", + "app-root-path": "^3.0.0", + "buffer": "^6.0.3", + "chalk": "^4.1.0", + "cli-highlight": "^2.1.11", + "debug": "^4.3.1", + "dotenv": "^8.2.0", + "glob": "^7.1.6", + "js-yaml": "^4.0.0", + "mkdirp": "^1.0.4", + "reflect-metadata": "^0.1.13", + "sha.js": "^2.4.11", + "tslib": "^2.1.0", + "xml2js": "^0.4.23", + "yargs": "^17.0.1", + "zen-observable-ts": "^1.0.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "dotenv": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" + } + } + }, + "types-package-json": { + "version": "2.0.39", + "resolved": "https://registry.npmjs.org/types-package-json/-/types-package-json-2.0.39.tgz", + "integrity": "sha512-c8ua5W1Uu6x7LAwtwSGCl46cHmj+r2eAA+lXR1CluIZotu9V03ZHcGB9wKRZE2oIAX5IzMP/rxDV9g9ikCg9Nw==", "dev": true }, "typescript": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", - "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", + "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "dev": true }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" } }, + "utf-8-validate": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", + "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, + "vali-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", + "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=" + }, + "validator": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", + "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz", + "integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==", + "requires": {} + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==" }, "yn": { "version": "3.1.1", @@ -2086,6 +7654,20 @@ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "zen-observable-ts": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz", + "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", + "requires": { + "@types/zen-observable": "0.8.3", + "zen-observable": "0.8.15" + } + }, "zlib-sync": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/zlib-sync/-/zlib-sync-0.1.7.tgz", @@ -2093,6 +7675,11 @@ "requires": { "nan": "^2.14.0" } + }, + "zod": { + "version": "3.11.6", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.11.6.tgz", + "integrity": "sha512-daZ80A81I3/9lIydI44motWe6n59kRBfNzTuS2bfzVh1nAXi667TOTWWtatxyG+fwgNUiagSj/CWZwRRbevJIg==" } } } diff --git a/package.json b/package.json index 56ecf4f..c6f9c81 100644 --- a/package.json +++ b/package.json @@ -1,16 +1,16 @@ { - "name": "markbot", - "version": "0.7.3", + "name": "markov-discord", + "version": "3.0.0", "description": "A conversational Markov chain bot for Discord", "main": "index.js", "scripts": { "start": "node dist/index.js", - "start:ts": "ts-node index.ts", - "build": "tsc", - "lint": "tsc --noEmit && eslint **/*.ts", + "start:ts": "ts-node src/index.ts", + "build": "rimraf dist && tsc", + "lint": "tsc --noEmit && eslint **/*.ts *.js", "docker-up": "docker run --rm -e TOKEN=abc123 -it $(docker build -q .)" }, - "repository": "https://github.com/charlocharlie/markov-discord.git", + "repository": "https://github.com/claabs/markov-discord.git", "keywords": [ "discord", "markov", @@ -22,36 +22,51 @@ "markov-chain-bot", "docker" ], - "author": "Charlie Laabs ", + "author": { + "name": "Charlie Laabs", + "url": "https://github.com/claabs" + }, "license": "MIT", "dependencies": { - "bufferutil": "^4.0.1", - "discord.js": "^12.3.1", - "erlpack": "^0.1.3", - "markov-strings": "^3.0.1", - "node-schedule": "^1.3.2", - "source-map-support": "^0.5.16", + "@discordjs/builders": "^0.9.0", + "@discordjs/rest": "^0.2.0-canary.0", + "@types/fs-extra": "^9.0.13", + "better-sqlite3": "^7.4.5", + "bufferutil": "^4.0.5", + "class-transformer": "^0.5.1", + "class-validator": "^0.13.2", + "discord-api-types": "^0.25.2", + "discord.js": "^13.3.1", + "dotenv": "^10.0.0", + "erlpack": "github:discord/erlpack", + "fs-extra": "^10.0.0", + "json5": "^2.2.0", + "markov-strings-db": "file:../markov-strings/markov-strings-db-4.0.0.tgz", + "pino": "^7.5.1", + "pino-pretty": "^7.3.0", + "reflect-metadata": "^0.1.13", + "source-map-support": "^0.5.21", + "typeorm": "^0.2.38", + "utf-8-validate": "^5.0.7", "zlib-sync": "^0.1.7" }, - "engines": { - "node": ">=12.0.0" - }, "devDependencies": { - "@types/node": "^12.12.21", - "@types/node-schedule": "^1.3.0", - "@types/ws": "^7.2.7", - "@typescript-eslint/eslint-plugin": "^2.13.0", - "@typescript-eslint/parser": "^2.13.0", - "eslint": "^6.8.0", - "eslint-config-airbnb-base": "^14.0.0", - "eslint-config-prettier": "^6.7.0", - "eslint-plugin-import": "^2.19.1", - "eslint-plugin-prettier": "^3.1.2", - "prettier": "^1.19.1", - "ts-node": "^8.5.4", - "typescript": "^3.7.4" + "@types/node": "^16.11.14", + "@types/validator": "^13.7.0", + "@typescript-eslint/eslint-plugin": "^5.7.0", + "@typescript-eslint/parser": "^5.7.0", + "eslint": "^8.4.1", + "eslint-config-airbnb-base": "^15.0.0", + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-prettier": "^4.0.0", + "prettier": "^2.5.1", + "rimraf": "^3.0.2", + "ts-node": "^10.4.0", + "types-package-json": "^2.0.39", + "typescript": "^4.5.4" }, - "eslintIgnore": [ - "**/*.js" - ] + "engines": { + "node": "16" + } } diff --git a/src/config/classes.ts b/src/config/classes.ts new file mode 100644 index 0000000..40b6980 --- /dev/null +++ b/src/config/classes.ts @@ -0,0 +1,131 @@ +/* eslint-disable @typescript-eslint/no-empty-function, no-useless-constructor, max-classes-per-file */ +import 'reflect-metadata'; +import { Type } from 'class-transformer'; +import { IsString, IsOptional, IsEnum, IsArray, IsInt, IsDefined } from 'class-validator'; + +export enum LogLevel { + SILENT = 'silent', + ERROR = 'error', + WARN = 'warn', + INFO = 'info', + DEBUG = 'debug', + TRACE = 'trace', +} + +/** + * @example ```jsonc + * { + * "token": "k5NzE2NDg1MTIwMjc0ODQ0Nj.DSnXwg.ttNotARealToken5p3WfDoUxhiH", + * "commandPrefix": "!mark", + * "activity": "\"!mark help\" for help", + * "ownerIds": ["00000000000000000"], + * "logLevel": "info", + * } + * ``` + */ +export class AppConfig { + /** + * Your Discord bot token + * @example k5NzE2NDg1MTIwMjc0ODQ0Nj.DSnXwg.ttNotARealToken5p3WfDoUxhiH + * @env TOKEN + */ + @IsDefined() + @IsString() + token = process.env.TOKEN as string; + + /** + * The command prefix used to trigger the bot commands (when not using slash commands) + * @example !bot + * @default !mark + * @env CRON_SCHEDULE + */ + @IsOptional() + @IsString() + commandPrefix = process.env.COMMAND_PREFIX || '!mark'; + + /** + * The activity status shown under the bot's name in the user list + * @example "!mark help" for help + * @default !mark help + * @env ACTIVITY + */ + @IsOptional() + @IsString() + activity = process.env.ACTIVITY || '!mark help'; + + /** + * A list of Discord user IDs that have owner permissions for the bot + * @example ['82684276755136512'] + * @default [] + * @env OWNER_IDS (comma separated) + */ + @IsArray() + @IsString({ each: true }) + @Type(() => String) + @IsOptional() + ownerIds = process.env.OWNER_IDS ? process.env.OWNER_IDS.split(',').map((id) => id.trim()) : []; + + /** + * TZ name from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List + * @example America/Chicago + * @default UTC + * @env TZ + */ + @IsOptional() + @IsString() + timezone = process.env.TZ || 'UTC'; + + /** + * Log level in lower case. Can be [silent, error, warn, info, debug, trace] + * @example debug + * @default info + * @env LOG_LEVEL + */ + @IsOptional() + @IsEnum(LogLevel) + logLevel = process.env.LOG_LEVEL || LogLevel.INFO; + + /** + * The stateSize is the number of words for each "link" of the generated sentence. + * 1 will output gibberish sentences without much sense. + * 2 is a sensible default for most cases. + * 3 and more can create good sentences if you have a corpus that allows it. + * @example 3 + * @default 2 + * @env STATE_SIZE + */ + @IsOptional() + @IsInt() + stateSize = process.env.STATE_SIZE ? parseInt(process.env.STATE_SIZE, 10) : 2; + + /** + * The number of tries the sentence generator will try before giving up + * @example 2000 + * @default 1000 + * @env MAX_TRIES + */ + @IsOptional() + @IsInt() + maxTries = process.env.MAX_TRIES ? parseInt(process.env.MAX_TRIES, 10) : 1000; + + /** + * The minimum score required when generating a sentence. + * A relative "score" based on the number of possible permutations. + * Higher is "better", but the actual value depends on your corpus. + * @example 15 + * @default 10 + * @env MIN_SCORE + */ + @IsOptional() + @IsInt() + minScore = process.env.MIN_SCORE ? parseInt(process.env.MIN_SCORE, 10) : 10; + + /** + * This guild ID should be declared if you want its commands to update immediately during development + * @example 1234567890 + * @env DEV_GUILD_ID + */ + @IsOptional() + @IsString() + devGuildId = process.env.DEV_GUILD_ID; +} diff --git a/src/config/index.ts b/src/config/index.ts new file mode 100644 index 0000000..239379e --- /dev/null +++ b/src/config/index.ts @@ -0,0 +1,2 @@ +export * from './classes'; +export * from './setup'; diff --git a/src/config/setup.ts b/src/config/setup.ts new file mode 100644 index 0000000..89eef78 --- /dev/null +++ b/src/config/setup.ts @@ -0,0 +1,80 @@ +import 'reflect-metadata'; +import { config as dotenv } from 'dotenv'; +import json5 from 'json5'; +import path from 'path'; +import fs from 'fs-extra'; +import { validateSync } from 'class-validator'; +import { instanceToPlain, plainToInstance } from 'class-transformer'; +import pino from 'pino'; +import { AppConfig } from './classes'; + +dotenv(); + +// Declare pino logger as importing would cause dependency cycle +const L = pino({ + transport: { + target: 'pino-pretty', + options: { + translateTime: `SYS:standard`, + }, + }, + formatters: { + level: (label) => { + return { level: label }; + }, + }, + level: process.env.LOG_LEVEL || 'info', + base: undefined, +}); + +// TODO: Add YAML parser +const EXTENSIONS = ['.json', '.json5']; // Allow .json or .json5 extension + +const removeFileExtension = (filename: string): string => { + const ext = path.extname(filename); + if (EXTENSIONS.includes(ext)) { + return path.basename(filename, ext); + } + return path.basename(filename); +}; + +export const CONFIG_DIR = process.env.CONFIG_DIR || 'config'; +export const CONFIG_FILE_NAME = process.env.CONFIG_FILE_NAME + ? removeFileExtension(process.env.CONFIG_FILE_NAME) + : 'config'; + +const configPaths = EXTENSIONS.map((ext) => path.resolve(CONFIG_DIR, `${CONFIG_FILE_NAME}${ext}`)); +const configPath = configPaths.find((p) => fs.existsSync(p)); +// eslint-disable-next-line import/no-mutable-exports +let config: AppConfig; +if (!configPath) { + L.warn('No config file detected'); + const newConfigPath = path.resolve(CONFIG_DIR, `${CONFIG_FILE_NAME}.json`); + config = new AppConfig(); + try { + L.debug({ newConfigPath }, 'Creating new config file'); + fs.writeJSONSync(newConfigPath, instanceToPlain(config), { spaces: 2 }); + L.info({ newConfigPath }, 'Wrote new default config file'); + } catch (err) { + L.debug(err); + L.info('Not allowed to create new config. Continuing...'); + } +} else { + L.debug({ configPath }); + const parsedConfig = json5.parse(fs.readFileSync(configPath, 'utf8')); + config = plainToInstance(AppConfig, parsedConfig); +} + +const errors = validateSync(config, { + validationError: { + target: false, + }, +}); +if (errors.length > 0) { + L.error({ errors }, 'Validation error(s)'); + throw new Error('Invalid config'); +} + +L.debug({ config: instanceToPlain(config) }); + +export { config }; diff --git a/src/deploy-commands.ts b/src/deploy-commands.ts new file mode 100644 index 0000000..94b1b93 --- /dev/null +++ b/src/deploy-commands.ts @@ -0,0 +1,22 @@ +import { SlashCommandBuilder } from '@discordjs/builders'; +import { REST } from '@discordjs/rest'; +import { Routes } from 'discord-api-types/v9'; +import { config } from './config'; +import { packageJson } from './util'; + +const helpSlashCommand = new SlashCommandBuilder() + .setName('help') + .setDescription(`How to use ${packageJson().name}`); + +const commands = [helpSlashCommand.toJSON()]; + +export async function deployCommands(clientId: string) { + const rest = new REST({ version: '9' }).setToken(config.token); + if (config.devGuildId) { + await rest.put(Routes.applicationGuildCommands(clientId, config.devGuildId), { + body: commands, + }); + } else { + await rest.put(Routes.applicationCommands(clientId), { body: commands }); + } +} diff --git a/src/entity/Channel.ts b/src/entity/Channel.ts new file mode 100644 index 0000000..7255678 --- /dev/null +++ b/src/entity/Channel.ts @@ -0,0 +1,17 @@ +/* eslint-disable import/no-cycle */ +import { PrimaryColumn, Entity, ManyToOne, BaseEntity, Column } from 'typeorm'; +import { Guild } from './Guild'; + +@Entity() +export class Channel extends BaseEntity { + @PrimaryColumn() + id: string; + + @Column({ + default: true, + }) + listen: boolean; + + @ManyToOne(() => Guild, (guild) => guild.channels) + guild: Guild; +} diff --git a/src/entity/Guild.ts b/src/entity/Guild.ts new file mode 100644 index 0000000..8ddb36b --- /dev/null +++ b/src/entity/Guild.ts @@ -0,0 +1,12 @@ +/* eslint-disable import/no-cycle */ +import { BaseEntity, Entity, OneToMany, PrimaryColumn } from 'typeorm'; +import { Channel } from './Channel'; + +@Entity() +export class Guild extends BaseEntity { + @PrimaryColumn() + id: string; + + @OneToMany(() => Channel, (channel) => channel.guild, { onDelete: 'CASCADE', cascade: true }) + channels: Channel[]; +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 0000000..3914e5b --- /dev/null +++ b/src/index.ts @@ -0,0 +1,390 @@ +/* eslint-disable no-console */ +import 'source-map-support/register'; +import 'reflect-metadata'; +import * as Discord from 'discord.js'; + +import Markov, { + MarkovGenerateOptions, + MarkovConstructorOptions, + AddDataProps, +} from 'markov-strings-db'; + +import { createConnection } from 'typeorm'; +import { MarkovInputData } from 'markov-strings-db/dist/src/entity/MarkovInputData'; +import { APIInteractionGuildMember } from 'discord-api-types'; +import L from './logger'; +import { Channel } from './entity/Channel'; +import { Guild } from './entity/Guild'; +import { config } from './config'; +import { deployCommands } from './deploy-commands'; +import { getRandomElement, getVersion, packageJson } from './util'; + +interface MarkovDataCustom { + attachments: string[]; +} + +const client = new Discord.Client({ + intents: [Discord.Intents.FLAGS.GUILD_MESSAGES, Discord.Intents.FLAGS.GUILDS], + presence: { + activities: [ + { + type: 'PLAYING', + name: config.activity, + url: packageJson().homepage, + }, + ], + }, +}); + +const markovOpts: MarkovConstructorOptions = { + stateSize: config.stateSize, +}; + +/** + * #v3-complete + */ +async function getMarkovByGuildId(guildId: string): Promise { + const id = parseInt(guildId, 10); + const markov = new Markov({ id, options: markovOpts }); + await markov.setup(); // Connect the markov instance to the DB to assign it an ID + return markov; +} + +/** + * Checks if the author of a message as moderator-like permissions. + * @param {GuildMember} member Sender of the message + * @return {Boolean} True if the sender is a moderator. + * #v3-complete + */ +function isModerator(member: Discord.GuildMember | APIInteractionGuildMember | null): boolean { + const MODERATOR_PERMISSIONS: Discord.PermissionResolvable[] = [ + 'ADMINISTRATOR', + 'MANAGE_CHANNELS', + 'KICK_MEMBERS', + 'MOVE_MEMBERS', + ]; + if (!member) return false; + if (member instanceof Discord.GuildMember) { + return ( + MODERATOR_PERMISSIONS.some((p) => member.permissions.has(p)) || + config.ownerIds.includes(member.id) + ); + } + // TODO: How to parse API permissions? + L.debug({ permissions: member.permissions }); + return true; +} + +type MessageCommands = 'respond' | 'train' | 'help' | 'invite' | 'debug' | 'tts' | null; + +/** + * Reads a new message and checks if and which command it is. + * @param {Message} message Message to be interpreted as a command + * @return {String} Command string + */ +function validateMessage(message: Discord.Message): MessageCommands { + const messageText = message.content.toLowerCase(); + let command: MessageCommands = null; + const thisPrefix = messageText.substring(0, config.commandPrefix.length); + if (thisPrefix === config.commandPrefix) { + const split = messageText.split(' '); + if (split[0] === config.commandPrefix && split.length === 1) { + command = 'respond'; + } else if (split[1] === 'train') { + command = 'train'; + } else if (split[1] === 'help') { + command = 'help'; + } else if (split[1] === 'invite') { + command = 'invite'; + } else if (split[1] === 'debug') { + command = 'debug'; + } else if (split[1] === 'tts') { + command = 'tts'; + } + } + return command; +} + +function messageToData(message: Discord.Message): AddDataProps { + const attachmentUrls = message.attachments.map((a) => a.url); + let custom: MarkovDataCustom | undefined; + if (attachmentUrls.length) custom = { attachments: attachmentUrls }; + return { + string: message.content, + custom, + }; +} + +/** + * Recursively gets all messages in a text channel's history. + * #v3-complete + */ +async function saveChannelMessageHistory( + channel: Discord.TextChannel, + interaction: Discord.Message | Discord.CommandInteraction +): Promise { + if (!isModerator(interaction.member as any)) return; + const markov = await getMarkovByGuildId(channel.guildId); + L.debug({ channelId: channel.id }, `Training from text channel`); + const PAGE_SIZE = 100; + let keepGoing = true; + let oldestMessageID: string | undefined; + + let channelMessagesCount = 0; + + while (keepGoing) { + // eslint-disable-next-line no-await-in-loop + const messages = await channel.messages.fetch({ + before: oldestMessageID, + limit: PAGE_SIZE, + }); + const nonBotMessageFormatted = messages.filter((elem) => !elem.author.bot).map(messageToData); + L.debug({ oldestMessageID }, `Saving ${nonBotMessageFormatted.length} messages`); + // eslint-disable-next-line no-await-in-loop + await markov.addData(nonBotMessageFormatted); + L.trace('Finished saving messages'); + channelMessagesCount += nonBotMessageFormatted.length; + const lastMessage = messages.last(); + if (!lastMessage || messages.size < PAGE_SIZE) { + keepGoing = false; + } else { + oldestMessageID = lastMessage.id; + } + } + + L.info( + { channelId: channel.id }, + `Trained from ${channelMessagesCount} past human authored messages.` + ); + await interaction.reply(`Trained from ${channelMessagesCount} past human authored messages.`); +} + +/** + * General Markov-chain response function + * @param interaction The message that invoked the action, used for channel info. + * @param debug Sends debug info as a message if true. + * @param tts If the message should be sent as TTS. Defaults to the TTS setting of the + * invoking message. + * #v3-complete + */ +async function generateResponse( + interaction: Discord.Message | Discord.CommandInteraction, + debug = false, + tts = false +): Promise { + L.debug('Responding...'); + if (!interaction.guildId) { + L.info('Received a message without a guildId'); + return; + } + const options: MarkovGenerateOptions = { + filter: (result): boolean => { + return result.score >= config.minScore; + }, + maxTries: config.maxTries, + }; + + const markov = await getMarkovByGuildId(interaction.guildId); + + try { + const response = await markov.generate(options); + L.info({ response }, 'Generated response'); + const messageOpts: Discord.MessageOptions = { tts }; + const attachmentUrls = response.refs + .filter((ref) => ref.custom && 'attachments' in ref.custom) + .flatMap((ref) => ref.custom.attachments); + if (attachmentUrls.length > 0) { + const randomRefAttachment = getRandomElement(attachmentUrls); + messageOpts.files = [randomRefAttachment]; + } else { + // TODO: This might not even work + const randomMessage = await MarkovInputData.createQueryBuilder< + MarkovInputData + >('input') + .leftJoinAndSelect('input.fragment', 'fragment') + .leftJoinAndSelect('fragment.corpusEntry', 'corpusEntry') + .where([ + { + fragment: { startWordMarkov: markov.db }, + }, + { + fragment: { endWordMarkov: markov.db }, + }, + { + fragment: { corpusEntry: { markov: markov.db } }, + }, + ]) + .orderBy('RANDOM()') + .limit(1) + .getOne(); + const randomMessageAttachmentUrls = randomMessage?.custom?.attachments; + if (randomMessageAttachmentUrls?.length) { + messageOpts.files = [{ attachment: getRandomElement(randomMessageAttachmentUrls) }]; + } + } + + response.string = response.string.replace(/@everyone/g, '@everyοne'); // Replace @everyone with a homoglyph 'o' + messageOpts.content = response.string; + + if (interaction instanceof Discord.Message) { + await interaction.channel.send(messageOpts); + if (debug) { + await interaction.channel.send(`\`\`\`\n${JSON.stringify(response, null, 2)}\n\`\`\``); + } + } else if (interaction instanceof Discord.CommandInteraction) { + await interaction.editReply(messageOpts); + if (debug) { + await interaction.followUp(`\`\`\`\n${JSON.stringify(response, null, 2)}\n\`\`\``); + } + } + } catch (err) { + L.error(err); + if (debug) { + if (interaction instanceof Discord.Message) { + await interaction.channel.send(`\n\`\`\`\nERROR: ${err}\n\`\`\``); + } else if (interaction instanceof Discord.CommandInteraction) { + await interaction.editReply(`\n\`\`\`\nERROR: ${err}\n\`\`\``); + } + } + } +} + +function helpMessage(): Discord.MessageOptions { + const avatarURL = client.user.avatarURL() || undefined; + const embed = new Discord.MessageEmbed() + .setAuthor(client.user.username || packageJson().name, avatarURL) + .setThumbnail(avatarURL as string) + .setDescription('A Markov chain chatbot that speaks based on previous chat input.') + .addField( + `${config.commandPrefix}`, + 'Generates a sentence to say based on the chat database. Send your ' + + 'message as TTS to recieve it as TTS.' + ) + .addField( + `${config.commandPrefix} train`, + 'Fetches the maximum amount of previous messages in the current ' + + 'text channel, adds it to the database, and regenerates the corpus. Takes some time.' + ) + .addField( + `${config.commandPrefix} invite`, + "Don't invite this bot to other servers. The database is shared " + + 'between all servers and text channels.' + ) + .addField( + `${config.commandPrefix} debug`, + `Runs the ${config.commandPrefix} command and follows it up with debug info.` + ) + .setFooter(`Markov Discord ${getVersion()} by ${packageJson().author}`); + return { + embeds: [embed], + }; +} + +function inviteMessage(): Discord.MessageOptions { + const avatarURL = client.user.avatarURL() || undefined; + const embed = new Discord.MessageEmbed() + .setAuthor(`Invite ${client.user?.username}`, avatarURL) + .setThumbnail(avatarURL as string) + .addField( + 'Invite', + `[Invite ${client.user.username} to your server](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=105472&scope=bot%20applications.commands)` + ); + return { embeds: [embed] }; +} + +client.on('ready', async (readyClient) => { + L.info('Bot logged in'); + + await deployCommands(readyClient.user.id); + + const guildsToSave: Guild[] = []; + const channelsToSave: Channel[] = []; + readyClient.guilds.valueOf().forEach((guild) => { + const dbGuild = Guild.create({ id: guild.id }); + const textChannels = guild.channels.valueOf().filter((channel) => channel.isText()); + const dbChannels = textChannels.map((channel) => + Channel.create({ id: channel.id, guild: dbGuild }) + ); + guildsToSave.push(dbGuild); + channelsToSave.push(...dbChannels); + }); + await Guild.upsert(guildsToSave, ['id']); + await Channel.upsert(channelsToSave, ['id']); // TODO: ensure this doesn't overwrite the existing `listen` +}); + +client.on('error', (err) => { + L.error(err); +}); + +client.on('messageCreate', async (message) => { + if (!(message.guild && message.channel instanceof Discord.TextChannel)) return; + const command = validateMessage(message); + if (command === 'help') { + await message.channel.send(helpMessage()); + } + if (command === 'invite') { + await message.channel.send(inviteMessage()); + } + if (command === 'train') { + await saveChannelMessageHistory(message.channel, message); + } + if (command === 'respond') { + await generateResponse(message); + } + if (command === 'tts') { + await generateResponse(message, false, true); + } + if (command === 'debug') { + await generateResponse(message, true); + } + if (command === null) { + L.debug('Listening...'); + if (!message.author.bot) { + const markov = await getMarkovByGuildId(message.channel.guildId); + await markov.addData([messageToData(message)]); + + if (client.user && message.mentions.has(client.user)) { + await generateResponse(message); + } + } + } +}); + +/** + * #v3-complete + */ +client.on('messageDelete', async (message) => { + L.info(`Deleting message ${message.id}`); + if (!(message.guildId && message.content)) { + return; + } + const markov = await getMarkovByGuildId(message.guildId); + await markov.removeData([message.content]); +}); + +/** + * #v3-complete + */ +client.on('messageUpdate', async (oldMessage, newMessage) => { + L.info(`Editing message ${oldMessage.id}`); + if (!(oldMessage.guildId && oldMessage.content && newMessage.content)) { + return; + } + const markov = await getMarkovByGuildId(oldMessage.guildId); + await markov.removeData([oldMessage.content]); + await markov.addData([newMessage.content]); +}); + +/** + * Loads the config settings from disk + */ +async function main(): Promise { + const connection = await Markov.extendConnectionOptions(); + await createConnection(connection); + await client.login(config.token); + + // Move config if in legacy location + // TODO: import legacy DB? +} + +main(); diff --git a/src/logger.ts b/src/logger.ts new file mode 100644 index 0000000..aec3e7d --- /dev/null +++ b/src/logger.ts @@ -0,0 +1,22 @@ +import pino from 'pino'; +import dotenv from 'dotenv'; + +dotenv.config(); + +const logger = pino({ + transport: { + target: 'pino-pretty', + options: { + translateTime: `SYS:standard`, + }, + }, + formatters: { + level: (label) => { + return { level: label }; + }, + }, + level: process.env.LOG_LEVEL || 'info', + base: undefined, +}); + +export default logger; diff --git a/src/migration/.gitkeep b/src/migration/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/subscriber/.gitkeep b/src/subscriber/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/util.ts b/src/util.ts new file mode 100644 index 0000000..55c6f7e --- /dev/null +++ b/src/util.ts @@ -0,0 +1,21 @@ +import fs from 'fs-extra'; +import path from 'path'; +import type { PackageJson } from 'types-package-json'; + +let packageJsonCache: PackageJson | undefined; +export const packageJson = (): PackageJson => { + if (packageJsonCache) return packageJsonCache; + packageJsonCache = fs.readJSONSync(path.resolve(process.cwd(), `package.json`)); + return packageJsonCache as PackageJson; +}; + +export const getVersion = (): string => { + const { COMMIT_SHA } = process.env; + let { version } = packageJson(); + if (COMMIT_SHA) version = `${version}#${COMMIT_SHA.substring(0, 8)}`; + return version; +}; + +export const getRandomElement = (array: T[]): T => { + return array[Math.floor(Math.random() * array.length)]; +}; diff --git a/tsconfig.json b/tsconfig.json index 7fad991..240f7d6 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,17 +4,19 @@ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ "outDir": "./dist", /* Redirect output structure to the directory. */ "removeComments": true, /* Do not emit comments to output. */ + "esModuleInterop": true, "strict": true, /* Enable all strict type-checking options. */ "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ "typeRoots": [ "node_modules/@types" ], /* List of folders to include type definitions from. */ "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + "forceConsistentCasingInFileNames": true, /* Disallow inconsistently-cased references to the same file. */ + "useUnknownInCatchVariables": false, + "experimentalDecorators": true, + "strictPropertyInitialization": false, + "emitDecoratorMetadata": true, }, - "include": [ - "**/*.ts" - ], "exclude": [ "node_modules", "dist" From a2ae99d75de1df30508fd787ea24fef81513cf65 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Mon, 20 Dec 2021 23:29:01 -0600 Subject: [PATCH 02/45] Some work on channel-gating --- .gitignore | 2 ++ src/deploy-commands.ts | 45 ++++++++++++++++++++++++++++--- src/entity/Channel.ts | 4 +-- src/entity/Guild.ts | 2 +- src/index.ts | 60 ++++++++++++++++++++++++++---------------- 5 files changed, 85 insertions(+), 28 deletions(-) diff --git a/.gitignore b/.gitignore index ce66808..ab4680a 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,5 @@ config.json # error output file error.json markovDB.json + +config diff --git a/src/deploy-commands.ts b/src/deploy-commands.ts index 94b1b93..8f5de61 100644 --- a/src/deploy-commands.ts +++ b/src/deploy-commands.ts @@ -1,14 +1,53 @@ -import { SlashCommandBuilder } from '@discordjs/builders'; +import { SlashCommandBuilder, SlashCommandChannelOption } from '@discordjs/builders'; import { REST } from '@discordjs/rest'; -import { Routes } from 'discord-api-types/v9'; +import { ChannelType, Routes } from 'discord-api-types/v9'; import { config } from './config'; import { packageJson } from './util'; +const CHANNEL_OPTIONS_MAX = 25; + const helpSlashCommand = new SlashCommandBuilder() .setName('help') .setDescription(`How to use ${packageJson().name}`); -const commands = [helpSlashCommand.toJSON()]; +/** + * Helps generate a list of parameters for channel options + */ +const channelOptionsGenerator = (builder: SlashCommandChannelOption, index: number) => + builder + .setName(`channel-${index + 1}`) + .setDescription('A text channel') + .setRequired(index === 0) + .addChannelType(ChannelType.GuildText as any); + +const listenChannelCommand = new SlashCommandBuilder() + .setName('listen') + .addSubcommand((sub) => { + sub + .setName('add') + .setDescription( + `Add channels to learn from. Doesn't add the channel's past messages; re-train to do that.` + ); + + Array.from(Array(CHANNEL_OPTIONS_MAX).keys()).forEach((index) => + sub.addChannelOption((opt) => channelOptionsGenerator(opt, index)) + ); + return sub; + }) + .addSubcommand((sub) => { + sub + .setName('remove') + .setDescription( + `Remove channels from being learned from. Doesn't remove the channel's data; re-train to do that.` + ); + Array.from(Array(CHANNEL_OPTIONS_MAX).keys()).forEach((index) => + sub.addChannelOption((opt) => channelOptionsGenerator(opt, index)) + ); + return sub; + }) + .setDescription(`How to use ${packageJson().name}`); + +const commands = [helpSlashCommand.toJSON(), listenChannelCommand.toJSON()]; export async function deployCommands(clientId: string) { const rest = new REST({ version: '9' }).setToken(config.token); diff --git a/src/entity/Channel.ts b/src/entity/Channel.ts index 7255678..080469a 100644 --- a/src/entity/Channel.ts +++ b/src/entity/Channel.ts @@ -5,10 +5,10 @@ import { Guild } from './Guild'; @Entity() export class Channel extends BaseEntity { @PrimaryColumn() - id: string; + id: number; @Column({ - default: true, + default: false, }) listen: boolean; diff --git a/src/entity/Guild.ts b/src/entity/Guild.ts index 8ddb36b..1bd8f41 100644 --- a/src/entity/Guild.ts +++ b/src/entity/Guild.ts @@ -5,7 +5,7 @@ import { Channel } from './Channel'; @Entity() export class Guild extends BaseEntity { @PrimaryColumn() - id: string; + id: number; @OneToMany(() => Channel, (channel) => channel.guild, { onDelete: 'CASCADE', cascade: true }) channels: Channel[]; diff --git a/src/index.ts b/src/index.ts index 3914e5b..485efe4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -40,6 +40,13 @@ const markovOpts: MarkovConstructorOptions = { stateSize: config.stateSize, }; +const markovGenerateOptions: MarkovGenerateOptions = { + filter: (result): boolean => { + return result.score >= config.minScore; + }, + maxTries: config.maxTries, +}; + /** * #v3-complete */ @@ -50,6 +57,20 @@ async function getMarkovByGuildId(guildId: string): Promise { return markov; } +/** + * #v3-complete + */ +async function isValidChannel(channelId: string): Promise { + const id = parseInt(channelId, 10); + const channel = await Channel.findOne(id); + if (!channel) { + L.warn({ channelId }, 'Channel does not exist, setting to valid'); + await Channel.create({ id }).save(); + return false; + } + return channel.listen; +} + /** * Checks if the author of a message as moderator-like permissions. * @param {GuildMember} member Sender of the message @@ -174,20 +195,25 @@ async function generateResponse( ): Promise { L.debug('Responding...'); if (!interaction.guildId) { - L.info('Received a message without a guildId'); + L.debug('Received an interaction without a guildId'); + return; + } + if (!interaction.channelId) { + L.debug('Received an interaction without a channelId'); + return; + } + const isValid = await isValidChannel(interaction.channelId); + if (!isValid) { + L.debug( + { channelId: interaction.channelId }, + 'Channel is not enabled for listening. Ignoring...' + ); return; } - const options: MarkovGenerateOptions = { - filter: (result): boolean => { - return result.score >= config.minScore; - }, - maxTries: config.maxTries, - }; - const markov = await getMarkovByGuildId(interaction.guildId); try { - const response = await markov.generate(options); + const response = await markov.generate(markovGenerateOptions); L.info({ response }, 'Generated response'); const messageOpts: Discord.MessageOptions = { tts }; const attachmentUrls = response.refs @@ -197,7 +223,6 @@ async function generateResponse( const randomRefAttachment = getRandomElement(attachmentUrls); messageOpts.files = [randomRefAttachment]; } else { - // TODO: This might not even work const randomMessage = await MarkovInputData.createQueryBuilder< MarkovInputData >('input') @@ -297,19 +322,10 @@ client.on('ready', async (readyClient) => { await deployCommands(readyClient.user.id); - const guildsToSave: Guild[] = []; - const channelsToSave: Channel[] = []; - readyClient.guilds.valueOf().forEach((guild) => { - const dbGuild = Guild.create({ id: guild.id }); - const textChannels = guild.channels.valueOf().filter((channel) => channel.isText()); - const dbChannels = textChannels.map((channel) => - Channel.create({ id: channel.id, guild: dbGuild }) - ); - guildsToSave.push(dbGuild); - channelsToSave.push(...dbChannels); - }); + const guildsToSave = readyClient.guilds + .valueOf() + .map((guild) => Guild.create({ id: parseInt(guild.id, 10) })); await Guild.upsert(guildsToSave, ['id']); - await Channel.upsert(channelsToSave, ['id']); // TODO: ensure this doesn't overwrite the existing `listen` }); client.on('error', (err) => { From 3b946b72ec374a2f2209c2b323142a54462eaf95 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Tue, 21 Dec 2021 23:19:14 -0600 Subject: [PATCH 03/45] Initial support for channel-based data storage --- config/db/db.sqlite3 | Bin 2166784 -> 0 bytes config/db/db.sqlite3-shm | Bin 32768 -> 0 bytes config/db/db.sqlite3-wal | Bin 4144752 -> 0 bytes src/config/classes.ts | 14 ++- src/deploy-commands.ts | 43 ++++++++- src/index.ts | 199 +++++++++++++++++++++++++-------------- 6 files changed, 177 insertions(+), 79 deletions(-) delete mode 100644 config/db/db.sqlite3 delete mode 100644 config/db/db.sqlite3-shm delete mode 100644 config/db/db.sqlite3-wal diff --git a/config/db/db.sqlite3 b/config/db/db.sqlite3 deleted file mode 100644 index cfd0d7d4be787412b2498d36b1a736b5d7e72b6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2166784 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�kwW0lzG;M% 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 X)dML`&AY!aenA6v<_OMnw3Gh;eWO;| diff --git a/config/db/db.sqlite3-wal b/config/db/db.sqlite3-wal deleted file mode 100644 index 6be24820a3501bba919267cca814cdcc023ca2ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4144752 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
FOWDSEG=DDynf|6VYZYHr`5MMG}e|SvzsfF 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 diff --git a/src/config/classes.ts b/src/config/classes.ts index 40b6980..039ae43 100644 --- a/src/config/classes.ts +++ b/src/config/classes.ts @@ -37,11 +37,21 @@ export class AppConfig { * The command prefix used to trigger the bot commands (when not using slash commands) * @example !bot * @default !mark - * @env CRON_SCHEDULE + * @env MESSAGE_COMMAND_PREFIX */ @IsOptional() @IsString() - commandPrefix = process.env.COMMAND_PREFIX || '!mark'; + messageCommandPrefix = process.env.MESSAGE_COMMAND_PREFIX || '!mark'; + + /** + * The slash command name to generate a message from the bot. (e.g. `/mark`) + * @example message + * @default mark + * @env SLASH_COMMAND_NAME + */ + @IsOptional() + @IsString() + slashCommandName = process.env.SLASH_COMMAND_NAME || 'mark'; /** * The activity status shown under the bot's name in the user list diff --git a/src/deploy-commands.ts b/src/deploy-commands.ts index 8f5de61..0449453 100644 --- a/src/deploy-commands.ts +++ b/src/deploy-commands.ts @@ -6,10 +6,27 @@ import { packageJson } from './util'; const CHANNEL_OPTIONS_MAX = 25; -const helpSlashCommand = new SlashCommandBuilder() +export const helpCommand = new SlashCommandBuilder() .setName('help') .setDescription(`How to use ${packageJson().name}`); +export const inviteCommand = new SlashCommandBuilder() + .setName('invite') + .setDescription('Get the invite link for this bot.'); + +export const messageCommand = new SlashCommandBuilder() + .setName(config.slashCommandName) + .setDescription('Generate a message from learned past messages') + .addBooleanOption((tts) => + tts.setName('tts').setDescription('Read the message via text-to-speech.').setRequired(false) + ) + .addBooleanOption((debug) => + debug + .setName('debug') + .setDescription('Follow up the generated message with the detailed sources that inspired it.') + .setRequired(false) + ); + /** * Helps generate a list of parameters for channel options */ @@ -20,15 +37,15 @@ const channelOptionsGenerator = (builder: SlashCommandChannelOption, index: numb .setRequired(index === 0) .addChannelType(ChannelType.GuildText as any); -const listenChannelCommand = new SlashCommandBuilder() +export const listenChannelCommand = new SlashCommandBuilder() .setName('listen') + .setDescription('Change what channels the bot actively listens to and learns from.') .addSubcommand((sub) => { sub .setName('add') .setDescription( `Add channels to learn from. Doesn't add the channel's past messages; re-train to do that.` ); - Array.from(Array(CHANNEL_OPTIONS_MAX).keys()).forEach((index) => sub.addChannelOption((opt) => channelOptionsGenerator(opt, index)) ); @@ -45,9 +62,25 @@ const listenChannelCommand = new SlashCommandBuilder() ); return sub; }) - .setDescription(`How to use ${packageJson().name}`); + .addSubcommand((sub) => + sub + .setName('list') + .setDescription(`List the channels the bot is currently actively listening to.`) + ); -const commands = [helpSlashCommand.toJSON(), listenChannelCommand.toJSON()]; +export const trainCommand = new SlashCommandBuilder() + .setName('train') + .setDescription( + 'Train from past messages from the configured listened channels. This takes a while.' + ); + +const commands = [ + helpCommand.toJSON(), + inviteCommand.toJSON(), + messageCommand.toJSON(), + listenChannelCommand.toJSON(), + trainCommand.toJSON(), +]; export async function deployCommands(clientId: string) { const rest = new REST({ version: '9' }).setToken(config.token); diff --git a/src/index.ts b/src/index.ts index 485efe4..138986c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,7 +16,14 @@ import L from './logger'; import { Channel } from './entity/Channel'; import { Guild } from './entity/Guild'; import { config } from './config'; -import { deployCommands } from './deploy-commands'; +import { + deployCommands, + helpCommand, + inviteCommand, + listenChannelCommand, + messageCommand, + trainCommand, +} from './deploy-commands'; import { getRandomElement, getVersion, packageJson } from './util'; interface MarkovDataCustom { @@ -71,6 +78,18 @@ async function isValidChannel(channelId: string): Promise { return channel.listen; } +/** + * #v3-complete + */ +async function getValidChannels(guildId: string): Promise { + const id = parseInt(guildId, 10); + const dbChannels = await Channel.find({ guild: Guild.create({ id }), listen: true }); + const channels = ( + await Promise.all(dbChannels.map(async (dbc) => client.channels.fetch(dbc.id.toString()))) + ).filter((c): c is Discord.TextChannel => c !== null && c instanceof Discord.TextChannel); + return channels; +} + /** * Checks if the author of a message as moderator-like permissions. * @param {GuildMember} member Sender of the message @@ -106,10 +125,10 @@ type MessageCommands = 'respond' | 'train' | 'help' | 'invite' | 'debug' | 'tts' function validateMessage(message: Discord.Message): MessageCommands { const messageText = message.content.toLowerCase(); let command: MessageCommands = null; - const thisPrefix = messageText.substring(0, config.commandPrefix.length); - if (thisPrefix === config.commandPrefix) { + const thisPrefix = messageText.substring(0, config.messageCommandPrefix.length); + if (thisPrefix === config.messageCommandPrefix) { const split = messageText.split(' '); - if (split[0] === config.commandPrefix && split.length === 1) { + if (split[0] === config.messageCommandPrefix && split.length === 1) { command = 'respond'; } else if (split[1] === 'train') { command = 'train'; @@ -140,44 +159,59 @@ function messageToData(message: Discord.Message): AddDataProps { * Recursively gets all messages in a text channel's history. * #v3-complete */ -async function saveChannelMessageHistory( - channel: Discord.TextChannel, +async function saveGuildMessageHistory( interaction: Discord.Message | Discord.CommandInteraction -): Promise { - if (!isModerator(interaction.member as any)) return; - const markov = await getMarkovByGuildId(channel.guildId); - L.debug({ channelId: channel.id }, `Training from text channel`); +): Promise { + if (!isModerator(interaction.member as any)) + return 'You do not have the permissions for this action.'; + if (!interaction.guildId) return 'This action must be performed within a server.'; + const markov = await getMarkovByGuildId(interaction.guildId); + const channels = await getValidChannels(interaction.guildId); + + if (!channels.length) { + L.warn({ guildId: interaction.guildId }, 'No channels to train from'); + return 'No channels configured to learn from. Set some with `/listen add`.'; + } + + const channelIds = channels.map((c) => c.id); + L.debug({ channelIds }, `Training from text channels`); + const PAGE_SIZE = 100; - let keepGoing = true; - let oldestMessageID: string | undefined; + let messagesCount = 0; + // eslint-disable-next-line no-restricted-syntax + for (const channel of channels) { + let oldestMessageID: string | undefined; + let keepGoing = true; + L.debug({ channelId: channel.id, messagesCount }, `Training from channel`); - let channelMessagesCount = 0; - - while (keepGoing) { - // eslint-disable-next-line no-await-in-loop - const messages = await channel.messages.fetch({ - before: oldestMessageID, - limit: PAGE_SIZE, - }); - const nonBotMessageFormatted = messages.filter((elem) => !elem.author.bot).map(messageToData); - L.debug({ oldestMessageID }, `Saving ${nonBotMessageFormatted.length} messages`); - // eslint-disable-next-line no-await-in-loop - await markov.addData(nonBotMessageFormatted); - L.trace('Finished saving messages'); - channelMessagesCount += nonBotMessageFormatted.length; - const lastMessage = messages.last(); - if (!lastMessage || messages.size < PAGE_SIZE) { - keepGoing = false; - } else { - oldestMessageID = lastMessage.id; + while (keepGoing) { + // eslint-disable-next-line no-await-in-loop + const messages = await channel.messages.fetch({ + before: oldestMessageID, + limit: PAGE_SIZE, + }); + const nonBotMessageFormatted = messages.filter((elem) => !elem.author.bot).map(messageToData); + L.trace({ oldestMessageID }, `Saving ${nonBotMessageFormatted.length} messages`); + // eslint-disable-next-line no-await-in-loop + await markov.addData(nonBotMessageFormatted); + L.trace('Finished saving messages'); + messagesCount += nonBotMessageFormatted.length; + const lastMessage = messages.last(); + if (!lastMessage || messages.size < PAGE_SIZE) { + keepGoing = false; + } else { + oldestMessageID = lastMessage.id; + } } } - L.info( - { channelId: channel.id }, - `Trained from ${channelMessagesCount} past human authored messages.` - ); - await interaction.reply(`Trained from ${channelMessagesCount} past human authored messages.`); + L.info({ channelIds }, `Trained from ${messagesCount} past human authored messages.`); + return `Trained from ${messagesCount} past human authored messages.`; +} + +interface GenerateResponse { + message?: Discord.MessageOptions; + debug?: Discord.MessageOptions; } /** @@ -192,23 +226,15 @@ async function generateResponse( interaction: Discord.Message | Discord.CommandInteraction, debug = false, tts = false -): Promise { +): Promise { L.debug('Responding...'); if (!interaction.guildId) { - L.debug('Received an interaction without a guildId'); - return; + L.warn('Received an interaction without a guildId'); + return { message: { content: 'This action must be performed within a server.' } }; } if (!interaction.channelId) { - L.debug('Received an interaction without a channelId'); - return; - } - const isValid = await isValidChannel(interaction.channelId); - if (!isValid) { - L.debug( - { channelId: interaction.channelId }, - 'Channel is not enabled for listening. Ignoring...' - ); - return; + L.warn('Received an interaction without a channelId'); + return { message: { content: 'This action must be performed within a text channel.' } }; } const markov = await getMarkovByGuildId(interaction.guildId); @@ -251,26 +277,19 @@ async function generateResponse( response.string = response.string.replace(/@everyone/g, '@everyοne'); // Replace @everyone with a homoglyph 'o' messageOpts.content = response.string; - if (interaction instanceof Discord.Message) { - await interaction.channel.send(messageOpts); - if (debug) { - await interaction.channel.send(`\`\`\`\n${JSON.stringify(response, null, 2)}\n\`\`\``); - } - } else if (interaction instanceof Discord.CommandInteraction) { - await interaction.editReply(messageOpts); - if (debug) { - await interaction.followUp(`\`\`\`\n${JSON.stringify(response, null, 2)}\n\`\`\``); - } + const responseMessages: GenerateResponse = { + message: messageOpts, + }; + if (debug) { + responseMessages.debug = { content: `\`\`\`\n${JSON.stringify(response, null, 2)}\n\`\`\`` }; } + return responseMessages; } catch (err) { L.error(err); if (debug) { - if (interaction instanceof Discord.Message) { - await interaction.channel.send(`\n\`\`\`\nERROR: ${err}\n\`\`\``); - } else if (interaction instanceof Discord.CommandInteraction) { - await interaction.editReply(`\n\`\`\`\nERROR: ${err}\n\`\`\``); - } + return { debug: { content: `\n\`\`\`\nERROR: ${err}\n\`\`\`` } }; } + return {}; } } @@ -281,25 +300,29 @@ function helpMessage(): Discord.MessageOptions { .setThumbnail(avatarURL as string) .setDescription('A Markov chain chatbot that speaks based on previous chat input.') .addField( - `${config.commandPrefix}`, + `${config.messageCommandPrefix} or /${messageCommand.name}`, 'Generates a sentence to say based on the chat database. Send your ' + 'message as TTS to recieve it as TTS.' ) .addField( - `${config.commandPrefix} train`, + `${config.messageCommandPrefix} train or /${trainCommand.name}`, 'Fetches the maximum amount of previous messages in the current ' + 'text channel, adds it to the database, and regenerates the corpus. Takes some time.' ) .addField( - `${config.commandPrefix} invite`, + `${config.messageCommandPrefix} invite or /${inviteCommand.name}`, "Don't invite this bot to other servers. The database is shared " + 'between all servers and text channels.' ) .addField( - `${config.commandPrefix} debug`, - `Runs the ${config.commandPrefix} command and follows it up with debug info.` + `${config.messageCommandPrefix} debug or /${messageCommand.name} debug: True`, + `Runs the ${config.messageCommandPrefix} command and follows it up with debug info.` ) - .setFooter(`Markov Discord ${getVersion()} by ${packageJson().author}`); + .addField( + `${config.messageCommandPrefix} tts or /${messageCommand.name} tts: True`, + `Runs the ${config.messageCommandPrefix} command and reads it with text-to-speech.` + ) + .setFooter(`${packageJson().name} ${getVersion()} by ${packageJson().author}`); return { embeds: [embed], }; @@ -342,10 +365,13 @@ client.on('messageCreate', async (message) => { await message.channel.send(inviteMessage()); } if (command === 'train') { - await saveChannelMessageHistory(message.channel, message); + const response = await saveGuildMessageHistory(message); + await message.reply(response); } if (command === 'respond') { - await generateResponse(message); + const generatedResponse = await generateResponse(message); + if (generatedResponse.message) await message.reply(generatedResponse.message); + if (generatedResponse.debug) await message.reply(generatedResponse.debug); } if (command === 'tts') { await generateResponse(message, false, true); @@ -370,6 +396,7 @@ client.on('messageCreate', async (message) => { * #v3-complete */ client.on('messageDelete', async (message) => { + if (message.author?.bot) return; L.info(`Deleting message ${message.id}`); if (!(message.guildId && message.content)) { return; @@ -382,6 +409,7 @@ client.on('messageDelete', async (message) => { * #v3-complete */ client.on('messageUpdate', async (oldMessage, newMessage) => { + if (oldMessage.author?.bot) return; L.info(`Editing message ${oldMessage.id}`); if (!(oldMessage.guildId && oldMessage.content && newMessage.content)) { return; @@ -391,6 +419,33 @@ client.on('messageUpdate', async (oldMessage, newMessage) => { await markov.addData([newMessage.content]); }); +client.on('interactionCreate', async (interaction) => { + if (!interaction.isCommand()) return; + + // Unprivileged commands + if (interaction.commandName === helpCommand.name) { + await interaction.reply(helpMessage()); + } else if (interaction.commandName === inviteCommand.name) { + await interaction.reply(inviteMessage()); + } else if (interaction.commandName === messageCommand.name) { + await interaction.deferReply(); + const tts = interaction.options.getBoolean('tts') || false; + const debug = interaction.options.getBoolean('debug') || false; + const generatedResponse = await generateResponse(interaction, debug, tts); + if (generatedResponse.message) await interaction.editReply(generatedResponse.message); + if (generatedResponse.debug) await interaction.followUp(generatedResponse.debug); + if (!Object.keys(generatedResponse).length) await interaction.deleteReply(); + } + // Privileged commands + if (interaction.commandName === listenChannelCommand.name) { + await interaction.reply('Pong!'); + } else if (interaction.commandName === trainCommand.name) { + await interaction.deferReply(); + const responseMessage = await saveGuildMessageHistory(interaction); + await interaction.editReply(responseMessage); + } +}); + /** * Loads the config settings from disk */ From 0052ffff3b9565afe2e92ddaefc0b8c9746d0ebc Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 23 Dec 2021 21:54:42 -0600 Subject: [PATCH 04/45] Complete channel add/remove/list functionality --- package-lock.json | 4 +- src/deploy-commands.ts | 2 +- src/entity/Channel.ts | 4 +- src/entity/Guild.ts | 4 +- src/index.ts | 152 ++++++++++++++++++++++++++--------------- 5 files changed, 105 insertions(+), 61 deletions(-) diff --git a/package-lock.json b/package-lock.json index ca41785..d13d22c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2669,7 +2669,7 @@ "node_modules/markov-strings-db": { "version": "4.0.0", "resolved": "file:../markov-strings/markov-strings-db-4.0.0.tgz", - "integrity": "sha512-CBYNkqUqj0XVohyBLz6kJL81VKzh+8xLcN6vp0ojps/AjqmycKHmj/xZWdCZjc72X7r85UaLnJ6L7QqnW+xPEw==", + "integrity": "sha512-AB1Sp0ukD+DpjeYFeiPhRgZXou6tUrmNn85dFBI2wAcCj2mzlolsTWV1zBhL0jmPtMoX7xwwf4FhDefMtY+E7A==", "license": "MIT", "dependencies": { "reflect-metadata": "^0.1.13", @@ -6409,7 +6409,7 @@ }, "markov-strings-db": { "version": "file:../markov-strings/markov-strings-db-4.0.0.tgz", - "integrity": "sha512-CBYNkqUqj0XVohyBLz6kJL81VKzh+8xLcN6vp0ojps/AjqmycKHmj/xZWdCZjc72X7r85UaLnJ6L7QqnW+xPEw==", + "integrity": "sha512-AB1Sp0ukD+DpjeYFeiPhRgZXou6tUrmNn85dFBI2wAcCj2mzlolsTWV1zBhL0jmPtMoX7xwwf4FhDefMtY+E7A==", "requires": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" diff --git a/src/deploy-commands.ts b/src/deploy-commands.ts index 0449453..317d990 100644 --- a/src/deploy-commands.ts +++ b/src/deploy-commands.ts @@ -4,7 +4,7 @@ import { ChannelType, Routes } from 'discord-api-types/v9'; import { config } from './config'; import { packageJson } from './util'; -const CHANNEL_OPTIONS_MAX = 25; +export const CHANNEL_OPTIONS_MAX = 25; export const helpCommand = new SlashCommandBuilder() .setName('help') diff --git a/src/entity/Channel.ts b/src/entity/Channel.ts index 080469a..caa7fbf 100644 --- a/src/entity/Channel.ts +++ b/src/entity/Channel.ts @@ -4,8 +4,8 @@ import { Guild } from './Guild'; @Entity() export class Channel extends BaseEntity { - @PrimaryColumn() - id: number; + @PrimaryColumn({ type: 'text' }) + id: string; @Column({ default: false, diff --git a/src/entity/Guild.ts b/src/entity/Guild.ts index 1bd8f41..d6f34d1 100644 --- a/src/entity/Guild.ts +++ b/src/entity/Guild.ts @@ -4,8 +4,8 @@ import { Channel } from './Channel'; @Entity() export class Guild extends BaseEntity { - @PrimaryColumn() - id: number; + @PrimaryColumn({ type: 'text' }) + id: string; @OneToMany(() => Channel, (channel) => channel.guild, { onDelete: 'CASCADE', cascade: true }) channels: Channel[]; diff --git a/src/index.ts b/src/index.ts index 138986c..1aa5fe0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,6 +17,7 @@ import { Channel } from './entity/Channel'; import { Guild } from './entity/Guild'; import { config } from './config'; import { + CHANNEL_OPTIONS_MAX, deployCommands, helpCommand, inviteCommand, @@ -30,6 +31,9 @@ interface MarkovDataCustom { attachments: string[]; } +const INVALID_PERMISSIONS_MESSAGE = 'You do not have the permissions for this action.'; +const INVALID_GUILD_MESSAGE = 'This action must be performed within a server.'; + const client = new Discord.Client({ intents: [Discord.Intents.FLAGS.GUILD_MESSAGES, Discord.Intents.FLAGS.GUILDS], presence: { @@ -54,47 +58,46 @@ const markovGenerateOptions: MarkovGenerateOptions = { maxTries: config.maxTries, }; -/** - * #v3-complete - */ async function getMarkovByGuildId(guildId: string): Promise { - const id = parseInt(guildId, 10); - const markov = new Markov({ id, options: markovOpts }); + const markov = new Markov({ id: guildId, options: { ...markovOpts, id: guildId } }); await markov.setup(); // Connect the markov instance to the DB to assign it an ID return markov; } -/** - * #v3-complete - */ -async function isValidChannel(channelId: string): Promise { - const id = parseInt(channelId, 10); - const channel = await Channel.findOne(id); - if (!channel) { - L.warn({ channelId }, 'Channel does not exist, setting to valid'); - await Channel.create({ id }).save(); - return false; - } - return channel.listen; -} - -/** - * #v3-complete - */ -async function getValidChannels(guildId: string): Promise { - const id = parseInt(guildId, 10); - const dbChannels = await Channel.find({ guild: Guild.create({ id }), listen: true }); +async function getValidChannels(guild: Discord.Guild): Promise { + const dbChannels = await Channel.find({ guild: Guild.create({ id: guild.id }), listen: true }); const channels = ( - await Promise.all(dbChannels.map(async (dbc) => client.channels.fetch(dbc.id.toString()))) + await Promise.all( + dbChannels.map(async (dbc) => { + return guild.channels.fetch(dbc.id.toString()); + }) + ) ).filter((c): c is Discord.TextChannel => c !== null && c instanceof Discord.TextChannel); return channels; } +async function addValidChannels(channels: Discord.TextChannel[], guildId: string): Promise { + const dbChannels = channels.map((c) => { + return Channel.create({ id: c.id, guild: Guild.create({ id: guildId }), listen: true }); + }); + await Channel.save(dbChannels); +} + +async function removeValidChannels( + channels: Discord.TextChannel[], + guildId: string +): Promise { + const dbChannels = channels.map((c) => { + return Channel.create({ id: c.id, guild: Guild.create({ id: guildId }), listen: false }); + }); + await Channel.save(dbChannels); +} + /** * Checks if the author of a message as moderator-like permissions. * @param {GuildMember} member Sender of the message * @return {Boolean} True if the sender is a moderator. - * #v3-complete + * */ function isModerator(member: Discord.GuildMember | APIInteractionGuildMember | null): boolean { const MODERATOR_PERMISSIONS: Discord.PermissionResolvable[] = [ @@ -157,16 +160,14 @@ function messageToData(message: Discord.Message): AddDataProps { /** * Recursively gets all messages in a text channel's history. - * #v3-complete */ async function saveGuildMessageHistory( interaction: Discord.Message | Discord.CommandInteraction ): Promise { - if (!isModerator(interaction.member as any)) - return 'You do not have the permissions for this action.'; - if (!interaction.guildId) return 'This action must be performed within a server.'; + if (!isModerator(interaction.member as any)) return INVALID_PERMISSIONS_MESSAGE; + if (!interaction.guildId || !interaction.guild) return INVALID_GUILD_MESSAGE; const markov = await getMarkovByGuildId(interaction.guildId); - const channels = await getValidChannels(interaction.guildId); + const channels = await getValidChannels(interaction.guild); if (!channels.length) { L.warn({ guildId: interaction.guildId }, 'No channels to train from'); @@ -212,6 +213,7 @@ async function saveGuildMessageHistory( interface GenerateResponse { message?: Discord.MessageOptions; debug?: Discord.MessageOptions; + error?: Discord.MessageOptions; } /** @@ -220,7 +222,6 @@ interface GenerateResponse { * @param debug Sends debug info as a message if true. * @param tts If the message should be sent as TTS. Defaults to the TTS setting of the * invoking message. - * #v3-complete */ async function generateResponse( interaction: Discord.Message | Discord.CommandInteraction, @@ -230,7 +231,7 @@ async function generateResponse( L.debug('Responding...'); if (!interaction.guildId) { L.warn('Received an interaction without a guildId'); - return { message: { content: 'This action must be performed within a server.' } }; + return { message: { content: INVALID_GUILD_MESSAGE } }; } if (!interaction.channelId) { L.warn('Received an interaction without a channelId'); @@ -286,13 +287,31 @@ async function generateResponse( return responseMessages; } catch (err) { L.error(err); - if (debug) { - return { debug: { content: `\n\`\`\`\nERROR: ${err}\n\`\`\`` } }; - } - return {}; + return { error: { content: `\n\`\`\`\nERROR: ${err}\n\`\`\`` } }; } } +async function listValidChannels(interaction: Discord.CommandInteraction): Promise { + if (!interaction.guildId || !interaction.guild) return INVALID_GUILD_MESSAGE; + const channels = await getValidChannels(interaction.guild); + const channelText = channels.reduce((list, channel) => { + return `${list}\n • <#${channel.id}>`; + }, ''); + return `This bot is currently listening and learning from ${channels.length} channel(s).${channelText}`; +} + +function getChannelsFromInteraction( + interaction: Discord.CommandInteraction +): Discord.TextChannel[] { + const channels = Array.from(Array(CHANNEL_OPTIONS_MAX).keys()).map((index) => + interaction.options.getChannel(`channel-${index + 1}`, index === 0) + ); + const textChannels = channels.filter( + (c): c is Discord.TextChannel => c !== null && c instanceof Discord.TextChannel + ); + return textChannels; +} + function helpMessage(): Discord.MessageOptions { const avatarURL = client.user.avatarURL() || undefined; const embed = new Discord.MessageEmbed() @@ -345,12 +364,15 @@ client.on('ready', async (readyClient) => { await deployCommands(readyClient.user.id); - const guildsToSave = readyClient.guilds - .valueOf() - .map((guild) => Guild.create({ id: parseInt(guild.id, 10) })); + const guildsToSave = readyClient.guilds.valueOf().map((guild) => Guild.create({ id: guild.id })); await Guild.upsert(guildsToSave, ['id']); }); +client.on('guildCreate', async (guild) => { + L.info({ guildId: guild.id }, 'Adding new guild'); + await Guild.upsert(Guild.create({ id: guild.id }), ['id']); +}); + client.on('error', (err) => { L.error(err); }); @@ -372,6 +394,7 @@ client.on('messageCreate', async (message) => { const generatedResponse = await generateResponse(message); if (generatedResponse.message) await message.reply(generatedResponse.message); if (generatedResponse.debug) await message.reply(generatedResponse.debug); + if (generatedResponse.error) await message.reply(generatedResponse.error); } if (command === 'tts') { await generateResponse(message, false, true); @@ -380,8 +403,8 @@ client.on('messageCreate', async (message) => { await generateResponse(message, true); } if (command === null) { - L.debug('Listening...'); if (!message.author.bot) { + L.debug('Listening...'); const markov = await getMarkovByGuildId(message.channel.guildId); await markov.addData([messageToData(message)]); @@ -392,9 +415,6 @@ client.on('messageCreate', async (message) => { } }); -/** - * #v3-complete - */ client.on('messageDelete', async (message) => { if (message.author?.bot) return; L.info(`Deleting message ${message.id}`); @@ -405,9 +425,6 @@ client.on('messageDelete', async (message) => { await markov.removeData([message.content]); }); -/** - * #v3-complete - */ client.on('messageUpdate', async (oldMessage, newMessage) => { if (oldMessage.author?.bot) return; L.info(`Editing message ${oldMessage.id}`); @@ -422,7 +439,6 @@ client.on('messageUpdate', async (oldMessage, newMessage) => { client.on('interactionCreate', async (interaction) => { if (!interaction.isCommand()) return; - // Unprivileged commands if (interaction.commandName === helpCommand.name) { await interaction.reply(helpMessage()); } else if (interaction.commandName === inviteCommand.name) { @@ -433,12 +449,40 @@ client.on('interactionCreate', async (interaction) => { const debug = interaction.options.getBoolean('debug') || false; const generatedResponse = await generateResponse(interaction, debug, tts); if (generatedResponse.message) await interaction.editReply(generatedResponse.message); + else await interaction.deleteReply(); if (generatedResponse.debug) await interaction.followUp(generatedResponse.debug); - if (!Object.keys(generatedResponse).length) await interaction.deleteReply(); - } - // Privileged commands - if (interaction.commandName === listenChannelCommand.name) { - await interaction.reply('Pong!'); + if (generatedResponse.error) { + await interaction.followUp({ ...generatedResponse.error, ephemeral: true }); + } + } else if (interaction.commandName === listenChannelCommand.name) { + await interaction.deferReply(); + const subCommand = interaction.options.getSubcommand(true) as 'add' | 'remove' | 'list'; + if (subCommand === 'list') { + const reply = await listValidChannels(interaction); + await interaction.editReply(reply); + } else if (subCommand === 'add') { + if (!isModerator(interaction.member as any)) { + await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); + return; + } + const channels = getChannelsFromInteraction(interaction); + await addValidChannels(channels, interaction.guildId); + await interaction.editReply( + `Added ${channels.length} text channels to the list. Use \`/train\` to update the past known messages.` + ); + } else if (subCommand === 'remove') { + if (!isModerator(interaction.member as any)) { + await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); + return; + } + const channels = getChannelsFromInteraction(interaction); + await removeValidChannels(channels, interaction.guildId); + await interaction.editReply( + `Removed ${channels.length} text channels from the list. Use \`/train\` to remove these channels from the past known messages.` + ); + } } else if (interaction.commandName === trainCommand.name) { await interaction.deferReply(); const responseMessage = await saveGuildMessageHistory(interaction); From 6874b3e98b0c0e01a1a681e3d0fca9cf7b998501 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 23 Dec 2021 22:01:50 -0600 Subject: [PATCH 05/45] Some logging improvements --- src/index.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/index.ts b/src/index.ts index 1aa5fe0..2f893e9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -241,7 +241,8 @@ async function generateResponse( try { const response = await markov.generate(markovGenerateOptions); - L.info({ response }, 'Generated response'); + L.info({ string: response.string }, 'Generated response text'); + L.debug({ response }, 'Generated response object'); const messageOpts: Discord.MessageOptions = { tts }; const attachmentUrls = response.refs .filter((ref) => ref.custom && 'attachments' in ref.custom) @@ -373,13 +374,14 @@ client.on('guildCreate', async (guild) => { await Guild.upsert(Guild.create({ id: guild.id }), ['id']); }); -client.on('error', (err) => { - L.error(err); -}); +client.on('debug', (m) => L.trace(m)); +client.on('warn', (m) => L.warn(m)); +client.on('error', (m) => L.error(m)); client.on('messageCreate', async (message) => { if (!(message.guild && message.channel instanceof Discord.TextChannel)) return; const command = validateMessage(message); + if (command !== null) L.info({ command }, 'Recieved message command'); if (command === 'help') { await message.channel.send(helpMessage()); } @@ -417,7 +419,7 @@ client.on('messageCreate', async (message) => { client.on('messageDelete', async (message) => { if (message.author?.bot) return; - L.info(`Deleting message ${message.id}`); + L.debug(`Deleting message ${message.id}`); if (!(message.guildId && message.content)) { return; } @@ -427,7 +429,7 @@ client.on('messageDelete', async (message) => { client.on('messageUpdate', async (oldMessage, newMessage) => { if (oldMessage.author?.bot) return; - L.info(`Editing message ${oldMessage.id}`); + L.debug(`Editing message ${oldMessage.id}`); if (!(oldMessage.guildId && oldMessage.content && newMessage.content)) { return; } @@ -439,6 +441,8 @@ client.on('messageUpdate', async (oldMessage, newMessage) => { client.on('interactionCreate', async (interaction) => { if (!interaction.isCommand()) return; + L.info({ command: interaction.commandName }, 'Recieved slash command'); + if (interaction.commandName === helpCommand.name) { await interaction.reply(helpMessage()); } else if (interaction.commandName === inviteCommand.name) { From 290ebb03ec467b7b21f8f992eb189f8e4edb845e Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 23 Dec 2021 22:56:23 -0600 Subject: [PATCH 06/45] V2.0.0 makes more sense --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d13d22c..20d44e4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "markov-discord", - "version": "3.0.0", + "version": "2.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "markov-discord", - "version": "3.0.0", + "version": "2.0.0", "license": "MIT", "dependencies": { "@discordjs/builders": "^0.9.0", diff --git a/package.json b/package.json index c6f9c81..361d67f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "markov-discord", - "version": "3.0.0", + "version": "2.0.0", "description": "A conversational Markov chain bot for Discord", "main": "index.js", "scripts": { From 6f53ffb0afbf40bb23d341f571dd06fb9f7987b6 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 23 Dec 2021 23:01:10 -0600 Subject: [PATCH 07/45] Delete old data on train --- src/index.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index 2f893e9..a097807 100644 --- a/src/index.ts +++ b/src/index.ts @@ -174,6 +174,9 @@ async function saveGuildMessageHistory( return 'No channels configured to learn from. Set some with `/listen add`.'; } + L.debug('Deleting old data'); + await markov.delete(); + const channelIds = channels.map((c) => c.id); L.debug({ channelIds }, `Training from text channels`); @@ -501,9 +504,6 @@ async function main(): Promise { const connection = await Markov.extendConnectionOptions(); await createConnection(connection); await client.login(config.token); - - // Move config if in legacy location - // TODO: import legacy DB? } main(); From a96727fa060664520203e30fe2d00f2fd57f0345 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Fri, 24 Dec 2021 00:06:20 -0600 Subject: [PATCH 08/45] Install official markov-strings-db release --- ormconfig.js | 3 +-- package-lock.json | 12 ++++++------ package.json | 2 +- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/ormconfig.js b/ormconfig.js index e472ad5..d669dcb 100644 --- a/ormconfig.js +++ b/ormconfig.js @@ -5,8 +5,7 @@ const devConfig = { : 'config/db/db.sqlite3', synchronize: true, migrationsRun: false, - // logging: true, - // logging: "all", + // logging: 'all', enableWAL: true, entities: ['src/entity/**/*.ts'], migrations: ['src/migration/**/*.ts'], diff --git a/package-lock.json b/package-lock.json index 20d44e4..0a0436c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "file:../markov-strings/markov-strings-db-4.0.0.tgz", + "markov-strings-db": "^4.0.0", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", @@ -2668,9 +2668,8 @@ }, "node_modules/markov-strings-db": { "version": "4.0.0", - "resolved": "file:../markov-strings/markov-strings-db-4.0.0.tgz", - "integrity": "sha512-AB1Sp0ukD+DpjeYFeiPhRgZXou6tUrmNn85dFBI2wAcCj2mzlolsTWV1zBhL0jmPtMoX7xwwf4FhDefMtY+E7A==", - "license": "MIT", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.0.0.tgz", + "integrity": "sha512-6k4ftaBOBW+uw4XtzKSeulcwiMjj1JNcoAOvNZub4BEOiw6REOXoHYP48E0nZqFNUG6FsK41ZvLw0f1B8Bvl7g==", "dependencies": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" @@ -6408,8 +6407,9 @@ "dev": true }, "markov-strings-db": { - "version": "file:../markov-strings/markov-strings-db-4.0.0.tgz", - "integrity": "sha512-AB1Sp0ukD+DpjeYFeiPhRgZXou6tUrmNn85dFBI2wAcCj2mzlolsTWV1zBhL0jmPtMoX7xwwf4FhDefMtY+E7A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.0.0.tgz", + "integrity": "sha512-6k4ftaBOBW+uw4XtzKSeulcwiMjj1JNcoAOvNZub4BEOiw6REOXoHYP48E0nZqFNUG6FsK41ZvLw0f1B8Bvl7g==", "requires": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" diff --git a/package.json b/package.json index 361d67f..ce7e3d3 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "file:../markov-strings/markov-strings-db-4.0.0.tgz", + "markov-strings-db": "^4.0.0", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", From ade0b40abad7bd3183e55615ac8b895f367d1b3a Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Mon, 27 Dec 2021 11:29:30 -0600 Subject: [PATCH 09/45] Fix vesion name output --- src/index.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index a097807..e9170a5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,6 +12,7 @@ import Markov, { import { createConnection } from 'typeorm'; import { MarkovInputData } from 'markov-strings-db/dist/src/entity/MarkovInputData'; import { APIInteractionGuildMember } from 'discord-api-types'; +import type { PackageJsonPerson } from 'types-package-json'; import L from './logger'; import { Channel } from './entity/Channel'; import { Guild } from './entity/Guild'; @@ -345,7 +346,9 @@ function helpMessage(): Discord.MessageOptions { `${config.messageCommandPrefix} tts or /${messageCommand.name} tts: True`, `Runs the ${config.messageCommandPrefix} command and reads it with text-to-speech.` ) - .setFooter(`${packageJson().name} ${getVersion()} by ${packageJson().author}`); + .setFooter( + `${packageJson().name} ${getVersion()} by ${(packageJson().author as PackageJsonPerson).name}` + ); return { embeds: [embed], }; From 2840d2b2a3752a3195b4a6184f9a039caccdeabd Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Mon, 27 Dec 2021 11:44:44 -0600 Subject: [PATCH 10/45] Dynamically generate invite URL --- src/index.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/index.ts b/src/index.ts index e9170a5..95eaf0b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -354,20 +354,31 @@ function helpMessage(): Discord.MessageOptions { }; } +function generateInviteUrl(): string { + return client.generateInvite({ + scopes: ['bot', 'applications.commands'], + permissions: [ + 'VIEW_CHANNEL', + 'SEND_MESSAGES', + 'SEND_TTS_MESSAGES', + 'ATTACH_FILES', + 'READ_MESSAGE_HISTORY', + ], + }); +} + function inviteMessage(): Discord.MessageOptions { const avatarURL = client.user.avatarURL() || undefined; + const inviteUrl = generateInviteUrl(); const embed = new Discord.MessageEmbed() .setAuthor(`Invite ${client.user?.username}`, avatarURL) .setThumbnail(avatarURL as string) - .addField( - 'Invite', - `[Invite ${client.user.username} to your server](https://discord.com/api/oauth2/authorize?client_id=${client.user.id}&permissions=105472&scope=bot%20applications.commands)` - ); + .addField('Invite', `[Invite ${client.user.username} to your server](${inviteUrl})`); return { embeds: [embed] }; } client.on('ready', async (readyClient) => { - L.info('Bot logged in'); + L.info({ inviteUrl: generateInviteUrl() }, 'Bot logged in'); await deployCommands(readyClient.user.id); From 101f55c1b83954a6bb5e6060513ac66a916c224f Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Mon, 27 Dec 2021 11:46:10 -0600 Subject: [PATCH 11/45] Update Docker config build --- .dockerignore | 10 ++--- .github/workflows/build-and-push-image.yml | 41 +++++++++++++++----- Dockerfile | 44 ++++++++++++---------- package.json | 5 ++- 4 files changed, 62 insertions(+), 38 deletions(-) diff --git a/.dockerignore b/.dockerignore index 2259d76..b924a5a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,3 @@ -# Ignore everything -**/* - -# Allow files and directories -!*.js -!*.json -!*.ts \ No newline at end of file +config +dist +node_modules \ No newline at end of file diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index 7513261..bfd1dae 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -1,26 +1,32 @@ -name: Build and push image +name: MultiArchDockerBuild on: push: branches: - master + - develop jobs: - build_and_push_image: - name: Build Docker image and push to registries + build_multi_arch_image: + name: Build multi-arch Docker image. runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 + with: + install: true - name: Login to DockerHub uses: docker/login-action@v1 with: - username: charlocharlie + username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to GitHub Container Registry @@ -30,15 +36,32 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Build and push - id: docker_build_push + - name: Build and push master + if: ${{ github.ref == 'refs/heads/master' }} uses: docker/build-push-action@v2 with: + target: deploy push: true tags: | charlocharlie/markov-discord:latest ghcr.io/${{ github.repository }}:latest - ghcr.io/${{ github.repository }}:${{ github.sha }} + platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 + build-args: | + COMMIT_SHA=${{ github.sha }} + cache-from: type=gha,scope=${{ github.workflow }} + cache-to: type=gha,mode=max,scope=${{ github.workflow }} - - name: Image digest - run: echo ${{ steps.docker_build_push.outputs.digest }} \ No newline at end of file + - name: Build and push dev + if: ${{ github.ref == 'refs/heads/develop' }} + uses: docker/build-push-action@v2 + with: + target: deploy + push: true + tags: | + charlocharlie/epicgames-freegames:dev + ghcr.io/claabs/epicgames-freegames-node:dev + platforms: linux/amd64 + build-args: | + COMMIT_SHA=${{ github.sha }} + cache-from: type=gha,scope=${{ github.workflow }} + cache-to: type=gha,mode=max,scope=${{ github.workflow }} diff --git a/Dockerfile b/Dockerfile index f7dcf32..60a46c7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,45 +2,49 @@ # BASE ######## FROM node:16-alpine3.14 as base -WORKDIR /usr/src/app -COPY package*.json ./ -# Install build tools for erlpack, then install prod deps only, then remove build tools -RUN apk add --no-cache make gcc g++ python && \ - npm ci --only=production && \ - apk del make gcc g++ python +WORKDIR /usr/src/app ######## # BUILD ######## FROM base as build -# Copy all *.json, *.js, *.ts -COPY . . -# Prod deps already installed, add dev deps -RUN npm i +COPY package*.json ./ +# Install build tools for erlpack, then install prod deps only +RUN apk add --no-cache make gcc g++ python3 \ + && npm ci --only=production + +# Copy all jsons +COPY package*.json tsconfig.json ./ + +# Add dev deps +RUN npm ci + +# Copy source code +COPY src src RUN npm run build ######## # DEPLOY ######## -FROM node:16-alpine3.14 as deploy -WORKDIR /usr/src/app - -ENV NPM_CONFIG_LOGLEVEL warn +FROM base as deploy # Steal node_modules from base image -COPY --from=base /usr/src/app/node_modules ./node_modules/ +COPY --from=build /usr/src/app/node_modules node_modules # Steal compiled code from build image -COPY --from=build /usr/src/app/dist ./ +COPY --from=build /usr/src/app/dist dist # Copy package.json for version number -COPY package*.json ./ +COPY package*.json ormconfig.js ./ -RUN mkdir config +# RUN mkdir config -# RUN ls -al +ARG COMMIT_SHA="" -CMD [ "pm2-runtime", "start", "ecosystem.config.js" ] \ No newline at end of file +ENV NODE_ENV=production \ + COMMIT_SHA=${COMMIT_SHA} + +CMD [ "node", "/usr/src/app/dist/index.js" ] \ No newline at end of file diff --git a/package.json b/package.json index ce7e3d3..9a1c298 100644 --- a/package.json +++ b/package.json @@ -2,13 +2,14 @@ "name": "markov-discord", "version": "2.0.0", "description": "A conversational Markov chain bot for Discord", - "main": "index.js", + "main": "dist/index.js", "scripts": { "start": "node dist/index.js", "start:ts": "ts-node src/index.ts", "build": "rimraf dist && tsc", "lint": "tsc --noEmit && eslint **/*.ts *.js", - "docker-up": "docker run --rm -e TOKEN=abc123 -it $(docker build -q .)" + "docker:build": "docker build . -t charlocharlie/markov-discord:latest --target deploy", + "docker:run": "docker run --rm -ti -v $(pwd)/config:/usr/src/app/config charlocharlie/markov-discord:latest" }, "repository": "https://github.com/claabs/markov-discord.git", "keywords": [ From 8c9729d6d56e0603764a1c6ea02342055aae0020 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Mon, 27 Dec 2021 12:01:47 -0600 Subject: [PATCH 12/45] Dockerhub username can be plaintext --- .github/workflows/build-and-push-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index bfd1dae..8ef9f4a 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -26,7 +26,7 @@ jobs: - name: Login to DockerHub uses: docker/login-action@v1 with: - username: ${{ secrets.DOCKERHUB_USERNAME }} + username: charlocharlie password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to GitHub Container Registry From 2f719ba1eec1ca66197f44236137b9872bb62a00 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Mon, 27 Dec 2021 12:12:08 -0600 Subject: [PATCH 13/45] D'oh, fix copy paste --- .github/workflows/build-and-push-image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-push-image.yml b/.github/workflows/build-and-push-image.yml index 8ef9f4a..24d6147 100644 --- a/.github/workflows/build-and-push-image.yml +++ b/.github/workflows/build-and-push-image.yml @@ -58,8 +58,8 @@ jobs: target: deploy push: true tags: | - charlocharlie/epicgames-freegames:dev - ghcr.io/claabs/epicgames-freegames-node:dev + charlocharlie/markov-discord:dev + ghcr.io/claabs/markov-discord:dev platforms: linux/amd64 build-args: | COMMIT_SHA=${{ github.sha }} From fbee6ef249585084edb36d63cbc4e32e6b5926a6 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Tue, 28 Dec 2021 19:10:14 -0600 Subject: [PATCH 14/45] Add select menu interaction for editing list of channels --- src/deploy-commands.ts | 5 ++ src/index.ts | 192 ++++++++++++++++++++++++++++++----------- 2 files changed, 147 insertions(+), 50 deletions(-) diff --git a/src/deploy-commands.ts b/src/deploy-commands.ts index 317d990..ba4e119 100644 --- a/src/deploy-commands.ts +++ b/src/deploy-commands.ts @@ -66,6 +66,11 @@ export const listenChannelCommand = new SlashCommandBuilder() sub .setName('list') .setDescription(`List the channels the bot is currently actively listening to.`) + ) + .addSubcommand((sub) => + sub + .setName('modify') + .setDescription(`Add or remove channels via select menu UI (first 25 text channels only)`) ); export const trainCommand = new SlashCommandBuilder() diff --git a/src/index.ts b/src/index.ts index 95eaf0b..d50ae6c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,8 +11,11 @@ import Markov, { import { createConnection } from 'typeorm'; import { MarkovInputData } from 'markov-strings-db/dist/src/entity/MarkovInputData'; -import { APIInteractionGuildMember } from 'discord-api-types'; import type { PackageJsonPerson } from 'types-package-json'; +import { + APISelectMenuComponent, + APIInteractionGuildMember, +} from 'discord.js/node_modules/discord-api-types'; import L from './logger'; import { Channel } from './entity/Channel'; import { Guild } from './entity/Guild'; @@ -32,6 +35,12 @@ interface MarkovDataCustom { attachments: string[]; } +interface SelectMenuChannel { + id: string; + listen?: boolean; + name?: string; +} + const INVALID_PERMISSIONS_MESSAGE = 'You do not have the permissions for this action.'; const INVALID_GUILD_MESSAGE = 'This action must be performed within a server.'; @@ -77,6 +86,25 @@ async function getValidChannels(guild: Discord.Guild): Promise { + const MAX_SELECT_OPTIONS = 25; + const textChannels = guild.channels.cache.filter( + (c): c is Discord.TextChannel => c !== null && c instanceof Discord.TextChannel + ); + const foundDbChannels = await Channel.findByIds(Array.from(textChannels.keys())); + const foundDbChannelsWithName: SelectMenuChannel[] = foundDbChannels.map((c) => ({ + ...c, + name: textChannels.find((t) => t.id === c.id)?.name, + })); + const notFoundDbChannels: SelectMenuChannel[] = textChannels + .filter((c) => !foundDbChannels.find((d) => d.id === c.id)) + .map((c) => ({ id: c.id, listen: false, name: textChannels.find((t) => t.id === c.id)?.name })); + const limitedDbChannels = foundDbChannelsWithName + .concat(notFoundDbChannels) + .slice(0, MAX_SELECT_OPTIONS); + return limitedDbChannels; +} + async function addValidChannels(channels: Discord.TextChannel[], guildId: string): Promise { const dbChannels = channels.map((c) => { return Channel.create({ id: c.id, guild: Guild.create({ id: guildId }), listen: true }); @@ -165,7 +193,7 @@ function messageToData(message: Discord.Message): AddDataProps { async function saveGuildMessageHistory( interaction: Discord.Message | Discord.CommandInteraction ): Promise { - if (!isModerator(interaction.member as any)) return INVALID_PERMISSIONS_MESSAGE; + if (!isModerator(interaction.member)) return INVALID_PERMISSIONS_MESSAGE; if (!interaction.guildId || !interaction.guild) return INVALID_GUILD_MESSAGE; const markov = await getMarkovByGuildId(interaction.guildId); const channels = await getValidChannels(interaction.guild); @@ -456,58 +484,122 @@ client.on('messageUpdate', async (oldMessage, newMessage) => { }); client.on('interactionCreate', async (interaction) => { - if (!interaction.isCommand()) return; + if (interaction.isCommand()) { + L.info({ command: interaction.commandName }, 'Recieved slash command'); - L.info({ command: interaction.commandName }, 'Recieved slash command'); + if (interaction.commandName === helpCommand.name) { + await interaction.reply(helpMessage()); + } else if (interaction.commandName === inviteCommand.name) { + await interaction.reply(inviteMessage()); + } else if (interaction.commandName === messageCommand.name) { + await interaction.deferReply(); + const tts = interaction.options.getBoolean('tts') || false; + const debug = interaction.options.getBoolean('debug') || false; + const generatedResponse = await generateResponse(interaction, debug, tts); + if (generatedResponse.message) await interaction.editReply(generatedResponse.message); + else await interaction.deleteReply(); + if (generatedResponse.debug) await interaction.followUp(generatedResponse.debug); + if (generatedResponse.error) { + await interaction.followUp({ ...generatedResponse.error, ephemeral: true }); + } + } else if (interaction.commandName === listenChannelCommand.name) { + await interaction.deferReply(); + const subCommand = interaction.options.getSubcommand(true) as 'add' | 'remove' | 'list'; + if (subCommand === 'list') { + const reply = await listValidChannels(interaction); + await interaction.editReply(reply); + } else if (subCommand === 'add') { + if (!isModerator(interaction.member)) { + await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); + return; + } + const channels = getChannelsFromInteraction(interaction); + await addValidChannels(channels, interaction.guildId); + await interaction.editReply( + `Added ${channels.length} text channels to the list. Use \`/train\` to update the past known messages.` + ); + } else if (subCommand === 'remove') { + if (!isModerator(interaction.member)) { + await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); + return; + } + const channels = getChannelsFromInteraction(interaction); + await removeValidChannels(channels, interaction.guildId); + await interaction.editReply( + `Removed ${channels.length} text channels from the list. Use \`/train\` to remove these channels from the past known messages.` + ); + } else if (subCommand === 'modify') { + await interaction.deleteReply(); + if (!interaction.guild) { + await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); + return; + } + if (!isModerator(interaction.member)) { + await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); + return; + } + const dbTextChannels = await getTextChannels(interaction.guild); + const row = new Discord.MessageActionRow().addComponents( + new Discord.MessageSelectMenu() + .setCustomId('listen-modify-select') + .setPlaceholder('Nothing selected') + .setMinValues(0) + .setMaxValues(dbTextChannels.length) + .addOptions( + dbTextChannels.map((c) => ({ + label: `#${c.name}` || c.id, + value: c.id, + default: c.listen || false, + })) + ) + ); - if (interaction.commandName === helpCommand.name) { - await interaction.reply(helpMessage()); - } else if (interaction.commandName === inviteCommand.name) { - await interaction.reply(inviteMessage()); - } else if (interaction.commandName === messageCommand.name) { - await interaction.deferReply(); - const tts = interaction.options.getBoolean('tts') || false; - const debug = interaction.options.getBoolean('debug') || false; - const generatedResponse = await generateResponse(interaction, debug, tts); - if (generatedResponse.message) await interaction.editReply(generatedResponse.message); - else await interaction.deleteReply(); - if (generatedResponse.debug) await interaction.followUp(generatedResponse.debug); - if (generatedResponse.error) { - await interaction.followUp({ ...generatedResponse.error, ephemeral: true }); - } - } else if (interaction.commandName === listenChannelCommand.name) { - await interaction.deferReply(); - const subCommand = interaction.options.getSubcommand(true) as 'add' | 'remove' | 'list'; - if (subCommand === 'list') { - const reply = await listValidChannels(interaction); - await interaction.editReply(reply); - } else if (subCommand === 'add') { - if (!isModerator(interaction.member as any)) { - await interaction.deleteReply(); - await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); - return; + await interaction.followUp({ + content: 'Select which channels you would like to the bot to actively listen to', + components: [row], + ephemeral: true, + }); } - const channels = getChannelsFromInteraction(interaction); - await addValidChannels(channels, interaction.guildId); - await interaction.editReply( - `Added ${channels.length} text channels to the list. Use \`/train\` to update the past known messages.` - ); - } else if (subCommand === 'remove') { - if (!isModerator(interaction.member as any)) { - await interaction.deleteReply(); - await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); - return; - } - const channels = getChannelsFromInteraction(interaction); - await removeValidChannels(channels, interaction.guildId); - await interaction.editReply( - `Removed ${channels.length} text channels from the list. Use \`/train\` to remove these channels from the past known messages.` - ); + } else if (interaction.commandName === trainCommand.name) { + await interaction.deferReply(); + const responseMessage = await saveGuildMessageHistory(interaction); + await interaction.editReply(responseMessage); } - } else if (interaction.commandName === trainCommand.name) { - await interaction.deferReply(); - const responseMessage = await saveGuildMessageHistory(interaction); - await interaction.editReply(responseMessage); + } else if (interaction.isSelectMenu()) { + await interaction.deferUpdate(); + const { guild } = interaction; + if (!isModerator(interaction.member)) { + await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); + return; + } + if (!guild) { + await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); + return; + } + + const allChannels = + (interaction.component as APISelectMenuComponent).options?.map((o) => o.value) || []; + const selectedChannelIds = interaction.values; + + const textChannels = ( + await Promise.all( + allChannels.map(async (c) => { + return guild.channels.fetch(c); + }) + ) + ).filter((c): c is Discord.TextChannel => c !== null && c instanceof Discord.TextChannel); + const unselectedChannels = textChannels.filter((t) => !selectedChannelIds.includes(t.id)); + const selectedChannels = textChannels.filter((t) => selectedChannelIds.includes(t.id)); + await addValidChannels(selectedChannels, guild.id); + await removeValidChannels(unselectedChannels, guild.id); + + await interaction.followUp({ + content: 'Updated actively listened to channels list.', + ephemeral: true, + }); } }); From 93257e3acf53dac6899e60638247ef770d65dfc5 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Tue, 28 Dec 2021 20:30:27 -0600 Subject: [PATCH 15/45] Check the interaction customId --- src/index.ts | 64 +++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 31 deletions(-) diff --git a/src/index.ts b/src/index.ts index d50ae6c..1fc7df5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -568,38 +568,40 @@ client.on('interactionCreate', async (interaction) => { await interaction.editReply(responseMessage); } } else if (interaction.isSelectMenu()) { - await interaction.deferUpdate(); - const { guild } = interaction; - if (!isModerator(interaction.member)) { - await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); - return; + if (interaction.customId === 'listen-modify-select') { + await interaction.deferUpdate(); + const { guild } = interaction; + if (!isModerator(interaction.member)) { + await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); + return; + } + if (!guild) { + await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); + return; + } + + const allChannels = + (interaction.component as APISelectMenuComponent).options?.map((o) => o.value) || []; + const selectedChannelIds = interaction.values; + + const textChannels = ( + await Promise.all( + allChannels.map(async (c) => { + return guild.channels.fetch(c); + }) + ) + ).filter((c): c is Discord.TextChannel => c !== null && c instanceof Discord.TextChannel); + const unselectedChannels = textChannels.filter((t) => !selectedChannelIds.includes(t.id)); + const selectedChannels = textChannels.filter((t) => selectedChannelIds.includes(t.id)); + await addValidChannels(selectedChannels, guild.id); + await removeValidChannels(unselectedChannels, guild.id); + + await interaction.followUp({ + content: 'Updated actively listened to channels list.', + ephemeral: true, + }); } - if (!guild) { - await interaction.deleteReply(); - await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); - return; - } - - const allChannels = - (interaction.component as APISelectMenuComponent).options?.map((o) => o.value) || []; - const selectedChannelIds = interaction.values; - - const textChannels = ( - await Promise.all( - allChannels.map(async (c) => { - return guild.channels.fetch(c); - }) - ) - ).filter((c): c is Discord.TextChannel => c !== null && c instanceof Discord.TextChannel); - const unselectedChannels = textChannels.filter((t) => !selectedChannelIds.includes(t.id)); - const selectedChannels = textChannels.filter((t) => selectedChannelIds.includes(t.id)); - await addValidChannels(selectedChannels, guild.id); - await removeValidChannels(unselectedChannels, guild.id); - - await interaction.followUp({ - content: 'Updated actively listened to channels list.', - ephemeral: true, - }); } }); From 81d086c47d68977674b398f73807e3ded5653ce3 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Wed, 29 Dec 2021 21:50:04 -0600 Subject: [PATCH 16/45] Update mount path --- Dockerfile | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 60a46c7..656f74c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ ######## FROM node:16-alpine3.14 as base -WORKDIR /usr/src/app +WORKDIR /usr/app ######## # BUILD @@ -32,10 +32,10 @@ RUN npm run build FROM base as deploy # Steal node_modules from base image -COPY --from=build /usr/src/app/node_modules node_modules +COPY --from=build /usr/app/node_modules node_modules # Steal compiled code from build image -COPY --from=build /usr/src/app/dist dist +COPY --from=build /usr/app/dist dist # Copy package.json for version number COPY package*.json ormconfig.js ./ @@ -47,4 +47,4 @@ ARG COMMIT_SHA="" ENV NODE_ENV=production \ COMMIT_SHA=${COMMIT_SHA} -CMD [ "node", "/usr/src/app/dist/index.js" ] \ No newline at end of file +CMD [ "node", "/usr/app/dist/index.js" ] \ No newline at end of file diff --git a/package.json b/package.json index 9a1c298..0e222c5 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "build": "rimraf dist && tsc", "lint": "tsc --noEmit && eslint **/*.ts *.js", "docker:build": "docker build . -t charlocharlie/markov-discord:latest --target deploy", - "docker:run": "docker run --rm -ti -v $(pwd)/config:/usr/src/app/config charlocharlie/markov-discord:latest" + "docker:run": "docker run --rm -ti -v $(pwd)/config:/usr/app/config charlocharlie/markov-discord:latest" }, "repository": "https://github.com/claabs/markov-discord.git", "keywords": [ From c6375204ce650f8d9e4f0b7f496ab6add1d91b35 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Wed, 29 Dec 2021 23:27:54 -0600 Subject: [PATCH 17/45] Add migration for first run --- .eslintrc.js | 2 +- ormconfig.js | 2 +- package-lock.json | 14 ++++++------ package.json | 5 +++-- src/migration/.gitkeep | 0 src/migration/1640838214672-CreateTables.ts | 24 +++++++++++++++++++++ 6 files changed, 36 insertions(+), 11 deletions(-) delete mode 100644 src/migration/.gitkeep create mode 100644 src/migration/1640838214672-CreateTables.ts diff --git a/.eslintrc.js b/.eslintrc.js index 7e3ce0e..a0c5480 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -31,5 +31,5 @@ module.exports = { } } }, - ignorePatterns: ['dist/**', 'node_modules/**', '.eslintrc.js'] + ignorePatterns: ['dist/**', 'node_modules/**', '.eslintrc.js', 'src/migration/**'] } \ No newline at end of file diff --git a/ormconfig.js b/ormconfig.js index d669dcb..bda7248 100644 --- a/ormconfig.js +++ b/ormconfig.js @@ -26,7 +26,7 @@ const prodConfig = { enableWAL: true, entities: ['dist/entity/**/*.js'], migrations: ['dist/migration/**/*.js'], - migrationsRun: false, + migrationsRun: true, subscribers: ['dist/subscriber/**/*.js'], cli: { entitiesDir: 'dist/entity', diff --git a/package-lock.json b/package-lock.json index 0a0436c..370665a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.0.0", + "markov-strings-db": "^4.0.1", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", @@ -2667,9 +2667,9 @@ "dev": true }, "node_modules/markov-strings-db": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.0.0.tgz", - "integrity": "sha512-6k4ftaBOBW+uw4XtzKSeulcwiMjj1JNcoAOvNZub4BEOiw6REOXoHYP48E0nZqFNUG6FsK41ZvLw0f1B8Bvl7g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.0.1.tgz", + "integrity": "sha512-i7GANb+/6Ppm8DAEO6jp3dxso28Z1LQRW2B+KgJFgvN0dRS9L9r5Dh5zNwW3txye8AYIFhPbXo5zdmP1UknXMQ==", "dependencies": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" @@ -6407,9 +6407,9 @@ "dev": true }, "markov-strings-db": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.0.0.tgz", - "integrity": "sha512-6k4ftaBOBW+uw4XtzKSeulcwiMjj1JNcoAOvNZub4BEOiw6REOXoHYP48E0nZqFNUG6FsK41ZvLw0f1B8Bvl7g==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.0.1.tgz", + "integrity": "sha512-i7GANb+/6Ppm8DAEO6jp3dxso28Z1LQRW2B+KgJFgvN0dRS9L9r5Dh5zNwW3txye8AYIFhPbXo5zdmP1UknXMQ==", "requires": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" diff --git a/package.json b/package.json index 0e222c5..f95a710 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "build": "rimraf dist && tsc", "lint": "tsc --noEmit && eslint **/*.ts *.js", "docker:build": "docker build . -t charlocharlie/markov-discord:latest --target deploy", - "docker:run": "docker run --rm -ti -v $(pwd)/config:/usr/app/config charlocharlie/markov-discord:latest" + "docker:run": "docker run --rm -ti -v $(pwd)/config:/usr/app/config charlocharlie/markov-discord:latest", + "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js" }, "repository": "https://github.com/claabs/markov-discord.git", "keywords": [ @@ -42,7 +43,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.0.0", + "markov-strings-db": "^4.0.1", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", diff --git a/src/migration/.gitkeep b/src/migration/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/src/migration/1640838214672-CreateTables.ts b/src/migration/1640838214672-CreateTables.ts new file mode 100644 index 0000000..99260d7 --- /dev/null +++ b/src/migration/1640838214672-CreateTables.ts @@ -0,0 +1,24 @@ +import {MigrationInterface, QueryRunner} from "typeorm"; + +export class CreateTables1640838214672 implements MigrationInterface { + name = 'CreateTables1640838214672' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`CREATE TABLE "guild" ("id" text PRIMARY KEY NOT NULL)`); + await queryRunner.query(`CREATE TABLE "channel" ("id" text PRIMARY KEY NOT NULL, "listen" boolean NOT NULL DEFAULT (0), "guildId" text)`); + await queryRunner.query(`CREATE TABLE "temporary_channel" ("id" text PRIMARY KEY NOT NULL, "listen" boolean NOT NULL DEFAULT (0), "guildId" text, CONSTRAINT "FK_58d968d578e6279e2cc884db403" FOREIGN KEY ("guildId") REFERENCES "guild" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION)`); + await queryRunner.query(`INSERT INTO "temporary_channel"("id", "listen", "guildId") SELECT "id", "listen", "guildId" FROM "channel"`); + await queryRunner.query(`DROP TABLE "channel"`); + await queryRunner.query(`ALTER TABLE "temporary_channel" RENAME TO "channel"`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "channel" RENAME TO "temporary_channel"`); + await queryRunner.query(`CREATE TABLE "channel" ("id" text PRIMARY KEY NOT NULL, "listen" boolean NOT NULL DEFAULT (0), "guildId" text)`); + await queryRunner.query(`INSERT INTO "channel"("id", "listen", "guildId") SELECT "id", "listen", "guildId" FROM "temporary_channel"`); + await queryRunner.query(`DROP TABLE "temporary_channel"`); + await queryRunner.query(`DROP TABLE "channel"`); + await queryRunner.query(`DROP TABLE "guild"`); + } + +} From a714305b5695418a3e3682adc6b5eb6ce29b8a03 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 30 Dec 2021 17:19:46 -0600 Subject: [PATCH 18/45] Fix loglevel --- src/logger.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/logger.ts b/src/logger.ts index aec3e7d..12a35c8 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -1,5 +1,6 @@ import pino from 'pino'; import dotenv from 'dotenv'; +import { config } from './config'; dotenv.config(); @@ -15,7 +16,7 @@ const logger = pino({ return { level: label }; }, }, - level: process.env.LOG_LEVEL || 'info', + level: config.logLevel, base: undefined, }); From 705cea80e7718c9acdcbf95b171dd6b69c0d8d27 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 30 Dec 2021 17:19:57 -0600 Subject: [PATCH 19/45] Track progress of training --- package-lock.json | 29 ++++++++++++++++++ package.json | 2 ++ src/index.ts | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+) diff --git a/package-lock.json b/package-lock.json index 370665a..098a028 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "bufferutil": "^4.0.5", "class-transformer": "^0.5.1", "class-validator": "^0.13.2", + "date-fns": "^2.28.0", "discord-api-types": "^0.25.2", "discord.js": "^13.3.1", "dotenv": "^10.0.0", @@ -26,6 +27,7 @@ "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", + "simple-eta": "^3.0.2", "source-map-support": "^0.5.21", "typeorm": "^0.2.38", "utf-8-validate": "^5.0.7", @@ -1122,6 +1124,18 @@ "node": ">= 8" } }, + "node_modules/date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", @@ -3581,6 +3595,11 @@ } ] }, + "node_modules/simple-eta": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/simple-eta/-/simple-eta-3.0.2.tgz", + "integrity": "sha512-+OmPgi01yHK/bRNQDoehUcV8fqs9nNJkG2DoWCnnLvj0lmowab7BH3v9776BG0y7dGEOLh0F7mfd37k+ht26Yw==" + }, "node_modules/simple-get": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz", @@ -5253,6 +5272,11 @@ "which": "^2.0.1" } }, + "date-fns": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", + "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" + }, "dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", @@ -7074,6 +7098,11 @@ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" }, + "simple-eta": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/simple-eta/-/simple-eta-3.0.2.tgz", + "integrity": "sha512-+OmPgi01yHK/bRNQDoehUcV8fqs9nNJkG2DoWCnnLvj0lmowab7BH3v9776BG0y7dGEOLh0F7mfd37k+ht26Yw==" + }, "simple-get": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz", diff --git a/package.json b/package.json index f95a710..3f22152 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "bufferutil": "^4.0.5", "class-transformer": "^0.5.1", "class-validator": "^0.13.2", + "date-fns": "^2.28.0", "discord-api-types": "^0.25.2", "discord.js": "^13.3.1", "dotenv": "^10.0.0", @@ -47,6 +48,7 @@ "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", + "simple-eta": "^3.0.2", "source-map-support": "^0.5.21", "typeorm": "^0.2.38", "utf-8-validate": "^5.0.7", diff --git a/src/index.ts b/src/index.ts index 1fc7df5..ded0ebb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -16,6 +16,9 @@ import { APISelectMenuComponent, APIInteractionGuildMember, } from 'discord.js/node_modules/discord-api-types'; +import makeEta from 'simple-eta'; +import formatDistanceToNow from 'date-fns/formatDistanceToNow'; +import addSeconds from 'date-fns/addSeconds'; import L from './logger'; import { Channel } from './entity/Channel'; import { Guild } from './entity/Guild'; @@ -209,13 +212,53 @@ async function saveGuildMessageHistory( const channelIds = channels.map((c) => c.id); L.debug({ channelIds }, `Training from text channels`); + const messageContent = `Parsing past messages from ${channels.length} channel(s).`; + + const completedChannelsField: Discord.EmbedFieldData = { + name: 'Completed Channels', + value: 'None', + inline: true, + }; + const currentChannelField: Discord.EmbedFieldData = { + name: 'Current Channel', + value: `<#${channels[0].id}>`, + inline: true, + }; + const currentChannelPercent: Discord.EmbedFieldData = { + name: 'Channel Progress', + value: '0%', + inline: true, + }; + const currentChannelEta: Discord.EmbedFieldData = { + name: 'Channel Time Remaining', + value: 'Pending...', + inline: true, + }; + const embedOptions: Discord.MessageEmbedOptions = { + title: 'Training Progress', + fields: [completedChannelsField, currentChannelField, currentChannelPercent, currentChannelEta], + }; + const embed = new Discord.MessageEmbed(embedOptions); + let progressMessage: Discord.Message; + const updateMessageData = { content: messageContent, embeds: [embed] }; + if (interaction instanceof Discord.Message) { + progressMessage = await interaction.reply(updateMessageData); + } else { + progressMessage = (await interaction.followUp(updateMessageData)) as Discord.Message; + } + const PAGE_SIZE = 100; + const UPDATE_RATE = 1000; // In number of messages processed + let lastUpdate = 0; let messagesCount = 0; + let firstMessageDate: number | undefined; // eslint-disable-next-line no-restricted-syntax for (const channel of channels) { let oldestMessageID: string | undefined; let keepGoing = true; L.debug({ channelId: channel.id, messagesCount }, `Training from channel`); + const channelCreateDate = channel.createdTimestamp; + const channelEta = makeEta({ autostart: true, min: 0, max: 1, historyTimeConstant: 10 }); while (keepGoing) { // eslint-disable-next-line no-await-in-loop @@ -230,11 +273,43 @@ async function saveGuildMessageHistory( L.trace('Finished saving messages'); messagesCount += nonBotMessageFormatted.length; const lastMessage = messages.last(); + + // Update tracking metrics if (!lastMessage || messages.size < PAGE_SIZE) { keepGoing = false; + if (completedChannelsField.value === 'None') completedChannelsField.value = ''; + completedChannelsField.value += `\n • <#${channel.id}>`; } else { oldestMessageID = lastMessage.id; } + currentChannelField.value = `<#${channel.id}>`; + if (!firstMessageDate) firstMessageDate = messages.first()?.createdTimestamp; + const oldestMessageDate = lastMessage?.createdTimestamp; + if (firstMessageDate && oldestMessageDate) { + const channelAge = firstMessageDate - channelCreateDate; + const lastMessageAge = firstMessageDate - oldestMessageDate; + const pctComplete = lastMessageAge / channelAge; + currentChannelPercent.value = `${pctComplete.toFixed(2)}%`; + channelEta.report(pctComplete); + const estimateSeconds = channelEta.estimate(); + if (Number.isFinite(estimateSeconds)) + currentChannelEta.value = formatDistanceToNow(addSeconds(new Date(), estimateSeconds), { + includeSeconds: true, + }); + } + + if (messagesCount > lastUpdate + UPDATE_RATE) { + lastUpdate = messagesCount; + L.debug( + { messagesCount, pctComplete: currentChannelPercent.value }, + 'Sending metrics update' + ); + // eslint-disable-next-line no-await-in-loop + await progressMessage.edit({ + ...updateMessageData, + embeds: [new Discord.MessageEmbed(embedOptions)], + }); + } } } From d01b223f5870a93d60121f111b6614bb103467c1 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 30 Dec 2021 18:45:24 -0600 Subject: [PATCH 20/45] Fix percentage display --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index ded0ebb..7317609 100644 --- a/src/index.ts +++ b/src/index.ts @@ -289,7 +289,7 @@ async function saveGuildMessageHistory( const channelAge = firstMessageDate - channelCreateDate; const lastMessageAge = firstMessageDate - oldestMessageDate; const pctComplete = lastMessageAge / channelAge; - currentChannelPercent.value = `${pctComplete.toFixed(2)}%`; + currentChannelPercent.value = `${(pctComplete * 100).toFixed(2)}%`; channelEta.report(pctComplete); const estimateSeconds = channelEta.estimate(); if (Number.isFinite(estimateSeconds)) From e9f5397045b4391c11e4b54a39a8029a66661121 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 30 Dec 2021 18:48:05 -0600 Subject: [PATCH 21/45] Increase historyTimeConstant --- src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ts b/src/index.ts index 7317609..36f8a07 100644 --- a/src/index.ts +++ b/src/index.ts @@ -258,7 +258,7 @@ async function saveGuildMessageHistory( let keepGoing = true; L.debug({ channelId: channel.id, messagesCount }, `Training from channel`); const channelCreateDate = channel.createdTimestamp; - const channelEta = makeEta({ autostart: true, min: 0, max: 1, historyTimeConstant: 10 }); + const channelEta = makeEta({ autostart: true, min: 0, max: 1, historyTimeConstant: 30 }); while (keepGoing) { // eslint-disable-next-line no-await-in-loop From 01cca367d09b39ff166ec811f4d910f91feda5c0 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 30 Dec 2021 18:56:35 -0600 Subject: [PATCH 22/45] Some extra trace logging --- src/index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/index.ts b/src/index.ts index 36f8a07..e56e179 100644 --- a/src/index.ts +++ b/src/index.ts @@ -73,11 +73,13 @@ const markovGenerateOptions: MarkovGenerateOptions = { async function getMarkovByGuildId(guildId: string): Promise { const markov = new Markov({ id: guildId, options: { ...markovOpts, id: guildId } }); + L.trace({ guildId }, 'Setting up markov instance'); await markov.setup(); // Connect the markov instance to the DB to assign it an ID return markov; } async function getValidChannels(guild: Discord.Guild): Promise { + L.trace('Getting valid channels from database'); const dbChannels = await Channel.find({ guild: Guild.create({ id: guild.id }), listen: true }); const channels = ( await Promise.all( @@ -90,6 +92,7 @@ async function getValidChannels(guild: Discord.Guild): Promise { + L.trace('Getting text channels for select menu'); const MAX_SELECT_OPTIONS = 25; const textChannels = guild.channels.cache.filter( (c): c is Discord.TextChannel => c !== null && c instanceof Discord.TextChannel @@ -109,6 +112,7 @@ async function getTextChannels(guild: Discord.Guild): Promise { + L.trace(`Adding ${channels.length} channels to valid list`); const dbChannels = channels.map((c) => { return Channel.create({ id: c.id, guild: Guild.create({ id: guildId }), listen: true }); }); @@ -119,6 +123,7 @@ async function removeValidChannels( channels: Discord.TextChannel[], guildId: string ): Promise { + L.trace(`Removing ${channels.length} channels from valid list`); const dbChannels = channels.map((c) => { return Channel.create({ id: c.id, guild: Guild.create({ id: guildId }), listen: false }); }); From bccb7e7cdf6b709e4f660388d0e19cc218c039dc Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Thu, 30 Dec 2021 21:47:49 -0600 Subject: [PATCH 23/45] Add responses to legacy commands --- src/index.ts | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/index.ts b/src/index.ts index e56e179..989410b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -266,11 +266,18 @@ async function saveGuildMessageHistory( const channelEta = makeEta({ autostart: true, min: 0, max: 1, historyTimeConstant: 30 }); while (keepGoing) { - // eslint-disable-next-line no-await-in-loop - const messages = await channel.messages.fetch({ - before: oldestMessageID, - limit: PAGE_SIZE, - }); + let messages; + try { + // eslint-disable-next-line no-await-in-loop + messages = await channel.messages.fetch({ + before: oldestMessageID, + limit: PAGE_SIZE, + }); + } catch (err) { + L.error({ before: oldestMessageID, limit: PAGE_SIZE }, 'Error retreiving messages'); + L.error(err); + break; + } const nonBotMessageFormatted = messages.filter((elem) => !elem.author.bot).map(messageToData); L.trace({ oldestMessageID }, `Saving ${nonBotMessageFormatted.length} messages`); // eslint-disable-next-line no-await-in-loop @@ -524,10 +531,16 @@ client.on('messageCreate', async (message) => { if (generatedResponse.error) await message.reply(generatedResponse.error); } if (command === 'tts') { - await generateResponse(message, false, true); + const generatedResponse = await generateResponse(message, false, true); + if (generatedResponse.message) await message.reply(generatedResponse.message); + if (generatedResponse.debug) await message.reply(generatedResponse.debug); + if (generatedResponse.error) await message.reply(generatedResponse.error); } if (command === 'debug') { - await generateResponse(message, true); + const generatedResponse = await generateResponse(message, true); + if (generatedResponse.message) await message.reply(generatedResponse.message); + if (generatedResponse.debug) await message.reply(generatedResponse.debug); + if (generatedResponse.error) await message.reply(generatedResponse.error); } if (command === null) { if (!message.author.bot) { @@ -536,7 +549,10 @@ client.on('messageCreate', async (message) => { await markov.addData([messageToData(message)]); if (client.user && message.mentions.has(client.user)) { - await generateResponse(message); + const generatedResponse = await generateResponse(message); + if (generatedResponse.message) await message.reply(generatedResponse.message); + if (generatedResponse.debug) await message.reply(generatedResponse.debug); + if (generatedResponse.error) await message.reply(generatedResponse.error); } } } From b41d576e74de7226cc16cdcf554d65c6d1f8d0c1 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sat, 1 Jan 2022 23:10:02 -0600 Subject: [PATCH 24/45] Update to markov-strings-db 4.1 --- .vscode/launch.json | 3 ++- Dockerfile | 2 ++ package-lock.json | 14 +++++++------- package.json | 2 +- src/index.ts | 26 ++++++++++---------------- 5 files changed, 22 insertions(+), 25 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 3df7e96..f545be4 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -14,7 +14,8 @@ ], "args": [ "${workspaceFolder}/src/index.ts" - ] + ], + "outputCapture": "std", } ] } \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 656f74c..0ce5f36 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,6 +31,8 @@ RUN npm run build ######## FROM base as deploy +USER node + # Steal node_modules from base image COPY --from=build /usr/app/node_modules node_modules diff --git a/package-lock.json b/package-lock.json index 098a028..8595bd5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.0.1", + "markov-strings-db": "^4.1.1", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", @@ -2681,9 +2681,9 @@ "dev": true }, "node_modules/markov-strings-db": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.0.1.tgz", - "integrity": "sha512-i7GANb+/6Ppm8DAEO6jp3dxso28Z1LQRW2B+KgJFgvN0dRS9L9r5Dh5zNwW3txye8AYIFhPbXo5zdmP1UknXMQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.1.tgz", + "integrity": "sha512-IRfqGlq8VajKXY2+CYvuLIOwHWSLoIWfruyYK8WP96fJ17UqqXLRO959jJLp5Yy+9JJuwGHfbvVt7fBd1xHxjw==", "dependencies": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" @@ -6431,9 +6431,9 @@ "dev": true }, "markov-strings-db": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.0.1.tgz", - "integrity": "sha512-i7GANb+/6Ppm8DAEO6jp3dxso28Z1LQRW2B+KgJFgvN0dRS9L9r5Dh5zNwW3txye8AYIFhPbXo5zdmP1UknXMQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.1.tgz", + "integrity": "sha512-IRfqGlq8VajKXY2+CYvuLIOwHWSLoIWfruyYK8WP96fJ17UqqXLRO959jJLp5Yy+9JJuwGHfbvVt7fBd1xHxjw==", "requires": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" diff --git a/package.json b/package.json index 3f22152..ca6bcf5 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.0.1", + "markov-strings-db": "^4.1.1", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", diff --git a/src/index.ts b/src/index.ts index 989410b..4682da0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -189,9 +189,13 @@ function messageToData(message: Discord.Message): AddDataProps { const attachmentUrls = message.attachments.map((a) => a.url); let custom: MarkovDataCustom | undefined; if (attachmentUrls.length) custom = { attachments: attachmentUrls }; + const tags: string[] = [message.id]; + if (message.channelId) tags.push(message.channelId); + if (message.guildId) tags.push(message.guildId); return { string: message.content, custom, + tags, }; } @@ -213,6 +217,7 @@ async function saveGuildMessageHistory( L.debug('Deleting old data'); await markov.delete(); + await markov.setup(); // TODO: temp fix until new markov-strings-db version const channelIds = channels.map((c) => c.id); L.debug({ channelIds }, `Training from text channels`); @@ -365,7 +370,7 @@ async function generateResponse( const messageOpts: Discord.MessageOptions = { tts }; const attachmentUrls = response.refs .filter((ref) => ref.custom && 'attachments' in ref.custom) - .flatMap((ref) => ref.custom.attachments); + .flatMap((ref) => (ref.custom as MarkovDataCustom).attachments); if (attachmentUrls.length > 0) { const randomRefAttachment = getRandomElement(attachmentUrls); messageOpts.files = [randomRefAttachment]; @@ -373,19 +378,8 @@ async function generateResponse( const randomMessage = await MarkovInputData.createQueryBuilder< MarkovInputData >('input') - .leftJoinAndSelect('input.fragment', 'fragment') - .leftJoinAndSelect('fragment.corpusEntry', 'corpusEntry') - .where([ - { - fragment: { startWordMarkov: markov.db }, - }, - { - fragment: { endWordMarkov: markov.db }, - }, - { - fragment: { corpusEntry: { markov: markov.db } }, - }, - ]) + .leftJoinAndSelect('input.markov', 'markov') + .where({ markov: markov.db }) .orderBy('RANDOM()') .limit(1) .getOne(); @@ -565,7 +559,7 @@ client.on('messageDelete', async (message) => { return; } const markov = await getMarkovByGuildId(message.guildId); - await markov.removeData([message.content]); + await markov.removeStrings([message.content]); }); client.on('messageUpdate', async (oldMessage, newMessage) => { @@ -575,7 +569,7 @@ client.on('messageUpdate', async (oldMessage, newMessage) => { return; } const markov = await getMarkovByGuildId(oldMessage.guildId); - await markov.removeData([oldMessage.content]); + await markov.removeStrings([oldMessage.content]); await markov.addData([newMessage.content]); }); From 87009bb930c6902a7f223eaef7c11659b9cfb481 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sat, 1 Jan 2022 23:14:48 -0600 Subject: [PATCH 25/45] Add tini --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index 0ce5f36..8ad2250 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,8 @@ FROM node:16-alpine3.14 as base WORKDIR /usr/app +RUN apk add --no-cache tini + ######## # BUILD ######## @@ -49,4 +51,5 @@ ARG COMMIT_SHA="" ENV NODE_ENV=production \ COMMIT_SHA=${COMMIT_SHA} +ENTRYPOINT ["/sbin/tini", "--"] CMD [ "node", "/usr/app/dist/index.js" ] \ No newline at end of file From 1b8e8fd8fbec0fb97b1d46bc4a25a226064cf69f Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sat, 1 Jan 2022 23:20:22 -0600 Subject: [PATCH 26/45] A fix to remove the duplicate commands --- src/index.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/index.ts b/src/index.ts index 4682da0..256cd8c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -492,6 +492,11 @@ client.on('ready', async (readyClient) => { await deployCommands(readyClient.user.id); const guildsToSave = readyClient.guilds.valueOf().map((guild) => Guild.create({ id: guild.id })); + + // Remove the duplicate commands + if (!config.devGuildId) { + await Promise.all(readyClient.guilds.valueOf().map(async (guild) => guild.commands.set([]))); + } await Guild.upsert(guildsToSave, ['id']); }); From 87d5e95452495eb3d305616a2a482e5ee3aebd8b Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 2 Jan 2022 01:24:01 -0600 Subject: [PATCH 27/45] Fix hangs on message edit/delete --- package-lock.json | 14 +++++++------- package.json | 2 +- src/index.ts | 30 ++++++++++++++++++++---------- 3 files changed, 28 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8595bd5..bcb8bb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.1.1", + "markov-strings-db": "^4.1.2", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", @@ -2681,9 +2681,9 @@ "dev": true }, "node_modules/markov-strings-db": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.1.tgz", - "integrity": "sha512-IRfqGlq8VajKXY2+CYvuLIOwHWSLoIWfruyYK8WP96fJ17UqqXLRO959jJLp5Yy+9JJuwGHfbvVt7fBd1xHxjw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.2.tgz", + "integrity": "sha512-OYdXe+0R4u38SOnqHku9EbvT4d6WpiMtdMjbljcphsov/sdul9JHy7yuiM3ha+NMxsaq81ZGHK7+IT8BNXvzjg==", "dependencies": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" @@ -6431,9 +6431,9 @@ "dev": true }, "markov-strings-db": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.1.tgz", - "integrity": "sha512-IRfqGlq8VajKXY2+CYvuLIOwHWSLoIWfruyYK8WP96fJ17UqqXLRO959jJLp5Yy+9JJuwGHfbvVt7fBd1xHxjw==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.2.tgz", + "integrity": "sha512-OYdXe+0R4u38SOnqHku9EbvT4d6WpiMtdMjbljcphsov/sdul9JHy7yuiM3ha+NMxsaq81ZGHK7+IT8BNXvzjg==", "requires": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" diff --git a/package.json b/package.json index ca6bcf5..3c35197 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.1.1", + "markov-strings-db": "^4.1.2", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", diff --git a/src/index.ts b/src/index.ts index 256cd8c..f099edc 100644 --- a/src/index.ts +++ b/src/index.ts @@ -78,6 +78,11 @@ async function getMarkovByGuildId(guildId: string): Promise { return markov; } +async function isValidChannel(channelId: string): Promise { + const channel = await Channel.findOne(channelId); + return channel?.listen || false; +} + async function getValidChannels(guild: Discord.Guild): Promise { L.trace('Getting valid channels from database'); const dbChannels = await Channel.find({ guild: Guild.create({ id: guild.id }), listen: true }); @@ -217,7 +222,6 @@ async function saveGuildMessageHistory( L.debug('Deleting old data'); await markov.delete(); - await markov.setup(); // TODO: temp fix until new markov-strings-db version const channelIds = channels.map((c) => c.id); L.debug({ channelIds }, `Training from text channels`); @@ -524,18 +528,21 @@ client.on('messageCreate', async (message) => { await message.reply(response); } if (command === 'respond') { + L.debug('Responding to legacy command'); const generatedResponse = await generateResponse(message); if (generatedResponse.message) await message.reply(generatedResponse.message); if (generatedResponse.debug) await message.reply(generatedResponse.debug); if (generatedResponse.error) await message.reply(generatedResponse.error); } if (command === 'tts') { + L.debug('Responding to legacy command tts'); const generatedResponse = await generateResponse(message, false, true); if (generatedResponse.message) await message.reply(generatedResponse.message); if (generatedResponse.debug) await message.reply(generatedResponse.debug); if (generatedResponse.error) await message.reply(generatedResponse.error); } if (command === 'debug') { + L.debug('Responding to legacy command debug'); const generatedResponse = await generateResponse(message, true); if (generatedResponse.message) await message.reply(generatedResponse.message); if (generatedResponse.debug) await message.reply(generatedResponse.debug); @@ -543,11 +550,14 @@ client.on('messageCreate', async (message) => { } if (command === null) { if (!message.author.bot) { - L.debug('Listening...'); - const markov = await getMarkovByGuildId(message.channel.guildId); - await markov.addData([messageToData(message)]); + if (await isValidChannel(message.channelId)) { + L.debug('Listening'); + const markov = await getMarkovByGuildId(message.channel.guildId); + await markov.addData([messageToData(message)]); + } if (client.user && message.mentions.has(client.user)) { + L.debug('Responding to mention'); const generatedResponse = await generateResponse(message); if (generatedResponse.message) await message.reply(generatedResponse.message); if (generatedResponse.debug) await message.reply(generatedResponse.debug); @@ -559,20 +569,20 @@ client.on('messageCreate', async (message) => { client.on('messageDelete', async (message) => { if (message.author?.bot) return; + if (!(await isValidChannel(message.channelId))) return; + if (!(message.guildId && message.content)) return; + L.debug(`Deleting message ${message.id}`); - if (!(message.guildId && message.content)) { - return; - } const markov = await getMarkovByGuildId(message.guildId); await markov.removeStrings([message.content]); }); client.on('messageUpdate', async (oldMessage, newMessage) => { if (oldMessage.author?.bot) return; + if (!(await isValidChannel(oldMessage.channelId))) return; + if (!(oldMessage.guildId && oldMessage.content && newMessage.content)) return; + L.debug(`Editing message ${oldMessage.id}`); - if (!(oldMessage.guildId && oldMessage.content && newMessage.content)) { - return; - } const markov = await getMarkovByGuildId(oldMessage.guildId); await markov.removeStrings([oldMessage.content]); await markov.addData([newMessage.content]); From 0bc0dae36e87eb3f6726633fc4a054dd1499e9e3 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 2 Jan 2022 12:01:17 -0600 Subject: [PATCH 28/45] Fix delete performance --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index bcb8bb1..d9a7aaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.1.2", + "markov-strings-db": "^4.1.3", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", @@ -2681,9 +2681,9 @@ "dev": true }, "node_modules/markov-strings-db": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.2.tgz", - "integrity": "sha512-OYdXe+0R4u38SOnqHku9EbvT4d6WpiMtdMjbljcphsov/sdul9JHy7yuiM3ha+NMxsaq81ZGHK7+IT8BNXvzjg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.3.tgz", + "integrity": "sha512-F/ZPN6Azys7zi58KbAzwvns8p99o5v6BVpBORsKqTyWJJx76caNOLSh4fzm0RIPLEm4tXVw9HIXx1YX4AxYJyQ==", "dependencies": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" @@ -6431,9 +6431,9 @@ "dev": true }, "markov-strings-db": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.2.tgz", - "integrity": "sha512-OYdXe+0R4u38SOnqHku9EbvT4d6WpiMtdMjbljcphsov/sdul9JHy7yuiM3ha+NMxsaq81ZGHK7+IT8BNXvzjg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.3.tgz", + "integrity": "sha512-F/ZPN6Azys7zi58KbAzwvns8p99o5v6BVpBORsKqTyWJJx76caNOLSh4fzm0RIPLEm4tXVw9HIXx1YX4AxYJyQ==", "requires": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" diff --git a/package.json b/package.json index 3c35197..64cc4bf 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.1.2", + "markov-strings-db": "^4.1.3", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", From a7699f1992a14cc138759691056adaa12a29a188 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 2 Jan 2022 14:17:58 -0600 Subject: [PATCH 29/45] Update help message --- src/index.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/index.ts b/src/index.ts index f099edc..e55f1b8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -435,21 +435,24 @@ function helpMessage(): Discord.MessageOptions { const embed = new Discord.MessageEmbed() .setAuthor(client.user.username || packageJson().name, avatarURL) .setThumbnail(avatarURL as string) - .setDescription('A Markov chain chatbot that speaks based on previous chat input.') + .setDescription( + `A Markov chain chatbot that speaks based on learned messages from previous chat input.` + ) .addField( `${config.messageCommandPrefix} or /${messageCommand.name}`, - 'Generates a sentence to say based on the chat database. Send your ' + - 'message as TTS to recieve it as TTS.' + `Generates a sentence to say based on the chat database. Send your message as TTS to recieve it as TTS.` + ) + .addField( + `/${listenChannelCommand.name}`, + `Add, remove, list, or modify the list of channels the bot listens to.` ) .addField( `${config.messageCommandPrefix} train or /${trainCommand.name}`, - 'Fetches the maximum amount of previous messages in the current ' + - 'text channel, adds it to the database, and regenerates the corpus. Takes some time.' + `Fetches the maximum amount of previous messages in the listened to text channels. This takes some time.` ) .addField( `${config.messageCommandPrefix} invite or /${inviteCommand.name}`, - "Don't invite this bot to other servers. The database is shared " + - 'between all servers and text channels.' + `Post this bot's invite URL.` ) .addField( `${config.messageCommandPrefix} debug or /${messageCommand.name} debug: True`, @@ -670,7 +673,7 @@ client.on('interactionCreate', async (interaction) => { } else if (interaction.commandName === trainCommand.name) { await interaction.deferReply(); const responseMessage = await saveGuildMessageHistory(interaction); - await interaction.editReply(responseMessage); + await interaction.editReply({ content: responseMessage }); } } else if (interaction.isSelectMenu()) { if (interaction.customId === 'listen-modify-select') { From 914c355ad0bbd62e06686b9a8308d21d47166335 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 2 Jan 2022 14:37:01 -0600 Subject: [PATCH 30/45] Add message seeding feature --- package-lock.json | 14 +++++++------- package.json | 2 +- src/deploy-commands.ts | 8 ++++++++ src/index.ts | 38 ++++++++++++++++++++++++-------------- 4 files changed, 40 insertions(+), 22 deletions(-) diff --git a/package-lock.json b/package-lock.json index d9a7aaa..24ed97a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.1.3", + "markov-strings-db": "^4.1.4", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", @@ -2681,9 +2681,9 @@ "dev": true }, "node_modules/markov-strings-db": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.3.tgz", - "integrity": "sha512-F/ZPN6Azys7zi58KbAzwvns8p99o5v6BVpBORsKqTyWJJx76caNOLSh4fzm0RIPLEm4tXVw9HIXx1YX4AxYJyQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.4.tgz", + "integrity": "sha512-Uq7Z3n7EWO+htgDuWV6bueMd9TFINtNL4NRikll8DkypNrxqiB1zaPvOakOOAvoeCthq+A4JDHeyVqHKXolehg==", "dependencies": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" @@ -6431,9 +6431,9 @@ "dev": true }, "markov-strings-db": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.3.tgz", - "integrity": "sha512-F/ZPN6Azys7zi58KbAzwvns8p99o5v6BVpBORsKqTyWJJx76caNOLSh4fzm0RIPLEm4tXVw9HIXx1YX4AxYJyQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.4.tgz", + "integrity": "sha512-Uq7Z3n7EWO+htgDuWV6bueMd9TFINtNL4NRikll8DkypNrxqiB1zaPvOakOOAvoeCthq+A4JDHeyVqHKXolehg==", "requires": { "reflect-metadata": "^0.1.13", "typeorm": "^0.2.41" diff --git a/package.json b/package.json index 64cc4bf..0636de6 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", - "markov-strings-db": "^4.1.3", + "markov-strings-db": "^4.1.4", "pino": "^7.5.1", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", diff --git a/src/deploy-commands.ts b/src/deploy-commands.ts index ba4e119..4422570 100644 --- a/src/deploy-commands.ts +++ b/src/deploy-commands.ts @@ -25,6 +25,14 @@ export const messageCommand = new SlashCommandBuilder() .setName('debug') .setDescription('Follow up the generated message with the detailed sources that inspired it.') .setRequired(false) + ) + .addStringOption((seed) => + seed + .setName('seed') + .setDescription( + `A ${config.stateSize}-word phrase to attempt to start a generated sentence with.` + ) + .setRequired(false) ); /** diff --git a/src/index.ts b/src/index.ts index e55f1b8..aa28821 100644 --- a/src/index.ts +++ b/src/index.ts @@ -344,6 +344,12 @@ interface GenerateResponse { error?: Discord.MessageOptions; } +interface GenerateOptions { + tts?: boolean; + debug?: boolean; + startSeed?: string; +} + /** * General Markov-chain response function * @param interaction The message that invoked the action, used for channel info. @@ -353,10 +359,10 @@ interface GenerateResponse { */ async function generateResponse( interaction: Discord.Message | Discord.CommandInteraction, - debug = false, - tts = false + options?: GenerateOptions ): Promise { - L.debug('Responding...'); + L.debug({ options }, 'Responding...'); + const { tts = false, debug = false, startSeed } = options || {}; if (!interaction.guildId) { L.warn('Received an interaction without a guildId'); return { message: { content: INVALID_GUILD_MESSAGE } }; @@ -368,6 +374,7 @@ async function generateResponse( const markov = await getMarkovByGuildId(interaction.guildId); try { + markovGenerateOptions.startSeed = startSeed; const response = await markov.generate(markovGenerateOptions); L.info({ string: response.string }, 'Generated response text'); L.debug({ response }, 'Generated response object'); @@ -539,33 +546,35 @@ client.on('messageCreate', async (message) => { } if (command === 'tts') { L.debug('Responding to legacy command tts'); - const generatedResponse = await generateResponse(message, false, true); + const generatedResponse = await generateResponse(message, { tts: true }); if (generatedResponse.message) await message.reply(generatedResponse.message); if (generatedResponse.debug) await message.reply(generatedResponse.debug); if (generatedResponse.error) await message.reply(generatedResponse.error); } if (command === 'debug') { L.debug('Responding to legacy command debug'); - const generatedResponse = await generateResponse(message, true); + const generatedResponse = await generateResponse(message, { debug: true }); if (generatedResponse.message) await message.reply(generatedResponse.message); if (generatedResponse.debug) await message.reply(generatedResponse.debug); if (generatedResponse.error) await message.reply(generatedResponse.error); } if (command === null) { if (!message.author.bot) { + if (client.user && message.mentions.has(client.user)) { + L.debug('Responding to mention'); + // <@!278354154563567636> how are you doing? + const startSeed = message.content.replace(/<@!\d+>/g, '').trim(); + const generatedResponse = await generateResponse(message, { startSeed }); + if (generatedResponse.message) await message.reply(generatedResponse.message); + if (generatedResponse.debug) await message.reply(generatedResponse.debug); + if (generatedResponse.error) await message.reply(generatedResponse.error); + } + if (await isValidChannel(message.channelId)) { L.debug('Listening'); const markov = await getMarkovByGuildId(message.channel.guildId); await markov.addData([messageToData(message)]); } - - if (client.user && message.mentions.has(client.user)) { - L.debug('Responding to mention'); - const generatedResponse = await generateResponse(message); - if (generatedResponse.message) await message.reply(generatedResponse.message); - if (generatedResponse.debug) await message.reply(generatedResponse.debug); - if (generatedResponse.error) await message.reply(generatedResponse.error); - } } } }); @@ -603,7 +612,8 @@ client.on('interactionCreate', async (interaction) => { await interaction.deferReply(); const tts = interaction.options.getBoolean('tts') || false; const debug = interaction.options.getBoolean('debug') || false; - const generatedResponse = await generateResponse(interaction, debug, tts); + const startSeed = interaction.options.getString('seed')?.trim() || undefined; + const generatedResponse = await generateResponse(interaction, { tts, debug, startSeed }); if (generatedResponse.message) await interaction.editReply(generatedResponse.message); else await interaction.deleteReply(); if (generatedResponse.debug) await interaction.followUp(generatedResponse.debug); From 92e86eabb984881bd71bb9cd1c3074914e46e82f Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 2 Jan 2022 15:00:05 -0600 Subject: [PATCH 31/45] Update dependencies to latest --- package-lock.json | 619 ++++++++++++++++------------------------- package.json | 26 +- src/deploy-commands.ts | 2 +- src/index.ts | 16 +- 4 files changed, 267 insertions(+), 396 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24ed97a..b7cc1c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,36 +9,36 @@ "version": "2.0.0", "license": "MIT", "dependencies": { - "@discordjs/builders": "^0.9.0", + "@discordjs/builders": "^0.11.0", "@discordjs/rest": "^0.2.0-canary.0", "@types/fs-extra": "^9.0.13", - "better-sqlite3": "^7.4.5", - "bufferutil": "^4.0.5", + "better-sqlite3": "^7.4.6", + "bufferutil": "^4.0.6", "class-transformer": "^0.5.1", "class-validator": "^0.13.2", "date-fns": "^2.28.0", - "discord-api-types": "^0.25.2", - "discord.js": "^13.3.1", + "discord-api-types": "^0.26.1", + "discord.js": "^13.5.0", "dotenv": "^10.0.0", "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", "markov-strings-db": "^4.1.4", - "pino": "^7.5.1", + "pino": "^7.6.2", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", "simple-eta": "^3.0.2", "source-map-support": "^0.5.21", - "typeorm": "^0.2.38", - "utf-8-validate": "^5.0.7", + "typeorm": "^0.2.41", + "utf-8-validate": "^5.0.8", "zlib-sync": "^0.1.7" }, "devDependencies": { - "@types/node": "^16.11.14", - "@types/validator": "^13.7.0", - "@typescript-eslint/eslint-plugin": "^5.7.0", - "@typescript-eslint/parser": "^5.7.0", - "eslint": "^8.4.1", + "@types/node": "^16.11.17", + "@types/validator": "^13.7.1", + "@typescript-eslint/eslint-plugin": "^5.8.1", + "@typescript-eslint/parser": "^5.8.1", + "eslint": "^8.6.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.3", @@ -75,12 +75,12 @@ } }, "node_modules/@discordjs/builders": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.9.0.tgz", - "integrity": "sha512-XM/5yrTxMF0SDKza32YzGDQO1t+qEJTaF8Zvxu/UOjzoqzMPPGQBjC1VgZxz8/CBLygW5qI+UVygMa88z13G3g==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz", + "integrity": "sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==", "dependencies": { "@sindresorhus/is": "^4.2.0", - "discord-api-types": "^0.24.0", + "discord-api-types": "^0.26.0", "ts-mixer": "^6.0.0", "tslib": "^2.3.1", "zod": "^3.11.6" @@ -90,14 +90,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@discordjs/builders/node_modules/discord-api-types": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", - "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==", - "engines": { - "node": ">=12" - } - }, "node_modules/@discordjs/collection": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.3.2.tgz", @@ -107,19 +99,6 @@ "npm": ">=7.0.0" } }, - "node_modules/@discordjs/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@discordjs/rest": { "version": "0.2.0-canary.0", "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.2.0-canary.0.tgz", @@ -137,6 +116,14 @@ "node": ">=16.0.0" } }, + "node_modules/@discordjs/rest/node_modules/discord-api-types": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.25.2.tgz", + "integrity": "sha512-O243LXxb5gLLxubu5zgoppYQuolapGVWPw3ll0acN0+O8TnPUE2kFp9Bt3sTRYodw8xFIknOVxjSeyWYBpVcEQ==", + "engines": { + "node": ">=12" + } + }, "node_modules/@discordjs/rest/node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -313,9 +300,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.11.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.14.tgz", - "integrity": "sha512-mK6BKLpL0bG6v2CxHbm0ed6RcZrAtTHBTd/ZpnlVPVa3HkumsqLE4BC4u6TQ8D7pnrRbOU0am6epuALs+Ncnzw==" + "version": "16.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", + "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -327,9 +314,9 @@ } }, "node_modules/@types/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-+jBxVvXVuggZOrm04NR8z+5+bgoW4VZyLzUO+hmPPW1mVFL/HaitLAkizfv4yg9TbG8lkfHWVMQ11yDqrVVCzA==", + "version": "13.7.1", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.1.tgz", + "integrity": "sha512-I6OUIZ5cYRk5lp14xSOAiXjWrfVoMZVjDuevBYgQDYzZIjsf2CAISpEcXOkFAtpAHbmWIDLcZObejqny/9xq5Q==", "dev": true }, "node_modules/@types/ws": { @@ -346,13 +333,13 @@ "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz", - "integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.8.1.tgz", + "integrity": "sha512-wTZ5oEKrKj/8/366qTM366zqhIKAp6NCMweoRONtfuC07OAU9nVI2GZZdqQ1qD30WAAtcPdkH+npDwtRFdp4Rw==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "5.7.0", - "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/experimental-utils": "5.8.1", + "@typescript-eslint/scope-manager": "5.8.1", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -378,15 +365,15 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz", - "integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.1.tgz", + "integrity": "sha512-fbodVnjIDU4JpeXWRDsG5IfIjYBxEvs8EBO8W1+YVdtrc2B9ppfof5sZhVEDOtgTfFHnYQJDI8+qdqLYO4ceww==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.7.0", - "@typescript-eslint/types": "5.7.0", - "@typescript-eslint/typescript-estree": "5.7.0", + "@typescript-eslint/scope-manager": "5.8.1", + "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/typescript-estree": "5.8.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -398,18 +385,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz", - "integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.8.1.tgz", + "integrity": "sha512-K1giKHAjHuyB421SoXMXFHHVI4NdNY603uKw92++D3qyxSeYvC10CBJ/GE5Thpo4WTUvu1mmJI2/FFkz38F2Gw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.7.0", - "@typescript-eslint/types": "5.7.0", - "@typescript-eslint/typescript-estree": "5.7.0", + "@typescript-eslint/scope-manager": "5.8.1", + "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/typescript-estree": "5.8.1", "debug": "^4.3.2" }, "engines": { @@ -429,13 +416,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz", - "integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.8.1.tgz", + "integrity": "sha512-DGxJkNyYruFH3NIZc3PwrzwOQAg7vvgsHsHCILOLvUpupgkwDZdNq/cXU3BjF4LNrCsVg0qxEyWasys5AiJ85Q==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.7.0", - "@typescript-eslint/visitor-keys": "5.7.0" + "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/visitor-keys": "5.8.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -446,9 +433,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz", - "integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.8.1.tgz", + "integrity": "sha512-L/FlWCCgnjKOLefdok90/pqInkomLnAcF9UAzNr+DSqMC3IffzumHTQTrINXhP1gVp9zlHiYYjvozVZDPleLcA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -459,13 +446,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz", - "integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.1.tgz", + "integrity": "sha512-26lQ8l8tTbG7ri7xEcCFT9ijU5Fk+sx/KRRyyzCv7MQ+rZZlqiDPtMKWLC8P7o+dtCnby4c+OlxuX1tp8WfafQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.7.0", - "@typescript-eslint/visitor-keys": "5.7.0", + "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/visitor-keys": "5.8.1", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -486,12 +473,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz", - "integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.1.tgz", + "integrity": "sha512-SWgiWIwocK6NralrJarPZlWdr0hZnj5GXHIgfdm8hNkyKvpeQuFyLP6YjSIe9kf3YBIfU6OHSZLYkQ+smZwtNg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/types": "5.8.1", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -503,9 +490,9 @@ } }, "node_modules/acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -778,9 +765,9 @@ ] }, "node_modules/better-sqlite3": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.5.tgz", - "integrity": "sha512-mybC3dgrtJeHkIRGP36tST7wjBlIMgTRAXhhO4bMpPZ17EG23FZxZeFcwKWy6o8mV1SKQFnQNyeAZlQpGrgheQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.6.tgz", + "integrity": "sha512-LB/UxnMhcJY12bRCDXl2jTk0lsbXHCHOLn3cPjGhy3GCcVPGq45sCGJPUdfBZnfXGN14tYTJyq0ztUI3lGng8A==", "hasInstallScript": true, "dependencies": { "bindings": "^1.5.0", @@ -869,9 +856,9 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "node_modules/bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", + "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", "hasInstallScript": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -897,6 +884,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "engines": { "node": ">=6" } @@ -1246,55 +1234,53 @@ } }, "node_modules/discord-api-types": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.25.2.tgz", - "integrity": "sha512-O243LXxb5gLLxubu5zgoppYQuolapGVWPw3ll0acN0+O8TnPUE2kFp9Bt3sTRYodw8xFIknOVxjSeyWYBpVcEQ==", + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", + "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==", "engines": { "node": ">=12" } }, "node_modules/discord.js": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.3.1.tgz", - "integrity": "sha512-zn4G8tL5+tMV00+0aSsVYNYcIfMSdT2g0nudKny+Ikd+XKv7m6bqI7n3Vji0GIRqXDr5ArPaw+iYFM2I1Iw3vg==", + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.5.0.tgz", + "integrity": "sha512-K+ZcB0f+wA1ZzDhz3hlaAi4Ap7jSvVEUZ+U29T4DMoiNNUv22F4vu1byrOq8GyyLLDFiZ3iSudea0MvSHu3fQA==", "dependencies": { - "@discordjs/builders": "^0.8.1", - "@discordjs/collection": "^0.3.2", - "@discordjs/form-data": "^3.0.1", - "@sapphire/async-queue": "^1.1.8", + "@discordjs/builders": "^0.11.0", + "@discordjs/collection": "^0.4.0", + "@sapphire/async-queue": "^1.1.9", "@types/node-fetch": "^2.5.12", - "@types/ws": "^8.2.0", - "discord-api-types": "^0.24.0", + "@types/ws": "^8.2.2", + "discord-api-types": "^0.26.0", + "form-data": "^4.0.0", "node-fetch": "^2.6.1", - "ws": "^8.2.3" + "ws": "^8.4.0" }, "engines": { "node": ">=16.6.0", "npm": ">=7.0.0" } }, - "node_modules/discord.js/node_modules/@discordjs/builders": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.8.2.tgz", - "integrity": "sha512-/YRd11SrcluqXkKppq/FAVzLIPRVlIVmc6X8ZklspzMIHDtJ+A4W37D43SHvLdH//+NnK+SHW/WeOF4Ts54PeQ==", - "dependencies": { - "@sindresorhus/is": "^4.2.0", - "discord-api-types": "^0.24.0", - "ow": "^0.27.0", - "ts-mixer": "^6.0.0", - "tslib": "^2.3.1" - }, + "node_modules/discord.js/node_modules/@discordjs/collection": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz", + "integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw==", "engines": { "node": ">=16.0.0", "npm": ">=7.0.0" } }, - "node_modules/discord.js/node_modules/discord-api-types": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", - "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==", + "node_modules/discord.js/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, "engines": { - "node": ">=12" + "node": ">= 6" } }, "node_modules/doctrine": { @@ -1309,20 +1295,6 @@ "node": ">=6.0.0" } }, - "node_modules/dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/dotenv": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", @@ -1462,9 +1434,9 @@ } }, "node_modules/eslint": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.5.0.tgz", - "integrity": "sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", + "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.0.5", @@ -1479,7 +1451,7 @@ "eslint-scope": "^7.1.0", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.1.0", - "espree": "^9.2.0", + "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -1754,12 +1726,12 @@ } }, "node_modules/espree": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", - "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "dependencies": { - "acorn": "^8.6.0", + "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^3.1.0" }, @@ -1900,11 +1872,6 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, - "node_modules/fastify-warning": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", - "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" - }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -2471,14 +2438,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "engines": { - "node": ">=8" - } - }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -2652,11 +2611,6 @@ "node": ">=4" } }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -2994,36 +2948,6 @@ "node": ">= 0.8.0" } }, - "node_modules/ow": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", - "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", - "dependencies": { - "@sindresorhus/is": "^4.0.1", - "callsites": "^3.1.0", - "dot-prop": "^6.0.1", - "lodash.isequal": "^4.5.0", - "type-fest": "^1.2.1", - "vali-date": "^1.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ow/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -3129,9 +3053,9 @@ } }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -3141,16 +3065,15 @@ } }, "node_modules/pino": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/pino/-/pino-7.5.1.tgz", - "integrity": "sha512-Wzo2G7CLaRHKOz3+Ex006LC5Xi0xEUm+mwm/h0NKzuKZONdekcbmjXg7vWDoO8hVTGX+1RuUy2fwlzvZ24EI5A==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-7.6.2.tgz", + "integrity": "sha512-GTzW+HHOzUTaPIyvK6tasky2jMXF1o3iw7Oc2ik7qFjcaexXfyn6ej72XwX4O+wuRyFCbp3oKpv00htrPddv5A==", "dependencies": { "fast-redact": "^3.0.0", - "fastify-warning": "^0.2.0", - "get-caller-file": "^2.0.5", "on-exit-leak-free": "^0.2.0", "pino-abstract-transport": "v0.5.0", "pino-std-serializers": "^4.0.0", + "process-warning": "^1.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.1.0", "safe-stable-stringify": "^2.1.0", @@ -3286,6 +3209,11 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "node_modules/process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -4196,9 +4124,9 @@ } }, "node_modules/utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz", + "integrity": "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==", "hasInstallScript": true, "dependencies": { "node-gyp-build": "^4.3.0" @@ -4218,14 +4146,6 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "node_modules/vali-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", - "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/validator": { "version": "13.7.0", "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", @@ -4339,9 +4259,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz", - "integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz", + "integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==", "engines": { "node": ">=10.0.0" }, @@ -4495,22 +4415,15 @@ } }, "@discordjs/builders": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.9.0.tgz", - "integrity": "sha512-XM/5yrTxMF0SDKza32YzGDQO1t+qEJTaF8Zvxu/UOjzoqzMPPGQBjC1VgZxz8/CBLygW5qI+UVygMa88z13G3g==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.11.0.tgz", + "integrity": "sha512-ZTB8yJdJKrKlq44dpWkNUrAtEJEq0gqpb7ASdv4vmq6/mZal5kOv312hQ56I/vxwMre+VIkoHquNUAfnTbiYtg==", "requires": { "@sindresorhus/is": "^4.2.0", - "discord-api-types": "^0.24.0", + "discord-api-types": "^0.26.0", "ts-mixer": "^6.0.0", "tslib": "^2.3.1", "zod": "^3.11.6" - }, - "dependencies": { - "discord-api-types": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", - "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==" - } } }, "@discordjs/collection": { @@ -4518,16 +4431,6 @@ "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.3.2.tgz", "integrity": "sha512-dMjLl60b2DMqObbH1MQZKePgWhsNe49XkKBZ0W5Acl5uVV43SN414i2QfZwRI7dXAqIn8pEWD2+XXQFn9KWxqg==" }, - "@discordjs/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, "@discordjs/rest": { "version": "0.2.0-canary.0", "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.2.0-canary.0.tgz", @@ -4542,6 +4445,11 @@ "tslib": "^2.3.1" }, "dependencies": { + "discord-api-types": { + "version": "0.25.2", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.25.2.tgz", + "integrity": "sha512-O243LXxb5gLLxubu5zgoppYQuolapGVWPw3ll0acN0+O8TnPUE2kFp9Bt3sTRYodw8xFIknOVxjSeyWYBpVcEQ==" + }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -4687,9 +4595,9 @@ "dev": true }, "@types/node": { - "version": "16.11.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.14.tgz", - "integrity": "sha512-mK6BKLpL0bG6v2CxHbm0ed6RcZrAtTHBTd/ZpnlVPVa3HkumsqLE4BC4u6TQ8D7pnrRbOU0am6epuALs+Ncnzw==" + "version": "16.11.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", + "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==" }, "@types/node-fetch": { "version": "2.5.12", @@ -4701,9 +4609,9 @@ } }, "@types/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-+jBxVvXVuggZOrm04NR8z+5+bgoW4VZyLzUO+hmPPW1mVFL/HaitLAkizfv4yg9TbG8lkfHWVMQ11yDqrVVCzA==", + "version": "13.7.1", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.7.1.tgz", + "integrity": "sha512-I6OUIZ5cYRk5lp14xSOAiXjWrfVoMZVjDuevBYgQDYzZIjsf2CAISpEcXOkFAtpAHbmWIDLcZObejqny/9xq5Q==", "dev": true }, "@types/ws": { @@ -4720,13 +4628,13 @@ "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" }, "@typescript-eslint/eslint-plugin": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.7.0.tgz", - "integrity": "sha512-8RTGBpNn5a9M628wBPrCbJ+v3YTEOE2qeZb7TDkGKTDXSj36KGRg92SpFFaR/0S3rSXQxM0Og/kV9EyadsYSBg==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.8.1.tgz", + "integrity": "sha512-wTZ5oEKrKj/8/366qTM366zqhIKAp6NCMweoRONtfuC07OAU9nVI2GZZdqQ1qD30WAAtcPdkH+npDwtRFdp4Rw==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "5.7.0", - "@typescript-eslint/scope-manager": "5.7.0", + "@typescript-eslint/experimental-utils": "5.8.1", + "@typescript-eslint/scope-manager": "5.8.1", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -4736,55 +4644,55 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.7.0.tgz", - "integrity": "sha512-u57eZ5FbEpzN5kSjmVrSesovWslH2ZyNPnaXQMXWgH57d5+EVHEt76W75vVuI9qKZ5BMDKNfRN+pxcPEjQjb2A==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.1.tgz", + "integrity": "sha512-fbodVnjIDU4JpeXWRDsG5IfIjYBxEvs8EBO8W1+YVdtrc2B9ppfof5sZhVEDOtgTfFHnYQJDI8+qdqLYO4ceww==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.7.0", - "@typescript-eslint/types": "5.7.0", - "@typescript-eslint/typescript-estree": "5.7.0", + "@typescript-eslint/scope-manager": "5.8.1", + "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/typescript-estree": "5.8.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.7.0.tgz", - "integrity": "sha512-m/gWCCcS4jXw6vkrPQ1BjZ1vomP01PArgzvauBqzsoZ3urLbsRChexB8/YV8z9HwE3qlJM35FxfKZ1nfP/4x8g==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.8.1.tgz", + "integrity": "sha512-K1giKHAjHuyB421SoXMXFHHVI4NdNY603uKw92++D3qyxSeYvC10CBJ/GE5Thpo4WTUvu1mmJI2/FFkz38F2Gw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.7.0", - "@typescript-eslint/types": "5.7.0", - "@typescript-eslint/typescript-estree": "5.7.0", + "@typescript-eslint/scope-manager": "5.8.1", + "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/typescript-estree": "5.8.1", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.7.0.tgz", - "integrity": "sha512-7mxR520DGq5F7sSSgM0HSSMJ+TFUymOeFRMfUfGFAVBv8BR+Jv1vHgAouYUvWRZeszVBJlLcc9fDdktxb5kmxA==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.8.1.tgz", + "integrity": "sha512-DGxJkNyYruFH3NIZc3PwrzwOQAg7vvgsHsHCILOLvUpupgkwDZdNq/cXU3BjF4LNrCsVg0qxEyWasys5AiJ85Q==", "dev": true, "requires": { - "@typescript-eslint/types": "5.7.0", - "@typescript-eslint/visitor-keys": "5.7.0" + "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/visitor-keys": "5.8.1" } }, "@typescript-eslint/types": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.7.0.tgz", - "integrity": "sha512-5AeYIF5p2kAneIpnLFve8g50VyAjq7udM7ApZZ9JYjdPjkz0LvODfuSHIDUVnIuUoxafoWzpFyU7Sqbxgi79mA==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.8.1.tgz", + "integrity": "sha512-L/FlWCCgnjKOLefdok90/pqInkomLnAcF9UAzNr+DSqMC3IffzumHTQTrINXhP1gVp9zlHiYYjvozVZDPleLcA==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.7.0.tgz", - "integrity": "sha512-aO1Ql+izMrTnPj5aFFlEJkpD4jRqC4Gwhygu2oHK2wfVQpmOPbyDSveJ+r/NQo+PWV43M6uEAeLVbTi09dFLhg==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.1.tgz", + "integrity": "sha512-26lQ8l8tTbG7ri7xEcCFT9ijU5Fk+sx/KRRyyzCv7MQ+rZZlqiDPtMKWLC8P7o+dtCnby4c+OlxuX1tp8WfafQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.7.0", - "@typescript-eslint/visitor-keys": "5.7.0", + "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/visitor-keys": "5.8.1", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -4793,19 +4701,19 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.7.0.tgz", - "integrity": "sha512-hdohahZ4lTFcglZSJ3DGdzxQHBSxsLVqHzkiOmKi7xVAWC4y2c1bIMKmPJSrA4aOEoRUPOKQ87Y/taC7yVHpFg==", + "version": "5.8.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.1.tgz", + "integrity": "sha512-SWgiWIwocK6NralrJarPZlWdr0hZnj5GXHIgfdm8hNkyKvpeQuFyLP6YjSIe9kf3YBIfU6OHSZLYkQ+smZwtNg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.7.0", + "@typescript-eslint/types": "5.8.1", "eslint-visitor-keys": "^3.0.0" } }, "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, "acorn-jsx": { @@ -5000,9 +4908,9 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "better-sqlite3": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.5.tgz", - "integrity": "sha512-mybC3dgrtJeHkIRGP36tST7wjBlIMgTRAXhhO4bMpPZ17EG23FZxZeFcwKWy6o8mV1SKQFnQNyeAZlQpGrgheQ==", + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.6.tgz", + "integrity": "sha512-LB/UxnMhcJY12bRCDXl2jTk0lsbXHCHOLn3cPjGhy3GCcVPGq45sCGJPUdfBZnfXGN14tYTJyq0ztUI3lGng8A==", "requires": { "bindings": "^1.5.0", "prebuild-install": "^7.0.0", @@ -5072,9 +4980,9 @@ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, "bufferutil": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz", - "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz", + "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==", "requires": { "node-gyp-build": "^4.3.0" } @@ -5092,7 +5000,8 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true }, "camelcase": { "version": "5.0.0", @@ -5349,42 +5258,40 @@ } }, "discord-api-types": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.25.2.tgz", - "integrity": "sha512-O243LXxb5gLLxubu5zgoppYQuolapGVWPw3ll0acN0+O8TnPUE2kFp9Bt3sTRYodw8xFIknOVxjSeyWYBpVcEQ==" + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.26.1.tgz", + "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==" }, "discord.js": { - "version": "13.3.1", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.3.1.tgz", - "integrity": "sha512-zn4G8tL5+tMV00+0aSsVYNYcIfMSdT2g0nudKny+Ikd+XKv7m6bqI7n3Vji0GIRqXDr5ArPaw+iYFM2I1Iw3vg==", + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.5.0.tgz", + "integrity": "sha512-K+ZcB0f+wA1ZzDhz3hlaAi4Ap7jSvVEUZ+U29T4DMoiNNUv22F4vu1byrOq8GyyLLDFiZ3iSudea0MvSHu3fQA==", "requires": { - "@discordjs/builders": "^0.8.1", - "@discordjs/collection": "^0.3.2", - "@discordjs/form-data": "^3.0.1", - "@sapphire/async-queue": "^1.1.8", + "@discordjs/builders": "^0.11.0", + "@discordjs/collection": "^0.4.0", + "@sapphire/async-queue": "^1.1.9", "@types/node-fetch": "^2.5.12", - "@types/ws": "^8.2.0", - "discord-api-types": "^0.24.0", + "@types/ws": "^8.2.2", + "discord-api-types": "^0.26.0", + "form-data": "^4.0.0", "node-fetch": "^2.6.1", - "ws": "^8.2.3" + "ws": "^8.4.0" }, "dependencies": { - "@discordjs/builders": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.8.2.tgz", - "integrity": "sha512-/YRd11SrcluqXkKppq/FAVzLIPRVlIVmc6X8ZklspzMIHDtJ+A4W37D43SHvLdH//+NnK+SHW/WeOF4Ts54PeQ==", - "requires": { - "@sindresorhus/is": "^4.2.0", - "discord-api-types": "^0.24.0", - "ow": "^0.27.0", - "ts-mixer": "^6.0.0", - "tslib": "^2.3.1" - } + "@discordjs/collection": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.4.0.tgz", + "integrity": "sha512-zmjq+l/rV35kE6zRrwe8BHqV78JvIh2ybJeZavBi5NySjWXqN3hmmAKg7kYMMXSeiWtSsMoZ/+MQi0DiQWy2lw==" }, - "discord-api-types": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.24.0.tgz", - "integrity": "sha512-X0uA2a92cRjowUEXpLZIHWl4jiX1NsUpDhcEOpa1/hpO1vkaokgZ8kkPtPih9hHth5UVQ3mHBu/PpB4qjyfJ4A==" + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } } } }, @@ -5397,14 +5304,6 @@ "esutils": "^2.0.2" } }, - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "requires": { - "is-obj": "^2.0.0" - } - }, "dotenv": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", @@ -5514,9 +5413,9 @@ "dev": true }, "eslint": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.5.0.tgz", - "integrity": "sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", + "integrity": "sha512-UvxdOJ7mXFlw7iuHZA4jmzPaUqIw54mZrv+XPYKNbKdLR0et4rf60lIZUU9kiNtnzzMzGWxMV+tQ7uG7JG8DPw==", "dev": true, "requires": { "@eslint/eslintrc": "^1.0.5", @@ -5531,7 +5430,7 @@ "eslint-scope": "^7.1.0", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.1.0", - "espree": "^9.2.0", + "espree": "^9.3.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -5743,12 +5642,12 @@ "dev": true }, "espree": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.2.0.tgz", - "integrity": "sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz", + "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==", "dev": true, "requires": { - "acorn": "^8.6.0", + "acorn": "^8.7.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^3.1.0" } @@ -5862,11 +5761,6 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" }, - "fastify-warning": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/fastify-warning/-/fastify-warning-0.2.0.tgz", - "integrity": "sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw==" - }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", @@ -6274,11 +6168,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, "is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -6405,11 +6294,6 @@ "path-exists": "^3.0.0" } }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=" - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -6664,26 +6548,6 @@ "word-wrap": "^1.2.3" } }, - "ow": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz", - "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==", - "requires": { - "@sindresorhus/is": "^4.0.1", - "callsites": "^3.1.0", - "dot-prop": "^6.0.1", - "lodash.isequal": "^4.5.0", - "type-fest": "^1.2.1", - "vali-date": "^1.0.0" - }, - "dependencies": { - "type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==" - } - } - }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", @@ -6767,22 +6631,21 @@ "dev": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pino": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/pino/-/pino-7.5.1.tgz", - "integrity": "sha512-Wzo2G7CLaRHKOz3+Ex006LC5Xi0xEUm+mwm/h0NKzuKZONdekcbmjXg7vWDoO8hVTGX+1RuUy2fwlzvZ24EI5A==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-7.6.2.tgz", + "integrity": "sha512-GTzW+HHOzUTaPIyvK6tasky2jMXF1o3iw7Oc2ik7qFjcaexXfyn6ej72XwX4O+wuRyFCbp3oKpv00htrPddv5A==", "requires": { "fast-redact": "^3.0.0", - "fastify-warning": "^0.2.0", - "get-caller-file": "^2.0.5", "on-exit-leak-free": "^0.2.0", "pino-abstract-transport": "v0.5.0", "pino-std-serializers": "^4.0.0", + "process-warning": "^1.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.1.0", "safe-stable-stringify": "^2.1.0", @@ -6890,6 +6753,11 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", @@ -7501,9 +7369,9 @@ } }, "utf-8-validate": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz", - "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.8.tgz", + "integrity": "sha512-k4dW/Qja1BYDl2qD4tOMB9PFVha/UJtxTc1cXYOe3WwA/2m0Yn4qB7wLMpJyLJ/7DR0XnTut3HsCSzDT4ZvKgA==", "requires": { "node-gyp-build": "^4.3.0" } @@ -7519,11 +7387,6 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "vali-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz", - "integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=" - }, "validator": { "version": "13.7.0", "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", @@ -7612,9 +7475,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.3.0.tgz", - "integrity": "sha512-Gs5EZtpqZzLvmIM59w4igITU57lrtYVFneaa434VROv4thzJyV6UjIL3D42lslWlI+D4KzLYnxSwtfuiO79sNw==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz", + "integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==", "requires": {} }, "xml2js": { diff --git a/package.json b/package.json index 0636de6..dfb85ee 100644 --- a/package.json +++ b/package.json @@ -30,36 +30,36 @@ }, "license": "MIT", "dependencies": { - "@discordjs/builders": "^0.9.0", + "@discordjs/builders": "^0.11.0", "@discordjs/rest": "^0.2.0-canary.0", "@types/fs-extra": "^9.0.13", - "better-sqlite3": "^7.4.5", - "bufferutil": "^4.0.5", + "better-sqlite3": "^7.4.6", + "bufferutil": "^4.0.6", "class-transformer": "^0.5.1", "class-validator": "^0.13.2", "date-fns": "^2.28.0", - "discord-api-types": "^0.25.2", - "discord.js": "^13.3.1", + "discord-api-types": "^0.26.1", + "discord.js": "^13.5.0", "dotenv": "^10.0.0", "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", "json5": "^2.2.0", "markov-strings-db": "^4.1.4", - "pino": "^7.5.1", + "pino": "^7.6.2", "pino-pretty": "^7.3.0", "reflect-metadata": "^0.1.13", "simple-eta": "^3.0.2", "source-map-support": "^0.5.21", - "typeorm": "^0.2.38", - "utf-8-validate": "^5.0.7", + "typeorm": "^0.2.41", + "utf-8-validate": "^5.0.8", "zlib-sync": "^0.1.7" }, "devDependencies": { - "@types/node": "^16.11.14", - "@types/validator": "^13.7.0", - "@typescript-eslint/eslint-plugin": "^5.7.0", - "@typescript-eslint/parser": "^5.7.0", - "eslint": "^8.4.1", + "@types/node": "^16.11.17", + "@types/validator": "^13.7.1", + "@typescript-eslint/eslint-plugin": "^5.8.1", + "@typescript-eslint/parser": "^5.8.1", + "eslint": "^8.6.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.3", diff --git a/src/deploy-commands.ts b/src/deploy-commands.ts index 4422570..a3f8024 100644 --- a/src/deploy-commands.ts +++ b/src/deploy-commands.ts @@ -43,7 +43,7 @@ const channelOptionsGenerator = (builder: SlashCommandChannelOption, index: numb .setName(`channel-${index + 1}`) .setDescription('A text channel') .setRequired(index === 0) - .addChannelType(ChannelType.GuildText as any); + .addChannelType(ChannelType.GuildText); export const listenChannelCommand = new SlashCommandBuilder() .setName('listen') diff --git a/src/index.ts b/src/index.ts index aa28821..8cb9831 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,13 +12,11 @@ import Markov, { import { createConnection } from 'typeorm'; import { MarkovInputData } from 'markov-strings-db/dist/src/entity/MarkovInputData'; import type { PackageJsonPerson } from 'types-package-json'; -import { - APISelectMenuComponent, - APIInteractionGuildMember, -} from 'discord.js/node_modules/discord-api-types'; + import makeEta from 'simple-eta'; import formatDistanceToNow from 'date-fns/formatDistanceToNow'; import addSeconds from 'date-fns/addSeconds'; +import type { APIInteractionGuildMember, APISelectMenuComponent } from 'discord-api-types'; import L from './logger'; import { Channel } from './entity/Channel'; import { Guild } from './entity/Guild'; @@ -632,6 +630,11 @@ client.on('interactionCreate', async (interaction) => { await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); return; } + if (!interaction.guildId) { + await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); + return; + } const channels = getChannelsFromInteraction(interaction); await addValidChannels(channels, interaction.guildId); await interaction.editReply( @@ -643,6 +646,11 @@ client.on('interactionCreate', async (interaction) => { await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); return; } + if (!interaction.guildId) { + await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); + return; + } const channels = getChannelsFromInteraction(interaction); await removeValidChannels(channels, interaction.guildId); await interaction.editReply( From fb2128b0809b0dc590861270dad359f3f056c79a Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Tue, 4 Jan 2022 22:15:10 -0600 Subject: [PATCH 32/45] Update to alpine 3.15 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8ad2250..a1c9845 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ######## # BASE ######## -FROM node:16-alpine3.14 as base +FROM node:16-alpine3.15 as base WORKDIR /usr/app From 947100282e60ced5df8a8121cb713aabd878f9a8 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Tue, 4 Jan 2022 22:15:33 -0600 Subject: [PATCH 33/45] Update docs for 2.0.0 prep --- .dockerignore | 4 +- .github/workflows/typedoc.yml | 33 +++++ .gitignore | 1 + CHANGELOG.md | 94 +++++++++++++++ README.md | 218 ++++++---------------------------- img/listen.png | Bin 0 -> 47557 bytes img/respond.png | Bin 0 -> 32982 bytes img/train.png | Bin 0 -> 47897 bytes package-lock.json | 124 +++++++++++++++++++ package.json | 6 +- src/config/classes.ts | 15 ++- 11 files changed, 306 insertions(+), 189 deletions(-) create mode 100644 .github/workflows/typedoc.yml create mode 100644 CHANGELOG.md create mode 100644 img/listen.png create mode 100644 img/respond.png create mode 100644 img/train.png diff --git a/.dockerignore b/.dockerignore index b924a5a..1c7628b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,5 @@ config dist -node_modules \ No newline at end of file +node_modules +img +docs \ No newline at end of file diff --git a/.github/workflows/typedoc.yml b/.github/workflows/typedoc.yml new file mode 100644 index 0000000..b49c983 --- /dev/null +++ b/.github/workflows/typedoc.yml @@ -0,0 +1,33 @@ +name: Publish Typedoc to Github Pages +on: + push: + branches: + - master + paths: + - Readme.md + - src/config/classes.ts + - .github/workflows/typedoc.yml + - package.json +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Setup Node.js for use with actions + uses: actions/setup-node@v2 + with: + node-version: 'lts/*' + cache: 'npm' + + - name: NPM install + run: npm ci + + # Runs a single command using the runners shell + - name: Build and lint + run: npm run docs + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./docs \ No newline at end of file diff --git a/.gitignore b/.gitignore index ab4680a..8d1d733 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ logs npm-debug.log* yarn-debug.log* yarn-error.log* +docs # Runtime data pids diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..500a268 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,94 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +## Versions + +### 2.0.0 + +#### Breaking Changes + +* Config option `prefix` renamed to `messageCommandPrefix` +* Config option `game` renamed to `activity` +* Docker internal volume path moved from `/usr/src/markbot/config` to `/usr/app/config` +* Database changed from JSON files to a SQLite database. You'll need to retrain the bot to use it again. +* The bot must be explicitly granted permission to listen to a list of channels before using it. Configure it with `/listen`. +* Docker user changed from `root` to `node` + +#### New Features + +* Data is stored in a relational database to reduce memory and disk read/write usage, as well as to decrease latency +* The bot can be restricted to only learn/listen from a strict list of channels +* Bot responses can be seeded by a short phrase +* Discord slash command support +* Many more config options available at +* Config file supports [JSON5](https://json5.org/) (comments, trailing commas, etc) + +### 0.7.3 + +* Fix crash when fetched messages is empty +* Update docs +* Update dependencies + +### 0.7.2 + +* Fix @everyone replacement + +### 0.7.1 + +* Readme updates +* Config loading fix +* Fix min score +* Add generator options to config +* Document Node 12 update + +### 0.7.0 + +* Convert project to Typescript +* Optimize Docker build (smaller image) +* Load corpus from filesystem to reduce memory load + +### 0.6.2 + +* Fix MarkovDB not loading on boot + +### 0.6.1 + +* Fix bot crashing on scheduled regen + +### 0.6.0 + +* Added Docker deploy functionality. +* Moved config and database to `./config` directory. Existing configs will be migrated. +* Config-less support via bot token located in an environment variable. +* Update dependencies. +* Change corpus regen time to 4 AM. + +### 0.5.0 + +* Fixed bug where `!mark help` didn't work. +* Only admins can train. +* The bot responds when mentioned. +* The bot cannot mention @everyone. +* Added version number to help. +* Added `!mark tts` for a quieter TTS response. +* Readme overhaul. +* Simpler config loading. + +### 0.4.0 + +* Huge refactor. +* Added `!mark debug` which sends debug info alongside the message. +* Converted the fetchMessages function to async/await (updating the requirement to Node.js 8). +* Updated module versions. +* Added faster unique-array-by-property function +* Added linting and linted the project. + +### 0.3.0 + +* Added TTS support and random message attachments. +* Deleted messages no longer persist in the database longer than 24 hours. + +### 0.2.0 + +* Updated training algorithm and data structure. diff --git a/README.md b/README.md index d797166..21eed8f 100644 --- a/README.md +++ b/README.md @@ -4,213 +4,65 @@ A Markov chain bot using markov-strings. ## Usage +1. Configure what channels you want the bot to listen/learn from: + * User: `/listen modify` + * Bot: ![Select which channels your would like the bot to actively listen to](img/listen.png) 1. Train the bot in a lengthy text channel: - * User: `!mark train` - * Markbot: `@User, Finished training from past 76394 messages.` + * User: `/train` + * Bot: ![Parsing past messages from 5 channel(s).](img/train.png) 1. Ask the bot to say something: - * User: `!mark` - * Markbot: `This Shopko has a Linux release` + * User: `/mark` + * Bot: ![worms are not baby snakes, by the way](img/respond.png) ## Setup -First, create a [Discord bot application](https://discordapp.com/developers/applications/). +This bot stores your Discord server's entire message history, so a public instance to invite to your server is not available due to obvious data privacy concerns. Instead, you can host it yourself. + +1. Create a [Discord bot application](https://discordapp.com/developers/applications/) +1. Under the "Bot" section, enable the "Message Content Intent", and copy the token for later. +1. Setup and configure the bot using one of the below methods: + +### Docker + +Running this bot in Docker is the easiest way to ensure it runs as expected and can easily recieve updates. + +1. [Install Docker for your OS](https://docs.docker.com/get-docker/) +1. Open a command prompt and run: + + ```sh + docker run --rm -ti -v /my/host/dir:/usr/app/config ghcr.io/claabs/markov-discord:latest + ``` + + Where `/my/host/dir` is a accessible path on your system. +1. The Docker container will create a default config file in your mounted volume (`/my/host/dir`). Open it and add your bot token. You may change any other values to your liking as well. Details for each configuration item can be found here: +1. Run the container again and use the invite link printed to the logs. ### Windows -#### Windows Requirements - -* [Node.js 12.0+ (Current)](https://nodejs.org/en/download/) - * Installing with build tools is recommended - -#### Windows Setup - -1. Install Node.js 12.0 or newer. +1. Install [Node.js 16 or newer](https://nodejs.org/en/download/). 1. Download this repository using git in a command prompt ```cmd - git clone https://github.com/charlocharlie/markov-discord.git + git clone https://github.com/claabs/markov-discord.git ``` - or by just downloading and extracting the [project zip](https://github.com/charlocharlie/markov-discord/archive/master.zip) from GitHub. + or by just downloading and extracting the [project zip](https://github.com/claabs/markov-discord/archive/master.zip) from GitHub. 1. Open a command prompt in the `markov-discord` folder. ```sh - # Install Windows build tools (if you didn't install build tools with Node) - npm install --global windows-build-tools # NPM install non-development packages - npm install + npm ci --only=production # Build the Typescript npm run build + # Initialize the config + npm start ``` -1. Create a file called `config.json` in the project directory with the contents: - - ```json - { - "prefix":"!mark", - "game":"\"!mark help\" for help", - "token":"k5NzE2NDg1MTIwMjc0ODQ0Nj.DSnXwg.ttNotARealToken5p3WfDoUxhiH" - } - ``` - - Feel free to change the command prefix, game display. Add your bot token. +1. The program will create a `config/config.json` in the project folder. Open it and add your bot token. You may change any other values to your liking as well. Details for each configuration item can be found here: 1. Run the bot: ```sh npm start ``` -### Debian Linux - -#### Debian Requirements - -* Node.js 12.0+ -* Python 2.7 (for erlpack) -* C++ build tools (for erlpack) - -#### Download - -```sh -# Clone this repository -git clone https://github.com/charlocharlie/markov-discord.git -cd markov-discord -``` - -#### Configure - -Create a file called `config.json` in the project directory with the contents: - -```json -{ - "prefix":"!mark", - "game":"\"!mark help\" for help", - "token":"k5NzE2NDg1MTIwMjc0ODQ0Nj.DSnXwg.ttNotARealToken5p3WfDoUxhiH" -} -``` - -Feel free to change the command prefix, game display. Add your bot token. - -#### Install and Run - -```sh -# Install Node.js if you haven't already -wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash -nvm install node - -# NPM install non-development packages -npm install - -# If you run into build errors, install the following packages: -sudo apt-get install python -y -sudo apt-get install build-essential -y - -# Build the Typescript -npm run build - -# Start the program -npm start -``` - -### Docker - -#### Setup with Docker Hub image - -1. Install Docker for your OS. -1. Open a command prompts and run: - - ```sh - docker pull charlocharlie/markov-discord - docker run --rm -d charlocharlie/markov-discord:latest - ``` - -#### Setup with source - -1. Install Docker for your OS. -1. Download this repository using git in a command prompt - - ```sh - git clone https://github.com/charlocharlie/markov-discord.git - ``` - - or by just downloading and extracting the [project zip](https://github.com/charlocharlie/markov-discord/archive/master.zip) from GitHub. -1. Open a command prompt in the markov-discord folder and run this one-liner: - - ```sh - docker run --rm -e TOKEN=YOUR.BOT.TOKEN -v config:/usr/src/markbot/config -it $(docker build -q .) - # Be patient as the build output is suppressed - ``` - -## Changelog - -### 0.7.3 - -* Fix crash when fetched messages is empty -* Update docs -* Update dependencies - -### 0.7.2 - -* Fix @everyone replacement - -### 0.7.1 - -* Readme updates -* Config loading fix -* Fix min score -* Add generator options to config -* Document Node 12 update - -### 0.7.0 - -* Convert project to Typescript -* Optimize Docker build (smaller image) -* Load corpus from filesystem to reduce memory load - -### 0.6.2 - -* Fix MarkovDB not loading on boot - -### 0.6.1 - -* Fix bot crashing on scheduled regen - -### 0.6.0 - -* Added Docker deploy functionality. -* Moved config and database to `./config` directory. Existing configs will be migrated. -* Config-less support via bot token located in an environment variable. -* Update dependencies. -* Change corpus regen time to 4 AM. - -### 0.5.0 - -* Fixed bug where `!mark help` didn't work. -* Only admins can train. -* The bot responds when mentioned. -* The bot cannot mention @everyone. -* Added version number to help. -* Added `!mark tts` for a quieter TTS response. -* Readme overhaul. -* Simpler config loading. - -### 0.4.0 - -* Huge refactor. -* Added `!mark debug` which sends debug info alongside the message. -* Converted the fetchMessages function to async/await (updating the requirement to Node.js 8). -* Updated module versions. -* Added faster unique-array-by-property function -* Added linting and linted the project. - -### 0.3.0 - -* Added TTS support and random message attachments. -* Deleted messages no longer persist in the database longer than 24 hours. - -### 0.2.0 - -* Updated training algorithm and data structure. - -## Thanks - -Thanks to [BotMaker-for-Discord](https://github.com/CorySanin/BotMaker-for-Discord) which I used as a reference when during development. + And use the invite link printed to the logs. diff --git a/img/listen.png b/img/listen.png new file mode 100644 index 0000000000000000000000000000000000000000..8069924597fcd5e9791477b9679b5e77e67307ba GIT binary patch literal 47557 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�};_ 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 ZG%HrrDkI~Utq6cWZFK`^g{pn{{{eQU_zeI6 literal 0 HcmV?d00001 diff --git a/img/respond.png b/img/respond.png new file mode 100644 index 0000000000000000000000000000000000000000..fb8fd667653c7c38c1a26b846b8ae676ca6a2782 GIT binary patch literal 32982 zcmb6AbyQo=7d{GCph%J8T4-^KyF+m+?(S}Z;99{6(BKlF5Zv9RxCDn%9D+NA;Cl1< z{?=XhegAmZdhc2}$()>-S#$O?d(WP|pNUdemB+>;$9(bP1-7DsjOL3MuOP^B9QqsN zH)Ld<68ZBIs3|Y?qH>&aA9;gfC#fR&;zdpT+Xo9&fZK8AUFe;D2v>L(|;WrWLL1F!c&mDeRTbuYQxa1%%Pc zD?|#fW>>GD=O#~|uUD+6$7+3ALQ%3rCw5z4Cr3v|dC6lL z8YX*6{#TNND(ch&9FhP1_ehh74f20VycycEZ;Sr#>N->Ze^ze^`@}~M)m?EdUILIF z@KHfqBG$#>opABmB_CwRK#sgHE$9^8FT;wR;=lGu6-V|bAFZj~%@&TOkppP?iyT%> zL2@1Do0PYG`Ib*VEarUeY?E;KZ%nOd#`l@5Bhl4H?>?mY z$&vcD57-}6)2xrm%68f_^6S8tC7)PVuiPQ9^Po6%SNVQ(fySn$T0scw3cKDUV(00% zsy*+uxc9v#5}*_MdVu&A7UH_MPTU5|6mSP0BiE@Bt7VS6+>7Rr$La>VW>x2E1htzq zFAcsS*e=)cbaAs|Om z%eL{h?iV2>-a9N`g$iJ~;l!%(^TQy96r!s4J@*kD=GP)?i{o9H^T*0#z5QRiX*unl zq(Z|Rs0#zWFtwC>k~W#8^fE1m8%RNqD!&hxe4HO5xOyeBxc zx=xZiU-(?e*Vk<@c6O#L1_&NQe`s}i6}%u!)pe5gb`II-mjnU2^1=`w^KHk3^`|&U-L8BrABR5CK)hu5DWZA9;VbEQ^8&P3XgLnw2qt`b zcB`)YZ)2hE1}KR0D~ubzL79h6pA1f-XTM#=heo?k!3%t3YgJ_7KM)yKj|6|J+jFQ* z_Y8>Nwx-C(k~cB>684F|l+@R)M=@p5q@01>nU}{)*e0{b{|Sq>Z25A^hF}i#h9!!8 zgp8)%0>zATOfv3Yili%ozV({+gff?H!k@kOPkc`50qlXU0&!Gbku!E7z0FZ9E;CF= zR|Pw8skgf;@^6dmkdri2bhS`;4!a`qufNXkgKzBR@2O~}4Jg`>U}P6b*SL8L;;=c# z;-=L1F6aep+++9RbpR>H-N<5c_(77hb7#%%z*@zQ?coC>kem((ummYJU0yAkNXo&F%9 zUmGtbQWgA~Cwu&^r+W6u*dVwcC$Krf^afJ~-uAw=x=l;af6SMdo51V|Z}~XiS}c6k zZcKgJxrllxQXoyppTry4H z7F{FNCA|=wh=rG@eiCqv2J+wFTjB+hI1A8S%uGB-v>=++5_W=R-WKhc%Kbm6Sl5F* z;S0k;|IUwk^jnIt<~sLcI^6UIJ1-lm504$^I|_xbMy`GM|8%1TWNcgnu$`Tu9sgSZ zAD9zR zN=&|>Zr38o)VsB~-FWbYr$c;$U2(7|^yiQwQXe5sVYQ+tab}tczY*FjsE&%;70QmpwYuk9!F5OCKK;z5PCK5G(oqr2yya>A6aNHuiE*BY)V z;_>+}OB(ds;L`0rH|^kTPPev5*1r=TfFMWm)LmiIpiPAb-a5cyas;fn-n%-WyR=Dd zATckEuYYS2&=Z)r+Bk(y`gn0+2o&<6FkD}0K zd6_03c;Qhkkb~J4^9;xCnnvALDtQVe#L$$@f>D9leslV0sWpYP*yQr0ekHfYYd29^ zHb#SODg?yCQz8{Fo0m)8u5O$fS%&@b`f6A0+DLdX5F}MHjnQxmVM=Bf$0&~E9RO<>6p$6Wg zx9$PVQQr6J-4{W3xZPSjI|F~gZ8qgSB?og_L9-=mD35ozvP)McuIWYQ)#mQR?N_#3 zjDR-~p@vDNiL}+b7?cCnaqq3T4ehg46$6dw5~r<+ILlqn+SUGR@4j-PlgbnCV9H>3bASV=PNQ zCL>J7!Pay+B~Ft#CE|4vQ=Dn3@hI7Kds2GV zwb4dhNtPhuaIh4UxgA0M9IR}J`uA+dXpn$adjEc>jb%VsF7il& zs>QXi=%&=Ow0%&`WB|O$b>=YY=eBya&-O}@SfcB1q;|#(OY`bk;&ZZ{4%Jeh_^>2lvom7~=*>iGDqBy%c74kF>Fa=k4crO3>wM0;U_j$YC(T2r#ip*+bNYYP%v3&@mbO1w@Hubk3l;h-*J9BxeexY%+0}(xi&cy3 z4~n{0T&B-HuGIi>%h#Iw8;#3W4R_BX{;urg5{(OEXVCDr6VVuYey-y;nS6NJ;~GGu zHZ~OAg5V|>ZR2FoEoTD#DTA5A3SS(}lSi5uy{hps;=FRf?GCQ3$m7bM2n0{? zp~kFNNXd3MM%#9d<{ZNBj;7OSbC=FZ`phME*`S9lF3Z7fI}dX-RhbBq)`BmDo;$a- z&JisJS$-D!`8l>#Ox_E${ko&k%)&;Ve?{kau{M3Da1d{;SG_#-Ap!1{FniLsejFhbh%BfUrn>;PTZ`z0J zCXV^H(hvsx{K<7@EKNF5^aWaq!Ufse>sKDDO>1V|XoGp!xpuR_n>`|ob4Ks`1a+oW z{afNWx5e-OY+dk2ofcZ5?!c|sXgnH(s1!!Qmo%Fs0h?8bpR~2L?8>rW)`abrO0uO@ zM~Nl_a}{tq(P6H9B~nsao<7o+3wzgPsfHr6>Et)TCIi{6CKZEfw(BTV+k?t&l2$IB zZ%6AZGmBh0tEEc!x(A^VQL<(5v1}oU*mWMBmzINA_b$u1?RatdB7dd)@GJU4lZepM z`l7&cldj=NsTwM?)W=D!X<$wEtW`7 zgw4871J+;Z+r~1+X}b2XvmaZ>4HWpXqCAF*aAZeMf1Yenz?SkY0!4b;+pPxdREHo# z4=ULCT*l>qx902^jNT_FGc0jG*_l0L`_jk|KcV%x<+K@>`P8{3a?Q+xDwa%OVczZ} z^vQHRmtfoEG$Uo;oA$}hUCG=iuWwZS#%DL{Xz4WSi{1JDvj_4MAx>TpU z^>{J<#EZH1z)e=vMIASG+SFqd&{OSUSBzXIIP(S>fCygknFP%t`&^-E!ATBXnhK9W zTdOktMT{aLZu{6s{JPIq*a{C`S&De7uDJIl{!8-OlEeAVhGB`dqf-w_8cHP@s<-)} zhD8BApSVN8!#vba(NmkI@i}to);vP}AesRthRo5wZg-PE=~Q`kyNfrXW>Tl>p7U-T zl-AP*+t7l)aOOSs+n{X}BxqjUm0DrYL?o$>i`-ASk#bu)Ja~@mreV0v%aQ4|KYbfo z;-i&ND$H<=W%Bqn^AOgC&#FASZ6omV%0UMK8Y&&4+s$lB+|DHg3Lj2V-qM38fh(iH z%@j5KQRNbGi1SH(Tkd&ygWr-WZL|%M<|-4}!q!-#Woe-nzE7k*Ae)ayX1>pbkvU0G zl@V0Dzy{+@T1zgQBh~nV5TzeC&OU5hZ8q?BeT~}vsU`_qDMBbnDX($Nu&d@(^V++* zBD?We5?a*fqP?2H$2Y5Y;(;gB>=QN>h$HpGfU|9)rdf_>yAJoxCR}Gd2?hOATSeVh zgXmT{Pty3T(#>p;=fWfTx@Fb0i~O1=MXe%61vSz?+LzW@cCr;Ym#zY9N`Zc|)8+S( zeNWYkr(VH*GvazZ!;i4zTxWKo5`n*{isMgq|Jg6Dq7E}(`_MYaOMmoOdlwdaTypQF zD*FddY~E}<<@uvU`?h>$VGfr#c8;dce^ZTe|FXQF+-*?ZyOtxtGF*B6BTTZa75YqJ zGG!$j;Ayb;$%Cb#w(!3$i9B&Q6c*rylP|iu1NhbYL4FAg|MuJgVMKD(wzOq`+?fz~^^ZWJu z5tuzRYm)nJr(%khC+Ul8 zjElgTFDgZ>@T3!^h3k4a&4x@nxW>LLB~9*C}=$Bvq2G4 zZRc_Di=SIZA#)#Tb3h{u#2B3wPXvWz*o#xTK*ja;9}D@@NxgTWWmPl4tn;~ z^apEQ7VVt1mtMp^vOh@tX*?awLaRtahx8(T-5&N%+Fsh%2i?1G)?Jor*k9eLhjwwJ zTd=&LIdAy5*KYADyi)+zD!%J$x>-d}!k$aoS-%oUwEbN#&iLSs76(}l6qoL(&RV`> zgwM?n3x7LtO6YJ1_-A6OvL!P?R+6WSXGK+z>{08Hmw>h)jHl)y168j(58nnq>08fm za2BCL+i~O7pM1|+HOAD2nDy4)Puy|@mxEo5_6)WtXNeO}6ZQibwBbL|S2+yk}M4*rL69H1RXCF&UhpPu2!0~iYq!_Xk8=p0`p*Cs@F zq|iXBg7eO)iH(^a(r$28XyaO`Ex;p3lZ>7QO#m%(a$C8o>b?z5!N|J1|)lk5rFfv09zB7n*U_COmx z_@+%%zh5&dwdg6!R=bY-5Mn|+zcsew*;Y?SAIej5|Io5)#vi=b9J7=7Kjfi##sb#` zTxpeF5%&WYRG9F3Iev;r`^AC)(qh3v?C-XoAn5B?Ij-?P7qT>f7H+(O4j(egNkP?m z5j5wQc=nwhgofy2tCY7KZlKS7hrO}4E`LG2)z>7J2aHu#cO+$;PZ!)5^WyJwVQ9JC z%8%;L{hjt*!LQ!9q`4Ro^AHxx(kn6U{TSNu6tUQ__ZlGyn}TGkU(NHnWeo%_V-)cz zWl(A=3HGw+^3k+@k>9so(3Vh}1DhlYa|z^V%`#^tsa;7o#4TQj>R2;Kv<&!SB^abI z;zV{V!a|CnTz%|YB0Tl@GT9pP^-*071?L>U{s-_GRQSbCgkIv^=t9ikzznyjB z4_RGyOTogE>E<^Q)vE>C|f4cqx}js;X@Crp5oyIFpF zO>Qs!k22U0*`LSygVY^N^|XT;(e94TzOu(W9gCjeh`_b;?1=>tLmoJs8_$kZ{m%Ym zIYxIZNH-xm!NXsv{a%zlbY{6KNyFsuD~%dbAF0uON$-cV3$f8Zb|`pd}Em4WI7L4Audpl1)=eV6VMoR(=x=Zj-qD?zF?x>Jg6;GHe+ z>#k@8o{eGZcvf7r&6cI->sPq#fDANru~D#!EFgxVn6skno15qg)+g~95-(HA=vL(j zXtsLD0y?igKR&h|NN%sp>fP0VpiDW${9TJ94UL|fR9zE8?si6reZz_3X5vgb`_b5$ zeH)zlLZlkS;`P(<;AULm$C{quLN7iQSwXubX15^{>NIf`nWF+rdhGp;%?Rx^8B7xD zB-a$Buq;4ECPe3H$A<9Bsmk+U(mT~ZcF7K-6N}oMn!|%k3mA+V3B#gH<)eeb=qy~w zO^kajCgV1k#`>gaxSJDX?$PS?A)agGan{CaGA=_-(@>B(5P-1YqBb4Sd6MGc}R`;TQo@0sVQR3R+CyyfZCEZqn#!IezL%??LAtnJbr>%9Vi9&d8ldfQT z?Xn5Ao{v}QxjUm$5+CNT2BWa=68_o}=6syPCp9LDVXuctgSM{H+P>52nzr3C*Gvdy zWYJ#vK^DY9cS zD;T`~F_F~$FGrlRG99YnuXz zmf)~J=Q5r;kHKg$gBW-f1`1@dwcXGE=^?&7m#J~^rRoj$f-Iw=WzVnz9klUFZxb$; zn(D3{?ANC=lNU(CYM?JxfIu3}Y?Jn-cdGmqWe!R|RkLpwehP~hL%t8nzt$+fX;ZT6lej&HE52(f~P4Xqdo*9 zaH(5;BO_s-Ct`bXkR>8?hCay;Y zV>9v$-WhkZV}WUM`t<`ehej4Or4(K4XAp)Aqz#>&$q=fJ?-~WBksyPMo1!B*LJ~g3 zm&NTjzr2CZlgMy6;Qo*QLPVmQi01TIM1P%gwoJmKi4K{ltm_KWBw`Ze7!50AW$^oS z$K6N@9#st$Q_05TewFaOX+M+5SsK<@iinq^aHznwXJlrBfJ(VrNA?4*gGe~s9*nO> z?$2&lDgozQ@;mZ08sxX@_w!G=dTwN~<9JWTaVn2H-Fl-x@JF`w<2l#@IJ!Lo^+jQQ zen>R3iQ0l3WckW?9D6hK_-c#p{J1}Dy1s}Y5A78#k7u_`k`;r_+^IXSHWMVa^-a^s z3#O-LT@)7@`)COAWXt&g4gL&rl=LVvU5C$$BFbGteu<`jE9D@WXDt>)n-#FGspS{fr(XKX?Gxrg%h3j9b*wCi3fMH>@Soe5%My(d$HgE!SZ zFRTek#i?#1;$*YCtw0krP=?%_v=XK(Usn1-Rrz!bo^>7@90<=AUDh+rLB|C{M%5}P z&S+J#sv`p1-*qLT)T<-l4Woq&81GA`{IYAXhdU!Abb4XIfXnoNkWl>U%$cR9m?kz# zlFT+K5v-pa-{QAI0k^(ono#9(CrRs8;g0MuU7HA(AcfiGsEYys-=nO3X zC8VvVvY&Y+MBAF{xVUa>Mi2?u=2wd{+r zv7C*Doew-rb1P{$8yxp7g8U~1VFM8mE$?~C5slMwmO17y8lfJ=mvEqZI__co<yEvS4 z^Jam3k^ZO!ExrBi#oqfsiqS;%+BS*wTwnV!x+84jY|FdSxMN^1QTZkPXhe@J8SmSY zEcJ|<%$(`_z@yNT0r6@jJI!ke*|ZfrLE#+Dl^Q2CsI#bBVtNqhwHb&^mCDO!6*f6TOD z9Fqzw0m3DM#Ep4KXsuUcitjflB8^)x-t!;JPOL;s2AtxB;wlGL|0I(Wx_yAT(-O-jF^+#DlX<-Dx@@%lYH89f~V ze;!>sNsdU8>U58?gihB{f)cpI!lpk#K+cF*{$+mp*w8g*hw{X}lO|^=+ebeFi^iV2 zz>}~7xyNF!vPBZN5JjD`MWSe#H8&venJ4(Yb<8byE-Q4H%G13}GTwzd-P1m@Lx`t?+j2i2- zBHpGsZFKrdpvrVjG?vA)jQINFPxJSYz^b07Jikw!2egqHQsq4*(&tY(^B!?rU7f5Bp?1vC zRDWW!LwOaC{EBSAEn{CVtdAAJvFGu9A?G%prXOTRKL`lyzcB6YtgO>?k_BCznDLqSr z%!1?bx?T~_D~c-_g_+=D$~o%f-g~HFU3c+{KgvNpS=8MzwS1ka7T&5u^Kol?7+94b z4PmkC{ASk&=S`medE$@I`J+)=fVkYy9hIlbc}+Cv`&bVpVK4ex5~G;BFtfs2;^W%b zJ_k*-|2QPeWpuj>nHl%gNKz5X&7U7;>FR=yH1L1%Uvu2FZtlZ!rEb-e*mZFGW9Fnv z61-xcv*K)vNoO&2J~c>RmcG}hle3#GT|jMc@|Nvr6;p5O+}(lZe?H4M_b`vYO-@w$ zeCk?O@wYCqPpdiPE~%Wd(lgo`xNa##%q-x49X3(V(VyRb@)XV|V;N+lob zK+oJ-_%gBMBbRwRZBO+D$$i3d4CR%yFNm|(EFd7)JNO#@@mPJPi|o4+U#MAb#+&W} ziri8)Qb$x?c@sSrUUb)(aH6Gt{AuEb((r|yik1*0)hVrFGA-Aa-9I>vOUI~lRqb;8+tP#bRs8U<49MhCN)^2xsj(9c{VM>=!S*_S4N)w&UA z`-J5h0+>p59nIUycb*EAVh8?5$C|f4k+e2*|NrDcP1)nCSLg!SvaVm(#y3|TUF9N4 zVarbT@L7A_rr*V6nT{R%GbJrZ@)TfgZ>SK-p2|V8r~cn?%lv-*#|it7mL>;8@+|&e zwf+B5J^9{LQ2L-rzTb8eZx)Vnwn7=>iH7EhA0wlCWSzQ219anj|%2 zkj=6z%9lvV-+iPvYSH1(N%qo$uM3CU8R=I%Z=dQprFX_aQomX8v3Khy-U)hQe_v9O zDKJ!V{#!Pc&+x~oNmjqCX|iyzX>aoS`Q)v>Zc4gM(-On~czA@@v4C*i_hG-;DP*~! za8gN`5Awsi_FyHj>W`Z9XWv`MhZzRU#5}D13xRyC9gLSVvfMfNw#Jq=9`by7M_ zK{`wvyz#H_bCY}?^L&Log(8Up#2M+0#K#_{>3s=RamFE0)$3a=sGj$v~+3!;fS=&Ht68iQRmPGE@6q!EsJ#Bxt_JbB$Ty z{~x&#IDuiO(Ay303Z#x(rAZA63ziD`HZ7#kr-`x436{j%9TME9WP4_T({0jaIT{vu zl7m$(93cR4W|&H<8h@1po5RK(@NOci_nqo(pd5;4XW)3MmzqB{kr7rSThq?TBzG+l z1Md58B!%KpS8PiQg)ONqId{$sZ<_jDDfs>)Rkjp`@)R$42>SQ^Uf?0GG?hAK61)5(>#_P;`=-RIj%6#n>xGxT;d-=yYKv~Tz z6Z0<6|1mnRLjmEl$1m;LdI6p>-=J;icDUft?DGZXE!F%P+5IDy^WmLKNtz!&Wbq>) z5x_k)0QMu^IGiTF*XFJ`<{t$!x6rxrP29~ZBDp}~_|xJE89AH9n<{mSk?Vh1!8qGF z4;XR7we3SiR;>!hTB+-4XFLyfCg0Z}q&H(Wh}K`Bz~K6ikf*l=lv=n@%bQ0=L0obl zBSEJ*$FI8J3eM8C&zm#sv5ZIgVeX3hS~LynNpN)hpp>PH$rP;isO3OBzVHC-*dS zE%P+lJPY}^AQ?Ker_gh0Sz_3QwRrS{`}Ys6@1@eOj5K&H$uRjKQ8W#5xqvY| zCjB7vbG`ShSW@2{f2h}AaT2=n;)G?4$${Cc^7NnC{*eU{zf7cychD&QH*2GvcJ?;V zE~6yF#9gTfE3diUmTrQeDlr@+I)g2XWe5 zkd~M{cBc~4PJPpEeeDVP%8|dlK;P@?BCSdACS0dzvZQeFRKerF1kWxG2~cyMrkLh7 z1u>fpV;=tGNQtj?4wfQl7RwUNT7X_D>OM~G=MubfcxjEQTv3Akz95)7FO0xT~6?5qOyr&a*x9#E z@cdEjZ;j#>q9XQr9Z^-eS=zj^Y%j0+JV<2RQU~k9leg=f~6yq6_|M{Vm>u;`j%Zg!l z+y0L&g`of3R(6h+49pL-%^&`W<4|kUZ*?25OV3QG^!tb%o2@{sKz0^OcPig{Ym_&DTS zofQ@&DmDf;yfF-F=Pr1&gH;|* z#U`yj#fTeCG8FfPjC*}*bm1pMh@v%CvI|zS2aMe42uVk?I6XZy5m}#r3YpqWUVMQBnC!Qj6KB!QvWVfAlT}h5N zN*&y4u|yeCg>LsJ;}UNwPwWnx{9AW#&hOv3@lcaNs$z|{To->$l@y1mR)SW~(+CE< z)$5`P-MW`|SfsAyMZwU2D2N2DIKxY+Sl-77P_$WL&~A3IK@r%+-=~>H&*Qv{UZv@gJz7mr>5smZHKwM-6myE;fR&1IV9~mCvzIsdilDeVV!lwLQ??>s& z8}w2%;Uj?uQ7{Ugm(u!hw@yufAF24l9APSMeVpey7fUK2p2&`juk zc$b>M;Aw>6#^3A3jffQ$z(WORc?kcj*Gs9=fP%oGgjqWM%l~o>ywDHAK^4K<$ezrjblsZ ztIZg`HUq4p0ygBW^~aH){u~ZW>|zI*U$6RFEPB#n&v=mWt;Mx^QCNNco1G>RoL7Sd zKc~IJ;(W6_&(_;5KoEg7_`x96P(s2WJ1nvAm(l(BnL|a-uxE#e7thG43t7~NSu*f; zhKI}LhAC9Q#WvG48GN|b6xgEiMm!^GCb9*TU7g6!;*AV91Nlor?xo9(Yg_KmIRpUP zpQ;@nCC>KCSp)Yu9!}#k-#oZxg>azT9s8?r0*35C{+8!#Snq|1b1m5L^NV=B_NFOl z<-(%ZlDg&Yd@AxF5q&_D8 zto*DanjkJPZ4*dXpk(`b&D*9L-ZFCI?L+%;7c5vA^zJ1ko~q2NqKvm}-)4H!ZJYi0 zxnBy><`mJoZxTlR9@DZ&=w$vU$+#>yjT1uY^sV?uu3%jy9&v0%)WDy&A48r7e}0rE zw;tC;zkM)*_I+(yN6cRTOTXoL*nL3nvdb^G&Nja|2Jzo{zwt@4Z+pDP#HQfwZ?z*K zPvDi@DwdT|F88;k!f8K`=2Gc?W;SnMz$TDfdD@7<*h%!!E9XRkwZ?g~Eo~g%zWrB8 zuf`K#8cg;mD^~&I)*QNJrG<^0SH!Y#SfuM1)&b()bJ9r)qc&|e7yv=-qlX&JOTj(o zT@SM}O{`@jdvSWU<4QkQ-+NEnhMf-<)7|UUO3*_y9wa{Pys_noP9A7ce(DK%K4o}% zIAq8+y1HibW5OqxX=8)@apM1c`qYc1vA^Jh?)cZu^2=^~)>W22`71fa(!ZReY2$kf zzbvdk7rpZF@y{m}0Par$>M3O08yK@uMkI=kLg+AV-y2fAa(DZMMjprEc(!a2udVt0 z)qtO1lKzRz$Q+ZFgv95p`M9klWhB0V%Uno&7hYFZ1H%Erv|+YffIeAa?0x6^?1JRq_;Y#CtDU z-qKvv2FsyrzPGjF3GW>+wLgEGi&^KnqGm1F4ec35>jR?Pe}9YK5<#7AO+4Nt zgUKBHpxUz7;K_V7@ThhbrCv!$2Gu8b*aH4l=I9roC3srP)wxGGG*5DOGbT?yJ@7+d zkHTDop8R;6;vbWK?KD#)i;RLM!0Y zGVusAtb`_Y>lk%{rv9vJEF%ho(I#`s1krl*pPDKO3XMR<_9)-=JtGlSX>Z}zB|pxX zU$G$J(m{GF+8Q0=uOldGt+VB$_NP0lK60LENZ>K@Z}L0hQ$!WodvrGSEYvtrFI_0I zp%v9(KzejKbRSXnF`(6tXz|?V7lkcrmBz!v&#KPyO0G?EP(MJ6RS((x9w$TvDk}_q z$Al85B??u~{Uem*%6LAvBRVo0{9Xt#_c_ILA1tOPCo{($RuR)1%YdL@G+N(b#_OM9 zi&aBai%AN6@1lwN(y3*=ffXfiFAIZL!0@Js3#yvJ3l#!=cjC*$GDw_7u!n`k{M?tD!! zs>eO(r=)t_*^Z?aPnG!jE)riA6}8n15t4c8?{!2@onFA2`M19k6(r+9^|!yh`PfnX za5Gj2xVc;BXF8^}94ihv3TW~BOC-&Cdjm~1y%!nA8xMJEiPF=@$ikQ&a-!)lM`-1Y3RB$KB}G;<}NCVhHx)?FOfUO6W&@6rO5LkzTcsFH z)ELVzUFMX=ON3onuHRU~zYOrD5=irI3bG~G`tt--sGRYFkQVMu8X3`KgK!MDTF~k@X+}gmvwvAUsnzs73 zg6W`lq(A6YmvLGH5u=@U7<}aS+iYN7wDOP^NBNcDpU_ zAc73(hn^M!_#LMyX{mA|gMY~7`LkVvJ1WKQ+me;s!g$IJD5PusFQ}}s{JAESqdfE- zX6uE*^Gn75{z_O{hbe-c|h({wLaUKh6AM_XQM${cRK6>|TrE3UQ4-q=9S=?AtcG zmkL#8f%=|t!f5^NXdl{(m|ZEYWNI5m3557?$vtQxAkgYhQTAh}$l~|0|3c7c0I`0M zeBXhq>-Jz>YXr1VinKC2*-xI<-5*GMabSu=|CU(#q@E1iAZ2xfwG{Q$Kq9XPQaq2= zH_?Ig+ciS9=#Yn)8ZSKrS`vF4E(n~KrbxTT3SEFXN@0v}Ufg%Jy~urUx${08ghW_YHl698)D9(xy_PB?={*SZ0_;C37!ypjvv2sQG_!m79(&SNX1jh1 zkr8|rB8p49Cf}UT)Hxfd{|s`_dIfB~*=$<5{AM*qAC!4B_`#2Oe5cu8^wo@f^6z5) zf|{eVXu)<-6p}0c-)oE+q*5c12V*?>^sd~k{`GuM;(yTXu4nt3yI=lePN6X1E|SI3 zW4wtI4m}4#)h$kBZ^j={gC~sf_mf;m_OVXRlUyE`*-nxG9@Zk6xjN*iX!Pl541W0I zeRSg#aJtfoVgteB!Uc=Uw@wD9Nq`Lb5=02jhYjlIkie0yD#+IBwLcVL!MB$Ts*slO z-oYwzn7Yi$aPda)J5@E!eTQtR0yvWkGR>%g6XuuXTNNzrM%HY_P~))xXMS#Lcu)6# zB&t@5SyVPB514IvA-`e|9w$YaC3)#|Ble0sD2zK<@1ykU;t+%x?bH2sPbRRGX2+N1 z!K)BFWZ8_@-|qTh!$(SR73*1S9*fbmBqm+@y}c&0L}0Y7^qJ*8o@vdC&Ltf)8E)+q z?3iSgXj>Y*aVJKaNrrN|PlV$y)}+WZ7&!?TE;zzFVBgOUgPD7y8f$8qt8brnqI8@6 z3qL;HTf7deZKIOAx|HuW76LQKyAqbpP{d*6^!UV~@3sR0qKMb8vZJJai-M1f#2YJe z+WNEJsfvFZ7OlB3fYkup`%TYh%@c~#pvoHygPK66B3oIeK~k~ z)YReo&?G)=Y|sY@C;CNg6i_VRLW2B zGNENt9QFt-Wv(v{?;t5Nfw9{?p#Z4jGmHMeL$SEMJ$V1zluAcf$%YBP0>I!{*_R~Vm5TiKb_Z|>F-Dly}?HI9eDwSIJSkc4T)S{u>EaHIqssoEe z&|IMtR*NBc{02N;R&)UGlBd{!u{G4VyS|W@lMxQi75tD7d!Jm;c-lXh zs;p^S(>L=uYc=lwtoDUl#>-^|SwfXCpg4O5AF`hB^O=qAnNhJhBezvkOP2e}~%P{J1A!iq)Yh|M1#wHkg zaS@MgSk!x!ebcNNroU~7^ztd!oQvacds%4a1<;g;)qcQDFiE-nbw+x-6#`>49?of6 zLOR!Qszh~gZD6}n84#K&FSH)6ZD~PUldsQ|V3lqk*CfgQIa-&)L)FB^9*1BoFdvOV zbLU^XL4Lc$SwdCu0|mY;BY7yo;xcejWOqUAYqq-XpC4xe?1q6b;ODW+3(y!)n4nj6 z@x<<^k&D^$fcXA{NATjV@ss_IK%P3gE4U`FiNg5@XU^%H(e8@?f%BzzrKvY zM8nGbosgnN+W%R~UingVJN4~YfOcGXof5=Tmt-IR?4sfc^*ojIn`b)k<1c%h^1woz zU=j9OQh_^2tpj?|@4=6P=Gm(o9R8VYBSucpwXNIg~TtSIK|T${mq zEzw;^iPZ0l_lIP2DIEC~75!*0>XI*{?+W*zqTL!hc zg>9o1C{A&=1`ASLf)pz*!P){vimLRo$>{}&oGaWz5<9Vm4E{*##AuHCemf`zB16T0ip{v zn?`vE`3*+R@zx|1yyRJ_K(6~GfzDiJ{KGfbC0;ZTJ<_IJ=uLabY?s`H;x$v zHK@+t;{P)+NPVPY=bk3U8b~@i&z{+DAYH0Ewx11K#Ir;D54Kz+BtiTE5*wdAJa;Fg zz$@_7isCdLiL2$9Jymd%2;FG6N-Tlhmk(MiWi*df*h#gL!8l)POH~cd4s_@0n3~+C z<*wuH1%5^lEbluf1c894ZsjA)5~H?o(Vm5Z=at_g2THR@bfg(ME-w1LrFM{&waJaP zs`h1$HM6&GeB=GaNsR88Vig!cl!#-A0l)r8hQR({>IkN!?H!sV~BO z2l{|q&TM35w^P+sZ!;vFKU_1*y-;os2^2pPewE49rKTu(6%TH2(*5>oXJ0msuP$Pe z;q_0}^HF8t_)bZ*EC#SFSXTMm-GD$@5X-rZ#i8eO2h^C_8BhV7< zA8`2U_MlGkpRYn%AdXevvbtYXvd#|Sx_PmM(6-aRjJkx&&K3MS$c|^~oXK#Tyg%BC zt2cQ>fse4=YH8Pvd+%~%ATa)+7Y4^C2wtqQMvE28gkwnyLhKeQGv;(*(QAa zlVX|30+)YYN)Yb+9y8=*jm-^|>YA;!GI(jW2Rj-(JL)`2jZ74HB0Te48|1Qms5{f@ zVIR7I$C``j5gyV6d|0l@6Qmi0mv45e!7x05=W`cr9&zwR7YKdhbFcYKhRgK40@l9X zII;p3UD(1PM>RRPEhAT<$7a;N^%>WO&JLLHY^JCij@sy6W8S}OAB9=_j*p^L zNVtU#$6o=rb>|SmBwNMFx0HuleH?(C=a5@RjmNbRGg4pa#-9(jL2-pO=EP-rJ3X?y zC|}8mkGc$d(Lvw{00!A z4Uo61;>XQ!fBPBFEbldK@5!dh+^&so;|3H<^B(V^c5g>e?mt& zy#U&Xkxbb(ra+k)GU&Q4+MO@quNCh-LsAc{_qUEL5J%aIEBe6ux1gdvp8e^afV6C> z(Dqfj+-%{MF2Ec-bvT${bQ^H^ds=4!#O0e`Z1J{7A1nE3Qahvy&n$O6PUl`4m?!mg zh;k&n6fr_0J`ghI73%|Yew2%gllZeI|KNA;LYoqap3Gyh5nw_)vG|n%$Y^P@IxM{c zm-COfk~O8dbc!IR$+L_1CzBjEm%C76?Gf5mxiiRCgh5}nwp@I)o2V$vF{Lg4+M}k7 z*Iiv%Oh0A4EknAl$zb>k1~KqmEf(KS_0u^-Qc);RVWrn_s|>gtk;1&5 zgMQ7}m@Kk0e3(0{qo4jXAz(f^dZY4&es$*S+~vltKo;LbjvQzsD0$RDuZ`JD#p2Zs zz7KCV>%iNBhv*werNiQXk_JF7wIaxhL|_M?K<8OiE}Nj7>Ne%{i=y?KSg8T_c>nwR zrPjB6m{GEtmfkB6Ph@=9r0kQ52c2A9Tg_|}z7GQ{_>&tBRi)F#9(R>e^>6*way?u)$T?G4i(Pmg`OYKh7-+yNer!7&ojc2n0{Aiy?LOAZ zX%}l{5a(s5_oIw4mHSgaZ`Rygrkl4KiH0sAJa&M?ovd>o-!qG;?Fq8cAJqMgUN(Yu z5PP^l0h<|vIq6B%>z*EP+k10SPP%Km?ocEc?Nut{>=yj%=nWw0o#Bgq<}>b1g;sT6 zfkrFW5e8klG3~={vUiCOOjmUnTihbKr_2Tq>Nl~(wK=2EAOzP$ameAix(J3RS3}eNm67im4^iIzv}GU0-H$A zC>Ga!!nM*s2NVlVk33IWjC({<$MeWQh9pLM`YoGoTRyJvrAG1T8mQ{jN_NaqgEBR;OtbAjvrey5Cf;V`_Ot z_7;H7kCpG3q(;)g2kY-JBkF&!2TY2XoojlBgDfMlQRTFm+zNVF5qtt%tEH!Pn^tNj zOtRdZdD{pL5A(~OCn%A3H<9H6_|#DHF(1Sv_?z`sd7{SsyDR_JpD~;tmw$AbS+dm_$}wVg}VXuq(L9e-%w=h6;X`+$*cdUCB%;FHOa@)os(H6Sh-w z^|eReZv zD`U*BIk0q!D9^D-?t^wg*)GAW_QRlKy%>Y)TlfeDjQfl8>g5 zW{U#pahQTR9GS#kKYRBznN!v#dz`nzVoL9GX6!;A!%kGh z!M!Tbomp8{zbWx#+m4Yov=>(Aq1jQG%Qw>PsAJ*Uh;#S6`r7`DF652+kD1>c*Emod- z0@Sya6|!>)C8QOm?Yau;SHyaOiy9>_Kia_wsCsv=ce;2kDCyD|?z|Hu7GB$ei~6;f zzcz(byF|SzR<&~s8k><J-ND17EjiKu<<>ZPwQ;<9arYj=0O zMk;X41L8CZU0%n)vdEFSUKlKj?A&zzzsMI%*GqLs88mzk{KwS>6p{cZX#e^XZ>YD& zIZAY4zz(+3CyF-cyAa%L93;A(e6iYQ8J}?e5PQzCE&4nsP>m(mv_2?;{l})|g@fnO z@9gYGG}sAUQ%QX1{SDL7RWy5X#Q!IJM`$m5)ex%!KZpsxH)yFm?tafc+(m4Wu%dN}|S zezY}F(*J8;2Gr1?w(tX})it1 z#GImW`@Ws`CM_b(f4G8O840Z1{;c{myGZadQiuN5ZaJJLq@G6L_chN_S|uMi*gbjo zsmijHp!PbWGp*u_U~}A4zi>*WT0iz*n@3!Ke{Oh_B4|9Qkh{%CDXRPIrzSzPjN+z! zzeblWckWO}s3Y*@Nl}oEJ|2p4HjX6rOziu&>2CKEms8^Da!pCHuz|mHw%BvYpTMxn`Uqs7>kmle+U8*WC2~b> zWbXQ5b43fV%U4Z?zi9Y6f83_K5)iyD?y+>r?BRn1s;8gHpO4rli|hM^Ju(t5&W(Neb>b0O?^EO`nkpk$(=XL@>$b1jX#|fyH+-Ifp&t$>YQ*OYlAfHxhbwzNm~rq zI7kI`mhsE}<pD2%N6PZi1(Nf11nE&c!s=fq_+L>%YulzRr1s~4Z59wT9P60gf@^R^04OwPF^4_# zIjz=wZ&C|FlsSj)^a0&!A<8SLRHrHr)coJpb6G%knif4WZ48lf7gynO8$L*2-uo-$ z_E(Vx&QF&`hO-Z^L)x{~F4OoUk2hjJJ7y^WQn0lsLbbCd4tWgd_*C#j;>tq7rgMcs z_pnSMJ0`!fYYN7h__n(mT)TMH%?O`aw!H@Q2a!Ggxic9{utzshTdOJ_YHJfyA^DeO zzQwt6x0UNdcLJCEMA0hu!5#fdBKPQqM9sa<8ixeS5 zF%}1a9UGmiQ1Bm82o;YJZv(?|OK|7y+m=#Xj_kv{iM8ePwU o0nG$ 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 z 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 z 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" } }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -2628,12 +2635,30 @@ "node": ">=10" } }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "node_modules/marked": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", + "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/markov-strings-db": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.4.tgz", @@ -3485,6 +3510,17 @@ "node": ">=8" } }, + "node_modules/shiki": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz", + "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "5.2.0" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -3948,6 +3984,28 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typedoc": { + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.10.tgz", + "integrity": "sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==", + "dev": true, + "dependencies": { + "glob": "^7.2.0", + "lunr": "^2.3.9", + "marked": "^3.0.8", + "minimatch": "^3.0.4", + "shiki": "^0.9.12" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 12.10.0" + }, + "peerDependencies": { + "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x" + } + }, "node_modules/typeorm": { "version": "0.2.41", "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.41.tgz", @@ -4154,6 +4212,18 @@ "node": ">= 0.10" } }, + "node_modules/vscode-oniguruma": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", + "integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -6255,6 +6325,12 @@ "minimist": "^1.2.5" } }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -6308,12 +6384,24 @@ "yallist": "^4.0.0" } }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "marked": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", + "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", + "dev": true + }, "markov-strings-db": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/markov-strings-db/-/markov-strings-db-4.1.4.tgz", @@ -6945,6 +7033,17 @@ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, + "shiki": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz", + "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==", + "dev": true, + "requires": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "5.2.0" + } + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -7291,6 +7390,19 @@ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, + "typedoc": { + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.10.tgz", + "integrity": "sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==", + "dev": true, + "requires": { + "glob": "^7.2.0", + "lunr": "^2.3.9", + "marked": "^3.0.8", + "minimatch": "^3.0.4", + "shiki": "^0.9.12" + } + }, "typeorm": { "version": "0.2.41", "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.41.tgz", @@ -7392,6 +7504,18 @@ "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" }, + "vscode-oniguruma": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", + "integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==", + "dev": true + }, + "vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/package.json b/package.json index dfb85ee..1aafe06 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,14 @@ "description": "A conversational Markov chain bot for Discord", "main": "dist/index.js", "scripts": { - "start": "node dist/index.js", + "start": "NODE_ENV=production node dist/index.js", "start:ts": "ts-node src/index.ts", "build": "rimraf dist && tsc", "lint": "tsc --noEmit && eslint **/*.ts *.js", "docker:build": "docker build . -t charlocharlie/markov-discord:latest --target deploy", "docker:run": "docker run --rm -ti -v $(pwd)/config:/usr/app/config charlocharlie/markov-discord:latest", - "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js" + "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js", + "docs": "typedoc --out docs src/config/classes.ts" }, "repository": "https://github.com/claabs/markov-discord.git", "keywords": [ @@ -67,6 +68,7 @@ "prettier": "^2.5.1", "rimraf": "^3.0.2", "ts-node": "^10.4.0", + "typedoc": "^0.22.10", "types-package-json": "^2.0.39", "typescript": "^4.5.4" }, diff --git a/src/config/classes.ts b/src/config/classes.ts index 039ae43..60a6008 100644 --- a/src/config/classes.ts +++ b/src/config/classes.ts @@ -1,7 +1,15 @@ /* eslint-disable @typescript-eslint/no-empty-function, no-useless-constructor, max-classes-per-file */ import 'reflect-metadata'; import { Type } from 'class-transformer'; -import { IsString, IsOptional, IsEnum, IsArray, IsInt, IsDefined } from 'class-validator'; +import { + IsString, + IsOptional, + IsEnum, + IsArray, + IsInt, + IsDefined, + IsNotEmpty, +} from 'class-validator'; export enum LogLevel { SILENT = 'silent', @@ -31,7 +39,8 @@ export class AppConfig { */ @IsDefined() @IsString() - token = process.env.TOKEN as string; + @IsNotEmpty() + token = process.env.TOKEN || ''; /** * The command prefix used to trigger the bot commands (when not using slash commands) @@ -65,7 +74,7 @@ export class AppConfig { /** * A list of Discord user IDs that have owner permissions for the bot - * @example ['82684276755136512'] + * @example ["82684276755136512"] * @default [] * @env OWNER_IDS (comma separated) */ From 564c4f9c7c9e516e015559cfa36c5c226d322c32 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Wed, 5 Jan 2022 16:40:44 -0600 Subject: [PATCH 34/45] Prevent all mentions from message responses. Some other light refactoring. --- CHANGELOG.md | 1 + src/index.ts | 96 +++++++++++++++++++++++++++++----------------------- 2 files changed, 54 insertions(+), 43 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 500a268..1a98a21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ All notable changes to this project will be documented in this file. * Discord slash command support * Many more config options available at * Config file supports [JSON5](https://json5.org/) (comments, trailing commas, etc) +* Generated responses will now never ping a user or role, only just highlight their name ### 0.7.3 diff --git a/src/index.ts b/src/index.ts index 8cb9831..ca29730 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,18 +1,14 @@ -/* eslint-disable no-console */ import 'source-map-support/register'; import 'reflect-metadata'; import * as Discord from 'discord.js'; - import Markov, { MarkovGenerateOptions, MarkovConstructorOptions, AddDataProps, } from 'markov-strings-db'; - import { createConnection } from 'typeorm'; import { MarkovInputData } from 'markov-strings-db/dist/src/entity/MarkovInputData'; import type { PackageJsonPerson } from 'types-package-json'; - import makeEta from 'simple-eta'; import formatDistanceToNow from 'date-fns/formatDistanceToNow'; import addSeconds from 'date-fns/addSeconds'; @@ -376,7 +372,10 @@ async function generateResponse( const response = await markov.generate(markovGenerateOptions); L.info({ string: response.string }, 'Generated response text'); L.debug({ response }, 'Generated response object'); - const messageOpts: Discord.MessageOptions = { tts }; + const messageOpts: Discord.MessageOptions = { + tts, + allowedMentions: { repliedUser: false, parse: [] }, + }; const attachmentUrls = response.refs .filter((ref) => ref.custom && 'attachments' in ref.custom) .flatMap((ref) => (ref.custom as MarkovDataCustom).attachments); @@ -397,20 +396,26 @@ async function generateResponse( messageOpts.files = [{ attachment: getRandomElement(randomMessageAttachmentUrls) }]; } } - - response.string = response.string.replace(/@everyone/g, '@everyοne'); // Replace @everyone with a homoglyph 'o' messageOpts.content = response.string; const responseMessages: GenerateResponse = { message: messageOpts, }; if (debug) { - responseMessages.debug = { content: `\`\`\`\n${JSON.stringify(response, null, 2)}\n\`\`\`` }; + responseMessages.debug = { + content: `\`\`\`\n${JSON.stringify(response, null, 2)}\n\`\`\``, + allowedMentions: { repliedUser: false, parse: [] }, + }; } return responseMessages; } catch (err) { L.error(err); - return { error: { content: `\n\`\`\`\nERROR: ${err}\n\`\`\`` } }; + return { + error: { + content: `\n\`\`\`\nERROR: ${err}\n\`\`\``, + allowedMentions: { repliedUser: false, parse: [] }, + }, + }; } } @@ -498,6 +503,31 @@ function inviteMessage(): Discord.MessageOptions { return { embeds: [embed] }; } +async function handleResponseMessage( + generatedResponse: GenerateResponse, + message: Discord.Message +): Promise { + if (generatedResponse.message) await message.reply(generatedResponse.message); + if (generatedResponse.debug) await message.reply(generatedResponse.debug); + if (generatedResponse.error) await message.reply(generatedResponse.error); +} + +async function handleUnprivileged( + interaction: Discord.CommandInteraction | Discord.SelectMenuInteraction, + deleteReply = true +): Promise { + if (deleteReply) await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); +} + +async function handleNoGuild( + interaction: Discord.CommandInteraction | Discord.SelectMenuInteraction, + deleteReply = true +): Promise { + if (deleteReply) await interaction.deleteReply(); + await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); +} + client.on('ready', async (readyClient) => { L.info({ inviteUrl: generateInviteUrl() }, 'Bot logged in'); @@ -538,23 +568,17 @@ client.on('messageCreate', async (message) => { if (command === 'respond') { L.debug('Responding to legacy command'); const generatedResponse = await generateResponse(message); - if (generatedResponse.message) await message.reply(generatedResponse.message); - if (generatedResponse.debug) await message.reply(generatedResponse.debug); - if (generatedResponse.error) await message.reply(generatedResponse.error); + await handleResponseMessage(generatedResponse, message); } if (command === 'tts') { L.debug('Responding to legacy command tts'); const generatedResponse = await generateResponse(message, { tts: true }); - if (generatedResponse.message) await message.reply(generatedResponse.message); - if (generatedResponse.debug) await message.reply(generatedResponse.debug); - if (generatedResponse.error) await message.reply(generatedResponse.error); + await handleResponseMessage(generatedResponse, message); } if (command === 'debug') { L.debug('Responding to legacy command debug'); const generatedResponse = await generateResponse(message, { debug: true }); - if (generatedResponse.message) await message.reply(generatedResponse.message); - if (generatedResponse.debug) await message.reply(generatedResponse.debug); - if (generatedResponse.error) await message.reply(generatedResponse.error); + await handleResponseMessage(generatedResponse, message); } if (command === null) { if (!message.author.bot) { @@ -563,9 +587,7 @@ client.on('messageCreate', async (message) => { // <@!278354154563567636> how are you doing? const startSeed = message.content.replace(/<@!\d+>/g, '').trim(); const generatedResponse = await generateResponse(message, { startSeed }); - if (generatedResponse.message) await message.reply(generatedResponse.message); - if (generatedResponse.debug) await message.reply(generatedResponse.debug); - if (generatedResponse.error) await message.reply(generatedResponse.error); + await handleResponseMessage(generatedResponse, message); } if (await isValidChannel(message.channelId)) { @@ -598,6 +620,7 @@ client.on('messageUpdate', async (oldMessage, newMessage) => { await markov.addData([newMessage.content]); }); +// eslint-disable-next-line consistent-return client.on('interactionCreate', async (interaction) => { if (interaction.isCommand()) { L.info({ command: interaction.commandName }, 'Recieved slash command'); @@ -626,14 +649,10 @@ client.on('interactionCreate', async (interaction) => { await interaction.editReply(reply); } else if (subCommand === 'add') { if (!isModerator(interaction.member)) { - await interaction.deleteReply(); - await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); - return; + return handleUnprivileged(interaction); } if (!interaction.guildId) { - await interaction.deleteReply(); - await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); - return; + return handleNoGuild(interaction); } const channels = getChannelsFromInteraction(interaction); await addValidChannels(channels, interaction.guildId); @@ -642,14 +661,10 @@ client.on('interactionCreate', async (interaction) => { ); } else if (subCommand === 'remove') { if (!isModerator(interaction.member)) { - await interaction.deleteReply(); - await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); - return; + return handleUnprivileged(interaction); } if (!interaction.guildId) { - await interaction.deleteReply(); - await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); - return; + return handleNoGuild(interaction); } const channels = getChannelsFromInteraction(interaction); await removeValidChannels(channels, interaction.guildId); @@ -657,15 +672,13 @@ client.on('interactionCreate', async (interaction) => { `Removed ${channels.length} text channels from the list. Use \`/train\` to remove these channels from the past known messages.` ); } else if (subCommand === 'modify') { - await interaction.deleteReply(); if (!interaction.guild) { - await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); - return; + return handleNoGuild(interaction); } if (!isModerator(interaction.member)) { - await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); - return; + await handleUnprivileged(interaction); } + await interaction.deleteReply(); const dbTextChannels = await getTextChannels(interaction.guild); const row = new Discord.MessageActionRow().addComponents( new Discord.MessageSelectMenu() @@ -698,13 +711,10 @@ client.on('interactionCreate', async (interaction) => { await interaction.deferUpdate(); const { guild } = interaction; if (!isModerator(interaction.member)) { - await interaction.followUp({ content: INVALID_PERMISSIONS_MESSAGE, ephemeral: true }); - return; + return handleUnprivileged(interaction, false); } if (!guild) { - await interaction.deleteReply(); - await interaction.followUp({ content: INVALID_GUILD_MESSAGE, ephemeral: true }); - return; + return handleNoGuild(interaction, false); } const allChannels = From d670d30ae56c80e36c199238baaf4844f23c6e50 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 14:45:56 -0600 Subject: [PATCH 35/45] Add more v2 changes to changelog --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a98a21..2edf671 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ All notable changes to this project will be documented in this file. * Docker internal volume path moved from `/usr/src/markbot/config` to `/usr/app/config` * Database changed from JSON files to a SQLite database. You'll need to retrain the bot to use it again. * The bot must be explicitly granted permission to listen to a list of channels before using it. Configure it with `/listen`. -* Docker user changed from `root` to `node` +* Docker user changed from `root` to `node`. You may need to update your mounted volume's permissions. #### New Features @@ -21,7 +21,10 @@ All notable changes to this project will be documented in this file. * The bot can be restricted to only learn/listen from a strict list of channels * Bot responses can be seeded by a short phrase * Discord slash command support -* Many more config options available at +* Many new config options available at + * Owner IDs + * Log level + * Slash command name * Config file supports [JSON5](https://json5.org/) (comments, trailing commas, etc) * Generated responses will now never ping a user or role, only just highlight their name From 6b296811239193a55a7e7a6d66f9b8daf34c1171 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 15:05:32 -0600 Subject: [PATCH 36/45] Add userRoleIds config option --- CHANGELOG.md | 1 + src/config/classes.ts | 15 +++++++++++++++ src/index.ts | 27 ++++++++++++++++++++++++--- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2edf671..4f9b853 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ All notable changes to this project will be documented in this file. * Config option `prefix` renamed to `messageCommandPrefix` * Config option `game` renamed to `activity` +* Config option `role` renamed to `userRoleIds`. Changed from string to array of strings. * Docker internal volume path moved from `/usr/src/markbot/config` to `/usr/app/config` * Database changed from JSON files to a SQLite database. You'll need to retrain the bot to use it again. * The bot must be explicitly granted permission to listen to a list of channels before using it. Configure it with `/listen`. diff --git a/src/config/classes.ts b/src/config/classes.ts index 60a6008..4b93cfb 100644 --- a/src/config/classes.ts +++ b/src/config/classes.ts @@ -84,6 +84,21 @@ export class AppConfig { @IsOptional() ownerIds = process.env.OWNER_IDS ? process.env.OWNER_IDS.split(',').map((id) => id.trim()) : []; + /** + * If provided, the standard "generate response" command will only work for a user in this list of role IDs. + * Moderators and owners configured in `ownerIds` do not bypass this check, so make sure to add them to a valid role as well. + * @example ["734548250895319070"] + * @default [] + * @env USER_ROLE_IDS (comma separated) + */ + @IsArray() + @IsString({ each: true }) + @Type(() => String) + @IsOptional() + userRoleIds = process.env.USER_ROLE_IDS + ? process.env.USER_ROLE_IDS.split(',').map((id) => id.trim()) + : []; + /** * TZ name from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List * @example America/Chicago diff --git a/src/index.ts b/src/index.ts index ca29730..3adf757 100644 --- a/src/index.ts +++ b/src/index.ts @@ -130,7 +130,7 @@ async function removeValidChannels( } /** - * Checks if the author of a message as moderator-like permissions. + * Checks if the author of a command has moderator-like permissions. * @param {GuildMember} member Sender of the message * @return {Boolean} True if the sender is a moderator. * @@ -154,6 +154,23 @@ function isModerator(member: Discord.GuildMember | APIInteractionGuildMember | n return true; } +/** + * Checks if the author of a command has a role in the `userRoleIds` config option (if present). + * @param {GuildMember} member Sender of the message + * @return {Boolean} True if the sender is a moderator. + * + */ +function isAllowedUser(member: Discord.GuildMember | APIInteractionGuildMember | null): boolean { + if (!config.userRoleIds.length) return true; + if (!member) return false; + if (member instanceof Discord.GuildMember) { + return config.userRoleIds.some((p) => member.roles.cache.has(p)); + } + // TODO: How to parse API permissions? + L.debug({ permissions: member.permissions }); + return true; +} + type MessageCommands = 'respond' | 'train' | 'help' | 'invite' | 'debug' | 'tts' | null; /** @@ -359,11 +376,15 @@ async function generateResponse( const { tts = false, debug = false, startSeed } = options || {}; if (!interaction.guildId) { L.warn('Received an interaction without a guildId'); - return { message: { content: INVALID_GUILD_MESSAGE } }; + return { error: { content: INVALID_GUILD_MESSAGE } }; } if (!interaction.channelId) { L.warn('Received an interaction without a channelId'); - return { message: { content: 'This action must be performed within a text channel.' } }; + return { error: { content: 'This action must be performed within a text channel.' } }; + } + if (!isAllowedUser(interaction.member)) { + L.info('Member does not have permissions to generate a response'); + return { error: { content: INVALID_PERMISSIONS_MESSAGE } }; } const markov = await getMarkovByGuildId(interaction.guildId); From 457baee96d6819f22b8954bc7799203836f69a64 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 16:25:55 -0600 Subject: [PATCH 37/45] Support thread messages. Resolves #23. Improved edit and delete support (switched to tags). Remove embed when train command is finished. --- src/index.ts | 143 ++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 112 insertions(+), 31 deletions(-) diff --git a/src/index.ts b/src/index.ts index 3adf757..6595540 100644 --- a/src/index.ts +++ b/src/index.ts @@ -72,9 +72,25 @@ async function getMarkovByGuildId(guildId: string): Promise { return markov; } -async function isValidChannel(channelId: string): Promise { - const channel = await Channel.findOne(channelId); - return channel?.listen || false; +/** + * Returns a thread channels parent guild channel ID, otherwise it just returns a channel ID + */ +function getGuildChannelId(channel: Discord.TextBasedChannel): string | null { + if (channel.isThread()) { + return channel.parentId; + } + return channel.id; +} + +async function isValidChannel(channel: Discord.TextBasedChannel): Promise { + const channelId = getGuildChannelId(channel); + if (!channelId) return false; + const dbChannel = await Channel.findOne(channelId); + return dbChannel?.listen || false; +} + +function isHumanAuthoredMessage(message: Discord.Message | Discord.PartialMessage): boolean { + return !(message.author?.bot || message.system); } async function getValidChannels(guild: Discord.Guild): Promise { @@ -206,8 +222,10 @@ function messageToData(message: Discord.Message): AddDataProps { let custom: MarkovDataCustom | undefined; if (attachmentUrls.length) custom = { attachments: attachmentUrls }; const tags: string[] = [message.id]; - if (message.channelId) tags.push(message.channelId); - if (message.guildId) tags.push(message.guildId); + if (message.channel.isThread()) tags.push(message.channelId); // Add thread channel ID + const channelId = getGuildChannelId(message.channel); + if (channelId) tags.push(channelId); // Add guild channel ID + if (message.guildId) tags.push(message.guildId); // Add guild ID return { string: message.content, custom, @@ -286,28 +304,79 @@ async function saveGuildMessageHistory( const channelEta = makeEta({ autostart: true, min: 0, max: 1, historyTimeConstant: 30 }); while (keepGoing) { - let messages; + let allBatchMessages = new Discord.Collection>(); + let channelBatchMessages: Discord.Collection>; try { // eslint-disable-next-line no-await-in-loop - messages = await channel.messages.fetch({ + channelBatchMessages = await channel.messages.fetch({ before: oldestMessageID, limit: PAGE_SIZE, }); } catch (err) { L.error({ before: oldestMessageID, limit: PAGE_SIZE }, 'Error retreiving messages'); L.error(err); - break; + break; // Give up on this channel } - const nonBotMessageFormatted = messages.filter((elem) => !elem.author.bot).map(messageToData); - L.trace({ oldestMessageID }, `Saving ${nonBotMessageFormatted.length} messages`); + + // Gather any thread messages if present in this message batch + const threadChannels = channelBatchMessages + .filter((m) => m.hasThread) + .map((m) => m.thread) + .filter((c): c is Discord.ThreadChannel => c !== null); + if (threadChannels.length > 0) { + L.debug(`Found ${threadChannels.length} threads. Reading into them.`); + // eslint-disable-next-line no-restricted-syntax + for (const threadChannel of threadChannels) { + let oldestThreadMessageID: string | undefined; + let keepGoingThread = true; + L.debug({ channelId: threadChannel.id }, `Training from thread`); + + while (keepGoingThread) { + let threadBatchMessages: Discord.Collection>; + try { + // eslint-disable-next-line no-await-in-loop + threadBatchMessages = await threadChannel.messages.fetch({ + before: oldestThreadMessageID, + limit: PAGE_SIZE, + }); + } catch (err) { + L.error( + { before: oldestThreadMessageID, limit: PAGE_SIZE }, + 'Error retreiving thread messages' + ); + L.error(err); + break; // Give up on this thread + } + L.trace( + { threadMessagesCount: threadBatchMessages.size }, + `Found some thread messages` + ); + const lastThreadMessage = threadBatchMessages.last(); + allBatchMessages = allBatchMessages.concat(threadBatchMessages); // Add the thread messages to this message batch to be included in later processing + if (!lastThreadMessage || threadBatchMessages.size < PAGE_SIZE) { + keepGoingThread = false; + } else { + oldestThreadMessageID = lastThreadMessage.id; + } + } + } + } + + allBatchMessages = allBatchMessages.concat(channelBatchMessages); + + // Filter and data map messages to be ready for addition to the corpus + const humanAuthoredMessages = allBatchMessages + .filter((m) => isHumanAuthoredMessage(m)) + .map(messageToData); + L.trace({ oldestMessageID }, `Saving ${humanAuthoredMessages.length} messages`); // eslint-disable-next-line no-await-in-loop - await markov.addData(nonBotMessageFormatted); + await markov.addData(humanAuthoredMessages); L.trace('Finished saving messages'); - messagesCount += nonBotMessageFormatted.length; - const lastMessage = messages.last(); + messagesCount += humanAuthoredMessages.length; + const lastMessage = channelBatchMessages.last(); // Update tracking metrics - if (!lastMessage || messages.size < PAGE_SIZE) { + if (!lastMessage || channelBatchMessages.size < PAGE_SIZE) { keepGoing = false; if (completedChannelsField.value === 'None') completedChannelsField.value = ''; completedChannelsField.value += `\n • <#${channel.id}>`; @@ -315,7 +384,7 @@ async function saveGuildMessageHistory( oldestMessageID = lastMessage.id; } currentChannelField.value = `<#${channel.id}>`; - if (!firstMessageDate) firstMessageDate = messages.first()?.createdTimestamp; + if (!firstMessageDate) firstMessageDate = channelBatchMessages.first()?.createdTimestamp; const oldestMessageDate = lastMessage?.createdTimestamp; if (firstMessageDate && oldestMessageDate) { const channelAge = firstMessageDate - channelCreateDate; @@ -378,10 +447,6 @@ async function generateResponse( L.warn('Received an interaction without a guildId'); return { error: { content: INVALID_GUILD_MESSAGE } }; } - if (!interaction.channelId) { - L.warn('Received an interaction without a channelId'); - return { error: { content: 'This action must be performed within a text channel.' } }; - } if (!isAllowedUser(interaction.member)) { L.info('Member does not have permissions to generate a response'); return { error: { content: INVALID_PERMISSIONS_MESSAGE } }; @@ -573,7 +638,14 @@ client.on('warn', (m) => L.warn(m)); client.on('error', (m) => L.error(m)); client.on('messageCreate', async (message) => { - if (!(message.guild && message.channel instanceof Discord.TextChannel)) return; + if ( + !( + message.guild && + (message.channel instanceof Discord.TextChannel || + message.channel instanceof Discord.ThreadChannel) + ) + ) + return; const command = validateMessage(message); if (command !== null) L.info({ command }, 'Recieved message command'); if (command === 'help') { @@ -602,7 +674,7 @@ client.on('messageCreate', async (message) => { await handleResponseMessage(generatedResponse, message); } if (command === null) { - if (!message.author.bot) { + if (isHumanAuthoredMessage(message)) { if (client.user && message.mentions.has(client.user)) { L.debug('Responding to mention'); // <@!278354154563567636> how are you doing? @@ -611,7 +683,7 @@ client.on('messageCreate', async (message) => { await handleResponseMessage(generatedResponse, message); } - if (await isValidChannel(message.channelId)) { + if (await isValidChannel(message.channel)) { L.debug('Listening'); const markov = await getMarkovByGuildId(message.channel.guildId); await markov.addData([messageToData(message)]); @@ -621,26 +693,35 @@ client.on('messageCreate', async (message) => { }); client.on('messageDelete', async (message) => { - if (message.author?.bot) return; - if (!(await isValidChannel(message.channelId))) return; - if (!(message.guildId && message.content)) return; + if (!isHumanAuthoredMessage(message)) return; + if (!(await isValidChannel(message.channel))) return; + if (!message.guildId) return; L.debug(`Deleting message ${message.id}`); const markov = await getMarkovByGuildId(message.guildId); - await markov.removeStrings([message.content]); + await markov.removeTags([message.id]); }); client.on('messageUpdate', async (oldMessage, newMessage) => { - if (oldMessage.author?.bot) return; - if (!(await isValidChannel(oldMessage.channelId))) return; - if (!(oldMessage.guildId && oldMessage.content && newMessage.content)) return; + if (!isHumanAuthoredMessage(oldMessage)) return; + if (!(await isValidChannel(oldMessage.channel))) return; + if (!(oldMessage.guildId && newMessage.content)) return; L.debug(`Editing message ${oldMessage.id}`); const markov = await getMarkovByGuildId(oldMessage.guildId); - await markov.removeStrings([oldMessage.content]); + await markov.removeTags([oldMessage.id]); await markov.addData([newMessage.content]); }); +client.on('threadDelete', async (thread) => { + if (!(await isValidChannel(thread))) return; + if (!thread.guildId) return; + + L.debug(`Deleting thread messages ${thread.id}`); + const markov = await getMarkovByGuildId(thread.guildId); + await markov.removeTags([thread.id]); +}); + // eslint-disable-next-line consistent-return client.on('interactionCreate', async (interaction) => { if (interaction.isCommand()) { @@ -725,7 +806,7 @@ client.on('interactionCreate', async (interaction) => { } else if (interaction.commandName === trainCommand.name) { await interaction.deferReply(); const responseMessage = await saveGuildMessageHistory(interaction); - await interaction.editReply({ content: responseMessage }); + await interaction.editReply({ content: responseMessage, embeds: [] }); } } else if (interaction.isSelectMenu()) { if (interaction.customId === 'listen-modify-select') { From 43516687e91bd2ddb75c09de3a4291c66df28672 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 16:31:42 -0600 Subject: [PATCH 38/45] Clarify JSON5 extension support --- .gitignore | 2 +- CHANGELOG.md | 2 +- src/config/classes.ts | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 8d1d733..8c36e5b 100644 --- a/.gitignore +++ b/.gitignore @@ -67,4 +67,4 @@ config.json error.json markovDB.json -config +/config/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f9b853..e3062d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,7 +26,7 @@ All notable changes to this project will be documented in this file. * Owner IDs * Log level * Slash command name -* Config file supports [JSON5](https://json5.org/) (comments, trailing commas, etc) +* Config file supports [JSON5](https://json5.org/) (comments, trailing commas, etc). It also may use the `.json5` file extension if you prefer. * Generated responses will now never ping a user or role, only just highlight their name ### 0.7.3 diff --git a/src/config/classes.ts b/src/config/classes.ts index 4b93cfb..bb1002f 100644 --- a/src/config/classes.ts +++ b/src/config/classes.ts @@ -21,6 +21,7 @@ export enum LogLevel { } /** + * The config file supports [JSON5](https://json5.org/) syntax. It supports both `.json` and `.json5` extensions if you prefer one over the other. * @example ```jsonc * { * "token": "k5NzE2NDg1MTIwMjc0ODQ0Nj.DSnXwg.ttNotARealToken5p3WfDoUxhiH", From f778341927dcb8e717d52fe86e4700cdaa0fec08 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 16:48:28 -0600 Subject: [PATCH 39/45] Update deps --- package-lock.json | 318 ++++++++++++++++++++++++---------------------- package.json | 10 +- 2 files changed, 172 insertions(+), 156 deletions(-) diff --git a/package-lock.json b/package-lock.json index a0a48b4..ddae33d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,7 +18,7 @@ "class-validator": "^0.13.2", "date-fns": "^2.28.0", "discord-api-types": "^0.26.1", - "discord.js": "^13.5.0", + "discord.js": "^13.5.1", "dotenv": "^10.0.0", "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", @@ -34,14 +34,14 @@ "zlib-sync": "^0.1.7" }, "devDependencies": { - "@types/node": "^16.11.17", + "@types/node": "^16.11.19", "@types/validator": "^13.7.1", - "@typescript-eslint/eslint-plugin": "^5.8.1", - "@typescript-eslint/parser": "^5.8.1", + "@typescript-eslint/eslint-plugin": "^5.9.0", + "@typescript-eslint/parser": "^5.9.0", "eslint": "^8.6.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.25.3", + "eslint-plugin-import": "^2.25.4", "eslint-plugin-prettier": "^4.0.0", "prettier": "^2.5.1", "rimraf": "^3.0.2", @@ -301,9 +301,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==" + "version": "16.11.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.19.tgz", + "integrity": "sha512-BPAcfDPoHlRQNKktbsbnpACGdypPFBuX4xQlsWDE7B8XXcfII+SpOLay3/qZmCLb39kV5S1RTYwXdkx2lwLYng==" }, "node_modules/@types/node-fetch": { "version": "2.5.12", @@ -334,13 +334,14 @@ "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.8.1.tgz", - "integrity": "sha512-wTZ5oEKrKj/8/366qTM366zqhIKAp6NCMweoRONtfuC07OAU9nVI2GZZdqQ1qD30WAAtcPdkH+npDwtRFdp4Rw==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.0.tgz", + "integrity": "sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ==", "dev": true, "dependencies": { - "@typescript-eslint/experimental-utils": "5.8.1", - "@typescript-eslint/scope-manager": "5.8.1", + "@typescript-eslint/experimental-utils": "5.9.0", + "@typescript-eslint/scope-manager": "5.9.0", + "@typescript-eslint/type-utils": "5.9.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -366,15 +367,15 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.1.tgz", - "integrity": "sha512-fbodVnjIDU4JpeXWRDsG5IfIjYBxEvs8EBO8W1+YVdtrc2B9ppfof5sZhVEDOtgTfFHnYQJDI8+qdqLYO4ceww==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.0.tgz", + "integrity": "sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.8.1", - "@typescript-eslint/types": "5.8.1", - "@typescript-eslint/typescript-estree": "5.8.1", + "@typescript-eslint/scope-manager": "5.9.0", + "@typescript-eslint/types": "5.9.0", + "@typescript-eslint/typescript-estree": "5.9.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -390,14 +391,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.8.1.tgz", - "integrity": "sha512-K1giKHAjHuyB421SoXMXFHHVI4NdNY603uKw92++D3qyxSeYvC10CBJ/GE5Thpo4WTUvu1mmJI2/FFkz38F2Gw==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.9.0.tgz", + "integrity": "sha512-/6pOPz8yAxEt4PLzgbFRDpZmHnXCeZgPDrh/1DaVKOjvn/UPMlWhbx/gA96xRi2JxY1kBl2AmwVbyROUqys5xQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.8.1", - "@typescript-eslint/types": "5.8.1", - "@typescript-eslint/typescript-estree": "5.8.1", + "@typescript-eslint/scope-manager": "5.9.0", + "@typescript-eslint/types": "5.9.0", + "@typescript-eslint/typescript-estree": "5.9.0", "debug": "^4.3.2" }, "engines": { @@ -417,13 +418,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.8.1.tgz", - "integrity": "sha512-DGxJkNyYruFH3NIZc3PwrzwOQAg7vvgsHsHCILOLvUpupgkwDZdNq/cXU3BjF4LNrCsVg0qxEyWasys5AiJ85Q==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz", + "integrity": "sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.8.1", - "@typescript-eslint/visitor-keys": "5.8.1" + "@typescript-eslint/types": "5.9.0", + "@typescript-eslint/visitor-keys": "5.9.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -433,10 +434,36 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.9.0.tgz", + "integrity": "sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/experimental-utils": "5.9.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/types": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.8.1.tgz", - "integrity": "sha512-L/FlWCCgnjKOLefdok90/pqInkomLnAcF9UAzNr+DSqMC3IffzumHTQTrINXhP1gVp9zlHiYYjvozVZDPleLcA==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz", + "integrity": "sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -447,13 +474,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.1.tgz", - "integrity": "sha512-26lQ8l8tTbG7ri7xEcCFT9ijU5Fk+sx/KRRyyzCv7MQ+rZZlqiDPtMKWLC8P7o+dtCnby4c+OlxuX1tp8WfafQ==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz", + "integrity": "sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.8.1", - "@typescript-eslint/visitor-keys": "5.8.1", + "@typescript-eslint/types": "5.9.0", + "@typescript-eslint/visitor-keys": "5.9.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -474,12 +501,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.1.tgz", - "integrity": "sha512-SWgiWIwocK6NralrJarPZlWdr0hZnj5GXHIgfdm8hNkyKvpeQuFyLP6YjSIe9kf3YBIfU6OHSZLYkQ+smZwtNg==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz", + "integrity": "sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/types": "5.9.0", "eslint-visitor-keys": "^3.0.0" }, "engines": { @@ -1243,9 +1270,9 @@ } }, "node_modules/discord.js": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.5.0.tgz", - "integrity": "sha512-K+ZcB0f+wA1ZzDhz3hlaAi4Ap7jSvVEUZ+U29T4DMoiNNUv22F4vu1byrOq8GyyLLDFiZ3iSudea0MvSHu3fQA==", + "version": "13.5.1", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.5.1.tgz", + "integrity": "sha512-ejEG5MXzB0eda9Nt+VzqgdvDWVO5U/GynGzq6DRPLaCH1yyn2YRU9J+vCMl77pWA1rzYGX+b/9RI31x0wt3qXA==", "dependencies": { "@discordjs/builders": "^0.11.0", "@discordjs/collection": "^0.4.0", @@ -1549,14 +1576,13 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", - "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", + "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", "dev": true, "dependencies": { "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" + "find-up": "^2.1.0" }, "engines": { "node": ">=4" @@ -1572,9 +1598,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", - "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", "dev": true, "dependencies": { "array-includes": "^3.1.4", @@ -1582,14 +1608,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.1", + "eslint-module-utils": "^2.7.2", "has": "^1.0.3", "is-core-module": "^2.8.0", "is-glob": "^4.0.3", "minimatch": "^3.0.4", "object.values": "^1.1.5", "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" + "tsconfig-paths": "^3.12.0" }, "engines": { "node": ">=4" @@ -1821,9 +1847,9 @@ "dev": true }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.10.tgz", + "integrity": "sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1833,7 +1859,7 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-glob/node_modules/glob-parent": { @@ -2125,16 +2151,16 @@ } }, "node_modules/globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { @@ -2238,9 +2264,9 @@ ] }, "node_modules/ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, "engines": { "node": ">= 4" @@ -3158,18 +3184,6 @@ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" }, - "node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/prebuild-install": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.0.tgz", @@ -4665,9 +4679,9 @@ "dev": true }, "@types/node": { - "version": "16.11.17", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.17.tgz", - "integrity": "sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==" + "version": "16.11.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.19.tgz", + "integrity": "sha512-BPAcfDPoHlRQNKktbsbnpACGdypPFBuX4xQlsWDE7B8XXcfII+SpOLay3/qZmCLb39kV5S1RTYwXdkx2lwLYng==" }, "@types/node-fetch": { "version": "2.5.12", @@ -4698,13 +4712,14 @@ "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" }, "@typescript-eslint/eslint-plugin": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.8.1.tgz", - "integrity": "sha512-wTZ5oEKrKj/8/366qTM366zqhIKAp6NCMweoRONtfuC07OAU9nVI2GZZdqQ1qD30WAAtcPdkH+npDwtRFdp4Rw==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.9.0.tgz", + "integrity": "sha512-qT4lr2jysDQBQOPsCCvpPUZHjbABoTJW8V9ZzIYKHMfppJtpdtzszDYsldwhFxlhvrp7aCHeXD1Lb9M1zhwWwQ==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "5.8.1", - "@typescript-eslint/scope-manager": "5.8.1", + "@typescript-eslint/experimental-utils": "5.9.0", + "@typescript-eslint/scope-manager": "5.9.0", + "@typescript-eslint/type-utils": "5.9.0", "debug": "^4.3.2", "functional-red-black-tree": "^1.0.1", "ignore": "^5.1.8", @@ -4714,55 +4729,66 @@ } }, "@typescript-eslint/experimental-utils": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.1.tgz", - "integrity": "sha512-fbodVnjIDU4JpeXWRDsG5IfIjYBxEvs8EBO8W1+YVdtrc2B9ppfof5sZhVEDOtgTfFHnYQJDI8+qdqLYO4ceww==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.9.0.tgz", + "integrity": "sha512-ZnLVjBrf26dn7ElyaSKa6uDhqwvAi4jBBmHK1VxuFGPRAxhdi18ubQYSGA7SRiFiES3q9JiBOBHEBStOFkwD2g==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.8.1", - "@typescript-eslint/types": "5.8.1", - "@typescript-eslint/typescript-estree": "5.8.1", + "@typescript-eslint/scope-manager": "5.9.0", + "@typescript-eslint/types": "5.9.0", + "@typescript-eslint/typescript-estree": "5.9.0", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/parser": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.8.1.tgz", - "integrity": "sha512-K1giKHAjHuyB421SoXMXFHHVI4NdNY603uKw92++D3qyxSeYvC10CBJ/GE5Thpo4WTUvu1mmJI2/FFkz38F2Gw==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.9.0.tgz", + "integrity": "sha512-/6pOPz8yAxEt4PLzgbFRDpZmHnXCeZgPDrh/1DaVKOjvn/UPMlWhbx/gA96xRi2JxY1kBl2AmwVbyROUqys5xQ==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.8.1", - "@typescript-eslint/types": "5.8.1", - "@typescript-eslint/typescript-estree": "5.8.1", + "@typescript-eslint/scope-manager": "5.9.0", + "@typescript-eslint/types": "5.9.0", + "@typescript-eslint/typescript-estree": "5.9.0", "debug": "^4.3.2" } }, "@typescript-eslint/scope-manager": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.8.1.tgz", - "integrity": "sha512-DGxJkNyYruFH3NIZc3PwrzwOQAg7vvgsHsHCILOLvUpupgkwDZdNq/cXU3BjF4LNrCsVg0qxEyWasys5AiJ85Q==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.9.0.tgz", + "integrity": "sha512-DKtdIL49Qxk2a8icF6whRk7uThuVz4A6TCXfjdJSwOsf+9ree7vgQWcx0KOyCdk0i9ETX666p4aMhrRhxhUkyg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.8.1", - "@typescript-eslint/visitor-keys": "5.8.1" + "@typescript-eslint/types": "5.9.0", + "@typescript-eslint/visitor-keys": "5.9.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.9.0.tgz", + "integrity": "sha512-uVCb9dJXpBrK1071ri5aEW7ZHdDHAiqEjYznF3HSSvAJXyrkxGOw2Ejibz/q6BXdT8lea8CMI0CzKNFTNI6TEQ==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "5.9.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.8.1.tgz", - "integrity": "sha512-L/FlWCCgnjKOLefdok90/pqInkomLnAcF9UAzNr+DSqMC3IffzumHTQTrINXhP1gVp9zlHiYYjvozVZDPleLcA==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.9.0.tgz", + "integrity": "sha512-mWp6/b56Umo1rwyGCk8fPIzb9Migo8YOniBGPAQDNC6C52SeyNGN4gsVwQTAR+RS2L5xyajON4hOLwAGwPtUwg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.1.tgz", - "integrity": "sha512-26lQ8l8tTbG7ri7xEcCFT9ijU5Fk+sx/KRRyyzCv7MQ+rZZlqiDPtMKWLC8P7o+dtCnby4c+OlxuX1tp8WfafQ==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.9.0.tgz", + "integrity": "sha512-kxo3xL2mB7XmiVZcECbaDwYCt3qFXz99tBSuVJR4L/sR7CJ+UNAPrYILILktGj1ppfZ/jNt/cWYbziJUlHl1Pw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.8.1", - "@typescript-eslint/visitor-keys": "5.8.1", + "@typescript-eslint/types": "5.9.0", + "@typescript-eslint/visitor-keys": "5.9.0", "debug": "^4.3.2", "globby": "^11.0.4", "is-glob": "^4.0.3", @@ -4771,12 +4797,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "5.8.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.1.tgz", - "integrity": "sha512-SWgiWIwocK6NralrJarPZlWdr0hZnj5GXHIgfdm8hNkyKvpeQuFyLP6YjSIe9kf3YBIfU6OHSZLYkQ+smZwtNg==", + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.9.0.tgz", + "integrity": "sha512-6zq0mb7LV0ThExKlecvpfepiB+XEtFv/bzx7/jKSgyXTFD7qjmSu1FoiS0x3OZaiS+UIXpH2vd9O89f02RCtgw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.8.1", + "@typescript-eslint/types": "5.9.0", "eslint-visitor-keys": "^3.0.0" } }, @@ -5333,9 +5359,9 @@ "integrity": "sha512-T5PdMQ+Y1MEECYMV5wmyi9VEYPagEDEi4S0amgsszpWY0VB9JJ/hEvM6BgLhbdnKky4gfmZEXtEEtojN8ZKJQQ==" }, "discord.js": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.5.0.tgz", - "integrity": "sha512-K+ZcB0f+wA1ZzDhz3hlaAi4Ap7jSvVEUZ+U29T4DMoiNNUv22F4vu1byrOq8GyyLLDFiZ3iSudea0MvSHu3fQA==", + "version": "13.5.1", + "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.5.1.tgz", + "integrity": "sha512-ejEG5MXzB0eda9Nt+VzqgdvDWVO5U/GynGzq6DRPLaCH1yyn2YRU9J+vCMl77pWA1rzYGX+b/9RI31x0wt3qXA==", "requires": { "@discordjs/builders": "^0.11.0", "@discordjs/collection": "^0.4.0", @@ -5601,14 +5627,13 @@ } }, "eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", - "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", + "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", "dev": true, "requires": { "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" + "find-up": "^2.1.0" }, "dependencies": { "debug": { @@ -5623,9 +5648,9 @@ } }, "eslint-plugin-import": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", - "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -5633,14 +5658,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.1", + "eslint-module-utils": "^2.7.2", "has": "^1.0.3", "is-core-module": "^2.8.0", "is-glob": "^4.0.3", "minimatch": "^3.0.4", "object.values": "^1.1.5", "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" + "tsconfig-paths": "^3.12.0" }, "dependencies": { "debug": { @@ -5786,9 +5811,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.10.tgz", + "integrity": "sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -6031,16 +6056,16 @@ } }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, @@ -6100,9 +6125,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", - "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "import-fresh": { @@ -6786,15 +6811,6 @@ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, "prebuild-install": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.0.tgz", diff --git a/package.json b/package.json index 1aafe06..1d5a7e0 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "class-validator": "^0.13.2", "date-fns": "^2.28.0", "discord-api-types": "^0.26.1", - "discord.js": "^13.5.0", + "discord.js": "^13.5.1", "dotenv": "^10.0.0", "erlpack": "github:discord/erlpack", "fs-extra": "^10.0.0", @@ -56,14 +56,14 @@ "zlib-sync": "^0.1.7" }, "devDependencies": { - "@types/node": "^16.11.17", + "@types/node": "^16.11.19", "@types/validator": "^13.7.1", - "@typescript-eslint/eslint-plugin": "^5.8.1", - "@typescript-eslint/parser": "^5.8.1", + "@typescript-eslint/eslint-plugin": "^5.9.0", + "@typescript-eslint/parser": "^5.9.0", "eslint": "^8.6.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.25.3", + "eslint-plugin-import": "^2.25.4", "eslint-plugin-prettier": "^4.0.0", "prettier": "^2.5.1", "rimraf": "^3.0.2", From a6a81b0211fa6596e52f63192e805f885f11b15b Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 17:12:38 -0600 Subject: [PATCH 40/45] Fix some issues with mass training --- src/index.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/index.ts b/src/index.ts index 6595540..a6c002c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -257,9 +257,10 @@ async function saveGuildMessageHistory( const messageContent = `Parsing past messages from ${channels.length} channel(s).`; + const NO_COMPLETED_CHANNELS_TEXT = 'None'; const completedChannelsField: Discord.EmbedFieldData = { name: 'Completed Channels', - value: 'None', + value: NO_COMPLETED_CHANNELS_TEXT, inline: true, }; const currentChannelField: Discord.EmbedFieldData = { @@ -376,10 +377,14 @@ async function saveGuildMessageHistory( const lastMessage = channelBatchMessages.last(); // Update tracking metrics - if (!lastMessage || channelBatchMessages.size < PAGE_SIZE) { + if (!lastMessage?.id || channelBatchMessages.size < PAGE_SIZE) { keepGoing = false; - if (completedChannelsField.value === 'None') completedChannelsField.value = ''; - completedChannelsField.value += `\n • <#${channel.id}>`; + const channelIdListItem = ` • <#${channel.id}>`; + if (completedChannelsField.value === NO_COMPLETED_CHANNELS_TEXT) + completedChannelsField.value = channelIdListItem; + else { + completedChannelsField.value += `\n${channelIdListItem}`; + } } else { oldestMessageID = lastMessage.id; } @@ -806,7 +811,7 @@ client.on('interactionCreate', async (interaction) => { } else if (interaction.commandName === trainCommand.name) { await interaction.deferReply(); const responseMessage = await saveGuildMessageHistory(interaction); - await interaction.editReply({ content: responseMessage, embeds: [] }); + await interaction.followUp({ content: responseMessage }); } } else if (interaction.isSelectMenu()) { if (interaction.customId === 'listen-modify-select') { From 2237d344b7c04db23f682efda12f41e19094d756 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 17:27:34 -0600 Subject: [PATCH 41/45] Add pm2 to non-docker run --- README.md | 2 +- package-lock.json | 2724 +++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 +- 3 files changed, 2727 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 21eed8f..0da1014 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ Running this bot in Docker is the easiest way to ensure it runs as expected and ```sh # NPM install non-development packages - npm ci --only=production + npm ci # Build the Typescript npm run build # Initialize the config diff --git a/package-lock.json b/package-lock.json index ddae33d..f1b0f58 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,6 +43,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.4", "eslint-plugin-prettier": "^4.0.0", + "pm2": "^5.1.2", "prettier": "^2.5.1", "rimraf": "^3.0.2", "ts-node": "^10.4.0", @@ -222,6 +223,248 @@ "node": ">= 8" } }, + "node_modules/@opencensus/core": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz", + "integrity": "sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q==", + "dev": true, + "dependencies": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@opencensus/core/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@opencensus/propagation-b3": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", + "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", + "dev": true, + "dependencies": { + "@opencensus/core": "^0.0.8", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@opencensus/propagation-b3/node_modules/@opencensus/core": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", + "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", + "dev": true, + "dependencies": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@opencensus/propagation-b3/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@pm2/agent": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.1.tgz", + "integrity": "sha512-QKHMm6yexcvdDfcNE7PL9D6uEjoQPGRi+8dh+rc4Hwtbpsbh5IAvZbz3BVGjcd4HaX6pt2xGpOohG7/Y2L4QLw==", + "dev": true, + "dependencies": { + "async": "~3.2.0", + "chalk": "~3.0.0", + "dayjs": "~1.8.24", + "debug": "~4.3.1", + "eventemitter2": "~5.0.1", + "fast-json-patch": "^3.0.0-1", + "fclone": "~1.0.11", + "nssocket": "0.6.0", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.0", + "proxy-agent": "~5.0.0", + "semver": "~7.2.0", + "ws": "~7.4.0" + } + }, + "node_modules/@pm2/agent/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@pm2/agent/node_modules/semver": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", + "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pm2/agent/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@pm2/io": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz", + "integrity": "sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==", + "dev": true, + "dependencies": { + "@opencensus/core": "0.0.9", + "@opencensus/propagation-b3": "0.0.8", + "async": "~2.6.1", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "require-in-the-middle": "^5.0.0", + "semver": "6.3.0", + "shimmer": "^1.2.0", + "signal-exit": "^3.0.3", + "tslib": "1.9.3" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/@pm2/io/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/@pm2/io/node_modules/eventemitter2": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", + "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "dev": true + }, + "node_modules/@pm2/io/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@pm2/io/node_modules/tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + }, + "node_modules/@pm2/js-api": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz", + "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==", + "dev": true, + "dependencies": { + "async": "^2.6.3", + "axios": "^0.21.0", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "ws": "^7.0.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@pm2/js-api/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/@pm2/js-api/node_modules/eventemitter2": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", + "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "dev": true + }, + "node_modules/@pm2/js-api/node_modules/ws": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", + "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@pm2/pm2-version-check": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", + "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", + "dev": true, + "dependencies": { + "debug": "^4.3.1" + } + }, "node_modules/@sapphire/async-queue": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz", @@ -256,6 +499,15 @@ "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", @@ -547,6 +799,18 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -563,6 +827,21 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/amp": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", + "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=", + "dev": true + }, + "node_modules/amp-message": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", + "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", + "dev": true, + "dependencies": { + "amp": "0.3.1" + } + }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -599,6 +878,19 @@ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/app-root-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", @@ -755,6 +1047,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", + "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", + "dev": true + }, + "node_modules/async-listener": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", + "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", + "dev": true, + "dependencies": { + "semver": "^5.3.0", + "shimmer": "^1.1.0" + }, + "engines": { + "node": "<=0.11.8 || >0.11.10" + } + }, + "node_modules/async-listener/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -768,6 +1100,15 @@ "node": ">=8.0.0" } }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -803,6 +1144,15 @@ "tar": "^6.1.11" } }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -834,6 +1184,24 @@ "node": ">= 6" } }, + "node_modules/blessed": { + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", + "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk=", + "dev": true, + "bin": { + "blessed": "bin/tput.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/bodec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", + "integrity": "sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw=", + "dev": true + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -895,6 +1263,15 @@ "node": ">=6.14.2" } }, + "node_modules/bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -940,6 +1317,45 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -1028,6 +1444,31 @@ "node": ">=10" } }, + "node_modules/cli-tableau": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", + "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", + "dev": true, + "dependencies": { + "chalk": "3.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/cli-tableau/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -1099,6 +1540,12 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -1115,6 +1562,16 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, + "node_modules/continuation-local-storage": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", + "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", + "dev": true, + "dependencies": { + "async-listener": "^0.6.0", + "emitter-listener": "^1.1.1" + } + }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -1126,6 +1583,15 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, + "node_modules/cron": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", + "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", + "dev": true, + "dependencies": { + "moment-timezone": "^0.5.x" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -1140,6 +1606,21 @@ "node": ">= 8" } }, + "node_modules/culvert": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", + "integrity": "sha1-lQL18BVKLVoioCPnn3HMk2+m728=", + "dev": true + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/date-fns": { "version": "2.28.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", @@ -1160,6 +1641,12 @@ "node": "*" } }, + "node_modules/dayjs": { + "version": "1.8.36", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", + "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==", + "dev": true + }, "node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -1216,6 +1703,21 @@ "node": ">= 0.4" } }, + "node_modules/degenerator": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz", + "integrity": "sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ==", + "dev": true, + "dependencies": { + "ast-types": "^0.13.2", + "escodegen": "^1.8.1", + "esprima": "^4.0.0", + "vm2": "^3.9.3" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1229,6 +1731,15 @@ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -1355,6 +1866,15 @@ "node": ">= 6" } }, + "node_modules/emitter-listener": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", + "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", + "dev": true, + "dependencies": { + "shimmer": "^1.2.0" + } + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -1461,6 +1981,79 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/eslint": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", @@ -1766,6 +2359,19 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", @@ -1826,6 +2432,12 @@ "node": ">=0.10.0" } }, + "node_modules/eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=", + "dev": true + }, "node_modules/expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -1874,6 +2486,12 @@ "node": ">= 6" } }, + "node_modules/fast-json-patch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.0.tgz", + "integrity": "sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA==", + "dev": true + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1908,6 +2526,12 @@ "reusify": "^1.0.4" } }, + "node_modules/fclone": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", + "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA=", + "dev": true + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -1968,6 +2592,26 @@ "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, + "node_modules/follow-redirects": { + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", + "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -2015,6 +2659,57 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "dev": true, + "dependencies": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ftp/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "node_modules/ftp/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ftp/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2099,6 +2794,76 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-uri": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", + "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "data-uri-to-buffer": "3", + "debug": "4", + "file-uri-to-path": "2", + "fs-extra": "^8.1.0", + "ftp": "^0.3.10" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/get-uri/node_modules/file-uri-to-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", + "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/get-uri/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/get-uri/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/get-uri/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/git-node-fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", + "integrity": "sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=", + "dev": true + }, + "node_modules/git-sha1": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", + "integrity": "sha1-WZrBkrcYdYJeE6RF86bgURjC90U=", + "dev": true + }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -2244,6 +3009,61 @@ "node": "*" } }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -2330,6 +3150,12 @@ "node": ">= 0.4" } }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -2342,6 +3168,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -2551,6 +3389,18 @@ "node": ">=10" } }, + "node_modules/js-git": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", + "integrity": "sha1-UvplWrYYd9bxB578ZTS1VPMeVEQ=", + "dev": true, + "dependencies": { + "bodec": "^0.1.0", + "culvert": "^0.1.2", + "git-sha1": "^0.1.2", + "pako": "^0.2.5" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2574,6 +3424,13 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "optional": true + }, "node_modules/json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", @@ -2605,6 +3462,15 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", + "dev": true, + "engines": { + "node": ">=0.2.0" + } + }, "node_modules/leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -2644,12 +3510,27 @@ "node": ">=4" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", + "dev": true, + "engines": { + "node": ">=0.8.6" + } + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -2804,6 +3685,33 @@ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, + "node_modules/module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is=", + "dev": true + }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.34", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", + "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", + "dev": true, + "dependencies": { + "moment": ">= 2.9.0" + }, + "engines": { + "node": "*" + } + }, "node_modules/mri": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", @@ -2817,6 +3725,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -2843,6 +3757,41 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "node_modules/needle": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", + "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "dev": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/node-abi": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.5.0.tgz", @@ -2875,6 +3824,15 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -2886,6 +3844,25 @@ "set-blocking": "~2.0.0" } }, + "node_modules/nssocket": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", + "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", + "dev": true, + "dependencies": { + "eventemitter2": "~0.4.14", + "lazy": "~1.0.11" + }, + "engines": { + "node": ">= 0.10.x" + } + }, + "node_modules/nssocket/node_modules/eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + }, "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -3032,6 +4009,46 @@ "node": ">=4" } }, + "node_modules/pac-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", + "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4", + "get-uri": "3", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "5", + "pac-resolver": "^5.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "5" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pac-resolver": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz", + "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==", + "dev": true, + "dependencies": { + "degenerator": "^3.0.1", + "ip": "^1.1.5", + "netmask": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -3115,6 +4132,38 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidusage": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", + "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pidusage/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/pino": { "version": "7.6.2", "resolved": "https://registry.npmjs.org/pino/-/pino-7.6.2.tgz", @@ -3184,6 +4233,141 @@ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" }, + "node_modules/pm2": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/pm2/-/pm2-5.1.2.tgz", + "integrity": "sha512-2nJQeCWjkN0WnTkWctaoZpqrJTiUN/Icw76IMVHHzPhr/p7yQYlEQgHzlL5IFWxO2N1HdBNXNdZft2p4HUmUcA==", + "dev": true, + "dependencies": { + "@pm2/agent": "~2.0.0", + "@pm2/io": "~5.0.0", + "@pm2/js-api": "~0.6.7", + "@pm2/pm2-version-check": "latest", + "async": "~3.2.0", + "blessed": "0.1.81", + "chalk": "3.0.0", + "chokidar": "^3.5.1", + "cli-tableau": "^2.0.0", + "commander": "2.15.1", + "cron": "1.8.2", + "dayjs": "~1.8.25", + "debug": "^4.3.1", + "enquirer": "2.3.6", + "eventemitter2": "5.0.1", + "fclone": "1.0.11", + "mkdirp": "1.0.4", + "needle": "2.4.0", + "pidusage": "2.0.21", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.1", + "pm2-deploy": "~1.0.2", + "pm2-multimeter": "^0.1.2", + "promptly": "^2", + "semver": "^7.2", + "source-map-support": "0.5.19", + "sprintf-js": "1.1.2", + "vizion": "~2.2.1", + "yamljs": "0.3.0" + }, + "bin": { + "pm2": "bin/pm2", + "pm2-dev": "bin/pm2-dev", + "pm2-docker": "bin/pm2-docker", + "pm2-runtime": "bin/pm2-runtime" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "pm2-sysmonit": "^1.2.8" + } + }, + "node_modules/pm2-axon": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", + "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", + "dev": true, + "dependencies": { + "amp": "~0.3.1", + "amp-message": "~0.1.1", + "debug": "^4.3.1", + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=5" + } + }, + "node_modules/pm2-axon-rpc": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", + "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", + "dev": true, + "dependencies": { + "debug": "^4.3.1" + }, + "engines": { + "node": ">=5" + } + }, + "node_modules/pm2-deploy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", + "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", + "dev": true, + "dependencies": { + "run-series": "^1.1.8", + "tv4": "^1.3.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pm2-multimeter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", + "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=", + "dev": true, + "dependencies": { + "charm": "~0.1.1" + } + }, + "node_modules/pm2-sysmonit": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz", + "integrity": "sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==", + "dev": true, + "optional": true, + "dependencies": { + "async": "^3.2.0", + "debug": "^4.3.1", + "pidusage": "^2.0.21", + "systeminformation": "^5.7", + "tx2": "~1.0.4" + } + }, + "node_modules/pm2/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pm2/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/prebuild-install": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.0.tgz", @@ -3262,6 +4446,55 @@ "node": ">=0.4.0" } }, + "node_modules/promptly": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", + "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=", + "dev": true, + "dependencies": { + "read": "^1.0.4" + } + }, + "node_modules/proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", + "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.0", + "debug": "4", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^5.0.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^5.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/proxy-agent/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -3305,6 +4538,21 @@ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, + "node_modules/raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dev": true, + "dependencies": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -3327,6 +4575,18 @@ "node": ">=0.10.0" } }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dev": true, + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -3341,6 +4601,18 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/real-require": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", @@ -3374,6 +4646,17 @@ "node": ">=0.10.0" } }, + "node_modules/require-in-the-middle": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz", + "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.12.0" + } + }, "node_modules/resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", @@ -3449,6 +4732,26 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/run-series": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", + "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -3462,6 +4765,12 @@ "node": ">=10" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -3491,6 +4800,12 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", @@ -3535,6 +4850,12 @@ "vscode-textmate": "5.2.0" } }, + "node_modules/shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "dev": true + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -3611,6 +4932,44 @@ "node": ">=8" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dev": true, + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/sonic-boom": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.4.1.tgz", @@ -3644,6 +5003,21 @@ "node": ">= 10.x" } }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", @@ -3757,6 +5131,33 @@ "node": ">=8" } }, + "node_modules/systeminformation": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.10.0.tgz", + "integrity": "sha512-9m05qqR8sQzWpW1q1/BXUiz1bnUXh7NkK/+w0MoSX7+dURYLj6e4zAkuBBWyTCKnhJjRsQXpoXiJCnakpZdJVA==", + "dev": true, + "optional": true, + "os": [ + "darwin", + "linux", + "win32", + "freebsd", + "openbsd", + "netbsd", + "sunos", + "android" + ], + "bin": { + "systeminformation": "lib/cli.js" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "Buy me a coffee", + "url": "https://www.buymeacoffee.com/systeminfo" + } + }, "node_modules/tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", @@ -3862,6 +5263,15 @@ "node": ">=8.0" } }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -3974,6 +5384,25 @@ "node": "*" } }, + "node_modules/tv4": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", + "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/tx2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz", + "integrity": "sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==", + "dev": true, + "optional": true, + "dependencies": { + "json-stringify-safe": "^5.0.1" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -4186,6 +5615,15 @@ "node": ">= 10.0.0" } }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -4212,6 +5650,16 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -4226,6 +5674,42 @@ "node": ">= 0.10" } }, + "node_modules/vizion": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", + "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", + "dev": true, + "dependencies": { + "async": "^2.6.3", + "git-node-fs": "^1.0.0", + "ini": "^1.3.5", + "js-git": "^0.7.8" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vizion/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/vm2": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.5.tgz", + "integrity": "sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng==", + "dev": true, + "bin": { + "vm2": "bin/vm2" + }, + "engines": { + "node": ">=6.0" + } + }, "node_modules/vscode-oniguruma": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", @@ -4382,6 +5866,15 @@ "node": ">=4.0" } }, + "node_modules/xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -4395,6 +5888,35 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "node_modules/yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, + "bin": { + "json2yaml": "bin/json2yaml", + "yaml2json": "bin/yaml2json" + } + }, + "node_modules/yamljs/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/yamljs/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, "node_modules/yargs": { "version": "17.3.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", @@ -4614,6 +6136,197 @@ "fastq": "^1.6.0" } }, + "@opencensus/core": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.9.tgz", + "integrity": "sha512-31Q4VWtbzXpVUd2m9JS6HEaPjlKvNMOiF7lWKNmXF84yUcgfAFL5re7/hjDmdyQbOp32oGc+RFV78jXIldVz6Q==", + "dev": true, + "requires": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@opencensus/propagation-b3": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/propagation-b3/-/propagation-b3-0.0.8.tgz", + "integrity": "sha512-PffXX2AL8Sh0VHQ52jJC4u3T0H6wDK6N/4bg7xh4ngMYOIi13aR1kzVvX1sVDBgfGwDOkMbl4c54Xm3tlPx/+A==", + "dev": true, + "requires": { + "@opencensus/core": "^0.0.8", + "uuid": "^3.2.1" + }, + "dependencies": { + "@opencensus/core": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@opencensus/core/-/core-0.0.8.tgz", + "integrity": "sha512-yUFT59SFhGMYQgX0PhoTR0LBff2BEhPrD9io1jWfF/VDbakRfs6Pq60rjv0Z7iaTav5gQlttJCX2+VPxFWCuoQ==", + "dev": true, + "requires": { + "continuation-local-storage": "^3.2.1", + "log-driver": "^1.2.7", + "semver": "^5.5.0", + "shimmer": "^1.2.0", + "uuid": "^3.2.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@pm2/agent": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@pm2/agent/-/agent-2.0.1.tgz", + "integrity": "sha512-QKHMm6yexcvdDfcNE7PL9D6uEjoQPGRi+8dh+rc4Hwtbpsbh5IAvZbz3BVGjcd4HaX6pt2xGpOohG7/Y2L4QLw==", + "dev": true, + "requires": { + "async": "~3.2.0", + "chalk": "~3.0.0", + "dayjs": "~1.8.24", + "debug": "~4.3.1", + "eventemitter2": "~5.0.1", + "fast-json-patch": "^3.0.0-1", + "fclone": "~1.0.11", + "nssocket": "0.6.0", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.0", + "proxy-agent": "~5.0.0", + "semver": "~7.2.0", + "ws": "~7.4.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "semver": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.2.3.tgz", + "integrity": "sha512-utbW9Z7ZxVvwiIWkdOMLOR9G/NFXh2aRucghkVrEMJWuC++r3lCkBC3LwqBinyHzGMAJxY5tn6VakZGHObq5ig==", + "dev": true + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true, + "requires": {} + } + } + }, + "@pm2/io": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz", + "integrity": "sha512-3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==", + "dev": true, + "requires": { + "@opencensus/core": "0.0.9", + "@opencensus/propagation-b3": "0.0.8", + "async": "~2.6.1", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "require-in-the-middle": "^5.0.0", + "semver": "6.3.0", + "shimmer": "^1.2.0", + "signal-exit": "^3.0.3", + "tslib": "1.9.3" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "eventemitter2": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", + "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", + "dev": true + } + } + }, + "@pm2/js-api": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/@pm2/js-api/-/js-api-0.6.7.tgz", + "integrity": "sha512-jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==", + "dev": true, + "requires": { + "async": "^2.6.3", + "axios": "^0.21.0", + "debug": "~4.3.1", + "eventemitter2": "^6.3.1", + "ws": "^7.0.0" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "eventemitter2": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", + "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "dev": true + }, + "ws": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", + "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", + "dev": true, + "requires": {} + } + } + }, + "@pm2/pm2-version-check": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz", + "integrity": "sha512-SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==", + "dev": true, + "requires": { + "debug": "^4.3.1" + } + }, "@sapphire/async-queue": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.9.tgz", @@ -4634,6 +6347,12 @@ "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, "@tsconfig/node10": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", @@ -4825,6 +6544,15 @@ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -4837,6 +6565,21 @@ "uri-js": "^4.2.2" } }, + "amp": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", + "integrity": "sha1-at+NWKdPNh6CwfqNOJwHnhOfxH0=", + "dev": true + }, + "amp-message": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", + "integrity": "sha1-p48cmJlQh602GSpBKY5NtJ49/EU=", + "dev": true, + "requires": { + "amp": "0.3.1" + } + }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -4861,6 +6604,16 @@ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, "app-root-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", @@ -4983,6 +6736,39 @@ "es-abstract": "^1.19.0" } }, + "ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "requires": { + "tslib": "^2.0.1" + } + }, + "async": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz", + "integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==", + "dev": true + }, + "async-listener": { + "version": "0.6.10", + "resolved": "https://registry.npmjs.org/async-listener/-/async-listener-0.6.10.tgz", + "integrity": "sha512-gpuo6xOyF4D5DE5WvyqZdPA3NGhiT6Qf07l7DCB0wwDEsLvDIbCr6j9S5aj5Ch96dLace5tXVzWBZkxU/c5ohw==", + "dev": true, + "requires": { + "semver": "^5.3.0", + "shimmer": "^1.1.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -4993,6 +6779,15 @@ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.0" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -5013,6 +6808,12 @@ "tar": "^6.1.11" } }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", @@ -5043,6 +6844,18 @@ } } }, + "blessed": { + "version": "0.1.81", + "resolved": "https://registry.npmjs.org/blessed/-/blessed-0.1.81.tgz", + "integrity": "sha1-+WLWh+wsNpVwrnGvhDJW5tDKESk=", + "dev": true + }, + "bodec": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz", + "integrity": "sha1-vIUVVUMPI8n3ZQp172TGqUw0GMw=", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -5083,6 +6896,12 @@ "node-gyp-build": "^4.3.0" } }, + "bytes": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", + "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "dev": true + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -5113,6 +6932,39 @@ "supports-color": "^7.1.0" } }, + "charm": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/charm/-/charm-0.1.2.tgz", + "integrity": "sha1-BsIe7RobBq62dVPNxT4jJ0usIpY=", + "dev": true + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", @@ -5181,6 +7033,27 @@ } } }, + "cli-tableau": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/cli-tableau/-/cli-tableau-2.0.1.tgz", + "integrity": "sha512-he+WTicka9cl0Fg/y+YyxcN6/bfQ/1O3QmgxRXDhABKqLzvoOSM4fMzp39uMyLBulAFuywD2N7UaoQE7WaADxQ==", + "dev": true, + "requires": { + "chalk": "3.0.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -5239,6 +7112,12 @@ "delayed-stream": "~1.0.0" } }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -5255,6 +7134,16 @@ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, + "continuation-local-storage": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/continuation-local-storage/-/continuation-local-storage-3.2.1.tgz", + "integrity": "sha512-jx44cconVqkCEEyLSKWwkvUXwO561jXMa3LPjTPsm5QR22PA0/mhe33FT4Xb5y74JDvt/Cq+5lm8S8rskLv9ZA==", + "dev": true, + "requires": { + "async-listener": "^0.6.0", + "emitter-listener": "^1.1.1" + } + }, "core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", @@ -5266,6 +7155,15 @@ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, + "cron": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/cron/-/cron-1.8.2.tgz", + "integrity": "sha512-Gk2c4y6xKEO8FSAUTklqtfSr7oTq0CiPQeLBG5Fl0qoXpZyMcj1SG59YL+hqq04bu6/IuEA7lMkYDAplQNKkyg==", + "dev": true, + "requires": { + "moment-timezone": "^0.5.x" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -5277,6 +7175,18 @@ "which": "^2.0.1" } }, + "culvert": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/culvert/-/culvert-0.1.2.tgz", + "integrity": "sha1-lQL18BVKLVoioCPnn3HMk2+m728=", + "dev": true + }, + "data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "dev": true + }, "date-fns": { "version": "2.28.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", @@ -5287,6 +7197,12 @@ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==" }, + "dayjs": { + "version": "1.8.36", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", + "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==", + "dev": true + }, "debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", @@ -5323,6 +7239,18 @@ "object-keys": "^1.0.12" } }, + "degenerator": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz", + "integrity": "sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ==", + "dev": true, + "requires": { + "ast-types": "^0.13.2", + "escodegen": "^1.8.1", + "esprima": "^4.0.0", + "vm2": "^3.9.3" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -5333,6 +7261,12 @@ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, "detect-libc": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", @@ -5428,6 +7362,15 @@ } } }, + "emitter-listener": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/emitter-listener/-/emitter-listener-1.1.2.tgz", + "integrity": "sha512-Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==", + "dev": true, + "requires": { + "shimmer": "^1.2.0" + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -5508,6 +7451,60 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "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" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, "eslint": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.6.0.tgz", @@ -5747,6 +7744,12 @@ "eslint-visitor-keys": "^3.1.0" } }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, "esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", @@ -5793,6 +7796,12 @@ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, + "eventemitter2": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-5.0.1.tgz", + "integrity": "sha1-YZegldX7a1folC9v1+qtY6CclFI=", + "dev": true + }, "expand-template": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", @@ -5834,6 +7843,12 @@ } } }, + "fast-json-patch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-3.1.0.tgz", + "integrity": "sha512-IhpytlsVTRndz0hU5t0/MGzS/etxLlfrpG5V5M9mVbuj9TrJLWaMfsox9REM5rkuGX0T+5qjpe8XA1o0gZ42nA==", + "dev": true + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -5865,6 +7880,12 @@ "reusify": "^1.0.4" } }, + "fclone": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fclone/-/fclone-1.0.11.tgz", + "integrity": "sha1-EOhdo4v+p/xZk0HClu4ddyZu5kA=", + "dev": true + }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -5913,6 +7934,12 @@ "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", "dev": true }, + "follow-redirects": { + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.6.tgz", + "integrity": "sha512-fhUl5EwSJbbl8AR+uYL2KQDxLkdSjZGR36xy46AO7cOMTrCMON6Sa28FmAnC2tRTDbd/Uuzz3aJBv7EBN7JH8A==", + "dev": true + }, "form-data": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", @@ -5951,6 +7978,49 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "dev": true, + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -6019,6 +8089,66 @@ "get-intrinsic": "^1.1.1" } }, + "get-uri": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", + "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "data-uri-to-buffer": "3", + "debug": "4", + "file-uri-to-path": "2", + "fs-extra": "^8.1.0", + "ftp": "^0.3.10" + }, + "dependencies": { + "file-uri-to-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", + "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "git-node-fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/git-node-fs/-/git-node-fs-1.0.0.tgz", + "integrity": "sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=", + "dev": true + }, + "git-sha1": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/git-sha1/-/git-sha1-0.1.2.tgz", + "integrity": "sha1-WZrBkrcYdYJeE6RF86bgURjC90U=", + "dev": true + }, "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -6119,6 +8249,49 @@ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + } + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -6176,6 +8349,12 @@ "side-channel": "^1.0.4" } }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, "is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -6185,6 +8364,15 @@ "has-bigints": "^1.0.1" } }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", @@ -6322,6 +8510,18 @@ "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==" }, + "js-git": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/js-git/-/js-git-0.7.8.tgz", + "integrity": "sha1-UvplWrYYd9bxB578ZTS1VPMeVEQ=", + "dev": true, + "requires": { + "bodec": "^0.1.0", + "culvert": "^0.1.2", + "git-sha1": "^0.1.2", + "pako": "^0.2.5" + } + }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -6342,6 +8542,13 @@ "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true, + "optional": true + }, "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", @@ -6365,6 +8572,12 @@ "universalify": "^2.0.0" } }, + "lazy": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz", + "integrity": "sha1-2qBoIGKCVCwIgojpdcKXwa53tpA=", + "dev": true + }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -6395,12 +8608,24 @@ "path-exists": "^3.0.0" } }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "log-driver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", + "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", + "dev": true + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -6510,6 +8735,27 @@ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, + "module-details-from-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", + "integrity": "sha1-EUyUlnPiqKNenTV4hSeqN7Z52is=", + "dev": true + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "dev": true + }, + "moment-timezone": { + "version": "0.5.34", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.34.tgz", + "integrity": "sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg==", + "dev": true, + "requires": { + "moment": ">= 2.9.0" + } + }, "mri": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", @@ -6520,6 +8766,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, "mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -6546,6 +8798,34 @@ "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, + "needle": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.4.0.tgz", + "integrity": "sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==", + "dev": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true + }, "node-abi": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.5.0.tgz", @@ -6567,6 +8847,12 @@ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==" }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -6578,6 +8864,24 @@ "set-blocking": "~2.0.0" } }, + "nssocket": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz", + "integrity": "sha1-Wflvb/MhVm8zxw99vu7N/cBxVPo=", + "dev": true, + "requires": { + "eventemitter2": "~0.4.14", + "lazy": "~1.0.11" + }, + "dependencies": { + "eventemitter2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", + "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", + "dev": true + } + } + }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", @@ -6685,6 +8989,40 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "pac-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", + "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4", + "get-uri": "3", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "5", + "pac-resolver": "^5.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "5" + } + }, + "pac-resolver": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz", + "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==", + "dev": true, + "requires": { + "degenerator": "^3.0.1", + "ip": "^1.1.5", + "netmask": "^2.0.1" + } + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -6749,6 +9087,23 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "pidusage": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-2.0.21.tgz", + "integrity": "sha512-cv3xAQos+pugVX+BfXpHsbyz/dLzX+lr44zNMsYiGxUw+kV5sgQCIcLd1z+0vq+KyC7dJ+/ts2PsfgWfSC3WXA==", + "dev": true, + "requires": { + "safe-buffer": "^5.2.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, "pino": { "version": "7.6.2", "resolved": "https://registry.npmjs.org/pino/-/pino-7.6.2.tgz", @@ -6811,6 +9166,120 @@ "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" }, + "pm2": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/pm2/-/pm2-5.1.2.tgz", + "integrity": "sha512-2nJQeCWjkN0WnTkWctaoZpqrJTiUN/Icw76IMVHHzPhr/p7yQYlEQgHzlL5IFWxO2N1HdBNXNdZft2p4HUmUcA==", + "dev": true, + "requires": { + "@pm2/agent": "~2.0.0", + "@pm2/io": "~5.0.0", + "@pm2/js-api": "~0.6.7", + "@pm2/pm2-version-check": "latest", + "async": "~3.2.0", + "blessed": "0.1.81", + "chalk": "3.0.0", + "chokidar": "^3.5.1", + "cli-tableau": "^2.0.0", + "commander": "2.15.1", + "cron": "1.8.2", + "dayjs": "~1.8.25", + "debug": "^4.3.1", + "enquirer": "2.3.6", + "eventemitter2": "5.0.1", + "fclone": "1.0.11", + "mkdirp": "1.0.4", + "needle": "2.4.0", + "pidusage": "2.0.21", + "pm2-axon": "~4.0.1", + "pm2-axon-rpc": "~0.7.1", + "pm2-deploy": "~1.0.2", + "pm2-multimeter": "^0.1.2", + "pm2-sysmonit": "^1.2.8", + "promptly": "^2", + "semver": "^7.2", + "source-map-support": "0.5.19", + "sprintf-js": "1.1.2", + "vizion": "~2.2.1", + "yamljs": "0.3.0" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "pm2-axon": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz", + "integrity": "sha512-kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==", + "dev": true, + "requires": { + "amp": "~0.3.1", + "amp-message": "~0.1.1", + "debug": "^4.3.1", + "escape-string-regexp": "^4.0.0" + } + }, + "pm2-axon-rpc": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz", + "integrity": "sha512-FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==", + "dev": true, + "requires": { + "debug": "^4.3.1" + } + }, + "pm2-deploy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pm2-deploy/-/pm2-deploy-1.0.2.tgz", + "integrity": "sha512-YJx6RXKrVrWaphEYf++EdOOx9EH18vM8RSZN/P1Y+NokTKqYAca/ejXwVLyiEpNju4HPZEk3Y2uZouwMqUlcgg==", + "dev": true, + "requires": { + "run-series": "^1.1.8", + "tv4": "^1.3.0" + } + }, + "pm2-multimeter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/pm2-multimeter/-/pm2-multimeter-0.1.2.tgz", + "integrity": "sha1-Gh5VFT1BoFU0zqI8/oYKuqDrSs4=", + "dev": true, + "requires": { + "charm": "~0.1.1" + } + }, + "pm2-sysmonit": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/pm2-sysmonit/-/pm2-sysmonit-1.2.8.tgz", + "integrity": "sha512-ACOhlONEXdCTVwKieBIQLSi2tQZ8eKinhcr9JpZSUAL8Qy0ajIgRtsLxG/lwPOW3JEKqPyw/UaHmTWhUzpP4kA==", + "dev": true, + "optional": true, + "requires": { + "async": "^3.2.0", + "debug": "^4.3.1", + "pidusage": "^2.0.21", + "systeminformation": "^5.7", + "tx2": "~1.0.4" + } + }, "prebuild-install": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.0.tgz", @@ -6868,6 +9337,54 @@ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, + "promptly": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/promptly/-/promptly-2.2.0.tgz", + "integrity": "sha1-KhP6BjaIoqWYOxYf/wEIoH0m/HQ=", + "dev": true, + "requires": { + "read": "^1.0.4" + } + }, + "proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", + "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", + "dev": true, + "requires": { + "agent-base": "^6.0.0", + "debug": "4", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^5.0.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^5.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "dev": true + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -6894,6 +9411,18 @@ "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" }, + "raw-body": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", + "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "dev": true, + "requires": { + "bytes": "3.1.1", + "http-errors": "1.8.1", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -6912,6 +9441,15 @@ } } }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -6926,6 +9464,15 @@ "util-deprecate": "~1.0.1" } }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, "real-require": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", @@ -6947,6 +9494,17 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "require-in-the-middle": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-5.1.0.tgz", + "integrity": "sha512-M2rLKVupQfJ5lf9OvqFGIT+9iVLnTmjgbOmpil12hiSQNn5zJTKGPoIisETNjfK+09vP3rpm1zJajmErpr2sEQ==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "module-details-from-path": "^1.0.3", + "resolve": "^1.12.0" + } + }, "resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", @@ -6992,6 +9550,12 @@ "queue-microtask": "^1.2.2" } }, + "run-series": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", + "integrity": "sha512-Arc4hUN896vjkqCYrUXquBFtRZdv1PfLbTYP71efP6butxyQ0kWpiNJyAgsxscmQg1cqvHY32/UCBzXedTpU2g==", + "dev": true + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -7002,6 +9566,12 @@ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==" }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", @@ -7025,6 +9595,12 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", @@ -7060,6 +9636,12 @@ "vscode-textmate": "5.2.0" } }, + "shimmer": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shimmer/-/shimmer-1.2.1.tgz", + "integrity": "sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==", + "dev": true + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -7102,6 +9684,33 @@ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "socks": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", + "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + } + }, "sonic-boom": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.4.1.tgz", @@ -7129,6 +9738,18 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", @@ -7214,6 +9835,13 @@ "has-flag": "^4.0.0" } }, + "systeminformation": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.10.0.tgz", + "integrity": "sha512-9m05qqR8sQzWpW1q1/BXUiz1bnUXh7NkK/+w0MoSX7+dURYLj6e4zAkuBBWyTCKnhJjRsQXpoXiJCnakpZdJVA==", + "dev": true, + "optional": true + }, "tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", @@ -7308,6 +9936,12 @@ "is-number": "^7.0.0" } }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -7391,6 +10025,22 @@ "safe-buffer": "^5.0.1" } }, + "tv4": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz", + "integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=", + "dev": true + }, + "tx2": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tx2/-/tx2-1.0.5.tgz", + "integrity": "sha512-sJ24w0y03Md/bxzK4FU8J8JveYYUbSs2FViLJ2D/8bytSiyPRbuE3DyL/9UKYXTZlV3yXq0L8GLlhobTnekCVg==", + "dev": true, + "optional": true, + "requires": { + "json-stringify-safe": "^5.0.1" + } + }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -7487,6 +10137,12 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -7509,6 +10165,12 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", @@ -7520,6 +10182,35 @@ "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" }, + "vizion": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vizion/-/vizion-2.2.1.tgz", + "integrity": "sha512-sfAcO2yeSU0CSPFI/DmZp3FsFE9T+8913nv1xWBOyzODv13fwkn6Vl7HqxGpkr9F608M+8SuFId3s+BlZqfXww==", + "dev": true, + "requires": { + "async": "^2.6.3", + "git-node-fs": "^1.0.0", + "ini": "^1.3.5", + "js-git": "^0.7.8" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + } + } + }, + "vm2": { + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.5.tgz", + "integrity": "sha512-LuCAHZN75H9tdrAiLFf030oW7nJV5xwNMuk1ymOZwopmuK3d2H4L1Kv4+GFHgarKiLfXXLFU+7LDABHnwOkWng==", + "dev": true + }, "vscode-oniguruma": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", @@ -7634,6 +10325,12 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "dev": true + }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -7644,6 +10341,33 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "yamljs": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", + "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } + } + }, "yargs": { "version": "17.3.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", diff --git a/package.json b/package.json index 1d5a7e0..e22e3a9 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "A conversational Markov chain bot for Discord", "main": "dist/index.js", "scripts": { - "start": "NODE_ENV=production node dist/index.js", + "start": "NODE_ENV=production pm2 start --no-daemon dist/index.js", "start:ts": "ts-node src/index.ts", "build": "rimraf dist && tsc", "lint": "tsc --noEmit && eslint **/*.ts *.js", @@ -65,6 +65,7 @@ "eslint-config-prettier": "^8.3.0", "eslint-plugin-import": "^2.25.4", "eslint-plugin-prettier": "^4.0.0", + "pm2": "^5.1.2", "prettier": "^2.5.1", "rimraf": "^3.0.2", "ts-node": "^10.4.0", From f9fbba204aed3859d3a00155abaf0aa5ed76f14a Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 17:42:13 -0600 Subject: [PATCH 42/45] Document Docker restart policy --- CHANGELOG.md | 3 ++- README.md | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e3062d4..86cd053 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,9 +12,10 @@ All notable changes to this project will be documented in this file. * Config option `game` renamed to `activity` * Config option `role` renamed to `userRoleIds`. Changed from string to array of strings. * Docker internal volume path moved from `/usr/src/markbot/config` to `/usr/app/config` -* Database changed from JSON files to a SQLite database. You'll need to retrain the bot to use it again. +* Database changed from JSON files to a SQLite database. You'll need to re-train the bot to use it again. * The bot must be explicitly granted permission to listen to a list of channels before using it. Configure it with `/listen`. * Docker user changed from `root` to `node`. You may need to update your mounted volume's permissions. +* pm2 has been removed from the Docker container. Make sure to add `--restart=unless-stopped` to your Docker run config to ensure the same resiliency. #### New Features diff --git a/README.md b/README.md index 0da1014..b64d0be 100644 --- a/README.md +++ b/README.md @@ -30,10 +30,10 @@ Running this bot in Docker is the easiest way to ensure it runs as expected and 1. Open a command prompt and run: ```sh - docker run --rm -ti -v /my/host/dir:/usr/app/config ghcr.io/claabs/markov-discord:latest + docker run --restart unless-stopped --rm -ti -v /my/host/dir:/usr/app/config ghcr.io/claabs/markov-discord:latest ``` - Where `/my/host/dir` is a accessible path on your system. + Where `/my/host/dir` is a accessible path on your system. `--restart=unless-stopped` is recommended in case an unexpected error crashes the bot. 1. The Docker container will create a default config file in your mounted volume (`/my/host/dir`). Open it and add your bot token. You may change any other values to your liking as well. Details for each configuration item can be found here: 1. Run the container again and use the invite link printed to the logs. From 19284b1d09d6961a3697c1aadb2095813e8c8041 Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 18:05:25 -0600 Subject: [PATCH 43/45] Fix training reply webhook timeout --- src/index.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/index.ts b/src/index.ts index a6c002c..c517735 100644 --- a/src/index.ts +++ b/src/index.ts @@ -314,7 +314,7 @@ async function saveGuildMessageHistory( limit: PAGE_SIZE, }); } catch (err) { - L.error({ before: oldestMessageID, limit: PAGE_SIZE }, 'Error retreiving messages'); + L.error(`Error retreiving messages before ${oldestMessageID}`); L.error(err); break; // Give up on this channel } @@ -341,10 +341,7 @@ async function saveGuildMessageHistory( limit: PAGE_SIZE, }); } catch (err) { - L.error( - { before: oldestThreadMessageID, limit: PAGE_SIZE }, - 'Error retreiving thread messages' - ); + L.error(`Error retreiving thread messages before ${oldestThreadMessageID}`); L.error(err); break; // Give up on this thread } @@ -810,8 +807,10 @@ client.on('interactionCreate', async (interaction) => { } } else if (interaction.commandName === trainCommand.name) { await interaction.deferReply(); + const reply = (await interaction.fetchReply()) as Discord.Message; // Must fetch the reply ASAP const responseMessage = await saveGuildMessageHistory(interaction); - await interaction.followUp({ content: responseMessage }); + // Send a message in reply to the reply to avoid the 15 minute webhook token timeout + await reply.reply({ content: responseMessage }); } } else if (interaction.isSelectMenu()) { if (interaction.customId === 'listen-modify-select') { From 16fb711331793b732dd0df691a7bc2672a18554f Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Sun, 9 Jan 2022 18:40:25 -0600 Subject: [PATCH 44/45] Clarify error while training on bad channel permissions --- src/index.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index c517735..5efde4d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -314,8 +314,10 @@ async function saveGuildMessageHistory( limit: PAGE_SIZE, }); } catch (err) { - L.error(`Error retreiving messages before ${oldestMessageID}`); L.error(err); + L.error( + `Error retreiving messages before ${oldestMessageID} in channel ${channel.name}. This is probably a permissions issue.` + ); break; // Give up on this channel } @@ -341,8 +343,10 @@ async function saveGuildMessageHistory( limit: PAGE_SIZE, }); } catch (err) { - L.error(`Error retreiving thread messages before ${oldestThreadMessageID}`); L.error(err); + L.error( + `Error retreiving thread messages before ${oldestThreadMessageID} in thread ${threadChannel.name}. This is probably a permissions issue.` + ); break; // Give up on this thread } L.trace( @@ -351,7 +355,7 @@ async function saveGuildMessageHistory( ); const lastThreadMessage = threadBatchMessages.last(); allBatchMessages = allBatchMessages.concat(threadBatchMessages); // Add the thread messages to this message batch to be included in later processing - if (!lastThreadMessage || threadBatchMessages.size < PAGE_SIZE) { + if (!lastThreadMessage?.id || threadBatchMessages.size < PAGE_SIZE) { keepGoingThread = false; } else { oldestThreadMessageID = lastThreadMessage.id; From 57147a03c311633a78d802b0bee40139b19af3ae Mon Sep 17 00:00:00 2001 From: Charlie Laabs Date: Mon, 10 Jan 2022 08:37:30 -0600 Subject: [PATCH 45/45] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86cd053..282162b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ All notable changes to this project will be documented in this file. * The bot can be restricted to only learn/listen from a strict list of channels * Bot responses can be seeded by a short phrase * Discord slash command support +* Discord thread support * Many new config options available at * Owner IDs * Log level

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