📕 🎉 P99 with calibre's ebook-meta.

This commit is contained in:
2021-07-27 15:05:33 -07:00
parent b3962d35bc
commit 3e92bb081a
6 changed files with 82 additions and 428 deletions

202
package-lock.json generated
View File

@@ -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",

View File

@@ -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": {

View File

@@ -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,
});
});
}
);

View File

@@ -66,7 +66,7 @@ export const isValidImageFileExtension = (fileName: string): boolean => {
export const constructPaths = (
extractionOptions: IExtractionOptions,
walkedFolder: IFolderData
) => ({
) => ({
targetPath:
extractionOptions.targetExtractionFolder + "/" + walkedFolder.name,
inputFilePath:

View File

@@ -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}`,
};
}
};

View File

@@ -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"