diff --git a/package-lock.json b/package-lock.json index ab119c3..eb6ac02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,7 +33,6 @@ "socket.io-stream": "^0.5.3", "typescript": "^3.8.3", "unrar": "github:cnboker/node-unrar", - "unzipper": "^0.10.11", "xml2js": "^0.4.23" }, "devDependencies": { @@ -2152,26 +2151,6 @@ "tweetnacl": "^0.14.3" } }, - "node_modules/big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/binary-search-tree": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", @@ -2358,22 +2337,6 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "engines": { - "node": ">=0.2.0" - } - }, "node_modules/busboy": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", @@ -2467,17 +2430,6 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -3165,14 +3117,6 @@ "webidl-conversions": "^4.0.2" } }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dependencies": { - "readable-stream": "^2.0.2" - } - }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -4435,20 +4379,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -7323,11 +7253,6 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=" - }, "node_modules/load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -9778,6 +9703,7 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -10208,11 +10134,6 @@ "node": ">=0.10.0" } }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "node_modules/setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -11407,14 +11328,6 @@ "punycode": "^2.1.0" } }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "engines": { - "node": "*" - } - }, "node_modules/ts-jest": { "version": "25.5.1", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz", @@ -11751,28 +11664,6 @@ "node": ">=0.10.0" } }, - "node_modules/unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=" - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -13926,20 +13817,6 @@ "tweetnacl": "^0.14.3" } }, - "big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, "binary-search-tree": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", @@ -14091,16 +13968,6 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" - }, "busboy": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", @@ -14173,14 +14040,6 @@ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -14728,14 +14587,6 @@ "webidl-conversions": "^4.0.2" } }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "requires": { - "readable-stream": "^2.0.2" - } - }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -15777,17 +15628,6 @@ "dev": true, "optional": true }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -17971,11 +17811,6 @@ "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=" - }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", @@ -19789,6 +19624,7 @@ "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, "requires": { "glob": "^7.1.3" } @@ -20143,11 +19979,6 @@ } } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", @@ -21125,11 +20956,6 @@ "punycode": "^2.1.0" } }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" - }, "ts-jest": { "version": "25.5.1", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz", @@ -21388,30 +21214,6 @@ } } }, - "unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=" - } - } - }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 99e9085..bbe8f1a 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,6 @@ "socket.io-stream": "^0.5.3", "typescript": "^3.8.3", "unrar": "github:cnboker/node-unrar", - "unzipper": "^0.10.11", "xml2js": "^0.4.23" }, "engines": { diff --git a/services/api.service.ts b/services/api.service.ts index 55d597c..ca5649a 100644 --- a/services/api.service.ts +++ b/services/api.service.ts @@ -1,9 +1,6 @@ import { Service, ServiceBroker, Context } from "moleculer"; import ApiGateway from "moleculer-web"; -import { - extractArchive, - getCoversFromFile, -} from "../utils/uncompression.utils"; +import { extractCoverFromFile } from "../utils/uncompression.utils"; import { map } from "lodash"; const IO = require("socket.io")(); @@ -115,57 +112,34 @@ export default class ApiService extends Service { ", Params:", params ); - getCoversFromFile(); + const { extractionOptions, walkedFolders } = params; - // switch (extractionOptions.extractionMode) { - // case "bulk": - // map(walkedFolders, async (folder, idx) => { - // // let comicBookCoverMetadata = - // // await extractArchive( - // // extractionOptions, - // // folder - // // ); - // // const dbImportResult = - // // await this.broker.call( - // // "import.rawImportToDB", - // // { - // // importStatus: { - // // isImported: true, - // // tagged: false, - // // matchedResult: { - // // score: "0", - // // }, - // // }, - // // rawFileDetails: - // // comicBookCoverMetadata, - // // }, - // // {} - // // ); - // // - // // client.emit("comicBookCoverMetadata", { - // // comicBookCoverMetadata, - // // dbImportResult, - // // }); - // }); - // - // case "single": - // - // // return await extractArchive( - // // extractionOptions, - // // walkedFolders[0] - // // ); - // default: - // console.log( - // "Unknown extraction mode selected." - // ); - // - // return { - // message: - // "Unknown extraction mode selected.", - // errorCode: "90", - // data: `${extractionOptions}`, - // }; - // } + map(walkedFolders, async (folder, idx) => { + let comicBookCoverMetadata = + await extractCoverFromFile( + extractionOptions, + folder + ); + const dbImportResult = await this.broker.call( + "import.rawImportToDB", + { + importStatus: { + isImported: true, + tagged: false, + matchedResult: { + score: "0", + }, + }, + rawFileDetails: comicBookCoverMetadata, + }, + {} + ); + + client.emit("comicBookCoverMetadata", { + comicBookCoverMetadata, + dbImportResult, + }); + }); } ); diff --git a/utils/file.utils.ts b/utils/file.utils.ts index 97c500c..92fbf4a 100644 --- a/utils/file.utils.ts +++ b/utils/file.utils.ts @@ -66,7 +66,7 @@ export const isValidImageFileExtension = (fileName: string): boolean => { export const constructPaths = ( extractionOptions: IExtractionOptions, walkedFolder: IFolderData -) => ({ +) => ({ targetPath: extractionOptions.targetExtractionFolder + "/" + walkedFolder.name, inputFilePath: diff --git a/utils/uncompression.utils.ts b/utils/uncompression.utils.ts index 072a64b..91fa443 100644 --- a/utils/uncompression.utils.ts +++ b/utils/uncompression.utils.ts @@ -33,11 +33,8 @@ SOFTWARE. import { createReadStream, createWriteStream, readFileSync } from "fs"; const fse = require("fs-extra"); - -import { default as unzipper } from "unzipper"; -import _ from "lodash"; -import { each, isEmpty, map, flatten } from "lodash"; import path from "path"; +import { each, isEmpty, map, flatten } from "lodash"; import { IExplodedPathResponse, @@ -62,29 +59,53 @@ const pathTo7zip = sevenBin.path7za; const unrarer = require("node-unrar-js"); const { Calibre } = require("node-calibre"); -export const getCoversFromFile = async () => { - try { - const calibre = new Calibre({ - library: path.resolve("userdata/calibre-lib"), - }); - - let result: string; - result = await calibre.run( - "ebook-meta", - [ - path.resolve( - "comics/A Hypothetical Lizard (2004)/Hypothetical_Lizard_T01.cbr" - ), - ], - { - getCover: path.resolve("userdata/covers/shoo/o.jpg"), +export const extractCoverFromFile = async ( + extractionOptions: IExtractionOptions, + walkedFolder: IFolderData +): Promise< + | IExtractedComicBookCoverFile + | IExtractedComicBookCoverFile[] + | IExtractComicBookCoverErrorResponse +> => { + return new Promise(async (resolve, reject) => { + try { + const constructedPaths = constructPaths(extractionOptions, walkedFolder); + console.log(constructedPaths); + const calibre = new Calibre({ + library: path.resolve("./userdata/calibre-lib"), + }); + // create directory + const directoryOptions = { + mode: 0o2775, + }; + + try { + await fse.ensureDir(constructedPaths.targetPath, directoryOptions); + logger.info(`${constructedPaths.targetPath} was created.`); + } catch (error) { + logger.error(`${error}: Couldn't create directory.`); } - ); - console.log("AJSDASDLASDASDASLK!@#!@#!@#!#@#!@#!@", result); - } catch (error) { - console.log(error); - } + let result: string; + result = await calibre.run( + "ebook-meta", + [path.resolve(constructedPaths.inputFilePath)], + { + getCover: path.resolve(constructedPaths.targetPath + "/cover.jpg"), + } + ); + console.log("AJSDASDLASDASDASLK!@#!@#!@#!#@#!@#!@", result); + resolve({ + name: "cover.jpg", + path: constructedPaths.targetPath, + fileSize: 0, + containedIn: walkedFolder.containedIn, + }); + } catch (error) { + console.log(error); + } + }); }; + export const unzip = async ( extractionOptions: IExtractionOptions, walkedFolder: IFolderData @@ -118,7 +139,6 @@ export const unzip = async ( }); listStream.on("data", (data) => { - // set firstImg to the first result if (!firstImg) firstImg = data; }); listStream.on("end", () => { @@ -227,61 +247,3 @@ export const unrar = async ( break; } }; - -export const extractArchive = async ( - extractionOptions: IExtractionOptions, - walkedFolder: IFolderData -): Promise< - | IExtractedComicBookCoverFile - | IExtractedComicBookCoverFile[] - | IExtractComicBookCoverErrorResponse -> => { - switch (walkedFolder.extension) { - case ".cbz": - return await unzip(extractionOptions, walkedFolder); - case ".cbr": - return await unrar(extractionOptions, walkedFolder); - default: - return { - message: "File format not supported, yet.", - errorCode: "90", - data: `${extractionOptions}`, - }; - } -}; - -export const getCovers = async ( - options: IExtractionOptions, - walkedFolders: IFolderData[] -): Promise< - | IExtractedComicBookCoverFile - | IExtractComicBookCoverErrorResponse - | IExtractedComicBookCoverFile[] - | ( - | IExtractedComicBookCoverFile - | IExtractComicBookCoverErrorResponse - | IExtractedComicBookCoverFile[] - )[] - | IExtractComicBookCoverErrorResponse -> => { - switch (options.extractionMode) { - case "bulk": - console.log("asdas BULK"); - const extractedDataPromises = map( - walkedFolders, - async (folder) => await extractArchive(options, folder) - ); - return Promise.all(extractedDataPromises).then((data) => - _.flatten(data) - ); - case "single": - return await extractArchive(options, walkedFolders[0]); - default: - logger.error("Unknown extraction mode selected."); - return { - message: "Unknown extraction mode selected.", - errorCode: "90", - data: `${options}`, - }; - } -}; diff --git a/yarn.lock b/yarn.lock index 33eebbe..f66aa55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1117,11 +1117,6 @@ dependencies: "tweetnacl" "^0.14.3" -"big-integer@^1.6.17": - "integrity" "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" - "resolved" "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz" - "version" "1.6.48" - "binary-search-tree@0.2.5": "integrity" "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=" "resolved" "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz" @@ -1129,14 +1124,6 @@ dependencies: "underscore" "~1.4.4" -"binary@~0.3.0": - "integrity" "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=" - "resolved" "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz" - "version" "0.3.0" - dependencies: - "buffers" "~0.1.1" - "chainsaw" "~0.1.0" - "bl@^2.2.1": "integrity" "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==" "resolved" "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz" @@ -1159,11 +1146,6 @@ "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" "version" "3.7.2" -"bluebird@~3.4.1": - "integrity" "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=" - "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz" - "version" "3.4.7" - "bluebird@3.5.1": "integrity" "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" "resolved" "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz" @@ -1263,11 +1245,6 @@ "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz" "version" "1.1.1" -"buffer-indexof-polyfill@~1.0.0": - "integrity" "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" - "resolved" "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz" - "version" "1.0.2" - "buffer@^5.5.0": "integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" @@ -1276,11 +1253,6 @@ "base64-js" "^1.3.1" "ieee754" "^1.1.13" -"buffers@~0.1.1": - "integrity" "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" - "resolved" "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz" - "version" "0.1.1" - "busboy@^0.3.1": "integrity" "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==" "resolved" "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz" @@ -1348,13 +1320,6 @@ "resolved" "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" "version" "0.12.0" -"chainsaw@~0.1.0": - "integrity" "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=" - "resolved" "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz" - "version" "0.1.0" - dependencies: - "traverse" ">=0.3.0 <0.4" - "chalk@^2.0.0", "chalk@^2.0.1", "chalk@^2.1.0", "chalk@^2.4.2", "chalk@2.4.2": "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -1878,13 +1843,6 @@ dependencies: "webidl-conversions" "^4.0.2" -"duplexer2@~0.1.4": - "integrity" "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=" - "resolved" "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz" - "version" "0.1.4" - dependencies: - "readable-stream" "^2.0.2" - "ecc-jsbn@~0.1.1": "integrity" "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=" "resolved" "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" @@ -2552,16 +2510,6 @@ "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" "version" "2.3.2" -"fstream@^1.0.12": - "integrity" "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==" - "resolved" "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz" - "version" "1.0.12" - dependencies: - "graceful-fs" "^4.1.2" - "inherits" "~2.0.0" - "mkdirp" ">=0.5 0" - "rimraf" "2" - "function-bind@^1.1.1": "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" @@ -2672,7 +2620,7 @@ dependencies: "type-fest" "^0.8.1" -"graceful-fs@^4.1.11", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.2", "graceful-fs@^4.2.4": +"graceful-fs@^4.1.11", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.4": "integrity" "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz" "version" "4.2.6" @@ -2856,7 +2804,7 @@ "once" "^1.3.0" "wrappy" "1" -"inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.0", "inherits@~2.0.3", "inherits@2": +"inherits@^2.0.3", "inherits@^2.0.4", "inherits@~2.0.3", "inherits@2": "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" "version" "2.0.4" @@ -3779,11 +3727,6 @@ "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz" "version" "1.1.6" -"listenercount@~1.0.1": - "integrity" "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=" - "resolved" "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz" - "version" "1.0.1" - "load-json-file@^2.0.0": "integrity" "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=" "resolved" "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz" @@ -4036,7 +3979,7 @@ "resolved" "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" "version" "0.5.3" -"mkdirp@^0.5.1", "mkdirp@>=0.5 0", "mkdirp@~0.5.1", "mkdirp@0.x": +"mkdirp@^0.5.1", "mkdirp@~0.5.1", "mkdirp@0.x": "integrity" "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==" "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz" "version" "0.5.5" @@ -4916,7 +4859,7 @@ "parse-json" "^5.0.0" "type-fest" "^0.6.0" -"readable-stream@^2.0.2", "readable-stream@^2.0.6", "readable-stream@^2.3.5", "readable-stream@~2.3.6": +"readable-stream@^2.0.6", "readable-stream@^2.3.5": "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" "version" "2.3.7" @@ -5140,7 +5083,7 @@ dependencies: "glob" "^7.1.3" -"rimraf@2", "rimraf@2.6.3": +"rimraf@2.6.3": "integrity" "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==" "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz" "version" "2.6.3" @@ -5306,11 +5249,6 @@ "is-plain-object" "^2.0.3" "split-string" "^3.0.1" -"setimmediate@~1.0.4": - "integrity" "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - "resolved" "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz" - "version" "1.0.5" - "setprototypeof@1.1.1": "integrity" "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz" @@ -5971,11 +5909,6 @@ dependencies: "punycode" "^2.1.0" -"traverse@>=0.3.0 <0.4": - "integrity" "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" - "resolved" "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz" - "version" "0.3.9" - "ts-jest@^25.3.0": "integrity" "sha512-kHEUlZMK8fn8vkxDjwbHlxXRB9dHYpyzqKIGDNxbzs+Rz+ssNDSDNusEK8Fk/sDd4xE6iKoQLfFkFVaskmTJyw==" "resolved" "https://registry.npmjs.org/ts-jest/-/ts-jest-25.5.1.tgz" @@ -6163,22 +6096,6 @@ "has-value" "^0.3.1" "isobject" "^3.0.0" -"unzipper@^0.10.11": - "integrity" "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==" - "resolved" "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz" - "version" "0.10.11" - dependencies: - "big-integer" "^1.6.17" - "binary" "~0.3.0" - "bluebird" "~3.4.1" - "buffer-indexof-polyfill" "~1.0.0" - "duplexer2" "~0.1.4" - "fstream" "^1.0.12" - "graceful-fs" "^4.2.2" - "listenercount" "~1.0.1" - "readable-stream" "~2.3.6" - "setimmediate" "~1.0.4" - "uri-js@^4.2.2": "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"