From 9c31346883ca0b4b647eab67859d79287b341f99 Mon Sep 17 00:00:00 2001 From: Reinaldo Almeida Date: Tue, 30 Mar 2021 20:06:58 -0300 Subject: [PATCH] [FIX] change quagga to zxing --- .vscode/launch.json | 17 + image.bmp | Bin 0 -> 443510 bytes package-lock.json | 2332 +++++++++++++++----------- package.json | 3 +- src/controllers/BarCodeController.js | 10 +- src/model/barcodeReader.js | 114 +- src/model/twilio.js | 51 - 7 files changed, 1467 insertions(+), 1060 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 image.bmp delete mode 100644 src/model/twilio.js diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..1ce5db1 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Attach", + "port": 9229, + "request": "attach", + "skipFiles": [ + "/**" + ], + "type": "pwa-node" + }, + ] +} \ No newline at end of file diff --git a/image.bmp b/image.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b631e9f55bfe7f1298af41aa45938e3f3c2894c1 GIT binary patch literal 443510 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 literal 0 HcmV?d00001 diff --git a/package-lock.json b/package-lock.json index 8bda8ea..794215c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,15 +9,450 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "@zxing/library": "^0.18.4", "dotenv": "^8.2.0", "express": "^4.17.1", "ext-name": "^5.0.0", + "jimp": "^0.16.1", "node-fetch": "^2.6.1", "nodemon": "^2.0.7", - "quagga": "^0.12.1", "uuid": "^8.3.2" } }, + "node_modules/@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@jimp/bmp": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.1.tgz", + "integrity": "sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "bmp-js": "^0.1.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/core": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.16.1.tgz", + "integrity": "sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "node_modules/@jimp/custom": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.16.1.tgz", + "integrity": "sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.16.1" + } + }, + "node_modules/@jimp/gif": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.16.1.tgz", + "integrity": "sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "gifwrap": "^0.9.2", + "omggif": "^1.0.9" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/jpeg": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.16.1.tgz", + "integrity": "sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "jpeg-js": "0.4.2" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/jpeg/node_modules/jpeg-js": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz", + "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==" + }, + "node_modules/@jimp/plugin-blit": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz", + "integrity": "sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-blur": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz", + "integrity": "sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-circle": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz", + "integrity": "sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-color": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.16.1.tgz", + "integrity": "sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "tinycolor2": "^1.4.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-contain": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz", + "integrity": "sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-cover": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz", + "integrity": "sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5", + "@jimp/plugin-scale": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-crop": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz", + "integrity": "sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-displace": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz", + "integrity": "sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-dither": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz", + "integrity": "sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-fisheye": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz", + "integrity": "sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-flip": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz", + "integrity": "sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-rotate": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-gaussian": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz", + "integrity": "sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-invert": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz", + "integrity": "sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-mask": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz", + "integrity": "sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-normalize": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz", + "integrity": "sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-print": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.16.1.tgz", + "integrity": "sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "load-bmfont": "^1.4.0" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-resize": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz", + "integrity": "sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-rotate": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz", + "integrity": "sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blit": ">=0.3.5", + "@jimp/plugin-crop": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-scale": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz", + "integrity": "sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-shadow": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz", + "integrity": "sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-blur": ">=0.3.5", + "@jimp/plugin-resize": ">=0.3.5" + } + }, + "node_modules/@jimp/plugin-threshold": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz", + "integrity": "sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5", + "@jimp/plugin-color": ">=0.8.0", + "@jimp/plugin-resize": ">=0.8.0" + } + }, + "node_modules/@jimp/plugins": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.16.1.tgz", + "integrity": "sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.16.1", + "@jimp/plugin-blur": "^0.16.1", + "@jimp/plugin-circle": "^0.16.1", + "@jimp/plugin-color": "^0.16.1", + "@jimp/plugin-contain": "^0.16.1", + "@jimp/plugin-cover": "^0.16.1", + "@jimp/plugin-crop": "^0.16.1", + "@jimp/plugin-displace": "^0.16.1", + "@jimp/plugin-dither": "^0.16.1", + "@jimp/plugin-fisheye": "^0.16.1", + "@jimp/plugin-flip": "^0.16.1", + "@jimp/plugin-gaussian": "^0.16.1", + "@jimp/plugin-invert": "^0.16.1", + "@jimp/plugin-mask": "^0.16.1", + "@jimp/plugin-normalize": "^0.16.1", + "@jimp/plugin-print": "^0.16.1", + "@jimp/plugin-resize": "^0.16.1", + "@jimp/plugin-rotate": "^0.16.1", + "@jimp/plugin-scale": "^0.16.1", + "@jimp/plugin-shadow": "^0.16.1", + "@jimp/plugin-threshold": "^0.16.1", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/png": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.16.1.tgz", + "integrity": "sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "pngjs": "^3.3.3" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/tiff": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.16.1.tgz", + "integrity": "sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "utif": "^2.0.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.16.1.tgz", + "integrity": "sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.16.1", + "@jimp/gif": "^0.16.1", + "@jimp/jpeg": "^0.16.1", + "@jimp/png": "^0.16.1", + "@jimp/tiff": "^0.16.1", + "timm": "^1.6.1" + }, + "peerDependencies": { + "@jimp/custom": ">=0.3.5" + } + }, + "node_modules/@jimp/utils": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.16.1.tgz", + "integrity": "sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "regenerator-runtime": "^0.13.3" + } + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -37,6 +472,26 @@ "node": ">=6" } }, + "node_modules/@zxing/library": { + "version": "0.18.4", + "resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.18.4.tgz", + "integrity": "sha512-FZ6n3R3QzCPYcKjfHenl6JqKf5XHBo5S1sD7Cv85PFc9F8Emr/hqFgPA3k+ebI88leXmT7ZM42F/vn1dP91z2Q==", + "dependencies": { + "ts-custom-error": "^3.0.0" + }, + "engines": { + "node": ">= 10.4.0" + }, + "optionalDependencies": { + "@zxing/text-encoding": "~0.9.0" + } + }, + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -54,21 +509,6 @@ "node": ">= 0.6" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", @@ -144,6 +584,11 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, "node_modules/anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", @@ -161,52 +606,29 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } + "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/binary-extensions": { "version": "2.2.0", @@ -216,6 +638,11 @@ "node": ">=8" } }, + "node_modules/bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" + }, "node_modules/body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -290,6 +717,37 @@ "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-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -345,11 +803,6 @@ "node": ">=6" } }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, "node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -441,17 +894,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "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", @@ -505,11 +947,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", @@ -518,30 +955,6 @@ "node": ">=8" } }, - "node_modules/cwise-compiler": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", - "integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=", - "dependencies": { - "uniq": "^1.0.0" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz", - "integrity": "sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo=" - }, "node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -574,14 +987,6 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "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/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -595,6 +1000,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -619,15 +1029,6 @@ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -675,6 +1076,11 @@ "node": ">= 0.6" } }, + "node_modules/exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" + }, "node_modules/express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -751,28 +1157,13 @@ "node": ">=4" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "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==" - }, - "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==" + "node_modules/file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", + "engines": { + "node": ">=6" + } }, "node_modules/fill-range": { "version": "7.0.1", @@ -815,27 +1206,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -865,24 +1235,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/get-pixels": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/get-pixels/-/get-pixels-3.3.2.tgz", - "integrity": "sha512-6ar+8yPxRd1pskEcl2GSEu1La0+xYRjjnkby6AYiRDDwZ0tJbPQmHnSeH9fGLskT8kvR0OukVgtZLcsENF9YKQ==", - "dependencies": { - "data-uri-to-buffer": "0.0.3", - "jpeg-js": "^0.3.2", - "mime-types": "^2.0.1", - "ndarray": "^1.0.13", - "ndarray-pack": "^1.1.1", - "node-bitmap": "0.0.1", - "omggif": "^1.0.5", - "parse-data-uri": "^0.2.0", - "pngjs": "^3.3.3", - "request": "^2.44.0", - "through": "^2.3.4" - } - }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -894,29 +1246,15 @@ "node": ">=6" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "node_modules/gifwrap": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz", + "integrity": "sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==", "dependencies": { - "assert-plus": "^1.0.0" + "image-q": "^1.1.1", + "omggif": "^1.0.10" } }, - "node_modules/gl-mat2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gl-mat2/-/gl-mat2-1.0.1.tgz", - "integrity": "sha1-FCUFcwpcL+Hp8l2ezj0NbMJxCjA=" - }, - "node_modules/gl-vec2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/gl-vec2/-/gl-vec2-1.3.0.tgz", - "integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==" - }, - "node_modules/gl-vec3": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gl-vec3/-/gl-vec3-1.1.3.tgz", - "integrity": "sha512-jduKUqT0SGH02l8Yl+mV1yVsDfYgQAJyXGxkJQGyxPLHRiW25DwVIRPt6uvhrEMHftJfqhqKthRcyZqNEl9Xdw==" - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -928,6 +1266,15 @@ "node": ">= 6" } }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, "node_modules/global-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", @@ -968,27 +1315,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -1025,20 +1351,6 @@ "node": ">= 0.6" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -1050,11 +1362,38 @@ "node": ">=0.10.0" } }, + "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-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, + "node_modules/image-q": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", + "integrity": "sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=", + "engines": { + "node": ">=0.9.0" + } + }, "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -1081,11 +1420,6 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" }, - "node_modules/iota-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", - "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=" - }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -1105,11 +1439,6 @@ "node": ">=8" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "node_modules/is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -1137,6 +1466,11 @@ "node": ">=8" } }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, "node_modules/is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", @@ -1213,55 +1547,23 @@ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/jpeg-js": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz", - "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "node_modules/jimp": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.16.1.tgz", + "integrity": "sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw==", + "dependencies": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.16.1", + "@jimp/plugins": "^0.16.1", + "@jimp/types": "^0.16.1", + "regenerator-runtime": "^0.13.3" + } }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "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==" - }, - "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=" - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "node_modules/keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -1281,10 +1583,20 @@ "node": ">=8" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "node_modules/load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "dependencies": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } }, "node_modules/lowercase-keys": { "version": "1.0.1", @@ -1375,6 +1687,14 @@ "node": ">=4" } }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -1391,34 +1711,22 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "node_modules/ndarray": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", - "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", - "dependencies": { - "iota-array": "^1.0.0", - "is-buffer": "^1.0.2" - } - }, - "node_modules/ndarray-linear-interpolate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ndarray-linear-interpolate/-/ndarray-linear-interpolate-1.0.0.tgz", - "integrity": "sha1-eLySuFuavBW25n7mWCj54hN65ys=" - }, - "node_modules/ndarray-pack": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", - "integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=", - "dependencies": { - "cwise-compiler": "^1.1.2", - "ndarray": "^1.0.13" - } - }, "node_modules/negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", @@ -1427,14 +1735,6 @@ "node": ">= 0.6" } }, - "node_modules/node-bitmap": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz", - "integrity": "sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE=", - "engines": { - "node": ">=v0.6.5" - } - }, "node_modules/node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -1501,14 +1801,6 @@ "node": ">=8" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, "node_modules/omggif": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", @@ -1563,14 +1855,35 @@ "semver": "bin/semver.js" } }, - "node_modules/parse-data-uri": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz", - "integrity": "sha1-vwTYUd1ch7CrI45dAazklLYEtMk=", + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + }, + "node_modules/parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" + }, + "node_modules/parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", "dependencies": { - "data-uri-to-buffer": "0.0.3" + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" } }, + "node_modules/parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -1584,10 +1897,10 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "node_modules/phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" }, "node_modules/picomatch": { "version": "2.2.2", @@ -1600,6 +1913,17 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "dependencies": { + "pngjs": "^3.0.0" + }, + "bin": { + "pixelmatch": "bin/pixelmatch" + } + }, "node_modules/pngjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", @@ -1616,6 +1940,14 @@ "node": ">=4" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -1628,11 +1960,6 @@ "node": ">= 0.10" } }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -1647,14 +1974,6 @@ "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==", - "engines": { - "node": ">=6" - } - }, "node_modules/pupa": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", @@ -1674,23 +1993,6 @@ "node": ">=0.6" } }, - "node_modules/quagga": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/quagga/-/quagga-0.12.1.tgz", - "integrity": "sha1-b0jFbtmS3F/euQ2+5wacLhzd6Lc=", - "dependencies": { - "get-pixels": "^3.2.3", - "gl-mat2": "^1.0.0", - "gl-vec2": "^1.0.0", - "gl-vec3": "^1.0.3", - "lodash": "^4.17.4", - "ndarray": "^1.0.18", - "ndarray-linear-interpolate": "^1.0.0" - }, - "engines": { - "node": ">= 4.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -1738,6 +2040,11 @@ "node": ">=8.10.0" } }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, "node_modules/registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -1760,53 +2067,6 @@ "node": ">=8" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -1825,6 +2085,11 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "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/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -1939,30 +2204,6 @@ "node": ">=0.10.0" } }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -2025,10 +2266,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "node_modules/timm": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" + }, + "node_modules/tinycolor2": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", + "engines": { + "node": "*" + } }, "node_modules/to-readable-stream": { "version": "1.0.0", @@ -2068,34 +2317,14 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "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" - }, + "node_modules/ts-custom-error": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.0.tgz", + "integrity": "sha512-cBvC2QjtvJ9JfWLvstVnI45Y46Y5dMxIaG1TDMGAD/R87hpvqFL+7LhvUDhnRCfOnx/xitollFWWvUKKKhbN0A==", "engines": { - "node": "*" + "node": ">=8.0.0" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, "node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", @@ -2145,11 +2374,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -2195,14 +2419,6 @@ "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -2214,80 +2430,455 @@ "node": ">=4" } }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" + "node_modules/utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "dependencies": { + "pako": "^1.0.5" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "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/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" + }, + "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/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + } + }, + "dependencies": { + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@jimp/bmp": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.1.tgz", + "integrity": "sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "bmp-js": "^0.1.0" + } + }, + "@jimp/core": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.16.1.tgz", + "integrity": "sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "any-base": "^1.1.0", + "buffer": "^5.2.0", + "exif-parser": "^0.1.12", + "file-type": "^9.0.0", + "load-bmfont": "^1.3.1", + "mkdirp": "^0.5.1", + "phin": "^2.9.1", + "pixelmatch": "^4.0.2", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/custom": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.16.1.tgz", + "integrity": "sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/core": "^0.16.1" + } + }, + "@jimp/gif": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.16.1.tgz", + "integrity": "sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "gifwrap": "^0.9.2", + "omggif": "^1.0.9" + } + }, + "@jimp/jpeg": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.16.1.tgz", + "integrity": "sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "jpeg-js": "0.4.2" + }, + "dependencies": { + "jpeg-js": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz", + "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==" + } + } + }, + "@jimp/plugin-blit": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz", + "integrity": "sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-blur": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz", + "integrity": "sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-circle": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz", + "integrity": "sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-color": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.16.1.tgz", + "integrity": "sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "tinycolor2": "^1.4.1" + } + }, + "@jimp/plugin-contain": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz", + "integrity": "sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-cover": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz", + "integrity": "sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-crop": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz", + "integrity": "sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-displace": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz", + "integrity": "sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-dither": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz", + "integrity": "sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-fisheye": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz", + "integrity": "sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-flip": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz", + "integrity": "sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-gaussian": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz", + "integrity": "sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-invert": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz", + "integrity": "sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-mask": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz", + "integrity": "sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } + }, + "@jimp/plugin-normalize": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz", + "integrity": "sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" + "@jimp/plugin-print": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.16.1.tgz", + "integrity": "sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "load-bmfont": "^1.4.0" } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" + "@jimp/plugin-resize": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz", + "integrity": "sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "@jimp/plugin-rotate": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz", + "integrity": "sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" } }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@jimp/plugin-scale": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz", + "integrity": "sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "@jimp/plugin-shadow": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz", + "integrity": "sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" + } }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "@jimp/plugin-threshold": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz", + "integrity": "sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1" } }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "engines": { - "node": ">=8" + "@jimp/plugins": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.16.1.tgz", + "integrity": "sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/plugin-blit": "^0.16.1", + "@jimp/plugin-blur": "^0.16.1", + "@jimp/plugin-circle": "^0.16.1", + "@jimp/plugin-color": "^0.16.1", + "@jimp/plugin-contain": "^0.16.1", + "@jimp/plugin-cover": "^0.16.1", + "@jimp/plugin-crop": "^0.16.1", + "@jimp/plugin-displace": "^0.16.1", + "@jimp/plugin-dither": "^0.16.1", + "@jimp/plugin-fisheye": "^0.16.1", + "@jimp/plugin-flip": "^0.16.1", + "@jimp/plugin-gaussian": "^0.16.1", + "@jimp/plugin-invert": "^0.16.1", + "@jimp/plugin-mask": "^0.16.1", + "@jimp/plugin-normalize": "^0.16.1", + "@jimp/plugin-print": "^0.16.1", + "@jimp/plugin-resize": "^0.16.1", + "@jimp/plugin-rotate": "^0.16.1", + "@jimp/plugin-scale": "^0.16.1", + "@jimp/plugin-shadow": "^0.16.1", + "@jimp/plugin-threshold": "^0.16.1", + "timm": "^1.6.1" + } + }, + "@jimp/png": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.16.1.tgz", + "integrity": "sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/utils": "^0.16.1", + "pngjs": "^3.3.3" } - } - }, - "dependencies": { + }, + "@jimp/tiff": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.16.1.tgz", + "integrity": "sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "utif": "^2.0.1" + } + }, + "@jimp/types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.16.1.tgz", + "integrity": "sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/bmp": "^0.16.1", + "@jimp/gif": "^0.16.1", + "@jimp/jpeg": "^0.16.1", + "@jimp/png": "^0.16.1", + "@jimp/tiff": "^0.16.1", + "timm": "^1.6.1" + } + }, + "@jimp/utils": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.16.1.tgz", + "integrity": "sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw==", + "requires": { + "@babel/runtime": "^7.7.2", + "regenerator-runtime": "^0.13.3" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -2301,6 +2892,21 @@ "defer-to-connect": "^1.0.1" } }, + "@zxing/library": { + "version": "0.18.4", + "resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.18.4.tgz", + "integrity": "sha512-FZ6n3R3QzCPYcKjfHenl6JqKf5XHBo5S1sD7Cv85PFc9F8Emr/hqFgPA3k+ebI88leXmT7ZM42F/vn1dP91z2Q==", + "requires": { + "@zxing/text-encoding": "~0.9.0", + "ts-custom-error": "^3.0.0" + } + }, + "@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -2315,17 +2921,6 @@ "negotiator": "0.6.2" } }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "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-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", @@ -2382,6 +2977,11 @@ "color-convert": "^2.0.1" } }, + "any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", @@ -2396,52 +2996,26 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" }, + "bmp-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", + "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" + }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", @@ -2506,6 +3080,20 @@ "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-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + }, "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", @@ -2545,11 +3133,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -2620,14 +3203,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2669,37 +3244,11 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" }, - "cwise-compiler": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cwise-compiler/-/cwise-compiler-1.1.3.tgz", - "integrity": "sha1-9NZnQQ6FDToxOn0tt7HlBbsDTMU=", - "requires": { - "uniq": "^1.0.0" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-uri-to-buffer": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.3.tgz", - "integrity": "sha1-GK6XmmoMqZSwYlhTkW0mYruuCxo=" - }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -2726,11 +3275,6 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -2741,6 +3285,11 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -2759,15 +3308,6 @@ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -2806,6 +3346,11 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, + "exif-parser": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", + "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" + }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", @@ -2875,25 +3420,10 @@ "sort-keys-length": "^1.0.0" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "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==" - }, - "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==" + "file-type": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", + "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" }, "fill-range": { "version": "7.0.1", @@ -2932,21 +3462,6 @@ } } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", @@ -2963,24 +3478,6 @@ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, - "get-pixels": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/get-pixels/-/get-pixels-3.3.2.tgz", - "integrity": "sha512-6ar+8yPxRd1pskEcl2GSEu1La0+xYRjjnkby6AYiRDDwZ0tJbPQmHnSeH9fGLskT8kvR0OukVgtZLcsENF9YKQ==", - "requires": { - "data-uri-to-buffer": "0.0.3", - "jpeg-js": "^0.3.2", - "mime-types": "^2.0.1", - "ndarray": "^1.0.13", - "ndarray-pack": "^1.1.1", - "node-bitmap": "0.0.1", - "omggif": "^1.0.5", - "parse-data-uri": "^0.2.0", - "pngjs": "^3.3.3", - "request": "^2.44.0", - "through": "^2.3.4" - } - }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -2989,29 +3486,15 @@ "pump": "^3.0.0" } }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "gifwrap": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz", + "integrity": "sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==", "requires": { - "assert-plus": "^1.0.0" + "image-q": "^1.1.1", + "omggif": "^1.0.10" } }, - "gl-mat2": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gl-mat2/-/gl-mat2-1.0.1.tgz", - "integrity": "sha1-FCUFcwpcL+Hp8l2ezj0NbMJxCjA=" - }, - "gl-vec2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/gl-vec2/-/gl-vec2-1.3.0.tgz", - "integrity": "sha512-YiqaAuNsheWmUV0Sa8k94kBB0D6RWjwZztyO+trEYS8KzJ6OQB/4686gdrf59wld4hHFIvaxynO3nRxpk1Ij/A==" - }, - "gl-vec3": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gl-vec3/-/gl-vec3-1.1.3.tgz", - "integrity": "sha512-jduKUqT0SGH02l8Yl+mV1yVsDfYgQAJyXGxkJQGyxPLHRiW25DwVIRPt6uvhrEMHftJfqhqKthRcyZqNEl9Xdw==" - }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -3020,6 +3503,15 @@ "is-glob": "^4.0.1" } }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, "global-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", @@ -3051,20 +3543,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -3092,16 +3570,6 @@ "toidentifier": "1.0.0" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -3110,11 +3578,21 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" }, + "image-q": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", + "integrity": "sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=" + }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", @@ -3135,11 +3613,6 @@ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" }, - "iota-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/iota-array/-/iota-array-1.0.0.tgz", - "integrity": "sha1-ge9X/l0FgUzVjCSDYyqZwwoOgIc=" - }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -3153,11 +3626,6 @@ "binary-extensions": "^2.0.0" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -3176,6 +3644,11 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", @@ -3228,52 +3701,23 @@ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jpeg-js": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz", - "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "jimp": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.16.1.tgz", + "integrity": "sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw==", + "requires": { + "@babel/runtime": "^7.7.2", + "@jimp/custom": "^0.16.1", + "@jimp/plugins": "^0.16.1", + "@jimp/types": "^0.16.1", + "regenerator-runtime": "^0.13.3" + } }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "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==" - }, - "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=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", @@ -3290,10 +3734,20 @@ "package-json": "^6.3.0" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "load-bmfont": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", + "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", + "requires": { + "buffer-equal": "0.0.1", + "mime": "^1.3.4", + "parse-bmfont-ascii": "^1.0.3", + "parse-bmfont-binary": "^1.0.5", + "parse-bmfont-xml": "^1.1.4", + "phin": "^2.9.1", + "xhr": "^2.0.1", + "xtend": "^4.0.0" + } }, "lowercase-keys": { "version": "1.0.1", @@ -3353,6 +3807,14 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -3366,44 +3828,24 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "ndarray": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/ndarray/-/ndarray-1.0.19.tgz", - "integrity": "sha512-B4JHA4vdyZU30ELBw3g7/p9bZupyew5a7tX1Y/gGeF2hafrPaQZhgrGQfsvgfYbgdFZjYwuEcnaobeM/WMW+HQ==", - "requires": { - "iota-array": "^1.0.0", - "is-buffer": "^1.0.2" - } - }, - "ndarray-linear-interpolate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ndarray-linear-interpolate/-/ndarray-linear-interpolate-1.0.0.tgz", - "integrity": "sha1-eLySuFuavBW25n7mWCj54hN65ys=" - }, - "ndarray-pack": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ndarray-pack/-/ndarray-pack-1.2.1.tgz", - "integrity": "sha1-jK6+qqJNXs9w/4YCBjeXfajuWFo=", - "requires": { - "cwise-compiler": "^1.1.2", - "ndarray": "^1.0.13" - } - }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, - "node-bitmap": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz", - "integrity": "sha1-GA6scAPgxwdhjvMTaPYvhLKmkJE=" - }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", @@ -3444,11 +3886,6 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, "omggif": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", @@ -3493,14 +3930,35 @@ } } }, - "parse-data-uri": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/parse-data-uri/-/parse-data-uri-0.2.0.tgz", - "integrity": "sha1-vwTYUd1ch7CrI45dAazklLYEtMk=", + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parse-bmfont-ascii": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", + "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" + }, + "parse-bmfont-binary": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", + "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" + }, + "parse-bmfont-xml": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", + "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", "requires": { - "data-uri-to-buffer": "0.0.3" + "xml-parse-from-string": "^1.0.0", + "xml2js": "^0.4.5" } }, + "parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -3511,16 +3969,24 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "phin": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", + "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" }, + "pixelmatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", + "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", + "requires": { + "pngjs": "^3.0.0" + } + }, "pngjs": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", @@ -3531,6 +3997,11 @@ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -3540,11 +4011,6 @@ "ipaddr.js": "1.9.1" } }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -3559,11 +4025,6 @@ "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==" - }, "pupa": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", @@ -3577,20 +4038,6 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" }, - "quagga": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/quagga/-/quagga-0.12.1.tgz", - "integrity": "sha1-b0jFbtmS3F/euQ2+5wacLhzd6Lc=", - "requires": { - "get-pixels": "^3.2.3", - "gl-mat2": "^1.0.0", - "gl-vec2": "^1.0.0", - "gl-vec3": "^1.0.3", - "lodash": "^4.17.4", - "ndarray": "^1.0.18", - "ndarray-linear-interpolate": "^1.0.0" - } - }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -3626,6 +4073,11 @@ "picomatch": "^2.2.1" } }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, "registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -3642,45 +4094,6 @@ "rc": "^1.2.8" } }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", @@ -3699,6 +4112,11 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -3798,22 +4216,6 @@ "sort-keys": "^1.0.0" } }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -3855,10 +4257,15 @@ "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==" }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "timm": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", + "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" + }, + "tinycolor2": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", + "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" }, "to-readable-stream": { "version": "1.0.0", @@ -3886,27 +4293,10 @@ "nopt": "~1.0.10" } }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "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" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "ts-custom-error": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.2.0.tgz", + "integrity": "sha512-cBvC2QjtvJ9JfWLvstVnI45Y46Y5dMxIaG1TDMGAD/R87hpvqFL+7LhvUDhnRCfOnx/xitollFWWvUKKKhbN0A==" }, "type-fest": { "version": "0.8.1", @@ -3953,11 +4343,6 @@ } } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -3991,14 +4376,6 @@ "xdg-basedir": "^4.0.0" } }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", @@ -4007,6 +4384,14 @@ "prepend-http": "^2.0.0" } }, + "utif": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", + "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", + "requires": { + "pako": "^1.0.5" + } + }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", @@ -4022,16 +4407,6 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", @@ -4060,6 +4435,41 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xml-parse-from-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", + "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" + }, + "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==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" } } } diff --git a/package.json b/package.json index 3ef52f7..6a7d69c 100644 --- a/package.json +++ b/package.json @@ -19,12 +19,13 @@ }, "homepage": "https://github.com/reinaldoalmeida/barcode#readme", "dependencies": { + "@zxing/library": "^0.18.4", "dotenv": "^8.2.0", "express": "^4.17.1", "ext-name": "^5.0.0", + "jimp": "^0.16.1", "node-fetch": "^2.6.1", "nodemon": "^2.0.7", - "quagga": "^0.12.1", "uuid": "^8.3.2" } } diff --git a/src/controllers/BarCodeController.js b/src/controllers/BarCodeController.js index de1ff32..c26533a 100644 --- a/src/controllers/BarCodeController.js +++ b/src/controllers/BarCodeController.js @@ -8,16 +8,20 @@ module.exports = { if (!image) return res.status(404).send({ barcode: "Image is not defined" }); + // download image const fileDownloaded = await download.barcodeDownload(image); if (!fileDownloaded) return res.status(500).send({ barcode: "BarCode read failed" }); + // read barcode from image const code = await reader.barcodeReader(fileDownloaded); + + // remove downloaded image await remove.barcodeRemove(fileDownloaded); + if (!code) return res.status(500).send({ barcode: "BarCode read failed" }); - code.then((code) => { - return res.status(200).send({ barcode: code }); - }); + + return res.status(200).send({ barcode: code.text }); }, }; diff --git a/src/model/barcodeReader.js b/src/model/barcodeReader.js index eacf7ce..a655ad3 100644 --- a/src/model/barcodeReader.js +++ b/src/model/barcodeReader.js @@ -1,48 +1,74 @@ -const Quagga = require("quagga").default; -/** - * - * Barcode Decoders - * - * - code_128_reader (default) - ean_reader - ean_8_reader - code_39_reader - code_39_vin_reader - codabar_reader - upc_reader - upc_e_reader - i2of5_reader - 2of5_reader - code_93_reader -*/ +const fs = require("fs"); +const path = require("path"); +const process = require("process"); +const { v4: uuidv4 } = require("uuid"); +const Jimp = require("jimp"); +const { + BinaryBitmap, + RGBLuminanceSource, + HybridBinarizer, + DecodeHintType, + MultiFormatReader, + BarcodeFormat, +} = require("@zxing/library"); module.exports.barcodeReader = async (image) => { - return await Quagga.decodeSingle( - { - src: image, - numOfWorkers: 0, // Needs to be 0 when used within node - inputStream: { - size: 800, // restrict input-size to be 800px in width (long-side) - }, - decoder: { - readers: ["code_128_reader"], - debug: { - drawBoundingBox: false, - showFrequency: false, - drawScanline: false, - showPattern: false, - }, - multiple: false, - }, - }, - (result) => { - if (result.codeResult) { - return result.codeResult.code; - } else { - console.log("[ERROR][500][barcodeReader]", image); - return false; - } - } + // make directory and file name + const randomName = uuidv4(); + const filename = `${randomName}.bmp`; + const dir = path.join(process.cwd(), "barcodes"); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + const imagePathDest = path.join(dir, filename); + + // convert image to bitmap + const bmp = await Jimp.read(image) + .then((bmp) => { + return bmp + .greyscale() // set greyscale + .write(imagePathDest); // save + }) + .catch((err) => { + console.error(err); + }); + + let pixels = []; + for (let p = 0; p < bmp.bitmap.width * bmp.bitmap.height * 4; p += 4) { + const r = bmp.bitmap.data[p]; + const g = bmp.bitmap.data[p + 1]; + const b = bmp.bitmap.data[p + 2]; + const a = bmp.bitmap.data[p + 3]; + + let rgba = r; + rgba = (rgba << 8) + g; + rgba = (rgba << 8) + b; + rgba = (rgba << 8) + a; + + pixels.push(rgba); + } + + const hints = new Map(); + const formats = [BarcodeFormat.EAN_13]; + hints.set(DecodeHintType.POSSIBLE_FORMATS, formats); + const reader = new MultiFormatReader(); + reader.setHints(hints); + + const luminanceSource = new RGBLuminanceSource( + Int32Array.from(pixels), + bmp.bitmap.width, + bmp.bitmap.height ); + + const binaryBitmap = new BinaryBitmap(new HybridBinarizer(luminanceSource)); + + try { + const result = reader.decode(binaryBitmap); + fs.unlink(imagePathDest, () => {}); + return result; + } catch (err) { + console.log(`[ERROR][500][barcodeReader => ${err}`); + fs.unlink(imagePathDest, () => {}); + return false; + } }; diff --git a/src/model/twilio.js b/src/model/twilio.js deleted file mode 100644 index edee592..0000000 --- a/src/model/twilio.js +++ /dev/null @@ -1,51 +0,0 @@ -const extName = require("ext-name"); -const path = require("path"); -const process = require("process"); -const fs = require("fs"); -const fetch = require("node-fetch"); - -const PUBLIC_DIR = "./barcodes"; - -module.exports.downloadBarCode = async (req) => { - let images = []; - - if (!fs.existsSync(PUBLIC_DIR)) { - fs.mkdirSync(path.resolve(PUBLIC_DIR)); - } - - async function SaveMedia(mediaItem) { - const { mediaUrl, filename } = mediaItem; - - const fullPath = path.join( - process.cwd(), - `${PUBLIC_DIR}`, - `${filename}` - ); - - if (!fs.existsSync(fullPath)) { - const response = await fetch(mediaUrl); - const fileStream = fs.createWriteStream(fullPath); - response.body.pipe(fileStream); - // TODO: deleteMediaItem(mediaItem) on Twilio; - } - images.push(filename); - } - - const { body } = req; - const { NumMedia, MessageSid } = body; - let saveOperations = []; - const mediaItems = []; - - console.log("body", body); - for (let i = 0; i < NumMedia; i++) { - const mediaUrl = body[`MediaUrl${i}`]; - const contentType = body[`MediaContentType${i}`]; - const extension = extName.mime(contentType)[0].ext; - const mediaSid = path.basename(new URL(mediaUrl).pathname); - const filename = `${mediaSid}.${extension}`; - mediaItems.push({ mediaSid, MessageSid, mediaUrl, filename }); - saveOperations = mediaItems.map((mediaItem) => SaveMedia(mediaItem)); - } - - return await Promise.all(saveOperations); -};