diff --git a/.gitignore b/.gitignore index e4cad55..f3cb1b8 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,7 @@ compile_commands.json CTestTestfile.cmake _deps bin +ignored + +maths/*.pdf +maths/*.synctex.gz diff --git a/.husky/pre-commit b/.husky/pre-commit index 35d6918..1ec3a16 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -2,3 +2,4 @@ . "$(dirname "$0")/_/husky.sh" npx pretty-quick --staged +node .husky/scripts/cleanMaths.js diff --git a/.husky/scripts/cleanMaths.js b/.husky/scripts/cleanMaths.js new file mode 100644 index 0000000..8d1b4d6 --- /dev/null +++ b/.husky/scripts/cleanMaths.js @@ -0,0 +1,58 @@ +const fs = require('fs'); +const path = require('path'); +const { pdfToPng } = require('pdf-to-png-converter'); +const Jimp = require('jimp'); + +const mathsDir = path.resolve(__dirname, '..', '..', 'maths'); + +const cropBuffer = buffer => + new Promise((resolve, reject) => { + Jimp.read(buffer) + .then(cropped => { + cropped.autocrop(); + + new Jimp( + cropped.getWidth() + 100, + cropped.getHeight() + 100, + '#ffffff', + async (err, image) => { + if (err) reject(err); + + image.blit(cropped, 50, 50); + + resolve(await image.getBufferAsync(Jimp.MIME_PNG)); + } + ); + }) + .catch(err => reject(err)); + }); + +fs.readdirSync(mathsDir).forEach(file => { + const [fileName, fileExtension] = file.split('.'); + const filePath = path.join(mathsDir, file); + + if (file.endsWith('.pdf')) { + pdfToPng(filePath, { + viewportScale: 2 + }).then(async output => { + const pageCount = output.length; + + if (pageCount > 1) + output.forEach(async (page, i) => + fs.writeFileSync( + path.join(mathsDir, `${fileName}-${i + 1}.png`), + await cropBuffer(page.content) + ) + ); + else + fs.writeFileSync( + path.join(mathsDir, `${fileName}.png`), + await cropBuffer(output[0].content) + ); + }); + } + + if (fileExtension !== 'tex' && fileExtension !== 'png' && fileExtension !== 'cls') { + fs.rmSync(filePath); + } +}); diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..b1b5201 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["James-Yu.latex-workshop"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 0e9a929..5ea83c4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,4 @@ { - "java.project.sourcePaths": ["java"], "files.exclude": { "**/.git": true, "**/.svn": true, @@ -34,5 +33,8 @@ "ostream": "cpp", "ratio": "cpp", "streambuf": "cpp" - } + }, + "latex-workshop.latex.autoBuild.run": "onSave", + "latex-workshop.latex.autoClean.run": "onBuilt", + "latex-workshop.latex.search.rootFiles.include": ["**/*.tex", "root.tex"] } diff --git a/languages/python/calculators/Trigometric Functions.py b/languages/python/calculators/Trigometric Functions.py index b6edaad..0432e27 100644 --- a/languages/python/calculators/Trigometric Functions.py +++ b/languages/python/calculators/Trigometric Functions.py @@ -1,22 +1,19 @@ -from math import e +from cmath import e, sqrt from _helpers import floatInput -def sin(radians): - x = radians - return (((e ** (1j * x)) - (e ** -(1j * x))) / 2j).real +i = sqrt(-1) -def cos(radians): - x = radians - return (((e ** (1j * x)) + (e ** -(1j * x))) / 2).real +compute = lambda numerator, denominator: (numerator / denominator).real +sin = lambda x: compute(pow(e, i * x) - pow(e, -i * x), 2 * i) +cos = lambda x: compute(pow(e, i * x) + pow(e, -i * x), 2) +tan = lambda x: compute(pow(e, i * x) - pow(e, -i * x), i * (pow(e, i * x) + pow(e, -i * x))) +radians = floatInput("Please enter an amount of radians: ") -def tan(radians): - x = radians - return (((e ** (1j * x)) - (e ** -(1j * x))) / (1j * ((e ** (1j * x)) + (e ** -(1j * x))))).real +print(f""" +sin({radians}) = {sin(radians)}) +cos({radians}) = {cos(radians)} +tan({radians}) = {tan(radians)} -a = floatInput("Please enter an amount of radians: ") - -print("""Where x = %i: -sin(x) = %f -cos(x) = %f -tan(x) = %f -""" % (a, sin(a), cos(a), tan(a))) +csc({radians}) = {1 / sin(radians)} +sec({radians}) = {1 / cos(radians)} +cot({radians}) = {1 / tan(radians)}""") diff --git a/languages/python/calculators/_helpers/floatInput.py b/languages/python/calculators/_helpers/floatInput.py index 23d8c65..820b738 100644 --- a/languages/python/calculators/_helpers/floatInput.py +++ b/languages/python/calculators/_helpers/floatInput.py @@ -5,4 +5,4 @@ def floatInput(text): x = float(input(text)) return x except ValueError: - print('You must input a float integer!\n') + print('You must input a float!\n') diff --git a/maths/nth root.png b/maths/nth root.png index 60996b8..0834e5e 100644 Binary files a/maths/nth root.png and b/maths/nth root.png differ diff --git a/maths/nth root.tex b/maths/nth root.tex new file mode 100644 index 0000000..e0a1634 --- /dev/null +++ b/maths/nth root.tex @@ -0,0 +1,12 @@ +\documentclass{style} +\usepackage{amsmath} +\begin{document} +\begin{gather*} + f(x) = x^k - s \\ + f'(x) = kx^{k - 1} +\end{gather*} + +\begin{gather*} + x_{n + 1} = x_n - \frac{x_n^k - s}{kx_n^{k - 1}} = \frac{x_n(k - 1) + sx_n^{1 - k}}{k} +\end{gather*} +\end{document} diff --git a/maths/style.cls b/maths/style.cls new file mode 100644 index 0000000..93f0086 --- /dev/null +++ b/maths/style.cls @@ -0,0 +1,3 @@ +\ProvidesClass{style} +\LoadClass[17pt]{extarticle} +\pagenumbering{gobble} diff --git a/package.json b/package.json index d1153d6..11abe50 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "commitizen": "^4.2.4", "cz-conventional-changelog": "^3.3.0", "husky": "^7.0.4", + "jimp": "^0.16.1", + "pdf-to-png-converter": "^1.0.0", "prettier": "^2.5.1", "pretty-quick": "^3.1.3" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 65f9a23..4335331 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,8 @@ specifiers: commitizen: ^4.2.4 cz-conventional-changelog: ^3.3.0 husky: ^7.0.4 + jimp: ^0.16.1 + pdf-to-png-converter: ^1.0.0 prettier: ^2.5.1 pretty-quick: ^3.1.3 @@ -13,6 +15,8 @@ devDependencies: commitizen: 4.2.4_@types+node@17.0.6 cz-conventional-changelog: 3.3.0_@types+node@17.0.6 husky: 7.0.4 + jimp: 0.16.1 + pdf-to-png-converter: 1.0.0 prettier: 2.5.1 pretty-quick: 3.1.3_prettier@2.5.1 @@ -50,6 +54,16 @@ packages: dev: true optional: true + /@babel/runtime/7.17.9: + resolution: + { + integrity: sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg== + } + engines: { node: '>=6.9.0' } + dependencies: + regenerator-runtime: 0.13.9 + dev: true + /@commitlint/config-validator/16.0.0: resolution: { @@ -142,6 +156,495 @@ packages: dev: true optional: true + /@jimp/bmp/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + bmp-js: 0.1.0 + dev: true + + /@jimp/core/0.16.1: + resolution: + { + integrity: sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g== + } + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/utils': 0.16.1 + any-base: 1.1.0 + buffer: 5.7.1 + exif-parser: 0.1.12 + file-type: 9.0.0 + load-bmfont: 1.4.1 + mkdirp: 0.5.6 + phin: 2.9.3 + pixelmatch: 4.0.2 + tinycolor2: 1.4.2 + dev: true + + /@jimp/custom/0.16.1: + resolution: + { + integrity: sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A== + } + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/core': 0.16.1 + dev: true + + /@jimp/gif/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + gifwrap: 0.9.4 + omggif: 1.0.10 + dev: true + + /@jimp/jpeg/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + jpeg-js: 0.4.2 + dev: true + + /@jimp/plugin-blit/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-blur/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-circle/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-color/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + tinycolor2: 1.4.2 + dev: true + + /@jimp/plugin-contain/0.16.1_38e919e7cde018834207f15ee7b0ce6a: + resolution: + { + integrity: sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-scale': 0.16.1_c382371bb4f60ea2fd211a04ed8ab1e2 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-cover/0.16.1_3d13feed36f5fd86198de47b78b25314: + resolution: + { + integrity: sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugin-crop': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-scale': 0.16.1_c382371bb4f60ea2fd211a04ed8ab1e2 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-crop/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-displace/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-dither/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-fisheye/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-flip/0.16.1_205f1d9ec51496ff93f52ac5618c3660: + resolution: + { + integrity: sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugin-rotate': 0.16.1_37f4bc9bbdbf41c03b931ee8408b3361 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-gaussian/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-invert/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-mask/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-normalize/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-print/0.16.1_5191b610a3eb861d3baa10a735e89ecc: + resolution: + { + integrity: sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': 0.16.1_@jimp+custom@0.16.1 + '@jimp/utils': 0.16.1 + load-bmfont: 1.4.1 + dev: true + + /@jimp/plugin-resize/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-rotate/0.16.1_37f4bc9bbdbf41c03b931ee8408b3361: + resolution: + { + integrity: sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-crop': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-scale/0.16.1_c382371bb4f60ea2fd211a04ed8ab1e2: + resolution: + { + integrity: sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-shadow/0.16.1_82540ab48d5f83680494f34d0dac907f: + resolution: + { + integrity: sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blur': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugin-threshold/0.16.1_ec0c83f3603149a8780f87045f821922: + resolution: + { + integrity: sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugin-color': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1 + '@jimp/utils': 0.16.1 + dev: true + + /@jimp/plugins/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugin-blit': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-blur': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-circle': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-color': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-contain': 0.16.1_38e919e7cde018834207f15ee7b0ce6a + '@jimp/plugin-cover': 0.16.1_3d13feed36f5fd86198de47b78b25314 + '@jimp/plugin-crop': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-displace': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-dither': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-fisheye': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-flip': 0.16.1_205f1d9ec51496ff93f52ac5618c3660 + '@jimp/plugin-gaussian': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-invert': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-mask': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-normalize': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-print': 0.16.1_5191b610a3eb861d3baa10a735e89ecc + '@jimp/plugin-resize': 0.16.1_@jimp+custom@0.16.1 + '@jimp/plugin-rotate': 0.16.1_37f4bc9bbdbf41c03b931ee8408b3361 + '@jimp/plugin-scale': 0.16.1_c382371bb4f60ea2fd211a04ed8ab1e2 + '@jimp/plugin-shadow': 0.16.1_82540ab48d5f83680494f34d0dac907f + '@jimp/plugin-threshold': 0.16.1_ec0c83f3603149a8780f87045f821922 + timm: 1.7.1 + dev: true + + /@jimp/png/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/utils': 0.16.1 + pngjs: 3.4.0 + dev: true + + /@jimp/tiff/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + utif: 2.0.1 + dev: true + + /@jimp/types/0.16.1_@jimp+custom@0.16.1: + resolution: + { + integrity: sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ== + } + peerDependencies: + '@jimp/custom': '>=0.3.5' + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/bmp': 0.16.1_@jimp+custom@0.16.1 + '@jimp/custom': 0.16.1 + '@jimp/gif': 0.16.1_@jimp+custom@0.16.1 + '@jimp/jpeg': 0.16.1_@jimp+custom@0.16.1 + '@jimp/png': 0.16.1_@jimp+custom@0.16.1 + '@jimp/tiff': 0.16.1_@jimp+custom@0.16.1 + timm: 1.7.1 + dev: true + + /@jimp/utils/0.16.1: + resolution: + { + integrity: sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw== + } + dependencies: + '@babel/runtime': 7.17.9 + regenerator-runtime: 0.13.9 + dev: true + + /@mapbox/node-pre-gyp/1.0.9: + resolution: + { + integrity: sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== + } + hasBin: true + dependencies: + detect-libc: 2.0.1 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.6.7 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.3.7 + tar: 6.1.11 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + /@tsconfig/node10/1.0.8: resolution: { @@ -181,6 +684,13 @@ packages: } dev: true + /@types/node/16.9.1: + resolution: + { + integrity: sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g== + } + dev: true + /@types/node/17.0.6: resolution: { @@ -196,6 +706,13 @@ packages: dev: true optional: true + /abbrev/1.1.1: + resolution: + { + integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + } + dev: true + /acorn-walk/8.2.0: resolution: { @@ -215,6 +732,18 @@ packages: dev: true optional: true + /agent-base/6.0.2: + resolution: + { + integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + } + engines: { node: '>= 6.0.0' } + dependencies: + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /ajv/6.12.6: resolution: { @@ -249,6 +778,14 @@ packages: engines: { node: '>=6' } dev: true + /ansi-regex/5.0.1: + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + } + engines: { node: '>=8' } + dev: true + /ansi-styles/3.2.1: resolution: { @@ -269,6 +806,31 @@ packages: color-convert: 2.0.1 dev: true + /any-base/1.1.0: + resolution: + { + integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg== + } + dev: true + + /aproba/2.0.0: + resolution: + { + integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + } + dev: true + + /are-we-there-yet/2.0.0: + resolution: + { + integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + } + engines: { node: '>=10' } + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.0 + dev: true + /arg/4.1.3: resolution: { @@ -308,6 +870,17 @@ packages: } dev: true + /base64-js/1.5.1: + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + } + dev: true + + /bmp-js/0.1.0: + resolution: { integrity: sha1-4Fpj95amwf8l9Hcex62twUjAcjM= } + dev: true + /brace-expansion/1.1.11: resolution: { @@ -328,6 +901,21 @@ packages: fill-range: 7.0.1 dev: true + /buffer-equal/0.0.1: + resolution: { integrity: sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= } + engines: { node: '>=0.4.0' } + dev: true + + /buffer/5.7.1: + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + } + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + dev: true + /cachedir/2.2.0: resolution: { @@ -345,6 +933,22 @@ packages: dev: true optional: true + /canvas/2.9.1: + resolution: + { + integrity: sha512-vSQti1uG/2gjv3x6QLOZw7TctfufaerTWbVe+NSduHxxLGB+qf3kFgQ6n66DSnuoINtVUjrLLIK2R+lxrBG07A== + } + engines: { node: '>=6' } + requiresBuild: true + dependencies: + '@mapbox/node-pre-gyp': 1.0.9 + nan: 2.15.0 + simple-get: 3.1.1 + transitivePeerDependencies: + - encoding + - supports-color + dev: true + /chalk/2.4.2: resolution: { @@ -387,6 +991,14 @@ packages: } dev: true + /chownr/2.0.0: + resolution: + { + integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + } + engines: { node: '>=10' } + dev: true + /cli-cursor/2.1.0: resolution: { integrity: sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= } engines: { node: '>=4' } @@ -431,6 +1043,14 @@ packages: } dev: true + /color-support/1.1.3: + resolution: + { + integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + } + hasBin: true + dev: true + /commitizen/4.2.4_@types+node@17.0.6: resolution: { @@ -463,6 +1083,10 @@ packages: resolution: { integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= } dev: true + /console-control-strings/1.1.0: + resolution: { integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= } + dev: true + /conventional-commit-types/3.0.0: resolution: { @@ -567,10 +1191,39 @@ packages: - '@types/node' dev: true + /debug/4.3.4: + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /decompress-response/4.2.1: + resolution: + { + integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + } + engines: { node: '>=8' } + dependencies: + mimic-response: 2.1.0 + dev: true + /dedent/0.7.0: resolution: { integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= } dev: true + /delegates/1.0.0: + resolution: { integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= } + dev: true + /detect-file/1.0.0: resolution: { integrity: sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= } engines: { node: '>=0.10.0' } @@ -584,6 +1237,14 @@ packages: engines: { node: '>=8' } dev: true + /detect-libc/2.0.1: + resolution: + { + integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + } + engines: { node: '>=8' } + dev: true + /diff/4.0.2: resolution: { @@ -593,6 +1254,20 @@ packages: dev: true optional: true + /dom-walk/0.1.2: + resolution: + { + integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + } + dev: true + + /emoji-regex/8.0.0: + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + } + dev: true + /end-of-stream/1.4.4: resolution: { @@ -635,6 +1310,10 @@ packages: strip-final-newline: 2.0.0 dev: true + /exif-parser/0.1.12: + resolution: { integrity: sha1-WKnS1ywCwfbwKg70qRZicrd2CSI= } + dev: true + /expand-tilde/2.0.2: resolution: { integrity: sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= } engines: { node: '>=0.10.0' } @@ -677,6 +1356,14 @@ packages: escape-string-regexp: 1.0.5 dev: true + /file-type/9.0.0: + resolution: + { + integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== + } + engines: { node: '>=6' } + dev: true + /fill-range/7.0.1: resolution: { @@ -740,10 +1427,38 @@ packages: universalify: 0.1.2 dev: true + /fs-minipass/2.1.0: + resolution: + { + integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.1.6 + dev: true + /fs.realpath/1.0.0: resolution: { integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8= } dev: true + /gauge/3.0.2: + resolution: + { + integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + } + engines: { node: '>=10' } + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.6 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + dev: true + /get-stream/5.2.0: resolution: { @@ -754,6 +1469,16 @@ packages: pump: 3.0.0 dev: true + /gifwrap/0.9.4: + resolution: + { + integrity: sha512-MDMwbhASQuVeD4JKd1fKgNgCRL3fGqMM4WaqpNhWO0JiMOAjbQdumbs4BbBZEy9/M00EHEjKN3HieVhCUlwjeQ== + } + dependencies: + image-q: 4.0.0 + omggif: 1.0.10 + dev: true + /glob/7.1.4: resolution: { @@ -799,6 +1524,16 @@ packages: which: 1.3.1 dev: true + /global/4.4.0: + resolution: + { + integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + } + dependencies: + min-document: 2.19.0 + process: 0.11.10 + dev: true + /graceful-fs/4.2.8: resolution: { @@ -819,6 +1554,10 @@ packages: engines: { node: '>=8' } dev: true + /has-unicode/2.0.1: + resolution: { integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= } + dev: true + /homedir-polyfill/1.0.3: resolution: { @@ -829,6 +1568,19 @@ packages: parse-passwd: 1.0.0 dev: true + /https-proxy-agent/5.0.1: + resolution: + { + integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + } + engines: { node: '>= 6' } + dependencies: + agent-base: 6.0.2 + debug: 4.3.4 + transitivePeerDependencies: + - supports-color + dev: true + /human-signals/1.1.1: resolution: { @@ -856,6 +1608,13 @@ packages: safer-buffer: 2.1.2 dev: true + /ieee754/1.2.1: + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + } + dev: true + /ignore/5.2.0: resolution: { @@ -864,6 +1623,15 @@ packages: engines: { node: '>= 4' } dev: true + /image-q/4.0.0: + resolution: + { + integrity: sha512-PfJGVgIfKQJuq3s0tTDOKtztksibuUEbJQIYT3by6wctQo+Rdlh7ef4evJ5NCdxY4CfMbvFkocEwbl4BF8RlJw== + } + dependencies: + '@types/node': 16.9.1 + dev: true + /import-fresh/3.3.0: resolution: { @@ -934,6 +1702,21 @@ packages: engines: { node: '>=4' } dev: true + /is-fullwidth-code-point/3.0.0: + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + } + engines: { node: '>=8' } + dev: true + + /is-function/1.0.2: + resolution: + { + integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + } + dev: true + /is-glob/4.0.3: resolution: { @@ -976,6 +1759,26 @@ packages: resolution: { integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= } dev: true + /jimp/0.16.1: + resolution: + { + integrity: sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw== + } + dependencies: + '@babel/runtime': 7.17.9 + '@jimp/custom': 0.16.1 + '@jimp/plugins': 0.16.1_@jimp+custom@0.16.1 + '@jimp/types': 0.16.1_@jimp+custom@0.16.1 + regenerator-runtime: 0.13.9 + dev: true + + /jpeg-js/0.4.2: + resolution: + { + integrity: sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw== + } + dev: true + /js-tokens/4.0.0: resolution: { @@ -1014,6 +1817,22 @@ packages: dev: true optional: true + /load-bmfont/1.4.1: + resolution: + { + integrity: sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA== + } + dependencies: + buffer-equal: 0.0.1 + mime: 1.6.0 + parse-bmfont-ascii: 1.0.6 + parse-bmfont-binary: 1.0.6 + parse-bmfont-xml: 1.1.4 + phin: 2.9.3 + xhr: 2.6.0 + xtend: 4.0.2 + dev: true + /locate-path/5.0.0: resolution: { @@ -1040,6 +1859,26 @@ packages: engines: { node: '>=0.10.0' } dev: true + /lru-cache/6.0.0: + resolution: + { + integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + } + engines: { node: '>=10' } + dependencies: + yallist: 4.0.0 + dev: true + + /make-dir/3.1.0: + resolution: + { + integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + } + engines: { node: '>=8' } + dependencies: + semver: 6.3.0 + dev: true + /make-error/1.3.6: resolution: { @@ -1073,6 +1912,15 @@ packages: picomatch: 2.3.1 dev: true + /mime/1.6.0: + resolution: + { + integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + } + engines: { node: '>=4' } + hasBin: true + dev: true + /mimic-fn/1.2.0: resolution: { @@ -1089,6 +1937,20 @@ packages: engines: { node: '>=6' } dev: true + /mimic-response/2.1.0: + resolution: + { + integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + } + engines: { node: '>=8' } + dev: true + + /min-document/2.19.0: + resolution: { integrity: sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= } + dependencies: + dom-walk: 0.1.2 + dev: true + /minimatch/3.0.4: resolution: { @@ -1105,6 +1967,53 @@ packages: } dev: true + /minimist/1.2.6: + resolution: + { + integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + } + dev: true + + /minipass/3.1.6: + resolution: + { + integrity: sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== + } + engines: { node: '>=8' } + dependencies: + yallist: 4.0.0 + dev: true + + /minizlib/2.1.2: + resolution: + { + integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + } + engines: { node: '>= 8' } + dependencies: + minipass: 3.1.6 + yallist: 4.0.0 + dev: true + + /mkdirp/0.5.6: + resolution: + { + integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + } + hasBin: true + dependencies: + minimist: 1.2.6 + dev: true + + /mkdirp/1.0.4: + resolution: + { + integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + } + engines: { node: '>=10' } + hasBin: true + dev: true + /mri/1.2.0: resolution: { @@ -1113,6 +2022,13 @@ packages: engines: { node: '>=4' } dev: true + /ms/2.1.2: + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + } + dev: true + /multimatch/4.0.0: resolution: { @@ -1131,6 +2047,39 @@ packages: resolution: { integrity: sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= } dev: true + /nan/2.15.0: + resolution: + { + integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + } + dev: true + + /node-fetch/2.6.7: + resolution: + { + integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + } + engines: { node: 4.x || >=6.0.0 } + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /nopt/5.0.0: + resolution: + { + integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + } + engines: { node: '>=6' } + hasBin: true + dependencies: + abbrev: 1.1.1 + dev: true + /npm-run-path/4.0.1: resolution: { @@ -1141,6 +2090,30 @@ packages: path-key: 3.1.1 dev: true + /npmlog/5.0.1: + resolution: + { + integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + } + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + dev: true + + /object-assign/4.1.1: + resolution: { integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= } + engines: { node: '>=0.10.0' } + dev: true + + /omggif/1.0.10: + resolution: + { + integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw== + } + dev: true + /once/1.4.0: resolution: { integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E= } dependencies: @@ -1197,6 +2170,13 @@ packages: engines: { node: '>=6' } dev: true + /pako/1.0.11: + resolution: + { + integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + } + dev: true + /parent-module/1.0.1: resolution: { @@ -1208,6 +2188,31 @@ packages: dev: true optional: true + /parse-bmfont-ascii/1.0.6: + resolution: { integrity: sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU= } + dev: true + + /parse-bmfont-binary/1.0.6: + resolution: { integrity: sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY= } + dev: true + + /parse-bmfont-xml/1.1.4: + resolution: + { + integrity: sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ== + } + dependencies: + xml-parse-from-string: 1.0.1 + xml2js: 0.4.23 + dev: true + + /parse-headers/2.0.5: + resolution: + { + integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA== + } + dev: true + /parse-json/5.2.0: resolution: { @@ -1257,6 +2262,41 @@ packages: dev: true optional: true + /pdf-to-png-converter/1.0.0: + resolution: + { + integrity: sha512-UOimMSfsLn9FiTXtVhKUd1xLVIMi/qC7tshRBCo3RGPsxhijkeqo25YAZGPHTlXu08uPn6EvHMa9DYXPY2PfCw== + } + dependencies: + canvas: 2.9.1 + pdfjs-dist: 2.13.216 + transitivePeerDependencies: + - encoding + - supports-color + - worker-loader + dev: true + + /pdfjs-dist/2.13.216: + resolution: + { + integrity: sha512-qn/9a/3IHIKZarTK6ajeeFXBkG15Lg1Fx99PxU09PAU2i874X8mTcHJYyDJxu7WDfNhV6hM7bRQBZU384anoqQ== + } + peerDependencies: + worker-loader: ^3.0.8 + peerDependenciesMeta: + worker-loader: + optional: true + dependencies: + web-streams-polyfill: 3.2.1 + dev: true + + /phin/2.9.3: + resolution: + { + integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA== + } + dev: true + /picomatch/2.3.1: resolution: { @@ -1265,6 +2305,21 @@ packages: engines: { node: '>=8.6' } dev: true + /pixelmatch/4.0.2: + resolution: { integrity: sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= } + hasBin: true + dependencies: + pngjs: 3.4.0 + dev: true + + /pngjs/3.4.0: + resolution: + { + integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + } + engines: { node: '>=4.0.0' } + dev: true + /prettier/2.5.1: resolution: { @@ -1293,6 +2348,11 @@ packages: prettier: 2.5.1 dev: true + /process/0.11.10: + resolution: { integrity: sha1-czIwDoQBYb2j5podHZGn1LwW8YI= } + engines: { node: '>= 0.6.0' } + dev: true + /pump/3.0.0: resolution: { @@ -1312,6 +2372,25 @@ packages: dev: true optional: true + /readable-stream/3.6.0: + resolution: + { + integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + } + engines: { node: '>= 6' } + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + dev: true + + /regenerator-runtime/0.13.9: + resolution: + { + integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + } + dev: true + /resolve-dir/1.0.1: resolution: { integrity: sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= } engines: { node: '>=0.10.0' } @@ -1357,6 +2436,16 @@ packages: signal-exit: 3.0.6 dev: true + /rimraf/3.0.2: + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + } + hasBin: true + dependencies: + glob: 7.1.4 + dev: true + /run-async/2.4.1: resolution: { @@ -1375,6 +2464,13 @@ packages: tslib: 1.14.1 dev: true + /safe-buffer/5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + } + dev: true + /safer-buffer/2.1.2: resolution: { @@ -1382,6 +2478,36 @@ packages: } dev: true + /sax/1.2.4: + resolution: + { + integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + } + dev: true + + /semver/6.3.0: + resolution: + { + integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + } + hasBin: true + dev: true + + /semver/7.3.7: + resolution: + { + integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + } + engines: { node: '>=10' } + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /set-blocking/2.0.0: + resolution: { integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc= } + dev: true + /shebang-command/2.0.0: resolution: { @@ -1407,6 +2533,24 @@ packages: } dev: true + /simple-concat/1.0.1: + resolution: + { + integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + } + dev: true + + /simple-get/3.1.1: + resolution: + { + integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== + } + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 + dev: true + /string-width/2.1.1: resolution: { @@ -1418,6 +2562,27 @@ packages: strip-ansi: 4.0.0 dev: true + /string-width/4.2.3: + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + } + engines: { node: '>=8' } + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string_decoder/1.3.0: + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + } + dependencies: + safe-buffer: 5.2.1 + dev: true + /strip-ansi/4.0.0: resolution: { integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8= } engines: { node: '>=4' } @@ -1435,6 +2600,16 @@ packages: ansi-regex: 4.1.0 dev: true + /strip-ansi/6.0.1: + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + } + engines: { node: '>=8' } + dependencies: + ansi-regex: 5.0.1 + dev: true + /strip-bom/4.0.0: resolution: { @@ -1479,10 +2654,39 @@ packages: has-flag: 4.0.0 dev: true + /tar/6.1.11: + resolution: + { + integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + } + engines: { node: '>= 10' } + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 3.1.6 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true + /through/2.3.8: resolution: { integrity: sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= } dev: true + /timm/1.7.1: + resolution: + { + integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw== + } + dev: true + + /tinycolor2/1.4.2: + resolution: + { + integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA== + } + dev: true + /tmp/0.0.33: resolution: { @@ -1503,6 +2707,10 @@ packages: is-number: 7.0.0 dev: true + /tr46/0.0.3: + resolution: { integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= } + dev: true + /ts-node/10.4.0_646584a8d620b4d6f5eb4525e8655565: resolution: { @@ -1572,6 +2780,38 @@ packages: dev: true optional: true + /utif/2.0.1: + resolution: + { + integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg== + } + dependencies: + pako: 1.0.11 + dev: true + + /util-deprecate/1.0.2: + resolution: { integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= } + dev: true + + /web-streams-polyfill/3.2.1: + resolution: + { + integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q== + } + engines: { node: '>= 8' } + dev: true + + /webidl-conversions/3.0.1: + resolution: { integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= } + dev: true + + /whatwg-url/5.0.0: + resolution: { integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0= } + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + /which/1.3.1: resolution: { @@ -1593,6 +2833,15 @@ packages: isexe: 2.0.0 dev: true + /wide-align/1.1.5: + resolution: + { + integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + } + dependencies: + string-width: 4.2.3 + dev: true + /word-wrap/1.2.3: resolution: { @@ -1605,6 +2854,56 @@ packages: resolution: { integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= } dev: true + /xhr/2.6.0: + resolution: + { + integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA== + } + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.5 + xtend: 4.0.2 + dev: true + + /xml-parse-from-string/1.0.1: + resolution: { integrity: sha1-qQKekp09vN7RafPG4oI42VpdWig= } + dev: true + + /xml2js/0.4.23: + resolution: + { + integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + } + engines: { node: '>=4.0.0' } + dependencies: + sax: 1.2.4 + xmlbuilder: 11.0.1 + dev: true + + /xmlbuilder/11.0.1: + resolution: + { + integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + } + engines: { node: '>=4.0' } + dev: true + + /xtend/4.0.2: + resolution: + { + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + } + engines: { node: '>=0.4' } + dev: true + + /yallist/4.0.0: + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + } + dev: true + /yaml/1.10.2: resolution: {