📊 Added an endpoint for library stats

This commit is contained in:
2022-02-10 21:43:44 -08:00
parent 163dad403c
commit 97ca06181d
5 changed files with 704 additions and 15 deletions

441
package-lock.json generated
View File

@@ -20,6 +20,7 @@
"array-to-ndjson": "^1.0.1",
"axios": "^0.25.0",
"axios-retry": "^3.2.4",
"bree": "^7.1.5",
"chokidar": "^3.5.3",
"delay": "^5.0.0",
"dotenv": "^10.0.0",
@@ -693,6 +694,14 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
"node_modules/@breejs/later": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@breejs/later/-/later-4.1.0.tgz",
"integrity": "sha512-QgGnZ9b7o4k0Ai1ZbTJWwZpZcFK9d+Gb+DyNt4UT9x6IEIs5HVu0iIlmgzGqN+t9MoJSpSPo9S/Mm51UtHr3JA==",
"engines": {
"node": ">= 10"
}
},
"node_modules/@canvas/image": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@canvas/image/-/image-1.0.1.tgz",
@@ -1919,8 +1928,7 @@
"node_modules/@types/lodash": {
"version": "4.14.178",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz",
"integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==",
"dev": true
"integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw=="
},
"node_modules/@types/mkdirp": {
"version": "1.0.2",
@@ -2824,6 +2832,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/boolean": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz",
"integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w=="
},
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -2844,6 +2857,27 @@
"node": ">=8"
}
},
"node_modules/bree": {
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/bree/-/bree-7.1.5.tgz",
"integrity": "sha512-YAs4VQDjc6p3NhNNHBkS9NXK4wryeMq7Y/SCMcgFh0cSD4oXk7B9v53/cqzoejdelD30KEliumzrd4awka+YhQ==",
"dependencies": {
"@breejs/later": "^4.1.0",
"boolean": "^3.1.4",
"combine-errors": "^3.0.3",
"cron-validate": "^1.4.3",
"debug": "^4.3.3",
"human-interval": "^2.0.1",
"is-string-and-not-blank": "^0.0.2",
"is-valid-path": "^0.1.1",
"ms": "^2.1.3",
"p-wait-for": "3",
"safe-timers": "^1.1.0"
},
"engines": {
"node": ">= 12.11.0"
}
},
"node_modules/browser-process-hrtime": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
@@ -3248,6 +3282,15 @@
"simple-swizzle": "^0.2.2"
}
},
"node_modules/combine-errors": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/combine-errors/-/combine-errors-3.0.3.tgz",
"integrity": "sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY=",
"dependencies": {
"custom-error-instance": "2.1.1",
"lodash.uniqby": "4.5.0"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -3395,6 +3438,14 @@
"node": ">=0.8"
}
},
"node_modules/cron-validate": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/cron-validate/-/cron-validate-1.4.3.tgz",
"integrity": "sha512-N+qKw019oQBEPIP5Qwi8Z5XelQ00ThN6Maahwv+9UGu2u/b/MPb35zngMQI0T8pBoNiBrIXGlhvsmspNSYae/w==",
"dependencies": {
"yup": "0.32.9"
}
},
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -3430,6 +3481,11 @@
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
},
"node_modules/custom-error-instance": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/custom-error-instance/-/custom-error-instance-2.1.1.tgz",
"integrity": "sha1-PPY5FIemYppiR+sMoM4ACBt+Nho="
},
"node_modules/d": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
@@ -5210,6 +5266,14 @@
"node": ">= 6"
}
},
"node_modules/human-interval": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/human-interval/-/human-interval-2.0.1.tgz",
"integrity": "sha512-r4Aotzf+OtKIGQCB3odUowy4GfUDTy3aTWTfLd7ZF2gBCy3XW3v/dJLRefZnOFFnjqs5B1TypvS8WarpBkYUNQ==",
"dependencies": {
"numbered": "^1.1.0"
}
},
"node_modules/human-signals": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
@@ -5550,6 +5614,36 @@
"node": ">=8"
}
},
"node_modules/is-invalid-path": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
"integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=",
"dependencies": {
"is-glob": "^2.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-invalid-path/node_modules/is-extglob": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-invalid-path/node_modules/is-glob": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"dependencies": {
"is-extglob": "^1.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-nan": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
@@ -5672,6 +5766,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-string-and-not-blank": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/is-string-and-not-blank/-/is-string-and-not-blank-0.0.2.tgz",
"integrity": "sha512-FyPGAbNVyZpTeDCTXnzuwbu9/WpNXbCfbHXLpCRpN4GANhS00eEIP5Ef+k5HYSNIzIhdN9zRDoBj6unscECvtQ==",
"dependencies": {
"is-string-blank": "^1.0.1"
},
"engines": {
"node": ">=6.4.0"
}
},
"node_modules/is-string-blank": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz",
"integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw=="
},
"node_modules/is-symbol": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
@@ -5703,6 +5813,17 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-valid-path": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
"integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=",
"dependencies": {
"is-invalid-path": "^0.1.0"
},
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-weakref": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
@@ -8366,6 +8487,51 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"node_modules/lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"node_modules/lodash._baseiteratee": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz",
"integrity": "sha1-NKm1VDVycnw9sueO2uPA6eZr0QI=",
"dependencies": {
"lodash._stringtopath": "~4.8.0"
}
},
"node_modules/lodash._basetostring": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
"integrity": "sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8="
},
"node_modules/lodash._baseuniq": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz",
"integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=",
"dependencies": {
"lodash._createset": "~4.0.0",
"lodash._root": "~3.0.0"
}
},
"node_modules/lodash._createset": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz",
"integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY="
},
"node_modules/lodash._root": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
},
"node_modules/lodash._stringtopath": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz",
"integrity": "sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ=",
"dependencies": {
"lodash._basetostring": "~4.12.0"
}
},
"node_modules/lodash.defaults": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
@@ -8429,6 +8595,15 @@
"integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
"dev": true
},
"node_modules/lodash.uniqby": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz",
"integrity": "sha1-o6F7v2LutiQPSRhG6XwcTipeHiE=",
"dependencies": {
"lodash._baseiteratee": "~4.7.0",
"lodash._baseuniq": "~4.6.0"
}
},
"node_modules/log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
@@ -9142,6 +9317,11 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/nanoclone": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz",
"integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA=="
},
"node_modules/napi-build-utils": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
@@ -11974,6 +12154,11 @@
"node": ">=0.10.0"
}
},
"node_modules/numbered": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/numbered/-/numbered-1.1.0.tgz",
"integrity": "sha512-pv/ue2Odr7IfYOO0byC1KgBI10wo5YDauLhxY6/saNzAdAs0r1SotGCPzzCLNPL0xtrAwWRialLu23AAu9xO1g=="
},
"node_modules/nwsapi": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
@@ -12313,6 +12498,20 @@
"node": ">=4"
}
},
"node_modules/p-wait-for": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz",
"integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==",
"dependencies": {
"p-timeout": "^3.0.0"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -12707,6 +12906,11 @@
"node": ">=6"
}
},
"node_modules/property-expr": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz",
"integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA=="
},
"node_modules/psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
@@ -13145,6 +13349,11 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/safe-timers": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-timers/-/safe-timers-1.1.0.tgz",
"integrity": "sha1-xYroMl2407BnMi8KTvOgytZ6rYM="
},
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -14073,6 +14282,11 @@
"node": ">=0.6"
}
},
"node_modules/toposort": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
"integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA="
},
"node_modules/tough-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
@@ -14845,6 +15059,23 @@
"engines": {
"node": ">=6"
}
},
"node_modules/yup": {
"version": "0.32.9",
"resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz",
"integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==",
"dependencies": {
"@babel/runtime": "^7.10.5",
"@types/lodash": "^4.14.165",
"lodash": "^4.17.20",
"lodash-es": "^4.17.15",
"nanoclone": "^0.2.1",
"property-expr": "^2.0.4",
"toposort": "^2.0.2"
},
"engines": {
"node": ">=10"
}
}
},
"dependencies": {
@@ -15319,6 +15550,11 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
"@breejs/later": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/@breejs/later/-/later-4.1.0.tgz",
"integrity": "sha512-QgGnZ9b7o4k0Ai1ZbTJWwZpZcFK9d+Gb+DyNt4UT9x6IEIs5HVu0iIlmgzGqN+t9MoJSpSPo9S/Mm51UtHr3JA=="
},
"@canvas/image": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@canvas/image/-/image-1.0.1.tgz",
@@ -16296,8 +16532,7 @@
"@types/lodash": {
"version": "4.14.178",
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz",
"integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw==",
"dev": true
"integrity": "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw=="
},
"@types/mkdirp": {
"version": "1.0.2",
@@ -16964,6 +17199,11 @@
}
}
},
"boolean": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz",
"integrity": "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w=="
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -16981,6 +17221,24 @@
"fill-range": "^7.0.1"
}
},
"bree": {
"version": "7.1.5",
"resolved": "https://registry.npmjs.org/bree/-/bree-7.1.5.tgz",
"integrity": "sha512-YAs4VQDjc6p3NhNNHBkS9NXK4wryeMq7Y/SCMcgFh0cSD4oXk7B9v53/cqzoejdelD30KEliumzrd4awka+YhQ==",
"requires": {
"@breejs/later": "^4.1.0",
"boolean": "^3.1.4",
"combine-errors": "^3.0.3",
"cron-validate": "^1.4.3",
"debug": "^4.3.3",
"human-interval": "^2.0.1",
"is-string-and-not-blank": "^0.0.2",
"is-valid-path": "^0.1.1",
"ms": "^2.1.3",
"p-wait-for": "3",
"safe-timers": "^1.1.0"
}
},
"browser-process-hrtime": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
@@ -17287,6 +17545,15 @@
"simple-swizzle": "^0.2.2"
}
},
"combine-errors": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/combine-errors/-/combine-errors-3.0.3.tgz",
"integrity": "sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY=",
"requires": {
"custom-error-instance": "2.1.1",
"lodash.uniqby": "4.5.0"
}
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -17400,6 +17667,14 @@
"moment-timezone": "^0.5.31"
}
},
"cron-validate": {
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/cron-validate/-/cron-validate-1.4.3.tgz",
"integrity": "sha512-N+qKw019oQBEPIP5Qwi8Z5XelQ00ThN6Maahwv+9UGu2u/b/MPb35zngMQI0T8pBoNiBrIXGlhvsmspNSYae/w==",
"requires": {
"yup": "0.32.9"
}
},
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -17431,6 +17706,11 @@
}
}
},
"custom-error-instance": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/custom-error-instance/-/custom-error-instance-2.1.1.tgz",
"integrity": "sha1-PPY5FIemYppiR+sMoM4ACBt+Nho="
},
"d": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/d/-/d-0.1.1.tgz",
@@ -18817,6 +19097,14 @@
"debug": "4"
}
},
"human-interval": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/human-interval/-/human-interval-2.0.1.tgz",
"integrity": "sha512-r4Aotzf+OtKIGQCB3odUowy4GfUDTy3aTWTfLd7ZF2gBCy3XW3v/dJLRefZnOFFnjqs5B1TypvS8WarpBkYUNQ==",
"requires": {
"numbered": "^1.1.0"
}
},
"human-signals": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
@@ -19049,6 +19337,29 @@
"integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
"dev": true
},
"is-invalid-path": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz",
"integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=",
"requires": {
"is-glob": "^2.0.0"
},
"dependencies": {
"is-extglob": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
"integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
},
"is-glob": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"requires": {
"is-extglob": "^1.0.0"
}
}
}
},
"is-nan": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz",
@@ -19120,6 +19431,19 @@
"has-tostringtag": "^1.0.0"
}
},
"is-string-and-not-blank": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/is-string-and-not-blank/-/is-string-and-not-blank-0.0.2.tgz",
"integrity": "sha512-FyPGAbNVyZpTeDCTXnzuwbu9/WpNXbCfbHXLpCRpN4GANhS00eEIP5Ef+k5HYSNIzIhdN9zRDoBj6unscECvtQ==",
"requires": {
"is-string-blank": "^1.0.1"
}
},
"is-string-blank": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz",
"integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw=="
},
"is-symbol": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
@@ -19139,6 +19463,14 @@
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"dev": true
},
"is-valid-path": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz",
"integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=",
"requires": {
"is-invalid-path": "^0.1.0"
}
},
"is-weakref": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
@@ -21146,6 +21478,51 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"lodash-es": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"lodash._baseiteratee": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz",
"integrity": "sha1-NKm1VDVycnw9sueO2uPA6eZr0QI=",
"requires": {
"lodash._stringtopath": "~4.8.0"
}
},
"lodash._basetostring": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz",
"integrity": "sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8="
},
"lodash._baseuniq": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz",
"integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=",
"requires": {
"lodash._createset": "~4.0.0",
"lodash._root": "~3.0.0"
}
},
"lodash._createset": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz",
"integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY="
},
"lodash._root": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
"integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
},
"lodash._stringtopath": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz",
"integrity": "sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ=",
"requires": {
"lodash._basetostring": "~4.12.0"
}
},
"lodash.defaults": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
@@ -21209,6 +21586,15 @@
"integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
"dev": true
},
"lodash.uniqby": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz",
"integrity": "sha1-o6F7v2LutiQPSRhG6XwcTipeHiE=",
"requires": {
"lodash._baseiteratee": "~4.7.0",
"lodash._baseuniq": "~4.6.0"
}
},
"log-symbols": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
@@ -21651,6 +22037,11 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"nanoclone": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz",
"integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA=="
},
"napi-build-utils": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
@@ -23692,6 +24083,11 @@
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
},
"numbered": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/numbered/-/numbered-1.1.0.tgz",
"integrity": "sha512-pv/ue2Odr7IfYOO0byC1KgBI10wo5YDauLhxY6/saNzAdAs0r1SotGCPzzCLNPL0xtrAwWRialLu23AAu9xO1g=="
},
"nwsapi": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
@@ -23937,6 +24333,14 @@
"integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
"dev": true
},
"p-wait-for": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz",
"integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==",
"requires": {
"p-timeout": "^3.0.0"
}
},
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -24232,6 +24636,11 @@
}
}
},
"property-expr": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz",
"integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA=="
},
"psl": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
@@ -24541,6 +24950,11 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safe-timers": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-timers/-/safe-timers-1.1.0.tgz",
"integrity": "sha1-xYroMl2407BnMi8KTvOgytZ6rYM="
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
@@ -25281,6 +25695,11 @@
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"toposort": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz",
"integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA="
},
"tough-cookie": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
@@ -25883,6 +26302,20 @@
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true
},
"yup": {
"version": "0.32.9",
"resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz",
"integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==",
"requires": {
"@babel/runtime": "^7.10.5",
"@types/lodash": "^4.14.165",
"lodash": "^4.17.20",
"lodash-es": "^4.17.15",
"nanoclone": "^0.2.1",
"property-expr": "^2.0.4",
"toposort": "^2.0.2"
}
}
}
}

