From e39804b0328ef1e07f18ad8ed10fe1e054b01f51 Mon Sep 17 00:00:00 2001 From: hexboy <hexboy2011@gmail.com> Date: Mon, 2 Sep 2024 00:59:03 +0330 Subject: [PATCH] add lefthook pre-commit hook --- eslint.config.mjs | 13 +- lefthook.yml | 6 + package.json | 15 +- src/config.ts | 20 ++- src/downloader/got.ts | 18 ++- src/index.ts | 2 +- src/utils.ts | 2 +- tsconfig.json | 10 +- types.ts => types.d.ts | 10 +- yarn.lock | 354 ++++++++++++++++++++++++++--------------- 10 files changed, 292 insertions(+), 158 deletions(-) create mode 100644 lefthook.yml rename types.ts => types.d.ts (85%) diff --git a/eslint.config.mjs b/eslint.config.mjs index 342b79d..0d52e05 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -4,9 +4,20 @@ import tsEslint from 'typescript-eslint'; import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; export default [ - { files: ['**/*.{js,mjs,cjs,ts}'] }, + { files: ['**/*.{js,ts}'] }, { languageOptions: { globals: globals.node } }, pluginJs.configs.recommended, ...tsEslint.configs.recommended, + ...tsEslint.configs.stylisticTypeChecked, + ...tsEslint.configs.recommendedTypeChecked, eslintPluginPrettierRecommended, + { + languageOptions: { + parserOptions: { + projectService: true, + tsconfigRootDir: import.meta.dirname, + }, + }, + }, + { ignores: ['eslint.config.mjs', 'ecosystem.config.js', '.yarn/'] }, ]; diff --git a/lefthook.yml b/lefthook.yml new file mode 100644 index 0000000..122e106 --- /dev/null +++ b/lefthook.yml @@ -0,0 +1,6 @@ +pre-commit: + parallel: true + commands: + lint: + glob: '*.{js,ts,jsx,tsx}' + run: yarn lint {staged_files} diff --git a/package.json b/package.json index 54b6b87..f37af36 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,8 @@ "start": "pm2 start --attach", "logs": "pm2 logs", "monit": "pm2 monit", - "stop": "pm2 delete mmt-server" + "stop": "pm2 delete mmt-server", + "lint": "eslint" }, "dependencies": { "chalk": "^5.3.0", @@ -24,22 +25,24 @@ "morgan": "^1.10.0", "pm2": "^5.4.2", "proxy-agent": "^6.4.0", - "tsx": "^4.17.0", - "typescript": "^5.5.4" + "tsx": "^4.19.0" }, "devDependencies": { - "@eslint/js": "^9.9.0", + "@eslint/js": "^9.9.1", + "@types/eslint__js": "^8.42.3", "@types/express": "^4.17.21", "@types/got": "^9.6.12", "@types/js-yaml": "^4.0.9", "@types/minimist": "^1.2.5", "@types/morgan": "^1.9.9", - "eslint": "^9.9.0", + "eslint": "^9.9.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "globals": "^15.9.0", + "lefthook": "^1.7.14", "prettier": "^3.3.3", - "typescript-eslint": "^8.1.0" + "typescript": "^5.5.4", + "typescript-eslint": "^8.3.0" }, "engines": { "node": ">=22" diff --git a/src/config.ts b/src/config.ts index f38ca0a..3b1fd80 100644 --- a/src/config.ts +++ b/src/config.ts @@ -9,7 +9,15 @@ const config = yaml.load( ? fs.readFileSync('config.local.yml', 'utf8') : fs.readFileSync('config.yml', 'utf8') ) as IConfig; -const args = minimist(process.argv); +const args = minimist(process.argv, { + string: ['cache-dir', 'port', 'path'], + boolean: ['verbose'], +}) as { + path?: string; + port?: number; + verbose?: boolean; + 'cache-dir'?: string; +}; const { REPOSITORIES, @@ -18,17 +26,17 @@ const { VALID_FILE_TYPES = [], } = config; -const PORT = args.port || config.PORT || 8008; +const PORT = args.port ?? config.PORT ?? 8008; const CACHE_DIR = path.resolve( - args['cache-dir'] || config.CACHE_DIR, + args['cache-dir'] ?? config.CACHE_DIR, '__MMT_CACHE__' ); const TMP_DIR = path.resolve( - args['cache-dir'] || config.CACHE_DIR, + args['cache-dir'] ?? config.CACHE_DIR, '__MMT_TMP__' ); -const DEFAULT_PATH = args.path || config.DEFAULT_PATH || 'v1'; -const VERBOSE = args.verbose || config.LOG_REQUESTS || false; +const DEFAULT_PATH = args.path ?? config.DEFAULT_PATH ?? 'v1'; +const VERBOSE = args.verbose ?? config.LOG_REQUESTS ?? false; export { PORT, diff --git a/src/downloader/got.ts b/src/downloader/got.ts index b1fd845..64a8529 100644 --- a/src/downloader/got.ts +++ b/src/downloader/got.ts @@ -5,13 +5,15 @@ import fs, { createWriteStream } from 'fs'; import { PROXIES, CACHE_DIR, TMP_DIR, REPOSITORIES } from '../config'; import { ProxyAgent } from 'proxy-agent'; +import { TServer } from 'app/types'; export class GotDownloader { - db: { - [K: string]: { + db: Record< + string, + { serverIndex: number; - }; - } = {}; + } + > = {}; getAgent = (srv: TServer) => { const proxy = srv.proxy && srv.proxy in PROXIES ? PROXIES[srv.proxy] : null; @@ -73,19 +75,19 @@ export class GotDownloader { }; head = (url: string, srv: TServer, res: Response) => { - return got + got .head(srv.url + url, this.getOptions(srv, 'head')) .then((r) => { res.set(r.headers); res.sendStatus(r.statusCode); }) - .catch((r) => { - res.sendStatus(r.statusCode); + .catch((r: { statusCode?: number }) => { + res.sendStatus(r?.statusCode ?? 404); }); }; download = (url: string, srv: TServer, res: Response) => { - const fileName = url.split('/').pop() || ''; + const fileName = url.split('/').pop() ?? ''; const tmpPath = path.resolve(TMP_DIR, fileName); const outputDir = path.join(CACHE_DIR, srv.name, url).replace(fileName, ''); const stream = got.stream(srv.url + url, this.getOptions(srv)); diff --git a/src/index.ts b/src/index.ts index 8854ff8..4ae4870 100644 --- a/src/index.ts +++ b/src/index.ts @@ -24,7 +24,7 @@ const cacheRequestHandler: RequestHandler = (req, res, next) => { return res.sendStatus(403); } - const fileName = url.split('/').pop() || ''; + const fileName = url.split('/').pop() ?? ''; const fileType = fileName.slice(fileName.lastIndexOf('.')); if (!VALID_FILE_TYPES.includes(fileType)) { diff --git a/src/utils.ts b/src/utils.ts index 1a52035..a332fb5 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -23,7 +23,7 @@ export const printServedEndpoints = ( const interfaces = os.networkInterfaces(); const list = Object.keys(interfaces) .map((name) => - (interfaces[name] || []).filter((item) => item.family === 'IPv4') + (interfaces[name] ?? []).filter((item) => item.family === 'IPv4') ) .filter((l) => l.length > 0) .flat(); diff --git a/tsconfig.json b/tsconfig.json index fbe9db6..d2a8403 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -26,10 +26,12 @@ /* Modules */ "module": "ESNEXT" /* Specify what module code is generated. */, - // "rootDir": "./", /* Specify the root folder within your source files. */ + "rootDir": "./" /* Specify the root folder within your source files. */, "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + "baseUrl": "./" /* Specify the base directory to resolve non-relative module names. */, + "paths": { + "app/*": ["./*"] + } /* Specify a set of entries that re-map imports to additional lookup locations. */, // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ // "types": [], /* Specify type package names to be included without being referenced in a source file. */ @@ -51,7 +53,7 @@ // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ // "outDir": "./", /* Specify an output folder for all emitted files. */ // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ + "noEmit": true /* Disable emitting files from a compilation. */, // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ diff --git a/types.ts b/types.d.ts similarity index 85% rename from types.ts rename to types.d.ts index 03368e8..73ac2bf 100644 --- a/types.ts +++ b/types.d.ts @@ -1,4 +1,4 @@ -type TProxy = { +interface TProxy { protocol: 'http' | 'https' | 'socks5'; host: string; port: number; @@ -6,9 +6,9 @@ type TProxy = { username: string; password: string; }; -}; +} -type TServer = { +interface TServer { name: string; url: string; fileTypes?: string[]; @@ -17,7 +17,7 @@ type TServer = { username: string; password: string; }; -}; +} export interface IConfig { PORT: number; @@ -27,5 +27,5 @@ export interface IConfig { LOG_REQUESTS?: boolean; IGNORE_FILES?: string[]; VALID_FILE_TYPES?: string[]; - PROXIES: { [K: string]: TProxy }; + PROXIES: Record<string, TProxy>; } diff --git a/yarn.lock b/yarn.lock index c3d73b6..5f4f251 100644 --- a/yarn.lock +++ b/yarn.lock @@ -191,14 +191,14 @@ __metadata: languageName: node linkType: hard -"@eslint/config-array@npm:^0.17.1": - version: 0.17.1 - resolution: "@eslint/config-array@npm:0.17.1" +"@eslint/config-array@npm:^0.18.0": + version: 0.18.0 + resolution: "@eslint/config-array@npm:0.18.0" dependencies: "@eslint/object-schema": "npm:^2.1.4" debug: "npm:^4.3.1" minimatch: "npm:^3.1.2" - checksum: 10c0/b986a0a96f2b42467578968ce3d4ae3b9284e587f8490f2dcdc44ff1b8d30580c62b221da6e58d07b09e156c3050e2dc38267f9370521d9cafc099c4e30154ef + checksum: 10c0/0234aeb3e6b052ad2402a647d0b4f8a6aa71524bafe1adad0b8db1dfe94d7f5f26d67c80f79bb37ac61361a1d4b14bb8fb475efe501de37263cf55eabb79868f languageName: node linkType: hard @@ -219,10 +219,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.9.0, @eslint/js@npm:^9.9.0": - version: 9.9.0 - resolution: "@eslint/js@npm:9.9.0" - checksum: 10c0/6ec9f1f0d576132444d6a5c66a8a08b0be9444e3ebb563fa6a6bebcf5299df3da7e454dc04c0fa601bb811197f00764b3a04430d8458cdb8e3a4677993d23f30 +"@eslint/js@npm:9.9.1, @eslint/js@npm:^9.9.1": + version: 9.9.1 + resolution: "@eslint/js@npm:9.9.1" + checksum: 10c0/a3a91de2ce78469f7c4eee78c1eba77360706e1d0fa0ace2e19102079bcf237b851217c85ea501dc92c4c3719d60d9df966977abc8554d4c38e3638c1f53dcb2 languageName: node linkType: hard @@ -432,6 +432,32 @@ __metadata: languageName: node linkType: hard +"@types/eslint@npm:*": + version: 9.6.1 + resolution: "@types/eslint@npm:9.6.1" + dependencies: + "@types/estree": "npm:*" + "@types/json-schema": "npm:*" + checksum: 10c0/69ba24fee600d1e4c5abe0df086c1a4d798abf13792d8cfab912d76817fe1a894359a1518557d21237fbaf6eda93c5ab9309143dee4c59ef54336d1b3570420e + languageName: node + linkType: hard + +"@types/eslint__js@npm:^8.42.3": + version: 8.42.3 + resolution: "@types/eslint__js@npm:8.42.3" + dependencies: + "@types/eslint": "npm:*" + checksum: 10c0/ccc5180b92155929a089ffb03ed62625216dcd5e46dd3197c6f82370ce8b52c7cb9df66c06b0a3017995409e023bc9eafe5a3f009e391960eacefaa1b62d9a56 + languageName: node + linkType: hard + +"@types/estree@npm:*": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d + languageName: node + linkType: hard + "@types/express-serve-static-core@npm:^4.17.33": version: 4.19.5 resolution: "@types/express-serve-static-core@npm:4.19.5" @@ -488,6 +514,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:*": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db + languageName: node + linkType: hard + "@types/mime@npm:^1": version: 1.3.5 resolution: "@types/mime@npm:1.3.5" @@ -562,15 +595,15 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.1.0" +"@typescript-eslint/eslint-plugin@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.3.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.1.0" - "@typescript-eslint/type-utils": "npm:8.1.0" - "@typescript-eslint/utils": "npm:8.1.0" - "@typescript-eslint/visitor-keys": "npm:8.1.0" + "@typescript-eslint/scope-manager": "npm:8.3.0" + "@typescript-eslint/type-utils": "npm:8.3.0" + "@typescript-eslint/utils": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" @@ -581,68 +614,68 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/7bbeae588f859b59c34d6a76cac06ef0fa605921b40c5d3b65b94829984280ea84c4dd3f5cb9ce2eb326f5563e9abb4c90ebff05c47f83f4def296c2ea1fa86c + checksum: 10c0/d5242b16b8602ab5817cf04b35ac7208b6bee530730eeed6eab886667d1f2c5fac1537b3e33c453393090a1c6fcd50f727c07f5168985a00e7d23d1f99576988 languageName: node linkType: hard -"@typescript-eslint/parser@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/parser@npm:8.1.0" +"@typescript-eslint/parser@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/parser@npm:8.3.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.1.0" - "@typescript-eslint/types": "npm:8.1.0" - "@typescript-eslint/typescript-estree": "npm:8.1.0" - "@typescript-eslint/visitor-keys": "npm:8.1.0" + "@typescript-eslint/scope-manager": "npm:8.3.0" + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/typescript-estree": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/b94b2d3ab5ca505484d100701fad6a04a5dc8d595029bac1b9f5b8a4a91d80fd605b0f65d230b36a97ab7e5d55eeb0c28af2ab63929a3e4ab8fdefd2a548c36b + checksum: 10c0/8185e7f1f570cded8719cfb1e8147fcbbc5b8796de628d68024d2929ce6fb02d1f6101b741161229e877be1c30c720701e1e1f7c4313dba33d4bb1190a85f705 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/scope-manager@npm:8.1.0" +"@typescript-eslint/scope-manager@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/scope-manager@npm:8.3.0" dependencies: - "@typescript-eslint/types": "npm:8.1.0" - "@typescript-eslint/visitor-keys": "npm:8.1.0" - checksum: 10c0/2bcf8cd176a1819bddcae16c572e7da8fba821b995a91cd53d64d8d6b85a17f5a895522f281ba57e34929574bddd4d6684ee3e545ec4e8096be4c3198e253a9a + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" + checksum: 10c0/24d093505d444a07db88f9ab44af04eb738ce523ac3f98b0a641cf3a3ee38d18aff9f72bbf2b2e2d9f45e57c973f31016f1e224cd8ab773f6e7c3477c5a09ad3 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/type-utils@npm:8.1.0" +"@typescript-eslint/type-utils@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/type-utils@npm:8.3.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.1.0" - "@typescript-eslint/utils": "npm:8.1.0" + "@typescript-eslint/typescript-estree": "npm:8.3.0" + "@typescript-eslint/utils": "npm:8.3.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/62753941c4136e8d2daa72fe0410dea48e5317a6f12ece6382ca85e29912bd1b3f739b61d1060fc0a1f8c488dfc905beab4c8b8497951a21c3138a659c7271ec + checksum: 10c0/0e4b42ff2bfcd1727893bb7fe5fcf1aa808b45b5f690c249c68ce7aff68ddfba3d8b1565de2f08972915df23fa7ab114c09f507668e9b0b63faf1e34a5091706 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/types@npm:8.1.0" - checksum: 10c0/ceade44455f45974e68956016c4d1c6626580732f7f9675e14ffa63db80b551752b0df596b20473dae9f0dc6ed966e17417dc2cf36e1a82b6ab0edc97c5eaa50 +"@typescript-eslint/types@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/types@npm:8.3.0" + checksum: 10c0/5cd733af7ffa0cdaa5842f6c5e275b3a5c9b98dc49bf1bb9df1f0b51d346bef2a10a827d886f60492d502218a272e935cef50b4f7c69100217d5b10a2499c7b1 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.1.0" +"@typescript-eslint/typescript-estree@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.3.0" dependencies: - "@typescript-eslint/types": "npm:8.1.0" - "@typescript-eslint/visitor-keys": "npm:8.1.0" + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/visitor-keys": "npm:8.3.0" debug: "npm:^4.3.4" - globby: "npm:^11.1.0" + fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" minimatch: "npm:^9.0.4" semver: "npm:^7.6.0" @@ -650,31 +683,31 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/a7bc8275df1c79c4cb14ef086c56674316dd4907efec53eddca35d0b5220428b69c82178ce2d95138da2e398269c8bd0764cae8020a36417e411e35c3c47bc4b + checksum: 10c0/dd73aa1a9d7b5c7e6238e766e6ecdb6d87a9b28a24815258b7bbdc59c49fb525d3fe15d9b7c672e2220678f9d5fabdd9615e4cd5ee97a102fd46023ec0735d50 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/utils@npm:8.1.0" +"@typescript-eslint/utils@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/utils@npm:8.3.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.1.0" - "@typescript-eslint/types": "npm:8.1.0" - "@typescript-eslint/typescript-estree": "npm:8.1.0" + "@typescript-eslint/scope-manager": "npm:8.3.0" + "@typescript-eslint/types": "npm:8.3.0" + "@typescript-eslint/typescript-estree": "npm:8.3.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/c95503a6bdcd98b1ff04d1adbf46377b2036b1c510d90a4a056401f996f775f06c3108c95fb81cd6babc9c97b73b91b8e848f0337bc508de8a49c993582f0e75 + checksum: 10c0/e4e9e820cf4b4775bb66b2293a2a827897edaba88577b63df317b50752a01d542be521cc4842976fbbd93e08b9e273ce9d20e23768d06de68a83d68cc0f68a93 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.1.0": - version: 8.1.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.1.0" +"@typescript-eslint/visitor-keys@npm:8.3.0": + version: 8.3.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.3.0" dependencies: - "@typescript-eslint/types": "npm:8.1.0" + "@typescript-eslint/types": "npm:8.3.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/b7544dbb0eec1ddbfcd95c04b51b9a739c2e768c16d1c88508f976a2b0d1bc02fefb7491930e06e48073a5c07c6f488cd8403bba3a8b918888b93a88d5ac3869 + checksum: 10c0/4c19216636f2cc25026fe20d2832d857f05c262eba78bc4159121c696199e44cac68443565959f9336372f7686a14b452867300cf4deb3c0507b8dbde88ac0e6 languageName: node linkType: hard @@ -821,13 +854,6 @@ __metadata: languageName: node linkType: hard -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 10c0/429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962 - languageName: node - linkType: hard - "ast-types@npm:^0.13.4": version: 0.13.4 resolution: "ast-types@npm:0.13.4" @@ -1329,15 +1355,6 @@ __metadata: languageName: node linkType: hard -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: "npm:^4.0.0" - checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c - languageName: node - linkType: hard - "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -1591,15 +1608,15 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^9.9.0": - version: 9.9.0 - resolution: "eslint@npm:9.9.0" +"eslint@npm:^9.9.1": + version: 9.9.1 + resolution: "eslint@npm:9.9.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.11.0" - "@eslint/config-array": "npm:^0.17.1" + "@eslint/config-array": "npm:^0.18.0" "@eslint/eslintrc": "npm:^3.1.0" - "@eslint/js": "npm:9.9.0" + "@eslint/js": "npm:9.9.1" "@humanwhocodes/module-importer": "npm:^1.0.1" "@humanwhocodes/retry": "npm:^0.3.0" "@nodelib/fs.walk": "npm:^1.2.8" @@ -1636,7 +1653,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/3a22f68c99d75dcbafe6e2fef18d2b5bbcc960c2437f48a414ccf9ca214254733a18e6b79d07bbd374a2369a648413e421aabd07b11be3de5a44d5a4b9997877 + checksum: 10c0/5e71efda7c0a14ee95436d5cdfed04ee61dfb1d89d7a32b50a424de2e680af82849628ea6581950c2e0726491f786a3cfd0032ce013c1c5093786e475cfdfb33 languageName: node linkType: hard @@ -1790,7 +1807,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9": +"fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -2113,20 +2130,6 @@ __metadata: languageName: node linkType: hard -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: "npm:^2.1.0" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.2.9" - ignore: "npm:^5.2.0" - merge2: "npm:^1.4.1" - slash: "npm:^3.0.0" - checksum: 10c0/b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189 - languageName: node - linkType: hard - "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -2521,6 +2524,117 @@ __metadata: languageName: node linkType: hard +"lefthook-darwin-arm64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-darwin-arm64@npm:1.7.14" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"lefthook-darwin-x64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-darwin-x64@npm:1.7.14" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"lefthook-freebsd-arm64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-freebsd-arm64@npm:1.7.14" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"lefthook-freebsd-x64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-freebsd-x64@npm:1.7.14" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"lefthook-linux-arm64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-linux-arm64@npm:1.7.14" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"lefthook-linux-x64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-linux-x64@npm:1.7.14" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"lefthook-openbsd-arm64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-openbsd-arm64@npm:1.7.14" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"lefthook-openbsd-x64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-openbsd-x64@npm:1.7.14" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"lefthook-windows-arm64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-windows-arm64@npm:1.7.14" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"lefthook-windows-x64@npm:1.7.14": + version: 1.7.14 + resolution: "lefthook-windows-x64@npm:1.7.14" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"lefthook@npm:^1.7.14": + version: 1.7.14 + resolution: "lefthook@npm:1.7.14" + dependencies: + lefthook-darwin-arm64: "npm:1.7.14" + lefthook-darwin-x64: "npm:1.7.14" + lefthook-freebsd-arm64: "npm:1.7.14" + lefthook-freebsd-x64: "npm:1.7.14" + lefthook-linux-arm64: "npm:1.7.14" + lefthook-linux-x64: "npm:1.7.14" + lefthook-openbsd-arm64: "npm:1.7.14" + lefthook-openbsd-x64: "npm:1.7.14" + lefthook-windows-arm64: "npm:1.7.14" + lefthook-windows-x64: "npm:1.7.14" + dependenciesMeta: + lefthook-darwin-arm64: + optional: true + lefthook-darwin-x64: + optional: true + lefthook-freebsd-arm64: + optional: true + lefthook-freebsd-x64: + optional: true + lefthook-linux-arm64: + optional: true + lefthook-linux-x64: + optional: true + lefthook-openbsd-arm64: + optional: true + lefthook-openbsd-x64: + optional: true + lefthook-windows-arm64: + optional: true + lefthook-windows-x64: + optional: true + bin: + lefthook: bin/index.js + checksum: 10c0/0fc3440e6fb67a765feff088b226ae15c9ffb811be8168567ce71bc276a523f4f81b49b0f3019862e8e6edb205153f4053fdc9d31f7cf029426bedfcf7038407 + languageName: node + linkType: hard + "levn@npm:^0.4.1": version: 0.4.1 resolution: "levn@npm:0.4.1" @@ -2608,28 +2722,30 @@ __metadata: version: 0.0.0-use.local resolution: "maven-mirror-tool@workspace:." dependencies: - "@eslint/js": "npm:^9.9.0" + "@eslint/js": "npm:^9.9.1" + "@types/eslint__js": "npm:^8.42.3" "@types/express": "npm:^4.17.21" "@types/got": "npm:^9.6.12" "@types/js-yaml": "npm:^4.0.9" "@types/minimist": "npm:^1.2.5" "@types/morgan": "npm:^1.9.9" chalk: "npm:^5.3.0" - eslint: "npm:^9.9.0" + eslint: "npm:^9.9.1" eslint-config-prettier: "npm:^9.1.0" eslint-plugin-prettier: "npm:^5.2.1" express: "npm:^4.19.2" globals: "npm:^15.9.0" got: "npm:^14.4.2" js-yaml: "npm:^4.1.0" + lefthook: "npm:^1.7.14" minimist: "npm:^1.2.8" morgan: "npm:^1.10.0" pm2: "npm:^5.4.2" prettier: "npm:^3.3.3" proxy-agent: "npm:^6.4.0" - tsx: "npm:^4.17.0" + tsx: "npm:^4.19.0" typescript: "npm:^5.5.4" - typescript-eslint: "npm:^8.1.0" + typescript-eslint: "npm:^8.3.0" languageName: unknown linkType: soft @@ -2647,7 +2763,7 @@ __metadata: languageName: node linkType: hard -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": +"merge2@npm:^1.3.0": version: 1.4.1 resolution: "merge2@npm:1.4.1" checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb @@ -3139,13 +3255,6 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c - languageName: node - linkType: hard - "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" @@ -3701,13 +3810,6 @@ __metadata: languageName: node linkType: hard -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b - languageName: node - linkType: hard - "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -3925,9 +4027,9 @@ __metadata: languageName: node linkType: hard -"tsx@npm:^4.17.0": - version: 4.17.0 - resolution: "tsx@npm:4.17.0" +"tsx@npm:^4.19.0": + version: 4.19.0 + resolution: "tsx@npm:4.19.0" dependencies: esbuild: "npm:~0.23.0" fsevents: "npm:~2.3.3" @@ -3937,7 +4039,7 @@ __metadata: optional: true bin: tsx: dist/cli.mjs - checksum: 10c0/ad720b81d6447c7695d24c27947fa1a2b6db9d2ef03216389edd6fa0006aa479bc0d8348a1ac9975a08edef4ce791ff5629a24d8dccbb0987f42e5407785cfa4 + checksum: 10c0/d14463a78067c6db84c677b79b14861de6d7f6fb0ffa5727cc500c4552459e936395a3854ad0112af0fd7b263bcedd62ce3929b036188eb10cd9902a607ffe34 languageName: node linkType: hard @@ -3983,17 +4085,17 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^8.1.0": - version: 8.1.0 - resolution: "typescript-eslint@npm:8.1.0" +"typescript-eslint@npm:^8.3.0": + version: 8.3.0 + resolution: "typescript-eslint@npm:8.3.0" dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.1.0" - "@typescript-eslint/parser": "npm:8.1.0" - "@typescript-eslint/utils": "npm:8.1.0" + "@typescript-eslint/eslint-plugin": "npm:8.3.0" + "@typescript-eslint/parser": "npm:8.3.0" + "@typescript-eslint/utils": "npm:8.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/9b5769b95aeca54ae9fa15cd2f0e5656747f643a7be220513555de143ff19d70c5945eb82259a3fb29ab4d37f4d158f7f088e7b2cf98e2e8253a7429ac19d072 + checksum: 10c0/90134b4b601d6fa582a95c9bee23c254f6ac2ca38aed07986d0a3bb75e1ddfdceeb9650c8647b34148696115d5fe0ce281413e4a8ec001e1e928356242a1756d languageName: node linkType: hard