diff --git a/.gitignore b/.gitignore index 65f8593..e40d968 100644 --- a/.gitignore +++ b/.gitignore @@ -402,3 +402,4 @@ FodyWeavers.xsd # JetBrains Rider *.sln.iml +dist/ diff --git a/src/node/addon-jackett/package.json b/src/node/addon-jackett/package.json index a457a2e..fb3932d 100644 --- a/src/node/addon-jackett/package.json +++ b/src/node/addon-jackett/package.json @@ -1,7 +1,6 @@ { "name": "jackettio-addon", "version": "0.0.1", - "exports": "./index.js", "type": "module", "scripts": { "build": "node esbuild.js", diff --git a/src/node/addon/package.json b/src/node/addon/package.json index 7dfdb5b..0d2d0a7 100644 --- a/src/node/addon/package.json +++ b/src/node/addon/package.json @@ -1,7 +1,6 @@ { "name": "selfhostio-addon", "version": "0.0.1", - "exports": "./index.js", "type": "module", "scripts": { "build": "node esbuild.js", diff --git a/src/node/consumer/.eslintignore b/src/node/consumer/.eslintignore new file mode 100644 index 0000000..b0a155e --- /dev/null +++ b/src/node/consumer/.eslintignore @@ -0,0 +1 @@ +*.ts \ No newline at end of file diff --git a/src/node/consumer/.eslintrc.cjs b/src/node/consumer/.eslintrc.cjs new file mode 100644 index 0000000..1f703e1 --- /dev/null +++ b/src/node/consumer/.eslintrc.cjs @@ -0,0 +1,39 @@ +/** @type {import("eslint").ESLint.Options} */ +module.exports = { + env: { + es2024: true, + node: true, + }, + globals: { + Atomics: "readonly", + SharedArrayBuffer: "readonly", + }, + parserOptions: { + sourceType: "module", + }, + plugins: ["import", "import-helpers"], + rules: { + "default-case": "off", + "import/no-duplicates": "off", + "import/no-extraneous-dependencies": ["off", { devDependencies: ["backend", "frontend", "mobile"] }], + "import/order": "off", + "import-helpers/order-imports": [ + "warn", + { + alphabetize: { + order: "asc", + }, + }, + ], + "lines-between-class-members": ["error", "always", { exceptAfterSingleLine: true }], + "no-continue": "off", + "no-param-reassign": "off", + "no-plusplus": ["error", { allowForLoopAfterthoughts: true }], + "no-restricted-syntax": "off", + "no-unused-expressions": ["off", { allowShortCircuit: true }], + "no-unused-vars": "off", + "no-use-before-define": "off", + "one-var": ["error", { uninitialized: "consecutive" }], + "prefer-destructuring": "off", + }, +}; \ No newline at end of file diff --git a/src/node/consumer/.eslintrc.yml b/src/node/consumer/.eslintrc.yml deleted file mode 100644 index 6898091..0000000 --- a/src/node/consumer/.eslintrc.yml +++ /dev/null @@ -1,16 +0,0 @@ -env: - es2021: true - node: true -extends: eslint:recommended -plugins: - - import -rules: - import/no-unresolved: 2 - import/no-commonjs: 2 - import/extensions: - - 2 - - ignorePackages -parserOptions: - ecmaVersion: latest - sourceType: module - \ No newline at end of file diff --git a/src/node/consumer/Dockerfile b/src/node/consumer/Dockerfile index d28e610..9808934 100644 --- a/src/node/consumer/Dockerfile +++ b/src/node/consumer/Dockerfile @@ -1,18 +1,29 @@ -FROM node:lts-buster-slim - -# RUN apk update && apk upgrade && \ -# apk add --no-cache git curl +FROM node:lts-buster-slim as builder RUN apt-get update && \ - apt-get install -y curl git && \ - apt-get clean && \ + apt-get install -y git && \ rm -rf /var/lib/apt/lists/* -WORKDIR /home/node/app +WORKDIR /app COPY package*.json ./ -RUN npm ci --only-production +RUN npm install COPY . . -RUN chmod a+x ./check-ip.sh +RUN npm run build -CMD [ "node", "--no-warnings=ExperimentalWarning", "index.js" ] \ No newline at end of file +# --- Runtime Stage --- +FROM node:lts-buster-slim + +# Install pm2 +RUN npm install pm2 -g + +WORKDIR /app + +ENV NODE_ENV production + +COPY --from=builder /app ./ +RUN npm prune --omit=dev + +EXPOSE 7001 + +ENTRYPOINT [ "pm2-runtime", "start", "ecosystem.config.cjs"] \ No newline at end of file diff --git a/src/node/consumer/check-ip.sh b/src/node/consumer/check-ip.sh deleted file mode 100644 index 9af1414..0000000 --- a/src/node/consumer/check-ip.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -CURRENT_IP="$(curl -s http://whatismyip.akamai.com)" -clear -echo "Current IP: $CURRENT_IP" diff --git a/src/node/consumer/ecosystem.config.cjs b/src/node/consumer/ecosystem.config.cjs new file mode 100644 index 0000000..25c07dd --- /dev/null +++ b/src/node/consumer/ecosystem.config.cjs @@ -0,0 +1,14 @@ +module.exports = { + apps: [ + { + name: "consumer", + script: "npm start", + cwd: "/app", + watch: ["./dist/index.cjs"], + autorestart: true, + env: { + ...process.env + }, + }, + ], +}; \ 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..63b1d16 --- /dev/null +++ b/src/node/consumer/esbuild.js @@ -0,0 +1,51 @@ +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/index.js", + ], + 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: + console.log("⚡ " + "\x1b[32m" + `Done in ${Date.now() - start}ms`); + }); +} catch (e) { + console.log(e); + process.exit(1); +} \ No newline at end of file diff --git a/src/node/consumer/jsconfig.json b/src/node/consumer/jsconfig.json new file mode 100644 index 0000000..6b1c407 --- /dev/null +++ b/src/node/consumer/jsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "baseUrl": "./src", + "checkJs": true, + "isolatedModules": true, + "lib": ["es6"], + "module": "ESNext", + "moduleResolution": "node", + "outDir": "./dist", + "pretty": true, + "removeComments": true, + "resolveJsonModule": true, + "rootDir": "./src", + "skipLibCheck": true, + "sourceMap": true, + "target": "ES6", + "types": ["node"], + "typeRoots": ["node_modules/@types", "src/@types"] + }, + "exclude": ["node_modules"] +} \ No newline at end of file diff --git a/src/node/consumer/package-lock.json b/src/node/consumer/package-lock.json index 1c0da8b..5b628b2 100644 --- a/src/node/consumer/package-lock.json +++ b/src/node/consumer/package-lock.json @@ -1,12 +1,12 @@ { "name": "consumer", - "version": "1.0.0", + "version": "0.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "consumer", - "version": "1.0.0", + "version": "0.0.1", "license": "MIT", "dependencies": { "amqplib": "^0.10.3", @@ -22,14 +22,19 @@ "name-to-imdb": "^3.0.4", "parse-torrent-title": "git://github.com/TheBeastLT/parse-torrent-title.git#022408972c2a040f846331a912a6a8487746a654", "pg": "^8.11.3", + "pg-hstore": "^2.3.4", "sequelize": "^6.31.1", "torrent-stream": "^1.2.1", - "user-agents": "^1.0.1444", - "webtorrent": "^2.1.34" + "user-agents": "^1.0.1444" }, "devDependencies": { + "@types/node": "^20.11.6", + "@types/stremio-addon-sdk": "^1.6.10", + "esbuild": "^0.19.12", "eslint": "^8.56.0", - "eslint-plugin-import": "^2.29.1" + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-import-helpers": "^1.3.1", + "tsx": "^4.7.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -54,6 +59,374 @@ "node": ">=0.8" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -178,67 +551,6 @@ "node": ">= 8" } }, - "node_modules/@silentbot1/nat-api": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/@silentbot1/nat-api/-/nat-api-0.4.7.tgz", - "integrity": "sha512-6aKXUf4AY6ETBdwjswQOekY6HGj3eZTAUhJx1oYicBqpMJcsphIydEQKp/Hooz6Y070MOI6tD/oT1MgS7bP3Vg==", - "dependencies": { - "chrome-dgram": "^3.0.6", - "cross-fetch-ponyfill": "^1.0.3", - "debug": "^4.3.4", - "default-gateway": "^6.0.3", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@thaunknown/idb-chunk-store": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@thaunknown/idb-chunk-store/-/idb-chunk-store-1.0.2.tgz", - "integrity": "sha512-UdKshbKdHDP+p0XPdv55QiU/scdB9TzvovGFSgXThf+7Yd3noLeYp6KpkYyc1jzUXvI3/8+TemPeASOimrOXvw==", - "dependencies": { - "idb": "^6.1.2", - "queue-microtask": "^1.2.3" - } - }, - "node_modules/@thaunknown/simple-peer": { - "version": "9.12.1", - "resolved": "https://registry.npmjs.org/@thaunknown/simple-peer/-/simple-peer-9.12.1.tgz", - "integrity": "sha512-IS5BXvXx7cvBAzaxqotJf4s4rJCPk5JABLK6Gbnn7oAmWVcH4hYABabBBrvvJtv/xyUqR4v/H3LalnGRJJfEog==", - "dependencies": { - "debug": "^4.3.2", - "err-code": "^3.0.1", - "get-browser-rtc": "^1.1.0", - "queue-microtask": "^1.2.3", - "streamx": "^2.13.2", - "uint8-util": "^2.1.9" - } - }, - "node_modules/@thaunknown/simple-websocket": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@thaunknown/simple-websocket/-/simple-websocket-9.1.1.tgz", - "integrity": "sha512-vzQloFWRodRZqZhpxMpBljFtISesY8TihA8T5uKwCYdj2I1ImMhE/gAeTCPsCGOtxJfGKu3hw/is6MXauWLjOg==", - "dependencies": { - "debug": "^4.3.4", - "queue-microtask": "^1.2.3", - "streamx": "^2.13.2", - "uint8-util": "^2.1.9", - "ws": "^8.12.0" - } - }, - "node_modules/@thaunknown/thirty-two": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@thaunknown/thirty-two/-/thirty-two-1.0.3.tgz", - "integrity": "sha512-bD6PvWbaf53JC04O7WnGDjqZBDgja/KT2Jd/6I2vJBIy+DLmQfQJZZ/G+16nAkVq1yGTIkO4rfc4RlH0DmEEqA==", - "dependencies": { - "uint8-util": "^2.1.9" - }, - "engines": { - "node": ">=0.2.6" - } - }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -266,6 +578,12 @@ "undici-types": "~5.26.4" } }, + "node_modules/@types/stremio-addon-sdk": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@types/stremio-addon-sdk/-/stremio-addon-sdk-1.6.11.tgz", + "integrity": "sha512-y0nXwX2gqrWcVYLEvujxqLOm/yZoMu8nLyiw1MthgVuiPp6RVfgWqwpql71MUV5shSfPNsd7EtsiWw2cUFhcWQ==", + "dev": true + }, "node_modules/@types/validator": { "version": "13.11.8", "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.8.tgz", @@ -277,26 +595,6 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, - "node_modules/@webtorrent/http-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@webtorrent/http-node/-/http-node-1.3.0.tgz", - "integrity": "sha512-GWZQKroPES4z91Ijx6zsOsb7+USOxjy66s8AoTWg0HiBBdfnbtf9aeh3Uav0MgYn4BL8Q7tVSUpd0gGpngKGEQ==", - "dependencies": { - "freelist": "^1.0.3", - "http-parser-js": "^0.4.3" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, "node_modules/acorn": { "version": "8.11.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", @@ -318,14 +616,6 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/addr-to-ip-port": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/addr-to-ip-port/-/addr-to-ip-port-2.0.0.tgz", - "integrity": "sha512-9bYbtjamtdLHZSqVIUXhilOryNPiL+x+Q5J/Unpg4VY3ZIkK3fT52UoErj1NdUeVm3J1t2iBEAur4Ywbl/bahw==", - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -521,35 +811,11 @@ "proxy-from-env": "^1.1.0" } }, - "node_modules/b4a": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", - "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, - "node_modules/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/bencode": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/bencode/-/bencode-4.0.0.tgz", - "integrity": "sha512-AERXw18df0pF3ziGOCyUjqKZBVNH8HV3lBxnx5w0qtgMIk4a1wb9BkcCQbkp9Zstfrn/dzRwl7MmUHHocX3sRQ==", - "dependencies": { - "uint8-util": "^2.2.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/bep53-range": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/bep53-range/-/bep53-range-1.1.1.tgz", @@ -603,147 +869,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/bittorrent-lsd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bittorrent-lsd/-/bittorrent-lsd-2.0.0.tgz", - "integrity": "sha512-jV+SMTGNY1iGWjf5cPA2HMeA6axuMQRWwWELtsuZ1FmQmZwC74we92nwtDTfv1WMnLx+oqEjWRri42IHjZitSQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "chrome-dgram": "^3.0.6", - "debug": "^4.2.0" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/bittorrent-peerid": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/bittorrent-peerid/-/bittorrent-peerid-1.3.6.tgz", - "integrity": "sha512-VyLcUjVMEOdSpHaCG/7odvCdLbAB1y3l9A2V6WIje24uV7FkJPrQrH/RrlFmKxP89pFVDEnE+YlHaFujlFIZsg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bittorrent-protocol": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/bittorrent-protocol/-/bittorrent-protocol-4.1.11.tgz", - "integrity": "sha512-8ehCNnnRpxB6wrqDzYdLY6Bx0k1ZcXwHmxfVsU9xljolgfd4jhUq9gKcbnnUj4yR8I5/qHJ5fYVoGIfrmUlAAQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "bencode": "^4.0.0", - "bitfield": "^4.1.0", - "debug": "^4.3.4", - "rc4": "^0.1.5", - "streamx": "^2.15.1", - "throughput": "^1.0.1", - "uint8-util": "^2.2.2", - "unordered-array-remove": "^1.0.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/bittorrent-protocol/node_modules/bitfield": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/bitfield/-/bitfield-4.2.0.tgz", - "integrity": "sha512-kUTatQb/mBd8uhvdLrUkouGDBUQiJaIOvPlptUwOWp6MFqih4d1MiVf0m3ATxfZSzu+LjW/awFeABltYa62uIA==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/bittorrent-tracker": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/bittorrent-tracker/-/bittorrent-tracker-11.0.1.tgz", - "integrity": "sha512-WDvixbEkLgnEeVk8iiF2/LwB2zsuxehir3wBFkHskB/LvYE4HQI+6RoWPHjwGqi9POPJdeOnSPFa8pZvB0Bd8A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "@thaunknown/simple-peer": "^9.12.1", - "@thaunknown/simple-websocket": "^9.1.0", - "bencode": "^4.0.0", - "bittorrent-peerid": "^1.3.3", - "chrome-dgram": "^3.0.6", - "clone": "^2.0.0", - "compact2string": "^1.4.1", - "cross-fetch-ponyfill": "^1.0.1", - "debug": "^4.1.1", - "ip": "^1.1.5", - "lru": "^3.1.0", - "minimist": "^1.2.5", - "once": "^1.4.0", - "queue-microtask": "^1.2.3", - "random-iterate": "^1.0.1", - "run-parallel": "^1.2.0", - "run-series": "^1.1.9", - "socks": "^2.0.0", - "string2compact": "^2.0.0", - "uint8-util": "^2.1.9", - "unordered-array-remove": "^1.0.2", - "ws": "^8.0.0" - }, - "bin": { - "bittorrent-tracker": "bin/cmd.js" - }, - "engines": { - "node": ">=12.20.0" - }, - "optionalDependencies": { - "bufferutil": "^4.0.3", - "utf-8-validate": "^5.0.5" - } - }, "node_modules/bl": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", @@ -780,11 +905,6 @@ "safe-buffer": "~5.1.0" } }, - "node_modules/block-iterator": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/block-iterator/-/block-iterator-1.1.1.tgz", - "integrity": "sha512-DrjdVWZemVO4iBf4tiOXjUrY5cNesjzy0t7sIiu2rdl8cOCHRxAgKjSJFc3vBZYYMMmshUAxajl8QQh/uxXTKQ==" - }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -880,42 +1000,6 @@ "node": ">=4" } }, - "node_modules/bufferutil": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/cache-chunk-store": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/cache-chunk-store/-/cache-chunk-store-3.2.2.tgz", - "integrity": "sha512-2lJdWbgHFFxcSth9s2wpId3CR3v1YC63KjP4T9WhpW7LWlY7Hiiei3QwwqzkWqlJTfR8lSy9F5kRQECeyj+yQA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "lru": "^3.1.0", - "queue-microtask": "^1.2.3" - } - }, "node_modules/cache-manager": { "version": "3.6.3", "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-3.6.3.tgz", @@ -1099,22 +1183,6 @@ "inherits": "^2.0.1" } }, - "node_modules/chunk-store-iterator": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chunk-store-iterator/-/chunk-store-iterator-1.0.3.tgz", - "integrity": "sha512-JcSaB5h3wQstQKnaJi8sET40f0m+6Kh4mhKIr05lrWKi+EiQzn6XUoi6LipgRGMqXWNZZJaMz2tH4aeg4ptBDA==", - "dependencies": { - "block-iterator": "^1.1.1" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "engines": { - "node": ">=0.8" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1162,77 +1230,11 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "node_modules/cpus": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cpus/-/cpus-1.0.3.tgz", - "integrity": "sha512-PXHBvGLuL69u55IkLa5e5838fLhIMHxmkV4ge42a8alGyn7BtawYgI0hQ849EedvtHIOLNNH3i6eQU1BiE9SUA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/create-torrent": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/create-torrent/-/create-torrent-6.0.16.tgz", - "integrity": "sha512-oO0M9KMPwEk825G7vLLUttgxBl/zwlsNdtPc9RnjFS6gQeq8sqJqlBmHcIA8sDwaYbu0mpIcARPokUgsRxjiaw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "bencode": "^4.0.0", - "block-iterator": "^1.1.1", - "fast-readable-async-iterator": "^2.0.0", - "is-file": "^1.0.0", - "join-async-iterator": "^1.1.1", - "junk": "^4.0.1", - "minimist": "^1.2.8", - "once": "^1.4.0", - "piece-length": "^2.0.1", - "queue-microtask": "^1.2.3", - "run-parallel": "^1.2.0", - "uint8-util": "^2.2.2" - }, - "bin": { - "create-torrent": "bin/cmd.js" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cross-fetch-ponyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cross-fetch-ponyfill/-/cross-fetch-ponyfill-1.0.3.tgz", - "integrity": "sha512-uOBkDhUAGAbx/FEzNKkOfx3w57H8xReBBXoZvUnOKTI0FW0Xvrj3GrYv2iZXUqlffC1LMGfQzhmBM/ke+6eTDA==", - "dependencies": { - "abort-controller": "^3.0.0", - "node-fetch": "^3.3.0" - } - }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -1273,14 +1275,6 @@ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.1.1.tgz", "integrity": "sha512-w8a8nQk9YSCkMmH2wDbFqpH1XMz7l409mSvWnnG6Iu6D0Ydhvq61XASE7QIaA46FxfG2Ag524ZuGgAy2cXPfsw==" }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1322,17 +1316,6 @@ "node": ">=16.0.0" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/define-data-property": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", @@ -1480,11 +1463,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, "node_modules/es-abstract": { "version": "1.22.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", @@ -1578,10 +1556,43 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } }, "node_modules/escape-string-regexp": { "version": "4.0.0", @@ -1727,6 +1738,15 @@ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, + "node_modules/eslint-plugin-import-helpers": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import-helpers/-/eslint-plugin-import-helpers-1.3.1.tgz", + "integrity": "sha512-MrACDozK6TmTJoCFHD71Ew3r5210Za3zlTrhX+fQGsyvxceaFvAI9AcvZ/8oSU0pZ61G3nDEn6mXY0T4S8cJEg==", + "dev": true, + "peerDependencies": { + "eslint": "5.x - 8.x" + } + }, "node_modules/eslint-plugin-import/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", @@ -1844,14 +1864,6 @@ "node": ">=0.10.0" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -1860,39 +1872,12 @@ "node": ">=0.8.x" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -1905,11 +1890,6 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "node_modules/fast-readable-async-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-readable-async-iterator/-/fast-readable-async-iterator-2.0.0.tgz", - "integrity": "sha512-8Sld+DuyWRIftl86ZguJxR2oXCBccOiJxrY/Rj9/7ZBynW8pYMWzIcqxFL1da+25jaWJZVa+HHX/8SsA21JdTA==" - }, "node_modules/fastq": { "version": "1.16.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", @@ -1919,28 +1899,6 @@ "reusify": "^1.0.4" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, "node_modules/fifo": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/fifo/-/fifo-0.1.4.tgz", @@ -1958,17 +1916,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/filename-reserved-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", - "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -2055,22 +2002,6 @@ "node": ">= 6" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/freelist": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/freelist/-/freelist-1.0.3.tgz", - "integrity": "sha512-Ji7fEnMdZDGbS5oXElpRJsn9jPvBR8h/037D3bzreNmS8809cISq/2D9//JbA/TaZmkkN8cmecXwmQHmM+NHhg==" - }, "node_modules/fs-chunk-store": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-1.7.0.tgz", @@ -2106,28 +2037,23 @@ "rimraf": "bin.js" } }, - "node_modules/fs-native-extensions": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/fs-native-extensions/-/fs-native-extensions-1.2.4.tgz", - "integrity": "sha512-TtrMxQN+N9Kb/1jjMttHrVmpPG4DrlDOQwgS+mnij5eRMv4KmBlCHGi8U2DtAo1acQhCYG+ZZpgUCKfLVMtzMQ==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "napi-macros": "^2.0.0", - "node-gyp-build": "^4.2.3" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "node_modules/fsa-chunk-store": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fsa-chunk-store/-/fsa-chunk-store-1.1.4.tgz", - "integrity": "sha512-Z4SJTYxZIta37RXJofM6HsKrgM9W+pQxiyQuw0bpvsfn1HGXcBWyXZWhsCfi7wbNb6GIlykXZ9Jxwc95IiPMzA==", - "dependencies": { - "filename-reserved-regex": "^3.0.0" + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-bind": { @@ -2186,28 +2112,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -2224,6 +2128,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -2427,30 +2343,6 @@ "entities": "^4.4.0" } }, - "node_modules/http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha512-u8u5ZaG0Tr/VvHlucK2ufMuOp4/5bvwgneXle+y228K5rMbJOlVjThONcaAw3ikAy8b2OO9RfEucdMHFz3UWMA==" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/hybrid-chunk-store": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/hybrid-chunk-store/-/hybrid-chunk-store-1.2.2.tgz", - "integrity": "sha512-oZtxLfVHWKVKPS8KoYpWgVohEKbq3s90s7a1FwG7+EZFC/8bqZrdX4axlH5tO/g2PnGpZTVxS2YnftyCpydKSw==", - "dependencies": { - "@thaunknown/idb-chunk-store": "^1.0.2", - "cache-chunk-store": "^3.2.2", - "fsa-chunk-store": "^1.1.4", - "memory-chunk-store": "^1.3.5" - } - }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -2462,11 +2354,6 @@ "node": ">=0.10.0" } }, - "node_modules/idb": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", - "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" - }, "node_modules/ignore": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", @@ -2653,11 +2540,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-file/-/is-file-1.0.0.tgz", - "integrity": "sha512-ZGMuc+xA8mRnrXtmtf2l/EkIW2zaD2LSBWlaOVEF6yH4RTndHob65V4SwWWdtGKVthQfXPVKsXqw4TDUjbVxVQ==" - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -2734,17 +2616,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -2810,18 +2681,14 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, "node_modules/jaro-winkler": { "version": "0.2.8", "resolved": "https://registry.npmjs.org/jaro-winkler/-/jaro-winkler-0.2.8.tgz", "integrity": "sha512-yr+mElb6dWxA1mzFu0+26njV5DWAQRNTi5pB6fFMm79zHrfAs3d0qjhe/IpZI4AHIUJkzvu5QXQRWOw2O0GQyw==" }, - "node_modules/join-async-iterator": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/join-async-iterator/-/join-async-iterator-1.1.1.tgz", - "integrity": "sha512-ATse+nuNeKZ9K1y27LKdvPe/GCe9R/u9dw9vI248e+vILeRK3IcJP4JUPAlSmKRCDK0cKhEwfmiw4Skqx7UnGQ==" - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2864,17 +2731,6 @@ "json5": "lib/cli.js" } }, - "node_modules/junk": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/junk/-/junk-4.0.1.tgz", - "integrity": "sha512-Qush0uP+G8ZScpGMZvHUiRfI0YBWuB3gVBYlI0v0vvOJt5FLicco+IkP0a50LqTTQhmts/m6tP5SWE+USyIvcQ==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/k-bucket": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-0.6.0.tgz", @@ -2928,11 +2784,6 @@ "json-buffer": "3.0.1" } }, - "node_modules/last-one-wins": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/last-one-wins/-/last-one-wins-1.0.4.tgz", - "integrity": "sha512-t+KLJFkHPQk8lfN6WBOiGkiUXoub+gnb2XTYI2P3aiISL+94xgZ1vgz1SXN/N4hthuOoLXarXfBZPUruyjQtfA==" - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -2946,49 +2797,6 @@ "node": ">= 0.8.0" } }, - "node_modules/limiter": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", - "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==" - }, - "node_modules/load-ip-set": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/load-ip-set/-/load-ip-set-3.0.1.tgz", - "integrity": "sha512-ZFZt1g4Exq01SFtKjffqau+L4Qibt+51utymHHiWo8Iu/W7LYSqE7fiZ/iAZ6dIqbmeU6ICSIK02IizSScBkLQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "cross-fetch-ponyfill": "^1.0.1", - "ip-set": "^2.1.0", - "netmask": "^2.0.1", - "once": "^1.4.0", - "queue-microtask": "^1.2.3", - "split": "^1.0.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/load-ip-set/node_modules/ip-set": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-set/-/ip-set-2.1.0.tgz", - "integrity": "sha512-JdHz4tSMx1IeFj8yEcQU0i58qiSkOlmZXkZ8+HJ0ROV5KcgLRDO9F703oJ1GeZCvqggrcCbmagD/V7hghY62wA==", - "dependencies": { - "ip": "^1.1.5" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -3020,17 +2828,6 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lru": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lru/-/lru-3.1.0.tgz", - "integrity": "sha512-5OUtoiVIGU4VXBOshidmtOsvBIvcQR6FD/RzWSvaeHyxCGB+PCUCu+52lqMfdc0h/2CLvHhZS4TwUmMQrrMbBQ==", - "dependencies": { - "inherits": "^2.0.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -3042,32 +2839,6 @@ "node": ">=10" } }, - "node_modules/lt_donthave": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lt_donthave/-/lt_donthave-2.0.0.tgz", - "integrity": "sha512-qrNtq9faD5ycTM8Of7OUqPHPMv0H8NONf+dTAxUsAr0bAgPnD56BBhhBlskJVNL4WO+Dl/qmqWHF9eQb7+2lNA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "debug": "^4.2.0", - "unordered-array-remove": "^1.0.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/magnet-uri": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/magnet-uri/-/magnet-uri-6.2.0.tgz", @@ -3091,36 +2862,12 @@ "thirty-two": "^1.0.2" } }, - "node_modules/memory-chunk-store": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/memory-chunk-store/-/memory-chunk-store-1.3.5.tgz", - "integrity": "sha512-E1Xc1U4ifk/FkC2ZsWhCaW1xg9HbE/OBmQTLe2Tr9c27YPSLbW7kw1cnb3kQWD1rDtErFJHa7mB9EVrs7aTx9g==", - "dependencies": { - "queue-microtask": "^1.2.3" - } - }, "node_modules/memory-pager": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", "optional": true }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -3140,14 +2887,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", @@ -3311,83 +3050,12 @@ "resolved": "https://registry.npmjs.org/named-queue/-/named-queue-2.2.1.tgz", "integrity": "sha512-ssW6R5DZza+ixfGgu+piZAqszqRViHNZjjazXknCWyRYZfRJkBmbSPd1nIcH29aejsyBNPNrn3AdMfB+qvb2Hw==" }, - "node_modules/napi-macros": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.2.2.tgz", - "integrity": "sha512-hmEVtAGYzVQpCKdbQea4skABsdXW4RUh5t5mJ2zzqowJS2OyXZTU1KhDVFhx+NlWZ4ap9mqR9TcDO3LTTttd+g==", - "optional": true - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -3489,20 +3157,6 @@ "wrappy": "1" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optional-require": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", @@ -3690,6 +3344,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "engines": { "node": ">=8" } @@ -3770,6 +3425,17 @@ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" }, + "node_modules/pg-hstore": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/pg-hstore/-/pg-hstore-2.3.4.tgz", + "integrity": "sha512-N3SGs/Rf+xA1M2/n0JBiXFDVMzdekwLZLAO0g7mpDY9ouX+fDI7jS6kTq3JujmYbtNSJ53TJ0q4G98KVZSM4EA==", + "dependencies": { + "underscore": "^1.13.1" + }, + "engines": { + "node": ">= 0.8.x" + } + }, "node_modules/pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", @@ -3814,11 +3480,6 @@ "split2": "^4.1.0" } }, - "node_modules/piece-length": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/piece-length/-/piece-length-2.0.1.tgz", - "integrity": "sha512-dBILiDmm43y0JPISWEmVGKBETQjwJe6mSU9GND+P9KW0SJGUwoU/odyH1nbalOP9i8WSYuqf1lQnaj92Bhw+Ug==" - }, "node_modules/postgres-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", @@ -3878,23 +3539,6 @@ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pump/node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -3965,22 +3609,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/rc4": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/rc4/-/rc4-0.1.5.tgz", - "integrity": "sha512-xdDTNV90z5x5u25Oc871Xnvu7yAr4tV7Eluh0VSvrhUkry39q1k+zkz7xroqHbRq+8PiazySHJPArqifUvz9VA==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/re-emitter": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/re-emitter/-/re-emitter-1.1.4.tgz", @@ -3997,14 +3625,6 @@ "string_decoder": "~0.10.x" } }, - "node_modules/record-cache": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/record-cache/-/record-cache-1.2.0.tgz", - "integrity": "sha512-kyy3HWCez2WrotaL3O4fTn0rsIdfRKOdQQcEJ9KpvmKmbffKVvwsloX063EgRUlpJIXHiDQFhJcTbZequ2uTZw==", - "dependencies": { - "b4a": "^1.3.1" - } - }, "node_modules/regexp.prototype.flags": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", @@ -4061,6 +3681,15 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/retry-as-promised": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-7.0.4.tgz", @@ -4113,28 +3742,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/run-parallel-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/run-parallel-limit/-/run-parallel-limit-1.1.0.tgz", - "integrity": "sha512-jJA7irRNM91jaKc3Hcl1npHsFLOXOoTkPCUL1JEa1R82O2miplXXRaGdjW/KM/98YQWDhJLiSs793CnXfblJUw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, "node_modules/run-series": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-series/-/run-series-1.1.9.tgz", @@ -4222,11 +3829,6 @@ "node": ">=6" } }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" - }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -4344,6 +3946,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -4355,6 +3958,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "engines": { "node": ">=8" } @@ -4373,11 +3977,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -4534,33 +4133,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", "integrity": "sha512-cr7dZWLwOeaFBLTIuZeYdkfO7UzGIKhjYENJFAxUOMKWGaWDm2nJM2rzxNRm5Owu0DH3ApwNo6kx5idXZfb/Iw==" }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks/node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", @@ -4570,31 +4142,11 @@ "memory-pager": "^1.0.2" } }, - "node_modules/speed-limiter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/speed-limiter/-/speed-limiter-1.0.2.tgz", - "integrity": "sha512-Ax+TbUOho84bWUc3AKqWtkIvAIVws7d6QI4oJkgH4yQ5Yil+lR3vjd/7qd51dHKGzS5bFxg0++QwyNRN7s6rZA==", - "dependencies": { - "limiter": "^1.1.5", - "streamx": "^2.10.3" - } - }, "node_modules/speedometer": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/speedometer/-/speedometer-0.1.4.tgz", "integrity": "sha512-phdEoDlA6EUIVtzwq1UiNMXDUogczp204aYF/yfOhjNePWFfIpBJ1k5wLMuXQhEOOMjuTJEcc4vdZa+vuP+n/Q==" }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, "node_modules/split2": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", @@ -4603,15 +4155,6 @@ "node": ">= 10.x" } }, - "node_modules/streamx": { - "version": "2.15.6", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", - "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", - "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" - } - }, "node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", @@ -4662,18 +4205,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string2compact": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/string2compact/-/string2compact-2.0.1.tgz", - "integrity": "sha512-Bm/T8lHMTRXw+u83LE+OW7fXmC/wM+Mbccfdo533ajSBNxddDHlRrvxE49NdciGHgXkUQM5WYskJ7uTkbBUI0A==", - "dependencies": { - "addr-to-ip-port": "^2.0.0", - "ipaddr.js": "^2.0.0" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -4695,14 +4226,6 @@ "node": ">=4" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -4753,27 +4276,11 @@ "node": ">=0.2.6" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/throughput": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/throughput/-/throughput-1.0.1.tgz", - "integrity": "sha512-4Mvv5P4xyVz6RM07wS3tGyZ/kPAiKtLeqznq3hK4pxDiTUSyQ5xeFlBiWxflCWexvSnxo2aAfedzKajJqihz4Q==" - }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, - "node_modules/timeout-refresh": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/timeout-refresh/-/timeout-refresh-1.0.3.tgz", - "integrity": "sha512-Mz0CX4vBGM5lj8ttbIFt7o4ZMxk/9rgudJRh76EvB7xXZMur7T/cjRiH2w4Fmkq0zxf2QpM8IFvOSRn8FEu3gA==", - "optional": true - }, "node_modules/toposort-class": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", @@ -4927,6 +4434,25 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsx": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.0.tgz", + "integrity": "sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==", + "dev": true, + "dependencies": { + "esbuild": "~0.19.10", + "get-tsconfig": "^4.7.2" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -5016,14 +4542,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/uint8-util": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/uint8-util/-/uint8-util-2.2.4.tgz", - "integrity": "sha512-uEI5lLozmKQPYEevfEhP9LY3Je5ZmrQhaWXrzTVqrLNQl36xsRh8NiAxYwB9J+2BAt99TRbmCkROQB2ZKhx4UA==", - "dependencies": { - "base64-arraybuffer": "^1.0.2" - } - }, "node_modules/ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", @@ -5044,6 +4562,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -5054,17 +4577,6 @@ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==" }, - "node_modules/unordered-array-remove": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", - "integrity": "sha512-45YsfD6svkgaCBNyvD+dFHm4qFX9g3wRSIVgWVPtm2OCnphvPxzJoe20ATsiNpNJrmzHifnxm+BN5F7gFT/4gw==" - }, - "node_modules/unordered-set": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unordered-set/-/unordered-set-2.0.1.tgz", - "integrity": "sha512-eUmNTPzdx+q/WvOHW0bgGYLWvWHNT3PTKEQLg0MAQhc0AHASHVHoP/9YytYd4RBVariqno/mEUhVZN98CmD7bg==", - "optional": true - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -5091,85 +4603,6 @@ "lodash.clonedeep": "^4.5.0" } }, - "node_modules/ut_metadata": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/ut_metadata/-/ut_metadata-4.0.3.tgz", - "integrity": "sha512-2tovup0VDYpT8t8+EhhhKBmbgIyiYyJQZ+Hf+/61+SvjuRS2MEeA5CiSARP4q+9/83Wu09OsGrUre/Zv6OI5NA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "bencode": "^4.0.0", - "bitfield": "^4.0.0", - "debug": "^4.2.0", - "uint8-util": "^2.1.3" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/ut_metadata/node_modules/bitfield": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/bitfield/-/bitfield-4.2.0.tgz", - "integrity": "sha512-kUTatQb/mBd8uhvdLrUkouGDBUQiJaIOvPlptUwOWp6MFqih4d1MiVf0m3ATxfZSzu+LjW/awFeABltYa62uIA==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/ut_pex": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/ut_pex/-/ut_pex-4.0.4.tgz", - "integrity": "sha512-isVTbp2TKGoMOu+4Zh/i6ijpYr0VG83xjRPgCXaUjKzgXXndjCMWg32/9kZjubD+kxEXcmXMkoS8IttS9FZE8g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "bencode": "^4.0.0", - "compact2string": "^1.4.1", - "string2compact": "^2.0.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -5183,69 +4616,6 @@ "cyclist": "~0.1.0" } }, - "node_modules/utp-native": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/utp-native/-/utp-native-2.5.3.tgz", - "integrity": "sha512-sWTrWYXPhhWJh+cS2baPzhaZc89zwlWCfwSthUjGhLkZztyPhcQllo+XVVCbNGi7dhyRlxkWxN4NKU6FbA9Y8w==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "napi-macros": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.0.2", - "timeout-refresh": "^1.0.0", - "unordered-set": "^2.0.1" - }, - "bin": { - "ucat": "ucat.js" - }, - "engines": { - "node": ">=8.12" - } - }, - "node_modules/utp-native/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "optional": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/utp-native/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "node_modules/utp-native/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -5262,340 +4632,11 @@ "node": ">= 0.10" } }, - "node_modules/web-streams-polyfill": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz", - "integrity": "sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ==", - "engines": { - "node": ">= 8" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "node_modules/webtorrent": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/webtorrent/-/webtorrent-2.1.34.tgz", - "integrity": "sha512-YwUEzViZd5zwV41Ra0nPUdBxAsqhoE+xtlAr2uNW7w9pvu3B4iAqvzkGoZT8qX+IdDGCqDSazAx/O6/Q4Jj2gw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "@silentbot1/nat-api": "^0.4.7", - "@thaunknown/simple-peer": "^9.12.1", - "@webtorrent/http-node": "^1.3.0", - "addr-to-ip-port": "^2.0.0", - "bitfield": "^4.1.0", - "bittorrent-dht": "^11.0.5", - "bittorrent-protocol": "^4.1.11", - "cache-chunk-store": "^3.2.2", - "chunk-store-iterator": "^1.0.3", - "cpus": "^1.0.3", - "create-torrent": "^6.0.16", - "cross-fetch-ponyfill": "^1.0.3", - "debug": "^4.3.4", - "escape-html": "^1.0.3", - "fs-chunk-store": "^4.1.0", - "hybrid-chunk-store": "^1.2.2", - "immediate-chunk-store": "^2.2.0", - "join-async-iterator": "^1.1.1", - "load-ip-set": "^3.0.1", - "lt_donthave": "^2.0.0", - "memory-chunk-store": "^1.3.5", - "mime": "^3.0.0", - "once": "^1.4.0", - "parse-torrent": "^11.0.16", - "pump": "^3.0.0", - "queue-microtask": "^1.2.3", - "random-iterate": "^1.0.1", - "range-parser": "^1.2.1", - "run-parallel": "^1.2.0", - "run-parallel-limit": "^1.1.0", - "speed-limiter": "^1.0.2", - "streamx": "^2.15.6", - "throughput": "^1.0.1", - "torrent-discovery": "^11.0.1", - "torrent-piece": "^3.0.0", - "uint8-util": "^2.2.4", - "unordered-array-remove": "^1.0.2", - "ut_metadata": "^4.0.3", - "ut_pex": "^4.0.4" - }, - "engines": { - "node": ">=14" - }, - "optionalDependencies": { - "utp-native": "^2.5.3" - } - }, - "node_modules/webtorrent/node_modules/bep53-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bep53-range/-/bep53-range-2.0.0.tgz", - "integrity": "sha512-sMm2sV5PRs0YOVk0LTKtjuIprVzxgTQUsrGX/7Yph2Rm4FO2Fqqtq7hNjsOB5xezM4v4+5rljCgK++UeQJZguA==", - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/webtorrent/node_modules/bitfield": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/bitfield/-/bitfield-4.2.0.tgz", - "integrity": "sha512-kUTatQb/mBd8uhvdLrUkouGDBUQiJaIOvPlptUwOWp6MFqih4d1MiVf0m3ATxfZSzu+LjW/awFeABltYa62uIA==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/webtorrent/node_modules/bittorrent-dht": { - "version": "11.0.5", - "resolved": "https://registry.npmjs.org/bittorrent-dht/-/bittorrent-dht-11.0.5.tgz", - "integrity": "sha512-R09D6uNaziRqsc+B/j5QzkjceTak+wH9vcNLnkmt8A52EWF9lQwBP0vvCKgSA3AJOYYl+41n3osA2KYYn/z5uQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "bencode": "^4.0.0", - "debug": "^4.3.4", - "k-bucket": "^5.1.0", - "k-rpc": "^5.1.0", - "last-one-wins": "^1.0.4", - "lru": "^3.1.0", - "randombytes": "^2.1.0", - "record-cache": "^1.2.0" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/webtorrent/node_modules/fs-chunk-store": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/fs-chunk-store/-/fs-chunk-store-4.1.0.tgz", - "integrity": "sha512-8apaYPaENIVUjVGqjo+Yg5/Hv7qL2fijWV+XGMCs3MR07o9DZZVMpF7dclxdjYotSjLdUGVPhqaJn+eAx6NLYQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "filename-reserved-regex": "^3.0.0", - "queue-microtask": "^1.2.2", - "random-access-file": "^4.0.0", - "randombytes": "^2.0.3", - "run-parallel": "^1.1.2", - "thunky": "^1.0.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/webtorrent/node_modules/immediate-chunk-store": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/immediate-chunk-store/-/immediate-chunk-store-2.2.0.tgz", - "integrity": "sha512-1bHBna0hCa6arRXicu91IiL9RvvkbNYLVq+mzWdaLGZC3hXvX4doh8e1dLhMKez5siu63CYgO5NrGJbRX5lbPA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.3" - } - }, - "node_modules/webtorrent/node_modules/k-bucket": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz", - "integrity": "sha512-Fac7iINEovXIWU20GPnOMLUbjctiS+cnmyjC4zAUgvs3XPf1vo9akfCHkigftSic/jiKqKl+KA3a/vFcJbHyCg==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/webtorrent/node_modules/k-rpc": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/k-rpc/-/k-rpc-5.1.0.tgz", - "integrity": "sha512-FGc+n70Hcjoa/X2JTwP+jMIOpBz+pkRffHnSl9yrYiwUxg3FIgD50+u1ePfJUOnRCnx6pbjmVk5aAeB1wIijuQ==", - "dependencies": { - "k-bucket": "^5.0.0", - "k-rpc-socket": "^1.7.2", - "randombytes": "^2.0.5" - } - }, - "node_modules/webtorrent/node_modules/magnet-uri": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/magnet-uri/-/magnet-uri-7.0.5.tgz", - "integrity": "sha512-Ke+dDiYHK1Rq/ZyGUAgk7NIkoypivxolTj/A0qr60ypP0FjeP+NTUNEhr965HsRan0zGxKEBK73+SsjRyJWkXg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "@thaunknown/thirty-two": "^1.0.3", - "bep53-range": "^2.0.0", - "uint8-util": "^2.1.9" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/webtorrent/node_modules/parse-torrent": { - "version": "11.0.16", - "resolved": "https://registry.npmjs.org/parse-torrent/-/parse-torrent-11.0.16.tgz", - "integrity": "sha512-5GoOdmW0HpiB78aQpBz8/5V3V1LjBRDNiL7DOs33pKeCLOzFnfMrsRD6CYmaUBT5Vi/dXE0hfePsjDGJSMF48w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "bencode": "^4.0.0", - "cross-fetch-ponyfill": "^1.0.3", - "get-stdin": "^9.0.0", - "magnet-uri": "^7.0.5", - "queue-microtask": "^1.2.3", - "uint8-util": "^2.2.4" - }, - "bin": { - "parse-torrent": "bin/cmd.js" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/webtorrent/node_modules/random-access-file": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/random-access-file/-/random-access-file-4.0.4.tgz", - "integrity": "sha512-1W21gZ8ne3RgPyTNpq8INr7feTY0+hPpV4X59yL9Miv5QiZV7U1QpRb/zEG2IuaojW9qVTeWBC19Ty0m0uqFBg==", - "dependencies": { - "random-access-storage": "^3.0.0" - }, - "optionalDependencies": { - "fs-native-extensions": "^1.1.0" - } - }, - "node_modules/webtorrent/node_modules/random-access-storage": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/random-access-storage/-/random-access-storage-3.0.1.tgz", - "integrity": "sha512-raFoHJ/orMyur04GKrA+5ThOwhX9wICdqMDLqTM7bHEXPz7zi5MxLsLUaybxGu3b4mJTt8zhCpZHgjlu0x4wpg==", - "dependencies": { - "events": "^3.3.0", - "queue-tick": "^1.0.0" - } - }, - "node_modules/webtorrent/node_modules/torrent-discovery": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-11.0.1.tgz", - "integrity": "sha512-+QhOUWRxhR8Y6e5z5I0qil812q11Xz9Yaj1pfYwVkereTBQT1THBCeSHxWZEHuGjKLiIBueVzPP7+wiPtedXKg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "bittorrent-dht": "^11.0.5", - "bittorrent-lsd": "^2.0.0", - "bittorrent-tracker": "^11.0.1", - "debug": "^4.3.4", - "run-parallel": "^1.2.0" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/webtorrent/node_modules/torrent-piece": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/torrent-piece/-/torrent-piece-3.0.0.tgz", - "integrity": "sha512-j0tRX7qq22nIuVFF57Tg/wAvFq79F1eM9pcMxY+b0qCCe7yXJnIrqF+Q5YEJ94tNisDnJzcqDHNrPmD9X/yAIg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "uint8-util": "^2.1.9" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -5609,6 +4650,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -5667,46 +4709,6 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, - "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml2js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", - "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/src/node/consumer/package.json b/src/node/consumer/package.json index 9ade207..582d117 100644 --- a/src/node/consumer/package.json +++ b/src/node/consumer/package.json @@ -1,11 +1,12 @@ { "name": "consumer", - "version": "1.0.0", - "exports": "./index.js", + "version": "0.0.1", "type": "module", "scripts": { - "start": "node index.js", - "lint": "eslint . --ext .js" + "build": "node esbuild.js", + "dev": "tsx watch --ignore node_modules src/index.js", + "start": "node dist/index.cjs", + "lint": "eslint . --ext .ts,.js" }, "author": "A Dude", "license": "MIT", @@ -23,12 +24,18 @@ "name-to-imdb": "^3.0.4", "parse-torrent-title": "git://github.com/TheBeastLT/parse-torrent-title.git#022408972c2a040f846331a912a6a8487746a654", "pg": "^8.11.3", + "pg-hstore": "^2.3.4", "sequelize": "^6.31.1", "torrent-stream": "^1.2.1", "user-agents": "^1.0.1444" }, "devDependencies": { + "@types/node": "^20.11.6", + "@types/stremio-addon-sdk": "^1.6.10", + "esbuild": "^0.19.12", "eslint": "^8.56.0", - "eslint-plugin-import": "^2.29.1" + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-import-helpers": "^1.3.1", + "tsx": "^4.7.0" } } diff --git a/src/node/consumer/index.js b/src/node/consumer/src/index.js similarity index 60% rename from src/node/consumer/index.js rename to src/node/consumer/src/index.js index 49cf520..9425c05 100644 --- a/src/node/consumer/index.js +++ b/src/node/consumer/src/index.js @@ -1,11 +1,13 @@ -import { getTrackers } from "./lib/trackerService.js"; -import { connect } from './lib/repository.js'; import { listenToQueue } from './jobs/processTorrents.js'; import { jobConfig } from "./lib/config.js"; +import { connect } from './lib/repository.js'; +import { getTrackers } from "./lib/trackerService.js"; -await getTrackers(); -await connect(); +(async () => { + await getTrackers(); + await connect(); -if (jobConfig.JOBS_ENABLED) { - await listenToQueue(); -} \ No newline at end of file + if (jobConfig.JOBS_ENABLED) { + await listenToQueue(); + } +})(); \ No newline at end of file diff --git a/src/node/consumer/jobs/processTorrents.js b/src/node/consumer/src/jobs/processTorrents.js similarity index 93% rename from src/node/consumer/jobs/processTorrents.js rename to src/node/consumer/src/jobs/processTorrents.js index 1e81973..92bd903 100644 --- a/src/node/consumer/jobs/processTorrents.js +++ b/src/node/consumer/src/jobs/processTorrents.js @@ -1,7 +1,7 @@ -import { rabbitConfig, jobConfig } from '../lib/config.js' -import { processTorrentRecord } from "../lib/ingestedTorrent.js"; -import amqp from 'amqplib' +import amqp from 'amqplib' import Promise from 'bluebird' +import { rabbitConfig, jobConfig } from '../lib/config.js' +import { processTorrentRecord } from "../lib/ingestedTorrent.js"; const assertQueueOptions = { durable: true } const consumeQueueOptions = { noAck: false } diff --git a/src/node/consumer/lib/cache.js b/src/node/consumer/src/lib/cache.js similarity index 100% rename from src/node/consumer/lib/cache.js rename to src/node/consumer/src/lib/cache.js index 6c32394..99a551b 100644 --- a/src/node/consumer/lib/cache.js +++ b/src/node/consumer/src/lib/cache.js @@ -1,6 +1,6 @@ -import { cacheConfig } from './config.js'; import cacheManager from 'cache-manager'; import mangodbStore from 'cache-manager-mongodb'; +import { cacheConfig } from './config.js'; const GLOBAL_KEY_PREFIX = 'selfhostio-consumer'; const IMDB_ID_PREFIX = `${GLOBAL_KEY_PREFIX}|imdb_id`; diff --git a/src/node/consumer/lib/config.js b/src/node/consumer/src/lib/config.js similarity index 100% rename from src/node/consumer/lib/config.js rename to src/node/consumer/src/lib/config.js diff --git a/src/node/consumer/lib/extension.js b/src/node/consumer/src/lib/extension.js similarity index 100% rename from src/node/consumer/lib/extension.js rename to src/node/consumer/src/lib/extension.js diff --git a/src/node/consumer/lib/ingestedTorrent.js b/src/node/consumer/src/lib/ingestedTorrent.js similarity index 97% rename from src/node/consumer/lib/ingestedTorrent.js rename to src/node/consumer/src/lib/ingestedTorrent.js index 2d2b767..44473c1 100644 --- a/src/node/consumer/lib/ingestedTorrent.js +++ b/src/node/consumer/src/lib/ingestedTorrent.js @@ -1,9 +1,9 @@ -import { Type } from './types.js'; import { createTorrentEntry, checkAndUpdateTorrent } from './torrentEntries.js'; import {getTrackers} from "./trackerService.js"; +import { Type } from './types.js'; export async function processTorrentRecord(torrent) { - const category = torrent.category; + const {category} = torrent; const type = category === 'tv' ? Type.SERIES : Type.MOVIE; const torrentInfo = await parseTorrent(torrent, type); console.log(`Processing torrent ${torrentInfo.title} with infoHash ${torrentInfo.infoHash}`) diff --git a/src/node/consumer/lib/metadata.js b/src/node/consumer/src/lib/metadata.js similarity index 100% rename from src/node/consumer/lib/metadata.js rename to src/node/consumer/src/lib/metadata.js index 832e5f3..6d76282 100644 --- a/src/node/consumer/lib/metadata.js +++ b/src/node/consumer/src/lib/metadata.js @@ -1,6 +1,6 @@ import axios from 'axios'; -import nameToImdb from 'name-to-imdb'; import { search } from 'google-sr'; +import nameToImdb from 'name-to-imdb'; import { cacheWrapImdbId, cacheWrapKitsuId, cacheWrapMetadata } from './cache.js'; import { Type } from './types.js'; diff --git a/src/node/consumer/lib/parseHelper.js b/src/node/consumer/src/lib/parseHelper.js similarity index 100% rename from src/node/consumer/lib/parseHelper.js rename to src/node/consumer/src/lib/parseHelper.js diff --git a/src/node/consumer/lib/promises.js b/src/node/consumer/src/lib/promises.js similarity index 100% rename from src/node/consumer/lib/promises.js rename to src/node/consumer/src/lib/promises.js diff --git a/src/node/consumer/lib/repository.js b/src/node/consumer/src/lib/repository.js similarity index 100% rename from src/node/consumer/lib/repository.js rename to src/node/consumer/src/lib/repository.js index e2e5ebf..731e381 100644 --- a/src/node/consumer/lib/repository.js +++ b/src/node/consumer/src/lib/repository.js @@ -1,7 +1,7 @@ import moment from 'moment'; -import * as Promises from './promises.js'; import { Sequelize, Op, DataTypes, fn, col, literal } from 'sequelize'; import { databaseConfig } from './config.js'; +import * as Promises from './promises.js'; const database = new Sequelize( databaseConfig.DATABASE_URI, diff --git a/src/node/consumer/lib/torrent.js b/src/node/consumer/src/lib/torrent.js similarity index 100% rename from src/node/consumer/lib/torrent.js rename to src/node/consumer/src/lib/torrent.js index b97d67e..4253052 100644 --- a/src/node/consumer/lib/torrent.js +++ b/src/node/consumer/src/lib/torrent.js @@ -1,7 +1,7 @@ -import torrentStream from 'torrent-stream'; -import {isSubtitle, isVideo} from './extension.js'; -import { torrentConfig } from './config.js'; import { decode } from 'magnet-uri'; +import torrentStream from 'torrent-stream'; +import { torrentConfig } from './config.js'; +import {isSubtitle, isVideo} from './extension.js'; export async function torrentFiles(torrent, timeout) { return filesFromTorrentStream(torrent, timeout) diff --git a/src/node/consumer/lib/torrentEntries.js b/src/node/consumer/src/lib/torrentEntries.js similarity index 100% rename from src/node/consumer/lib/torrentEntries.js rename to src/node/consumer/src/lib/torrentEntries.js index 5229d5e..3eff76b 100644 --- a/src/node/consumer/lib/torrentEntries.js +++ b/src/node/consumer/src/lib/torrentEntries.js @@ -1,11 +1,11 @@ import { parse } from 'parse-torrent-title'; -import { Type } from './types.js'; +import { getImdbId, getKitsuId } from './metadata.js'; +import { isPackTorrent } from './parseHelper.js'; import * as Promises from './promises.js'; import * as repository from './repository.js'; -import { getImdbId, getKitsuId } from './metadata.js'; import { parseTorrentFiles } from './torrentFiles.js'; import { assignSubtitles } from './torrentSubtitles.js'; -import { isPackTorrent } from './parseHelper.js'; +import { Type } from './types.js'; export async function createTorrentEntry(torrent, overwrite = false) { const titleInfo = parse(torrent.title); diff --git a/src/node/consumer/lib/torrentFiles.js b/src/node/consumer/src/lib/torrentFiles.js similarity index 100% rename from src/node/consumer/lib/torrentFiles.js rename to src/node/consumer/src/lib/torrentFiles.js index a340ec2..c1f6757 100644 --- a/src/node/consumer/lib/torrentFiles.js +++ b/src/node/consumer/src/lib/torrentFiles.js @@ -1,14 +1,14 @@ -import moment from 'moment'; import Bottleneck from 'bottleneck'; import distance from 'jaro-winkler'; +import moment from 'moment'; import { parse } from 'parse-torrent-title'; -import * as Promises from './promises.js'; +import { metadataConfig } from './config.js'; +import { isDisk } from './extension.js'; import { getMetadata, getImdbId, getKitsuId } from './metadata.js'; import { parseSeriesVideos, isPackTorrent } from './parseHelper.js'; -import { Type } from './types.js'; -import { isDisk } from './extension.js'; +import * as Promises from './promises.js'; import {torrentFiles} from "./torrent.js"; -import { metadataConfig } from './config.js'; +import { Type } from './types.js'; const MIN_SIZE = 5 * 1024 * 1024; // 5 MB const imdb_limiter = new Bottleneck({ maxConcurrent: metadataConfig.IMDB_CONCURRENT, minTime: metadataConfig.IMDB_INTERVAL_MS }); diff --git a/src/node/consumer/lib/torrentSubtitles.js b/src/node/consumer/src/lib/torrentSubtitles.js similarity index 100% rename from src/node/consumer/lib/torrentSubtitles.js rename to src/node/consumer/src/lib/torrentSubtitles.js diff --git a/src/node/consumer/lib/trackerService.js b/src/node/consumer/src/lib/trackerService.js similarity index 100% rename from src/node/consumer/lib/trackerService.js rename to src/node/consumer/src/lib/trackerService.js diff --git a/src/node/consumer/lib/types.js b/src/node/consumer/src/lib/types.js similarity index 100% rename from src/node/consumer/lib/types.js rename to src/node/consumer/src/lib/types.js