View File

@@ -49,6 +49,7 @@
"array-to-ndjson": "^1.0.1",
"axios": "^0.25.0",
"axios-retry": "^3.2.4",
"bree": "^7.1.5",
"chokidar": "^3.5.3",
"delay": "^5.0.0",
"dotenv": "^10.0.0",

View File

@@ -42,7 +42,7 @@ import {
} from "moleculer";
import { DbMixin } from "../mixins/db.mixin";
import Comic from "../models/comic.model";
import { explodePath, walkFolder } from "../utils/file.utils";
import { explodePath, walkFolder, getSizeOfDirectory } from "../utils/file.utils";
import { convertXMLToJSON } from "../utils/xml.utils";
import {
IExtractComicBookCoverErrorResponse,
@@ -400,7 +400,7 @@ export default class ImportService extends Service {
];
}>
) => {
// 2a. Elasticsearch query
// 2a. Elasticsearch query
const { queryObjects } = ctx.params;
// construct the query for ElasticSearch
let elasticSearchQuery = {};
@@ -461,8 +461,60 @@ export default class ImportService extends Service {
rest: "GET /libraryStatistics",
params: {},
handler: async (ctx: Context<{}>) => {
}
const comicDirectorySize = await getSizeOfDirectory(COMICS_DIRECTORY, [".cbz", ".cbr", ".cb7"])
const totalCount = await Comic.countDocuments({});
const statistics = await Comic.aggregate([
{
$facet: {
fileTypes: [
{
$match: {
"rawFileDetails.extension": {
$in: [
".cbr",
".cbz",
".cb7",
],
},
},
},
{
$group: {
_id: "$rawFileDetails.extension",
data: { $push: "$$ROOT._id" },
},
},
],
issues: [
{
$match: {
"sourcedMetadata.comicvine": { "$gt": {} }
}
},
{
$group: {
_id: "$sourcedMetadata.comicvine",
data: { $push: "$$ROOT._id" },
},
},
],
fileLessComics: [
{
$match: {
"rawFileDetails": { "$exists": false }
}
},
]
},
},
]);
return {
totalDocuments: totalCount,
comicDirectorySize,
statistics,
};
},
},
flushDB: {
rest: "POST /flushDB",

View File

@@ -13,7 +13,10 @@ import { includes, remove, indexOf } from "lodash";
const ALLOWED_IMAGE_FILE_FORMATS = [".jpg", ".jpeg", ".png"];
export const walkFolder = async (folder: string, formats: string[]): Promise<IFolderData[]> => {
export const walkFolder = async (
folder: string,
formats: string[]
): Promise<IFolderData[]> => {
const result: IFolderData[] = [];
let walkResult: IFolderData = {
name: "",
@@ -63,6 +66,19 @@ export const explodePath = (filePath: string): IExplodedPathResponse => {
};
};
export const getSizeOfDirectory = async (
path: string,
extensions: string[]
) => {
const arrayOfFiles = await walkFolder(path, extensions);
let totalSize = 0;
arrayOfFiles.forEach((file) => {
totalSize += file.fileSize;
});
return totalSize;
};
export const isValidImageFileExtension = (fileName: string): boolean => {
return includes(ALLOWED_IMAGE_FILE_FORMATS, path.extname(fileName));
};
@@ -70,7 +86,7 @@ export const isValidImageFileExtension = (fileName: string): boolean => {
export const constructPaths = (
extractionOptions: IExtractionOptions,
walkedFolder: IFolderData
) => ({
) => ({
targetPath:
extractionOptions.targetExtractionFolder + "/" + walkedFolder.name,
inputFilePath:

197
yarn.lock
View File

@@ -270,7 +270,7 @@
"core-js-pure" "^3.20.2"
"regenerator-runtime" "^0.13.4"
"@babel/runtime@^7.15.4":
"@babel/runtime@^7.10.5", "@babel/runtime@^7.15.4":
"integrity" "sha512-etcO/ohMNaNA2UBdaXBBSX/3aEzFMRrVfaPv8Ptc0k+cWpWW0QFiGZ2XnVqQZI1Cf734LbPGmqBKWESfW4x/dQ=="
"resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.0.tgz"
"version" "7.17.0"
@@ -315,6 +315,11 @@
"resolved" "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz"
"version" "0.2.3"
"@breejs/later@^4.1.0":
"integrity" "sha512-QgGnZ9b7o4k0Ai1ZbTJWwZpZcFK9d+Gb+DyNt4UT9x6IEIs5HVu0iIlmgzGqN+t9MoJSpSPo9S/Mm51UtHr3JA=="
"resolved" "https://registry.npmjs.org/@breejs/later/-/later-4.1.0.tgz"
"version" "4.1.0"
"@canvas/image-data@^1.0.0":
"integrity" "sha512-BxOqI5LgsIQP1odU5KMwV9yoijleOPzHL18/YvNqF9KFSGF2K/DLlYAbDQsWqd/1nbaFuSkYD/191dpMtNh4vw=="
"resolved" "https://registry.npmjs.org/@canvas/image-data/-/image-data-1.0.0.tgz"
@@ -949,7 +954,7 @@
"resolved" "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
"version" "0.0.29"
"@types/lodash@^4.14.168":
"@types/lodash@^4.14.165", "@types/lodash@^4.14.168":
"integrity" "sha512-0d5Wd09ItQWH1qFbEyQ7oTQ3GZrMfth5JkbN3EvTKLXcHLRDSXeLnlvlOn0wvxVIwK5o2M8JzP/OWz7T3NRsbw=="
"resolved" "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.178.tgz"
"version" "4.14.178"
@@ -1592,6 +1597,11 @@
"raw-body" "2.4.2"
"type-is" "~1.6.18"
"boolean@^3.1.4":
"integrity" "sha512-3hx0kwU3uzG6ReQ3pnaFQPSktpBw6RHN3/ivDKEuU8g1XSfafowyvDnadjv1xp8IZqhtSukxlwv9bF6FhX8m0w=="
"resolved" "https://registry.npmjs.org/boolean/-/boolean-3.1.4.tgz"
"version" "3.1.4"
"brace-expansion@^1.1.7":
"integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
"resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
@@ -1607,6 +1617,23 @@
dependencies:
"fill-range" "^7.0.1"
"bree@^7.1.5":
"integrity" "sha512-YAs4VQDjc6p3NhNNHBkS9NXK4wryeMq7Y/SCMcgFh0cSD4oXk7B9v53/cqzoejdelD30KEliumzrd4awka+YhQ=="
"resolved" "https://registry.npmjs.org/bree/-/bree-7.1.5.tgz"
"version" "7.1.5"
dependencies:
"@breejs/later" "^4.1.0"
"boolean" "^3.1.4"
"combine-errors" "^3.0.3"
"cron-validate" "^1.4.3"
"debug" "^4.3.3"
"human-interval" "^2.0.1"
"is-string-and-not-blank" "^0.0.2"
"is-valid-path" "^0.1.1"
"ms" "^2.1.3"
"p-wait-for" "3"
"safe-timers" "^1.1.0"
"browser-process-hrtime@^1.0.0":
"integrity" "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
"resolved" "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz"
@@ -1968,6 +1995,14 @@
"strip-ansi" "^3.0.0"
"wcwidth" "^1.0.0"
"combine-errors@^3.0.3":
"integrity" "sha1-9N9nQAg+VwOjGBEQwrEFUfAD2oY="
"resolved" "https://registry.npmjs.org/combine-errors/-/combine-errors-3.0.3.tgz"
"version" "3.0.3"
dependencies:
"custom-error-instance" "2.1.1"
"lodash.uniqby" "4.5.0"
"combined-stream@^1.0.6", "combined-stream@^1.0.8", "combined-stream@~1.0.6":
"integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
"resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
@@ -2076,6 +2111,13 @@
"is-nan" "^1.3.0"
"moment-timezone" "^0.5.31"
"cron-validate@^1.4.3":
"integrity" "sha512-N+qKw019oQBEPIP5Qwi8Z5XelQ00ThN6Maahwv+9UGu2u/b/MPb35zngMQI0T8pBoNiBrIXGlhvsmspNSYae/w=="
"resolved" "https://registry.npmjs.org/cron-validate/-/cron-validate-1.4.3.tgz"
"version" "1.4.3"
dependencies:
"yup" "0.32.9"
"cross-spawn@^7.0.2", "cross-spawn@^7.0.3":
"integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w=="
"resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
@@ -2102,6 +2144,11 @@
dependencies:
"cssom" "~0.3.6"
"custom-error-instance@2.1.1":
"integrity" "sha1-PPY5FIemYppiR+sMoM4ACBt+Nho="
"resolved" "https://registry.npmjs.org/custom-error-instance/-/custom-error-instance-2.1.1.tgz"
"version" "2.1.1"
"d@^1.0.1":
"integrity" "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA=="
"resolved" "https://registry.npmjs.org/d/-/d-1.0.1.tgz"
@@ -2164,7 +2211,7 @@
dependencies:
"ms" "^2.1.1"
"debug@^4.0.0", "debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.1", "debug@^4.3.2", "debug@~4.3.1", "debug@~4.3.2", "debug@4":
"debug@^4.0.0", "debug@^4.0.1", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.1", "debug@^4.3.2", "debug@^4.3.3", "debug@~4.3.1", "debug@~4.3.2", "debug@4":
"integrity" "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q=="
"resolved" "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz"
"version" "4.3.3"
@@ -3319,6 +3366,13 @@
"agent-base" "6"
"debug" "4"
"human-interval@^2.0.1":
"integrity" "sha512-r4Aotzf+OtKIGQCB3odUowy4GfUDTy3aTWTfLd7ZF2gBCy3XW3v/dJLRefZnOFFnjqs5B1TypvS8WarpBkYUNQ=="
"resolved" "https://registry.npmjs.org/human-interval/-/human-interval-2.0.1.tgz"
"version" "2.0.1"
dependencies:
"numbered" "^1.1.0"
"human-signals@^2.1.0":
"integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
"resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
@@ -3547,6 +3601,11 @@
dependencies:
"has-tostringtag" "^1.0.0"
"is-extglob@^1.0.0":
"integrity" "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
"resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz"
"version" "1.0.0"
"is-extglob@^2.1.1":
"integrity" "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
"resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
@@ -3572,6 +3631,13 @@
"resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz"
"version" "2.1.0"
"is-glob@^2.0.0":
"integrity" "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM="
"resolved" "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz"
"version" "2.0.1"
dependencies:
"is-extglob" "^1.0.0"
"is-glob@^4.0.0", "is-glob@^4.0.1", "is-glob@^4.0.3", "is-glob@~4.0.1":
"integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="
"resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
@@ -3584,6 +3650,13 @@
"resolved" "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz"
"version" "1.0.0"
"is-invalid-path@^0.1.0":
"integrity" "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ="
"resolved" "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz"
"version" "0.1.0"
dependencies:
"is-glob" "^2.0.0"
"is-lambda@^1.0.1":
"version" "1.0.1"
@@ -3645,6 +3718,18 @@
"resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
"version" "2.0.1"
"is-string-and-not-blank@^0.0.2":
"integrity" "sha512-FyPGAbNVyZpTeDCTXnzuwbu9/WpNXbCfbHXLpCRpN4GANhS00eEIP5Ef+k5HYSNIzIhdN9zRDoBj6unscECvtQ=="
"resolved" "https://registry.npmjs.org/is-string-and-not-blank/-/is-string-and-not-blank-0.0.2.tgz"
"version" "0.0.2"
dependencies:
"is-string-blank" "^1.0.1"
"is-string-blank@^1.0.1":
"integrity" "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw=="
"resolved" "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz"
"version" "1.0.1"
"is-string@^1.0.5", "is-string@^1.0.7":
"integrity" "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg=="
"resolved" "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz"
@@ -3669,6 +3754,13 @@
"resolved" "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz"
"version" "0.1.0"
"is-valid-path@^0.1.1":
"integrity" "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8="
"resolved" "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz"
"version" "0.1.1"
dependencies:
"is-invalid-path" "^0.1.0"
"is-weakref@^1.0.1":
"integrity" "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ=="
"resolved" "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
@@ -4481,6 +4573,48 @@
dependencies:
"p-locate" "^4.1.0"
"lodash-es@^4.17.15":
"integrity" "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
"resolved" "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
"version" "4.17.21"
"lodash._baseiteratee@~4.7.0":
"integrity" "sha1-NKm1VDVycnw9sueO2uPA6eZr0QI="
"resolved" "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz"
"version" "4.7.0"
dependencies:
"lodash._stringtopath" "~4.8.0"
"lodash._basetostring@~4.12.0":
"integrity" "sha1-kyfJ3FFYhmt/pLnUL0Y45XZt2d8="
"resolved" "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz"
"version" "4.12.0"
"lodash._baseuniq@~4.6.0":
"integrity" "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg="
"resolved" "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz"
"version" "4.6.0"
dependencies:
"lodash._createset" "~4.0.0"
"lodash._root" "~3.0.0"
"lodash._createset@~4.0.0":
"integrity" "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY="
"resolved" "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz"
"version" "4.0.3"
"lodash._root@~3.0.0":
"integrity" "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI="
"resolved" "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz"
"version" "3.0.1"
"lodash._stringtopath@~4.8.0":
"integrity" "sha1-lBvPDmQmbl/B1m/tCmlZVExXaCQ="
"resolved" "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz"
"version" "4.8.0"
dependencies:
"lodash._basetostring" "~4.12.0"
"lodash.defaults@^4.2.0":
"integrity" "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw="
"resolved" "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz"
@@ -4541,7 +4675,15 @@
"resolved" "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz"
"version" "4.4.2"
"lodash@^4.17.10", "lodash@^4.17.15", "lodash@^4.17.19", "lodash@^4.17.21", "lodash@^4.7.0":
"lodash.uniqby@4.5.0":
"integrity" "sha1-o6F7v2LutiQPSRhG6XwcTipeHiE="
"resolved" "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz"
"version" "4.5.0"
dependencies:
"lodash._baseiteratee" "~4.7.0"
"lodash._baseuniq" "~4.6.0"
"lodash@^4.17.10", "lodash@^4.17.15", "lodash@^4.17.19", "lodash@^4.17.20", "lodash@^4.17.21", "lodash@^4.7.0":
"integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
"resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
"version" "4.17.21"
@@ -4965,6 +5107,11 @@
"mute-stream@~0.0.4":
"version" "0.0.8"
"nanoclone@^0.2.1":
"integrity" "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA=="
"resolved" "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz"
"version" "0.2.1"
"napi-build-utils@^1.0.1":
"integrity" "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
"resolved" "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz"
@@ -5256,6 +5403,11 @@
"resolved" "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
"version" "1.0.1"
"numbered@^1.1.0":
"integrity" "sha512-pv/ue2Odr7IfYOO0byC1KgBI10wo5YDauLhxY6/saNzAdAs0r1SotGCPzzCLNPL0xtrAwWRialLu23AAu9xO1g=="
"resolved" "https://registry.npmjs.org/numbered/-/numbered-1.1.0.tgz"
"version" "1.1.0"
"nwsapi@^2.2.0":
"integrity" "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="
"resolved" "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz"
@@ -5427,7 +5579,7 @@
dependencies:
"aggregate-error" "^3.0.0"
"p-timeout@^3.2.0":
"p-timeout@^3.0.0", "p-timeout@^3.2.0":
"integrity" "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg=="
"resolved" "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz"
"version" "3.2.0"
@@ -5444,6 +5596,13 @@
"resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
"version" "2.2.0"
"p-wait-for@3":
"integrity" "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA=="
"resolved" "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz"
"version" "3.2.0"
dependencies:
"p-timeout" "^3.0.0"
"pacote@*", "pacote@^12.0.0", "pacote@^12.0.2":
"version" "12.0.3"
dependencies:
@@ -5671,6 +5830,11 @@
dependencies:
"read" "1"
"property-expr@^2.0.4":
"integrity" "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA=="
"resolved" "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz"
"version" "2.0.5"
"psl@^1.1.28", "psl@^1.1.33":
"integrity" "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
"resolved" "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"
@@ -6007,6 +6171,11 @@
"resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
"version" "5.2.1"
"safe-timers@^1.1.0":
"integrity" "sha1-xYroMl2407BnMi8KTvOgytZ6rYM="
"resolved" "https://registry.npmjs.org/safe-timers/-/safe-timers-1.1.0.tgz"
"version" "1.1.0"
"safer-buffer@^2.0.2", "safer-buffer@^2.1.0", "safer-buffer@>= 2.1.2 < 3", "safer-buffer@~2.1.0":
"integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
"resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
@@ -6663,6 +6832,11 @@
"resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
"version" "1.0.1"
"toposort@^2.0.2":
"integrity" "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA="
"resolved" "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz"
"version" "2.0.2"
"tough-cookie@^2.3.3":
"integrity" "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="
"resolved" "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"
@@ -7259,3 +7433,16 @@
"integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
"resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz"
"version" "3.1.1"
"yup@0.32.9":
"integrity" "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg=="
"resolved" "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz"
"version" "0.32.9"
dependencies:
"@babel/runtime" "^7.10.5"
"@types/lodash" "^4.14.165"
"lodash" "^4.17.20"
"lodash-es" "^4.17.15"
"nanoclone" "^0.2.1"
"property-expr" "^2.0.4"
"toposort" "^2.0.2"