add lefthook pre-commit hook

This commit is contained in:
hexboy 2024-09-02 00:59:03 +03:30
parent b83e36f082
commit e39804b032
10 changed files with 292 additions and 158 deletions

View file

@ -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/'] },
];

6
lefthook.yml Normal file
View file

@ -0,0 +1,6 @@
pre-commit:
parallel: true
commands:
lint:
glob: '*.{js,ts,jsx,tsx}'
run: yarn lint {staged_files}

View file

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

View file

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

View file

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

View file

@ -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)) {

View file

@ -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();

View file

@ -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. */

View file

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

354
yarn.lock
View file

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