package.json
{
"name": "dedupper",
"version": "2.1.0",
"description": "import various files, detect duplicates with sqlite database.",
"license": "MIT",
"author": "wkdhkr",
"main": "index.js",
"bin": {
"dedupper": "bin/dedupper.js",
"facepptest": "bin/facepptest.js",
"hdcalc": "bin/hdcalc.js",
"nsfwcheck": "bin/nsfwcheck.js",
"facecheck": "bin/facecheck.js",
"facespinnertest": "bin/facespinnertest.js",
"nsfwjstest": "bin/nsfwjstest.js",
"faceapitest": "bin/faceapitest.js",
"posenettest": "bin/posenettest.js",
"cocossdtest": "bin/cocossdtest.js",
"photosift": "bin/photosift.js"
},
"engines": {
"node": ">=8.10.0"
},
"scripts": {
"build": "cross-env NODE_ENV=production babel src -d dist",
"build:watch": "cross-env NODE_ENV=production babel --watch src -d dist --verbose",
"clean": "rimraf coverage dist tmp",
"codecov": "codecov",
"flow": "flow",
"flow-typed": "flow-typed",
"lint": "eslint . --fix",
"postlint": "npm run typecheck",
"pretest": "npm run lint",
"test": "npm run test-only",
"test-only": "jest --coverage --maxWorkers=2",
"test:watch": "jest --watch --maxWorkers=4",
"typecheck": "flow check"
},
"dependencies": {
"@tensorflow-models/body-pix": "^2.0.4",
"@tensorflow-models/coco-ssd": "^2.0.1",
"@tensorflow-models/posenet": "^2.2.1",
"@tensorflow/tfjs-converter": "^3.16.0",
"@tensorflow/tfjs-core": "^3.16.0",
"@tensorflow/tfjs-data": "^3.16.0",
"@tensorflow/tfjs-layers": "^3.16.0",
"@tensorflow/tfjs-node": "^3.16.0",
"app-root-path": "^3.0.0",
"async-csv": "^2.1.3",
"await-sleep": "^0.0.1",
"axios": "^0.27.2",
"axios-cookiejar-support": "^2.0.5",
"axios-retry": "^3.2.5",
"canvas": "^2.6.1",
"chalk": "^3.0.0",
"child-process-promise": "^2.2.1",
"commander": "^4.1.1",
"concat-stream": "^2.0.0",
"delete-empty": "^3.0.0",
"dhash-image": "^1.2.1",
"express": "^5.0.0-alpha.8",
"express-cluster": "0.0.5",
"face-api.js": "^0.22.0",
"fast-text-encoding": "^1.0.3",
"follow-redirects": "^1.15.0",
"form-data": "^3.0.0",
"fs-extra": "^8.1.0",
"glob-promise": "^3.4.0",
"got": "^11.0.0",
"jimp": "^0.9.3",
"jsdom": "^19.0.0",
"lockfile": "^1.0.4",
"log4js": "^6.4.7",
"max-listeners-exceeded-warning": "^0.0.1",
"mkdirp": "^0.5.1",
"mv": "^2.1.1",
"node-fetch": "^3.2.4",
"node-report": "^2.2.10",
"nsfwjs": "^2.4.1",
"nudenet": "github:vladmandic/nudenet",
"opencv4nodejs": "^5.6.0",
"opencv4nodejs-prebuilt": "^5.3.0",
"os-utils": "^0.0.14",
"p-limit": "^2.2.2",
"phash": "git+https://github.com/wkdhkr/node-phash.git#master",
"pify": "^4.0.1",
"puppeteer": "^5.2.1",
"qs": "^6.10.2",
"recursive-readdir": "^2.2.2",
"require-uncached": "^2.0.0",
"root-require": "^0.3.1",
"segfault-handler": "^1.3.0",
"sharp": "^0.23.4",
"source-map-support": "^0.5.16",
"sqlite3": "^4.2.0",
"strip-ansi": "^6.0.0",
"test-audio": "^2.1.0",
"tfjs-image-recognition-base": "^0.6.2",
"tmp-promise": "^2.0.2",
"touch": "^3.1.0",
"tough-cookie": "^4.0.0",
"trash": "^6.1.1",
"uuid": "^8.3.2",
"wait-on": "^4.0.1",
"winattr": "^3.0.0"
},
"devDependencies": {
"@babel/cli": "^7.10.4",
"@babel/core": "^7.10.4",
"@babel/plugin-proposal-class-properties": "^7.10.3",
"@babel/plugin-proposal-decorators": "^7.10.3",
"@babel/plugin-proposal-do-expressions": "^7.10.3",
"@babel/plugin-proposal-export-default-from": "^7.10.3",
"@babel/plugin-proposal-export-namespace-from": "^7.10.3",
"@babel/plugin-proposal-function-bind": "^7.10.3",
"@babel/plugin-proposal-function-sent": "^7.10.3",
"@babel/plugin-proposal-json-strings": "^7.8.3",
"@babel/plugin-proposal-logical-assignment-operators": "^7.10.3",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.3",
"@babel/plugin-proposal-numeric-separator": "^7.10.3",
"@babel/plugin-proposal-optional-chaining": "^7.10.3",
"@babel/plugin-proposal-pipeline-operator": "^7.10.3",
"@babel/plugin-proposal-private-methods": "^7.10.3",
"@babel/plugin-proposal-throw-expressions": "^7.10.3",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-import-meta": "^7.10.3",
"@babel/plugin-transform-modules-commonjs": "^7.10.3",
"@babel/polyfill": "^7.10.3",
"@babel/preset-env": "^7.10.4",
"@babel/preset-flow": "^7.10.3",
"babel-core": "^7.0.0-bridge.0",
"babel-eslint": "^10.1.0",
"babel-jest": "^26.3.0",
"babel-minify": "^0.5.2",
"babel-plugin-dynamic-import-node-babel-7": "^2.0.7",
"babel-plugin-source-map-support": "^2.1.1",
"babel-preset-minify": "^0.5.2",
"babel-upgrade": "1.0.1",
"codecov": "^3.8.2",
"cross-env": "^7.0.3",
"eslint": "^6.8.0",
"eslint-config-airbnb-base": "^14.1.0",
"eslint-config-prettier": "^6.10.0",
"eslint-plugin-flowtype": "^4.6.0",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-node": "^11.0.0",
"eslint-plugin-prettier": "^3.1.2",
"flow-bin": "^0.184.0",
"flow-typed": "^3.7.0",
"jest": "^26.4.2",
"license-checker": "^25.0.1",
"node-pre-gyp": "^0.15.0",
"npm-check-updates": "^11.3.0",
"prettier": "^1.19.1",
"prettier-plugin-package": "^0.3.1",
"rimraf": "^3.0.2"
},
"babel": {
"ignore": [
"./dist/**/*"
],
"presets": [
"@babel/preset-flow",
[
"@babel/preset-env",
{
"targets": {
"node": "current"
},
"modules": false
}
]
],
"plugins": [
"@babel/plugin-transform-modules-commonjs",
"dynamic-import-node-babel-7",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-syntax-import-meta",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-json-strings",
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
],
"@babel/plugin-proposal-function-sent",
"@babel/plugin-proposal-export-namespace-from",
"@babel/plugin-proposal-numeric-separator",
"@babel/plugin-proposal-throw-expressions",
"@babel/plugin-proposal-private-methods",
"@babel/plugin-proposal-export-default-from",
"@babel/plugin-proposal-logical-assignment-operators",
"@babel/plugin-proposal-optional-chaining",
[
"@babel/plugin-proposal-pipeline-operator",
{
"proposal": "minimal"
}
],
"@babel/plugin-proposal-nullish-coalescing-operator",
"@babel/plugin-proposal-do-expressions",
"@babel/plugin-proposal-function-bind"
],
"env": {
"production": {
"presets": []
},
"test": {
"plugins": [
"./istanbulHackPlugin"
]
}
}
},
"engineStrict": true,
"jest": {
"coverageThreshold": {
"global": {
"branches": 70,
"functions": 85,
"lines": 80,
"statements": 80
}
},
"coverageDirectory": "coverage",
"collectCoverageFrom": [
"src/**/*.js"
],
"transformIgnorePatterns": [
"node_modules/",
"dist/"
],
"transform": {
"^.+\\.[t|j]sx?$": "babel-jest"
},
"coveragePathIgnorePatterns": [
"/node_modules/",
"src/services/deepLearning/CocoSsdService.js",
"src/services/deepLearning/FaceSpinnerService.js",
"src/services/deepLearning/faceApi/",
"src/services/deepLearning/poseNet"
]
}
}