From 028bb122e17474089eaeb5b5eb462413cdcb313c Mon Sep 17 00:00:00 2001 From: iPromKnight Date: Wed, 7 Feb 2024 20:59:37 +0000 Subject: [PATCH] back to esbuild- imports changed --- src/node/consumer/.swcrc | 15 - src/node/consumer/esbuild.js | 54 + src/node/consumer/package-lock.json | 1662 ++++++++++++++++- src/node/consumer/package.json | 21 +- .../src/lib/interfaces/cache_service.ts | 2 +- .../src/lib/interfaces/cinemeta_metadata.ts | 2 +- .../lib/interfaces/kitsu_catalog_metadata.ts | 2 +- .../src/lib/interfaces/kitsu_metadata.ts | 2 +- .../src/lib/interfaces/metadata_response.ts | 2 +- .../src/lib/interfaces/metadata_service.ts | 4 +- .../interfaces/parse_torrent_title_result.ts | 2 +- .../src/lib/interfaces/parsed_torrent.ts | 6 +- .../src/lib/interfaces/season_episode_map.ts | 2 +- .../interfaces/torrent_download_service.ts | 4 +- .../lib/interfaces/torrent_entries_service.ts | 8 +- .../lib/interfaces/torrent_file_collection.ts | 6 +- .../lib/interfaces/torrent_file_service.ts | 4 +- .../interfaces/torrent_processing_service.ts | 2 +- .../interfaces/torrent_subtitle_service.ts | 2 +- .../src/lib/jobs/process_torrents_job.ts | 16 +- .../src/lib/models/composition_root.ts | 10 +- .../lib/models/configuration/cache_config.ts | 2 +- .../models/configuration/database_config.ts | 2 +- .../lib/models/configuration/job_config.ts | 2 +- .../models/configuration/tracker_config.ts | 2 +- .../src/lib/models/inversify_config.ts | 50 +- .../src/lib/repository/database_repository.ts | 34 +- .../interfaces/database_repository.ts | 20 +- .../repository/interfaces/file_attributes.ts | 4 +- .../interfaces/torrent_attributes.ts | 6 +- .../src/lib/repository/models/content.ts | 4 +- .../src/lib/repository/models/file.ts | 6 +- .../src/lib/repository/models/ingestedPage.ts | 2 +- .../lib/repository/models/ingestedTorrent.ts | 2 +- .../src/lib/repository/models/provider.ts | 2 +- .../src/lib/repository/models/skipTorrent.ts | 2 +- .../src/lib/repository/models/subtitle.ts | 4 +- .../src/lib/repository/models/torrent.ts | 8 +- .../src/lib/services/cache_service.ts | 12 +- .../src/lib/services/configuration_service.ts | 14 +- .../src/lib/services/logging_service.ts | 2 +- .../src/lib/services/metadata_service.ts | 23 +- .../lib/services/torrent_download_service.ts | 20 +- .../lib/services/torrent_entries_service.ts | 38 +- .../src/lib/services/torrent_file_service.ts | 34 +- .../services/torrent_processing_service.ts | 16 +- .../lib/services/torrent_subtitle_service.ts | 8 +- .../src/lib/services/tracker_service.ts | 10 +- src/node/consumer/src/main.ts | 6 +- src/node/consumer/tsconfig.json | 53 +- 50 files changed, 1935 insertions(+), 281 deletions(-) delete mode 100644 src/node/consumer/.swcrc create mode 100644 src/node/consumer/esbuild.js diff --git a/src/node/consumer/.swcrc b/src/node/consumer/.swcrc deleted file mode 100644 index eff14b3..0000000 --- a/src/node/consumer/.swcrc +++ /dev/null @@ -1,15 +0,0 @@ -{ - "jsc": { - "parser": { - "syntax": "typescript", - "tsx": false, - "decorators": true, - "dynamicImport": true - }, - "target": "es2020", - "baseUrl": "." - }, - "module": { - "type": "commonjs" - } -} \ No newline at end of file diff --git a/src/node/consumer/esbuild.js b/src/node/consumer/esbuild.js new file mode 100644 index 0000000..17393df --- /dev/null +++ b/src/node/consumer/esbuild.js @@ -0,0 +1,54 @@ +import {build} from "esbuild"; +import {readFileSync, rmSync} from "fs"; + +const {devDependencies} = JSON.parse(readFileSync("./package.json", "utf8")); + +const start = Date.now(); + +try { + const outdir = "dist"; + + rmSync(outdir, {recursive: true, force: true}); + + build({ + bundle: true, + entryPoints: [ + "./src/main.ts", + ], + external: [...(devDependencies && Object.keys(devDependencies))], + keepNames: true, + minify: true, + outbase: "./src", + outdir, + outExtension: { + ".js": ".cjs", + }, + platform: "node", + plugins: [ + { + name: "populate-import-meta", + setup: ({onLoad}) => { + onLoad({filter: new RegExp(`${import.meta.dirname}/src/.*.(js|ts)$`)}, args => { + const contents = readFileSync(args.path, "utf8"); + + const transformedContents = contents + .replace(/import\.meta/g, `{dirname:__dirname,filename:__filename}`) + .replace(/import\.meta\.filename/g, "__filename") + .replace(/import\.meta\.dirname/g, "__dirname"); + + return {contents: transformedContents, loader: "default"}; + }); + }, + } + ], + }).then(() => { + // biome-ignore lint/style/useTemplate: + // eslint-disable-next-line no-undef + console.log("⚡ " + "\x1b[32m" + `Done in ${Date.now() - start}ms`); + }); +} catch (e) { + // eslint-disable-next-line no-undef + console.log(e); + // eslint-disable-next-line no-undef + process.exit(1); +} \ No newline at end of file diff --git a/src/node/consumer/package-lock.json b/src/node/consumer/package-lock.json index a7c3169..c5ada6b 100644 --- a/src/node/consumer/package-lock.json +++ b/src/node/consumer/package-lock.json @@ -39,11 +39,18 @@ "@types/webtorrent": "^0.109.7", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", + "concurrently": "^8.2.2", + "cross-env": "^7.0.3", "esbuild": "^0.20.0", "eslint": "^8.56.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-import-helpers": "^1.3.1", + "node-gyp": "^10.0.1", + "nodemon": "^3.0.3", "pino-pretty": "^10.3.1", + "ts-node": "^10.9.2", + "tsc-alias": "^1.8.8", + "tsconfig-paths": "^4.2.0", "tsx": "^4.7.0", "typescript": "^5.3.3" } @@ -68,6 +75,30 @@ "node": ">=0.8" } }, + "node_modules/@babel/runtime": { + "version": "7.23.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", + "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz", @@ -518,6 +549,127 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@mole-inc/bin-wrapper": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/@mole-inc/bin-wrapper/-/bin-wrapper-8.0.1.tgz", @@ -576,6 +728,71 @@ "node": ">= 8" } }, + "node_modules/@npmcli/agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.1.tgz", + "integrity": "sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", + "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/fs/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@silentbot1/nat-api": { "version": "0.4.7", "resolved": "https://registry.npmjs.org/@silentbot1/nat-api/-/nat-api-0.4.7.tgz", @@ -996,6 +1213,30 @@ "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", "dev": true }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, "node_modules/@types/amqplib": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.10.4.tgz", @@ -1047,8 +1288,9 @@ }, "node_modules/@types/json5": { "version": "0.0.29", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true }, "node_modules/@types/keyv": { "version": "3.1.4", @@ -1465,6 +1707,12 @@ "http-parser-js": "^0.4.3" } }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", @@ -1495,6 +1743,40 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { "version": "6.12.6", "dev": true, @@ -1550,8 +1832,6 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -1580,6 +1860,12 @@ } ] }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, "node_modules/argparse": { "version": "2.0.1", "dev": true, @@ -1963,8 +2249,6 @@ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=8" } @@ -2155,6 +2439,75 @@ "node": ">=6.14.2" } }, + "node_modules/cacache": { + "version": "18.0.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.2.tgz", + "integrity": "sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==", + "dev": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/cache-chunk-store": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/cache-chunk-store/-/cache-chunk-store-3.2.2.tgz", @@ -2315,8 +2668,6 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -2341,8 +2692,6 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -2350,6 +2699,15 @@ "node": ">= 6" } }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/chrome-dgram": { "version": "3.0.6", "funding": [ @@ -2408,6 +2766,29 @@ "block-iterator": "^1.1.1" } }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", @@ -2480,6 +2861,48 @@ "version": "0.0.1", "license": "MIT" }, + "node_modules/concurrently": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-8.2.2.tgz", + "integrity": "sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "date-fns": "^2.30.0", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "spawn-command": "0.0.2", + "supports-color": "^8.1.1", + "tree-kill": "^1.2.2", + "yargs": "^17.7.2" + }, + "bin": { + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" + }, + "engines": { + "node": "^14.13.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -2535,6 +2958,12 @@ } ] }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, "node_modules/create-torrent": { "version": "6.0.16", "resolved": "https://registry.npmjs.org/create-torrent/-/create-torrent-6.0.16.tgz", @@ -2593,6 +3022,24 @@ "wrappy": "1" } }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, "node_modules/cross-fetch-ponyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/cross-fetch-ponyfill/-/cross-fetch-ponyfill-1.0.3.tgz", @@ -2663,6 +3110,22 @@ "node": ">= 12" } }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, "node_modules/dateformat": { "version": "4.6.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", @@ -2790,6 +3253,15 @@ "version": "1.3.0", "license": "MIT" }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -2864,6 +3336,39 @@ "version": "2.0.6", "license": "MIT" }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/entities": { "version": "4.5.0", "license": "BSD-2-Clause", @@ -2874,6 +3379,15 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/err-code": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", @@ -3006,6 +3520,15 @@ "@esbuild/win32-x64": "0.20.0" } }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -3191,6 +3714,30 @@ "node": ">=0.10.0" } }, + "node_modules/eslint-plugin-import/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "node_modules/eslint-scope": { "version": "7.2.2", "dev": true, @@ -3320,6 +3867,12 @@ "node": ">=4" } }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, "node_modules/ext-list": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", @@ -3604,6 +4157,34 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/form-data": { "version": "4.0.0", "license": "MIT", @@ -3632,6 +4213,18 @@ "resolved": "https://registry.npmjs.org/freelist/-/freelist-1.0.3.tgz", "integrity": "sha512-Ji7fEnMdZDGbS5oXElpRJsn9jPvBR8h/037D3bzreNmS8809cISq/2D9//JbA/TaZmkkN8cmecXwmQHmM+NHhg==" }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/fs-native-extensions": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/fs-native-extensions/-/fs-native-extensions-1.2.5.tgz", @@ -3706,6 +4299,15 @@ "version": "1.1.0", "license": "MIT" }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.2", "dev": true, @@ -3906,6 +4508,12 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, "node_modules/graphemer": { "version": "1.4.0", "dev": true, @@ -4019,6 +4627,19 @@ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", "integrity": "sha512-u8u5ZaG0Tr/VvHlucK2ufMuOp4/5bvwgneXle+y228K5rMbJOlVjThONcaAw3ikAy8b2OO9RfEucdMHFz3UWMA==" }, + "node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/http2-wrapper": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", @@ -4032,6 +4653,19 @@ "node": ">=10.19.0" } }, + "node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -4093,6 +4727,12 @@ "node": ">= 4" } }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, "node_modules/import-fresh": { "version": "3.3.0", "dev": true, @@ -4116,6 +4756,15 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/inflection": { "version": "1.13.4", "engines": [ @@ -4202,8 +4851,6 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -4275,6 +4922,15 @@ "resolved": "https://registry.npmjs.org/is-file/-/is-file-1.0.0.tgz", "integrity": "sha512-ZGMuc+xA8mRnrXtmtf2l/EkIW2zaD2LSBWlaOVEF6yH4RTndHob65V4SwWWdtGKVthQfXPVKsXqw4TDUjbVxVQ==" }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "dev": true, @@ -4286,6 +4942,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, "node_modules/is-negative-zero": { "version": "2.0.2", "dev": true, @@ -4435,6 +5097,24 @@ "version": "2.0.0", "license": "ISC" }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/join-async-iterator": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/join-async-iterator/-/join-async-iterator-1.1.1.tgz", @@ -4476,14 +5156,15 @@ "license": "MIT" }, "node_modules/json5": { - "version": "1.0.2", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, "bin": { "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/junk": { @@ -4678,6 +5359,34 @@ "thirty-two": "^1.0.2" } }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", + "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", + "dev": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/memory-chunk-store": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/memory-chunk-store/-/memory-chunk-store-1.3.5.tgz", @@ -4779,6 +5488,153 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", + "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/moment": { "version": "2.30.1", "license": "MIT", @@ -4876,6 +5732,19 @@ "node": ">=12" } }, + "node_modules/mylas": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz", + "integrity": "sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/raouldeheer" + } + }, "node_modules/name-to-imdb": { "version": "3.0.4", "license": "MIT", @@ -4925,6 +5794,15 @@ "version": "2.0.0", "license": "MIT" }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/netmask": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", @@ -5007,6 +5885,30 @@ "version": "3.0.1", "license": "BSD-2-Clause" }, + "node_modules/node-gyp": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz", + "integrity": "sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/node-gyp-build": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", @@ -5017,13 +5919,223 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/node-gyp/node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "dev": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/nodemon": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.3.tgz", + "integrity": "sha512-7jH/NXbFPxVaMwmBCC2B9F/V6X1VkEdNgx3iu9jji8WxWcvhMWkmhNWhI5077zknOnZnBzba9hZP6bCPJLSReQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^4", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/nodemon/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nodemon/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, - "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -5240,6 +6352,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/packet-reader": { "version": "1.0.0", "license": "MIT" @@ -5315,6 +6442,22 @@ "dev": true, "license": "MIT" }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -5604,6 +6747,18 @@ "nice-napi": "^1.0.2" } }, + "node_modules/plimit-lit": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/plimit-lit/-/plimit-lit-1.6.1.tgz", + "integrity": "sha512-B7+VDyb8Tl6oMJT9oSO2CW8XC/T4UcJGrwOVoNGwOQsQYhlpfajmrMj5xeejqaASq3V/EqThyOeATEOMuSEXiA==", + "dev": true, + "dependencies": { + "queue-lit": "^1.5.1" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/postgres-array": { "version": "2.0.0", "license": "MIT", @@ -5643,6 +6798,15 @@ "node": ">= 0.8.0" } }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -5663,6 +6827,25 @@ "node": ">=16" } }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promise-retry/node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, "node_modules/proxy-from-env": { "version": "1.1.0", "license": "MIT" @@ -5673,6 +6856,12 @@ "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", "dev": true }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -5710,6 +6899,15 @@ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" }, + "node_modules/queue-lit": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/queue-lit/-/queue-lit-1.5.2.tgz", + "integrity": "sha512-tLc36IOPeMAubu8BkW8YDBV+WyIgKlYU7zUNs0J5Vk9skSZ4JfGlPOqplP0aHdfv7HL0B2Pg6nwiq60Qc6M2Hw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "funding": [ @@ -5868,8 +7066,6 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -5898,6 +7094,12 @@ "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", "dev": true, @@ -5914,6 +7116,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/requires-port": { "version": "1.0.0", "license": "MIT" @@ -5969,6 +7180,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/retry-as-promised": { "version": "7.0.4", "license": "MIT" @@ -6043,6 +7263,15 @@ ], "license": "MIT" }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/safe-array-concat": { "version": "1.1.0", "dev": true, @@ -6342,6 +7571,15 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/side-channel": { "version": "1.0.4", "dev": true, @@ -6360,6 +7598,45 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -6391,6 +7668,20 @@ "npm": ">= 3.0.0" } }, + "node_modules/socks-proxy-agent": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", + "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/socks/node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -6444,6 +7735,12 @@ "memory-pager": "^1.0.2" } }, + "node_modules/spawn-command": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz", + "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", + "dev": true + }, "node_modules/speed-limiter": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/speed-limiter/-/speed-limiter-1.0.2.tgz", @@ -6471,6 +7768,18 @@ "node": ">= 10.x" } }, + "node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "dev": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/streamx": { "version": "2.15.7", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.7.tgz", @@ -6484,6 +7793,35 @@ "version": "0.10.31", "license": "MIT" }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.8", "dev": true, @@ -6537,6 +7875,19 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "dev": true, @@ -6624,6 +7975,56 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -6695,6 +8096,27 @@ "version": "1.0.1", "license": "MIT" }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, "node_modules/trim-repeated": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", @@ -6731,15 +8153,87 @@ "typescript": ">=4.2.0" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, - "license": "MIT", "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tsc-alias": { + "version": "1.8.8", + "resolved": "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.8.tgz", + "integrity": "sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.3", + "commander": "^9.0.0", + "globby": "^11.0.4", + "mylas": "^2.1.9", + "normalize-path": "^3.0.0", + "plimit-lit": "^1.2.6" + }, + "bin": { + "tsc-alias": "dist/bin/index.js" + } + }, + "node_modules/tsc-alias/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", + "dev": true, + "dependencies": { + "json5": "^2.2.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, "node_modules/tslib": { @@ -7289,10 +8783,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, "node_modules/underscore": { "version": "1.13.6", "license": "MIT" }, + "node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/unordered-array-remove": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", @@ -7511,6 +9035,12 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, "node_modules/validator": { "version": "13.11.0", "license": "MIT", @@ -8023,6 +9553,41 @@ "@types/node": "*" } }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "license": "ISC" @@ -8054,10 +9619,55 @@ "node": ">=0.4" } }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "4.0.0", "license": "ISC" }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "dev": true, diff --git a/src/node/consumer/package.json b/src/node/consumer/package.json index 1a04817..bd5bdf9 100644 --- a/src/node/consumer/package.json +++ b/src/node/consumer/package.json @@ -3,14 +3,12 @@ "version": "0.0.1", "type": "module", "scripts": { - "build": "swc src -d dist", - "watch-compile": "swc src -w --out-dir dist", - "watch-dev": "nodemon --watch \"dist/**/*\" -e js ./dist/main.js", - "dev": "concurrently \"npm run watch-compile\" \"npm run watch-dev\"", - "start": "node dist/main.js", "clean": "rm -rf dist", - "lint": "eslint --ext .ts src", - "lint:fix": "eslint --ext .ts src --fix" + "build": "node esbuild.js", + "dev": "tsx watch --ignore node_modules src/main.ts | pino-pretty", + "start": "node dist/main.cjs", + "lint": "npx eslint ./src --ext .ts,.js", + "lint-fix": "npm run lint -- --fix" }, "license": "MIT", "dependencies": { @@ -35,21 +33,24 @@ "webtorrent": "^2.1.35" }, "devDependencies": { - "@swc/cli": "^0.3.9", - "@swc/core": "^1.4.0", + "node-gyp": "^10.0.1", + "nodemon": "^3.0.3", "@types/amqplib": "^0.10.4", "@types/magnet-uri": "^5.1.5", "@types/node": "^20.11.16", "@types/validator": "^13.11.8", + "@types/webtorrent": "^0.109.7", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", - "@types/webtorrent": "^0.109.7", + "concurrently": "^8.2.2", "esbuild": "^0.20.0", "eslint": "^8.56.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-import-helpers": "^1.3.1", "pino-pretty": "^10.3.1", "tsx": "^4.7.0", + "ts-node": "^10.9.2", + "tsconfig-paths": "^4.2.0", "typescript": "^5.3.3" } } diff --git a/src/node/consumer/src/lib/interfaces/cache_service.ts b/src/node/consumer/src/lib/interfaces/cache_service.ts index 9487547..40d56c6 100644 --- a/src/node/consumer/src/lib/interfaces/cache_service.ts +++ b/src/node/consumer/src/lib/interfaces/cache_service.ts @@ -1,4 +1,4 @@ -import {CacheMethod} from "../services/cache_service"; +import {CacheMethod} from "@services/cache_service"; /* eslint-disable @typescript-eslint/no-explicit-any */ export interface ICacheService { diff --git a/src/node/consumer/src/lib/interfaces/cinemeta_metadata.ts b/src/node/consumer/src/lib/interfaces/cinemeta_metadata.ts index c2821f3..c19ebf4 100644 --- a/src/node/consumer/src/lib/interfaces/cinemeta_metadata.ts +++ b/src/node/consumer/src/lib/interfaces/cinemeta_metadata.ts @@ -1,4 +1,4 @@ -import {ICommonVideoMetadata} from "./common_video_metadata"; +import {ICommonVideoMetadata} from "@interfaces/common_video_metadata"; export interface ICinemetaJsonResponse { meta?: ICinemetaMetaData; diff --git a/src/node/consumer/src/lib/interfaces/kitsu_catalog_metadata.ts b/src/node/consumer/src/lib/interfaces/kitsu_catalog_metadata.ts index a29f798..277b44c 100644 --- a/src/node/consumer/src/lib/interfaces/kitsu_catalog_metadata.ts +++ b/src/node/consumer/src/lib/interfaces/kitsu_catalog_metadata.ts @@ -1,4 +1,4 @@ -import {IKitsuLink, IKitsuTrailer} from "./kitsu_metadata"; +import {IKitsuLink, IKitsuTrailer} from "@interfaces/kitsu_metadata"; export interface IKitsuCatalogJsonResponse { metas: IKitsuCatalogMetaData[]; diff --git a/src/node/consumer/src/lib/interfaces/kitsu_metadata.ts b/src/node/consumer/src/lib/interfaces/kitsu_metadata.ts index 9b4f4e6..56229b5 100644 --- a/src/node/consumer/src/lib/interfaces/kitsu_metadata.ts +++ b/src/node/consumer/src/lib/interfaces/kitsu_metadata.ts @@ -1,4 +1,4 @@ -import {ICommonVideoMetadata} from "./common_video_metadata"; +import {ICommonVideoMetadata} from "@interfaces/common_video_metadata"; export interface IKitsuJsonResponse { cacheMaxAge?: number; diff --git a/src/node/consumer/src/lib/interfaces/metadata_response.ts b/src/node/consumer/src/lib/interfaces/metadata_response.ts index c3d481f..8bccc5e 100644 --- a/src/node/consumer/src/lib/interfaces/metadata_response.ts +++ b/src/node/consumer/src/lib/interfaces/metadata_response.ts @@ -1,4 +1,4 @@ -import {ICommonVideoMetadata} from "./common_video_metadata"; +import {ICommonVideoMetadata} from "@interfaces/common_video_metadata"; export interface IMetadataResponse { kitsuId?: number; diff --git a/src/node/consumer/src/lib/interfaces/metadata_service.ts b/src/node/consumer/src/lib/interfaces/metadata_service.ts index e7abec0..d9c583d 100644 --- a/src/node/consumer/src/lib/interfaces/metadata_service.ts +++ b/src/node/consumer/src/lib/interfaces/metadata_service.ts @@ -1,5 +1,5 @@ -import {IMetaDataQuery} from "./metadata_query"; -import {IMetadataResponse} from "./metadata_response"; +import {IMetaDataQuery} from "@interfaces/metadata_query"; +import {IMetadataResponse} from "@interfaces/metadata_response"; export interface IMetadataService { getKitsuId(info: IMetaDataQuery): Promise; diff --git a/src/node/consumer/src/lib/interfaces/parse_torrent_title_result.ts b/src/node/consumer/src/lib/interfaces/parse_torrent_title_result.ts index 71514b3..24429fc 100644 --- a/src/node/consumer/src/lib/interfaces/parse_torrent_title_result.ts +++ b/src/node/consumer/src/lib/interfaces/parse_torrent_title_result.ts @@ -1,4 +1,4 @@ -import {IFileAttributes} from "../repository/interfaces/file_attributes"; +import {IFileAttributes} from "@repository/interfaces/file_attributes"; export interface IParseTorrentTitleResult { title?: string; diff --git a/src/node/consumer/src/lib/interfaces/parsed_torrent.ts b/src/node/consumer/src/lib/interfaces/parsed_torrent.ts index 26ec81d..cf30030 100644 --- a/src/node/consumer/src/lib/interfaces/parsed_torrent.ts +++ b/src/node/consumer/src/lib/interfaces/parsed_torrent.ts @@ -1,6 +1,6 @@ -import {TorrentType} from "../enums/torrent_types"; -import {IParseTorrentTitleResult} from "./parse_torrent_title_result"; -import {ITorrentFileCollection} from "./torrent_file_collection"; +import {TorrentType} from "@enums/torrent_types"; +import {IParseTorrentTitleResult} from "@interfaces/parse_torrent_title_result"; +import {ITorrentFileCollection} from "@interfaces/torrent_file_collection"; export interface IParsedTorrent extends IParseTorrentTitleResult { size?: number; diff --git a/src/node/consumer/src/lib/interfaces/season_episode_map.ts b/src/node/consumer/src/lib/interfaces/season_episode_map.ts index 55bb2f7..5fae99b 100644 --- a/src/node/consumer/src/lib/interfaces/season_episode_map.ts +++ b/src/node/consumer/src/lib/interfaces/season_episode_map.ts @@ -1,4 +1,4 @@ -import {ICommonVideoMetadata} from "./common_video_metadata"; +import {ICommonVideoMetadata} from "@interfaces/common_video_metadata"; export interface ISeasonEpisodeMap { [season: number]: { diff --git a/src/node/consumer/src/lib/interfaces/torrent_download_service.ts b/src/node/consumer/src/lib/interfaces/torrent_download_service.ts index 980b354..5d7789c 100644 --- a/src/node/consumer/src/lib/interfaces/torrent_download_service.ts +++ b/src/node/consumer/src/lib/interfaces/torrent_download_service.ts @@ -1,5 +1,5 @@ -import {IParsedTorrent} from "./parsed_torrent"; -import {ITorrentFileCollection} from "./torrent_file_collection"; +import {IParsedTorrent} from "@interfaces/parsed_torrent"; +import {ITorrentFileCollection} from "@interfaces/torrent_file_collection"; export interface ITorrentDownloadService { getTorrentFiles(torrent: IParsedTorrent, timeout: number): Promise; diff --git a/src/node/consumer/src/lib/interfaces/torrent_entries_service.ts b/src/node/consumer/src/lib/interfaces/torrent_entries_service.ts index a92ba1c..f05268a 100644 --- a/src/node/consumer/src/lib/interfaces/torrent_entries_service.ts +++ b/src/node/consumer/src/lib/interfaces/torrent_entries_service.ts @@ -1,7 +1,7 @@ -import {ITorrentAttributes} from "../repository/interfaces/torrent_attributes"; -import {SkipTorrent} from "../repository/models/skipTorrent"; -import {Torrent} from "../repository/models/torrent"; -import {IParsedTorrent} from "./parsed_torrent"; +import {IParsedTorrent} from "@interfaces/parsed_torrent"; +import {ITorrentAttributes} from "@repository/interfaces/torrent_attributes"; +import {SkipTorrent} from "@repository/models/skipTorrent"; +import {Torrent} from "@repository/models/torrent"; export interface ITorrentEntriesService { createTorrentEntry(torrent: IParsedTorrent, overwrite: boolean): Promise; diff --git a/src/node/consumer/src/lib/interfaces/torrent_file_collection.ts b/src/node/consumer/src/lib/interfaces/torrent_file_collection.ts index 3306a44..043c01a 100644 --- a/src/node/consumer/src/lib/interfaces/torrent_file_collection.ts +++ b/src/node/consumer/src/lib/interfaces/torrent_file_collection.ts @@ -1,6 +1,6 @@ -import {IContentAttributes} from "../repository/interfaces/content_attributes"; -import {IFileAttributes} from "../repository/interfaces/file_attributes"; -import {ISubtitleAttributes} from "../repository/interfaces/subtitle_attributes"; +import {IContentAttributes} from "@repository/interfaces/content_attributes"; +import {IFileAttributes} from "@repository/interfaces/file_attributes"; +import {ISubtitleAttributes} from "@repository/interfaces/subtitle_attributes"; export interface ITorrentFileCollection { contents?: IContentAttributes[]; diff --git a/src/node/consumer/src/lib/interfaces/torrent_file_service.ts b/src/node/consumer/src/lib/interfaces/torrent_file_service.ts index f34218c..bedea14 100644 --- a/src/node/consumer/src/lib/interfaces/torrent_file_service.ts +++ b/src/node/consumer/src/lib/interfaces/torrent_file_service.ts @@ -1,5 +1,5 @@ -import {IParsedTorrent} from "./parsed_torrent"; -import {ITorrentFileCollection} from "./torrent_file_collection"; +import {IParsedTorrent} from "@interfaces/parsed_torrent"; +import {ITorrentFileCollection} from "@interfaces/torrent_file_collection"; export interface ITorrentFileService { parseTorrentFiles(torrent: IParsedTorrent): Promise; diff --git a/src/node/consumer/src/lib/interfaces/torrent_processing_service.ts b/src/node/consumer/src/lib/interfaces/torrent_processing_service.ts index e3aa901..abdbd5f 100644 --- a/src/node/consumer/src/lib/interfaces/torrent_processing_service.ts +++ b/src/node/consumer/src/lib/interfaces/torrent_processing_service.ts @@ -1,4 +1,4 @@ -import {IIngestedTorrentAttributes} from "../repository/interfaces/ingested_torrent_attributes"; +import {IIngestedTorrentAttributes} from "@repository/interfaces/ingested_torrent_attributes"; export interface ITorrentProcessingService { processTorrentRecord(torrent: IIngestedTorrentAttributes): Promise; diff --git a/src/node/consumer/src/lib/interfaces/torrent_subtitle_service.ts b/src/node/consumer/src/lib/interfaces/torrent_subtitle_service.ts index 66648b5..1869c0b 100644 --- a/src/node/consumer/src/lib/interfaces/torrent_subtitle_service.ts +++ b/src/node/consumer/src/lib/interfaces/torrent_subtitle_service.ts @@ -1,4 +1,4 @@ -import {ITorrentFileCollection} from "./torrent_file_collection"; +import {ITorrentFileCollection} from "@interfaces/torrent_file_collection"; export interface ITorrentSubtitleService { assignSubtitles(fileCollection: ITorrentFileCollection): ITorrentFileCollection; diff --git a/src/node/consumer/src/lib/jobs/process_torrents_job.ts b/src/node/consumer/src/lib/jobs/process_torrents_job.ts index 9ba5aef..6af4966 100644 --- a/src/node/consumer/src/lib/jobs/process_torrents_job.ts +++ b/src/node/consumer/src/lib/jobs/process_torrents_job.ts @@ -1,12 +1,12 @@ -import client, {Channel, Connection, ConsumeMessage, Options} from 'amqplib' +import {IIngestedRabbitMessage, IIngestedRabbitTorrent} from "@interfaces/ingested_rabbit_message"; +import {ILoggingService} from "@interfaces/logging_service"; +import {IProcessTorrentsJob} from "@interfaces/process_torrents_job"; +import {ITorrentProcessingService} from "@interfaces/torrent_processing_service"; +import {IocTypes} from "@models/ioc_types"; +import {IIngestedTorrentAttributes} from "@repository/interfaces/ingested_torrent_attributes"; +import {configurationService} from '@services/configuration_service'; +import client, {Channel, Connection, ConsumeMessage, Options} from 'amqplib' import {inject, injectable} from "inversify"; -import {IIngestedRabbitMessage, IIngestedRabbitTorrent} from "../interfaces/ingested_rabbit_message"; -import {ILoggingService} from "../interfaces/logging_service"; -import {IProcessTorrentsJob} from "../interfaces/process_torrents_job"; -import {ITorrentProcessingService} from "../interfaces/torrent_processing_service"; -import {IocTypes} from "../models/ioc_types"; -import {IIngestedTorrentAttributes} from "../repository/interfaces/ingested_torrent_attributes"; -import {configurationService} from '../services/configuration_service'; @injectable() export class ProcessTorrentsJob implements IProcessTorrentsJob { diff --git a/src/node/consumer/src/lib/models/composition_root.ts b/src/node/consumer/src/lib/models/composition_root.ts index 2b8dbf0..7270cd4 100644 --- a/src/node/consumer/src/lib/models/composition_root.ts +++ b/src/node/consumer/src/lib/models/composition_root.ts @@ -1,9 +1,9 @@ +import {ICompositionalRoot} from "@interfaces/composition_root"; +import {IProcessTorrentsJob} from "@interfaces/process_torrents_job"; +import {ITrackerService} from "@interfaces/tracker_service"; +import {IocTypes} from "@models/ioc_types"; +import {IDatabaseRepository} from "@repository/interfaces/database_repository"; import {inject, injectable} from "inversify"; -import {ICompositionalRoot} from "../interfaces/composition_root"; -import {IProcessTorrentsJob} from "../interfaces/process_torrents_job"; -import {ITrackerService} from "../interfaces/tracker_service"; -import {IDatabaseRepository} from "../repository/interfaces/database_repository"; -import {IocTypes} from "./ioc_types"; @injectable() export class CompositionalRoot implements ICompositionalRoot { diff --git a/src/node/consumer/src/lib/models/configuration/cache_config.ts b/src/node/consumer/src/lib/models/configuration/cache_config.ts index 1cba364..21f283f 100644 --- a/src/node/consumer/src/lib/models/configuration/cache_config.ts +++ b/src/node/consumer/src/lib/models/configuration/cache_config.ts @@ -1,4 +1,4 @@ -import {BooleanHelpers} from "../../helpers/boolean_helpers"; +import {BooleanHelpers} from "@helpers/boolean_helpers"; export const cacheConfig = { MONGODB_HOST: process.env.MONGODB_HOST || 'mongodb', diff --git a/src/node/consumer/src/lib/models/configuration/database_config.ts b/src/node/consumer/src/lib/models/configuration/database_config.ts index bcefcd6..4c07d73 100644 --- a/src/node/consumer/src/lib/models/configuration/database_config.ts +++ b/src/node/consumer/src/lib/models/configuration/database_config.ts @@ -1,4 +1,4 @@ -import {BooleanHelpers} from "../../helpers/boolean_helpers"; +import {BooleanHelpers} from "@helpers/boolean_helpers"; export const databaseConfig = { POSTGRES_HOST: process.env.POSTGRES_HOST || 'postgres', diff --git a/src/node/consumer/src/lib/models/configuration/job_config.ts b/src/node/consumer/src/lib/models/configuration/job_config.ts index 57cb6ad..70f8476 100644 --- a/src/node/consumer/src/lib/models/configuration/job_config.ts +++ b/src/node/consumer/src/lib/models/configuration/job_config.ts @@ -1,4 +1,4 @@ -import {BooleanHelpers} from "../../helpers/boolean_helpers"; +import {BooleanHelpers} from "@helpers/boolean_helpers"; export const jobConfig = { JOB_CONCURRENCY: parseInt(process.env.JOB_CONCURRENCY || "1", 10), diff --git a/src/node/consumer/src/lib/models/configuration/tracker_config.ts b/src/node/consumer/src/lib/models/configuration/tracker_config.ts index 8b31fff..f748b93 100644 --- a/src/node/consumer/src/lib/models/configuration/tracker_config.ts +++ b/src/node/consumer/src/lib/models/configuration/tracker_config.ts @@ -1,4 +1,4 @@ -import {BooleanHelpers} from "../../helpers/boolean_helpers"; +import {BooleanHelpers} from "@helpers/boolean_helpers"; export const trackerConfig = { TRACKERS_URL: process.env.TRACKERS_URL || 'https://ngosang.github.io/trackerslist/trackers_all.txt', diff --git a/src/node/consumer/src/lib/models/inversify_config.ts b/src/node/consumer/src/lib/models/inversify_config.ts index 17da92b..2dcbc8c 100644 --- a/src/node/consumer/src/lib/models/inversify_config.ts +++ b/src/node/consumer/src/lib/models/inversify_config.ts @@ -1,29 +1,29 @@ +import {ICacheService} from "@interfaces/cache_service"; +import {ICompositionalRoot} from "@interfaces/composition_root"; +import {ILoggingService} from "@interfaces/logging_service"; +import {IMetadataService} from "@interfaces/metadata_service"; +import {IProcessTorrentsJob} from "@interfaces/process_torrents_job"; +import {ITorrentDownloadService} from "@interfaces/torrent_download_service"; +import {ITorrentEntriesService} from "@interfaces/torrent_entries_service"; +import {ITorrentFileService} from "@interfaces/torrent_file_service"; +import {ITorrentProcessingService} from "@interfaces/torrent_processing_service"; +import {ITorrentSubtitleService} from "@interfaces/torrent_subtitle_service"; +import {ITrackerService} from "@interfaces/tracker_service"; +import {ProcessTorrentsJob} from "@jobs/process_torrents_job"; +import {CompositionalRoot} from "@models/composition_root"; +import {IocTypes} from "@models/ioc_types"; +import {DatabaseRepository} from "@repository/database_repository"; +import {IDatabaseRepository} from "@repository/interfaces/database_repository"; +import {CacheService} from "@services/cache_service"; +import {LoggingService} from "@services/logging_service"; +import {MetadataService} from "@services/metadata_service"; +import {TorrentDownloadService} from "@services/torrent_download_service"; +import {TorrentEntriesService} from "@services/torrent_entries_service"; +import {TorrentFileService} from "@services/torrent_file_service"; +import {TorrentProcessingService} from "@services/torrent_processing_service"; +import {TorrentSubtitleService} from "@services/torrent_subtitle_service"; +import {TrackerService} from "@services/tracker_service"; import {Container} from "inversify"; -import {ICacheService} from "../interfaces/cache_service"; -import {ICompositionalRoot} from "../interfaces/composition_root"; -import {ILoggingService} from "../interfaces/logging_service"; -import {IMetadataService} from "../interfaces/metadata_service"; -import {IProcessTorrentsJob} from "../interfaces/process_torrents_job"; -import {ITorrentDownloadService} from "../interfaces/torrent_download_service"; -import {ITorrentEntriesService} from "../interfaces/torrent_entries_service"; -import {ITorrentFileService} from "../interfaces/torrent_file_service"; -import {ITorrentProcessingService} from "../interfaces/torrent_processing_service"; -import {ITorrentSubtitleService} from "../interfaces/torrent_subtitle_service"; -import {ITrackerService} from "../interfaces/tracker_service"; -import {ProcessTorrentsJob} from "../jobs/process_torrents_job"; -import {DatabaseRepository} from "../repository/database_repository"; -import {IDatabaseRepository} from "../repository/interfaces/database_repository"; -import {CacheService} from "../services/cache_service"; -import {LoggingService} from "../services/logging_service"; -import {MetadataService} from "../services/metadata_service"; -import {TorrentDownloadService} from "../services/torrent_download_service"; -import {TorrentEntriesService} from "../services/torrent_entries_service"; -import {TorrentFileService} from "../services/torrent_file_service"; -import {TorrentProcessingService} from "../services/torrent_processing_service"; -import {TorrentSubtitleService} from "../services/torrent_subtitle_service"; -import {TrackerService} from "../services/tracker_service"; -import {CompositionalRoot} from "./composition_root"; -import {IocTypes} from "./ioc_types"; const serviceContainer = new Container(); diff --git a/src/node/consumer/src/lib/repository/database_repository.ts b/src/node/consumer/src/lib/repository/database_repository.ts index c59f778..0a1a657 100644 --- a/src/node/consumer/src/lib/repository/database_repository.ts +++ b/src/node/consumer/src/lib/repository/database_repository.ts @@ -1,24 +1,24 @@ +import {PromiseHelpers} from '@helpers/promises_helpers'; +import {ILoggingService} from "@interfaces/logging_service"; +import {IocTypes} from "@models/ioc_types"; +import {IContentCreationAttributes} from "@repository/interfaces/content_attributes"; +import {IDatabaseRepository} from "@repository/interfaces/database_repository"; +import {IFileAttributes, IFileCreationAttributes} from "@repository/interfaces/file_attributes"; +import {ISubtitleAttributes, ISubtitleCreationAttributes} from "@repository/interfaces/subtitle_attributes"; +import {ITorrentAttributes, ITorrentCreationAttributes} from "@repository/interfaces/torrent_attributes"; +import {Content} from "@repository/models/content"; +import {File} from "@repository/models/file"; +import {IngestedPage} from "@repository/models/ingestedPage"; +import {IngestedTorrent} from "@repository/models/ingestedTorrent"; +import {Provider} from "@repository/models/provider"; +import {SkipTorrent} from "@repository/models/skipTorrent"; +import {Subtitle} from "@repository/models/subtitle"; +import {Torrent} from "@repository/models/torrent"; +import {configurationService} from '@services/configuration_service'; import {inject, injectable} from "inversify"; import moment from 'moment'; import {literal, Op, WhereOptions} from "sequelize"; import {Model, Sequelize} from 'sequelize-typescript'; -import {PromiseHelpers} from '../helpers/promises_helpers'; -import {ILoggingService} from "../interfaces/logging_service"; -import {IocTypes} from "../models/ioc_types"; -import {configurationService} from '../services/configuration_service'; -import {IContentCreationAttributes} from "./interfaces/content_attributes"; -import {IDatabaseRepository} from "./interfaces/database_repository"; -import {IFileAttributes, IFileCreationAttributes} from "./interfaces/file_attributes"; -import {ISubtitleAttributes, ISubtitleCreationAttributes} from "./interfaces/subtitle_attributes"; -import {ITorrentAttributes, ITorrentCreationAttributes} from "./interfaces/torrent_attributes"; -import {Content} from "./models/content"; -import {File} from "./models/file"; -import {IngestedPage} from "./models/ingestedPage"; -import {IngestedTorrent} from "./models/ingestedTorrent"; -import {Provider} from "./models/provider"; -import {SkipTorrent} from "./models/skipTorrent"; -import {Subtitle} from "./models/subtitle"; -import {Torrent} from "./models/torrent"; @injectable() export class DatabaseRepository implements IDatabaseRepository { diff --git a/src/node/consumer/src/lib/repository/interfaces/database_repository.ts b/src/node/consumer/src/lib/repository/interfaces/database_repository.ts index 9331853..9b54278 100644 --- a/src/node/consumer/src/lib/repository/interfaces/database_repository.ts +++ b/src/node/consumer/src/lib/repository/interfaces/database_repository.ts @@ -1,15 +1,15 @@ +import {IContentCreationAttributes} from "@repository/interfaces/content_attributes"; +import {IFileAttributes, IFileCreationAttributes} from "@repository/interfaces/file_attributes"; +import {ISubtitleAttributes, ISubtitleCreationAttributes} from "@repository/interfaces/subtitle_attributes"; +import {ITorrentAttributes, ITorrentCreationAttributes} from "@repository/interfaces/torrent_attributes"; +import {Content} from "@repository/models/content"; +import {File} from "@repository/models/file"; +import {Provider} from "@repository/models/provider"; +import {SkipTorrent} from "@repository/models/skipTorrent"; +import {Subtitle} from "@repository/models/subtitle"; +import {Torrent} from "@repository/models/torrent"; import {WhereOptions} from "sequelize"; import {Model} from "sequelize-typescript"; -import {Content} from "../models/content"; -import {File} from "../models/file"; -import {Provider} from "../models/provider"; -import {SkipTorrent} from "../models/skipTorrent"; -import {Subtitle} from "../models/subtitle"; -import {Torrent} from "../models/torrent"; -import {IContentCreationAttributes} from "./content_attributes"; -import {IFileAttributes, IFileCreationAttributes} from "./file_attributes"; -import {ISubtitleAttributes, ISubtitleCreationAttributes} from "./subtitle_attributes"; -import {ITorrentAttributes, ITorrentCreationAttributes} from "./torrent_attributes"; export interface IDatabaseRepository { connect(): Promise; diff --git a/src/node/consumer/src/lib/repository/interfaces/file_attributes.ts b/src/node/consumer/src/lib/repository/interfaces/file_attributes.ts index 25f025c..b899f56 100644 --- a/src/node/consumer/src/lib/repository/interfaces/file_attributes.ts +++ b/src/node/consumer/src/lib/repository/interfaces/file_attributes.ts @@ -1,6 +1,6 @@ +import {IParseTorrentTitleResult} from "@interfaces/parse_torrent_title_result"; +import {ISubtitleAttributes} from "@repository/interfaces/subtitle_attributes"; import {Optional} from "sequelize"; -import {IParseTorrentTitleResult} from "../../interfaces/parse_torrent_title_result"; -import {ISubtitleAttributes} from "./subtitle_attributes"; export interface IFileAttributes extends IParseTorrentTitleResult { id?: number; diff --git a/src/node/consumer/src/lib/repository/interfaces/torrent_attributes.ts b/src/node/consumer/src/lib/repository/interfaces/torrent_attributes.ts index 64e4696..c34fa4c 100644 --- a/src/node/consumer/src/lib/repository/interfaces/torrent_attributes.ts +++ b/src/node/consumer/src/lib/repository/interfaces/torrent_attributes.ts @@ -1,7 +1,7 @@ +import {IContentAttributes} from "@repository/interfaces/content_attributes"; +import {IFileAttributes} from "@repository/interfaces/file_attributes"; +import {ISubtitleAttributes} from "@repository/interfaces/subtitle_attributes"; import {Optional} from "sequelize"; -import {IContentAttributes} from "./content_attributes"; -import {IFileAttributes} from "./file_attributes"; -import {ISubtitleAttributes} from "./subtitle_attributes"; export interface ITorrentAttributes { infoHash: string; diff --git a/src/node/consumer/src/lib/repository/models/content.ts b/src/node/consumer/src/lib/repository/models/content.ts index 0209273..db7c7cc 100644 --- a/src/node/consumer/src/lib/repository/models/content.ts +++ b/src/node/consumer/src/lib/repository/models/content.ts @@ -1,6 +1,6 @@ +import {IContentAttributes, IContentCreationAttributes} from "@repository/interfaces/content_attributes"; +import {Torrent} from "@repository/models/torrent"; import {BelongsTo, Column, DataType, ForeignKey, Model, Table} from 'sequelize-typescript'; -import {IContentAttributes, IContentCreationAttributes} from "../interfaces/content_attributes"; -import {Torrent} from "./torrent"; @Table({modelName: 'content', timestamps: false}) export class Content extends Model { diff --git a/src/node/consumer/src/lib/repository/models/file.ts b/src/node/consumer/src/lib/repository/models/file.ts index a9785c8..378311b 100644 --- a/src/node/consumer/src/lib/repository/models/file.ts +++ b/src/node/consumer/src/lib/repository/models/file.ts @@ -1,7 +1,7 @@ +import {IFileAttributes, IFileCreationAttributes} from "@repository/interfaces/file_attributes"; +import {Subtitle} from "@repository/models/subtitle"; +import {Torrent} from "@repository/models/torrent"; import {BelongsTo, Column, DataType, ForeignKey, HasMany, Model, Table} from 'sequelize-typescript'; -import {IFileAttributes, IFileCreationAttributes} from "../interfaces/file_attributes"; -import {Subtitle} from "./subtitle"; -import {Torrent} from "./torrent"; const indexes = [ { diff --git a/src/node/consumer/src/lib/repository/models/ingestedPage.ts b/src/node/consumer/src/lib/repository/models/ingestedPage.ts index 3c08b1b..0e91bb5 100644 --- a/src/node/consumer/src/lib/repository/models/ingestedPage.ts +++ b/src/node/consumer/src/lib/repository/models/ingestedPage.ts @@ -1,5 +1,5 @@ +import {IIngestedPageAttributes, IIngestedPageCreationAttributes} from "@repository/interfaces/ingested_page_attributes"; import {Column, DataType, Model, Table} from 'sequelize-typescript'; -import {IIngestedPageAttributes, IIngestedPageCreationAttributes} from "../interfaces/ingested_page_attributes"; const indexes = [ { diff --git a/src/node/consumer/src/lib/repository/models/ingestedTorrent.ts b/src/node/consumer/src/lib/repository/models/ingestedTorrent.ts index 7f03914..437eeca 100644 --- a/src/node/consumer/src/lib/repository/models/ingestedTorrent.ts +++ b/src/node/consumer/src/lib/repository/models/ingestedTorrent.ts @@ -1,5 +1,5 @@ +import {IIngestedTorrentAttributes, IIngestedTorrentCreationAttributes} from "@repository/interfaces/ingested_torrent_attributes"; import {Column, DataType, Model, Table} from 'sequelize-typescript'; -import {IIngestedTorrentAttributes, IIngestedTorrentCreationAttributes} from "../interfaces/ingested_torrent_attributes"; const indexes = [ { diff --git a/src/node/consumer/src/lib/repository/models/provider.ts b/src/node/consumer/src/lib/repository/models/provider.ts index c3506ed..fef9c18 100644 --- a/src/node/consumer/src/lib/repository/models/provider.ts +++ b/src/node/consumer/src/lib/repository/models/provider.ts @@ -1,5 +1,5 @@ +import {IProviderAttributes, IProviderCreationAttributes} from "@repository/interfaces/provider_attributes"; import {Column, DataType, Model, Table} from 'sequelize-typescript'; -import {IProviderAttributes, IProviderCreationAttributes} from "../interfaces/provider_attributes"; @Table({modelName: 'provider', timestamps: false}) export class Provider extends Model { diff --git a/src/node/consumer/src/lib/repository/models/skipTorrent.ts b/src/node/consumer/src/lib/repository/models/skipTorrent.ts index 6e34c79..b280004 100644 --- a/src/node/consumer/src/lib/repository/models/skipTorrent.ts +++ b/src/node/consumer/src/lib/repository/models/skipTorrent.ts @@ -1,5 +1,5 @@ +import {ISkipTorrentAttributes, ISkipTorrentCreationAttributes} from "@repository/interfaces/skip_torrent_attributes"; import {Column, DataType, Model, Table} from 'sequelize-typescript'; -import {ISkipTorrentAttributes, ISkipTorrentCreationAttributes} from "../interfaces/skip_torrent_attributes"; @Table({modelName: 'skip_torrent', timestamps: false}) diff --git a/src/node/consumer/src/lib/repository/models/subtitle.ts b/src/node/consumer/src/lib/repository/models/subtitle.ts index 06fb142..3742caf 100644 --- a/src/node/consumer/src/lib/repository/models/subtitle.ts +++ b/src/node/consumer/src/lib/repository/models/subtitle.ts @@ -1,6 +1,6 @@ +import {ISubtitleAttributes, ISubtitleCreationAttributes} from "@repository/interfaces/subtitle_attributes"; +import {File} from "@repository/models/file"; import {BelongsTo, Column, DataType, ForeignKey, Model, Table} from 'sequelize-typescript'; -import {ISubtitleAttributes, ISubtitleCreationAttributes} from "../interfaces/subtitle_attributes"; -import {File} from "./file"; const indexes = [ { diff --git a/src/node/consumer/src/lib/repository/models/torrent.ts b/src/node/consumer/src/lib/repository/models/torrent.ts index c759d3a..4539e69 100644 --- a/src/node/consumer/src/lib/repository/models/torrent.ts +++ b/src/node/consumer/src/lib/repository/models/torrent.ts @@ -1,8 +1,8 @@ +import {ITorrentAttributes, ITorrentCreationAttributes} from "@repository/interfaces/torrent_attributes"; +import {Content} from "@repository/models/content"; +import {File} from "@repository/models/file"; +import {Subtitle} from "@repository/models/subtitle"; import {Column, DataType, HasMany, Model, Table} from 'sequelize-typescript'; -import {ITorrentAttributes, ITorrentCreationAttributes} from "../interfaces/torrent_attributes"; -import {Content} from "./content"; -import {File} from "./file"; -import {Subtitle} from "./subtitle"; @Table({modelName: 'torrent', timestamps: true}) diff --git a/src/node/consumer/src/lib/services/cache_service.ts b/src/node/consumer/src/lib/services/cache_service.ts index ab3b0a5..761784a 100644 --- a/src/node/consumer/src/lib/services/cache_service.ts +++ b/src/node/consumer/src/lib/services/cache_service.ts @@ -1,12 +1,12 @@ +import {CacheType} from "@enums/cache_types"; +import {ICacheOptions} from "@interfaces/cache_options"; +import {ICacheService} from "@interfaces/cache_service"; +import {ILoggingService} from "@interfaces/logging_service"; +import {IocTypes} from "@models/ioc_types"; +import {configurationService} from '@services/configuration_service'; import {mongoDbStore} from '@tirke/node-cache-manager-mongodb' import {Cache, createCache, MemoryCache, memoryStore} from 'cache-manager'; import {inject, injectable} from "inversify"; -import {CacheType} from "../enums/cache_types"; -import {ICacheOptions} from "../interfaces/cache_options"; -import {ICacheService} from "../interfaces/cache_service"; -import {ILoggingService} from "../interfaces/logging_service"; -import {IocTypes} from "../models/ioc_types"; -import {configurationService} from './configuration_service'; const GLOBAL_KEY_PREFIX = 'knightcrawler-consumer'; const IMDB_ID_PREFIX = `${GLOBAL_KEY_PREFIX}|imdb_id`; diff --git a/src/node/consumer/src/lib/services/configuration_service.ts b/src/node/consumer/src/lib/services/configuration_service.ts index 8955dc9..7545d56 100644 --- a/src/node/consumer/src/lib/services/configuration_service.ts +++ b/src/node/consumer/src/lib/services/configuration_service.ts @@ -1,10 +1,10 @@ -import {cacheConfig} from "../models/configuration/cache_config"; -import {databaseConfig} from "../models/configuration/database_config"; -import {jobConfig} from "../models/configuration/job_config"; -import {metadataConfig} from "../models/configuration/metadata_config"; -import {rabbitConfig} from "../models/configuration/rabbit_config"; -import {torrentConfig} from "../models/configuration/torrent_config"; -import {trackerConfig} from "../models/configuration/tracker_config"; +import {cacheConfig} from "@models/configuration/cache_config"; +import {databaseConfig} from "@models/configuration/database_config"; +import {jobConfig} from "@models/configuration/job_config"; +import {metadataConfig} from "@models/configuration/metadata_config"; +import {rabbitConfig} from "@models/configuration/rabbit_config"; +import {torrentConfig} from "@models/configuration/torrent_config"; +import {trackerConfig} from "@models/configuration/tracker_config"; export const configurationService = { rabbitConfig: rabbitConfig, diff --git a/src/node/consumer/src/lib/services/logging_service.ts b/src/node/consumer/src/lib/services/logging_service.ts index ee703ba..5b2837d 100644 --- a/src/node/consumer/src/lib/services/logging_service.ts +++ b/src/node/consumer/src/lib/services/logging_service.ts @@ -1,6 +1,6 @@ +import {ILoggingService} from "@interfaces/logging_service"; import {injectable} from "inversify"; import {Logger, pino} from "pino"; -import {ILoggingService} from "../interfaces/logging_service"; /* eslint-disable @typescript-eslint/no-explicit-any */ @injectable() diff --git a/src/node/consumer/src/lib/services/metadata_service.ts b/src/node/consumer/src/lib/services/metadata_service.ts index 1015fb1..3aed419 100644 --- a/src/node/consumer/src/lib/services/metadata_service.ts +++ b/src/node/consumer/src/lib/services/metadata_service.ts @@ -1,20 +1,17 @@ - +import {TorrentType} from '@enums/torrent_types'; +import {ICacheService} from "@interfaces/cache_service"; +import {ICinemetaJsonResponse} from "@interfaces/cinemeta_metadata"; +import {ICommonVideoMetadata} from "@interfaces/common_video_metadata"; +import {IKitsuCatalogJsonResponse} from "@interfaces/kitsu_catalog_metadata"; +import {IKitsuJsonResponse} from "@interfaces/kitsu_metadata"; +import {IMetaDataQuery} from "@interfaces/metadata_query"; +import {IMetadataResponse} from "@interfaces/metadata_response"; +import {IMetadataService} from "@interfaces/metadata_service"; +import {IocTypes} from "@models/ioc_types"; import axios, {AxiosResponse} from 'axios'; import {ResultTypes, search} from 'google-sr'; import {inject, injectable} from "inversify"; -// eslint-disable-next-line @typescript-eslint/ban-ts-comment -// @ts-expect-error import nameToImdb from 'name-to-imdb'; -import {TorrentType} from '../enums/torrent_types'; -import {ICacheService} from "../interfaces/cache_service"; -import {ICinemetaJsonResponse} from "../interfaces/cinemeta_metadata"; -import {ICommonVideoMetadata} from "../interfaces/common_video_metadata"; -import {IKitsuCatalogJsonResponse} from "../interfaces/kitsu_catalog_metadata"; -import {IKitsuJsonResponse} from "../interfaces/kitsu_metadata"; -import {IMetaDataQuery} from "../interfaces/metadata_query"; -import {IMetadataResponse} from "../interfaces/metadata_response"; -import {IMetadataService} from "../interfaces/metadata_service"; -import {IocTypes} from "../models/ioc_types"; const CINEMETA_URL = 'https://v3-cinemeta.strem.io'; const KITSU_URL = 'https://anime-kitsu.strem.fun'; diff --git a/src/node/consumer/src/lib/services/torrent_download_service.ts b/src/node/consumer/src/lib/services/torrent_download_service.ts index 03a1719..146502d 100644 --- a/src/node/consumer/src/lib/services/torrent_download_service.ts +++ b/src/node/consumer/src/lib/services/torrent_download_service.ts @@ -1,17 +1,17 @@ +import {ExtensionHelpers} from '@helpers/extension_helpers'; +import {ILoggingService} from "@interfaces/logging_service"; +import {IParsedTorrent} from "@interfaces/parsed_torrent"; +import {ITorrentDownloadService} from "@interfaces/torrent_download_service"; +import {ITorrentFileCollection} from "@interfaces/torrent_file_collection"; +import {IocTypes} from "@models/ioc_types"; +import {IContentAttributes} from "@repository/interfaces/content_attributes"; +import {IFileAttributes} from "@repository/interfaces/file_attributes"; +import {ISubtitleAttributes} from "@repository/interfaces/subtitle_attributes"; +import {configurationService} from '@services/configuration_service'; import {inject, injectable} from "inversify"; import {encode} from 'magnet-uri'; import {parse} from "parse-torrent-title"; import WebTorrent from "webtorrent"; -import {ExtensionHelpers} from '../helpers/extension_helpers'; -import {ILoggingService} from "../interfaces/logging_service"; -import {IParsedTorrent} from "../interfaces/parsed_torrent"; -import {ITorrentDownloadService} from "../interfaces/torrent_download_service"; -import {ITorrentFileCollection} from "../interfaces/torrent_file_collection"; -import {IocTypes} from "../models/ioc_types"; -import {IContentAttributes} from "../repository/interfaces/content_attributes"; -import {IFileAttributes} from "../repository/interfaces/file_attributes"; -import {ISubtitleAttributes} from "../repository/interfaces/subtitle_attributes"; -import {configurationService} from './configuration_service'; interface ITorrentFile { name: string; diff --git a/src/node/consumer/src/lib/services/torrent_entries_service.ts b/src/node/consumer/src/lib/services/torrent_entries_service.ts index 141bf7c..769510e 100644 --- a/src/node/consumer/src/lib/services/torrent_entries_service.ts +++ b/src/node/consumer/src/lib/services/torrent_entries_service.ts @@ -1,24 +1,24 @@ +import {TorrentType} from '@enums/torrent_types'; +import {PromiseHelpers} from '@helpers/promises_helpers'; +import {ILoggingService} from "@interfaces/logging_service"; +import {IMetaDataQuery} from "@interfaces/metadata_query"; +import {IMetadataService} from "@interfaces/metadata_service"; +import {IParsedTorrent} from "@interfaces/parsed_torrent"; +import {ITorrentEntriesService} from "@interfaces/torrent_entries_service"; +import {ITorrentFileCollection} from "@interfaces/torrent_file_collection"; +import {ITorrentFileService} from "@interfaces/torrent_file_service"; +import {ITorrentSubtitleService} from "@interfaces/torrent_subtitle_service"; +import {IocTypes} from "@models/ioc_types"; +import {IDatabaseRepository} from "@repository/interfaces/database_repository"; +import {IFileCreationAttributes} from "@repository/interfaces/file_attributes"; +import {ISubtitleAttributes} from "@repository/interfaces/subtitle_attributes"; +import {ITorrentAttributes, ITorrentCreationAttributes} from "@repository/interfaces/torrent_attributes"; +import {File} from "@repository/models/file"; +import {SkipTorrent} from "@repository/models/skipTorrent"; +import {Subtitle} from "@repository/models/subtitle"; +import {Torrent} from "@repository/models/torrent"; import {inject, injectable} from "inversify"; import {parse} from 'parse-torrent-title'; -import {TorrentType} from '../enums/torrent_types'; -import {PromiseHelpers} from '../helpers/promises_helpers'; -import {ILoggingService} from "../interfaces/logging_service"; -import {IMetaDataQuery} from "../interfaces/metadata_query"; -import {IMetadataService} from "../interfaces/metadata_service"; -import {IParsedTorrent} from "../interfaces/parsed_torrent"; -import {ITorrentEntriesService} from "../interfaces/torrent_entries_service"; -import {ITorrentFileCollection} from "../interfaces/torrent_file_collection"; -import {ITorrentFileService} from "../interfaces/torrent_file_service"; -import {ITorrentSubtitleService} from "../interfaces/torrent_subtitle_service"; -import {IocTypes} from "../models/ioc_types"; -import {IDatabaseRepository} from "../repository/interfaces/database_repository"; -import {IFileCreationAttributes} from "../repository/interfaces/file_attributes"; -import {ISubtitleAttributes} from "../repository/interfaces/subtitle_attributes"; -import {ITorrentAttributes, ITorrentCreationAttributes} from "../repository/interfaces/torrent_attributes"; -import {File} from "../repository/models/file"; -import {SkipTorrent} from "../repository/models/skipTorrent"; -import {Subtitle} from "../repository/models/subtitle"; -import {Torrent} from "../repository/models/torrent"; @injectable() export class TorrentEntriesService implements ITorrentEntriesService { diff --git a/src/node/consumer/src/lib/services/torrent_file_service.ts b/src/node/consumer/src/lib/services/torrent_file_service.ts index 59a3360..364d853 100644 --- a/src/node/consumer/src/lib/services/torrent_file_service.ts +++ b/src/node/consumer/src/lib/services/torrent_file_service.ts @@ -1,24 +1,24 @@ +import {TorrentType} from '@enums/torrent_types'; +import {ExtensionHelpers} from '@helpers/extension_helpers'; +import {PromiseHelpers} from '@helpers/promises_helpers'; +import {ICommonVideoMetadata} from "@interfaces/common_video_metadata"; +import {ILoggingService} from "@interfaces/logging_service"; +import {IMetaDataQuery} from "@interfaces/metadata_query"; +import {IMetadataResponse} from "@interfaces/metadata_response"; +import {IMetadataService} from "@interfaces/metadata_service"; +import {IParsedTorrent} from "@interfaces/parsed_torrent"; +import {ISeasonEpisodeMap} from "@interfaces/season_episode_map"; +import {ITorrentDownloadService} from "@interfaces/torrent_download_service"; +import {ITorrentFileCollection} from "@interfaces/torrent_file_collection"; +import {ITorrentFileService} from "@interfaces/torrent_file_service"; +import {IocTypes} from "@models/ioc_types"; +import {IContentAttributes} from "@repository/interfaces/content_attributes"; +import {IFileAttributes} from "@repository/interfaces/file_attributes"; +import {configurationService} from '@services/configuration_service'; import Bottleneck from 'bottleneck'; import {inject, injectable} from "inversify"; import moment from 'moment'; import {parse} from 'parse-torrent-title'; -import {TorrentType} from '../enums/torrent_types'; -import {ExtensionHelpers} from '../helpers/extension_helpers'; -import {PromiseHelpers} from '../helpers/promises_helpers'; -import {ICommonVideoMetadata} from "../interfaces/common_video_metadata"; -import {ILoggingService} from "../interfaces/logging_service"; -import {IMetaDataQuery} from "../interfaces/metadata_query"; -import {IMetadataResponse} from "../interfaces/metadata_response"; -import {IMetadataService} from "../interfaces/metadata_service"; -import {IParsedTorrent} from "../interfaces/parsed_torrent"; -import {ISeasonEpisodeMap} from "../interfaces/season_episode_map"; -import {ITorrentDownloadService} from "../interfaces/torrent_download_service"; -import {ITorrentFileCollection} from "../interfaces/torrent_file_collection"; -import {ITorrentFileService} from "../interfaces/torrent_file_service"; -import {IocTypes} from "../models/ioc_types"; -import {IContentAttributes} from "../repository/interfaces/content_attributes"; -import {IFileAttributes} from "../repository/interfaces/file_attributes"; -import {configurationService} from './configuration_service'; const MIN_SIZE: number = 5 * 1024 * 1024; // 5 MB const MULTIPLE_FILES_SIZE = 4 * 1024 * 1024 * 1024; // 4 GB diff --git a/src/node/consumer/src/lib/services/torrent_processing_service.ts b/src/node/consumer/src/lib/services/torrent_processing_service.ts index dd19b78..e62990c 100644 --- a/src/node/consumer/src/lib/services/torrent_processing_service.ts +++ b/src/node/consumer/src/lib/services/torrent_processing_service.ts @@ -1,12 +1,12 @@ +import {TorrentType} from "@enums/torrent_types"; +import {ILoggingService} from "@interfaces/logging_service"; +import {IParsedTorrent} from "@interfaces/parsed_torrent"; +import {ITorrentEntriesService} from "@interfaces/torrent_entries_service"; +import {ITorrentProcessingService} from "@interfaces/torrent_processing_service"; +import {ITrackerService} from "@interfaces/tracker_service"; +import {IocTypes} from "@models/ioc_types"; +import {IIngestedTorrentAttributes} from "@repository/interfaces/ingested_torrent_attributes"; import {inject, injectable} from "inversify"; -import {TorrentType} from "../enums/torrent_types"; -import {ILoggingService} from "../interfaces/logging_service"; -import {IParsedTorrent} from "../interfaces/parsed_torrent"; -import {ITorrentEntriesService} from "../interfaces/torrent_entries_service"; -import {ITorrentProcessingService} from "../interfaces/torrent_processing_service"; -import {ITrackerService} from "../interfaces/tracker_service"; -import {IocTypes} from "../models/ioc_types"; -import {IIngestedTorrentAttributes} from "../repository/interfaces/ingested_torrent_attributes"; @injectable() export class TorrentProcessingService implements ITorrentProcessingService { diff --git a/src/node/consumer/src/lib/services/torrent_subtitle_service.ts b/src/node/consumer/src/lib/services/torrent_subtitle_service.ts index ec227dc..776bbbd 100644 --- a/src/node/consumer/src/lib/services/torrent_subtitle_service.ts +++ b/src/node/consumer/src/lib/services/torrent_subtitle_service.ts @@ -1,9 +1,9 @@ +import {ITorrentFileCollection} from "@interfaces/torrent_file_collection"; +import {ITorrentSubtitleService} from "@interfaces/torrent_subtitle_service"; +import {IFileAttributes} from "@repository/interfaces/file_attributes"; +import {ISubtitleAttributes} from "@repository/interfaces/subtitle_attributes"; import {injectable} from "inversify"; import {parse} from 'parse-torrent-title'; -import {ITorrentFileCollection} from "../interfaces/torrent_file_collection"; -import {ITorrentSubtitleService} from "../interfaces/torrent_subtitle_service"; -import {IFileAttributes} from "../repository/interfaces/file_attributes"; -import {ISubtitleAttributes} from "../repository/interfaces/subtitle_attributes"; @injectable() export class TorrentSubtitleService implements ITorrentSubtitleService { diff --git a/src/node/consumer/src/lib/services/tracker_service.ts b/src/node/consumer/src/lib/services/tracker_service.ts index ad324aa..11f2ad1 100644 --- a/src/node/consumer/src/lib/services/tracker_service.ts +++ b/src/node/consumer/src/lib/services/tracker_service.ts @@ -1,10 +1,10 @@ +import {ICacheService} from "@interfaces/cache_service"; +import {ILoggingService} from "@interfaces/logging_service"; +import {ITrackerService} from "@interfaces/tracker_service"; +import {IocTypes} from "@models/ioc_types"; +import {configurationService} from '@services/configuration_service'; import axios, {AxiosResponse} from 'axios'; import {inject, injectable} from "inversify"; -import {ICacheService} from "../interfaces/cache_service"; -import {ILoggingService} from "../interfaces/logging_service"; -import {ITrackerService} from "../interfaces/tracker_service"; -import {IocTypes} from "../models/ioc_types"; -import {configurationService} from './configuration_service'; @injectable() export class TrackerService implements ITrackerService { diff --git a/src/node/consumer/src/main.ts b/src/node/consumer/src/main.ts index 9efc598..22466a7 100644 --- a/src/node/consumer/src/main.ts +++ b/src/node/consumer/src/main.ts @@ -1,7 +1,7 @@ import "reflect-metadata"; // required -import {ICompositionalRoot} from "./lib/interfaces/composition_root"; -import {serviceContainer} from "./lib/models/inversify_config"; -import {IocTypes} from "./lib/models/ioc_types"; +import {ICompositionalRoot} from "@interfaces/composition_root"; +import {serviceContainer} from "@models/inversify_config"; +import {IocTypes} from "@models/ioc_types"; (async (): Promise => { const compositionalRoot = serviceContainer.get(IocTypes.ICompositionalRoot); diff --git a/src/node/consumer/tsconfig.json b/src/node/consumer/tsconfig.json index cf2dbcd..fadbe95 100644 --- a/src/node/consumer/tsconfig.json +++ b/src/node/consumer/tsconfig.json @@ -1,29 +1,36 @@ { + "compileOnSave": false, "compilerOptions": { - "target": "es2020", - "module": "es2020", - "allowJs": true, - "removeComments": true, - "resolveJsonModule": true, - "typeRoots": [ - "./node_modules/@types" - ], - "sourceMap": true, - "outDir": "dist", - "strict": true, - "lib": [ - "es2020" - ], - "baseUrl": ".", - "forceConsistentCasingInFileNames": true, - "esModuleInterop": true, + "target": "ESNext", + "lib": ["ESNext"], + "typeRoots": ["node_modules/@types"], + "allowSyntheticDefaultImports": true, "experimentalDecorators": true, "emitDecoratorMetadata": true, - "moduleResolution": "Node", - "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "moduleResolution": "node", + "module": "ESNext", + "pretty": true, + "sourceMap": true, + "declaration": true, + "outDir": "dist", + "allowJs": false, + "noEmit": false, + "esModuleInterop": true, + "resolveJsonModule": true, + "importHelpers": true, + "baseUrl": "src", + "paths": { + "@/*": ["*"], + "@enums/*": ["lib/enums/*"], + "@repository/*": ["lib/repository/*"], + "@interfaces/*": ["lib/interfaces/*"], + "@models/*": ["lib/models/*"], + "@services/*": ["lib/services/*"], + "@helpers/*": ["lib/helpers/*"], + "@jobs/*": ["lib/jobs/*"] + } }, - "include": [ - "src/**/*" - ], - "exclude": ["node_modules"], + "include": ["src/**/*.ts"], + "exclude": ["node_modules"] } \ No newline at end of file